packages feed

jsaddle 0.8.3.2 → 0.9.9.4

raw patch · 25 files changed

Files

jsaddle.cabal view
@@ -1,5 +1,5 @@ name: jsaddle-version: 0.8.3.2+version: 0.9.9.4 cabal-version: >=1.10 build-type: Simple license: MIT@@ -10,9 +10,10 @@     This package provides an EDSL for calling JavaScript that     can be used both from GHCJS and GHC.  When using GHC     the application is run using Warp and WebSockets to-    drive a small JavaScipt helper.+    drive a small JavaScript helper. category: Web, Javascript author: Hamish Mackenzie+tested-with: GHC==9.12.2, GHC==9.10.1, GHC==9.8.4, GHC==9.6.7, GHC==9.4.8, GHC==9.2.8, GHC==9.0.2, GHC==8.10.7, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4  source-repository head     type: git@@ -29,25 +30,30 @@  library -    if impl(ghcjs -any)+    if impl(ghcjs -any) || arch(javascript)         build-depends:-            ghcjs-base -any,-            ghcjs-prim -any+            ghcjs-base -any+        -- GHC includes GHC.JS.Prim in base+        if impl(ghcjs -any)+            build-depends:+                ghcjs-prim -any     else         build-depends:-            attoparsec >=0.11 && <0.14,-            containers >=0.5.6.2 && <0.6,-            deepseq >=1.3 && < 1.5,-            filepath >=1.4.0.0 && <1.5,+            attoparsec >=0.11 && <0.15,+            containers >=0.5.6.2 && <0.9,+            deepseq >=1.3 && < 1.6,+            filepath >=1.4.0.0 && <1.6,             ghc-prim,-            http-types >=0.8.6 && <0.10,-            process >=1.2.3.0 && <1.5,-            ref-tf >=0.4.0.1 && <0.5,+            http-types >=0.8.6 && <0.13,+            process >=1.2.3.0 && <1.7,+            random >= 1.1 && < 1.4,+            ref-tf >=0.4.0.1 && <0.6,             scientific >=0.3 && <0.4,-            stm >=2.4.4 && <2.5,-            time >=1.5.0.1 && <1.8,+            stm >=2.4.4 && <2.6,+            time >=1.5.0.1 && <1.16,             unordered-containers >=0.2 && <0.3,-            vector >=0.10 && <0.13+            vector >=0.10 && <0.14,+            unliftio-core >=0.1 && < 0.3         exposed-modules:             Data.JSString             Data.JSString.Internal@@ -61,6 +67,7 @@             GHCJS.Prim             GHCJS.Prim.Internal             GHCJS.Types+            GHCJS.Concurrent             GHCJS.Foreign             GHCJS.Foreign.Internal             GHCJS.Internal.Types@@ -81,8 +88,10 @@             JavaScript.Array.Internal             JavaScript.Object             JavaScript.Object.Internal+            Language.Javascript.JSaddle.Debug             Language.Javascript.JSaddle.Native             Language.Javascript.JSaddle.Native.Internal+            Language.Javascript.JSaddle.Null         hs-source-dirs: src-ghc     exposed-modules:         Language.Javascript.JSaddle@@ -102,14 +111,17 @@         Language.Javascript.JSaddle.Value         Language.Javascript.JSaddle.Types     build-depends:-        aeson >=0.8.0.2 && <1.3,-        base <5,-        base64-bytestring >=1.0.0.1 && <1.1,-        bytestring >=0.10.6.0 && <0.11,-        lens >=3.8.5 && <4.16,-        primitive >=0.6.1.0 && <0.7,-        text >=1.2.1.3 && <1.3,-        transformers >=0.4.2.0 && <0.6+        aeson >=0.11.3.0 && <2.3,+        base >=4.9 && <5,+        base-compat >=0.9.0 && <0.16,+        base64-bytestring >=1.0.0.1 && <1.3,+        bytestring >=0.10.6.0 && <0.13,+        exceptions >=0.8 && <0.11,+        kan-extensions >= 5 && < 6,+        lens >=3.8.5 && <5.4,+        primitive >=0.6.1.0 && <0.10,+        text >=1.2.1.3 && <1.3 || >= 2.0 && < 2.2,+        transformers >=0.4.2.0 && <0.7     default-language: Haskell2010     hs-source-dirs: src     ghc-options: -ferror-spans -Wall@@ -117,5 +129,3 @@         cpp-options: -DCHECK_UNCHECKED     if flag(call-stacks) || flag(check-unchecked)         cpp-options: -DJSADDLE_HAS_CALL_STACK--
src-ghc/Data/JSString/Internal/Fusion/CaseMapping.hs view
@@ -1,570 +1,7652 @@-{-# LANGUAGE Rank2Types #-}--- AUTOMATICALLY GENERATED - DO NOT EDIT--- Generated by scripts/SpecialCasing.hs--- CaseFolding-6.3.0.txt--- Date: 2012-12-20, 22:14:35 GMT [MD]--- SpecialCasing-6.3.0.txt--- Date: 2013-05-08, 13:54:51 GMT [MD]--module Data.JSString.Internal.Fusion.CaseMapping where-import Data.Char-import Data.JSString.Internal.Fusion.Types--upperMapping :: forall s. Char -> s -> Step (CC s) Char-{-# INLINE upperMapping #-}--- LATIN SMALL LETTER SHARP S-upperMapping '\x00df' s = Yield '\x0053' (CC s '\x0053' '\x0000')--- LATIN SMALL LIGATURE FF-upperMapping '\xfb00' s = Yield '\x0046' (CC s '\x0046' '\x0000')--- LATIN SMALL LIGATURE FI-upperMapping '\xfb01' s = Yield '\x0046' (CC s '\x0049' '\x0000')--- LATIN SMALL LIGATURE FL-upperMapping '\xfb02' s = Yield '\x0046' (CC s '\x004c' '\x0000')--- LATIN SMALL LIGATURE FFI-upperMapping '\xfb03' s = Yield '\x0046' (CC s '\x0046' '\x0049')--- LATIN SMALL LIGATURE FFL-upperMapping '\xfb04' s = Yield '\x0046' (CC s '\x0046' '\x004c')--- LATIN SMALL LIGATURE LONG S T-upperMapping '\xfb05' s = Yield '\x0053' (CC s '\x0054' '\x0000')--- LATIN SMALL LIGATURE ST-upperMapping '\xfb06' s = Yield '\x0053' (CC s '\x0054' '\x0000')--- ARMENIAN SMALL LIGATURE ECH YIWN-upperMapping '\x0587' s = Yield '\x0535' (CC s '\x0552' '\x0000')--- ARMENIAN SMALL LIGATURE MEN NOW-upperMapping '\xfb13' s = Yield '\x0544' (CC s '\x0546' '\x0000')--- ARMENIAN SMALL LIGATURE MEN ECH-upperMapping '\xfb14' s = Yield '\x0544' (CC s '\x0535' '\x0000')--- ARMENIAN SMALL LIGATURE MEN INI-upperMapping '\xfb15' s = Yield '\x0544' (CC s '\x053b' '\x0000')--- ARMENIAN SMALL LIGATURE VEW NOW-upperMapping '\xfb16' s = Yield '\x054e' (CC s '\x0546' '\x0000')--- ARMENIAN SMALL LIGATURE MEN XEH-upperMapping '\xfb17' s = Yield '\x0544' (CC s '\x053d' '\x0000')--- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE-upperMapping '\x0149' s = Yield '\x02bc' (CC s '\x004e' '\x0000')--- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS-upperMapping '\x0390' s = Yield '\x0399' (CC s '\x0308' '\x0301')--- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS-upperMapping '\x03b0' s = Yield '\x03a5' (CC s '\x0308' '\x0301')--- LATIN SMALL LETTER J WITH CARON-upperMapping '\x01f0' s = Yield '\x004a' (CC s '\x030c' '\x0000')--- LATIN SMALL LETTER H WITH LINE BELOW-upperMapping '\x1e96' s = Yield '\x0048' (CC s '\x0331' '\x0000')--- LATIN SMALL LETTER T WITH DIAERESIS-upperMapping '\x1e97' s = Yield '\x0054' (CC s '\x0308' '\x0000')--- LATIN SMALL LETTER W WITH RING ABOVE-upperMapping '\x1e98' s = Yield '\x0057' (CC s '\x030a' '\x0000')--- LATIN SMALL LETTER Y WITH RING ABOVE-upperMapping '\x1e99' s = Yield '\x0059' (CC s '\x030a' '\x0000')--- LATIN SMALL LETTER A WITH RIGHT HALF RING-upperMapping '\x1e9a' s = Yield '\x0041' (CC s '\x02be' '\x0000')--- GREEK SMALL LETTER UPSILON WITH PSILI-upperMapping '\x1f50' s = Yield '\x03a5' (CC s '\x0313' '\x0000')--- GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA-upperMapping '\x1f52' s = Yield '\x03a5' (CC s '\x0313' '\x0300')--- GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA-upperMapping '\x1f54' s = Yield '\x03a5' (CC s '\x0313' '\x0301')--- GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI-upperMapping '\x1f56' s = Yield '\x03a5' (CC s '\x0313' '\x0342')--- GREEK SMALL LETTER ALPHA WITH PERISPOMENI-upperMapping '\x1fb6' s = Yield '\x0391' (CC s '\x0342' '\x0000')--- GREEK SMALL LETTER ETA WITH PERISPOMENI-upperMapping '\x1fc6' s = Yield '\x0397' (CC s '\x0342' '\x0000')--- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA-upperMapping '\x1fd2' s = Yield '\x0399' (CC s '\x0308' '\x0300')--- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA-upperMapping '\x1fd3' s = Yield '\x0399' (CC s '\x0308' '\x0301')--- GREEK SMALL LETTER IOTA WITH PERISPOMENI-upperMapping '\x1fd6' s = Yield '\x0399' (CC s '\x0342' '\x0000')--- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI-upperMapping '\x1fd7' s = Yield '\x0399' (CC s '\x0308' '\x0342')--- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA-upperMapping '\x1fe2' s = Yield '\x03a5' (CC s '\x0308' '\x0300')--- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA-upperMapping '\x1fe3' s = Yield '\x03a5' (CC s '\x0308' '\x0301')--- GREEK SMALL LETTER RHO WITH PSILI-upperMapping '\x1fe4' s = Yield '\x03a1' (CC s '\x0313' '\x0000')--- GREEK SMALL LETTER UPSILON WITH PERISPOMENI-upperMapping '\x1fe6' s = Yield '\x03a5' (CC s '\x0342' '\x0000')--- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI-upperMapping '\x1fe7' s = Yield '\x03a5' (CC s '\x0308' '\x0342')--- GREEK SMALL LETTER OMEGA WITH PERISPOMENI-upperMapping '\x1ff6' s = Yield '\x03a9' (CC s '\x0342' '\x0000')--- GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI-upperMapping '\x1f80' s = Yield '\x1f08' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI-upperMapping '\x1f81' s = Yield '\x1f09' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI-upperMapping '\x1f82' s = Yield '\x1f0a' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI-upperMapping '\x1f83' s = Yield '\x1f0b' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI-upperMapping '\x1f84' s = Yield '\x1f0c' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI-upperMapping '\x1f85' s = Yield '\x1f0d' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI-upperMapping '\x1f86' s = Yield '\x1f0e' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI-upperMapping '\x1f87' s = Yield '\x1f0f' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI-upperMapping '\x1f88' s = Yield '\x1f08' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI-upperMapping '\x1f89' s = Yield '\x1f09' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI-upperMapping '\x1f8a' s = Yield '\x1f0a' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI-upperMapping '\x1f8b' s = Yield '\x1f0b' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI-upperMapping '\x1f8c' s = Yield '\x1f0c' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI-upperMapping '\x1f8d' s = Yield '\x1f0d' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI-upperMapping '\x1f8e' s = Yield '\x1f0e' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI-upperMapping '\x1f8f' s = Yield '\x1f0f' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI-upperMapping '\x1f90' s = Yield '\x1f28' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI-upperMapping '\x1f91' s = Yield '\x1f29' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI-upperMapping '\x1f92' s = Yield '\x1f2a' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI-upperMapping '\x1f93' s = Yield '\x1f2b' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI-upperMapping '\x1f94' s = Yield '\x1f2c' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI-upperMapping '\x1f95' s = Yield '\x1f2d' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI-upperMapping '\x1f96' s = Yield '\x1f2e' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI-upperMapping '\x1f97' s = Yield '\x1f2f' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI-upperMapping '\x1f98' s = Yield '\x1f28' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI-upperMapping '\x1f99' s = Yield '\x1f29' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI-upperMapping '\x1f9a' s = Yield '\x1f2a' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI-upperMapping '\x1f9b' s = Yield '\x1f2b' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI-upperMapping '\x1f9c' s = Yield '\x1f2c' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI-upperMapping '\x1f9d' s = Yield '\x1f2d' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI-upperMapping '\x1f9e' s = Yield '\x1f2e' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI-upperMapping '\x1f9f' s = Yield '\x1f2f' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI-upperMapping '\x1fa0' s = Yield '\x1f68' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI-upperMapping '\x1fa1' s = Yield '\x1f69' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI-upperMapping '\x1fa2' s = Yield '\x1f6a' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI-upperMapping '\x1fa3' s = Yield '\x1f6b' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI-upperMapping '\x1fa4' s = Yield '\x1f6c' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI-upperMapping '\x1fa5' s = Yield '\x1f6d' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI-upperMapping '\x1fa6' s = Yield '\x1f6e' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI-upperMapping '\x1fa7' s = Yield '\x1f6f' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI-upperMapping '\x1fa8' s = Yield '\x1f68' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI-upperMapping '\x1fa9' s = Yield '\x1f69' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI-upperMapping '\x1faa' s = Yield '\x1f6a' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI-upperMapping '\x1fab' s = Yield '\x1f6b' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI-upperMapping '\x1fac' s = Yield '\x1f6c' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI-upperMapping '\x1fad' s = Yield '\x1f6d' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI-upperMapping '\x1fae' s = Yield '\x1f6e' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI-upperMapping '\x1faf' s = Yield '\x1f6f' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI-upperMapping '\x1fb3' s = Yield '\x0391' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI-upperMapping '\x1fbc' s = Yield '\x0391' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI-upperMapping '\x1fc3' s = Yield '\x0397' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI-upperMapping '\x1fcc' s = Yield '\x0397' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI-upperMapping '\x1ff3' s = Yield '\x03a9' (CC s '\x0399' '\x0000')--- GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI-upperMapping '\x1ffc' s = Yield '\x03a9' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI-upperMapping '\x1fb2' s = Yield '\x1fba' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI-upperMapping '\x1fb4' s = Yield '\x0386' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI-upperMapping '\x1fc2' s = Yield '\x1fca' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI-upperMapping '\x1fc4' s = Yield '\x0389' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI-upperMapping '\x1ff2' s = Yield '\x1ffa' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI-upperMapping '\x1ff4' s = Yield '\x038f' (CC s '\x0399' '\x0000')--- GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI-upperMapping '\x1fb7' s = Yield '\x0391' (CC s '\x0342' '\x0399')--- GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI-upperMapping '\x1fc7' s = Yield '\x0397' (CC s '\x0342' '\x0399')--- GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI-upperMapping '\x1ff7' s = Yield '\x03a9' (CC s '\x0342' '\x0399')-upperMapping c s = Yield (toUpper c) (CC s '\0' '\0')-lowerMapping :: forall s. Char -> s -> Step (CC s) Char-{-# INLINE lowerMapping #-}--- LATIN CAPITAL LETTER I WITH DOT ABOVE-lowerMapping '\x0130' s = Yield '\x0069' (CC s '\x0307' '\x0000')-lowerMapping c s = Yield (toLower c) (CC s '\0' '\0')-titleMapping :: forall s. Char -> s -> Step (CC s) Char-{-# INLINE titleMapping #-}--- LATIN SMALL LETTER SHARP S-titleMapping '\x00df' s = Yield '\x0053' (CC s '\x0073' '\x0000')--- LATIN SMALL LIGATURE FF-titleMapping '\xfb00' s = Yield '\x0046' (CC s '\x0066' '\x0000')--- LATIN SMALL LIGATURE FI-titleMapping '\xfb01' s = Yield '\x0046' (CC s '\x0069' '\x0000')--- LATIN SMALL LIGATURE FL-titleMapping '\xfb02' s = Yield '\x0046' (CC s '\x006c' '\x0000')--- LATIN SMALL LIGATURE FFI-titleMapping '\xfb03' s = Yield '\x0046' (CC s '\x0066' '\x0069')--- LATIN SMALL LIGATURE FFL-titleMapping '\xfb04' s = Yield '\x0046' (CC s '\x0066' '\x006c')--- LATIN SMALL LIGATURE LONG S T-titleMapping '\xfb05' s = Yield '\x0053' (CC s '\x0074' '\x0000')--- LATIN SMALL LIGATURE ST-titleMapping '\xfb06' s = Yield '\x0053' (CC s '\x0074' '\x0000')--- ARMENIAN SMALL LIGATURE ECH YIWN-titleMapping '\x0587' s = Yield '\x0535' (CC s '\x0582' '\x0000')--- ARMENIAN SMALL LIGATURE MEN NOW-titleMapping '\xfb13' s = Yield '\x0544' (CC s '\x0576' '\x0000')--- ARMENIAN SMALL LIGATURE MEN ECH-titleMapping '\xfb14' s = Yield '\x0544' (CC s '\x0565' '\x0000')--- ARMENIAN SMALL LIGATURE MEN INI-titleMapping '\xfb15' s = Yield '\x0544' (CC s '\x056b' '\x0000')--- ARMENIAN SMALL LIGATURE VEW NOW-titleMapping '\xfb16' s = Yield '\x054e' (CC s '\x0576' '\x0000')--- ARMENIAN SMALL LIGATURE MEN XEH-titleMapping '\xfb17' s = Yield '\x0544' (CC s '\x056d' '\x0000')--- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE-titleMapping '\x0149' s = Yield '\x02bc' (CC s '\x004e' '\x0000')--- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS-titleMapping '\x0390' s = Yield '\x0399' (CC s '\x0308' '\x0301')--- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS-titleMapping '\x03b0' s = Yield '\x03a5' (CC s '\x0308' '\x0301')--- LATIN SMALL LETTER J WITH CARON-titleMapping '\x01f0' s = Yield '\x004a' (CC s '\x030c' '\x0000')--- LATIN SMALL LETTER H WITH LINE BELOW-titleMapping '\x1e96' s = Yield '\x0048' (CC s '\x0331' '\x0000')--- LATIN SMALL LETTER T WITH DIAERESIS-titleMapping '\x1e97' s = Yield '\x0054' (CC s '\x0308' '\x0000')--- LATIN SMALL LETTER W WITH RING ABOVE-titleMapping '\x1e98' s = Yield '\x0057' (CC s '\x030a' '\x0000')--- LATIN SMALL LETTER Y WITH RING ABOVE-titleMapping '\x1e99' s = Yield '\x0059' (CC s '\x030a' '\x0000')--- LATIN SMALL LETTER A WITH RIGHT HALF RING-titleMapping '\x1e9a' s = Yield '\x0041' (CC s '\x02be' '\x0000')--- GREEK SMALL LETTER UPSILON WITH PSILI-titleMapping '\x1f50' s = Yield '\x03a5' (CC s '\x0313' '\x0000')--- GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA-titleMapping '\x1f52' s = Yield '\x03a5' (CC s '\x0313' '\x0300')--- GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA-titleMapping '\x1f54' s = Yield '\x03a5' (CC s '\x0313' '\x0301')--- GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI-titleMapping '\x1f56' s = Yield '\x03a5' (CC s '\x0313' '\x0342')--- GREEK SMALL LETTER ALPHA WITH PERISPOMENI-titleMapping '\x1fb6' s = Yield '\x0391' (CC s '\x0342' '\x0000')--- GREEK SMALL LETTER ETA WITH PERISPOMENI-titleMapping '\x1fc6' s = Yield '\x0397' (CC s '\x0342' '\x0000')--- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA-titleMapping '\x1fd2' s = Yield '\x0399' (CC s '\x0308' '\x0300')--- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA-titleMapping '\x1fd3' s = Yield '\x0399' (CC s '\x0308' '\x0301')--- GREEK SMALL LETTER IOTA WITH PERISPOMENI-titleMapping '\x1fd6' s = Yield '\x0399' (CC s '\x0342' '\x0000')--- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI-titleMapping '\x1fd7' s = Yield '\x0399' (CC s '\x0308' '\x0342')--- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA-titleMapping '\x1fe2' s = Yield '\x03a5' (CC s '\x0308' '\x0300')--- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA-titleMapping '\x1fe3' s = Yield '\x03a5' (CC s '\x0308' '\x0301')--- GREEK SMALL LETTER RHO WITH PSILI-titleMapping '\x1fe4' s = Yield '\x03a1' (CC s '\x0313' '\x0000')--- GREEK SMALL LETTER UPSILON WITH PERISPOMENI-titleMapping '\x1fe6' s = Yield '\x03a5' (CC s '\x0342' '\x0000')--- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI-titleMapping '\x1fe7' s = Yield '\x03a5' (CC s '\x0308' '\x0342')--- GREEK SMALL LETTER OMEGA WITH PERISPOMENI-titleMapping '\x1ff6' s = Yield '\x03a9' (CC s '\x0342' '\x0000')--- GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI-titleMapping '\x1fb2' s = Yield '\x1fba' (CC s '\x0345' '\x0000')--- GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI-titleMapping '\x1fb4' s = Yield '\x0386' (CC s '\x0345' '\x0000')--- GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI-titleMapping '\x1fc2' s = Yield '\x1fca' (CC s '\x0345' '\x0000')--- GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI-titleMapping '\x1fc4' s = Yield '\x0389' (CC s '\x0345' '\x0000')--- GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI-titleMapping '\x1ff2' s = Yield '\x1ffa' (CC s '\x0345' '\x0000')--- GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI-titleMapping '\x1ff4' s = Yield '\x038f' (CC s '\x0345' '\x0000')--- GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI-titleMapping '\x1fb7' s = Yield '\x0391' (CC s '\x0342' '\x0345')--- GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI-titleMapping '\x1fc7' s = Yield '\x0397' (CC s '\x0342' '\x0345')--- GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI-titleMapping '\x1ff7' s = Yield '\x03a9' (CC s '\x0342' '\x0345')-titleMapping c s = Yield (toTitle c) (CC s '\0' '\0')-foldMapping :: forall s. Char -> s -> Step (CC s) Char-{-# INLINE foldMapping #-}--- MICRO SIGN-foldMapping '\x00b5' s = Yield '\x03bc' (CC s '\x0000' '\x0000')--- LATIN SMALL LETTER SHARP S-foldMapping '\x00df' s = Yield '\x0073' (CC s '\x0073' '\x0000')--- LATIN CAPITAL LETTER I WITH DOT ABOVE-foldMapping '\x0130' s = Yield '\x0069' (CC s '\x0307' '\x0000')--- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE-foldMapping '\x0149' s = Yield '\x02bc' (CC s '\x006e' '\x0000')--- LATIN SMALL LETTER LONG S-foldMapping '\x017f' s = Yield '\x0073' (CC s '\x0000' '\x0000')--- LATIN SMALL LETTER J WITH CARON-foldMapping '\x01f0' s = Yield '\x006a' (CC s '\x030c' '\x0000')--- COMBINING GREEK YPOGEGRAMMENI-foldMapping '\x0345' s = Yield '\x03b9' (CC s '\x0000' '\x0000')--- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS-foldMapping '\x0390' s = Yield '\x03b9' (CC s '\x0308' '\x0301')--- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS-foldMapping '\x03b0' s = Yield '\x03c5' (CC s '\x0308' '\x0301')--- GREEK SMALL LETTER FINAL SIGMA-foldMapping '\x03c2' s = Yield '\x03c3' (CC s '\x0000' '\x0000')--- GREEK BETA SYMBOL-foldMapping '\x03d0' s = Yield '\x03b2' (CC s '\x0000' '\x0000')--- GREEK THETA SYMBOL-foldMapping '\x03d1' s = Yield '\x03b8' (CC s '\x0000' '\x0000')--- GREEK PHI SYMBOL-foldMapping '\x03d5' s = Yield '\x03c6' (CC s '\x0000' '\x0000')--- GREEK PI SYMBOL-foldMapping '\x03d6' s = Yield '\x03c0' (CC s '\x0000' '\x0000')--- GREEK KAPPA SYMBOL-foldMapping '\x03f0' s = Yield '\x03ba' (CC s '\x0000' '\x0000')--- GREEK RHO SYMBOL-foldMapping '\x03f1' s = Yield '\x03c1' (CC s '\x0000' '\x0000')--- GREEK LUNATE EPSILON SYMBOL-foldMapping '\x03f5' s = Yield '\x03b5' (CC s '\x0000' '\x0000')--- ARMENIAN SMALL LIGATURE ECH YIWN-foldMapping '\x0587' s = Yield '\x0565' (CC s '\x0582' '\x0000')--- GEORGIAN CAPITAL LETTER YN-foldMapping '\x10c7' s = Yield '\x2d27' (CC s '\x0000' '\x0000')--- GEORGIAN CAPITAL LETTER AEN-foldMapping '\x10cd' s = Yield '\x2d2d' (CC s '\x0000' '\x0000')--- LATIN SMALL LETTER H WITH LINE BELOW-foldMapping '\x1e96' s = Yield '\x0068' (CC s '\x0331' '\x0000')--- LATIN SMALL LETTER T WITH DIAERESIS-foldMapping '\x1e97' s = Yield '\x0074' (CC s '\x0308' '\x0000')--- LATIN SMALL LETTER W WITH RING ABOVE-foldMapping '\x1e98' s = Yield '\x0077' (CC s '\x030a' '\x0000')--- LATIN SMALL LETTER Y WITH RING ABOVE-foldMapping '\x1e99' s = Yield '\x0079' (CC s '\x030a' '\x0000')--- LATIN SMALL LETTER A WITH RIGHT HALF RING-foldMapping '\x1e9a' s = Yield '\x0061' (CC s '\x02be' '\x0000')--- LATIN SMALL LETTER LONG S WITH DOT ABOVE-foldMapping '\x1e9b' s = Yield '\x1e61' (CC s '\x0000' '\x0000')--- LATIN CAPITAL LETTER SHARP S-foldMapping '\x1e9e' s = Yield '\x0073' (CC s '\x0073' '\x0000')--- GREEK SMALL LETTER UPSILON WITH PSILI-foldMapping '\x1f50' s = Yield '\x03c5' (CC s '\x0313' '\x0000')--- GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA-foldMapping '\x1f52' s = Yield '\x03c5' (CC s '\x0313' '\x0300')--- GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA-foldMapping '\x1f54' s = Yield '\x03c5' (CC s '\x0313' '\x0301')--- GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI-foldMapping '\x1f56' s = Yield '\x03c5' (CC s '\x0313' '\x0342')--- GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI-foldMapping '\x1f80' s = Yield '\x1f00' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI-foldMapping '\x1f81' s = Yield '\x1f01' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI-foldMapping '\x1f82' s = Yield '\x1f02' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI-foldMapping '\x1f83' s = Yield '\x1f03' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI-foldMapping '\x1f84' s = Yield '\x1f04' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI-foldMapping '\x1f85' s = Yield '\x1f05' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI-foldMapping '\x1f86' s = Yield '\x1f06' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI-foldMapping '\x1f87' s = Yield '\x1f07' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI-foldMapping '\x1f88' s = Yield '\x1f00' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI-foldMapping '\x1f89' s = Yield '\x1f01' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI-foldMapping '\x1f8a' s = Yield '\x1f02' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI-foldMapping '\x1f8b' s = Yield '\x1f03' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI-foldMapping '\x1f8c' s = Yield '\x1f04' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI-foldMapping '\x1f8d' s = Yield '\x1f05' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI-foldMapping '\x1f8e' s = Yield '\x1f06' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI-foldMapping '\x1f8f' s = Yield '\x1f07' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI-foldMapping '\x1f90' s = Yield '\x1f20' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI-foldMapping '\x1f91' s = Yield '\x1f21' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI-foldMapping '\x1f92' s = Yield '\x1f22' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI-foldMapping '\x1f93' s = Yield '\x1f23' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI-foldMapping '\x1f94' s = Yield '\x1f24' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI-foldMapping '\x1f95' s = Yield '\x1f25' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI-foldMapping '\x1f96' s = Yield '\x1f26' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI-foldMapping '\x1f97' s = Yield '\x1f27' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI-foldMapping '\x1f98' s = Yield '\x1f20' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI-foldMapping '\x1f99' s = Yield '\x1f21' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI-foldMapping '\x1f9a' s = Yield '\x1f22' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI-foldMapping '\x1f9b' s = Yield '\x1f23' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI-foldMapping '\x1f9c' s = Yield '\x1f24' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI-foldMapping '\x1f9d' s = Yield '\x1f25' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI-foldMapping '\x1f9e' s = Yield '\x1f26' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI-foldMapping '\x1f9f' s = Yield '\x1f27' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI-foldMapping '\x1fa0' s = Yield '\x1f60' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI-foldMapping '\x1fa1' s = Yield '\x1f61' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI-foldMapping '\x1fa2' s = Yield '\x1f62' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI-foldMapping '\x1fa3' s = Yield '\x1f63' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI-foldMapping '\x1fa4' s = Yield '\x1f64' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI-foldMapping '\x1fa5' s = Yield '\x1f65' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI-foldMapping '\x1fa6' s = Yield '\x1f66' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI-foldMapping '\x1fa7' s = Yield '\x1f67' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI-foldMapping '\x1fa8' s = Yield '\x1f60' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI-foldMapping '\x1fa9' s = Yield '\x1f61' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI-foldMapping '\x1faa' s = Yield '\x1f62' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI-foldMapping '\x1fab' s = Yield '\x1f63' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI-foldMapping '\x1fac' s = Yield '\x1f64' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI-foldMapping '\x1fad' s = Yield '\x1f65' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI-foldMapping '\x1fae' s = Yield '\x1f66' (CC s '\x03b9' '\x0000')--- GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI-foldMapping '\x1faf' s = Yield '\x1f67' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI-foldMapping '\x1fb2' s = Yield '\x1f70' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI-foldMapping '\x1fb3' s = Yield '\x03b1' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI-foldMapping '\x1fb4' s = Yield '\x03ac' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ALPHA WITH PERISPOMENI-foldMapping '\x1fb6' s = Yield '\x03b1' (CC s '\x0342' '\x0000')--- GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI-foldMapping '\x1fb7' s = Yield '\x03b1' (CC s '\x0342' '\x03b9')--- GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI-foldMapping '\x1fbc' s = Yield '\x03b1' (CC s '\x03b9' '\x0000')--- GREEK PROSGEGRAMMENI-foldMapping '\x1fbe' s = Yield '\x03b9' (CC s '\x0000' '\x0000')--- GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI-foldMapping '\x1fc2' s = Yield '\x1f74' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI-foldMapping '\x1fc3' s = Yield '\x03b7' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI-foldMapping '\x1fc4' s = Yield '\x03ae' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER ETA WITH PERISPOMENI-foldMapping '\x1fc6' s = Yield '\x03b7' (CC s '\x0342' '\x0000')--- GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI-foldMapping '\x1fc7' s = Yield '\x03b7' (CC s '\x0342' '\x03b9')--- GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI-foldMapping '\x1fcc' s = Yield '\x03b7' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA-foldMapping '\x1fd2' s = Yield '\x03b9' (CC s '\x0308' '\x0300')--- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA-foldMapping '\x1fd3' s = Yield '\x03b9' (CC s '\x0308' '\x0301')--- GREEK SMALL LETTER IOTA WITH PERISPOMENI-foldMapping '\x1fd6' s = Yield '\x03b9' (CC s '\x0342' '\x0000')--- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI-foldMapping '\x1fd7' s = Yield '\x03b9' (CC s '\x0308' '\x0342')--- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA-foldMapping '\x1fe2' s = Yield '\x03c5' (CC s '\x0308' '\x0300')--- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA-foldMapping '\x1fe3' s = Yield '\x03c5' (CC s '\x0308' '\x0301')--- GREEK SMALL LETTER RHO WITH PSILI-foldMapping '\x1fe4' s = Yield '\x03c1' (CC s '\x0313' '\x0000')--- GREEK SMALL LETTER UPSILON WITH PERISPOMENI-foldMapping '\x1fe6' s = Yield '\x03c5' (CC s '\x0342' '\x0000')--- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI-foldMapping '\x1fe7' s = Yield '\x03c5' (CC s '\x0308' '\x0342')--- GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI-foldMapping '\x1ff2' s = Yield '\x1f7c' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI-foldMapping '\x1ff3' s = Yield '\x03c9' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI-foldMapping '\x1ff4' s = Yield '\x03ce' (CC s '\x03b9' '\x0000')--- GREEK SMALL LETTER OMEGA WITH PERISPOMENI-foldMapping '\x1ff6' s = Yield '\x03c9' (CC s '\x0342' '\x0000')--- GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI-foldMapping '\x1ff7' s = Yield '\x03c9' (CC s '\x0342' '\x03b9')--- GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI-foldMapping '\x1ffc' s = Yield '\x03c9' (CC s '\x03b9' '\x0000')--- COPTIC CAPITAL LETTER BOHAIRIC KHEI-foldMapping '\x2cf2' s = Yield '\x2cf3' (CC s '\x0000' '\x0000')--- LATIN CAPITAL LETTER C WITH BAR-foldMapping '\xa792' s = Yield '\xa793' (CC s '\x0000' '\x0000')--- LATIN CAPITAL LETTER H WITH HOOK-foldMapping '\xa7aa' s = Yield '\x0266' (CC s '\x0000' '\x0000')--- LATIN SMALL LIGATURE FF-foldMapping '\xfb00' s = Yield '\x0066' (CC s '\x0066' '\x0000')--- LATIN SMALL LIGATURE FI-foldMapping '\xfb01' s = Yield '\x0066' (CC s '\x0069' '\x0000')--- LATIN SMALL LIGATURE FL-foldMapping '\xfb02' s = Yield '\x0066' (CC s '\x006c' '\x0000')--- LATIN SMALL LIGATURE FFI-foldMapping '\xfb03' s = Yield '\x0066' (CC s '\x0066' '\x0069')--- LATIN SMALL LIGATURE FFL-foldMapping '\xfb04' s = Yield '\x0066' (CC s '\x0066' '\x006c')--- LATIN SMALL LIGATURE LONG S T-foldMapping '\xfb05' s = Yield '\x0073' (CC s '\x0074' '\x0000')--- LATIN SMALL LIGATURE ST-foldMapping '\xfb06' s = Yield '\x0073' (CC s '\x0074' '\x0000')--- ARMENIAN SMALL LIGATURE MEN NOW-foldMapping '\xfb13' s = Yield '\x0574' (CC s '\x0576' '\x0000')--- ARMENIAN SMALL LIGATURE MEN ECH-foldMapping '\xfb14' s = Yield '\x0574' (CC s '\x0565' '\x0000')--- ARMENIAN SMALL LIGATURE MEN INI-foldMapping '\xfb15' s = Yield '\x0574' (CC s '\x056b' '\x0000')--- ARMENIAN SMALL LIGATURE VEW NOW-foldMapping '\xfb16' s = Yield '\x057e' (CC s '\x0576' '\x0000')--- ARMENIAN SMALL LIGATURE MEN XEH-foldMapping '\xfb17' s = Yield '\x0574' (CC s '\x056d' '\x0000')-foldMapping c s = Yield (toLower c) (CC s '\0' '\0')+-- AUTOMATICALLY GENERATED - DO NOT EDIT+-- Generated by scripts/CaseMapping.hs+-- CaseFolding-14.0.0.txt+-- Date: 2021-03-08, 19:35:41 GMT+-- SpecialCasing-14.0.0.txt+-- Date: 2021-03-08, 19:35:55 GMT++{-# LANGUAGE LambdaCase, MagicHash, PartialTypeSignatures #-}+{-# OPTIONS_GHC -Wno-partial-type-signatures #-}+module Data.JSString.Internal.Fusion.CaseMapping where+import GHC.Int+import GHC.Exts+unI64 :: Int64 -> _ {- unboxed Int64 -}+unI64 (I64# n) = n++upperMapping :: Char# -> _ {- unboxed Int64 -}+{-# NOINLINE upperMapping #-}+upperMapping = \case+  -- LATIN SMALL LETTER SHARP S+  '\x00df'# -> unI64 174063699+  -- LATIN SMALL LIGATURE FF+  '\xfb00'# -> unI64 146800710+  -- LATIN SMALL LIGATURE FI+  '\xfb01'# -> unI64 153092166+  -- LATIN SMALL LIGATURE FL+  '\xfb02'# -> unI64 159383622+  -- LATIN SMALL LIGATURE FFI+  '\xfb03'# -> unI64 321057542111302+  -- LATIN SMALL LIGATURE FFL+  '\xfb04'# -> unI64 334251681644614+  -- LATIN SMALL LIGATURE LONG S T+  '\xfb05'# -> unI64 176160851+  -- LATIN SMALL LIGATURE ST+  '\xfb06'# -> unI64 176160851+  -- ARMENIAN SMALL LIGATURE ECH YIWN+  '\x0587'# -> unI64 2856322357+  -- ARMENIAN SMALL LIGATURE MEN NOW+  '\xfb13'# -> unI64 2831156548+  -- ARMENIAN SMALL LIGATURE MEN ECH+  '\xfb14'# -> unI64 2795504964+  -- ARMENIAN SMALL LIGATURE MEN INI+  '\xfb15'# -> unI64 2808087876+  -- ARMENIAN SMALL LIGATURE VEW NOW+  '\xfb16'# -> unI64 2831156558+  -- ARMENIAN SMALL LIGATURE MEN XEH+  '\xfb17'# -> unI64 2812282180+  -- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE+  '\x0149'# -> unI64 163578556+  -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS+  '\x0390'# -> unI64 3382099394429849+  -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS+  '\x03b0'# -> unI64 3382099394429861+  -- LATIN SMALL LETTER J WITH CARON+  '\x01f0'# -> unI64 1635778634+  -- LATIN SMALL LETTER H WITH LINE BELOW+  '\x1e96'# -> unI64 1713373256+  -- LATIN SMALL LETTER T WITH DIAERESIS+  '\x1e97'# -> unI64 1627390036+  -- LATIN SMALL LETTER W WITH RING ABOVE+  '\x1e98'# -> unI64 1631584343+  -- LATIN SMALL LETTER Y WITH RING ABOVE+  '\x1e99'# -> unI64 1631584345+  -- LATIN SMALL LETTER A WITH RIGHT HALF RING+  '\x1e9a'# -> unI64 1472200769+  -- GREEK SMALL LETTER UPSILON WITH PSILI+  '\x1f50'# -> unI64 1650459557+  -- GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA+  '\x1f52'# -> unI64 3377701370987429+  -- GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA+  '\x1f54'# -> unI64 3382099417498533+  -- GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI+  '\x1f56'# -> unI64 3667972440720293+  -- GREEK SMALL LETTER ALPHA WITH PERISPOMENI+  '\x1fb6'# -> unI64 1749025681+  -- GREEK SMALL LETTER ETA WITH PERISPOMENI+  '\x1fc6'# -> unI64 1749025687+  -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA+  '\x1fd2'# -> unI64 3377701347918745+  -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA+  '\x1fd3'# -> unI64 3382099394429849+  -- GREEK SMALL LETTER IOTA WITH PERISPOMENI+  '\x1fd6'# -> unI64 1749025689+  -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI+  '\x1fd7'# -> unI64 3667972417651609+  -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA+  '\x1fe2'# -> unI64 3377701347918757+  -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA+  '\x1fe3'# -> unI64 3382099394429861+  -- GREEK SMALL LETTER RHO WITH PSILI+  '\x1fe4'# -> unI64 1650459553+  -- GREEK SMALL LETTER UPSILON WITH PERISPOMENI+  '\x1fe6'# -> unI64 1749025701+  -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI+  '\x1fe7'# -> unI64 3667972417651621+  -- GREEK SMALL LETTER OMEGA WITH PERISPOMENI+  '\x1ff6'# -> unI64 1749025705+  -- GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI+  '\x1f80'# -> unI64 1931484936+  -- GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI+  '\x1f81'# -> unI64 1931484937+  -- GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI+  '\x1f82'# -> unI64 1931484938+  -- GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI+  '\x1f83'# -> unI64 1931484939+  -- GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI+  '\x1f84'# -> unI64 1931484940+  -- GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI+  '\x1f85'# -> unI64 1931484941+  -- GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI+  '\x1f86'# -> unI64 1931484942+  -- GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI+  '\x1f87'# -> unI64 1931484943+  -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI+  '\x1f88'# -> unI64 1931484936+  -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI+  '\x1f89'# -> unI64 1931484937+  -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI+  '\x1f8a'# -> unI64 1931484938+  -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI+  '\x1f8b'# -> unI64 1931484939+  -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI+  '\x1f8c'# -> unI64 1931484940+  -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI+  '\x1f8d'# -> unI64 1931484941+  -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI+  '\x1f8e'# -> unI64 1931484942+  -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI+  '\x1f8f'# -> unI64 1931484943+  -- GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI+  '\x1f90'# -> unI64 1931484968+  -- GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI+  '\x1f91'# -> unI64 1931484969+  -- GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI+  '\x1f92'# -> unI64 1931484970+  -- GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI+  '\x1f93'# -> unI64 1931484971+  -- GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI+  '\x1f94'# -> unI64 1931484972+  -- GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI+  '\x1f95'# -> unI64 1931484973+  -- GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI+  '\x1f96'# -> unI64 1931484974+  -- GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI+  '\x1f97'# -> unI64 1931484975+  -- GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI+  '\x1f98'# -> unI64 1931484968+  -- GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI+  '\x1f99'# -> unI64 1931484969+  -- GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI+  '\x1f9a'# -> unI64 1931484970+  -- GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI+  '\x1f9b'# -> unI64 1931484971+  -- GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI+  '\x1f9c'# -> unI64 1931484972+  -- GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI+  '\x1f9d'# -> unI64 1931484973+  -- GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI+  '\x1f9e'# -> unI64 1931484974+  -- GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI+  '\x1f9f'# -> unI64 1931484975+  -- GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI+  '\x1fa0'# -> unI64 1931485032+  -- GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI+  '\x1fa1'# -> unI64 1931485033+  -- GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI+  '\x1fa2'# -> unI64 1931485034+  -- GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI+  '\x1fa3'# -> unI64 1931485035+  -- GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI+  '\x1fa4'# -> unI64 1931485036+  -- GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI+  '\x1fa5'# -> unI64 1931485037+  -- GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI+  '\x1fa6'# -> unI64 1931485038+  -- GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI+  '\x1fa7'# -> unI64 1931485039+  -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI+  '\x1fa8'# -> unI64 1931485032+  -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI+  '\x1fa9'# -> unI64 1931485033+  -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI+  '\x1faa'# -> unI64 1931485034+  -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI+  '\x1fab'# -> unI64 1931485035+  -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI+  '\x1fac'# -> unI64 1931485036+  -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI+  '\x1fad'# -> unI64 1931485037+  -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI+  '\x1fae'# -> unI64 1931485038+  -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI+  '\x1faf'# -> unI64 1931485039+  -- GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI+  '\x1fb3'# -> unI64 1931477905+  -- GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI+  '\x1fbc'# -> unI64 1931477905+  -- GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI+  '\x1fc3'# -> unI64 1931477911+  -- GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI+  '\x1fcc'# -> unI64 1931477911+  -- GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI+  '\x1ff3'# -> unI64 1931477929+  -- GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI+  '\x1ffc'# -> unI64 1931477929+  -- GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI+  '\x1fb2'# -> unI64 1931485114+  -- GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI+  '\x1fb4'# -> unI64 1931477894+  -- GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI+  '\x1fc2'# -> unI64 1931485130+  -- GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI+  '\x1fc4'# -> unI64 1931477897+  -- GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI+  '\x1ff2'# -> unI64 1931485178+  -- GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI+  '\x1ff4'# -> unI64 1931477903+  -- GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI+  '\x1fb7'# -> unI64 4050602585752465+  -- GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI+  '\x1fc7'# -> unI64 4050602585752471+  -- GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI+  '\x1ff7'# -> unI64 4050602585752489+  '\x0061'# -> unI64 65+  '\x0062'# -> unI64 66+  '\x0063'# -> unI64 67+  '\x0064'# -> unI64 68+  '\x0065'# -> unI64 69+  '\x0066'# -> unI64 70+  '\x0067'# -> unI64 71+  '\x0068'# -> unI64 72+  '\x0069'# -> unI64 73+  '\x006a'# -> unI64 74+  '\x006b'# -> unI64 75+  '\x006c'# -> unI64 76+  '\x006d'# -> unI64 77+  '\x006e'# -> unI64 78+  '\x006f'# -> unI64 79+  '\x0070'# -> unI64 80+  '\x0071'# -> unI64 81+  '\x0072'# -> unI64 82+  '\x0073'# -> unI64 83+  '\x0074'# -> unI64 84+  '\x0075'# -> unI64 85+  '\x0076'# -> unI64 86+  '\x0077'# -> unI64 87+  '\x0078'# -> unI64 88+  '\x0079'# -> unI64 89+  '\x007a'# -> unI64 90+  '\x00b5'# -> unI64 924+  '\x00e0'# -> unI64 192+  '\x00e1'# -> unI64 193+  '\x00e2'# -> unI64 194+  '\x00e3'# -> unI64 195+  '\x00e4'# -> unI64 196+  '\x00e5'# -> unI64 197+  '\x00e6'# -> unI64 198+  '\x00e7'# -> unI64 199+  '\x00e8'# -> unI64 200+  '\x00e9'# -> unI64 201+  '\x00ea'# -> unI64 202+  '\x00eb'# -> unI64 203+  '\x00ec'# -> unI64 204+  '\x00ed'# -> unI64 205+  '\x00ee'# -> unI64 206+  '\x00ef'# -> unI64 207+  '\x00f0'# -> unI64 208+  '\x00f1'# -> unI64 209+  '\x00f2'# -> unI64 210+  '\x00f3'# -> unI64 211+  '\x00f4'# -> unI64 212+  '\x00f5'# -> unI64 213+  '\x00f6'# -> unI64 214+  '\x00f8'# -> unI64 216+  '\x00f9'# -> unI64 217+  '\x00fa'# -> unI64 218+  '\x00fb'# -> unI64 219+  '\x00fc'# -> unI64 220+  '\x00fd'# -> unI64 221+  '\x00fe'# -> unI64 222+  '\x00ff'# -> unI64 376+  '\x0101'# -> unI64 256+  '\x0103'# -> unI64 258+  '\x0105'# -> unI64 260+  '\x0107'# -> unI64 262+  '\x0109'# -> unI64 264+  '\x010b'# -> unI64 266+  '\x010d'# -> unI64 268+  '\x010f'# -> unI64 270+  '\x0111'# -> unI64 272+  '\x0113'# -> unI64 274+  '\x0115'# -> unI64 276+  '\x0117'# -> unI64 278+  '\x0119'# -> unI64 280+  '\x011b'# -> unI64 282+  '\x011d'# -> unI64 284+  '\x011f'# -> unI64 286+  '\x0121'# -> unI64 288+  '\x0123'# -> unI64 290+  '\x0125'# -> unI64 292+  '\x0127'# -> unI64 294+  '\x0129'# -> unI64 296+  '\x012b'# -> unI64 298+  '\x012d'# -> unI64 300+  '\x012f'# -> unI64 302+  '\x0131'# -> unI64 73+  '\x0133'# -> unI64 306+  '\x0135'# -> unI64 308+  '\x0137'# -> unI64 310+  '\x013a'# -> unI64 313+  '\x013c'# -> unI64 315+  '\x013e'# -> unI64 317+  '\x0140'# -> unI64 319+  '\x0142'# -> unI64 321+  '\x0144'# -> unI64 323+  '\x0146'# -> unI64 325+  '\x0148'# -> unI64 327+  '\x014b'# -> unI64 330+  '\x014d'# -> unI64 332+  '\x014f'# -> unI64 334+  '\x0151'# -> unI64 336+  '\x0153'# -> unI64 338+  '\x0155'# -> unI64 340+  '\x0157'# -> unI64 342+  '\x0159'# -> unI64 344+  '\x015b'# -> unI64 346+  '\x015d'# -> unI64 348+  '\x015f'# -> unI64 350+  '\x0161'# -> unI64 352+  '\x0163'# -> unI64 354+  '\x0165'# -> unI64 356+  '\x0167'# -> unI64 358+  '\x0169'# -> unI64 360+  '\x016b'# -> unI64 362+  '\x016d'# -> unI64 364+  '\x016f'# -> unI64 366+  '\x0171'# -> unI64 368+  '\x0173'# -> unI64 370+  '\x0175'# -> unI64 372+  '\x0177'# -> unI64 374+  '\x017a'# -> unI64 377+  '\x017c'# -> unI64 379+  '\x017e'# -> unI64 381+  '\x017f'# -> unI64 83+  '\x0180'# -> unI64 579+  '\x0183'# -> unI64 386+  '\x0185'# -> unI64 388+  '\x0188'# -> unI64 391+  '\x018c'# -> unI64 395+  '\x0192'# -> unI64 401+  '\x0195'# -> unI64 502+  '\x0199'# -> unI64 408+  '\x019a'# -> unI64 573+  '\x019e'# -> unI64 544+  '\x01a1'# -> unI64 416+  '\x01a3'# -> unI64 418+  '\x01a5'# -> unI64 420+  '\x01a8'# -> unI64 423+  '\x01ad'# -> unI64 428+  '\x01b0'# -> unI64 431+  '\x01b4'# -> unI64 435+  '\x01b6'# -> unI64 437+  '\x01b9'# -> unI64 440+  '\x01bd'# -> unI64 444+  '\x01bf'# -> unI64 503+  '\x01c5'# -> unI64 452+  '\x01c6'# -> unI64 452+  '\x01c8'# -> unI64 455+  '\x01c9'# -> unI64 455+  '\x01cb'# -> unI64 458+  '\x01cc'# -> unI64 458+  '\x01ce'# -> unI64 461+  '\x01d0'# -> unI64 463+  '\x01d2'# -> unI64 465+  '\x01d4'# -> unI64 467+  '\x01d6'# -> unI64 469+  '\x01d8'# -> unI64 471+  '\x01da'# -> unI64 473+  '\x01dc'# -> unI64 475+  '\x01dd'# -> unI64 398+  '\x01df'# -> unI64 478+  '\x01e1'# -> unI64 480+  '\x01e3'# -> unI64 482+  '\x01e5'# -> unI64 484+  '\x01e7'# -> unI64 486+  '\x01e9'# -> unI64 488+  '\x01eb'# -> unI64 490+  '\x01ed'# -> unI64 492+  '\x01ef'# -> unI64 494+  '\x01f2'# -> unI64 497+  '\x01f3'# -> unI64 497+  '\x01f5'# -> unI64 500+  '\x01f9'# -> unI64 504+  '\x01fb'# -> unI64 506+  '\x01fd'# -> unI64 508+  '\x01ff'# -> unI64 510+  '\x0201'# -> unI64 512+  '\x0203'# -> unI64 514+  '\x0205'# -> unI64 516+  '\x0207'# -> unI64 518+  '\x0209'# -> unI64 520+  '\x020b'# -> unI64 522+  '\x020d'# -> unI64 524+  '\x020f'# -> unI64 526+  '\x0211'# -> unI64 528+  '\x0213'# -> unI64 530+  '\x0215'# -> unI64 532+  '\x0217'# -> unI64 534+  '\x0219'# -> unI64 536+  '\x021b'# -> unI64 538+  '\x021d'# -> unI64 540+  '\x021f'# -> unI64 542+  '\x0223'# -> unI64 546+  '\x0225'# -> unI64 548+  '\x0227'# -> unI64 550+  '\x0229'# -> unI64 552+  '\x022b'# -> unI64 554+  '\x022d'# -> unI64 556+  '\x022f'# -> unI64 558+  '\x0231'# -> unI64 560+  '\x0233'# -> unI64 562+  '\x023c'# -> unI64 571+  '\x023f'# -> unI64 11390+  '\x0240'# -> unI64 11391+  '\x0242'# -> unI64 577+  '\x0247'# -> unI64 582+  '\x0249'# -> unI64 584+  '\x024b'# -> unI64 586+  '\x024d'# -> unI64 588+  '\x024f'# -> unI64 590+  '\x0250'# -> unI64 11375+  '\x0251'# -> unI64 11373+  '\x0252'# -> unI64 11376+  '\x0253'# -> unI64 385+  '\x0254'# -> unI64 390+  '\x0256'# -> unI64 393+  '\x0257'# -> unI64 394+  '\x0259'# -> unI64 399+  '\x025b'# -> unI64 400+  '\x025c'# -> unI64 42923+  '\x0260'# -> unI64 403+  '\x0261'# -> unI64 42924+  '\x0263'# -> unI64 404+  '\x0265'# -> unI64 42893+  '\x0266'# -> unI64 42922+  '\x0268'# -> unI64 407+  '\x0269'# -> unI64 406+  '\x026a'# -> unI64 42926+  '\x026b'# -> unI64 11362+  '\x026c'# -> unI64 42925+  '\x026f'# -> unI64 412+  '\x0271'# -> unI64 11374+  '\x0272'# -> unI64 413+  '\x0275'# -> unI64 415+  '\x027d'# -> unI64 11364+  '\x0280'# -> unI64 422+  '\x0282'# -> unI64 42949+  '\x0283'# -> unI64 425+  '\x0287'# -> unI64 42929+  '\x0288'# -> unI64 430+  '\x0289'# -> unI64 580+  '\x028a'# -> unI64 433+  '\x028b'# -> unI64 434+  '\x028c'# -> unI64 581+  '\x0292'# -> unI64 439+  '\x029d'# -> unI64 42930+  '\x029e'# -> unI64 42928+  '\x0345'# -> unI64 921+  '\x0371'# -> unI64 880+  '\x0373'# -> unI64 882+  '\x0377'# -> unI64 886+  '\x037b'# -> unI64 1021+  '\x037c'# -> unI64 1022+  '\x037d'# -> unI64 1023+  '\x03ac'# -> unI64 902+  '\x03ad'# -> unI64 904+  '\x03ae'# -> unI64 905+  '\x03af'# -> unI64 906+  '\x03b1'# -> unI64 913+  '\x03b2'# -> unI64 914+  '\x03b3'# -> unI64 915+  '\x03b4'# -> unI64 916+  '\x03b5'# -> unI64 917+  '\x03b6'# -> unI64 918+  '\x03b7'# -> unI64 919+  '\x03b8'# -> unI64 920+  '\x03b9'# -> unI64 921+  '\x03ba'# -> unI64 922+  '\x03bb'# -> unI64 923+  '\x03bc'# -> unI64 924+  '\x03bd'# -> unI64 925+  '\x03be'# -> unI64 926+  '\x03bf'# -> unI64 927+  '\x03c0'# -> unI64 928+  '\x03c1'# -> unI64 929+  '\x03c2'# -> unI64 931+  '\x03c3'# -> unI64 931+  '\x03c4'# -> unI64 932+  '\x03c5'# -> unI64 933+  '\x03c6'# -> unI64 934+  '\x03c7'# -> unI64 935+  '\x03c8'# -> unI64 936+  '\x03c9'# -> unI64 937+  '\x03ca'# -> unI64 938+  '\x03cb'# -> unI64 939+  '\x03cc'# -> unI64 908+  '\x03cd'# -> unI64 910+  '\x03ce'# -> unI64 911+  '\x03d0'# -> unI64 914+  '\x03d1'# -> unI64 920+  '\x03d5'# -> unI64 934+  '\x03d6'# -> unI64 928+  '\x03d7'# -> unI64 975+  '\x03d9'# -> unI64 984+  '\x03db'# -> unI64 986+  '\x03dd'# -> unI64 988+  '\x03df'# -> unI64 990+  '\x03e1'# -> unI64 992+  '\x03e3'# -> unI64 994+  '\x03e5'# -> unI64 996+  '\x03e7'# -> unI64 998+  '\x03e9'# -> unI64 1000+  '\x03eb'# -> unI64 1002+  '\x03ed'# -> unI64 1004+  '\x03ef'# -> unI64 1006+  '\x03f0'# -> unI64 922+  '\x03f1'# -> unI64 929+  '\x03f2'# -> unI64 1017+  '\x03f3'# -> unI64 895+  '\x03f5'# -> unI64 917+  '\x03f8'# -> unI64 1015+  '\x03fb'# -> unI64 1018+  '\x0430'# -> unI64 1040+  '\x0431'# -> unI64 1041+  '\x0432'# -> unI64 1042+  '\x0433'# -> unI64 1043+  '\x0434'# -> unI64 1044+  '\x0435'# -> unI64 1045+  '\x0436'# -> unI64 1046+  '\x0437'# -> unI64 1047+  '\x0438'# -> unI64 1048+  '\x0439'# -> unI64 1049+  '\x043a'# -> unI64 1050+  '\x043b'# -> unI64 1051+  '\x043c'# -> unI64 1052+  '\x043d'# -> unI64 1053+  '\x043e'# -> unI64 1054+  '\x043f'# -> unI64 1055+  '\x0440'# -> unI64 1056+  '\x0441'# -> unI64 1057+  '\x0442'# -> unI64 1058+  '\x0443'# -> unI64 1059+  '\x0444'# -> unI64 1060+  '\x0445'# -> unI64 1061+  '\x0446'# -> unI64 1062+  '\x0447'# -> unI64 1063+  '\x0448'# -> unI64 1064+  '\x0449'# -> unI64 1065+  '\x044a'# -> unI64 1066+  '\x044b'# -> unI64 1067+  '\x044c'# -> unI64 1068+  '\x044d'# -> unI64 1069+  '\x044e'# -> unI64 1070+  '\x044f'# -> unI64 1071+  '\x0450'# -> unI64 1024+  '\x0451'# -> unI64 1025+  '\x0452'# -> unI64 1026+  '\x0453'# -> unI64 1027+  '\x0454'# -> unI64 1028+  '\x0455'# -> unI64 1029+  '\x0456'# -> unI64 1030+  '\x0457'# -> unI64 1031+  '\x0458'# -> unI64 1032+  '\x0459'# -> unI64 1033+  '\x045a'# -> unI64 1034+  '\x045b'# -> unI64 1035+  '\x045c'# -> unI64 1036+  '\x045d'# -> unI64 1037+  '\x045e'# -> unI64 1038+  '\x045f'# -> unI64 1039+  '\x0461'# -> unI64 1120+  '\x0463'# -> unI64 1122+  '\x0465'# -> unI64 1124+  '\x0467'# -> unI64 1126+  '\x0469'# -> unI64 1128+  '\x046b'# -> unI64 1130+  '\x046d'# -> unI64 1132+  '\x046f'# -> unI64 1134+  '\x0471'# -> unI64 1136+  '\x0473'# -> unI64 1138+  '\x0475'# -> unI64 1140+  '\x0477'# -> unI64 1142+  '\x0479'# -> unI64 1144+  '\x047b'# -> unI64 1146+  '\x047d'# -> unI64 1148+  '\x047f'# -> unI64 1150+  '\x0481'# -> unI64 1152+  '\x048b'# -> unI64 1162+  '\x048d'# -> unI64 1164+  '\x048f'# -> unI64 1166+  '\x0491'# -> unI64 1168+  '\x0493'# -> unI64 1170+  '\x0495'# -> unI64 1172+  '\x0497'# -> unI64 1174+  '\x0499'# -> unI64 1176+  '\x049b'# -> unI64 1178+  '\x049d'# -> unI64 1180+  '\x049f'# -> unI64 1182+  '\x04a1'# -> unI64 1184+  '\x04a3'# -> unI64 1186+  '\x04a5'# -> unI64 1188+  '\x04a7'# -> unI64 1190+  '\x04a9'# -> unI64 1192+  '\x04ab'# -> unI64 1194+  '\x04ad'# -> unI64 1196+  '\x04af'# -> unI64 1198+  '\x04b1'# -> unI64 1200+  '\x04b3'# -> unI64 1202+  '\x04b5'# -> unI64 1204+  '\x04b7'# -> unI64 1206+  '\x04b9'# -> unI64 1208+  '\x04bb'# -> unI64 1210+  '\x04bd'# -> unI64 1212+  '\x04bf'# -> unI64 1214+  '\x04c2'# -> unI64 1217+  '\x04c4'# -> unI64 1219+  '\x04c6'# -> unI64 1221+  '\x04c8'# -> unI64 1223+  '\x04ca'# -> unI64 1225+  '\x04cc'# -> unI64 1227+  '\x04ce'# -> unI64 1229+  '\x04cf'# -> unI64 1216+  '\x04d1'# -> unI64 1232+  '\x04d3'# -> unI64 1234+  '\x04d5'# -> unI64 1236+  '\x04d7'# -> unI64 1238+  '\x04d9'# -> unI64 1240+  '\x04db'# -> unI64 1242+  '\x04dd'# -> unI64 1244+  '\x04df'# -> unI64 1246+  '\x04e1'# -> unI64 1248+  '\x04e3'# -> unI64 1250+  '\x04e5'# -> unI64 1252+  '\x04e7'# -> unI64 1254+  '\x04e9'# -> unI64 1256+  '\x04eb'# -> unI64 1258+  '\x04ed'# -> unI64 1260+  '\x04ef'# -> unI64 1262+  '\x04f1'# -> unI64 1264+  '\x04f3'# -> unI64 1266+  '\x04f5'# -> unI64 1268+  '\x04f7'# -> unI64 1270+  '\x04f9'# -> unI64 1272+  '\x04fb'# -> unI64 1274+  '\x04fd'# -> unI64 1276+  '\x04ff'# -> unI64 1278+  '\x0501'# -> unI64 1280+  '\x0503'# -> unI64 1282+  '\x0505'# -> unI64 1284+  '\x0507'# -> unI64 1286+  '\x0509'# -> unI64 1288+  '\x050b'# -> unI64 1290+  '\x050d'# -> unI64 1292+  '\x050f'# -> unI64 1294+  '\x0511'# -> unI64 1296+  '\x0513'# -> unI64 1298+  '\x0515'# -> unI64 1300+  '\x0517'# -> unI64 1302+  '\x0519'# -> unI64 1304+  '\x051b'# -> unI64 1306+  '\x051d'# -> unI64 1308+  '\x051f'# -> unI64 1310+  '\x0521'# -> unI64 1312+  '\x0523'# -> unI64 1314+  '\x0525'# -> unI64 1316+  '\x0527'# -> unI64 1318+  '\x0529'# -> unI64 1320+  '\x052b'# -> unI64 1322+  '\x052d'# -> unI64 1324+  '\x052f'# -> unI64 1326+  '\x0561'# -> unI64 1329+  '\x0562'# -> unI64 1330+  '\x0563'# -> unI64 1331+  '\x0564'# -> unI64 1332+  '\x0565'# -> unI64 1333+  '\x0566'# -> unI64 1334+  '\x0567'# -> unI64 1335+  '\x0568'# -> unI64 1336+  '\x0569'# -> unI64 1337+  '\x056a'# -> unI64 1338+  '\x056b'# -> unI64 1339+  '\x056c'# -> unI64 1340+  '\x056d'# -> unI64 1341+  '\x056e'# -> unI64 1342+  '\x056f'# -> unI64 1343+  '\x0570'# -> unI64 1344+  '\x0571'# -> unI64 1345+  '\x0572'# -> unI64 1346+  '\x0573'# -> unI64 1347+  '\x0574'# -> unI64 1348+  '\x0575'# -> unI64 1349+  '\x0576'# -> unI64 1350+  '\x0577'# -> unI64 1351+  '\x0578'# -> unI64 1352+  '\x0579'# -> unI64 1353+  '\x057a'# -> unI64 1354+  '\x057b'# -> unI64 1355+  '\x057c'# -> unI64 1356+  '\x057d'# -> unI64 1357+  '\x057e'# -> unI64 1358+  '\x057f'# -> unI64 1359+  '\x0580'# -> unI64 1360+  '\x0581'# -> unI64 1361+  '\x0582'# -> unI64 1362+  '\x0583'# -> unI64 1363+  '\x0584'# -> unI64 1364+  '\x0585'# -> unI64 1365+  '\x0586'# -> unI64 1366+  '\x10d0'# -> unI64 7312+  '\x10d1'# -> unI64 7313+  '\x10d2'# -> unI64 7314+  '\x10d3'# -> unI64 7315+  '\x10d4'# -> unI64 7316+  '\x10d5'# -> unI64 7317+  '\x10d6'# -> unI64 7318+  '\x10d7'# -> unI64 7319+  '\x10d8'# -> unI64 7320+  '\x10d9'# -> unI64 7321+  '\x10da'# -> unI64 7322+  '\x10db'# -> unI64 7323+  '\x10dc'# -> unI64 7324+  '\x10dd'# -> unI64 7325+  '\x10de'# -> unI64 7326+  '\x10df'# -> unI64 7327+  '\x10e0'# -> unI64 7328+  '\x10e1'# -> unI64 7329+  '\x10e2'# -> unI64 7330+  '\x10e3'# -> unI64 7331+  '\x10e4'# -> unI64 7332+  '\x10e5'# -> unI64 7333+  '\x10e6'# -> unI64 7334+  '\x10e7'# -> unI64 7335+  '\x10e8'# -> unI64 7336+  '\x10e9'# -> unI64 7337+  '\x10ea'# -> unI64 7338+  '\x10eb'# -> unI64 7339+  '\x10ec'# -> unI64 7340+  '\x10ed'# -> unI64 7341+  '\x10ee'# -> unI64 7342+  '\x10ef'# -> unI64 7343+  '\x10f0'# -> unI64 7344+  '\x10f1'# -> unI64 7345+  '\x10f2'# -> unI64 7346+  '\x10f3'# -> unI64 7347+  '\x10f4'# -> unI64 7348+  '\x10f5'# -> unI64 7349+  '\x10f6'# -> unI64 7350+  '\x10f7'# -> unI64 7351+  '\x10f8'# -> unI64 7352+  '\x10f9'# -> unI64 7353+  '\x10fa'# -> unI64 7354+  '\x10fd'# -> unI64 7357+  '\x10fe'# -> unI64 7358+  '\x10ff'# -> unI64 7359+  '\x13f8'# -> unI64 5104+  '\x13f9'# -> unI64 5105+  '\x13fa'# -> unI64 5106+  '\x13fb'# -> unI64 5107+  '\x13fc'# -> unI64 5108+  '\x13fd'# -> unI64 5109+  '\x1c80'# -> unI64 1042+  '\x1c81'# -> unI64 1044+  '\x1c82'# -> unI64 1054+  '\x1c83'# -> unI64 1057+  '\x1c84'# -> unI64 1058+  '\x1c85'# -> unI64 1058+  '\x1c86'# -> unI64 1066+  '\x1c87'# -> unI64 1122+  '\x1c88'# -> unI64 42570+  '\x1d79'# -> unI64 42877+  '\x1d7d'# -> unI64 11363+  '\x1d8e'# -> unI64 42950+  '\x1e01'# -> unI64 7680+  '\x1e03'# -> unI64 7682+  '\x1e05'# -> unI64 7684+  '\x1e07'# -> unI64 7686+  '\x1e09'# -> unI64 7688+  '\x1e0b'# -> unI64 7690+  '\x1e0d'# -> unI64 7692+  '\x1e0f'# -> unI64 7694+  '\x1e11'# -> unI64 7696+  '\x1e13'# -> unI64 7698+  '\x1e15'# -> unI64 7700+  '\x1e17'# -> unI64 7702+  '\x1e19'# -> unI64 7704+  '\x1e1b'# -> unI64 7706+  '\x1e1d'# -> unI64 7708+  '\x1e1f'# -> unI64 7710+  '\x1e21'# -> unI64 7712+  '\x1e23'# -> unI64 7714+  '\x1e25'# -> unI64 7716+  '\x1e27'# -> unI64 7718+  '\x1e29'# -> unI64 7720+  '\x1e2b'# -> unI64 7722+  '\x1e2d'# -> unI64 7724+  '\x1e2f'# -> unI64 7726+  '\x1e31'# -> unI64 7728+  '\x1e33'# -> unI64 7730+  '\x1e35'# -> unI64 7732+  '\x1e37'# -> unI64 7734+  '\x1e39'# -> unI64 7736+  '\x1e3b'# -> unI64 7738+  '\x1e3d'# -> unI64 7740+  '\x1e3f'# -> unI64 7742+  '\x1e41'# -> unI64 7744+  '\x1e43'# -> unI64 7746+  '\x1e45'# -> unI64 7748+  '\x1e47'# -> unI64 7750+  '\x1e49'# -> unI64 7752+  '\x1e4b'# -> unI64 7754+  '\x1e4d'# -> unI64 7756+  '\x1e4f'# -> unI64 7758+  '\x1e51'# -> unI64 7760+  '\x1e53'# -> unI64 7762+  '\x1e55'# -> unI64 7764+  '\x1e57'# -> unI64 7766+  '\x1e59'# -> unI64 7768+  '\x1e5b'# -> unI64 7770+  '\x1e5d'# -> unI64 7772+  '\x1e5f'# -> unI64 7774+  '\x1e61'# -> unI64 7776+  '\x1e63'# -> unI64 7778+  '\x1e65'# -> unI64 7780+  '\x1e67'# -> unI64 7782+  '\x1e69'# -> unI64 7784+  '\x1e6b'# -> unI64 7786+  '\x1e6d'# -> unI64 7788+  '\x1e6f'# -> unI64 7790+  '\x1e71'# -> unI64 7792+  '\x1e73'# -> unI64 7794+  '\x1e75'# -> unI64 7796+  '\x1e77'# -> unI64 7798+  '\x1e79'# -> unI64 7800+  '\x1e7b'# -> unI64 7802+  '\x1e7d'# -> unI64 7804+  '\x1e7f'# -> unI64 7806+  '\x1e81'# -> unI64 7808+  '\x1e83'# -> unI64 7810+  '\x1e85'# -> unI64 7812+  '\x1e87'# -> unI64 7814+  '\x1e89'# -> unI64 7816+  '\x1e8b'# -> unI64 7818+  '\x1e8d'# -> unI64 7820+  '\x1e8f'# -> unI64 7822+  '\x1e91'# -> unI64 7824+  '\x1e93'# -> unI64 7826+  '\x1e95'# -> unI64 7828+  '\x1e9b'# -> unI64 7776+  '\x1ea1'# -> unI64 7840+  '\x1ea3'# -> unI64 7842+  '\x1ea5'# -> unI64 7844+  '\x1ea7'# -> unI64 7846+  '\x1ea9'# -> unI64 7848+  '\x1eab'# -> unI64 7850+  '\x1ead'# -> unI64 7852+  '\x1eaf'# -> unI64 7854+  '\x1eb1'# -> unI64 7856+  '\x1eb3'# -> unI64 7858+  '\x1eb5'# -> unI64 7860+  '\x1eb7'# -> unI64 7862+  '\x1eb9'# -> unI64 7864+  '\x1ebb'# -> unI64 7866+  '\x1ebd'# -> unI64 7868+  '\x1ebf'# -> unI64 7870+  '\x1ec1'# -> unI64 7872+  '\x1ec3'# -> unI64 7874+  '\x1ec5'# -> unI64 7876+  '\x1ec7'# -> unI64 7878+  '\x1ec9'# -> unI64 7880+  '\x1ecb'# -> unI64 7882+  '\x1ecd'# -> unI64 7884+  '\x1ecf'# -> unI64 7886+  '\x1ed1'# -> unI64 7888+  '\x1ed3'# -> unI64 7890+  '\x1ed5'# -> unI64 7892+  '\x1ed7'# -> unI64 7894+  '\x1ed9'# -> unI64 7896+  '\x1edb'# -> unI64 7898+  '\x1edd'# -> unI64 7900+  '\x1edf'# -> unI64 7902+  '\x1ee1'# -> unI64 7904+  '\x1ee3'# -> unI64 7906+  '\x1ee5'# -> unI64 7908+  '\x1ee7'# -> unI64 7910+  '\x1ee9'# -> unI64 7912+  '\x1eeb'# -> unI64 7914+  '\x1eed'# -> unI64 7916+  '\x1eef'# -> unI64 7918+  '\x1ef1'# -> unI64 7920+  '\x1ef3'# -> unI64 7922+  '\x1ef5'# -> unI64 7924+  '\x1ef7'# -> unI64 7926+  '\x1ef9'# -> unI64 7928+  '\x1efb'# -> unI64 7930+  '\x1efd'# -> unI64 7932+  '\x1eff'# -> unI64 7934+  '\x1f00'# -> unI64 7944+  '\x1f01'# -> unI64 7945+  '\x1f02'# -> unI64 7946+  '\x1f03'# -> unI64 7947+  '\x1f04'# -> unI64 7948+  '\x1f05'# -> unI64 7949+  '\x1f06'# -> unI64 7950+  '\x1f07'# -> unI64 7951+  '\x1f10'# -> unI64 7960+  '\x1f11'# -> unI64 7961+  '\x1f12'# -> unI64 7962+  '\x1f13'# -> unI64 7963+  '\x1f14'# -> unI64 7964+  '\x1f15'# -> unI64 7965+  '\x1f20'# -> unI64 7976+  '\x1f21'# -> unI64 7977+  '\x1f22'# -> unI64 7978+  '\x1f23'# -> unI64 7979+  '\x1f24'# -> unI64 7980+  '\x1f25'# -> unI64 7981+  '\x1f26'# -> unI64 7982+  '\x1f27'# -> unI64 7983+  '\x1f30'# -> unI64 7992+  '\x1f31'# -> unI64 7993+  '\x1f32'# -> unI64 7994+  '\x1f33'# -> unI64 7995+  '\x1f34'# -> unI64 7996+  '\x1f35'# -> unI64 7997+  '\x1f36'# -> unI64 7998+  '\x1f37'# -> unI64 7999+  '\x1f40'# -> unI64 8008+  '\x1f41'# -> unI64 8009+  '\x1f42'# -> unI64 8010+  '\x1f43'# -> unI64 8011+  '\x1f44'# -> unI64 8012+  '\x1f45'# -> unI64 8013+  '\x1f51'# -> unI64 8025+  '\x1f53'# -> unI64 8027+  '\x1f55'# -> unI64 8029+  '\x1f57'# -> unI64 8031+  '\x1f60'# -> unI64 8040+  '\x1f61'# -> unI64 8041+  '\x1f62'# -> unI64 8042+  '\x1f63'# -> unI64 8043+  '\x1f64'# -> unI64 8044+  '\x1f65'# -> unI64 8045+  '\x1f66'# -> unI64 8046+  '\x1f67'# -> unI64 8047+  '\x1f70'# -> unI64 8122+  '\x1f71'# -> unI64 8123+  '\x1f72'# -> unI64 8136+  '\x1f73'# -> unI64 8137+  '\x1f74'# -> unI64 8138+  '\x1f75'# -> unI64 8139+  '\x1f76'# -> unI64 8154+  '\x1f77'# -> unI64 8155+  '\x1f78'# -> unI64 8184+  '\x1f79'# -> unI64 8185+  '\x1f7a'# -> unI64 8170+  '\x1f7b'# -> unI64 8171+  '\x1f7c'# -> unI64 8186+  '\x1f7d'# -> unI64 8187+  '\x1fb0'# -> unI64 8120+  '\x1fb1'# -> unI64 8121+  '\x1fbe'# -> unI64 921+  '\x1fd0'# -> unI64 8152+  '\x1fd1'# -> unI64 8153+  '\x1fe0'# -> unI64 8168+  '\x1fe1'# -> unI64 8169+  '\x1fe5'# -> unI64 8172+  '\x214e'# -> unI64 8498+  '\x2170'# -> unI64 8544+  '\x2171'# -> unI64 8545+  '\x2172'# -> unI64 8546+  '\x2173'# -> unI64 8547+  '\x2174'# -> unI64 8548+  '\x2175'# -> unI64 8549+  '\x2176'# -> unI64 8550+  '\x2177'# -> unI64 8551+  '\x2178'# -> unI64 8552+  '\x2179'# -> unI64 8553+  '\x217a'# -> unI64 8554+  '\x217b'# -> unI64 8555+  '\x217c'# -> unI64 8556+  '\x217d'# -> unI64 8557+  '\x217e'# -> unI64 8558+  '\x217f'# -> unI64 8559+  '\x2184'# -> unI64 8579+  '\x24d0'# -> unI64 9398+  '\x24d1'# -> unI64 9399+  '\x24d2'# -> unI64 9400+  '\x24d3'# -> unI64 9401+  '\x24d4'# -> unI64 9402+  '\x24d5'# -> unI64 9403+  '\x24d6'# -> unI64 9404+  '\x24d7'# -> unI64 9405+  '\x24d8'# -> unI64 9406+  '\x24d9'# -> unI64 9407+  '\x24da'# -> unI64 9408+  '\x24db'# -> unI64 9409+  '\x24dc'# -> unI64 9410+  '\x24dd'# -> unI64 9411+  '\x24de'# -> unI64 9412+  '\x24df'# -> unI64 9413+  '\x24e0'# -> unI64 9414+  '\x24e1'# -> unI64 9415+  '\x24e2'# -> unI64 9416+  '\x24e3'# -> unI64 9417+  '\x24e4'# -> unI64 9418+  '\x24e5'# -> unI64 9419+  '\x24e6'# -> unI64 9420+  '\x24e7'# -> unI64 9421+  '\x24e8'# -> unI64 9422+  '\x24e9'# -> unI64 9423+  '\x2c30'# -> unI64 11264+  '\x2c31'# -> unI64 11265+  '\x2c32'# -> unI64 11266+  '\x2c33'# -> unI64 11267+  '\x2c34'# -> unI64 11268+  '\x2c35'# -> unI64 11269+  '\x2c36'# -> unI64 11270+  '\x2c37'# -> unI64 11271+  '\x2c38'# -> unI64 11272+  '\x2c39'# -> unI64 11273+  '\x2c3a'# -> unI64 11274+  '\x2c3b'# -> unI64 11275+  '\x2c3c'# -> unI64 11276+  '\x2c3d'# -> unI64 11277+  '\x2c3e'# -> unI64 11278+  '\x2c3f'# -> unI64 11279+  '\x2c40'# -> unI64 11280+  '\x2c41'# -> unI64 11281+  '\x2c42'# -> unI64 11282+  '\x2c43'# -> unI64 11283+  '\x2c44'# -> unI64 11284+  '\x2c45'# -> unI64 11285+  '\x2c46'# -> unI64 11286+  '\x2c47'# -> unI64 11287+  '\x2c48'# -> unI64 11288+  '\x2c49'# -> unI64 11289+  '\x2c4a'# -> unI64 11290+  '\x2c4b'# -> unI64 11291+  '\x2c4c'# -> unI64 11292+  '\x2c4d'# -> unI64 11293+  '\x2c4e'# -> unI64 11294+  '\x2c4f'# -> unI64 11295+  '\x2c50'# -> unI64 11296+  '\x2c51'# -> unI64 11297+  '\x2c52'# -> unI64 11298+  '\x2c53'# -> unI64 11299+  '\x2c54'# -> unI64 11300+  '\x2c55'# -> unI64 11301+  '\x2c56'# -> unI64 11302+  '\x2c57'# -> unI64 11303+  '\x2c58'# -> unI64 11304+  '\x2c59'# -> unI64 11305+  '\x2c5a'# -> unI64 11306+  '\x2c5b'# -> unI64 11307+  '\x2c5c'# -> unI64 11308+  '\x2c5d'# -> unI64 11309+  '\x2c5e'# -> unI64 11310+  '\x2c5f'# -> unI64 11311+  '\x2c61'# -> unI64 11360+  '\x2c65'# -> unI64 570+  '\x2c66'# -> unI64 574+  '\x2c68'# -> unI64 11367+  '\x2c6a'# -> unI64 11369+  '\x2c6c'# -> unI64 11371+  '\x2c73'# -> unI64 11378+  '\x2c76'# -> unI64 11381+  '\x2c81'# -> unI64 11392+  '\x2c83'# -> unI64 11394+  '\x2c85'# -> unI64 11396+  '\x2c87'# -> unI64 11398+  '\x2c89'# -> unI64 11400+  '\x2c8b'# -> unI64 11402+  '\x2c8d'# -> unI64 11404+  '\x2c8f'# -> unI64 11406+  '\x2c91'# -> unI64 11408+  '\x2c93'# -> unI64 11410+  '\x2c95'# -> unI64 11412+  '\x2c97'# -> unI64 11414+  '\x2c99'# -> unI64 11416+  '\x2c9b'# -> unI64 11418+  '\x2c9d'# -> unI64 11420+  '\x2c9f'# -> unI64 11422+  '\x2ca1'# -> unI64 11424+  '\x2ca3'# -> unI64 11426+  '\x2ca5'# -> unI64 11428+  '\x2ca7'# -> unI64 11430+  '\x2ca9'# -> unI64 11432+  '\x2cab'# -> unI64 11434+  '\x2cad'# -> unI64 11436+  '\x2caf'# -> unI64 11438+  '\x2cb1'# -> unI64 11440+  '\x2cb3'# -> unI64 11442+  '\x2cb5'# -> unI64 11444+  '\x2cb7'# -> unI64 11446+  '\x2cb9'# -> unI64 11448+  '\x2cbb'# -> unI64 11450+  '\x2cbd'# -> unI64 11452+  '\x2cbf'# -> unI64 11454+  '\x2cc1'# -> unI64 11456+  '\x2cc3'# -> unI64 11458+  '\x2cc5'# -> unI64 11460+  '\x2cc7'# -> unI64 11462+  '\x2cc9'# -> unI64 11464+  '\x2ccb'# -> unI64 11466+  '\x2ccd'# -> unI64 11468+  '\x2ccf'# -> unI64 11470+  '\x2cd1'# -> unI64 11472+  '\x2cd3'# -> unI64 11474+  '\x2cd5'# -> unI64 11476+  '\x2cd7'# -> unI64 11478+  '\x2cd9'# -> unI64 11480+  '\x2cdb'# -> unI64 11482+  '\x2cdd'# -> unI64 11484+  '\x2cdf'# -> unI64 11486+  '\x2ce1'# -> unI64 11488+  '\x2ce3'# -> unI64 11490+  '\x2cec'# -> unI64 11499+  '\x2cee'# -> unI64 11501+  '\x2cf3'# -> unI64 11506+  '\x2d00'# -> unI64 4256+  '\x2d01'# -> unI64 4257+  '\x2d02'# -> unI64 4258+  '\x2d03'# -> unI64 4259+  '\x2d04'# -> unI64 4260+  '\x2d05'# -> unI64 4261+  '\x2d06'# -> unI64 4262+  '\x2d07'# -> unI64 4263+  '\x2d08'# -> unI64 4264+  '\x2d09'# -> unI64 4265+  '\x2d0a'# -> unI64 4266+  '\x2d0b'# -> unI64 4267+  '\x2d0c'# -> unI64 4268+  '\x2d0d'# -> unI64 4269+  '\x2d0e'# -> unI64 4270+  '\x2d0f'# -> unI64 4271+  '\x2d10'# -> unI64 4272+  '\x2d11'# -> unI64 4273+  '\x2d12'# -> unI64 4274+  '\x2d13'# -> unI64 4275+  '\x2d14'# -> unI64 4276+  '\x2d15'# -> unI64 4277+  '\x2d16'# -> unI64 4278+  '\x2d17'# -> unI64 4279+  '\x2d18'# -> unI64 4280+  '\x2d19'# -> unI64 4281+  '\x2d1a'# -> unI64 4282+  '\x2d1b'# -> unI64 4283+  '\x2d1c'# -> unI64 4284+  '\x2d1d'# -> unI64 4285+  '\x2d1e'# -> unI64 4286+  '\x2d1f'# -> unI64 4287+  '\x2d20'# -> unI64 4288+  '\x2d21'# -> unI64 4289+  '\x2d22'# -> unI64 4290+  '\x2d23'# -> unI64 4291+  '\x2d24'# -> unI64 4292+  '\x2d25'# -> unI64 4293+  '\x2d27'# -> unI64 4295+  '\x2d2d'# -> unI64 4301+  '\xa641'# -> unI64 42560+  '\xa643'# -> unI64 42562+  '\xa645'# -> unI64 42564+  '\xa647'# -> unI64 42566+  '\xa649'# -> unI64 42568+  '\xa64b'# -> unI64 42570+  '\xa64d'# -> unI64 42572+  '\xa64f'# -> unI64 42574+  '\xa651'# -> unI64 42576+  '\xa653'# -> unI64 42578+  '\xa655'# -> unI64 42580+  '\xa657'# -> unI64 42582+  '\xa659'# -> unI64 42584+  '\xa65b'# -> unI64 42586+  '\xa65d'# -> unI64 42588+  '\xa65f'# -> unI64 42590+  '\xa661'# -> unI64 42592+  '\xa663'# -> unI64 42594+  '\xa665'# -> unI64 42596+  '\xa667'# -> unI64 42598+  '\xa669'# -> unI64 42600+  '\xa66b'# -> unI64 42602+  '\xa66d'# -> unI64 42604+  '\xa681'# -> unI64 42624+  '\xa683'# -> unI64 42626+  '\xa685'# -> unI64 42628+  '\xa687'# -> unI64 42630+  '\xa689'# -> unI64 42632+  '\xa68b'# -> unI64 42634+  '\xa68d'# -> unI64 42636+  '\xa68f'# -> unI64 42638+  '\xa691'# -> unI64 42640+  '\xa693'# -> unI64 42642+  '\xa695'# -> unI64 42644+  '\xa697'# -> unI64 42646+  '\xa699'# -> unI64 42648+  '\xa69b'# -> unI64 42650+  '\xa723'# -> unI64 42786+  '\xa725'# -> unI64 42788+  '\xa727'# -> unI64 42790+  '\xa729'# -> unI64 42792+  '\xa72b'# -> unI64 42794+  '\xa72d'# -> unI64 42796+  '\xa72f'# -> unI64 42798+  '\xa733'# -> unI64 42802+  '\xa735'# -> unI64 42804+  '\xa737'# -> unI64 42806+  '\xa739'# -> unI64 42808+  '\xa73b'# -> unI64 42810+  '\xa73d'# -> unI64 42812+  '\xa73f'# -> unI64 42814+  '\xa741'# -> unI64 42816+  '\xa743'# -> unI64 42818+  '\xa745'# -> unI64 42820+  '\xa747'# -> unI64 42822+  '\xa749'# -> unI64 42824+  '\xa74b'# -> unI64 42826+  '\xa74d'# -> unI64 42828+  '\xa74f'# -> unI64 42830+  '\xa751'# -> unI64 42832+  '\xa753'# -> unI64 42834+  '\xa755'# -> unI64 42836+  '\xa757'# -> unI64 42838+  '\xa759'# -> unI64 42840+  '\xa75b'# -> unI64 42842+  '\xa75d'# -> unI64 42844+  '\xa75f'# -> unI64 42846+  '\xa761'# -> unI64 42848+  '\xa763'# -> unI64 42850+  '\xa765'# -> unI64 42852+  '\xa767'# -> unI64 42854+  '\xa769'# -> unI64 42856+  '\xa76b'# -> unI64 42858+  '\xa76d'# -> unI64 42860+  '\xa76f'# -> unI64 42862+  '\xa77a'# -> unI64 42873+  '\xa77c'# -> unI64 42875+  '\xa77f'# -> unI64 42878+  '\xa781'# -> unI64 42880+  '\xa783'# -> unI64 42882+  '\xa785'# -> unI64 42884+  '\xa787'# -> unI64 42886+  '\xa78c'# -> unI64 42891+  '\xa791'# -> unI64 42896+  '\xa793'# -> unI64 42898+  '\xa794'# -> unI64 42948+  '\xa797'# -> unI64 42902+  '\xa799'# -> unI64 42904+  '\xa79b'# -> unI64 42906+  '\xa79d'# -> unI64 42908+  '\xa79f'# -> unI64 42910+  '\xa7a1'# -> unI64 42912+  '\xa7a3'# -> unI64 42914+  '\xa7a5'# -> unI64 42916+  '\xa7a7'# -> unI64 42918+  '\xa7a9'# -> unI64 42920+  '\xa7b5'# -> unI64 42932+  '\xa7b7'# -> unI64 42934+  '\xa7b9'# -> unI64 42936+  '\xa7bb'# -> unI64 42938+  '\xa7bd'# -> unI64 42940+  '\xa7bf'# -> unI64 42942+  '\xa7c1'# -> unI64 42944+  '\xa7c3'# -> unI64 42946+  '\xa7c8'# -> unI64 42951+  '\xa7ca'# -> unI64 42953+  '\xa7d1'# -> unI64 42960+  '\xa7d7'# -> unI64 42966+  '\xa7d9'# -> unI64 42968+  '\xa7f6'# -> unI64 42997+  '\xab53'# -> unI64 42931+  '\xab70'# -> unI64 5024+  '\xab71'# -> unI64 5025+  '\xab72'# -> unI64 5026+  '\xab73'# -> unI64 5027+  '\xab74'# -> unI64 5028+  '\xab75'# -> unI64 5029+  '\xab76'# -> unI64 5030+  '\xab77'# -> unI64 5031+  '\xab78'# -> unI64 5032+  '\xab79'# -> unI64 5033+  '\xab7a'# -> unI64 5034+  '\xab7b'# -> unI64 5035+  '\xab7c'# -> unI64 5036+  '\xab7d'# -> unI64 5037+  '\xab7e'# -> unI64 5038+  '\xab7f'# -> unI64 5039+  '\xab80'# -> unI64 5040+  '\xab81'# -> unI64 5041+  '\xab82'# -> unI64 5042+  '\xab83'# -> unI64 5043+  '\xab84'# -> unI64 5044+  '\xab85'# -> unI64 5045+  '\xab86'# -> unI64 5046+  '\xab87'# -> unI64 5047+  '\xab88'# -> unI64 5048+  '\xab89'# -> unI64 5049+  '\xab8a'# -> unI64 5050+  '\xab8b'# -> unI64 5051+  '\xab8c'# -> unI64 5052+  '\xab8d'# -> unI64 5053+  '\xab8e'# -> unI64 5054+  '\xab8f'# -> unI64 5055+  '\xab90'# -> unI64 5056+  '\xab91'# -> unI64 5057+  '\xab92'# -> unI64 5058+  '\xab93'# -> unI64 5059+  '\xab94'# -> unI64 5060+  '\xab95'# -> unI64 5061+  '\xab96'# -> unI64 5062+  '\xab97'# -> unI64 5063+  '\xab98'# -> unI64 5064+  '\xab99'# -> unI64 5065+  '\xab9a'# -> unI64 5066+  '\xab9b'# -> unI64 5067+  '\xab9c'# -> unI64 5068+  '\xab9d'# -> unI64 5069+  '\xab9e'# -> unI64 5070+  '\xab9f'# -> unI64 5071+  '\xaba0'# -> unI64 5072+  '\xaba1'# -> unI64 5073+  '\xaba2'# -> unI64 5074+  '\xaba3'# -> unI64 5075+  '\xaba4'# -> unI64 5076+  '\xaba5'# -> unI64 5077+  '\xaba6'# -> unI64 5078+  '\xaba7'# -> unI64 5079+  '\xaba8'# -> unI64 5080+  '\xaba9'# -> unI64 5081+  '\xabaa'# -> unI64 5082+  '\xabab'# -> unI64 5083+  '\xabac'# -> unI64 5084+  '\xabad'# -> unI64 5085+  '\xabae'# -> unI64 5086+  '\xabaf'# -> unI64 5087+  '\xabb0'# -> unI64 5088+  '\xabb1'# -> unI64 5089+  '\xabb2'# -> unI64 5090+  '\xabb3'# -> unI64 5091+  '\xabb4'# -> unI64 5092+  '\xabb5'# -> unI64 5093+  '\xabb6'# -> unI64 5094+  '\xabb7'# -> unI64 5095+  '\xabb8'# -> unI64 5096+  '\xabb9'# -> unI64 5097+  '\xabba'# -> unI64 5098+  '\xabbb'# -> unI64 5099+  '\xabbc'# -> unI64 5100+  '\xabbd'# -> unI64 5101+  '\xabbe'# -> unI64 5102+  '\xabbf'# -> unI64 5103+  '\xff41'# -> unI64 65313+  '\xff42'# -> unI64 65314+  '\xff43'# -> unI64 65315+  '\xff44'# -> unI64 65316+  '\xff45'# -> unI64 65317+  '\xff46'# -> unI64 65318+  '\xff47'# -> unI64 65319+  '\xff48'# -> unI64 65320+  '\xff49'# -> unI64 65321+  '\xff4a'# -> unI64 65322+  '\xff4b'# -> unI64 65323+  '\xff4c'# -> unI64 65324+  '\xff4d'# -> unI64 65325+  '\xff4e'# -> unI64 65326+  '\xff4f'# -> unI64 65327+  '\xff50'# -> unI64 65328+  '\xff51'# -> unI64 65329+  '\xff52'# -> unI64 65330+  '\xff53'# -> unI64 65331+  '\xff54'# -> unI64 65332+  '\xff55'# -> unI64 65333+  '\xff56'# -> unI64 65334+  '\xff57'# -> unI64 65335+  '\xff58'# -> unI64 65336+  '\xff59'# -> unI64 65337+  '\xff5a'# -> unI64 65338+  '\x10428'# -> unI64 66560+  '\x10429'# -> unI64 66561+  '\x1042a'# -> unI64 66562+  '\x1042b'# -> unI64 66563+  '\x1042c'# -> unI64 66564+  '\x1042d'# -> unI64 66565+  '\x1042e'# -> unI64 66566+  '\x1042f'# -> unI64 66567+  '\x10430'# -> unI64 66568+  '\x10431'# -> unI64 66569+  '\x10432'# -> unI64 66570+  '\x10433'# -> unI64 66571+  '\x10434'# -> unI64 66572+  '\x10435'# -> unI64 66573+  '\x10436'# -> unI64 66574+  '\x10437'# -> unI64 66575+  '\x10438'# -> unI64 66576+  '\x10439'# -> unI64 66577+  '\x1043a'# -> unI64 66578+  '\x1043b'# -> unI64 66579+  '\x1043c'# -> unI64 66580+  '\x1043d'# -> unI64 66581+  '\x1043e'# -> unI64 66582+  '\x1043f'# -> unI64 66583+  '\x10440'# -> unI64 66584+  '\x10441'# -> unI64 66585+  '\x10442'# -> unI64 66586+  '\x10443'# -> unI64 66587+  '\x10444'# -> unI64 66588+  '\x10445'# -> unI64 66589+  '\x10446'# -> unI64 66590+  '\x10447'# -> unI64 66591+  '\x10448'# -> unI64 66592+  '\x10449'# -> unI64 66593+  '\x1044a'# -> unI64 66594+  '\x1044b'# -> unI64 66595+  '\x1044c'# -> unI64 66596+  '\x1044d'# -> unI64 66597+  '\x1044e'# -> unI64 66598+  '\x1044f'# -> unI64 66599+  '\x104d8'# -> unI64 66736+  '\x104d9'# -> unI64 66737+  '\x104da'# -> unI64 66738+  '\x104db'# -> unI64 66739+  '\x104dc'# -> unI64 66740+  '\x104dd'# -> unI64 66741+  '\x104de'# -> unI64 66742+  '\x104df'# -> unI64 66743+  '\x104e0'# -> unI64 66744+  '\x104e1'# -> unI64 66745+  '\x104e2'# -> unI64 66746+  '\x104e3'# -> unI64 66747+  '\x104e4'# -> unI64 66748+  '\x104e5'# -> unI64 66749+  '\x104e6'# -> unI64 66750+  '\x104e7'# -> unI64 66751+  '\x104e8'# -> unI64 66752+  '\x104e9'# -> unI64 66753+  '\x104ea'# -> unI64 66754+  '\x104eb'# -> unI64 66755+  '\x104ec'# -> unI64 66756+  '\x104ed'# -> unI64 66757+  '\x104ee'# -> unI64 66758+  '\x104ef'# -> unI64 66759+  '\x104f0'# -> unI64 66760+  '\x104f1'# -> unI64 66761+  '\x104f2'# -> unI64 66762+  '\x104f3'# -> unI64 66763+  '\x104f4'# -> unI64 66764+  '\x104f5'# -> unI64 66765+  '\x104f6'# -> unI64 66766+  '\x104f7'# -> unI64 66767+  '\x104f8'# -> unI64 66768+  '\x104f9'# -> unI64 66769+  '\x104fa'# -> unI64 66770+  '\x104fb'# -> unI64 66771+  '\x10597'# -> unI64 66928+  '\x10598'# -> unI64 66929+  '\x10599'# -> unI64 66930+  '\x1059a'# -> unI64 66931+  '\x1059b'# -> unI64 66932+  '\x1059c'# -> unI64 66933+  '\x1059d'# -> unI64 66934+  '\x1059e'# -> unI64 66935+  '\x1059f'# -> unI64 66936+  '\x105a0'# -> unI64 66937+  '\x105a1'# -> unI64 66938+  '\x105a3'# -> unI64 66940+  '\x105a4'# -> unI64 66941+  '\x105a5'# -> unI64 66942+  '\x105a6'# -> unI64 66943+  '\x105a7'# -> unI64 66944+  '\x105a8'# -> unI64 66945+  '\x105a9'# -> unI64 66946+  '\x105aa'# -> unI64 66947+  '\x105ab'# -> unI64 66948+  '\x105ac'# -> unI64 66949+  '\x105ad'# -> unI64 66950+  '\x105ae'# -> unI64 66951+  '\x105af'# -> unI64 66952+  '\x105b0'# -> unI64 66953+  '\x105b1'# -> unI64 66954+  '\x105b3'# -> unI64 66956+  '\x105b4'# -> unI64 66957+  '\x105b5'# -> unI64 66958+  '\x105b6'# -> unI64 66959+  '\x105b7'# -> unI64 66960+  '\x105b8'# -> unI64 66961+  '\x105b9'# -> unI64 66962+  '\x105bb'# -> unI64 66964+  '\x105bc'# -> unI64 66965+  '\x10cc0'# -> unI64 68736+  '\x10cc1'# -> unI64 68737+  '\x10cc2'# -> unI64 68738+  '\x10cc3'# -> unI64 68739+  '\x10cc4'# -> unI64 68740+  '\x10cc5'# -> unI64 68741+  '\x10cc6'# -> unI64 68742+  '\x10cc7'# -> unI64 68743+  '\x10cc8'# -> unI64 68744+  '\x10cc9'# -> unI64 68745+  '\x10cca'# -> unI64 68746+  '\x10ccb'# -> unI64 68747+  '\x10ccc'# -> unI64 68748+  '\x10ccd'# -> unI64 68749+  '\x10cce'# -> unI64 68750+  '\x10ccf'# -> unI64 68751+  '\x10cd0'# -> unI64 68752+  '\x10cd1'# -> unI64 68753+  '\x10cd2'# -> unI64 68754+  '\x10cd3'# -> unI64 68755+  '\x10cd4'# -> unI64 68756+  '\x10cd5'# -> unI64 68757+  '\x10cd6'# -> unI64 68758+  '\x10cd7'# -> unI64 68759+  '\x10cd8'# -> unI64 68760+  '\x10cd9'# -> unI64 68761+  '\x10cda'# -> unI64 68762+  '\x10cdb'# -> unI64 68763+  '\x10cdc'# -> unI64 68764+  '\x10cdd'# -> unI64 68765+  '\x10cde'# -> unI64 68766+  '\x10cdf'# -> unI64 68767+  '\x10ce0'# -> unI64 68768+  '\x10ce1'# -> unI64 68769+  '\x10ce2'# -> unI64 68770+  '\x10ce3'# -> unI64 68771+  '\x10ce4'# -> unI64 68772+  '\x10ce5'# -> unI64 68773+  '\x10ce6'# -> unI64 68774+  '\x10ce7'# -> unI64 68775+  '\x10ce8'# -> unI64 68776+  '\x10ce9'# -> unI64 68777+  '\x10cea'# -> unI64 68778+  '\x10ceb'# -> unI64 68779+  '\x10cec'# -> unI64 68780+  '\x10ced'# -> unI64 68781+  '\x10cee'# -> unI64 68782+  '\x10cef'# -> unI64 68783+  '\x10cf0'# -> unI64 68784+  '\x10cf1'# -> unI64 68785+  '\x10cf2'# -> unI64 68786+  '\x118c0'# -> unI64 71840+  '\x118c1'# -> unI64 71841+  '\x118c2'# -> unI64 71842+  '\x118c3'# -> unI64 71843+  '\x118c4'# -> unI64 71844+  '\x118c5'# -> unI64 71845+  '\x118c6'# -> unI64 71846+  '\x118c7'# -> unI64 71847+  '\x118c8'# -> unI64 71848+  '\x118c9'# -> unI64 71849+  '\x118ca'# -> unI64 71850+  '\x118cb'# -> unI64 71851+  '\x118cc'# -> unI64 71852+  '\x118cd'# -> unI64 71853+  '\x118ce'# -> unI64 71854+  '\x118cf'# -> unI64 71855+  '\x118d0'# -> unI64 71856+  '\x118d1'# -> unI64 71857+  '\x118d2'# -> unI64 71858+  '\x118d3'# -> unI64 71859+  '\x118d4'# -> unI64 71860+  '\x118d5'# -> unI64 71861+  '\x118d6'# -> unI64 71862+  '\x118d7'# -> unI64 71863+  '\x118d8'# -> unI64 71864+  '\x118d9'# -> unI64 71865+  '\x118da'# -> unI64 71866+  '\x118db'# -> unI64 71867+  '\x118dc'# -> unI64 71868+  '\x118dd'# -> unI64 71869+  '\x118de'# -> unI64 71870+  '\x118df'# -> unI64 71871+  '\x16e60'# -> unI64 93760+  '\x16e61'# -> unI64 93761+  '\x16e62'# -> unI64 93762+  '\x16e63'# -> unI64 93763+  '\x16e64'# -> unI64 93764+  '\x16e65'# -> unI64 93765+  '\x16e66'# -> unI64 93766+  '\x16e67'# -> unI64 93767+  '\x16e68'# -> unI64 93768+  '\x16e69'# -> unI64 93769+  '\x16e6a'# -> unI64 93770+  '\x16e6b'# -> unI64 93771+  '\x16e6c'# -> unI64 93772+  '\x16e6d'# -> unI64 93773+  '\x16e6e'# -> unI64 93774+  '\x16e6f'# -> unI64 93775+  '\x16e70'# -> unI64 93776+  '\x16e71'# -> unI64 93777+  '\x16e72'# -> unI64 93778+  '\x16e73'# -> unI64 93779+  '\x16e74'# -> unI64 93780+  '\x16e75'# -> unI64 93781+  '\x16e76'# -> unI64 93782+  '\x16e77'# -> unI64 93783+  '\x16e78'# -> unI64 93784+  '\x16e79'# -> unI64 93785+  '\x16e7a'# -> unI64 93786+  '\x16e7b'# -> unI64 93787+  '\x16e7c'# -> unI64 93788+  '\x16e7d'# -> unI64 93789+  '\x16e7e'# -> unI64 93790+  '\x16e7f'# -> unI64 93791+  '\x1e922'# -> unI64 125184+  '\x1e923'# -> unI64 125185+  '\x1e924'# -> unI64 125186+  '\x1e925'# -> unI64 125187+  '\x1e926'# -> unI64 125188+  '\x1e927'# -> unI64 125189+  '\x1e928'# -> unI64 125190+  '\x1e929'# -> unI64 125191+  '\x1e92a'# -> unI64 125192+  '\x1e92b'# -> unI64 125193+  '\x1e92c'# -> unI64 125194+  '\x1e92d'# -> unI64 125195+  '\x1e92e'# -> unI64 125196+  '\x1e92f'# -> unI64 125197+  '\x1e930'# -> unI64 125198+  '\x1e931'# -> unI64 125199+  '\x1e932'# -> unI64 125200+  '\x1e933'# -> unI64 125201+  '\x1e934'# -> unI64 125202+  '\x1e935'# -> unI64 125203+  '\x1e936'# -> unI64 125204+  '\x1e937'# -> unI64 125205+  '\x1e938'# -> unI64 125206+  '\x1e939'# -> unI64 125207+  '\x1e93a'# -> unI64 125208+  '\x1e93b'# -> unI64 125209+  '\x1e93c'# -> unI64 125210+  '\x1e93d'# -> unI64 125211+  '\x1e93e'# -> unI64 125212+  '\x1e93f'# -> unI64 125213+  '\x1e940'# -> unI64 125214+  '\x1e941'# -> unI64 125215+  '\x1e942'# -> unI64 125216+  '\x1e943'# -> unI64 125217+  _ -> unI64 0+lowerMapping :: Char# -> _ {- unboxed Int64 -}+{-# NOINLINE lowerMapping #-}+lowerMapping = \case+  -- LATIN CAPITAL LETTER I WITH DOT ABOVE+  '\x0130'# -> unI64 1625292905+  '\x0041'# -> unI64 97+  '\x0042'# -> unI64 98+  '\x0043'# -> unI64 99+  '\x0044'# -> unI64 100+  '\x0045'# -> unI64 101+  '\x0046'# -> unI64 102+  '\x0047'# -> unI64 103+  '\x0048'# -> unI64 104+  '\x0049'# -> unI64 105+  '\x004a'# -> unI64 106+  '\x004b'# -> unI64 107+  '\x004c'# -> unI64 108+  '\x004d'# -> unI64 109+  '\x004e'# -> unI64 110+  '\x004f'# -> unI64 111+  '\x0050'# -> unI64 112+  '\x0051'# -> unI64 113+  '\x0052'# -> unI64 114+  '\x0053'# -> unI64 115+  '\x0054'# -> unI64 116+  '\x0055'# -> unI64 117+  '\x0056'# -> unI64 118+  '\x0057'# -> unI64 119+  '\x0058'# -> unI64 120+  '\x0059'# -> unI64 121+  '\x005a'# -> unI64 122+  '\x00c0'# -> unI64 224+  '\x00c1'# -> unI64 225+  '\x00c2'# -> unI64 226+  '\x00c3'# -> unI64 227+  '\x00c4'# -> unI64 228+  '\x00c5'# -> unI64 229+  '\x00c6'# -> unI64 230+  '\x00c7'# -> unI64 231+  '\x00c8'# -> unI64 232+  '\x00c9'# -> unI64 233+  '\x00ca'# -> unI64 234+  '\x00cb'# -> unI64 235+  '\x00cc'# -> unI64 236+  '\x00cd'# -> unI64 237+  '\x00ce'# -> unI64 238+  '\x00cf'# -> unI64 239+  '\x00d0'# -> unI64 240+  '\x00d1'# -> unI64 241+  '\x00d2'# -> unI64 242+  '\x00d3'# -> unI64 243+  '\x00d4'# -> unI64 244+  '\x00d5'# -> unI64 245+  '\x00d6'# -> unI64 246+  '\x00d8'# -> unI64 248+  '\x00d9'# -> unI64 249+  '\x00da'# -> unI64 250+  '\x00db'# -> unI64 251+  '\x00dc'# -> unI64 252+  '\x00dd'# -> unI64 253+  '\x00de'# -> unI64 254+  '\x0100'# -> unI64 257+  '\x0102'# -> unI64 259+  '\x0104'# -> unI64 261+  '\x0106'# -> unI64 263+  '\x0108'# -> unI64 265+  '\x010a'# -> unI64 267+  '\x010c'# -> unI64 269+  '\x010e'# -> unI64 271+  '\x0110'# -> unI64 273+  '\x0112'# -> unI64 275+  '\x0114'# -> unI64 277+  '\x0116'# -> unI64 279+  '\x0118'# -> unI64 281+  '\x011a'# -> unI64 283+  '\x011c'# -> unI64 285+  '\x011e'# -> unI64 287+  '\x0120'# -> unI64 289+  '\x0122'# -> unI64 291+  '\x0124'# -> unI64 293+  '\x0126'# -> unI64 295+  '\x0128'# -> unI64 297+  '\x012a'# -> unI64 299+  '\x012c'# -> unI64 301+  '\x012e'# -> unI64 303+  '\x0132'# -> unI64 307+  '\x0134'# -> unI64 309+  '\x0136'# -> unI64 311+  '\x0139'# -> unI64 314+  '\x013b'# -> unI64 316+  '\x013d'# -> unI64 318+  '\x013f'# -> unI64 320+  '\x0141'# -> unI64 322+  '\x0143'# -> unI64 324+  '\x0145'# -> unI64 326+  '\x0147'# -> unI64 328+  '\x014a'# -> unI64 331+  '\x014c'# -> unI64 333+  '\x014e'# -> unI64 335+  '\x0150'# -> unI64 337+  '\x0152'# -> unI64 339+  '\x0154'# -> unI64 341+  '\x0156'# -> unI64 343+  '\x0158'# -> unI64 345+  '\x015a'# -> unI64 347+  '\x015c'# -> unI64 349+  '\x015e'# -> unI64 351+  '\x0160'# -> unI64 353+  '\x0162'# -> unI64 355+  '\x0164'# -> unI64 357+  '\x0166'# -> unI64 359+  '\x0168'# -> unI64 361+  '\x016a'# -> unI64 363+  '\x016c'# -> unI64 365+  '\x016e'# -> unI64 367+  '\x0170'# -> unI64 369+  '\x0172'# -> unI64 371+  '\x0174'# -> unI64 373+  '\x0176'# -> unI64 375+  '\x0178'# -> unI64 255+  '\x0179'# -> unI64 378+  '\x017b'# -> unI64 380+  '\x017d'# -> unI64 382+  '\x0181'# -> unI64 595+  '\x0182'# -> unI64 387+  '\x0184'# -> unI64 389+  '\x0186'# -> unI64 596+  '\x0187'# -> unI64 392+  '\x0189'# -> unI64 598+  '\x018a'# -> unI64 599+  '\x018b'# -> unI64 396+  '\x018e'# -> unI64 477+  '\x018f'# -> unI64 601+  '\x0190'# -> unI64 603+  '\x0191'# -> unI64 402+  '\x0193'# -> unI64 608+  '\x0194'# -> unI64 611+  '\x0196'# -> unI64 617+  '\x0197'# -> unI64 616+  '\x0198'# -> unI64 409+  '\x019c'# -> unI64 623+  '\x019d'# -> unI64 626+  '\x019f'# -> unI64 629+  '\x01a0'# -> unI64 417+  '\x01a2'# -> unI64 419+  '\x01a4'# -> unI64 421+  '\x01a6'# -> unI64 640+  '\x01a7'# -> unI64 424+  '\x01a9'# -> unI64 643+  '\x01ac'# -> unI64 429+  '\x01ae'# -> unI64 648+  '\x01af'# -> unI64 432+  '\x01b1'# -> unI64 650+  '\x01b2'# -> unI64 651+  '\x01b3'# -> unI64 436+  '\x01b5'# -> unI64 438+  '\x01b7'# -> unI64 658+  '\x01b8'# -> unI64 441+  '\x01bc'# -> unI64 445+  '\x01c4'# -> unI64 454+  '\x01c5'# -> unI64 454+  '\x01c7'# -> unI64 457+  '\x01c8'# -> unI64 457+  '\x01ca'# -> unI64 460+  '\x01cb'# -> unI64 460+  '\x01cd'# -> unI64 462+  '\x01cf'# -> unI64 464+  '\x01d1'# -> unI64 466+  '\x01d3'# -> unI64 468+  '\x01d5'# -> unI64 470+  '\x01d7'# -> unI64 472+  '\x01d9'# -> unI64 474+  '\x01db'# -> unI64 476+  '\x01de'# -> unI64 479+  '\x01e0'# -> unI64 481+  '\x01e2'# -> unI64 483+  '\x01e4'# -> unI64 485+  '\x01e6'# -> unI64 487+  '\x01e8'# -> unI64 489+  '\x01ea'# -> unI64 491+  '\x01ec'# -> unI64 493+  '\x01ee'# -> unI64 495+  '\x01f1'# -> unI64 499+  '\x01f2'# -> unI64 499+  '\x01f4'# -> unI64 501+  '\x01f6'# -> unI64 405+  '\x01f7'# -> unI64 447+  '\x01f8'# -> unI64 505+  '\x01fa'# -> unI64 507+  '\x01fc'# -> unI64 509+  '\x01fe'# -> unI64 511+  '\x0200'# -> unI64 513+  '\x0202'# -> unI64 515+  '\x0204'# -> unI64 517+  '\x0206'# -> unI64 519+  '\x0208'# -> unI64 521+  '\x020a'# -> unI64 523+  '\x020c'# -> unI64 525+  '\x020e'# -> unI64 527+  '\x0210'# -> unI64 529+  '\x0212'# -> unI64 531+  '\x0214'# -> unI64 533+  '\x0216'# -> unI64 535+  '\x0218'# -> unI64 537+  '\x021a'# -> unI64 539+  '\x021c'# -> unI64 541+  '\x021e'# -> unI64 543+  '\x0220'# -> unI64 414+  '\x0222'# -> unI64 547+  '\x0224'# -> unI64 549+  '\x0226'# -> unI64 551+  '\x0228'# -> unI64 553+  '\x022a'# -> unI64 555+  '\x022c'# -> unI64 557+  '\x022e'# -> unI64 559+  '\x0230'# -> unI64 561+  '\x0232'# -> unI64 563+  '\x023a'# -> unI64 11365+  '\x023b'# -> unI64 572+  '\x023d'# -> unI64 410+  '\x023e'# -> unI64 11366+  '\x0241'# -> unI64 578+  '\x0243'# -> unI64 384+  '\x0244'# -> unI64 649+  '\x0245'# -> unI64 652+  '\x0246'# -> unI64 583+  '\x0248'# -> unI64 585+  '\x024a'# -> unI64 587+  '\x024c'# -> unI64 589+  '\x024e'# -> unI64 591+  '\x0370'# -> unI64 881+  '\x0372'# -> unI64 883+  '\x0376'# -> unI64 887+  '\x037f'# -> unI64 1011+  '\x0386'# -> unI64 940+  '\x0388'# -> unI64 941+  '\x0389'# -> unI64 942+  '\x038a'# -> unI64 943+  '\x038c'# -> unI64 972+  '\x038e'# -> unI64 973+  '\x038f'# -> unI64 974+  '\x0391'# -> unI64 945+  '\x0392'# -> unI64 946+  '\x0393'# -> unI64 947+  '\x0394'# -> unI64 948+  '\x0395'# -> unI64 949+  '\x0396'# -> unI64 950+  '\x0397'# -> unI64 951+  '\x0398'# -> unI64 952+  '\x0399'# -> unI64 953+  '\x039a'# -> unI64 954+  '\x039b'# -> unI64 955+  '\x039c'# -> unI64 956+  '\x039d'# -> unI64 957+  '\x039e'# -> unI64 958+  '\x039f'# -> unI64 959+  '\x03a0'# -> unI64 960+  '\x03a1'# -> unI64 961+  '\x03a3'# -> unI64 963+  '\x03a4'# -> unI64 964+  '\x03a5'# -> unI64 965+  '\x03a6'# -> unI64 966+  '\x03a7'# -> unI64 967+  '\x03a8'# -> unI64 968+  '\x03a9'# -> unI64 969+  '\x03aa'# -> unI64 970+  '\x03ab'# -> unI64 971+  '\x03cf'# -> unI64 983+  '\x03d8'# -> unI64 985+  '\x03da'# -> unI64 987+  '\x03dc'# -> unI64 989+  '\x03de'# -> unI64 991+  '\x03e0'# -> unI64 993+  '\x03e2'# -> unI64 995+  '\x03e4'# -> unI64 997+  '\x03e6'# -> unI64 999+  '\x03e8'# -> unI64 1001+  '\x03ea'# -> unI64 1003+  '\x03ec'# -> unI64 1005+  '\x03ee'# -> unI64 1007+  '\x03f4'# -> unI64 952+  '\x03f7'# -> unI64 1016+  '\x03f9'# -> unI64 1010+  '\x03fa'# -> unI64 1019+  '\x03fd'# -> unI64 891+  '\x03fe'# -> unI64 892+  '\x03ff'# -> unI64 893+  '\x0400'# -> unI64 1104+  '\x0401'# -> unI64 1105+  '\x0402'# -> unI64 1106+  '\x0403'# -> unI64 1107+  '\x0404'# -> unI64 1108+  '\x0405'# -> unI64 1109+  '\x0406'# -> unI64 1110+  '\x0407'# -> unI64 1111+  '\x0408'# -> unI64 1112+  '\x0409'# -> unI64 1113+  '\x040a'# -> unI64 1114+  '\x040b'# -> unI64 1115+  '\x040c'# -> unI64 1116+  '\x040d'# -> unI64 1117+  '\x040e'# -> unI64 1118+  '\x040f'# -> unI64 1119+  '\x0410'# -> unI64 1072+  '\x0411'# -> unI64 1073+  '\x0412'# -> unI64 1074+  '\x0413'# -> unI64 1075+  '\x0414'# -> unI64 1076+  '\x0415'# -> unI64 1077+  '\x0416'# -> unI64 1078+  '\x0417'# -> unI64 1079+  '\x0418'# -> unI64 1080+  '\x0419'# -> unI64 1081+  '\x041a'# -> unI64 1082+  '\x041b'# -> unI64 1083+  '\x041c'# -> unI64 1084+  '\x041d'# -> unI64 1085+  '\x041e'# -> unI64 1086+  '\x041f'# -> unI64 1087+  '\x0420'# -> unI64 1088+  '\x0421'# -> unI64 1089+  '\x0422'# -> unI64 1090+  '\x0423'# -> unI64 1091+  '\x0424'# -> unI64 1092+  '\x0425'# -> unI64 1093+  '\x0426'# -> unI64 1094+  '\x0427'# -> unI64 1095+  '\x0428'# -> unI64 1096+  '\x0429'# -> unI64 1097+  '\x042a'# -> unI64 1098+  '\x042b'# -> unI64 1099+  '\x042c'# -> unI64 1100+  '\x042d'# -> unI64 1101+  '\x042e'# -> unI64 1102+  '\x042f'# -> unI64 1103+  '\x0460'# -> unI64 1121+  '\x0462'# -> unI64 1123+  '\x0464'# -> unI64 1125+  '\x0466'# -> unI64 1127+  '\x0468'# -> unI64 1129+  '\x046a'# -> unI64 1131+  '\x046c'# -> unI64 1133+  '\x046e'# -> unI64 1135+  '\x0470'# -> unI64 1137+  '\x0472'# -> unI64 1139+  '\x0474'# -> unI64 1141+  '\x0476'# -> unI64 1143+  '\x0478'# -> unI64 1145+  '\x047a'# -> unI64 1147+  '\x047c'# -> unI64 1149+  '\x047e'# -> unI64 1151+  '\x0480'# -> unI64 1153+  '\x048a'# -> unI64 1163+  '\x048c'# -> unI64 1165+  '\x048e'# -> unI64 1167+  '\x0490'# -> unI64 1169+  '\x0492'# -> unI64 1171+  '\x0494'# -> unI64 1173+  '\x0496'# -> unI64 1175+  '\x0498'# -> unI64 1177+  '\x049a'# -> unI64 1179+  '\x049c'# -> unI64 1181+  '\x049e'# -> unI64 1183+  '\x04a0'# -> unI64 1185+  '\x04a2'# -> unI64 1187+  '\x04a4'# -> unI64 1189+  '\x04a6'# -> unI64 1191+  '\x04a8'# -> unI64 1193+  '\x04aa'# -> unI64 1195+  '\x04ac'# -> unI64 1197+  '\x04ae'# -> unI64 1199+  '\x04b0'# -> unI64 1201+  '\x04b2'# -> unI64 1203+  '\x04b4'# -> unI64 1205+  '\x04b6'# -> unI64 1207+  '\x04b8'# -> unI64 1209+  '\x04ba'# -> unI64 1211+  '\x04bc'# -> unI64 1213+  '\x04be'# -> unI64 1215+  '\x04c0'# -> unI64 1231+  '\x04c1'# -> unI64 1218+  '\x04c3'# -> unI64 1220+  '\x04c5'# -> unI64 1222+  '\x04c7'# -> unI64 1224+  '\x04c9'# -> unI64 1226+  '\x04cb'# -> unI64 1228+  '\x04cd'# -> unI64 1230+  '\x04d0'# -> unI64 1233+  '\x04d2'# -> unI64 1235+  '\x04d4'# -> unI64 1237+  '\x04d6'# -> unI64 1239+  '\x04d8'# -> unI64 1241+  '\x04da'# -> unI64 1243+  '\x04dc'# -> unI64 1245+  '\x04de'# -> unI64 1247+  '\x04e0'# -> unI64 1249+  '\x04e2'# -> unI64 1251+  '\x04e4'# -> unI64 1253+  '\x04e6'# -> unI64 1255+  '\x04e8'# -> unI64 1257+  '\x04ea'# -> unI64 1259+  '\x04ec'# -> unI64 1261+  '\x04ee'# -> unI64 1263+  '\x04f0'# -> unI64 1265+  '\x04f2'# -> unI64 1267+  '\x04f4'# -> unI64 1269+  '\x04f6'# -> unI64 1271+  '\x04f8'# -> unI64 1273+  '\x04fa'# -> unI64 1275+  '\x04fc'# -> unI64 1277+  '\x04fe'# -> unI64 1279+  '\x0500'# -> unI64 1281+  '\x0502'# -> unI64 1283+  '\x0504'# -> unI64 1285+  '\x0506'# -> unI64 1287+  '\x0508'# -> unI64 1289+  '\x050a'# -> unI64 1291+  '\x050c'# -> unI64 1293+  '\x050e'# -> unI64 1295+  '\x0510'# -> unI64 1297+  '\x0512'# -> unI64 1299+  '\x0514'# -> unI64 1301+  '\x0516'# -> unI64 1303+  '\x0518'# -> unI64 1305+  '\x051a'# -> unI64 1307+  '\x051c'# -> unI64 1309+  '\x051e'# -> unI64 1311+  '\x0520'# -> unI64 1313+  '\x0522'# -> unI64 1315+  '\x0524'# -> unI64 1317+  '\x0526'# -> unI64 1319+  '\x0528'# -> unI64 1321+  '\x052a'# -> unI64 1323+  '\x052c'# -> unI64 1325+  '\x052e'# -> unI64 1327+  '\x0531'# -> unI64 1377+  '\x0532'# -> unI64 1378+  '\x0533'# -> unI64 1379+  '\x0534'# -> unI64 1380+  '\x0535'# -> unI64 1381+  '\x0536'# -> unI64 1382+  '\x0537'# -> unI64 1383+  '\x0538'# -> unI64 1384+  '\x0539'# -> unI64 1385+  '\x053a'# -> unI64 1386+  '\x053b'# -> unI64 1387+  '\x053c'# -> unI64 1388+  '\x053d'# -> unI64 1389+  '\x053e'# -> unI64 1390+  '\x053f'# -> unI64 1391+  '\x0540'# -> unI64 1392+  '\x0541'# -> unI64 1393+  '\x0542'# -> unI64 1394+  '\x0543'# -> unI64 1395+  '\x0544'# -> unI64 1396+  '\x0545'# -> unI64 1397+  '\x0546'# -> unI64 1398+  '\x0547'# -> unI64 1399+  '\x0548'# -> unI64 1400+  '\x0549'# -> unI64 1401+  '\x054a'# -> unI64 1402+  '\x054b'# -> unI64 1403+  '\x054c'# -> unI64 1404+  '\x054d'# -> unI64 1405+  '\x054e'# -> unI64 1406+  '\x054f'# -> unI64 1407+  '\x0550'# -> unI64 1408+  '\x0551'# -> unI64 1409+  '\x0552'# -> unI64 1410+  '\x0553'# -> unI64 1411+  '\x0554'# -> unI64 1412+  '\x0555'# -> unI64 1413+  '\x0556'# -> unI64 1414+  '\x10a0'# -> unI64 11520+  '\x10a1'# -> unI64 11521+  '\x10a2'# -> unI64 11522+  '\x10a3'# -> unI64 11523+  '\x10a4'# -> unI64 11524+  '\x10a5'# -> unI64 11525+  '\x10a6'# -> unI64 11526+  '\x10a7'# -> unI64 11527+  '\x10a8'# -> unI64 11528+  '\x10a9'# -> unI64 11529+  '\x10aa'# -> unI64 11530+  '\x10ab'# -> unI64 11531+  '\x10ac'# -> unI64 11532+  '\x10ad'# -> unI64 11533+  '\x10ae'# -> unI64 11534+  '\x10af'# -> unI64 11535+  '\x10b0'# -> unI64 11536+  '\x10b1'# -> unI64 11537+  '\x10b2'# -> unI64 11538+  '\x10b3'# -> unI64 11539+  '\x10b4'# -> unI64 11540+  '\x10b5'# -> unI64 11541+  '\x10b6'# -> unI64 11542+  '\x10b7'# -> unI64 11543+  '\x10b8'# -> unI64 11544+  '\x10b9'# -> unI64 11545+  '\x10ba'# -> unI64 11546+  '\x10bb'# -> unI64 11547+  '\x10bc'# -> unI64 11548+  '\x10bd'# -> unI64 11549+  '\x10be'# -> unI64 11550+  '\x10bf'# -> unI64 11551+  '\x10c0'# -> unI64 11552+  '\x10c1'# -> unI64 11553+  '\x10c2'# -> unI64 11554+  '\x10c3'# -> unI64 11555+  '\x10c4'# -> unI64 11556+  '\x10c5'# -> unI64 11557+  '\x10c7'# -> unI64 11559+  '\x10cd'# -> unI64 11565+  '\x13a0'# -> unI64 43888+  '\x13a1'# -> unI64 43889+  '\x13a2'# -> unI64 43890+  '\x13a3'# -> unI64 43891+  '\x13a4'# -> unI64 43892+  '\x13a5'# -> unI64 43893+  '\x13a6'# -> unI64 43894+  '\x13a7'# -> unI64 43895+  '\x13a8'# -> unI64 43896+  '\x13a9'# -> unI64 43897+  '\x13aa'# -> unI64 43898+  '\x13ab'# -> unI64 43899+  '\x13ac'# -> unI64 43900+  '\x13ad'# -> unI64 43901+  '\x13ae'# -> unI64 43902+  '\x13af'# -> unI64 43903+  '\x13b0'# -> unI64 43904+  '\x13b1'# -> unI64 43905+  '\x13b2'# -> unI64 43906+  '\x13b3'# -> unI64 43907+  '\x13b4'# -> unI64 43908+  '\x13b5'# -> unI64 43909+  '\x13b6'# -> unI64 43910+  '\x13b7'# -> unI64 43911+  '\x13b8'# -> unI64 43912+  '\x13b9'# -> unI64 43913+  '\x13ba'# -> unI64 43914+  '\x13bb'# -> unI64 43915+  '\x13bc'# -> unI64 43916+  '\x13bd'# -> unI64 43917+  '\x13be'# -> unI64 43918+  '\x13bf'# -> unI64 43919+  '\x13c0'# -> unI64 43920+  '\x13c1'# -> unI64 43921+  '\x13c2'# -> unI64 43922+  '\x13c3'# -> unI64 43923+  '\x13c4'# -> unI64 43924+  '\x13c5'# -> unI64 43925+  '\x13c6'# -> unI64 43926+  '\x13c7'# -> unI64 43927+  '\x13c8'# -> unI64 43928+  '\x13c9'# -> unI64 43929+  '\x13ca'# -> unI64 43930+  '\x13cb'# -> unI64 43931+  '\x13cc'# -> unI64 43932+  '\x13cd'# -> unI64 43933+  '\x13ce'# -> unI64 43934+  '\x13cf'# -> unI64 43935+  '\x13d0'# -> unI64 43936+  '\x13d1'# -> unI64 43937+  '\x13d2'# -> unI64 43938+  '\x13d3'# -> unI64 43939+  '\x13d4'# -> unI64 43940+  '\x13d5'# -> unI64 43941+  '\x13d6'# -> unI64 43942+  '\x13d7'# -> unI64 43943+  '\x13d8'# -> unI64 43944+  '\x13d9'# -> unI64 43945+  '\x13da'# -> unI64 43946+  '\x13db'# -> unI64 43947+  '\x13dc'# -> unI64 43948+  '\x13dd'# -> unI64 43949+  '\x13de'# -> unI64 43950+  '\x13df'# -> unI64 43951+  '\x13e0'# -> unI64 43952+  '\x13e1'# -> unI64 43953+  '\x13e2'# -> unI64 43954+  '\x13e3'# -> unI64 43955+  '\x13e4'# -> unI64 43956+  '\x13e5'# -> unI64 43957+  '\x13e6'# -> unI64 43958+  '\x13e7'# -> unI64 43959+  '\x13e8'# -> unI64 43960+  '\x13e9'# -> unI64 43961+  '\x13ea'# -> unI64 43962+  '\x13eb'# -> unI64 43963+  '\x13ec'# -> unI64 43964+  '\x13ed'# -> unI64 43965+  '\x13ee'# -> unI64 43966+  '\x13ef'# -> unI64 43967+  '\x13f0'# -> unI64 5112+  '\x13f1'# -> unI64 5113+  '\x13f2'# -> unI64 5114+  '\x13f3'# -> unI64 5115+  '\x13f4'# -> unI64 5116+  '\x13f5'# -> unI64 5117+  '\x1c90'# -> unI64 4304+  '\x1c91'# -> unI64 4305+  '\x1c92'# -> unI64 4306+  '\x1c93'# -> unI64 4307+  '\x1c94'# -> unI64 4308+  '\x1c95'# -> unI64 4309+  '\x1c96'# -> unI64 4310+  '\x1c97'# -> unI64 4311+  '\x1c98'# -> unI64 4312+  '\x1c99'# -> unI64 4313+  '\x1c9a'# -> unI64 4314+  '\x1c9b'# -> unI64 4315+  '\x1c9c'# -> unI64 4316+  '\x1c9d'# -> unI64 4317+  '\x1c9e'# -> unI64 4318+  '\x1c9f'# -> unI64 4319+  '\x1ca0'# -> unI64 4320+  '\x1ca1'# -> unI64 4321+  '\x1ca2'# -> unI64 4322+  '\x1ca3'# -> unI64 4323+  '\x1ca4'# -> unI64 4324+  '\x1ca5'# -> unI64 4325+  '\x1ca6'# -> unI64 4326+  '\x1ca7'# -> unI64 4327+  '\x1ca8'# -> unI64 4328+  '\x1ca9'# -> unI64 4329+  '\x1caa'# -> unI64 4330+  '\x1cab'# -> unI64 4331+  '\x1cac'# -> unI64 4332+  '\x1cad'# -> unI64 4333+  '\x1cae'# -> unI64 4334+  '\x1caf'# -> unI64 4335+  '\x1cb0'# -> unI64 4336+  '\x1cb1'# -> unI64 4337+  '\x1cb2'# -> unI64 4338+  '\x1cb3'# -> unI64 4339+  '\x1cb4'# -> unI64 4340+  '\x1cb5'# -> unI64 4341+  '\x1cb6'# -> unI64 4342+  '\x1cb7'# -> unI64 4343+  '\x1cb8'# -> unI64 4344+  '\x1cb9'# -> unI64 4345+  '\x1cba'# -> unI64 4346+  '\x1cbd'# -> unI64 4349+  '\x1cbe'# -> unI64 4350+  '\x1cbf'# -> unI64 4351+  '\x1e00'# -> unI64 7681+  '\x1e02'# -> unI64 7683+  '\x1e04'# -> unI64 7685+  '\x1e06'# -> unI64 7687+  '\x1e08'# -> unI64 7689+  '\x1e0a'# -> unI64 7691+  '\x1e0c'# -> unI64 7693+  '\x1e0e'# -> unI64 7695+  '\x1e10'# -> unI64 7697+  '\x1e12'# -> unI64 7699+  '\x1e14'# -> unI64 7701+  '\x1e16'# -> unI64 7703+  '\x1e18'# -> unI64 7705+  '\x1e1a'# -> unI64 7707+  '\x1e1c'# -> unI64 7709+  '\x1e1e'# -> unI64 7711+  '\x1e20'# -> unI64 7713+  '\x1e22'# -> unI64 7715+  '\x1e24'# -> unI64 7717+  '\x1e26'# -> unI64 7719+  '\x1e28'# -> unI64 7721+  '\x1e2a'# -> unI64 7723+  '\x1e2c'# -> unI64 7725+  '\x1e2e'# -> unI64 7727+  '\x1e30'# -> unI64 7729+  '\x1e32'# -> unI64 7731+  '\x1e34'# -> unI64 7733+  '\x1e36'# -> unI64 7735+  '\x1e38'# -> unI64 7737+  '\x1e3a'# -> unI64 7739+  '\x1e3c'# -> unI64 7741+  '\x1e3e'# -> unI64 7743+  '\x1e40'# -> unI64 7745+  '\x1e42'# -> unI64 7747+  '\x1e44'# -> unI64 7749+  '\x1e46'# -> unI64 7751+  '\x1e48'# -> unI64 7753+  '\x1e4a'# -> unI64 7755+  '\x1e4c'# -> unI64 7757+  '\x1e4e'# -> unI64 7759+  '\x1e50'# -> unI64 7761+  '\x1e52'# -> unI64 7763+  '\x1e54'# -> unI64 7765+  '\x1e56'# -> unI64 7767+  '\x1e58'# -> unI64 7769+  '\x1e5a'# -> unI64 7771+  '\x1e5c'# -> unI64 7773+  '\x1e5e'# -> unI64 7775+  '\x1e60'# -> unI64 7777+  '\x1e62'# -> unI64 7779+  '\x1e64'# -> unI64 7781+  '\x1e66'# -> unI64 7783+  '\x1e68'# -> unI64 7785+  '\x1e6a'# -> unI64 7787+  '\x1e6c'# -> unI64 7789+  '\x1e6e'# -> unI64 7791+  '\x1e70'# -> unI64 7793+  '\x1e72'# -> unI64 7795+  '\x1e74'# -> unI64 7797+  '\x1e76'# -> unI64 7799+  '\x1e78'# -> unI64 7801+  '\x1e7a'# -> unI64 7803+  '\x1e7c'# -> unI64 7805+  '\x1e7e'# -> unI64 7807+  '\x1e80'# -> unI64 7809+  '\x1e82'# -> unI64 7811+  '\x1e84'# -> unI64 7813+  '\x1e86'# -> unI64 7815+  '\x1e88'# -> unI64 7817+  '\x1e8a'# -> unI64 7819+  '\x1e8c'# -> unI64 7821+  '\x1e8e'# -> unI64 7823+  '\x1e90'# -> unI64 7825+  '\x1e92'# -> unI64 7827+  '\x1e94'# -> unI64 7829+  '\x1e9e'# -> unI64 223+  '\x1ea0'# -> unI64 7841+  '\x1ea2'# -> unI64 7843+  '\x1ea4'# -> unI64 7845+  '\x1ea6'# -> unI64 7847+  '\x1ea8'# -> unI64 7849+  '\x1eaa'# -> unI64 7851+  '\x1eac'# -> unI64 7853+  '\x1eae'# -> unI64 7855+  '\x1eb0'# -> unI64 7857+  '\x1eb2'# -> unI64 7859+  '\x1eb4'# -> unI64 7861+  '\x1eb6'# -> unI64 7863+  '\x1eb8'# -> unI64 7865+  '\x1eba'# -> unI64 7867+  '\x1ebc'# -> unI64 7869+  '\x1ebe'# -> unI64 7871+  '\x1ec0'# -> unI64 7873+  '\x1ec2'# -> unI64 7875+  '\x1ec4'# -> unI64 7877+  '\x1ec6'# -> unI64 7879+  '\x1ec8'# -> unI64 7881+  '\x1eca'# -> unI64 7883+  '\x1ecc'# -> unI64 7885+  '\x1ece'# -> unI64 7887+  '\x1ed0'# -> unI64 7889+  '\x1ed2'# -> unI64 7891+  '\x1ed4'# -> unI64 7893+  '\x1ed6'# -> unI64 7895+  '\x1ed8'# -> unI64 7897+  '\x1eda'# -> unI64 7899+  '\x1edc'# -> unI64 7901+  '\x1ede'# -> unI64 7903+  '\x1ee0'# -> unI64 7905+  '\x1ee2'# -> unI64 7907+  '\x1ee4'# -> unI64 7909+  '\x1ee6'# -> unI64 7911+  '\x1ee8'# -> unI64 7913+  '\x1eea'# -> unI64 7915+  '\x1eec'# -> unI64 7917+  '\x1eee'# -> unI64 7919+  '\x1ef0'# -> unI64 7921+  '\x1ef2'# -> unI64 7923+  '\x1ef4'# -> unI64 7925+  '\x1ef6'# -> unI64 7927+  '\x1ef8'# -> unI64 7929+  '\x1efa'# -> unI64 7931+  '\x1efc'# -> unI64 7933+  '\x1efe'# -> unI64 7935+  '\x1f08'# -> unI64 7936+  '\x1f09'# -> unI64 7937+  '\x1f0a'# -> unI64 7938+  '\x1f0b'# -> unI64 7939+  '\x1f0c'# -> unI64 7940+  '\x1f0d'# -> unI64 7941+  '\x1f0e'# -> unI64 7942+  '\x1f0f'# -> unI64 7943+  '\x1f18'# -> unI64 7952+  '\x1f19'# -> unI64 7953+  '\x1f1a'# -> unI64 7954+  '\x1f1b'# -> unI64 7955+  '\x1f1c'# -> unI64 7956+  '\x1f1d'# -> unI64 7957+  '\x1f28'# -> unI64 7968+  '\x1f29'# -> unI64 7969+  '\x1f2a'# -> unI64 7970+  '\x1f2b'# -> unI64 7971+  '\x1f2c'# -> unI64 7972+  '\x1f2d'# -> unI64 7973+  '\x1f2e'# -> unI64 7974+  '\x1f2f'# -> unI64 7975+  '\x1f38'# -> unI64 7984+  '\x1f39'# -> unI64 7985+  '\x1f3a'# -> unI64 7986+  '\x1f3b'# -> unI64 7987+  '\x1f3c'# -> unI64 7988+  '\x1f3d'# -> unI64 7989+  '\x1f3e'# -> unI64 7990+  '\x1f3f'# -> unI64 7991+  '\x1f48'# -> unI64 8000+  '\x1f49'# -> unI64 8001+  '\x1f4a'# -> unI64 8002+  '\x1f4b'# -> unI64 8003+  '\x1f4c'# -> unI64 8004+  '\x1f4d'# -> unI64 8005+  '\x1f59'# -> unI64 8017+  '\x1f5b'# -> unI64 8019+  '\x1f5d'# -> unI64 8021+  '\x1f5f'# -> unI64 8023+  '\x1f68'# -> unI64 8032+  '\x1f69'# -> unI64 8033+  '\x1f6a'# -> unI64 8034+  '\x1f6b'# -> unI64 8035+  '\x1f6c'# -> unI64 8036+  '\x1f6d'# -> unI64 8037+  '\x1f6e'# -> unI64 8038+  '\x1f6f'# -> unI64 8039+  '\x1f88'# -> unI64 8064+  '\x1f89'# -> unI64 8065+  '\x1f8a'# -> unI64 8066+  '\x1f8b'# -> unI64 8067+  '\x1f8c'# -> unI64 8068+  '\x1f8d'# -> unI64 8069+  '\x1f8e'# -> unI64 8070+  '\x1f8f'# -> unI64 8071+  '\x1f98'# -> unI64 8080+  '\x1f99'# -> unI64 8081+  '\x1f9a'# -> unI64 8082+  '\x1f9b'# -> unI64 8083+  '\x1f9c'# -> unI64 8084+  '\x1f9d'# -> unI64 8085+  '\x1f9e'# -> unI64 8086+  '\x1f9f'# -> unI64 8087+  '\x1fa8'# -> unI64 8096+  '\x1fa9'# -> unI64 8097+  '\x1faa'# -> unI64 8098+  '\x1fab'# -> unI64 8099+  '\x1fac'# -> unI64 8100+  '\x1fad'# -> unI64 8101+  '\x1fae'# -> unI64 8102+  '\x1faf'# -> unI64 8103+  '\x1fb8'# -> unI64 8112+  '\x1fb9'# -> unI64 8113+  '\x1fba'# -> unI64 8048+  '\x1fbb'# -> unI64 8049+  '\x1fbc'# -> unI64 8115+  '\x1fc8'# -> unI64 8050+  '\x1fc9'# -> unI64 8051+  '\x1fca'# -> unI64 8052+  '\x1fcb'# -> unI64 8053+  '\x1fcc'# -> unI64 8131+  '\x1fd8'# -> unI64 8144+  '\x1fd9'# -> unI64 8145+  '\x1fda'# -> unI64 8054+  '\x1fdb'# -> unI64 8055+  '\x1fe8'# -> unI64 8160+  '\x1fe9'# -> unI64 8161+  '\x1fea'# -> unI64 8058+  '\x1feb'# -> unI64 8059+  '\x1fec'# -> unI64 8165+  '\x1ff8'# -> unI64 8056+  '\x1ff9'# -> unI64 8057+  '\x1ffa'# -> unI64 8060+  '\x1ffb'# -> unI64 8061+  '\x1ffc'# -> unI64 8179+  '\x2126'# -> unI64 969+  '\x212a'# -> unI64 107+  '\x212b'# -> unI64 229+  '\x2132'# -> unI64 8526+  '\x2160'# -> unI64 8560+  '\x2161'# -> unI64 8561+  '\x2162'# -> unI64 8562+  '\x2163'# -> unI64 8563+  '\x2164'# -> unI64 8564+  '\x2165'# -> unI64 8565+  '\x2166'# -> unI64 8566+  '\x2167'# -> unI64 8567+  '\x2168'# -> unI64 8568+  '\x2169'# -> unI64 8569+  '\x216a'# -> unI64 8570+  '\x216b'# -> unI64 8571+  '\x216c'# -> unI64 8572+  '\x216d'# -> unI64 8573+  '\x216e'# -> unI64 8574+  '\x216f'# -> unI64 8575+  '\x2183'# -> unI64 8580+  '\x24b6'# -> unI64 9424+  '\x24b7'# -> unI64 9425+  '\x24b8'# -> unI64 9426+  '\x24b9'# -> unI64 9427+  '\x24ba'# -> unI64 9428+  '\x24bb'# -> unI64 9429+  '\x24bc'# -> unI64 9430+  '\x24bd'# -> unI64 9431+  '\x24be'# -> unI64 9432+  '\x24bf'# -> unI64 9433+  '\x24c0'# -> unI64 9434+  '\x24c1'# -> unI64 9435+  '\x24c2'# -> unI64 9436+  '\x24c3'# -> unI64 9437+  '\x24c4'# -> unI64 9438+  '\x24c5'# -> unI64 9439+  '\x24c6'# -> unI64 9440+  '\x24c7'# -> unI64 9441+  '\x24c8'# -> unI64 9442+  '\x24c9'# -> unI64 9443+  '\x24ca'# -> unI64 9444+  '\x24cb'# -> unI64 9445+  '\x24cc'# -> unI64 9446+  '\x24cd'# -> unI64 9447+  '\x24ce'# -> unI64 9448+  '\x24cf'# -> unI64 9449+  '\x2c00'# -> unI64 11312+  '\x2c01'# -> unI64 11313+  '\x2c02'# -> unI64 11314+  '\x2c03'# -> unI64 11315+  '\x2c04'# -> unI64 11316+  '\x2c05'# -> unI64 11317+  '\x2c06'# -> unI64 11318+  '\x2c07'# -> unI64 11319+  '\x2c08'# -> unI64 11320+  '\x2c09'# -> unI64 11321+  '\x2c0a'# -> unI64 11322+  '\x2c0b'# -> unI64 11323+  '\x2c0c'# -> unI64 11324+  '\x2c0d'# -> unI64 11325+  '\x2c0e'# -> unI64 11326+  '\x2c0f'# -> unI64 11327+  '\x2c10'# -> unI64 11328+  '\x2c11'# -> unI64 11329+  '\x2c12'# -> unI64 11330+  '\x2c13'# -> unI64 11331+  '\x2c14'# -> unI64 11332+  '\x2c15'# -> unI64 11333+  '\x2c16'# -> unI64 11334+  '\x2c17'# -> unI64 11335+  '\x2c18'# -> unI64 11336+  '\x2c19'# -> unI64 11337+  '\x2c1a'# -> unI64 11338+  '\x2c1b'# -> unI64 11339+  '\x2c1c'# -> unI64 11340+  '\x2c1d'# -> unI64 11341+  '\x2c1e'# -> unI64 11342+  '\x2c1f'# -> unI64 11343+  '\x2c20'# -> unI64 11344+  '\x2c21'# -> unI64 11345+  '\x2c22'# -> unI64 11346+  '\x2c23'# -> unI64 11347+  '\x2c24'# -> unI64 11348+  '\x2c25'# -> unI64 11349+  '\x2c26'# -> unI64 11350+  '\x2c27'# -> unI64 11351+  '\x2c28'# -> unI64 11352+  '\x2c29'# -> unI64 11353+  '\x2c2a'# -> unI64 11354+  '\x2c2b'# -> unI64 11355+  '\x2c2c'# -> unI64 11356+  '\x2c2d'# -> unI64 11357+  '\x2c2e'# -> unI64 11358+  '\x2c2f'# -> unI64 11359+  '\x2c60'# -> unI64 11361+  '\x2c62'# -> unI64 619+  '\x2c63'# -> unI64 7549+  '\x2c64'# -> unI64 637+  '\x2c67'# -> unI64 11368+  '\x2c69'# -> unI64 11370+  '\x2c6b'# -> unI64 11372+  '\x2c6d'# -> unI64 593+  '\x2c6e'# -> unI64 625+  '\x2c6f'# -> unI64 592+  '\x2c70'# -> unI64 594+  '\x2c72'# -> unI64 11379+  '\x2c75'# -> unI64 11382+  '\x2c7e'# -> unI64 575+  '\x2c7f'# -> unI64 576+  '\x2c80'# -> unI64 11393+  '\x2c82'# -> unI64 11395+  '\x2c84'# -> unI64 11397+  '\x2c86'# -> unI64 11399+  '\x2c88'# -> unI64 11401+  '\x2c8a'# -> unI64 11403+  '\x2c8c'# -> unI64 11405+  '\x2c8e'# -> unI64 11407+  '\x2c90'# -> unI64 11409+  '\x2c92'# -> unI64 11411+  '\x2c94'# -> unI64 11413+  '\x2c96'# -> unI64 11415+  '\x2c98'# -> unI64 11417+  '\x2c9a'# -> unI64 11419+  '\x2c9c'# -> unI64 11421+  '\x2c9e'# -> unI64 11423+  '\x2ca0'# -> unI64 11425+  '\x2ca2'# -> unI64 11427+  '\x2ca4'# -> unI64 11429+  '\x2ca6'# -> unI64 11431+  '\x2ca8'# -> unI64 11433+  '\x2caa'# -> unI64 11435+  '\x2cac'# -> unI64 11437+  '\x2cae'# -> unI64 11439+  '\x2cb0'# -> unI64 11441+  '\x2cb2'# -> unI64 11443+  '\x2cb4'# -> unI64 11445+  '\x2cb6'# -> unI64 11447+  '\x2cb8'# -> unI64 11449+  '\x2cba'# -> unI64 11451+  '\x2cbc'# -> unI64 11453+  '\x2cbe'# -> unI64 11455+  '\x2cc0'# -> unI64 11457+  '\x2cc2'# -> unI64 11459+  '\x2cc4'# -> unI64 11461+  '\x2cc6'# -> unI64 11463+  '\x2cc8'# -> unI64 11465+  '\x2cca'# -> unI64 11467+  '\x2ccc'# -> unI64 11469+  '\x2cce'# -> unI64 11471+  '\x2cd0'# -> unI64 11473+  '\x2cd2'# -> unI64 11475+  '\x2cd4'# -> unI64 11477+  '\x2cd6'# -> unI64 11479+  '\x2cd8'# -> unI64 11481+  '\x2cda'# -> unI64 11483+  '\x2cdc'# -> unI64 11485+  '\x2cde'# -> unI64 11487+  '\x2ce0'# -> unI64 11489+  '\x2ce2'# -> unI64 11491+  '\x2ceb'# -> unI64 11500+  '\x2ced'# -> unI64 11502+  '\x2cf2'# -> unI64 11507+  '\xa640'# -> unI64 42561+  '\xa642'# -> unI64 42563+  '\xa644'# -> unI64 42565+  '\xa646'# -> unI64 42567+  '\xa648'# -> unI64 42569+  '\xa64a'# -> unI64 42571+  '\xa64c'# -> unI64 42573+  '\xa64e'# -> unI64 42575+  '\xa650'# -> unI64 42577+  '\xa652'# -> unI64 42579+  '\xa654'# -> unI64 42581+  '\xa656'# -> unI64 42583+  '\xa658'# -> unI64 42585+  '\xa65a'# -> unI64 42587+  '\xa65c'# -> unI64 42589+  '\xa65e'# -> unI64 42591+  '\xa660'# -> unI64 42593+  '\xa662'# -> unI64 42595+  '\xa664'# -> unI64 42597+  '\xa666'# -> unI64 42599+  '\xa668'# -> unI64 42601+  '\xa66a'# -> unI64 42603+  '\xa66c'# -> unI64 42605+  '\xa680'# -> unI64 42625+  '\xa682'# -> unI64 42627+  '\xa684'# -> unI64 42629+  '\xa686'# -> unI64 42631+  '\xa688'# -> unI64 42633+  '\xa68a'# -> unI64 42635+  '\xa68c'# -> unI64 42637+  '\xa68e'# -> unI64 42639+  '\xa690'# -> unI64 42641+  '\xa692'# -> unI64 42643+  '\xa694'# -> unI64 42645+  '\xa696'# -> unI64 42647+  '\xa698'# -> unI64 42649+  '\xa69a'# -> unI64 42651+  '\xa722'# -> unI64 42787+  '\xa724'# -> unI64 42789+  '\xa726'# -> unI64 42791+  '\xa728'# -> unI64 42793+  '\xa72a'# -> unI64 42795+  '\xa72c'# -> unI64 42797+  '\xa72e'# -> unI64 42799+  '\xa732'# -> unI64 42803+  '\xa734'# -> unI64 42805+  '\xa736'# -> unI64 42807+  '\xa738'# -> unI64 42809+  '\xa73a'# -> unI64 42811+  '\xa73c'# -> unI64 42813+  '\xa73e'# -> unI64 42815+  '\xa740'# -> unI64 42817+  '\xa742'# -> unI64 42819+  '\xa744'# -> unI64 42821+  '\xa746'# -> unI64 42823+  '\xa748'# -> unI64 42825+  '\xa74a'# -> unI64 42827+  '\xa74c'# -> unI64 42829+  '\xa74e'# -> unI64 42831+  '\xa750'# -> unI64 42833+  '\xa752'# -> unI64 42835+  '\xa754'# -> unI64 42837+  '\xa756'# -> unI64 42839+  '\xa758'# -> unI64 42841+  '\xa75a'# -> unI64 42843+  '\xa75c'# -> unI64 42845+  '\xa75e'# -> unI64 42847+  '\xa760'# -> unI64 42849+  '\xa762'# -> unI64 42851+  '\xa764'# -> unI64 42853+  '\xa766'# -> unI64 42855+  '\xa768'# -> unI64 42857+  '\xa76a'# -> unI64 42859+  '\xa76c'# -> unI64 42861+  '\xa76e'# -> unI64 42863+  '\xa779'# -> unI64 42874+  '\xa77b'# -> unI64 42876+  '\xa77d'# -> unI64 7545+  '\xa77e'# -> unI64 42879+  '\xa780'# -> unI64 42881+  '\xa782'# -> unI64 42883+  '\xa784'# -> unI64 42885+  '\xa786'# -> unI64 42887+  '\xa78b'# -> unI64 42892+  '\xa78d'# -> unI64 613+  '\xa790'# -> unI64 42897+  '\xa792'# -> unI64 42899+  '\xa796'# -> unI64 42903+  '\xa798'# -> unI64 42905+  '\xa79a'# -> unI64 42907+  '\xa79c'# -> unI64 42909+  '\xa79e'# -> unI64 42911+  '\xa7a0'# -> unI64 42913+  '\xa7a2'# -> unI64 42915+  '\xa7a4'# -> unI64 42917+  '\xa7a6'# -> unI64 42919+  '\xa7a8'# -> unI64 42921+  '\xa7aa'# -> unI64 614+  '\xa7ab'# -> unI64 604+  '\xa7ac'# -> unI64 609+  '\xa7ad'# -> unI64 620+  '\xa7ae'# -> unI64 618+  '\xa7b0'# -> unI64 670+  '\xa7b1'# -> unI64 647+  '\xa7b2'# -> unI64 669+  '\xa7b3'# -> unI64 43859+  '\xa7b4'# -> unI64 42933+  '\xa7b6'# -> unI64 42935+  '\xa7b8'# -> unI64 42937+  '\xa7ba'# -> unI64 42939+  '\xa7bc'# -> unI64 42941+  '\xa7be'# -> unI64 42943+  '\xa7c0'# -> unI64 42945+  '\xa7c2'# -> unI64 42947+  '\xa7c4'# -> unI64 42900+  '\xa7c5'# -> unI64 642+  '\xa7c6'# -> unI64 7566+  '\xa7c7'# -> unI64 42952+  '\xa7c9'# -> unI64 42954+  '\xa7d0'# -> unI64 42961+  '\xa7d6'# -> unI64 42967+  '\xa7d8'# -> unI64 42969+  '\xa7f5'# -> unI64 42998+  '\xff21'# -> unI64 65345+  '\xff22'# -> unI64 65346+  '\xff23'# -> unI64 65347+  '\xff24'# -> unI64 65348+  '\xff25'# -> unI64 65349+  '\xff26'# -> unI64 65350+  '\xff27'# -> unI64 65351+  '\xff28'# -> unI64 65352+  '\xff29'# -> unI64 65353+  '\xff2a'# -> unI64 65354+  '\xff2b'# -> unI64 65355+  '\xff2c'# -> unI64 65356+  '\xff2d'# -> unI64 65357+  '\xff2e'# -> unI64 65358+  '\xff2f'# -> unI64 65359+  '\xff30'# -> unI64 65360+  '\xff31'# -> unI64 65361+  '\xff32'# -> unI64 65362+  '\xff33'# -> unI64 65363+  '\xff34'# -> unI64 65364+  '\xff35'# -> unI64 65365+  '\xff36'# -> unI64 65366+  '\xff37'# -> unI64 65367+  '\xff38'# -> unI64 65368+  '\xff39'# -> unI64 65369+  '\xff3a'# -> unI64 65370+  '\x10400'# -> unI64 66600+  '\x10401'# -> unI64 66601+  '\x10402'# -> unI64 66602+  '\x10403'# -> unI64 66603+  '\x10404'# -> unI64 66604+  '\x10405'# -> unI64 66605+  '\x10406'# -> unI64 66606+  '\x10407'# -> unI64 66607+  '\x10408'# -> unI64 66608+  '\x10409'# -> unI64 66609+  '\x1040a'# -> unI64 66610+  '\x1040b'# -> unI64 66611+  '\x1040c'# -> unI64 66612+  '\x1040d'# -> unI64 66613+  '\x1040e'# -> unI64 66614+  '\x1040f'# -> unI64 66615+  '\x10410'# -> unI64 66616+  '\x10411'# -> unI64 66617+  '\x10412'# -> unI64 66618+  '\x10413'# -> unI64 66619+  '\x10414'# -> unI64 66620+  '\x10415'# -> unI64 66621+  '\x10416'# -> unI64 66622+  '\x10417'# -> unI64 66623+  '\x10418'# -> unI64 66624+  '\x10419'# -> unI64 66625+  '\x1041a'# -> unI64 66626+  '\x1041b'# -> unI64 66627+  '\x1041c'# -> unI64 66628+  '\x1041d'# -> unI64 66629+  '\x1041e'# -> unI64 66630+  '\x1041f'# -> unI64 66631+  '\x10420'# -> unI64 66632+  '\x10421'# -> unI64 66633+  '\x10422'# -> unI64 66634+  '\x10423'# -> unI64 66635+  '\x10424'# -> unI64 66636+  '\x10425'# -> unI64 66637+  '\x10426'# -> unI64 66638+  '\x10427'# -> unI64 66639+  '\x104b0'# -> unI64 66776+  '\x104b1'# -> unI64 66777+  '\x104b2'# -> unI64 66778+  '\x104b3'# -> unI64 66779+  '\x104b4'# -> unI64 66780+  '\x104b5'# -> unI64 66781+  '\x104b6'# -> unI64 66782+  '\x104b7'# -> unI64 66783+  '\x104b8'# -> unI64 66784+  '\x104b9'# -> unI64 66785+  '\x104ba'# -> unI64 66786+  '\x104bb'# -> unI64 66787+  '\x104bc'# -> unI64 66788+  '\x104bd'# -> unI64 66789+  '\x104be'# -> unI64 66790+  '\x104bf'# -> unI64 66791+  '\x104c0'# -> unI64 66792+  '\x104c1'# -> unI64 66793+  '\x104c2'# -> unI64 66794+  '\x104c3'# -> unI64 66795+  '\x104c4'# -> unI64 66796+  '\x104c5'# -> unI64 66797+  '\x104c6'# -> unI64 66798+  '\x104c7'# -> unI64 66799+  '\x104c8'# -> unI64 66800+  '\x104c9'# -> unI64 66801+  '\x104ca'# -> unI64 66802+  '\x104cb'# -> unI64 66803+  '\x104cc'# -> unI64 66804+  '\x104cd'# -> unI64 66805+  '\x104ce'# -> unI64 66806+  '\x104cf'# -> unI64 66807+  '\x104d0'# -> unI64 66808+  '\x104d1'# -> unI64 66809+  '\x104d2'# -> unI64 66810+  '\x104d3'# -> unI64 66811+  '\x10570'# -> unI64 66967+  '\x10571'# -> unI64 66968+  '\x10572'# -> unI64 66969+  '\x10573'# -> unI64 66970+  '\x10574'# -> unI64 66971+  '\x10575'# -> unI64 66972+  '\x10576'# -> unI64 66973+  '\x10577'# -> unI64 66974+  '\x10578'# -> unI64 66975+  '\x10579'# -> unI64 66976+  '\x1057a'# -> unI64 66977+  '\x1057c'# -> unI64 66979+  '\x1057d'# -> unI64 66980+  '\x1057e'# -> unI64 66981+  '\x1057f'# -> unI64 66982+  '\x10580'# -> unI64 66983+  '\x10581'# -> unI64 66984+  '\x10582'# -> unI64 66985+  '\x10583'# -> unI64 66986+  '\x10584'# -> unI64 66987+  '\x10585'# -> unI64 66988+  '\x10586'# -> unI64 66989+  '\x10587'# -> unI64 66990+  '\x10588'# -> unI64 66991+  '\x10589'# -> unI64 66992+  '\x1058a'# -> unI64 66993+  '\x1058c'# -> unI64 66995+  '\x1058d'# -> unI64 66996+  '\x1058e'# -> unI64 66997+  '\x1058f'# -> unI64 66998+  '\x10590'# -> unI64 66999+  '\x10591'# -> unI64 67000+  '\x10592'# -> unI64 67001+  '\x10594'# -> unI64 67003+  '\x10595'# -> unI64 67004+  '\x10c80'# -> unI64 68800+  '\x10c81'# -> unI64 68801+  '\x10c82'# -> unI64 68802+  '\x10c83'# -> unI64 68803+  '\x10c84'# -> unI64 68804+  '\x10c85'# -> unI64 68805+  '\x10c86'# -> unI64 68806+  '\x10c87'# -> unI64 68807+  '\x10c88'# -> unI64 68808+  '\x10c89'# -> unI64 68809+  '\x10c8a'# -> unI64 68810+  '\x10c8b'# -> unI64 68811+  '\x10c8c'# -> unI64 68812+  '\x10c8d'# -> unI64 68813+  '\x10c8e'# -> unI64 68814+  '\x10c8f'# -> unI64 68815+  '\x10c90'# -> unI64 68816+  '\x10c91'# -> unI64 68817+  '\x10c92'# -> unI64 68818+  '\x10c93'# -> unI64 68819+  '\x10c94'# -> unI64 68820+  '\x10c95'# -> unI64 68821+  '\x10c96'# -> unI64 68822+  '\x10c97'# -> unI64 68823+  '\x10c98'# -> unI64 68824+  '\x10c99'# -> unI64 68825+  '\x10c9a'# -> unI64 68826+  '\x10c9b'# -> unI64 68827+  '\x10c9c'# -> unI64 68828+  '\x10c9d'# -> unI64 68829+  '\x10c9e'# -> unI64 68830+  '\x10c9f'# -> unI64 68831+  '\x10ca0'# -> unI64 68832+  '\x10ca1'# -> unI64 68833+  '\x10ca2'# -> unI64 68834+  '\x10ca3'# -> unI64 68835+  '\x10ca4'# -> unI64 68836+  '\x10ca5'# -> unI64 68837+  '\x10ca6'# -> unI64 68838+  '\x10ca7'# -> unI64 68839+  '\x10ca8'# -> unI64 68840+  '\x10ca9'# -> unI64 68841+  '\x10caa'# -> unI64 68842+  '\x10cab'# -> unI64 68843+  '\x10cac'# -> unI64 68844+  '\x10cad'# -> unI64 68845+  '\x10cae'# -> unI64 68846+  '\x10caf'# -> unI64 68847+  '\x10cb0'# -> unI64 68848+  '\x10cb1'# -> unI64 68849+  '\x10cb2'# -> unI64 68850+  '\x118a0'# -> unI64 71872+  '\x118a1'# -> unI64 71873+  '\x118a2'# -> unI64 71874+  '\x118a3'# -> unI64 71875+  '\x118a4'# -> unI64 71876+  '\x118a5'# -> unI64 71877+  '\x118a6'# -> unI64 71878+  '\x118a7'# -> unI64 71879+  '\x118a8'# -> unI64 71880+  '\x118a9'# -> unI64 71881+  '\x118aa'# -> unI64 71882+  '\x118ab'# -> unI64 71883+  '\x118ac'# -> unI64 71884+  '\x118ad'# -> unI64 71885+  '\x118ae'# -> unI64 71886+  '\x118af'# -> unI64 71887+  '\x118b0'# -> unI64 71888+  '\x118b1'# -> unI64 71889+  '\x118b2'# -> unI64 71890+  '\x118b3'# -> unI64 71891+  '\x118b4'# -> unI64 71892+  '\x118b5'# -> unI64 71893+  '\x118b6'# -> unI64 71894+  '\x118b7'# -> unI64 71895+  '\x118b8'# -> unI64 71896+  '\x118b9'# -> unI64 71897+  '\x118ba'# -> unI64 71898+  '\x118bb'# -> unI64 71899+  '\x118bc'# -> unI64 71900+  '\x118bd'# -> unI64 71901+  '\x118be'# -> unI64 71902+  '\x118bf'# -> unI64 71903+  '\x16e40'# -> unI64 93792+  '\x16e41'# -> unI64 93793+  '\x16e42'# -> unI64 93794+  '\x16e43'# -> unI64 93795+  '\x16e44'# -> unI64 93796+  '\x16e45'# -> unI64 93797+  '\x16e46'# -> unI64 93798+  '\x16e47'# -> unI64 93799+  '\x16e48'# -> unI64 93800+  '\x16e49'# -> unI64 93801+  '\x16e4a'# -> unI64 93802+  '\x16e4b'# -> unI64 93803+  '\x16e4c'# -> unI64 93804+  '\x16e4d'# -> unI64 93805+  '\x16e4e'# -> unI64 93806+  '\x16e4f'# -> unI64 93807+  '\x16e50'# -> unI64 93808+  '\x16e51'# -> unI64 93809+  '\x16e52'# -> unI64 93810+  '\x16e53'# -> unI64 93811+  '\x16e54'# -> unI64 93812+  '\x16e55'# -> unI64 93813+  '\x16e56'# -> unI64 93814+  '\x16e57'# -> unI64 93815+  '\x16e58'# -> unI64 93816+  '\x16e59'# -> unI64 93817+  '\x16e5a'# -> unI64 93818+  '\x16e5b'# -> unI64 93819+  '\x16e5c'# -> unI64 93820+  '\x16e5d'# -> unI64 93821+  '\x16e5e'# -> unI64 93822+  '\x16e5f'# -> unI64 93823+  '\x1e900'# -> unI64 125218+  '\x1e901'# -> unI64 125219+  '\x1e902'# -> unI64 125220+  '\x1e903'# -> unI64 125221+  '\x1e904'# -> unI64 125222+  '\x1e905'# -> unI64 125223+  '\x1e906'# -> unI64 125224+  '\x1e907'# -> unI64 125225+  '\x1e908'# -> unI64 125226+  '\x1e909'# -> unI64 125227+  '\x1e90a'# -> unI64 125228+  '\x1e90b'# -> unI64 125229+  '\x1e90c'# -> unI64 125230+  '\x1e90d'# -> unI64 125231+  '\x1e90e'# -> unI64 125232+  '\x1e90f'# -> unI64 125233+  '\x1e910'# -> unI64 125234+  '\x1e911'# -> unI64 125235+  '\x1e912'# -> unI64 125236+  '\x1e913'# -> unI64 125237+  '\x1e914'# -> unI64 125238+  '\x1e915'# -> unI64 125239+  '\x1e916'# -> unI64 125240+  '\x1e917'# -> unI64 125241+  '\x1e918'# -> unI64 125242+  '\x1e919'# -> unI64 125243+  '\x1e91a'# -> unI64 125244+  '\x1e91b'# -> unI64 125245+  '\x1e91c'# -> unI64 125246+  '\x1e91d'# -> unI64 125247+  '\x1e91e'# -> unI64 125248+  '\x1e91f'# -> unI64 125249+  '\x1e920'# -> unI64 125250+  '\x1e921'# -> unI64 125251+  _ -> unI64 0+titleMapping :: Char# -> _ {- unboxed Int64 -}+{-# NOINLINE titleMapping #-}+titleMapping = \case+  -- LATIN SMALL LETTER SHARP S+  '\x00df'# -> unI64 241172563+  -- LATIN SMALL LIGATURE FF+  '\xfb00'# -> unI64 213909574+  -- LATIN SMALL LIGATURE FI+  '\xfb01'# -> unI64 220201030+  -- LATIN SMALL LIGATURE FL+  '\xfb02'# -> unI64 226492486+  -- LATIN SMALL LIGATURE FFI+  '\xfb03'# -> unI64 461795097575494+  -- LATIN SMALL LIGATURE FFL+  '\xfb04'# -> unI64 474989237108806+  -- LATIN SMALL LIGATURE LONG S T+  '\xfb05'# -> unI64 243269715+  -- LATIN SMALL LIGATURE ST+  '\xfb06'# -> unI64 243269715+  -- ARMENIAN SMALL LIGATURE ECH YIWN+  '\x0587'# -> unI64 2956985653+  -- ARMENIAN SMALL LIGATURE MEN NOW+  '\xfb13'# -> unI64 2931819844+  -- ARMENIAN SMALL LIGATURE MEN ECH+  '\xfb14'# -> unI64 2896168260+  -- ARMENIAN SMALL LIGATURE MEN INI+  '\xfb15'# -> unI64 2908751172+  -- ARMENIAN SMALL LIGATURE VEW NOW+  '\xfb16'# -> unI64 2931819854+  -- ARMENIAN SMALL LIGATURE MEN XEH+  '\xfb17'# -> unI64 2912945476+  -- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE+  '\x0149'# -> unI64 163578556+  -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS+  '\x0390'# -> unI64 3382099394429849+  -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS+  '\x03b0'# -> unI64 3382099394429861+  -- LATIN SMALL LETTER J WITH CARON+  '\x01f0'# -> unI64 1635778634+  -- LATIN SMALL LETTER H WITH LINE BELOW+  '\x1e96'# -> unI64 1713373256+  -- LATIN SMALL LETTER T WITH DIAERESIS+  '\x1e97'# -> unI64 1627390036+  -- LATIN SMALL LETTER W WITH RING ABOVE+  '\x1e98'# -> unI64 1631584343+  -- LATIN SMALL LETTER Y WITH RING ABOVE+  '\x1e99'# -> unI64 1631584345+  -- LATIN SMALL LETTER A WITH RIGHT HALF RING+  '\x1e9a'# -> unI64 1472200769+  -- GREEK SMALL LETTER UPSILON WITH PSILI+  '\x1f50'# -> unI64 1650459557+  -- GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA+  '\x1f52'# -> unI64 3377701370987429+  -- GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA+  '\x1f54'# -> unI64 3382099417498533+  -- GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI+  '\x1f56'# -> unI64 3667972440720293+  -- GREEK SMALL LETTER ALPHA WITH PERISPOMENI+  '\x1fb6'# -> unI64 1749025681+  -- GREEK SMALL LETTER ETA WITH PERISPOMENI+  '\x1fc6'# -> unI64 1749025687+  -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA+  '\x1fd2'# -> unI64 3377701347918745+  -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA+  '\x1fd3'# -> unI64 3382099394429849+  -- GREEK SMALL LETTER IOTA WITH PERISPOMENI+  '\x1fd6'# -> unI64 1749025689+  -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI+  '\x1fd7'# -> unI64 3667972417651609+  -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA+  '\x1fe2'# -> unI64 3377701347918757+  -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA+  '\x1fe3'# -> unI64 3382099394429861+  -- GREEK SMALL LETTER RHO WITH PSILI+  '\x1fe4'# -> unI64 1650459553+  -- GREEK SMALL LETTER UPSILON WITH PERISPOMENI+  '\x1fe6'# -> unI64 1749025701+  -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI+  '\x1fe7'# -> unI64 3667972417651621+  -- GREEK SMALL LETTER OMEGA WITH PERISPOMENI+  '\x1ff6'# -> unI64 1749025705+  -- GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI+  '\x1fb2'# -> unI64 1755324346+  -- GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI+  '\x1fb4'# -> unI64 1755317126+  -- GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI+  '\x1fc2'# -> unI64 1755324362+  -- GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI+  '\x1fc4'# -> unI64 1755317129+  -- GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI+  '\x1ff2'# -> unI64 1755324410+  -- GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI+  '\x1ff4'# -> unI64 1755317135+  -- GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI+  '\x1fb7'# -> unI64 3681166678819729+  -- GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI+  '\x1fc7'# -> unI64 3681166678819735+  -- GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI+  '\x1ff7'# -> unI64 3681166678819753+  '\x0061'# -> unI64 65+  '\x0062'# -> unI64 66+  '\x0063'# -> unI64 67+  '\x0064'# -> unI64 68+  '\x0065'# -> unI64 69+  '\x0066'# -> unI64 70+  '\x0067'# -> unI64 71+  '\x0068'# -> unI64 72+  '\x0069'# -> unI64 73+  '\x006a'# -> unI64 74+  '\x006b'# -> unI64 75+  '\x006c'# -> unI64 76+  '\x006d'# -> unI64 77+  '\x006e'# -> unI64 78+  '\x006f'# -> unI64 79+  '\x0070'# -> unI64 80+  '\x0071'# -> unI64 81+  '\x0072'# -> unI64 82+  '\x0073'# -> unI64 83+  '\x0074'# -> unI64 84+  '\x0075'# -> unI64 85+  '\x0076'# -> unI64 86+  '\x0077'# -> unI64 87+  '\x0078'# -> unI64 88+  '\x0079'# -> unI64 89+  '\x007a'# -> unI64 90+  '\x00b5'# -> unI64 924+  '\x00e0'# -> unI64 192+  '\x00e1'# -> unI64 193+  '\x00e2'# -> unI64 194+  '\x00e3'# -> unI64 195+  '\x00e4'# -> unI64 196+  '\x00e5'# -> unI64 197+  '\x00e6'# -> unI64 198+  '\x00e7'# -> unI64 199+  '\x00e8'# -> unI64 200+  '\x00e9'# -> unI64 201+  '\x00ea'# -> unI64 202+  '\x00eb'# -> unI64 203+  '\x00ec'# -> unI64 204+  '\x00ed'# -> unI64 205+  '\x00ee'# -> unI64 206+  '\x00ef'# -> unI64 207+  '\x00f0'# -> unI64 208+  '\x00f1'# -> unI64 209+  '\x00f2'# -> unI64 210+  '\x00f3'# -> unI64 211+  '\x00f4'# -> unI64 212+  '\x00f5'# -> unI64 213+  '\x00f6'# -> unI64 214+  '\x00f8'# -> unI64 216+  '\x00f9'# -> unI64 217+  '\x00fa'# -> unI64 218+  '\x00fb'# -> unI64 219+  '\x00fc'# -> unI64 220+  '\x00fd'# -> unI64 221+  '\x00fe'# -> unI64 222+  '\x00ff'# -> unI64 376+  '\x0101'# -> unI64 256+  '\x0103'# -> unI64 258+  '\x0105'# -> unI64 260+  '\x0107'# -> unI64 262+  '\x0109'# -> unI64 264+  '\x010b'# -> unI64 266+  '\x010d'# -> unI64 268+  '\x010f'# -> unI64 270+  '\x0111'# -> unI64 272+  '\x0113'# -> unI64 274+  '\x0115'# -> unI64 276+  '\x0117'# -> unI64 278+  '\x0119'# -> unI64 280+  '\x011b'# -> unI64 282+  '\x011d'# -> unI64 284+  '\x011f'# -> unI64 286+  '\x0121'# -> unI64 288+  '\x0123'# -> unI64 290+  '\x0125'# -> unI64 292+  '\x0127'# -> unI64 294+  '\x0129'# -> unI64 296+  '\x012b'# -> unI64 298+  '\x012d'# -> unI64 300+  '\x012f'# -> unI64 302+  '\x0131'# -> unI64 73+  '\x0133'# -> unI64 306+  '\x0135'# -> unI64 308+  '\x0137'# -> unI64 310+  '\x013a'# -> unI64 313+  '\x013c'# -> unI64 315+  '\x013e'# -> unI64 317+  '\x0140'# -> unI64 319+  '\x0142'# -> unI64 321+  '\x0144'# -> unI64 323+  '\x0146'# -> unI64 325+  '\x0148'# -> unI64 327+  '\x014b'# -> unI64 330+  '\x014d'# -> unI64 332+  '\x014f'# -> unI64 334+  '\x0151'# -> unI64 336+  '\x0153'# -> unI64 338+  '\x0155'# -> unI64 340+  '\x0157'# -> unI64 342+  '\x0159'# -> unI64 344+  '\x015b'# -> unI64 346+  '\x015d'# -> unI64 348+  '\x015f'# -> unI64 350+  '\x0161'# -> unI64 352+  '\x0163'# -> unI64 354+  '\x0165'# -> unI64 356+  '\x0167'# -> unI64 358+  '\x0169'# -> unI64 360+  '\x016b'# -> unI64 362+  '\x016d'# -> unI64 364+  '\x016f'# -> unI64 366+  '\x0171'# -> unI64 368+  '\x0173'# -> unI64 370+  '\x0175'# -> unI64 372+  '\x0177'# -> unI64 374+  '\x017a'# -> unI64 377+  '\x017c'# -> unI64 379+  '\x017e'# -> unI64 381+  '\x017f'# -> unI64 83+  '\x0180'# -> unI64 579+  '\x0183'# -> unI64 386+  '\x0185'# -> unI64 388+  '\x0188'# -> unI64 391+  '\x018c'# -> unI64 395+  '\x0192'# -> unI64 401+  '\x0195'# -> unI64 502+  '\x0199'# -> unI64 408+  '\x019a'# -> unI64 573+  '\x019e'# -> unI64 544+  '\x01a1'# -> unI64 416+  '\x01a3'# -> unI64 418+  '\x01a5'# -> unI64 420+  '\x01a8'# -> unI64 423+  '\x01ad'# -> unI64 428+  '\x01b0'# -> unI64 431+  '\x01b4'# -> unI64 435+  '\x01b6'# -> unI64 437+  '\x01b9'# -> unI64 440+  '\x01bd'# -> unI64 444+  '\x01bf'# -> unI64 503+  '\x01c4'# -> unI64 453+  '\x01c6'# -> unI64 453+  '\x01c7'# -> unI64 456+  '\x01c9'# -> unI64 456+  '\x01ca'# -> unI64 459+  '\x01cc'# -> unI64 459+  '\x01ce'# -> unI64 461+  '\x01d0'# -> unI64 463+  '\x01d2'# -> unI64 465+  '\x01d4'# -> unI64 467+  '\x01d6'# -> unI64 469+  '\x01d8'# -> unI64 471+  '\x01da'# -> unI64 473+  '\x01dc'# -> unI64 475+  '\x01dd'# -> unI64 398+  '\x01df'# -> unI64 478+  '\x01e1'# -> unI64 480+  '\x01e3'# -> unI64 482+  '\x01e5'# -> unI64 484+  '\x01e7'# -> unI64 486+  '\x01e9'# -> unI64 488+  '\x01eb'# -> unI64 490+  '\x01ed'# -> unI64 492+  '\x01ef'# -> unI64 494+  '\x01f1'# -> unI64 498+  '\x01f3'# -> unI64 498+  '\x01f5'# -> unI64 500+  '\x01f9'# -> unI64 504+  '\x01fb'# -> unI64 506+  '\x01fd'# -> unI64 508+  '\x01ff'# -> unI64 510+  '\x0201'# -> unI64 512+  '\x0203'# -> unI64 514+  '\x0205'# -> unI64 516+  '\x0207'# -> unI64 518+  '\x0209'# -> unI64 520+  '\x020b'# -> unI64 522+  '\x020d'# -> unI64 524+  '\x020f'# -> unI64 526+  '\x0211'# -> unI64 528+  '\x0213'# -> unI64 530+  '\x0215'# -> unI64 532+  '\x0217'# -> unI64 534+  '\x0219'# -> unI64 536+  '\x021b'# -> unI64 538+  '\x021d'# -> unI64 540+  '\x021f'# -> unI64 542+  '\x0223'# -> unI64 546+  '\x0225'# -> unI64 548+  '\x0227'# -> unI64 550+  '\x0229'# -> unI64 552+  '\x022b'# -> unI64 554+  '\x022d'# -> unI64 556+  '\x022f'# -> unI64 558+  '\x0231'# -> unI64 560+  '\x0233'# -> unI64 562+  '\x023c'# -> unI64 571+  '\x023f'# -> unI64 11390+  '\x0240'# -> unI64 11391+  '\x0242'# -> unI64 577+  '\x0247'# -> unI64 582+  '\x0249'# -> unI64 584+  '\x024b'# -> unI64 586+  '\x024d'# -> unI64 588+  '\x024f'# -> unI64 590+  '\x0250'# -> unI64 11375+  '\x0251'# -> unI64 11373+  '\x0252'# -> unI64 11376+  '\x0253'# -> unI64 385+  '\x0254'# -> unI64 390+  '\x0256'# -> unI64 393+  '\x0257'# -> unI64 394+  '\x0259'# -> unI64 399+  '\x025b'# -> unI64 400+  '\x025c'# -> unI64 42923+  '\x0260'# -> unI64 403+  '\x0261'# -> unI64 42924+  '\x0263'# -> unI64 404+  '\x0265'# -> unI64 42893+  '\x0266'# -> unI64 42922+  '\x0268'# -> unI64 407+  '\x0269'# -> unI64 406+  '\x026a'# -> unI64 42926+  '\x026b'# -> unI64 11362+  '\x026c'# -> unI64 42925+  '\x026f'# -> unI64 412+  '\x0271'# -> unI64 11374+  '\x0272'# -> unI64 413+  '\x0275'# -> unI64 415+  '\x027d'# -> unI64 11364+  '\x0280'# -> unI64 422+  '\x0282'# -> unI64 42949+  '\x0283'# -> unI64 425+  '\x0287'# -> unI64 42929+  '\x0288'# -> unI64 430+  '\x0289'# -> unI64 580+  '\x028a'# -> unI64 433+  '\x028b'# -> unI64 434+  '\x028c'# -> unI64 581+  '\x0292'# -> unI64 439+  '\x029d'# -> unI64 42930+  '\x029e'# -> unI64 42928+  '\x0345'# -> unI64 921+  '\x0371'# -> unI64 880+  '\x0373'# -> unI64 882+  '\x0377'# -> unI64 886+  '\x037b'# -> unI64 1021+  '\x037c'# -> unI64 1022+  '\x037d'# -> unI64 1023+  '\x03ac'# -> unI64 902+  '\x03ad'# -> unI64 904+  '\x03ae'# -> unI64 905+  '\x03af'# -> unI64 906+  '\x03b1'# -> unI64 913+  '\x03b2'# -> unI64 914+  '\x03b3'# -> unI64 915+  '\x03b4'# -> unI64 916+  '\x03b5'# -> unI64 917+  '\x03b6'# -> unI64 918+  '\x03b7'# -> unI64 919+  '\x03b8'# -> unI64 920+  '\x03b9'# -> unI64 921+  '\x03ba'# -> unI64 922+  '\x03bb'# -> unI64 923+  '\x03bc'# -> unI64 924+  '\x03bd'# -> unI64 925+  '\x03be'# -> unI64 926+  '\x03bf'# -> unI64 927+  '\x03c0'# -> unI64 928+  '\x03c1'# -> unI64 929+  '\x03c2'# -> unI64 931+  '\x03c3'# -> unI64 931+  '\x03c4'# -> unI64 932+  '\x03c5'# -> unI64 933+  '\x03c6'# -> unI64 934+  '\x03c7'# -> unI64 935+  '\x03c8'# -> unI64 936+  '\x03c9'# -> unI64 937+  '\x03ca'# -> unI64 938+  '\x03cb'# -> unI64 939+  '\x03cc'# -> unI64 908+  '\x03cd'# -> unI64 910+  '\x03ce'# -> unI64 911+  '\x03d0'# -> unI64 914+  '\x03d1'# -> unI64 920+  '\x03d5'# -> unI64 934+  '\x03d6'# -> unI64 928+  '\x03d7'# -> unI64 975+  '\x03d9'# -> unI64 984+  '\x03db'# -> unI64 986+  '\x03dd'# -> unI64 988+  '\x03df'# -> unI64 990+  '\x03e1'# -> unI64 992+  '\x03e3'# -> unI64 994+  '\x03e5'# -> unI64 996+  '\x03e7'# -> unI64 998+  '\x03e9'# -> unI64 1000+  '\x03eb'# -> unI64 1002+  '\x03ed'# -> unI64 1004+  '\x03ef'# -> unI64 1006+  '\x03f0'# -> unI64 922+  '\x03f1'# -> unI64 929+  '\x03f2'# -> unI64 1017+  '\x03f3'# -> unI64 895+  '\x03f5'# -> unI64 917+  '\x03f8'# -> unI64 1015+  '\x03fb'# -> unI64 1018+  '\x0430'# -> unI64 1040+  '\x0431'# -> unI64 1041+  '\x0432'# -> unI64 1042+  '\x0433'# -> unI64 1043+  '\x0434'# -> unI64 1044+  '\x0435'# -> unI64 1045+  '\x0436'# -> unI64 1046+  '\x0437'# -> unI64 1047+  '\x0438'# -> unI64 1048+  '\x0439'# -> unI64 1049+  '\x043a'# -> unI64 1050+  '\x043b'# -> unI64 1051+  '\x043c'# -> unI64 1052+  '\x043d'# -> unI64 1053+  '\x043e'# -> unI64 1054+  '\x043f'# -> unI64 1055+  '\x0440'# -> unI64 1056+  '\x0441'# -> unI64 1057+  '\x0442'# -> unI64 1058+  '\x0443'# -> unI64 1059+  '\x0444'# -> unI64 1060+  '\x0445'# -> unI64 1061+  '\x0446'# -> unI64 1062+  '\x0447'# -> unI64 1063+  '\x0448'# -> unI64 1064+  '\x0449'# -> unI64 1065+  '\x044a'# -> unI64 1066+  '\x044b'# -> unI64 1067+  '\x044c'# -> unI64 1068+  '\x044d'# -> unI64 1069+  '\x044e'# -> unI64 1070+  '\x044f'# -> unI64 1071+  '\x0450'# -> unI64 1024+  '\x0451'# -> unI64 1025+  '\x0452'# -> unI64 1026+  '\x0453'# -> unI64 1027+  '\x0454'# -> unI64 1028+  '\x0455'# -> unI64 1029+  '\x0456'# -> unI64 1030+  '\x0457'# -> unI64 1031+  '\x0458'# -> unI64 1032+  '\x0459'# -> unI64 1033+  '\x045a'# -> unI64 1034+  '\x045b'# -> unI64 1035+  '\x045c'# -> unI64 1036+  '\x045d'# -> unI64 1037+  '\x045e'# -> unI64 1038+  '\x045f'# -> unI64 1039+  '\x0461'# -> unI64 1120+  '\x0463'# -> unI64 1122+  '\x0465'# -> unI64 1124+  '\x0467'# -> unI64 1126+  '\x0469'# -> unI64 1128+  '\x046b'# -> unI64 1130+  '\x046d'# -> unI64 1132+  '\x046f'# -> unI64 1134+  '\x0471'# -> unI64 1136+  '\x0473'# -> unI64 1138+  '\x0475'# -> unI64 1140+  '\x0477'# -> unI64 1142+  '\x0479'# -> unI64 1144+  '\x047b'# -> unI64 1146+  '\x047d'# -> unI64 1148+  '\x047f'# -> unI64 1150+  '\x0481'# -> unI64 1152+  '\x048b'# -> unI64 1162+  '\x048d'# -> unI64 1164+  '\x048f'# -> unI64 1166+  '\x0491'# -> unI64 1168+  '\x0493'# -> unI64 1170+  '\x0495'# -> unI64 1172+  '\x0497'# -> unI64 1174+  '\x0499'# -> unI64 1176+  '\x049b'# -> unI64 1178+  '\x049d'# -> unI64 1180+  '\x049f'# -> unI64 1182+  '\x04a1'# -> unI64 1184+  '\x04a3'# -> unI64 1186+  '\x04a5'# -> unI64 1188+  '\x04a7'# -> unI64 1190+  '\x04a9'# -> unI64 1192+  '\x04ab'# -> unI64 1194+  '\x04ad'# -> unI64 1196+  '\x04af'# -> unI64 1198+  '\x04b1'# -> unI64 1200+  '\x04b3'# -> unI64 1202+  '\x04b5'# -> unI64 1204+  '\x04b7'# -> unI64 1206+  '\x04b9'# -> unI64 1208+  '\x04bb'# -> unI64 1210+  '\x04bd'# -> unI64 1212+  '\x04bf'# -> unI64 1214+  '\x04c2'# -> unI64 1217+  '\x04c4'# -> unI64 1219+  '\x04c6'# -> unI64 1221+  '\x04c8'# -> unI64 1223+  '\x04ca'# -> unI64 1225+  '\x04cc'# -> unI64 1227+  '\x04ce'# -> unI64 1229+  '\x04cf'# -> unI64 1216+  '\x04d1'# -> unI64 1232+  '\x04d3'# -> unI64 1234+  '\x04d5'# -> unI64 1236+  '\x04d7'# -> unI64 1238+  '\x04d9'# -> unI64 1240+  '\x04db'# -> unI64 1242+  '\x04dd'# -> unI64 1244+  '\x04df'# -> unI64 1246+  '\x04e1'# -> unI64 1248+  '\x04e3'# -> unI64 1250+  '\x04e5'# -> unI64 1252+  '\x04e7'# -> unI64 1254+  '\x04e9'# -> unI64 1256+  '\x04eb'# -> unI64 1258+  '\x04ed'# -> unI64 1260+  '\x04ef'# -> unI64 1262+  '\x04f1'# -> unI64 1264+  '\x04f3'# -> unI64 1266+  '\x04f5'# -> unI64 1268+  '\x04f7'# -> unI64 1270+  '\x04f9'# -> unI64 1272+  '\x04fb'# -> unI64 1274+  '\x04fd'# -> unI64 1276+  '\x04ff'# -> unI64 1278+  '\x0501'# -> unI64 1280+  '\x0503'# -> unI64 1282+  '\x0505'# -> unI64 1284+  '\x0507'# -> unI64 1286+  '\x0509'# -> unI64 1288+  '\x050b'# -> unI64 1290+  '\x050d'# -> unI64 1292+  '\x050f'# -> unI64 1294+  '\x0511'# -> unI64 1296+  '\x0513'# -> unI64 1298+  '\x0515'# -> unI64 1300+  '\x0517'# -> unI64 1302+  '\x0519'# -> unI64 1304+  '\x051b'# -> unI64 1306+  '\x051d'# -> unI64 1308+  '\x051f'# -> unI64 1310+  '\x0521'# -> unI64 1312+  '\x0523'# -> unI64 1314+  '\x0525'# -> unI64 1316+  '\x0527'# -> unI64 1318+  '\x0529'# -> unI64 1320+  '\x052b'# -> unI64 1322+  '\x052d'# -> unI64 1324+  '\x052f'# -> unI64 1326+  '\x0561'# -> unI64 1329+  '\x0562'# -> unI64 1330+  '\x0563'# -> unI64 1331+  '\x0564'# -> unI64 1332+  '\x0565'# -> unI64 1333+  '\x0566'# -> unI64 1334+  '\x0567'# -> unI64 1335+  '\x0568'# -> unI64 1336+  '\x0569'# -> unI64 1337+  '\x056a'# -> unI64 1338+  '\x056b'# -> unI64 1339+  '\x056c'# -> unI64 1340+  '\x056d'# -> unI64 1341+  '\x056e'# -> unI64 1342+  '\x056f'# -> unI64 1343+  '\x0570'# -> unI64 1344+  '\x0571'# -> unI64 1345+  '\x0572'# -> unI64 1346+  '\x0573'# -> unI64 1347+  '\x0574'# -> unI64 1348+  '\x0575'# -> unI64 1349+  '\x0576'# -> unI64 1350+  '\x0577'# -> unI64 1351+  '\x0578'# -> unI64 1352+  '\x0579'# -> unI64 1353+  '\x057a'# -> unI64 1354+  '\x057b'# -> unI64 1355+  '\x057c'# -> unI64 1356+  '\x057d'# -> unI64 1357+  '\x057e'# -> unI64 1358+  '\x057f'# -> unI64 1359+  '\x0580'# -> unI64 1360+  '\x0581'# -> unI64 1361+  '\x0582'# -> unI64 1362+  '\x0583'# -> unI64 1363+  '\x0584'# -> unI64 1364+  '\x0585'# -> unI64 1365+  '\x0586'# -> unI64 1366+  '\x13f8'# -> unI64 5104+  '\x13f9'# -> unI64 5105+  '\x13fa'# -> unI64 5106+  '\x13fb'# -> unI64 5107+  '\x13fc'# -> unI64 5108+  '\x13fd'# -> unI64 5109+  '\x1c80'# -> unI64 1042+  '\x1c81'# -> unI64 1044+  '\x1c82'# -> unI64 1054+  '\x1c83'# -> unI64 1057+  '\x1c84'# -> unI64 1058+  '\x1c85'# -> unI64 1058+  '\x1c86'# -> unI64 1066+  '\x1c87'# -> unI64 1122+  '\x1c88'# -> unI64 42570+  '\x1d79'# -> unI64 42877+  '\x1d7d'# -> unI64 11363+  '\x1d8e'# -> unI64 42950+  '\x1e01'# -> unI64 7680+  '\x1e03'# -> unI64 7682+  '\x1e05'# -> unI64 7684+  '\x1e07'# -> unI64 7686+  '\x1e09'# -> unI64 7688+  '\x1e0b'# -> unI64 7690+  '\x1e0d'# -> unI64 7692+  '\x1e0f'# -> unI64 7694+  '\x1e11'# -> unI64 7696+  '\x1e13'# -> unI64 7698+  '\x1e15'# -> unI64 7700+  '\x1e17'# -> unI64 7702+  '\x1e19'# -> unI64 7704+  '\x1e1b'# -> unI64 7706+  '\x1e1d'# -> unI64 7708+  '\x1e1f'# -> unI64 7710+  '\x1e21'# -> unI64 7712+  '\x1e23'# -> unI64 7714+  '\x1e25'# -> unI64 7716+  '\x1e27'# -> unI64 7718+  '\x1e29'# -> unI64 7720+  '\x1e2b'# -> unI64 7722+  '\x1e2d'# -> unI64 7724+  '\x1e2f'# -> unI64 7726+  '\x1e31'# -> unI64 7728+  '\x1e33'# -> unI64 7730+  '\x1e35'# -> unI64 7732+  '\x1e37'# -> unI64 7734+  '\x1e39'# -> unI64 7736+  '\x1e3b'# -> unI64 7738+  '\x1e3d'# -> unI64 7740+  '\x1e3f'# -> unI64 7742+  '\x1e41'# -> unI64 7744+  '\x1e43'# -> unI64 7746+  '\x1e45'# -> unI64 7748+  '\x1e47'# -> unI64 7750+  '\x1e49'# -> unI64 7752+  '\x1e4b'# -> unI64 7754+  '\x1e4d'# -> unI64 7756+  '\x1e4f'# -> unI64 7758+  '\x1e51'# -> unI64 7760+  '\x1e53'# -> unI64 7762+  '\x1e55'# -> unI64 7764+  '\x1e57'# -> unI64 7766+  '\x1e59'# -> unI64 7768+  '\x1e5b'# -> unI64 7770+  '\x1e5d'# -> unI64 7772+  '\x1e5f'# -> unI64 7774+  '\x1e61'# -> unI64 7776+  '\x1e63'# -> unI64 7778+  '\x1e65'# -> unI64 7780+  '\x1e67'# -> unI64 7782+  '\x1e69'# -> unI64 7784+  '\x1e6b'# -> unI64 7786+  '\x1e6d'# -> unI64 7788+  '\x1e6f'# -> unI64 7790+  '\x1e71'# -> unI64 7792+  '\x1e73'# -> unI64 7794+  '\x1e75'# -> unI64 7796+  '\x1e77'# -> unI64 7798+  '\x1e79'# -> unI64 7800+  '\x1e7b'# -> unI64 7802+  '\x1e7d'# -> unI64 7804+  '\x1e7f'# -> unI64 7806+  '\x1e81'# -> unI64 7808+  '\x1e83'# -> unI64 7810+  '\x1e85'# -> unI64 7812+  '\x1e87'# -> unI64 7814+  '\x1e89'# -> unI64 7816+  '\x1e8b'# -> unI64 7818+  '\x1e8d'# -> unI64 7820+  '\x1e8f'# -> unI64 7822+  '\x1e91'# -> unI64 7824+  '\x1e93'# -> unI64 7826+  '\x1e95'# -> unI64 7828+  '\x1e9b'# -> unI64 7776+  '\x1ea1'# -> unI64 7840+  '\x1ea3'# -> unI64 7842+  '\x1ea5'# -> unI64 7844+  '\x1ea7'# -> unI64 7846+  '\x1ea9'# -> unI64 7848+  '\x1eab'# -> unI64 7850+  '\x1ead'# -> unI64 7852+  '\x1eaf'# -> unI64 7854+  '\x1eb1'# -> unI64 7856+  '\x1eb3'# -> unI64 7858+  '\x1eb5'# -> unI64 7860+  '\x1eb7'# -> unI64 7862+  '\x1eb9'# -> unI64 7864+  '\x1ebb'# -> unI64 7866+  '\x1ebd'# -> unI64 7868+  '\x1ebf'# -> unI64 7870+  '\x1ec1'# -> unI64 7872+  '\x1ec3'# -> unI64 7874+  '\x1ec5'# -> unI64 7876+  '\x1ec7'# -> unI64 7878+  '\x1ec9'# -> unI64 7880+  '\x1ecb'# -> unI64 7882+  '\x1ecd'# -> unI64 7884+  '\x1ecf'# -> unI64 7886+  '\x1ed1'# -> unI64 7888+  '\x1ed3'# -> unI64 7890+  '\x1ed5'# -> unI64 7892+  '\x1ed7'# -> unI64 7894+  '\x1ed9'# -> unI64 7896+  '\x1edb'# -> unI64 7898+  '\x1edd'# -> unI64 7900+  '\x1edf'# -> unI64 7902+  '\x1ee1'# -> unI64 7904+  '\x1ee3'# -> unI64 7906+  '\x1ee5'# -> unI64 7908+  '\x1ee7'# -> unI64 7910+  '\x1ee9'# -> unI64 7912+  '\x1eeb'# -> unI64 7914+  '\x1eed'# -> unI64 7916+  '\x1eef'# -> unI64 7918+  '\x1ef1'# -> unI64 7920+  '\x1ef3'# -> unI64 7922+  '\x1ef5'# -> unI64 7924+  '\x1ef7'# -> unI64 7926+  '\x1ef9'# -> unI64 7928+  '\x1efb'# -> unI64 7930+  '\x1efd'# -> unI64 7932+  '\x1eff'# -> unI64 7934+  '\x1f00'# -> unI64 7944+  '\x1f01'# -> unI64 7945+  '\x1f02'# -> unI64 7946+  '\x1f03'# -> unI64 7947+  '\x1f04'# -> unI64 7948+  '\x1f05'# -> unI64 7949+  '\x1f06'# -> unI64 7950+  '\x1f07'# -> unI64 7951+  '\x1f10'# -> unI64 7960+  '\x1f11'# -> unI64 7961+  '\x1f12'# -> unI64 7962+  '\x1f13'# -> unI64 7963+  '\x1f14'# -> unI64 7964+  '\x1f15'# -> unI64 7965+  '\x1f20'# -> unI64 7976+  '\x1f21'# -> unI64 7977+  '\x1f22'# -> unI64 7978+  '\x1f23'# -> unI64 7979+  '\x1f24'# -> unI64 7980+  '\x1f25'# -> unI64 7981+  '\x1f26'# -> unI64 7982+  '\x1f27'# -> unI64 7983+  '\x1f30'# -> unI64 7992+  '\x1f31'# -> unI64 7993+  '\x1f32'# -> unI64 7994+  '\x1f33'# -> unI64 7995+  '\x1f34'# -> unI64 7996+  '\x1f35'# -> unI64 7997+  '\x1f36'# -> unI64 7998+  '\x1f37'# -> unI64 7999+  '\x1f40'# -> unI64 8008+  '\x1f41'# -> unI64 8009+  '\x1f42'# -> unI64 8010+  '\x1f43'# -> unI64 8011+  '\x1f44'# -> unI64 8012+  '\x1f45'# -> unI64 8013+  '\x1f51'# -> unI64 8025+  '\x1f53'# -> unI64 8027+  '\x1f55'# -> unI64 8029+  '\x1f57'# -> unI64 8031+  '\x1f60'# -> unI64 8040+  '\x1f61'# -> unI64 8041+  '\x1f62'# -> unI64 8042+  '\x1f63'# -> unI64 8043+  '\x1f64'# -> unI64 8044+  '\x1f65'# -> unI64 8045+  '\x1f66'# -> unI64 8046+  '\x1f67'# -> unI64 8047+  '\x1f70'# -> unI64 8122+  '\x1f71'# -> unI64 8123+  '\x1f72'# -> unI64 8136+  '\x1f73'# -> unI64 8137+  '\x1f74'# -> unI64 8138+  '\x1f75'# -> unI64 8139+  '\x1f76'# -> unI64 8154+  '\x1f77'# -> unI64 8155+  '\x1f78'# -> unI64 8184+  '\x1f79'# -> unI64 8185+  '\x1f7a'# -> unI64 8170+  '\x1f7b'# -> unI64 8171+  '\x1f7c'# -> unI64 8186+  '\x1f7d'# -> unI64 8187+  '\x1f80'# -> unI64 8072+  '\x1f81'# -> unI64 8073+  '\x1f82'# -> unI64 8074+  '\x1f83'# -> unI64 8075+  '\x1f84'# -> unI64 8076+  '\x1f85'# -> unI64 8077+  '\x1f86'# -> unI64 8078+  '\x1f87'# -> unI64 8079+  '\x1f90'# -> unI64 8088+  '\x1f91'# -> unI64 8089+  '\x1f92'# -> unI64 8090+  '\x1f93'# -> unI64 8091+  '\x1f94'# -> unI64 8092+  '\x1f95'# -> unI64 8093+  '\x1f96'# -> unI64 8094+  '\x1f97'# -> unI64 8095+  '\x1fa0'# -> unI64 8104+  '\x1fa1'# -> unI64 8105+  '\x1fa2'# -> unI64 8106+  '\x1fa3'# -> unI64 8107+  '\x1fa4'# -> unI64 8108+  '\x1fa5'# -> unI64 8109+  '\x1fa6'# -> unI64 8110+  '\x1fa7'# -> unI64 8111+  '\x1fb0'# -> unI64 8120+  '\x1fb1'# -> unI64 8121+  '\x1fb3'# -> unI64 8124+  '\x1fbe'# -> unI64 921+  '\x1fc3'# -> unI64 8140+  '\x1fd0'# -> unI64 8152+  '\x1fd1'# -> unI64 8153+  '\x1fe0'# -> unI64 8168+  '\x1fe1'# -> unI64 8169+  '\x1fe5'# -> unI64 8172+  '\x1ff3'# -> unI64 8188+  '\x214e'# -> unI64 8498+  '\x2170'# -> unI64 8544+  '\x2171'# -> unI64 8545+  '\x2172'# -> unI64 8546+  '\x2173'# -> unI64 8547+  '\x2174'# -> unI64 8548+  '\x2175'# -> unI64 8549+  '\x2176'# -> unI64 8550+  '\x2177'# -> unI64 8551+  '\x2178'# -> unI64 8552+  '\x2179'# -> unI64 8553+  '\x217a'# -> unI64 8554+  '\x217b'# -> unI64 8555+  '\x217c'# -> unI64 8556+  '\x217d'# -> unI64 8557+  '\x217e'# -> unI64 8558+  '\x217f'# -> unI64 8559+  '\x2184'# -> unI64 8579+  '\x24d0'# -> unI64 9398+  '\x24d1'# -> unI64 9399+  '\x24d2'# -> unI64 9400+  '\x24d3'# -> unI64 9401+  '\x24d4'# -> unI64 9402+  '\x24d5'# -> unI64 9403+  '\x24d6'# -> unI64 9404+  '\x24d7'# -> unI64 9405+  '\x24d8'# -> unI64 9406+  '\x24d9'# -> unI64 9407+  '\x24da'# -> unI64 9408+  '\x24db'# -> unI64 9409+  '\x24dc'# -> unI64 9410+  '\x24dd'# -> unI64 9411+  '\x24de'# -> unI64 9412+  '\x24df'# -> unI64 9413+  '\x24e0'# -> unI64 9414+  '\x24e1'# -> unI64 9415+  '\x24e2'# -> unI64 9416+  '\x24e3'# -> unI64 9417+  '\x24e4'# -> unI64 9418+  '\x24e5'# -> unI64 9419+  '\x24e6'# -> unI64 9420+  '\x24e7'# -> unI64 9421+  '\x24e8'# -> unI64 9422+  '\x24e9'# -> unI64 9423+  '\x2c30'# -> unI64 11264+  '\x2c31'# -> unI64 11265+  '\x2c32'# -> unI64 11266+  '\x2c33'# -> unI64 11267+  '\x2c34'# -> unI64 11268+  '\x2c35'# -> unI64 11269+  '\x2c36'# -> unI64 11270+  '\x2c37'# -> unI64 11271+  '\x2c38'# -> unI64 11272+  '\x2c39'# -> unI64 11273+  '\x2c3a'# -> unI64 11274+  '\x2c3b'# -> unI64 11275+  '\x2c3c'# -> unI64 11276+  '\x2c3d'# -> unI64 11277+  '\x2c3e'# -> unI64 11278+  '\x2c3f'# -> unI64 11279+  '\x2c40'# -> unI64 11280+  '\x2c41'# -> unI64 11281+  '\x2c42'# -> unI64 11282+  '\x2c43'# -> unI64 11283+  '\x2c44'# -> unI64 11284+  '\x2c45'# -> unI64 11285+  '\x2c46'# -> unI64 11286+  '\x2c47'# -> unI64 11287+  '\x2c48'# -> unI64 11288+  '\x2c49'# -> unI64 11289+  '\x2c4a'# -> unI64 11290+  '\x2c4b'# -> unI64 11291+  '\x2c4c'# -> unI64 11292+  '\x2c4d'# -> unI64 11293+  '\x2c4e'# -> unI64 11294+  '\x2c4f'# -> unI64 11295+  '\x2c50'# -> unI64 11296+  '\x2c51'# -> unI64 11297+  '\x2c52'# -> unI64 11298+  '\x2c53'# -> unI64 11299+  '\x2c54'# -> unI64 11300+  '\x2c55'# -> unI64 11301+  '\x2c56'# -> unI64 11302+  '\x2c57'# -> unI64 11303+  '\x2c58'# -> unI64 11304+  '\x2c59'# -> unI64 11305+  '\x2c5a'# -> unI64 11306+  '\x2c5b'# -> unI64 11307+  '\x2c5c'# -> unI64 11308+  '\x2c5d'# -> unI64 11309+  '\x2c5e'# -> unI64 11310+  '\x2c5f'# -> unI64 11311+  '\x2c61'# -> unI64 11360+  '\x2c65'# -> unI64 570+  '\x2c66'# -> unI64 574+  '\x2c68'# -> unI64 11367+  '\x2c6a'# -> unI64 11369+  '\x2c6c'# -> unI64 11371+  '\x2c73'# -> unI64 11378+  '\x2c76'# -> unI64 11381+  '\x2c81'# -> unI64 11392+  '\x2c83'# -> unI64 11394+  '\x2c85'# -> unI64 11396+  '\x2c87'# -> unI64 11398+  '\x2c89'# -> unI64 11400+  '\x2c8b'# -> unI64 11402+  '\x2c8d'# -> unI64 11404+  '\x2c8f'# -> unI64 11406+  '\x2c91'# -> unI64 11408+  '\x2c93'# -> unI64 11410+  '\x2c95'# -> unI64 11412+  '\x2c97'# -> unI64 11414+  '\x2c99'# -> unI64 11416+  '\x2c9b'# -> unI64 11418+  '\x2c9d'# -> unI64 11420+  '\x2c9f'# -> unI64 11422+  '\x2ca1'# -> unI64 11424+  '\x2ca3'# -> unI64 11426+  '\x2ca5'# -> unI64 11428+  '\x2ca7'# -> unI64 11430+  '\x2ca9'# -> unI64 11432+  '\x2cab'# -> unI64 11434+  '\x2cad'# -> unI64 11436+  '\x2caf'# -> unI64 11438+  '\x2cb1'# -> unI64 11440+  '\x2cb3'# -> unI64 11442+  '\x2cb5'# -> unI64 11444+  '\x2cb7'# -> unI64 11446+  '\x2cb9'# -> unI64 11448+  '\x2cbb'# -> unI64 11450+  '\x2cbd'# -> unI64 11452+  '\x2cbf'# -> unI64 11454+  '\x2cc1'# -> unI64 11456+  '\x2cc3'# -> unI64 11458+  '\x2cc5'# -> unI64 11460+  '\x2cc7'# -> unI64 11462+  '\x2cc9'# -> unI64 11464+  '\x2ccb'# -> unI64 11466+  '\x2ccd'# -> unI64 11468+  '\x2ccf'# -> unI64 11470+  '\x2cd1'# -> unI64 11472+  '\x2cd3'# -> unI64 11474+  '\x2cd5'# -> unI64 11476+  '\x2cd7'# -> unI64 11478+  '\x2cd9'# -> unI64 11480+  '\x2cdb'# -> unI64 11482+  '\x2cdd'# -> unI64 11484+  '\x2cdf'# -> unI64 11486+  '\x2ce1'# -> unI64 11488+  '\x2ce3'# -> unI64 11490+  '\x2cec'# -> unI64 11499+  '\x2cee'# -> unI64 11501+  '\x2cf3'# -> unI64 11506+  '\x2d00'# -> unI64 4256+  '\x2d01'# -> unI64 4257+  '\x2d02'# -> unI64 4258+  '\x2d03'# -> unI64 4259+  '\x2d04'# -> unI64 4260+  '\x2d05'# -> unI64 4261+  '\x2d06'# -> unI64 4262+  '\x2d07'# -> unI64 4263+  '\x2d08'# -> unI64 4264+  '\x2d09'# -> unI64 4265+  '\x2d0a'# -> unI64 4266+  '\x2d0b'# -> unI64 4267+  '\x2d0c'# -> unI64 4268+  '\x2d0d'# -> unI64 4269+  '\x2d0e'# -> unI64 4270+  '\x2d0f'# -> unI64 4271+  '\x2d10'# -> unI64 4272+  '\x2d11'# -> unI64 4273+  '\x2d12'# -> unI64 4274+  '\x2d13'# -> unI64 4275+  '\x2d14'# -> unI64 4276+  '\x2d15'# -> unI64 4277+  '\x2d16'# -> unI64 4278+  '\x2d17'# -> unI64 4279+  '\x2d18'# -> unI64 4280+  '\x2d19'# -> unI64 4281+  '\x2d1a'# -> unI64 4282+  '\x2d1b'# -> unI64 4283+  '\x2d1c'# -> unI64 4284+  '\x2d1d'# -> unI64 4285+  '\x2d1e'# -> unI64 4286+  '\x2d1f'# -> unI64 4287+  '\x2d20'# -> unI64 4288+  '\x2d21'# -> unI64 4289+  '\x2d22'# -> unI64 4290+  '\x2d23'# -> unI64 4291+  '\x2d24'# -> unI64 4292+  '\x2d25'# -> unI64 4293+  '\x2d27'# -> unI64 4295+  '\x2d2d'# -> unI64 4301+  '\xa641'# -> unI64 42560+  '\xa643'# -> unI64 42562+  '\xa645'# -> unI64 42564+  '\xa647'# -> unI64 42566+  '\xa649'# -> unI64 42568+  '\xa64b'# -> unI64 42570+  '\xa64d'# -> unI64 42572+  '\xa64f'# -> unI64 42574+  '\xa651'# -> unI64 42576+  '\xa653'# -> unI64 42578+  '\xa655'# -> unI64 42580+  '\xa657'# -> unI64 42582+  '\xa659'# -> unI64 42584+  '\xa65b'# -> unI64 42586+  '\xa65d'# -> unI64 42588+  '\xa65f'# -> unI64 42590+  '\xa661'# -> unI64 42592+  '\xa663'# -> unI64 42594+  '\xa665'# -> unI64 42596+  '\xa667'# -> unI64 42598+  '\xa669'# -> unI64 42600+  '\xa66b'# -> unI64 42602+  '\xa66d'# -> unI64 42604+  '\xa681'# -> unI64 42624+  '\xa683'# -> unI64 42626+  '\xa685'# -> unI64 42628+  '\xa687'# -> unI64 42630+  '\xa689'# -> unI64 42632+  '\xa68b'# -> unI64 42634+  '\xa68d'# -> unI64 42636+  '\xa68f'# -> unI64 42638+  '\xa691'# -> unI64 42640+  '\xa693'# -> unI64 42642+  '\xa695'# -> unI64 42644+  '\xa697'# -> unI64 42646+  '\xa699'# -> unI64 42648+  '\xa69b'# -> unI64 42650+  '\xa723'# -> unI64 42786+  '\xa725'# -> unI64 42788+  '\xa727'# -> unI64 42790+  '\xa729'# -> unI64 42792+  '\xa72b'# -> unI64 42794+  '\xa72d'# -> unI64 42796+  '\xa72f'# -> unI64 42798+  '\xa733'# -> unI64 42802+  '\xa735'# -> unI64 42804+  '\xa737'# -> unI64 42806+  '\xa739'# -> unI64 42808+  '\xa73b'# -> unI64 42810+  '\xa73d'# -> unI64 42812+  '\xa73f'# -> unI64 42814+  '\xa741'# -> unI64 42816+  '\xa743'# -> unI64 42818+  '\xa745'# -> unI64 42820+  '\xa747'# -> unI64 42822+  '\xa749'# -> unI64 42824+  '\xa74b'# -> unI64 42826+  '\xa74d'# -> unI64 42828+  '\xa74f'# -> unI64 42830+  '\xa751'# -> unI64 42832+  '\xa753'# -> unI64 42834+  '\xa755'# -> unI64 42836+  '\xa757'# -> unI64 42838+  '\xa759'# -> unI64 42840+  '\xa75b'# -> unI64 42842+  '\xa75d'# -> unI64 42844+  '\xa75f'# -> unI64 42846+  '\xa761'# -> unI64 42848+  '\xa763'# -> unI64 42850+  '\xa765'# -> unI64 42852+  '\xa767'# -> unI64 42854+  '\xa769'# -> unI64 42856+  '\xa76b'# -> unI64 42858+  '\xa76d'# -> unI64 42860+  '\xa76f'# -> unI64 42862+  '\xa77a'# -> unI64 42873+  '\xa77c'# -> unI64 42875+  '\xa77f'# -> unI64 42878+  '\xa781'# -> unI64 42880+  '\xa783'# -> unI64 42882+  '\xa785'# -> unI64 42884+  '\xa787'# -> unI64 42886+  '\xa78c'# -> unI64 42891+  '\xa791'# -> unI64 42896+  '\xa793'# -> unI64 42898+  '\xa794'# -> unI64 42948+  '\xa797'# -> unI64 42902+  '\xa799'# -> unI64 42904+  '\xa79b'# -> unI64 42906+  '\xa79d'# -> unI64 42908+  '\xa79f'# -> unI64 42910+  '\xa7a1'# -> unI64 42912+  '\xa7a3'# -> unI64 42914+  '\xa7a5'# -> unI64 42916+  '\xa7a7'# -> unI64 42918+  '\xa7a9'# -> unI64 42920+  '\xa7b5'# -> unI64 42932+  '\xa7b7'# -> unI64 42934+  '\xa7b9'# -> unI64 42936+  '\xa7bb'# -> unI64 42938+  '\xa7bd'# -> unI64 42940+  '\xa7bf'# -> unI64 42942+  '\xa7c1'# -> unI64 42944+  '\xa7c3'# -> unI64 42946+  '\xa7c8'# -> unI64 42951+  '\xa7ca'# -> unI64 42953+  '\xa7d1'# -> unI64 42960+  '\xa7d7'# -> unI64 42966+  '\xa7d9'# -> unI64 42968+  '\xa7f6'# -> unI64 42997+  '\xab53'# -> unI64 42931+  '\xab70'# -> unI64 5024+  '\xab71'# -> unI64 5025+  '\xab72'# -> unI64 5026+  '\xab73'# -> unI64 5027+  '\xab74'# -> unI64 5028+  '\xab75'# -> unI64 5029+  '\xab76'# -> unI64 5030+  '\xab77'# -> unI64 5031+  '\xab78'# -> unI64 5032+  '\xab79'# -> unI64 5033+  '\xab7a'# -> unI64 5034+  '\xab7b'# -> unI64 5035+  '\xab7c'# -> unI64 5036+  '\xab7d'# -> unI64 5037+  '\xab7e'# -> unI64 5038+  '\xab7f'# -> unI64 5039+  '\xab80'# -> unI64 5040+  '\xab81'# -> unI64 5041+  '\xab82'# -> unI64 5042+  '\xab83'# -> unI64 5043+  '\xab84'# -> unI64 5044+  '\xab85'# -> unI64 5045+  '\xab86'# -> unI64 5046+  '\xab87'# -> unI64 5047+  '\xab88'# -> unI64 5048+  '\xab89'# -> unI64 5049+  '\xab8a'# -> unI64 5050+  '\xab8b'# -> unI64 5051+  '\xab8c'# -> unI64 5052+  '\xab8d'# -> unI64 5053+  '\xab8e'# -> unI64 5054+  '\xab8f'# -> unI64 5055+  '\xab90'# -> unI64 5056+  '\xab91'# -> unI64 5057+  '\xab92'# -> unI64 5058+  '\xab93'# -> unI64 5059+  '\xab94'# -> unI64 5060+  '\xab95'# -> unI64 5061+  '\xab96'# -> unI64 5062+  '\xab97'# -> unI64 5063+  '\xab98'# -> unI64 5064+  '\xab99'# -> unI64 5065+  '\xab9a'# -> unI64 5066+  '\xab9b'# -> unI64 5067+  '\xab9c'# -> unI64 5068+  '\xab9d'# -> unI64 5069+  '\xab9e'# -> unI64 5070+  '\xab9f'# -> unI64 5071+  '\xaba0'# -> unI64 5072+  '\xaba1'# -> unI64 5073+  '\xaba2'# -> unI64 5074+  '\xaba3'# -> unI64 5075+  '\xaba4'# -> unI64 5076+  '\xaba5'# -> unI64 5077+  '\xaba6'# -> unI64 5078+  '\xaba7'# -> unI64 5079+  '\xaba8'# -> unI64 5080+  '\xaba9'# -> unI64 5081+  '\xabaa'# -> unI64 5082+  '\xabab'# -> unI64 5083+  '\xabac'# -> unI64 5084+  '\xabad'# -> unI64 5085+  '\xabae'# -> unI64 5086+  '\xabaf'# -> unI64 5087+  '\xabb0'# -> unI64 5088+  '\xabb1'# -> unI64 5089+  '\xabb2'# -> unI64 5090+  '\xabb3'# -> unI64 5091+  '\xabb4'# -> unI64 5092+  '\xabb5'# -> unI64 5093+  '\xabb6'# -> unI64 5094+  '\xabb7'# -> unI64 5095+  '\xabb8'# -> unI64 5096+  '\xabb9'# -> unI64 5097+  '\xabba'# -> unI64 5098+  '\xabbb'# -> unI64 5099+  '\xabbc'# -> unI64 5100+  '\xabbd'# -> unI64 5101+  '\xabbe'# -> unI64 5102+  '\xabbf'# -> unI64 5103+  '\xff41'# -> unI64 65313+  '\xff42'# -> unI64 65314+  '\xff43'# -> unI64 65315+  '\xff44'# -> unI64 65316+  '\xff45'# -> unI64 65317+  '\xff46'# -> unI64 65318+  '\xff47'# -> unI64 65319+  '\xff48'# -> unI64 65320+  '\xff49'# -> unI64 65321+  '\xff4a'# -> unI64 65322+  '\xff4b'# -> unI64 65323+  '\xff4c'# -> unI64 65324+  '\xff4d'# -> unI64 65325+  '\xff4e'# -> unI64 65326+  '\xff4f'# -> unI64 65327+  '\xff50'# -> unI64 65328+  '\xff51'# -> unI64 65329+  '\xff52'# -> unI64 65330+  '\xff53'# -> unI64 65331+  '\xff54'# -> unI64 65332+  '\xff55'# -> unI64 65333+  '\xff56'# -> unI64 65334+  '\xff57'# -> unI64 65335+  '\xff58'# -> unI64 65336+  '\xff59'# -> unI64 65337+  '\xff5a'# -> unI64 65338+  '\x10428'# -> unI64 66560+  '\x10429'# -> unI64 66561+  '\x1042a'# -> unI64 66562+  '\x1042b'# -> unI64 66563+  '\x1042c'# -> unI64 66564+  '\x1042d'# -> unI64 66565+  '\x1042e'# -> unI64 66566+  '\x1042f'# -> unI64 66567+  '\x10430'# -> unI64 66568+  '\x10431'# -> unI64 66569+  '\x10432'# -> unI64 66570+  '\x10433'# -> unI64 66571+  '\x10434'# -> unI64 66572+  '\x10435'# -> unI64 66573+  '\x10436'# -> unI64 66574+  '\x10437'# -> unI64 66575+  '\x10438'# -> unI64 66576+  '\x10439'# -> unI64 66577+  '\x1043a'# -> unI64 66578+  '\x1043b'# -> unI64 66579+  '\x1043c'# -> unI64 66580+  '\x1043d'# -> unI64 66581+  '\x1043e'# -> unI64 66582+  '\x1043f'# -> unI64 66583+  '\x10440'# -> unI64 66584+  '\x10441'# -> unI64 66585+  '\x10442'# -> unI64 66586+  '\x10443'# -> unI64 66587+  '\x10444'# -> unI64 66588+  '\x10445'# -> unI64 66589+  '\x10446'# -> unI64 66590+  '\x10447'# -> unI64 66591+  '\x10448'# -> unI64 66592+  '\x10449'# -> unI64 66593+  '\x1044a'# -> unI64 66594+  '\x1044b'# -> unI64 66595+  '\x1044c'# -> unI64 66596+  '\x1044d'# -> unI64 66597+  '\x1044e'# -> unI64 66598+  '\x1044f'# -> unI64 66599+  '\x104d8'# -> unI64 66736+  '\x104d9'# -> unI64 66737+  '\x104da'# -> unI64 66738+  '\x104db'# -> unI64 66739+  '\x104dc'# -> unI64 66740+  '\x104dd'# -> unI64 66741+  '\x104de'# -> unI64 66742+  '\x104df'# -> unI64 66743+  '\x104e0'# -> unI64 66744+  '\x104e1'# -> unI64 66745+  '\x104e2'# -> unI64 66746+  '\x104e3'# -> unI64 66747+  '\x104e4'# -> unI64 66748+  '\x104e5'# -> unI64 66749+  '\x104e6'# -> unI64 66750+  '\x104e7'# -> unI64 66751+  '\x104e8'# -> unI64 66752+  '\x104e9'# -> unI64 66753+  '\x104ea'# -> unI64 66754+  '\x104eb'# -> unI64 66755+  '\x104ec'# -> unI64 66756+  '\x104ed'# -> unI64 66757+  '\x104ee'# -> unI64 66758+  '\x104ef'# -> unI64 66759+  '\x104f0'# -> unI64 66760+  '\x104f1'# -> unI64 66761+  '\x104f2'# -> unI64 66762+  '\x104f3'# -> unI64 66763+  '\x104f4'# -> unI64 66764+  '\x104f5'# -> unI64 66765+  '\x104f6'# -> unI64 66766+  '\x104f7'# -> unI64 66767+  '\x104f8'# -> unI64 66768+  '\x104f9'# -> unI64 66769+  '\x104fa'# -> unI64 66770+  '\x104fb'# -> unI64 66771+  '\x10597'# -> unI64 66928+  '\x10598'# -> unI64 66929+  '\x10599'# -> unI64 66930+  '\x1059a'# -> unI64 66931+  '\x1059b'# -> unI64 66932+  '\x1059c'# -> unI64 66933+  '\x1059d'# -> unI64 66934+  '\x1059e'# -> unI64 66935+  '\x1059f'# -> unI64 66936+  '\x105a0'# -> unI64 66937+  '\x105a1'# -> unI64 66938+  '\x105a3'# -> unI64 66940+  '\x105a4'# -> unI64 66941+  '\x105a5'# -> unI64 66942+  '\x105a6'# -> unI64 66943+  '\x105a7'# -> unI64 66944+  '\x105a8'# -> unI64 66945+  '\x105a9'# -> unI64 66946+  '\x105aa'# -> unI64 66947+  '\x105ab'# -> unI64 66948+  '\x105ac'# -> unI64 66949+  '\x105ad'# -> unI64 66950+  '\x105ae'# -> unI64 66951+  '\x105af'# -> unI64 66952+  '\x105b0'# -> unI64 66953+  '\x105b1'# -> unI64 66954+  '\x105b3'# -> unI64 66956+  '\x105b4'# -> unI64 66957+  '\x105b5'# -> unI64 66958+  '\x105b6'# -> unI64 66959+  '\x105b7'# -> unI64 66960+  '\x105b8'# -> unI64 66961+  '\x105b9'# -> unI64 66962+  '\x105bb'# -> unI64 66964+  '\x105bc'# -> unI64 66965+  '\x10cc0'# -> unI64 68736+  '\x10cc1'# -> unI64 68737+  '\x10cc2'# -> unI64 68738+  '\x10cc3'# -> unI64 68739+  '\x10cc4'# -> unI64 68740+  '\x10cc5'# -> unI64 68741+  '\x10cc6'# -> unI64 68742+  '\x10cc7'# -> unI64 68743+  '\x10cc8'# -> unI64 68744+  '\x10cc9'# -> unI64 68745+  '\x10cca'# -> unI64 68746+  '\x10ccb'# -> unI64 68747+  '\x10ccc'# -> unI64 68748+  '\x10ccd'# -> unI64 68749+  '\x10cce'# -> unI64 68750+  '\x10ccf'# -> unI64 68751+  '\x10cd0'# -> unI64 68752+  '\x10cd1'# -> unI64 68753+  '\x10cd2'# -> unI64 68754+  '\x10cd3'# -> unI64 68755+  '\x10cd4'# -> unI64 68756+  '\x10cd5'# -> unI64 68757+  '\x10cd6'# -> unI64 68758+  '\x10cd7'# -> unI64 68759+  '\x10cd8'# -> unI64 68760+  '\x10cd9'# -> unI64 68761+  '\x10cda'# -> unI64 68762+  '\x10cdb'# -> unI64 68763+  '\x10cdc'# -> unI64 68764+  '\x10cdd'# -> unI64 68765+  '\x10cde'# -> unI64 68766+  '\x10cdf'# -> unI64 68767+  '\x10ce0'# -> unI64 68768+  '\x10ce1'# -> unI64 68769+  '\x10ce2'# -> unI64 68770+  '\x10ce3'# -> unI64 68771+  '\x10ce4'# -> unI64 68772+  '\x10ce5'# -> unI64 68773+  '\x10ce6'# -> unI64 68774+  '\x10ce7'# -> unI64 68775+  '\x10ce8'# -> unI64 68776+  '\x10ce9'# -> unI64 68777+  '\x10cea'# -> unI64 68778+  '\x10ceb'# -> unI64 68779+  '\x10cec'# -> unI64 68780+  '\x10ced'# -> unI64 68781+  '\x10cee'# -> unI64 68782+  '\x10cef'# -> unI64 68783+  '\x10cf0'# -> unI64 68784+  '\x10cf1'# -> unI64 68785+  '\x10cf2'# -> unI64 68786+  '\x118c0'# -> unI64 71840+  '\x118c1'# -> unI64 71841+  '\x118c2'# -> unI64 71842+  '\x118c3'# -> unI64 71843+  '\x118c4'# -> unI64 71844+  '\x118c5'# -> unI64 71845+  '\x118c6'# -> unI64 71846+  '\x118c7'# -> unI64 71847+  '\x118c8'# -> unI64 71848+  '\x118c9'# -> unI64 71849+  '\x118ca'# -> unI64 71850+  '\x118cb'# -> unI64 71851+  '\x118cc'# -> unI64 71852+  '\x118cd'# -> unI64 71853+  '\x118ce'# -> unI64 71854+  '\x118cf'# -> unI64 71855+  '\x118d0'# -> unI64 71856+  '\x118d1'# -> unI64 71857+  '\x118d2'# -> unI64 71858+  '\x118d3'# -> unI64 71859+  '\x118d4'# -> unI64 71860+  '\x118d5'# -> unI64 71861+  '\x118d6'# -> unI64 71862+  '\x118d7'# -> unI64 71863+  '\x118d8'# -> unI64 71864+  '\x118d9'# -> unI64 71865+  '\x118da'# -> unI64 71866+  '\x118db'# -> unI64 71867+  '\x118dc'# -> unI64 71868+  '\x118dd'# -> unI64 71869+  '\x118de'# -> unI64 71870+  '\x118df'# -> unI64 71871+  '\x16e60'# -> unI64 93760+  '\x16e61'# -> unI64 93761+  '\x16e62'# -> unI64 93762+  '\x16e63'# -> unI64 93763+  '\x16e64'# -> unI64 93764+  '\x16e65'# -> unI64 93765+  '\x16e66'# -> unI64 93766+  '\x16e67'# -> unI64 93767+  '\x16e68'# -> unI64 93768+  '\x16e69'# -> unI64 93769+  '\x16e6a'# -> unI64 93770+  '\x16e6b'# -> unI64 93771+  '\x16e6c'# -> unI64 93772+  '\x16e6d'# -> unI64 93773+  '\x16e6e'# -> unI64 93774+  '\x16e6f'# -> unI64 93775+  '\x16e70'# -> unI64 93776+  '\x16e71'# -> unI64 93777+  '\x16e72'# -> unI64 93778+  '\x16e73'# -> unI64 93779+  '\x16e74'# -> unI64 93780+  '\x16e75'# -> unI64 93781+  '\x16e76'# -> unI64 93782+  '\x16e77'# -> unI64 93783+  '\x16e78'# -> unI64 93784+  '\x16e79'# -> unI64 93785+  '\x16e7a'# -> unI64 93786+  '\x16e7b'# -> unI64 93787+  '\x16e7c'# -> unI64 93788+  '\x16e7d'# -> unI64 93789+  '\x16e7e'# -> unI64 93790+  '\x16e7f'# -> unI64 93791+  '\x1e922'# -> unI64 125184+  '\x1e923'# -> unI64 125185+  '\x1e924'# -> unI64 125186+  '\x1e925'# -> unI64 125187+  '\x1e926'# -> unI64 125188+  '\x1e927'# -> unI64 125189+  '\x1e928'# -> unI64 125190+  '\x1e929'# -> unI64 125191+  '\x1e92a'# -> unI64 125192+  '\x1e92b'# -> unI64 125193+  '\x1e92c'# -> unI64 125194+  '\x1e92d'# -> unI64 125195+  '\x1e92e'# -> unI64 125196+  '\x1e92f'# -> unI64 125197+  '\x1e930'# -> unI64 125198+  '\x1e931'# -> unI64 125199+  '\x1e932'# -> unI64 125200+  '\x1e933'# -> unI64 125201+  '\x1e934'# -> unI64 125202+  '\x1e935'# -> unI64 125203+  '\x1e936'# -> unI64 125204+  '\x1e937'# -> unI64 125205+  '\x1e938'# -> unI64 125206+  '\x1e939'# -> unI64 125207+  '\x1e93a'# -> unI64 125208+  '\x1e93b'# -> unI64 125209+  '\x1e93c'# -> unI64 125210+  '\x1e93d'# -> unI64 125211+  '\x1e93e'# -> unI64 125212+  '\x1e93f'# -> unI64 125213+  '\x1e940'# -> unI64 125214+  '\x1e941'# -> unI64 125215+  '\x1e942'# -> unI64 125216+  '\x1e943'# -> unI64 125217+  _ -> unI64 0+foldMapping :: Char# -> _ {- unboxed Int64 -}+{-# NOINLINE foldMapping #-}+foldMapping = \case+  -- LATIN CAPITAL LETTER A+  '\x0041'# -> unI64 97+  -- LATIN CAPITAL LETTER B+  '\x0042'# -> unI64 98+  -- LATIN CAPITAL LETTER C+  '\x0043'# -> unI64 99+  -- LATIN CAPITAL LETTER D+  '\x0044'# -> unI64 100+  -- LATIN CAPITAL LETTER E+  '\x0045'# -> unI64 101+  -- LATIN CAPITAL LETTER F+  '\x0046'# -> unI64 102+  -- LATIN CAPITAL LETTER G+  '\x0047'# -> unI64 103+  -- LATIN CAPITAL LETTER H+  '\x0048'# -> unI64 104+  -- LATIN CAPITAL LETTER I+  '\x0049'# -> unI64 105+  -- LATIN CAPITAL LETTER J+  '\x004a'# -> unI64 106+  -- LATIN CAPITAL LETTER K+  '\x004b'# -> unI64 107+  -- LATIN CAPITAL LETTER L+  '\x004c'# -> unI64 108+  -- LATIN CAPITAL LETTER M+  '\x004d'# -> unI64 109+  -- LATIN CAPITAL LETTER N+  '\x004e'# -> unI64 110+  -- LATIN CAPITAL LETTER O+  '\x004f'# -> unI64 111+  -- LATIN CAPITAL LETTER P+  '\x0050'# -> unI64 112+  -- LATIN CAPITAL LETTER Q+  '\x0051'# -> unI64 113+  -- LATIN CAPITAL LETTER R+  '\x0052'# -> unI64 114+  -- LATIN CAPITAL LETTER S+  '\x0053'# -> unI64 115+  -- LATIN CAPITAL LETTER T+  '\x0054'# -> unI64 116+  -- LATIN CAPITAL LETTER U+  '\x0055'# -> unI64 117+  -- LATIN CAPITAL LETTER V+  '\x0056'# -> unI64 118+  -- LATIN CAPITAL LETTER W+  '\x0057'# -> unI64 119+  -- LATIN CAPITAL LETTER X+  '\x0058'# -> unI64 120+  -- LATIN CAPITAL LETTER Y+  '\x0059'# -> unI64 121+  -- LATIN CAPITAL LETTER Z+  '\x005a'# -> unI64 122+  -- MICRO SIGN+  '\x00b5'# -> unI64 956+  -- LATIN CAPITAL LETTER A WITH GRAVE+  '\x00c0'# -> unI64 224+  -- LATIN CAPITAL LETTER A WITH ACUTE+  '\x00c1'# -> unI64 225+  -- LATIN CAPITAL LETTER A WITH CIRCUMFLEX+  '\x00c2'# -> unI64 226+  -- LATIN CAPITAL LETTER A WITH TILDE+  '\x00c3'# -> unI64 227+  -- LATIN CAPITAL LETTER A WITH DIAERESIS+  '\x00c4'# -> unI64 228+  -- LATIN CAPITAL LETTER A WITH RING ABOVE+  '\x00c5'# -> unI64 229+  -- LATIN CAPITAL LETTER AE+  '\x00c6'# -> unI64 230+  -- LATIN CAPITAL LETTER C WITH CEDILLA+  '\x00c7'# -> unI64 231+  -- LATIN CAPITAL LETTER E WITH GRAVE+  '\x00c8'# -> unI64 232+  -- LATIN CAPITAL LETTER E WITH ACUTE+  '\x00c9'# -> unI64 233+  -- LATIN CAPITAL LETTER E WITH CIRCUMFLEX+  '\x00ca'# -> unI64 234+  -- LATIN CAPITAL LETTER E WITH DIAERESIS+  '\x00cb'# -> unI64 235+  -- LATIN CAPITAL LETTER I WITH GRAVE+  '\x00cc'# -> unI64 236+  -- LATIN CAPITAL LETTER I WITH ACUTE+  '\x00cd'# -> unI64 237+  -- LATIN CAPITAL LETTER I WITH CIRCUMFLEX+  '\x00ce'# -> unI64 238+  -- LATIN CAPITAL LETTER I WITH DIAERESIS+  '\x00cf'# -> unI64 239+  -- LATIN CAPITAL LETTER ETH+  '\x00d0'# -> unI64 240+  -- LATIN CAPITAL LETTER N WITH TILDE+  '\x00d1'# -> unI64 241+  -- LATIN CAPITAL LETTER O WITH GRAVE+  '\x00d2'# -> unI64 242+  -- LATIN CAPITAL LETTER O WITH ACUTE+  '\x00d3'# -> unI64 243+  -- LATIN CAPITAL LETTER O WITH CIRCUMFLEX+  '\x00d4'# -> unI64 244+  -- LATIN CAPITAL LETTER O WITH TILDE+  '\x00d5'# -> unI64 245+  -- LATIN CAPITAL LETTER O WITH DIAERESIS+  '\x00d6'# -> unI64 246+  -- LATIN CAPITAL LETTER O WITH STROKE+  '\x00d8'# -> unI64 248+  -- LATIN CAPITAL LETTER U WITH GRAVE+  '\x00d9'# -> unI64 249+  -- LATIN CAPITAL LETTER U WITH ACUTE+  '\x00da'# -> unI64 250+  -- LATIN CAPITAL LETTER U WITH CIRCUMFLEX+  '\x00db'# -> unI64 251+  -- LATIN CAPITAL LETTER U WITH DIAERESIS+  '\x00dc'# -> unI64 252+  -- LATIN CAPITAL LETTER Y WITH ACUTE+  '\x00dd'# -> unI64 253+  -- LATIN CAPITAL LETTER THORN+  '\x00de'# -> unI64 254+  -- LATIN SMALL LETTER SHARP S+  '\x00df'# -> unI64 241172595+  -- LATIN CAPITAL LETTER A WITH MACRON+  '\x0100'# -> unI64 257+  -- LATIN CAPITAL LETTER A WITH BREVE+  '\x0102'# -> unI64 259+  -- LATIN CAPITAL LETTER A WITH OGONEK+  '\x0104'# -> unI64 261+  -- LATIN CAPITAL LETTER C WITH ACUTE+  '\x0106'# -> unI64 263+  -- LATIN CAPITAL LETTER C WITH CIRCUMFLEX+  '\x0108'# -> unI64 265+  -- LATIN CAPITAL LETTER C WITH DOT ABOVE+  '\x010a'# -> unI64 267+  -- LATIN CAPITAL LETTER C WITH CARON+  '\x010c'# -> unI64 269+  -- LATIN CAPITAL LETTER D WITH CARON+  '\x010e'# -> unI64 271+  -- LATIN CAPITAL LETTER D WITH STROKE+  '\x0110'# -> unI64 273+  -- LATIN CAPITAL LETTER E WITH MACRON+  '\x0112'# -> unI64 275+  -- LATIN CAPITAL LETTER E WITH BREVE+  '\x0114'# -> unI64 277+  -- LATIN CAPITAL LETTER E WITH DOT ABOVE+  '\x0116'# -> unI64 279+  -- LATIN CAPITAL LETTER E WITH OGONEK+  '\x0118'# -> unI64 281+  -- LATIN CAPITAL LETTER E WITH CARON+  '\x011a'# -> unI64 283+  -- LATIN CAPITAL LETTER G WITH CIRCUMFLEX+  '\x011c'# -> unI64 285+  -- LATIN CAPITAL LETTER G WITH BREVE+  '\x011e'# -> unI64 287+  -- LATIN CAPITAL LETTER G WITH DOT ABOVE+  '\x0120'# -> unI64 289+  -- LATIN CAPITAL LETTER G WITH CEDILLA+  '\x0122'# -> unI64 291+  -- LATIN CAPITAL LETTER H WITH CIRCUMFLEX+  '\x0124'# -> unI64 293+  -- LATIN CAPITAL LETTER H WITH STROKE+  '\x0126'# -> unI64 295+  -- LATIN CAPITAL LETTER I WITH TILDE+  '\x0128'# -> unI64 297+  -- LATIN CAPITAL LETTER I WITH MACRON+  '\x012a'# -> unI64 299+  -- LATIN CAPITAL LETTER I WITH BREVE+  '\x012c'# -> unI64 301+  -- LATIN CAPITAL LETTER I WITH OGONEK+  '\x012e'# -> unI64 303+  -- LATIN CAPITAL LETTER I WITH DOT ABOVE+  '\x0130'# -> unI64 1625292905+  -- LATIN CAPITAL LIGATURE IJ+  '\x0132'# -> unI64 307+  -- LATIN CAPITAL LETTER J WITH CIRCUMFLEX+  '\x0134'# -> unI64 309+  -- LATIN CAPITAL LETTER K WITH CEDILLA+  '\x0136'# -> unI64 311+  -- LATIN CAPITAL LETTER L WITH ACUTE+  '\x0139'# -> unI64 314+  -- LATIN CAPITAL LETTER L WITH CEDILLA+  '\x013b'# -> unI64 316+  -- LATIN CAPITAL LETTER L WITH CARON+  '\x013d'# -> unI64 318+  -- LATIN CAPITAL LETTER L WITH MIDDLE DOT+  '\x013f'# -> unI64 320+  -- LATIN CAPITAL LETTER L WITH STROKE+  '\x0141'# -> unI64 322+  -- LATIN CAPITAL LETTER N WITH ACUTE+  '\x0143'# -> unI64 324+  -- LATIN CAPITAL LETTER N WITH CEDILLA+  '\x0145'# -> unI64 326+  -- LATIN CAPITAL LETTER N WITH CARON+  '\x0147'# -> unI64 328+  -- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE+  '\x0149'# -> unI64 230687420+  -- LATIN CAPITAL LETTER ENG+  '\x014a'# -> unI64 331+  -- LATIN CAPITAL LETTER O WITH MACRON+  '\x014c'# -> unI64 333+  -- LATIN CAPITAL LETTER O WITH BREVE+  '\x014e'# -> unI64 335+  -- LATIN CAPITAL LETTER O WITH DOUBLE ACUTE+  '\x0150'# -> unI64 337+  -- LATIN CAPITAL LIGATURE OE+  '\x0152'# -> unI64 339+  -- LATIN CAPITAL LETTER R WITH ACUTE+  '\x0154'# -> unI64 341+  -- LATIN CAPITAL LETTER R WITH CEDILLA+  '\x0156'# -> unI64 343+  -- LATIN CAPITAL LETTER R WITH CARON+  '\x0158'# -> unI64 345+  -- LATIN CAPITAL LETTER S WITH ACUTE+  '\x015a'# -> unI64 347+  -- LATIN CAPITAL LETTER S WITH CIRCUMFLEX+  '\x015c'# -> unI64 349+  -- LATIN CAPITAL LETTER S WITH CEDILLA+  '\x015e'# -> unI64 351+  -- LATIN CAPITAL LETTER S WITH CARON+  '\x0160'# -> unI64 353+  -- LATIN CAPITAL LETTER T WITH CEDILLA+  '\x0162'# -> unI64 355+  -- LATIN CAPITAL LETTER T WITH CARON+  '\x0164'# -> unI64 357+  -- LATIN CAPITAL LETTER T WITH STROKE+  '\x0166'# -> unI64 359+  -- LATIN CAPITAL LETTER U WITH TILDE+  '\x0168'# -> unI64 361+  -- LATIN CAPITAL LETTER U WITH MACRON+  '\x016a'# -> unI64 363+  -- LATIN CAPITAL LETTER U WITH BREVE+  '\x016c'# -> unI64 365+  -- LATIN CAPITAL LETTER U WITH RING ABOVE+  '\x016e'# -> unI64 367+  -- LATIN CAPITAL LETTER U WITH DOUBLE ACUTE+  '\x0170'# -> unI64 369+  -- LATIN CAPITAL LETTER U WITH OGONEK+  '\x0172'# -> unI64 371+  -- LATIN CAPITAL LETTER W WITH CIRCUMFLEX+  '\x0174'# -> unI64 373+  -- LATIN CAPITAL LETTER Y WITH CIRCUMFLEX+  '\x0176'# -> unI64 375+  -- LATIN CAPITAL LETTER Y WITH DIAERESIS+  '\x0178'# -> unI64 255+  -- LATIN CAPITAL LETTER Z WITH ACUTE+  '\x0179'# -> unI64 378+  -- LATIN CAPITAL LETTER Z WITH DOT ABOVE+  '\x017b'# -> unI64 380+  -- LATIN CAPITAL LETTER Z WITH CARON+  '\x017d'# -> unI64 382+  -- LATIN SMALL LETTER LONG S+  '\x017f'# -> unI64 115+  -- LATIN CAPITAL LETTER B WITH HOOK+  '\x0181'# -> unI64 595+  -- LATIN CAPITAL LETTER B WITH TOPBAR+  '\x0182'# -> unI64 387+  -- LATIN CAPITAL LETTER TONE SIX+  '\x0184'# -> unI64 389+  -- LATIN CAPITAL LETTER OPEN O+  '\x0186'# -> unI64 596+  -- LATIN CAPITAL LETTER C WITH HOOK+  '\x0187'# -> unI64 392+  -- LATIN CAPITAL LETTER AFRICAN D+  '\x0189'# -> unI64 598+  -- LATIN CAPITAL LETTER D WITH HOOK+  '\x018a'# -> unI64 599+  -- LATIN CAPITAL LETTER D WITH TOPBAR+  '\x018b'# -> unI64 396+  -- LATIN CAPITAL LETTER REVERSED E+  '\x018e'# -> unI64 477+  -- LATIN CAPITAL LETTER SCHWA+  '\x018f'# -> unI64 601+  -- LATIN CAPITAL LETTER OPEN E+  '\x0190'# -> unI64 603+  -- LATIN CAPITAL LETTER F WITH HOOK+  '\x0191'# -> unI64 402+  -- LATIN CAPITAL LETTER G WITH HOOK+  '\x0193'# -> unI64 608+  -- LATIN CAPITAL LETTER GAMMA+  '\x0194'# -> unI64 611+  -- LATIN CAPITAL LETTER IOTA+  '\x0196'# -> unI64 617+  -- LATIN CAPITAL LETTER I WITH STROKE+  '\x0197'# -> unI64 616+  -- LATIN CAPITAL LETTER K WITH HOOK+  '\x0198'# -> unI64 409+  -- LATIN CAPITAL LETTER TURNED M+  '\x019c'# -> unI64 623+  -- LATIN CAPITAL LETTER N WITH LEFT HOOK+  '\x019d'# -> unI64 626+  -- LATIN CAPITAL LETTER O WITH MIDDLE TILDE+  '\x019f'# -> unI64 629+  -- LATIN CAPITAL LETTER O WITH HORN+  '\x01a0'# -> unI64 417+  -- LATIN CAPITAL LETTER OI+  '\x01a2'# -> unI64 419+  -- LATIN CAPITAL LETTER P WITH HOOK+  '\x01a4'# -> unI64 421+  -- LATIN LETTER YR+  '\x01a6'# -> unI64 640+  -- LATIN CAPITAL LETTER TONE TWO+  '\x01a7'# -> unI64 424+  -- LATIN CAPITAL LETTER ESH+  '\x01a9'# -> unI64 643+  -- LATIN CAPITAL LETTER T WITH HOOK+  '\x01ac'# -> unI64 429+  -- LATIN CAPITAL LETTER T WITH RETROFLEX HOOK+  '\x01ae'# -> unI64 648+  -- LATIN CAPITAL LETTER U WITH HORN+  '\x01af'# -> unI64 432+  -- LATIN CAPITAL LETTER UPSILON+  '\x01b1'# -> unI64 650+  -- LATIN CAPITAL LETTER V WITH HOOK+  '\x01b2'# -> unI64 651+  -- LATIN CAPITAL LETTER Y WITH HOOK+  '\x01b3'# -> unI64 436+  -- LATIN CAPITAL LETTER Z WITH STROKE+  '\x01b5'# -> unI64 438+  -- LATIN CAPITAL LETTER EZH+  '\x01b7'# -> unI64 658+  -- LATIN CAPITAL LETTER EZH REVERSED+  '\x01b8'# -> unI64 441+  -- LATIN CAPITAL LETTER TONE FIVE+  '\x01bc'# -> unI64 445+  -- LATIN CAPITAL LETTER DZ WITH CARON+  '\x01c4'# -> unI64 454+  -- LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON+  '\x01c5'# -> unI64 454+  -- LATIN CAPITAL LETTER LJ+  '\x01c7'# -> unI64 457+  -- LATIN CAPITAL LETTER L WITH SMALL LETTER J+  '\x01c8'# -> unI64 457+  -- LATIN CAPITAL LETTER NJ+  '\x01ca'# -> unI64 460+  -- LATIN CAPITAL LETTER N WITH SMALL LETTER J+  '\x01cb'# -> unI64 460+  -- LATIN CAPITAL LETTER A WITH CARON+  '\x01cd'# -> unI64 462+  -- LATIN CAPITAL LETTER I WITH CARON+  '\x01cf'# -> unI64 464+  -- LATIN CAPITAL LETTER O WITH CARON+  '\x01d1'# -> unI64 466+  -- LATIN CAPITAL LETTER U WITH CARON+  '\x01d3'# -> unI64 468+  -- LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON+  '\x01d5'# -> unI64 470+  -- LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE+  '\x01d7'# -> unI64 472+  -- LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON+  '\x01d9'# -> unI64 474+  -- LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE+  '\x01db'# -> unI64 476+  -- LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON+  '\x01de'# -> unI64 479+  -- LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON+  '\x01e0'# -> unI64 481+  -- LATIN CAPITAL LETTER AE WITH MACRON+  '\x01e2'# -> unI64 483+  -- LATIN CAPITAL LETTER G WITH STROKE+  '\x01e4'# -> unI64 485+  -- LATIN CAPITAL LETTER G WITH CARON+  '\x01e6'# -> unI64 487+  -- LATIN CAPITAL LETTER K WITH CARON+  '\x01e8'# -> unI64 489+  -- LATIN CAPITAL LETTER O WITH OGONEK+  '\x01ea'# -> unI64 491+  -- LATIN CAPITAL LETTER O WITH OGONEK AND MACRON+  '\x01ec'# -> unI64 493+  -- LATIN CAPITAL LETTER EZH WITH CARON+  '\x01ee'# -> unI64 495+  -- LATIN SMALL LETTER J WITH CARON+  '\x01f0'# -> unI64 1635778666+  -- LATIN CAPITAL LETTER DZ+  '\x01f1'# -> unI64 499+  -- LATIN CAPITAL LETTER D WITH SMALL LETTER Z+  '\x01f2'# -> unI64 499+  -- LATIN CAPITAL LETTER G WITH ACUTE+  '\x01f4'# -> unI64 501+  -- LATIN CAPITAL LETTER HWAIR+  '\x01f6'# -> unI64 405+  -- LATIN CAPITAL LETTER WYNN+  '\x01f7'# -> unI64 447+  -- LATIN CAPITAL LETTER N WITH GRAVE+  '\x01f8'# -> unI64 505+  -- LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE+  '\x01fa'# -> unI64 507+  -- LATIN CAPITAL LETTER AE WITH ACUTE+  '\x01fc'# -> unI64 509+  -- LATIN CAPITAL LETTER O WITH STROKE AND ACUTE+  '\x01fe'# -> unI64 511+  -- LATIN CAPITAL LETTER A WITH DOUBLE GRAVE+  '\x0200'# -> unI64 513+  -- LATIN CAPITAL LETTER A WITH INVERTED BREVE+  '\x0202'# -> unI64 515+  -- LATIN CAPITAL LETTER E WITH DOUBLE GRAVE+  '\x0204'# -> unI64 517+  -- LATIN CAPITAL LETTER E WITH INVERTED BREVE+  '\x0206'# -> unI64 519+  -- LATIN CAPITAL LETTER I WITH DOUBLE GRAVE+  '\x0208'# -> unI64 521+  -- LATIN CAPITAL LETTER I WITH INVERTED BREVE+  '\x020a'# -> unI64 523+  -- LATIN CAPITAL LETTER O WITH DOUBLE GRAVE+  '\x020c'# -> unI64 525+  -- LATIN CAPITAL LETTER O WITH INVERTED BREVE+  '\x020e'# -> unI64 527+  -- LATIN CAPITAL LETTER R WITH DOUBLE GRAVE+  '\x0210'# -> unI64 529+  -- LATIN CAPITAL LETTER R WITH INVERTED BREVE+  '\x0212'# -> unI64 531+  -- LATIN CAPITAL LETTER U WITH DOUBLE GRAVE+  '\x0214'# -> unI64 533+  -- LATIN CAPITAL LETTER U WITH INVERTED BREVE+  '\x0216'# -> unI64 535+  -- LATIN CAPITAL LETTER S WITH COMMA BELOW+  '\x0218'# -> unI64 537+  -- LATIN CAPITAL LETTER T WITH COMMA BELOW+  '\x021a'# -> unI64 539+  -- LATIN CAPITAL LETTER YOGH+  '\x021c'# -> unI64 541+  -- LATIN CAPITAL LETTER H WITH CARON+  '\x021e'# -> unI64 543+  -- LATIN CAPITAL LETTER N WITH LONG RIGHT LEG+  '\x0220'# -> unI64 414+  -- LATIN CAPITAL LETTER OU+  '\x0222'# -> unI64 547+  -- LATIN CAPITAL LETTER Z WITH HOOK+  '\x0224'# -> unI64 549+  -- LATIN CAPITAL LETTER A WITH DOT ABOVE+  '\x0226'# -> unI64 551+  -- LATIN CAPITAL LETTER E WITH CEDILLA+  '\x0228'# -> unI64 553+  -- LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON+  '\x022a'# -> unI64 555+  -- LATIN CAPITAL LETTER O WITH TILDE AND MACRON+  '\x022c'# -> unI64 557+  -- LATIN CAPITAL LETTER O WITH DOT ABOVE+  '\x022e'# -> unI64 559+  -- LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON+  '\x0230'# -> unI64 561+  -- LATIN CAPITAL LETTER Y WITH MACRON+  '\x0232'# -> unI64 563+  -- LATIN CAPITAL LETTER A WITH STROKE+  '\x023a'# -> unI64 11365+  -- LATIN CAPITAL LETTER C WITH STROKE+  '\x023b'# -> unI64 572+  -- LATIN CAPITAL LETTER L WITH BAR+  '\x023d'# -> unI64 410+  -- LATIN CAPITAL LETTER T WITH DIAGONAL STROKE+  '\x023e'# -> unI64 11366+  -- LATIN CAPITAL LETTER GLOTTAL STOP+  '\x0241'# -> unI64 578+  -- LATIN CAPITAL LETTER B WITH STROKE+  '\x0243'# -> unI64 384+  -- LATIN CAPITAL LETTER U BAR+  '\x0244'# -> unI64 649+  -- LATIN CAPITAL LETTER TURNED V+  '\x0245'# -> unI64 652+  -- LATIN CAPITAL LETTER E WITH STROKE+  '\x0246'# -> unI64 583+  -- LATIN CAPITAL LETTER J WITH STROKE+  '\x0248'# -> unI64 585+  -- LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL+  '\x024a'# -> unI64 587+  -- LATIN CAPITAL LETTER R WITH STROKE+  '\x024c'# -> unI64 589+  -- LATIN CAPITAL LETTER Y WITH STROKE+  '\x024e'# -> unI64 591+  -- COMBINING GREEK YPOGEGRAMMENI+  '\x0345'# -> unI64 953+  -- GREEK CAPITAL LETTER HETA+  '\x0370'# -> unI64 881+  -- GREEK CAPITAL LETTER ARCHAIC SAMPI+  '\x0372'# -> unI64 883+  -- GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA+  '\x0376'# -> unI64 887+  -- GREEK CAPITAL LETTER YOT+  '\x037f'# -> unI64 1011+  -- GREEK CAPITAL LETTER ALPHA WITH TONOS+  '\x0386'# -> unI64 940+  -- GREEK CAPITAL LETTER EPSILON WITH TONOS+  '\x0388'# -> unI64 941+  -- GREEK CAPITAL LETTER ETA WITH TONOS+  '\x0389'# -> unI64 942+  -- GREEK CAPITAL LETTER IOTA WITH TONOS+  '\x038a'# -> unI64 943+  -- GREEK CAPITAL LETTER OMICRON WITH TONOS+  '\x038c'# -> unI64 972+  -- GREEK CAPITAL LETTER UPSILON WITH TONOS+  '\x038e'# -> unI64 973+  -- GREEK CAPITAL LETTER OMEGA WITH TONOS+  '\x038f'# -> unI64 974+  -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS+  '\x0390'# -> unI64 3382099394429881+  -- GREEK CAPITAL LETTER ALPHA+  '\x0391'# -> unI64 945+  -- GREEK CAPITAL LETTER BETA+  '\x0392'# -> unI64 946+  -- GREEK CAPITAL LETTER GAMMA+  '\x0393'# -> unI64 947+  -- GREEK CAPITAL LETTER DELTA+  '\x0394'# -> unI64 948+  -- GREEK CAPITAL LETTER EPSILON+  '\x0395'# -> unI64 949+  -- GREEK CAPITAL LETTER ZETA+  '\x0396'# -> unI64 950+  -- GREEK CAPITAL LETTER ETA+  '\x0397'# -> unI64 951+  -- GREEK CAPITAL LETTER THETA+  '\x0398'# -> unI64 952+  -- GREEK CAPITAL LETTER IOTA+  '\x0399'# -> unI64 953+  -- GREEK CAPITAL LETTER KAPPA+  '\x039a'# -> unI64 954+  -- GREEK CAPITAL LETTER LAMDA+  '\x039b'# -> unI64 955+  -- GREEK CAPITAL LETTER MU+  '\x039c'# -> unI64 956+  -- GREEK CAPITAL LETTER NU+  '\x039d'# -> unI64 957+  -- GREEK CAPITAL LETTER XI+  '\x039e'# -> unI64 958+  -- GREEK CAPITAL LETTER OMICRON+  '\x039f'# -> unI64 959+  -- GREEK CAPITAL LETTER PI+  '\x03a0'# -> unI64 960+  -- GREEK CAPITAL LETTER RHO+  '\x03a1'# -> unI64 961+  -- GREEK CAPITAL LETTER SIGMA+  '\x03a3'# -> unI64 963+  -- GREEK CAPITAL LETTER TAU+  '\x03a4'# -> unI64 964+  -- GREEK CAPITAL LETTER UPSILON+  '\x03a5'# -> unI64 965+  -- GREEK CAPITAL LETTER PHI+  '\x03a6'# -> unI64 966+  -- GREEK CAPITAL LETTER CHI+  '\x03a7'# -> unI64 967+  -- GREEK CAPITAL LETTER PSI+  '\x03a8'# -> unI64 968+  -- GREEK CAPITAL LETTER OMEGA+  '\x03a9'# -> unI64 969+  -- GREEK CAPITAL LETTER IOTA WITH DIALYTIKA+  '\x03aa'# -> unI64 970+  -- GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA+  '\x03ab'# -> unI64 971+  -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS+  '\x03b0'# -> unI64 3382099394429893+  -- GREEK SMALL LETTER FINAL SIGMA+  '\x03c2'# -> unI64 963+  -- GREEK CAPITAL KAI SYMBOL+  '\x03cf'# -> unI64 983+  -- GREEK BETA SYMBOL+  '\x03d0'# -> unI64 946+  -- GREEK THETA SYMBOL+  '\x03d1'# -> unI64 952+  -- GREEK PHI SYMBOL+  '\x03d5'# -> unI64 966+  -- GREEK PI SYMBOL+  '\x03d6'# -> unI64 960+  -- GREEK LETTER ARCHAIC KOPPA+  '\x03d8'# -> unI64 985+  -- GREEK LETTER STIGMA+  '\x03da'# -> unI64 987+  -- GREEK LETTER DIGAMMA+  '\x03dc'# -> unI64 989+  -- GREEK LETTER KOPPA+  '\x03de'# -> unI64 991+  -- GREEK LETTER SAMPI+  '\x03e0'# -> unI64 993+  -- COPTIC CAPITAL LETTER SHEI+  '\x03e2'# -> unI64 995+  -- COPTIC CAPITAL LETTER FEI+  '\x03e4'# -> unI64 997+  -- COPTIC CAPITAL LETTER KHEI+  '\x03e6'# -> unI64 999+  -- COPTIC CAPITAL LETTER HORI+  '\x03e8'# -> unI64 1001+  -- COPTIC CAPITAL LETTER GANGIA+  '\x03ea'# -> unI64 1003+  -- COPTIC CAPITAL LETTER SHIMA+  '\x03ec'# -> unI64 1005+  -- COPTIC CAPITAL LETTER DEI+  '\x03ee'# -> unI64 1007+  -- GREEK KAPPA SYMBOL+  '\x03f0'# -> unI64 954+  -- GREEK RHO SYMBOL+  '\x03f1'# -> unI64 961+  -- GREEK CAPITAL THETA SYMBOL+  '\x03f4'# -> unI64 952+  -- GREEK LUNATE EPSILON SYMBOL+  '\x03f5'# -> unI64 949+  -- GREEK CAPITAL LETTER SHO+  '\x03f7'# -> unI64 1016+  -- GREEK CAPITAL LUNATE SIGMA SYMBOL+  '\x03f9'# -> unI64 1010+  -- GREEK CAPITAL LETTER SAN+  '\x03fa'# -> unI64 1019+  -- GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL+  '\x03fd'# -> unI64 891+  -- GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL+  '\x03fe'# -> unI64 892+  -- GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL+  '\x03ff'# -> unI64 893+  -- CYRILLIC CAPITAL LETTER IE WITH GRAVE+  '\x0400'# -> unI64 1104+  -- CYRILLIC CAPITAL LETTER IO+  '\x0401'# -> unI64 1105+  -- CYRILLIC CAPITAL LETTER DJE+  '\x0402'# -> unI64 1106+  -- CYRILLIC CAPITAL LETTER GJE+  '\x0403'# -> unI64 1107+  -- CYRILLIC CAPITAL LETTER UKRAINIAN IE+  '\x0404'# -> unI64 1108+  -- CYRILLIC CAPITAL LETTER DZE+  '\x0405'# -> unI64 1109+  -- CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I+  '\x0406'# -> unI64 1110+  -- CYRILLIC CAPITAL LETTER YI+  '\x0407'# -> unI64 1111+  -- CYRILLIC CAPITAL LETTER JE+  '\x0408'# -> unI64 1112+  -- CYRILLIC CAPITAL LETTER LJE+  '\x0409'# -> unI64 1113+  -- CYRILLIC CAPITAL LETTER NJE+  '\x040a'# -> unI64 1114+  -- CYRILLIC CAPITAL LETTER TSHE+  '\x040b'# -> unI64 1115+  -- CYRILLIC CAPITAL LETTER KJE+  '\x040c'# -> unI64 1116+  -- CYRILLIC CAPITAL LETTER I WITH GRAVE+  '\x040d'# -> unI64 1117+  -- CYRILLIC CAPITAL LETTER SHORT U+  '\x040e'# -> unI64 1118+  -- CYRILLIC CAPITAL LETTER DZHE+  '\x040f'# -> unI64 1119+  -- CYRILLIC CAPITAL LETTER A+  '\x0410'# -> unI64 1072+  -- CYRILLIC CAPITAL LETTER BE+  '\x0411'# -> unI64 1073+  -- CYRILLIC CAPITAL LETTER VE+  '\x0412'# -> unI64 1074+  -- CYRILLIC CAPITAL LETTER GHE+  '\x0413'# -> unI64 1075+  -- CYRILLIC CAPITAL LETTER DE+  '\x0414'# -> unI64 1076+  -- CYRILLIC CAPITAL LETTER IE+  '\x0415'# -> unI64 1077+  -- CYRILLIC CAPITAL LETTER ZHE+  '\x0416'# -> unI64 1078+  -- CYRILLIC CAPITAL LETTER ZE+  '\x0417'# -> unI64 1079+  -- CYRILLIC CAPITAL LETTER I+  '\x0418'# -> unI64 1080+  -- CYRILLIC CAPITAL LETTER SHORT I+  '\x0419'# -> unI64 1081+  -- CYRILLIC CAPITAL LETTER KA+  '\x041a'# -> unI64 1082+  -- CYRILLIC CAPITAL LETTER EL+  '\x041b'# -> unI64 1083+  -- CYRILLIC CAPITAL LETTER EM+  '\x041c'# -> unI64 1084+  -- CYRILLIC CAPITAL LETTER EN+  '\x041d'# -> unI64 1085+  -- CYRILLIC CAPITAL LETTER O+  '\x041e'# -> unI64 1086+  -- CYRILLIC CAPITAL LETTER PE+  '\x041f'# -> unI64 1087+  -- CYRILLIC CAPITAL LETTER ER+  '\x0420'# -> unI64 1088+  -- CYRILLIC CAPITAL LETTER ES+  '\x0421'# -> unI64 1089+  -- CYRILLIC CAPITAL LETTER TE+  '\x0422'# -> unI64 1090+  -- CYRILLIC CAPITAL LETTER U+  '\x0423'# -> unI64 1091+  -- CYRILLIC CAPITAL LETTER EF+  '\x0424'# -> unI64 1092+  -- CYRILLIC CAPITAL LETTER HA+  '\x0425'# -> unI64 1093+  -- CYRILLIC CAPITAL LETTER TSE+  '\x0426'# -> unI64 1094+  -- CYRILLIC CAPITAL LETTER CHE+  '\x0427'# -> unI64 1095+  -- CYRILLIC CAPITAL LETTER SHA+  '\x0428'# -> unI64 1096+  -- CYRILLIC CAPITAL LETTER SHCHA+  '\x0429'# -> unI64 1097+  -- CYRILLIC CAPITAL LETTER HARD SIGN+  '\x042a'# -> unI64 1098+  -- CYRILLIC CAPITAL LETTER YERU+  '\x042b'# -> unI64 1099+  -- CYRILLIC CAPITAL LETTER SOFT SIGN+  '\x042c'# -> unI64 1100+  -- CYRILLIC CAPITAL LETTER E+  '\x042d'# -> unI64 1101+  -- CYRILLIC CAPITAL LETTER YU+  '\x042e'# -> unI64 1102+  -- CYRILLIC CAPITAL LETTER YA+  '\x042f'# -> unI64 1103+  -- CYRILLIC CAPITAL LETTER OMEGA+  '\x0460'# -> unI64 1121+  -- CYRILLIC CAPITAL LETTER YAT+  '\x0462'# -> unI64 1123+  -- CYRILLIC CAPITAL LETTER IOTIFIED E+  '\x0464'# -> unI64 1125+  -- CYRILLIC CAPITAL LETTER LITTLE YUS+  '\x0466'# -> unI64 1127+  -- CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS+  '\x0468'# -> unI64 1129+  -- CYRILLIC CAPITAL LETTER BIG YUS+  '\x046a'# -> unI64 1131+  -- CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS+  '\x046c'# -> unI64 1133+  -- CYRILLIC CAPITAL LETTER KSI+  '\x046e'# -> unI64 1135+  -- CYRILLIC CAPITAL LETTER PSI+  '\x0470'# -> unI64 1137+  -- CYRILLIC CAPITAL LETTER FITA+  '\x0472'# -> unI64 1139+  -- CYRILLIC CAPITAL LETTER IZHITSA+  '\x0474'# -> unI64 1141+  -- CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT+  '\x0476'# -> unI64 1143+  -- CYRILLIC CAPITAL LETTER UK+  '\x0478'# -> unI64 1145+  -- CYRILLIC CAPITAL LETTER ROUND OMEGA+  '\x047a'# -> unI64 1147+  -- CYRILLIC CAPITAL LETTER OMEGA WITH TITLO+  '\x047c'# -> unI64 1149+  -- CYRILLIC CAPITAL LETTER OT+  '\x047e'# -> unI64 1151+  -- CYRILLIC CAPITAL LETTER KOPPA+  '\x0480'# -> unI64 1153+  -- CYRILLIC CAPITAL LETTER SHORT I WITH TAIL+  '\x048a'# -> unI64 1163+  -- CYRILLIC CAPITAL LETTER SEMISOFT SIGN+  '\x048c'# -> unI64 1165+  -- CYRILLIC CAPITAL LETTER ER WITH TICK+  '\x048e'# -> unI64 1167+  -- CYRILLIC CAPITAL LETTER GHE WITH UPTURN+  '\x0490'# -> unI64 1169+  -- CYRILLIC CAPITAL LETTER GHE WITH STROKE+  '\x0492'# -> unI64 1171+  -- CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK+  '\x0494'# -> unI64 1173+  -- CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER+  '\x0496'# -> unI64 1175+  -- CYRILLIC CAPITAL LETTER ZE WITH DESCENDER+  '\x0498'# -> unI64 1177+  -- CYRILLIC CAPITAL LETTER KA WITH DESCENDER+  '\x049a'# -> unI64 1179+  -- CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE+  '\x049c'# -> unI64 1181+  -- CYRILLIC CAPITAL LETTER KA WITH STROKE+  '\x049e'# -> unI64 1183+  -- CYRILLIC CAPITAL LETTER BASHKIR KA+  '\x04a0'# -> unI64 1185+  -- CYRILLIC CAPITAL LETTER EN WITH DESCENDER+  '\x04a2'# -> unI64 1187+  -- CYRILLIC CAPITAL LIGATURE EN GHE+  '\x04a4'# -> unI64 1189+  -- CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK+  '\x04a6'# -> unI64 1191+  -- CYRILLIC CAPITAL LETTER ABKHASIAN HA+  '\x04a8'# -> unI64 1193+  -- CYRILLIC CAPITAL LETTER ES WITH DESCENDER+  '\x04aa'# -> unI64 1195+  -- CYRILLIC CAPITAL LETTER TE WITH DESCENDER+  '\x04ac'# -> unI64 1197+  -- CYRILLIC CAPITAL LETTER STRAIGHT U+  '\x04ae'# -> unI64 1199+  -- CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE+  '\x04b0'# -> unI64 1201+  -- CYRILLIC CAPITAL LETTER HA WITH DESCENDER+  '\x04b2'# -> unI64 1203+  -- CYRILLIC CAPITAL LIGATURE TE TSE+  '\x04b4'# -> unI64 1205+  -- CYRILLIC CAPITAL LETTER CHE WITH DESCENDER+  '\x04b6'# -> unI64 1207+  -- CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE+  '\x04b8'# -> unI64 1209+  -- CYRILLIC CAPITAL LETTER SHHA+  '\x04ba'# -> unI64 1211+  -- CYRILLIC CAPITAL LETTER ABKHASIAN CHE+  '\x04bc'# -> unI64 1213+  -- CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER+  '\x04be'# -> unI64 1215+  -- CYRILLIC LETTER PALOCHKA+  '\x04c0'# -> unI64 1231+  -- CYRILLIC CAPITAL LETTER ZHE WITH BREVE+  '\x04c1'# -> unI64 1218+  -- CYRILLIC CAPITAL LETTER KA WITH HOOK+  '\x04c3'# -> unI64 1220+  -- CYRILLIC CAPITAL LETTER EL WITH TAIL+  '\x04c5'# -> unI64 1222+  -- CYRILLIC CAPITAL LETTER EN WITH HOOK+  '\x04c7'# -> unI64 1224+  -- CYRILLIC CAPITAL LETTER EN WITH TAIL+  '\x04c9'# -> unI64 1226+  -- CYRILLIC CAPITAL LETTER KHAKASSIAN CHE+  '\x04cb'# -> unI64 1228+  -- CYRILLIC CAPITAL LETTER EM WITH TAIL+  '\x04cd'# -> unI64 1230+  -- CYRILLIC CAPITAL LETTER A WITH BREVE+  '\x04d0'# -> unI64 1233+  -- CYRILLIC CAPITAL LETTER A WITH DIAERESIS+  '\x04d2'# -> unI64 1235+  -- CYRILLIC CAPITAL LIGATURE A IE+  '\x04d4'# -> unI64 1237+  -- CYRILLIC CAPITAL LETTER IE WITH BREVE+  '\x04d6'# -> unI64 1239+  -- CYRILLIC CAPITAL LETTER SCHWA+  '\x04d8'# -> unI64 1241+  -- CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS+  '\x04da'# -> unI64 1243+  -- CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS+  '\x04dc'# -> unI64 1245+  -- CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS+  '\x04de'# -> unI64 1247+  -- CYRILLIC CAPITAL LETTER ABKHASIAN DZE+  '\x04e0'# -> unI64 1249+  -- CYRILLIC CAPITAL LETTER I WITH MACRON+  '\x04e2'# -> unI64 1251+  -- CYRILLIC CAPITAL LETTER I WITH DIAERESIS+  '\x04e4'# -> unI64 1253+  -- CYRILLIC CAPITAL LETTER O WITH DIAERESIS+  '\x04e6'# -> unI64 1255+  -- CYRILLIC CAPITAL LETTER BARRED O+  '\x04e8'# -> unI64 1257+  -- CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS+  '\x04ea'# -> unI64 1259+  -- CYRILLIC CAPITAL LETTER E WITH DIAERESIS+  '\x04ec'# -> unI64 1261+  -- CYRILLIC CAPITAL LETTER U WITH MACRON+  '\x04ee'# -> unI64 1263+  -- CYRILLIC CAPITAL LETTER U WITH DIAERESIS+  '\x04f0'# -> unI64 1265+  -- CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE+  '\x04f2'# -> unI64 1267+  -- CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS+  '\x04f4'# -> unI64 1269+  -- CYRILLIC CAPITAL LETTER GHE WITH DESCENDER+  '\x04f6'# -> unI64 1271+  -- CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS+  '\x04f8'# -> unI64 1273+  -- CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK+  '\x04fa'# -> unI64 1275+  -- CYRILLIC CAPITAL LETTER HA WITH HOOK+  '\x04fc'# -> unI64 1277+  -- CYRILLIC CAPITAL LETTER HA WITH STROKE+  '\x04fe'# -> unI64 1279+  -- CYRILLIC CAPITAL LETTER KOMI DE+  '\x0500'# -> unI64 1281+  -- CYRILLIC CAPITAL LETTER KOMI DJE+  '\x0502'# -> unI64 1283+  -- CYRILLIC CAPITAL LETTER KOMI ZJE+  '\x0504'# -> unI64 1285+  -- CYRILLIC CAPITAL LETTER KOMI DZJE+  '\x0506'# -> unI64 1287+  -- CYRILLIC CAPITAL LETTER KOMI LJE+  '\x0508'# -> unI64 1289+  -- CYRILLIC CAPITAL LETTER KOMI NJE+  '\x050a'# -> unI64 1291+  -- CYRILLIC CAPITAL LETTER KOMI SJE+  '\x050c'# -> unI64 1293+  -- CYRILLIC CAPITAL LETTER KOMI TJE+  '\x050e'# -> unI64 1295+  -- CYRILLIC CAPITAL LETTER REVERSED ZE+  '\x0510'# -> unI64 1297+  -- CYRILLIC CAPITAL LETTER EL WITH HOOK+  '\x0512'# -> unI64 1299+  -- CYRILLIC CAPITAL LETTER LHA+  '\x0514'# -> unI64 1301+  -- CYRILLIC CAPITAL LETTER RHA+  '\x0516'# -> unI64 1303+  -- CYRILLIC CAPITAL LETTER YAE+  '\x0518'# -> unI64 1305+  -- CYRILLIC CAPITAL LETTER QA+  '\x051a'# -> unI64 1307+  -- CYRILLIC CAPITAL LETTER WE+  '\x051c'# -> unI64 1309+  -- CYRILLIC CAPITAL LETTER ALEUT KA+  '\x051e'# -> unI64 1311+  -- CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK+  '\x0520'# -> unI64 1313+  -- CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK+  '\x0522'# -> unI64 1315+  -- CYRILLIC CAPITAL LETTER PE WITH DESCENDER+  '\x0524'# -> unI64 1317+  -- CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER+  '\x0526'# -> unI64 1319+  -- CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK+  '\x0528'# -> unI64 1321+  -- CYRILLIC CAPITAL LETTER DZZHE+  '\x052a'# -> unI64 1323+  -- CYRILLIC CAPITAL LETTER DCHE+  '\x052c'# -> unI64 1325+  -- CYRILLIC CAPITAL LETTER EL WITH DESCENDER+  '\x052e'# -> unI64 1327+  -- ARMENIAN CAPITAL LETTER AYB+  '\x0531'# -> unI64 1377+  -- ARMENIAN CAPITAL LETTER BEN+  '\x0532'# -> unI64 1378+  -- ARMENIAN CAPITAL LETTER GIM+  '\x0533'# -> unI64 1379+  -- ARMENIAN CAPITAL LETTER DA+  '\x0534'# -> unI64 1380+  -- ARMENIAN CAPITAL LETTER ECH+  '\x0535'# -> unI64 1381+  -- ARMENIAN CAPITAL LETTER ZA+  '\x0536'# -> unI64 1382+  -- ARMENIAN CAPITAL LETTER EH+  '\x0537'# -> unI64 1383+  -- ARMENIAN CAPITAL LETTER ET+  '\x0538'# -> unI64 1384+  -- ARMENIAN CAPITAL LETTER TO+  '\x0539'# -> unI64 1385+  -- ARMENIAN CAPITAL LETTER ZHE+  '\x053a'# -> unI64 1386+  -- ARMENIAN CAPITAL LETTER INI+  '\x053b'# -> unI64 1387+  -- ARMENIAN CAPITAL LETTER LIWN+  '\x053c'# -> unI64 1388+  -- ARMENIAN CAPITAL LETTER XEH+  '\x053d'# -> unI64 1389+  -- ARMENIAN CAPITAL LETTER CA+  '\x053e'# -> unI64 1390+  -- ARMENIAN CAPITAL LETTER KEN+  '\x053f'# -> unI64 1391+  -- ARMENIAN CAPITAL LETTER HO+  '\x0540'# -> unI64 1392+  -- ARMENIAN CAPITAL LETTER JA+  '\x0541'# -> unI64 1393+  -- ARMENIAN CAPITAL LETTER GHAD+  '\x0542'# -> unI64 1394+  -- ARMENIAN CAPITAL LETTER CHEH+  '\x0543'# -> unI64 1395+  -- ARMENIAN CAPITAL LETTER MEN+  '\x0544'# -> unI64 1396+  -- ARMENIAN CAPITAL LETTER YI+  '\x0545'# -> unI64 1397+  -- ARMENIAN CAPITAL LETTER NOW+  '\x0546'# -> unI64 1398+  -- ARMENIAN CAPITAL LETTER SHA+  '\x0547'# -> unI64 1399+  -- ARMENIAN CAPITAL LETTER VO+  '\x0548'# -> unI64 1400+  -- ARMENIAN CAPITAL LETTER CHA+  '\x0549'# -> unI64 1401+  -- ARMENIAN CAPITAL LETTER PEH+  '\x054a'# -> unI64 1402+  -- ARMENIAN CAPITAL LETTER JHEH+  '\x054b'# -> unI64 1403+  -- ARMENIAN CAPITAL LETTER RA+  '\x054c'# -> unI64 1404+  -- ARMENIAN CAPITAL LETTER SEH+  '\x054d'# -> unI64 1405+  -- ARMENIAN CAPITAL LETTER VEW+  '\x054e'# -> unI64 1406+  -- ARMENIAN CAPITAL LETTER TIWN+  '\x054f'# -> unI64 1407+  -- ARMENIAN CAPITAL LETTER REH+  '\x0550'# -> unI64 1408+  -- ARMENIAN CAPITAL LETTER CO+  '\x0551'# -> unI64 1409+  -- ARMENIAN CAPITAL LETTER YIWN+  '\x0552'# -> unI64 1410+  -- ARMENIAN CAPITAL LETTER PIWR+  '\x0553'# -> unI64 1411+  -- ARMENIAN CAPITAL LETTER KEH+  '\x0554'# -> unI64 1412+  -- ARMENIAN CAPITAL LETTER OH+  '\x0555'# -> unI64 1413+  -- ARMENIAN CAPITAL LETTER FEH+  '\x0556'# -> unI64 1414+  -- ARMENIAN SMALL LIGATURE ECH YIWN+  '\x0587'# -> unI64 2956985701+  -- GEORGIAN CAPITAL LETTER AN+  '\x10a0'# -> unI64 11520+  -- GEORGIAN CAPITAL LETTER BAN+  '\x10a1'# -> unI64 11521+  -- GEORGIAN CAPITAL LETTER GAN+  '\x10a2'# -> unI64 11522+  -- GEORGIAN CAPITAL LETTER DON+  '\x10a3'# -> unI64 11523+  -- GEORGIAN CAPITAL LETTER EN+  '\x10a4'# -> unI64 11524+  -- GEORGIAN CAPITAL LETTER VIN+  '\x10a5'# -> unI64 11525+  -- GEORGIAN CAPITAL LETTER ZEN+  '\x10a6'# -> unI64 11526+  -- GEORGIAN CAPITAL LETTER TAN+  '\x10a7'# -> unI64 11527+  -- GEORGIAN CAPITAL LETTER IN+  '\x10a8'# -> unI64 11528+  -- GEORGIAN CAPITAL LETTER KAN+  '\x10a9'# -> unI64 11529+  -- GEORGIAN CAPITAL LETTER LAS+  '\x10aa'# -> unI64 11530+  -- GEORGIAN CAPITAL LETTER MAN+  '\x10ab'# -> unI64 11531+  -- GEORGIAN CAPITAL LETTER NAR+  '\x10ac'# -> unI64 11532+  -- GEORGIAN CAPITAL LETTER ON+  '\x10ad'# -> unI64 11533+  -- GEORGIAN CAPITAL LETTER PAR+  '\x10ae'# -> unI64 11534+  -- GEORGIAN CAPITAL LETTER ZHAR+  '\x10af'# -> unI64 11535+  -- GEORGIAN CAPITAL LETTER RAE+  '\x10b0'# -> unI64 11536+  -- GEORGIAN CAPITAL LETTER SAN+  '\x10b1'# -> unI64 11537+  -- GEORGIAN CAPITAL LETTER TAR+  '\x10b2'# -> unI64 11538+  -- GEORGIAN CAPITAL LETTER UN+  '\x10b3'# -> unI64 11539+  -- GEORGIAN CAPITAL LETTER PHAR+  '\x10b4'# -> unI64 11540+  -- GEORGIAN CAPITAL LETTER KHAR+  '\x10b5'# -> unI64 11541+  -- GEORGIAN CAPITAL LETTER GHAN+  '\x10b6'# -> unI64 11542+  -- GEORGIAN CAPITAL LETTER QAR+  '\x10b7'# -> unI64 11543+  -- GEORGIAN CAPITAL LETTER SHIN+  '\x10b8'# -> unI64 11544+  -- GEORGIAN CAPITAL LETTER CHIN+  '\x10b9'# -> unI64 11545+  -- GEORGIAN CAPITAL LETTER CAN+  '\x10ba'# -> unI64 11546+  -- GEORGIAN CAPITAL LETTER JIL+  '\x10bb'# -> unI64 11547+  -- GEORGIAN CAPITAL LETTER CIL+  '\x10bc'# -> unI64 11548+  -- GEORGIAN CAPITAL LETTER CHAR+  '\x10bd'# -> unI64 11549+  -- GEORGIAN CAPITAL LETTER XAN+  '\x10be'# -> unI64 11550+  -- GEORGIAN CAPITAL LETTER JHAN+  '\x10bf'# -> unI64 11551+  -- GEORGIAN CAPITAL LETTER HAE+  '\x10c0'# -> unI64 11552+  -- GEORGIAN CAPITAL LETTER HE+  '\x10c1'# -> unI64 11553+  -- GEORGIAN CAPITAL LETTER HIE+  '\x10c2'# -> unI64 11554+  -- GEORGIAN CAPITAL LETTER WE+  '\x10c3'# -> unI64 11555+  -- GEORGIAN CAPITAL LETTER HAR+  '\x10c4'# -> unI64 11556+  -- GEORGIAN CAPITAL LETTER HOE+  '\x10c5'# -> unI64 11557+  -- GEORGIAN CAPITAL LETTER YN+  '\x10c7'# -> unI64 11559+  -- GEORGIAN CAPITAL LETTER AEN+  '\x10cd'# -> unI64 11565+  -- CHEROKEE SMALL LETTER YE+  '\x13f8'# -> unI64 5104+  -- CHEROKEE SMALL LETTER YI+  '\x13f9'# -> unI64 5105+  -- CHEROKEE SMALL LETTER YO+  '\x13fa'# -> unI64 5106+  -- CHEROKEE SMALL LETTER YU+  '\x13fb'# -> unI64 5107+  -- CHEROKEE SMALL LETTER YV+  '\x13fc'# -> unI64 5108+  -- CHEROKEE SMALL LETTER MV+  '\x13fd'# -> unI64 5109+  -- CYRILLIC SMALL LETTER ROUNDED VE+  '\x1c80'# -> unI64 1074+  -- CYRILLIC SMALL LETTER LONG-LEGGED DE+  '\x1c81'# -> unI64 1076+  -- CYRILLIC SMALL LETTER NARROW O+  '\x1c82'# -> unI64 1086+  -- CYRILLIC SMALL LETTER WIDE ES+  '\x1c83'# -> unI64 1089+  -- CYRILLIC SMALL LETTER TALL TE+  '\x1c84'# -> unI64 1090+  -- CYRILLIC SMALL LETTER THREE-LEGGED TE+  '\x1c85'# -> unI64 1090+  -- CYRILLIC SMALL LETTER TALL HARD SIGN+  '\x1c86'# -> unI64 1098+  -- CYRILLIC SMALL LETTER TALL YAT+  '\x1c87'# -> unI64 1123+  -- CYRILLIC SMALL LETTER UNBLENDED UK+  '\x1c88'# -> unI64 42571+  -- GEORGIAN MTAVRULI CAPITAL LETTER AN+  '\x1c90'# -> unI64 4304+  -- GEORGIAN MTAVRULI CAPITAL LETTER BAN+  '\x1c91'# -> unI64 4305+  -- GEORGIAN MTAVRULI CAPITAL LETTER GAN+  '\x1c92'# -> unI64 4306+  -- GEORGIAN MTAVRULI CAPITAL LETTER DON+  '\x1c93'# -> unI64 4307+  -- GEORGIAN MTAVRULI CAPITAL LETTER EN+  '\x1c94'# -> unI64 4308+  -- GEORGIAN MTAVRULI CAPITAL LETTER VIN+  '\x1c95'# -> unI64 4309+  -- GEORGIAN MTAVRULI CAPITAL LETTER ZEN+  '\x1c96'# -> unI64 4310+  -- GEORGIAN MTAVRULI CAPITAL LETTER TAN+  '\x1c97'# -> unI64 4311+  -- GEORGIAN MTAVRULI CAPITAL LETTER IN+  '\x1c98'# -> unI64 4312+  -- GEORGIAN MTAVRULI CAPITAL LETTER KAN+  '\x1c99'# -> unI64 4313+  -- GEORGIAN MTAVRULI CAPITAL LETTER LAS+  '\x1c9a'# -> unI64 4314+  -- GEORGIAN MTAVRULI CAPITAL LETTER MAN+  '\x1c9b'# -> unI64 4315+  -- GEORGIAN MTAVRULI CAPITAL LETTER NAR+  '\x1c9c'# -> unI64 4316+  -- GEORGIAN MTAVRULI CAPITAL LETTER ON+  '\x1c9d'# -> unI64 4317+  -- GEORGIAN MTAVRULI CAPITAL LETTER PAR+  '\x1c9e'# -> unI64 4318+  -- GEORGIAN MTAVRULI CAPITAL LETTER ZHAR+  '\x1c9f'# -> unI64 4319+  -- GEORGIAN MTAVRULI CAPITAL LETTER RAE+  '\x1ca0'# -> unI64 4320+  -- GEORGIAN MTAVRULI CAPITAL LETTER SAN+  '\x1ca1'# -> unI64 4321+  -- GEORGIAN MTAVRULI CAPITAL LETTER TAR+  '\x1ca2'# -> unI64 4322+  -- GEORGIAN MTAVRULI CAPITAL LETTER UN+  '\x1ca3'# -> unI64 4323+  -- GEORGIAN MTAVRULI CAPITAL LETTER PHAR+  '\x1ca4'# -> unI64 4324+  -- GEORGIAN MTAVRULI CAPITAL LETTER KHAR+  '\x1ca5'# -> unI64 4325+  -- GEORGIAN MTAVRULI CAPITAL LETTER GHAN+  '\x1ca6'# -> unI64 4326+  -- GEORGIAN MTAVRULI CAPITAL LETTER QAR+  '\x1ca7'# -> unI64 4327+  -- GEORGIAN MTAVRULI CAPITAL LETTER SHIN+  '\x1ca8'# -> unI64 4328+  -- GEORGIAN MTAVRULI CAPITAL LETTER CHIN+  '\x1ca9'# -> unI64 4329+  -- GEORGIAN MTAVRULI CAPITAL LETTER CAN+  '\x1caa'# -> unI64 4330+  -- GEORGIAN MTAVRULI CAPITAL LETTER JIL+  '\x1cab'# -> unI64 4331+  -- GEORGIAN MTAVRULI CAPITAL LETTER CIL+  '\x1cac'# -> unI64 4332+  -- GEORGIAN MTAVRULI CAPITAL LETTER CHAR+  '\x1cad'# -> unI64 4333+  -- GEORGIAN MTAVRULI CAPITAL LETTER XAN+  '\x1cae'# -> unI64 4334+  -- GEORGIAN MTAVRULI CAPITAL LETTER JHAN+  '\x1caf'# -> unI64 4335+  -- GEORGIAN MTAVRULI CAPITAL LETTER HAE+  '\x1cb0'# -> unI64 4336+  -- GEORGIAN MTAVRULI CAPITAL LETTER HE+  '\x1cb1'# -> unI64 4337+  -- GEORGIAN MTAVRULI CAPITAL LETTER HIE+  '\x1cb2'# -> unI64 4338+  -- GEORGIAN MTAVRULI CAPITAL LETTER WE+  '\x1cb3'# -> unI64 4339+  -- GEORGIAN MTAVRULI CAPITAL LETTER HAR+  '\x1cb4'# -> unI64 4340+  -- GEORGIAN MTAVRULI CAPITAL LETTER HOE+  '\x1cb5'# -> unI64 4341+  -- GEORGIAN MTAVRULI CAPITAL LETTER FI+  '\x1cb6'# -> unI64 4342+  -- GEORGIAN MTAVRULI CAPITAL LETTER YN+  '\x1cb7'# -> unI64 4343+  -- GEORGIAN MTAVRULI CAPITAL LETTER ELIFI+  '\x1cb8'# -> unI64 4344+  -- GEORGIAN MTAVRULI CAPITAL LETTER TURNED GAN+  '\x1cb9'# -> unI64 4345+  -- GEORGIAN MTAVRULI CAPITAL LETTER AIN+  '\x1cba'# -> unI64 4346+  -- GEORGIAN MTAVRULI CAPITAL LETTER AEN+  '\x1cbd'# -> unI64 4349+  -- GEORGIAN MTAVRULI CAPITAL LETTER HARD SIGN+  '\x1cbe'# -> unI64 4350+  -- GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN+  '\x1cbf'# -> unI64 4351+  -- LATIN CAPITAL LETTER A WITH RING BELOW+  '\x1e00'# -> unI64 7681+  -- LATIN CAPITAL LETTER B WITH DOT ABOVE+  '\x1e02'# -> unI64 7683+  -- LATIN CAPITAL LETTER B WITH DOT BELOW+  '\x1e04'# -> unI64 7685+  -- LATIN CAPITAL LETTER B WITH LINE BELOW+  '\x1e06'# -> unI64 7687+  -- LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE+  '\x1e08'# -> unI64 7689+  -- LATIN CAPITAL LETTER D WITH DOT ABOVE+  '\x1e0a'# -> unI64 7691+  -- LATIN CAPITAL LETTER D WITH DOT BELOW+  '\x1e0c'# -> unI64 7693+  -- LATIN CAPITAL LETTER D WITH LINE BELOW+  '\x1e0e'# -> unI64 7695+  -- LATIN CAPITAL LETTER D WITH CEDILLA+  '\x1e10'# -> unI64 7697+  -- LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW+  '\x1e12'# -> unI64 7699+  -- LATIN CAPITAL LETTER E WITH MACRON AND GRAVE+  '\x1e14'# -> unI64 7701+  -- LATIN CAPITAL LETTER E WITH MACRON AND ACUTE+  '\x1e16'# -> unI64 7703+  -- LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW+  '\x1e18'# -> unI64 7705+  -- LATIN CAPITAL LETTER E WITH TILDE BELOW+  '\x1e1a'# -> unI64 7707+  -- LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE+  '\x1e1c'# -> unI64 7709+  -- LATIN CAPITAL LETTER F WITH DOT ABOVE+  '\x1e1e'# -> unI64 7711+  -- LATIN CAPITAL LETTER G WITH MACRON+  '\x1e20'# -> unI64 7713+  -- LATIN CAPITAL LETTER H WITH DOT ABOVE+  '\x1e22'# -> unI64 7715+  -- LATIN CAPITAL LETTER H WITH DOT BELOW+  '\x1e24'# -> unI64 7717+  -- LATIN CAPITAL LETTER H WITH DIAERESIS+  '\x1e26'# -> unI64 7719+  -- LATIN CAPITAL LETTER H WITH CEDILLA+  '\x1e28'# -> unI64 7721+  -- LATIN CAPITAL LETTER H WITH BREVE BELOW+  '\x1e2a'# -> unI64 7723+  -- LATIN CAPITAL LETTER I WITH TILDE BELOW+  '\x1e2c'# -> unI64 7725+  -- LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE+  '\x1e2e'# -> unI64 7727+  -- LATIN CAPITAL LETTER K WITH ACUTE+  '\x1e30'# -> unI64 7729+  -- LATIN CAPITAL LETTER K WITH DOT BELOW+  '\x1e32'# -> unI64 7731+  -- LATIN CAPITAL LETTER K WITH LINE BELOW+  '\x1e34'# -> unI64 7733+  -- LATIN CAPITAL LETTER L WITH DOT BELOW+  '\x1e36'# -> unI64 7735+  -- LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON+  '\x1e38'# -> unI64 7737+  -- LATIN CAPITAL LETTER L WITH LINE BELOW+  '\x1e3a'# -> unI64 7739+  -- LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW+  '\x1e3c'# -> unI64 7741+  -- LATIN CAPITAL LETTER M WITH ACUTE+  '\x1e3e'# -> unI64 7743+  -- LATIN CAPITAL LETTER M WITH DOT ABOVE+  '\x1e40'# -> unI64 7745+  -- LATIN CAPITAL LETTER M WITH DOT BELOW+  '\x1e42'# -> unI64 7747+  -- LATIN CAPITAL LETTER N WITH DOT ABOVE+  '\x1e44'# -> unI64 7749+  -- LATIN CAPITAL LETTER N WITH DOT BELOW+  '\x1e46'# -> unI64 7751+  -- LATIN CAPITAL LETTER N WITH LINE BELOW+  '\x1e48'# -> unI64 7753+  -- LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW+  '\x1e4a'# -> unI64 7755+  -- LATIN CAPITAL LETTER O WITH TILDE AND ACUTE+  '\x1e4c'# -> unI64 7757+  -- LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS+  '\x1e4e'# -> unI64 7759+  -- LATIN CAPITAL LETTER O WITH MACRON AND GRAVE+  '\x1e50'# -> unI64 7761+  -- LATIN CAPITAL LETTER O WITH MACRON AND ACUTE+  '\x1e52'# -> unI64 7763+  -- LATIN CAPITAL LETTER P WITH ACUTE+  '\x1e54'# -> unI64 7765+  -- LATIN CAPITAL LETTER P WITH DOT ABOVE+  '\x1e56'# -> unI64 7767+  -- LATIN CAPITAL LETTER R WITH DOT ABOVE+  '\x1e58'# -> unI64 7769+  -- LATIN CAPITAL LETTER R WITH DOT BELOW+  '\x1e5a'# -> unI64 7771+  -- LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON+  '\x1e5c'# -> unI64 7773+  -- LATIN CAPITAL LETTER R WITH LINE BELOW+  '\x1e5e'# -> unI64 7775+  -- LATIN CAPITAL LETTER S WITH DOT ABOVE+  '\x1e60'# -> unI64 7777+  -- LATIN CAPITAL LETTER S WITH DOT BELOW+  '\x1e62'# -> unI64 7779+  -- LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE+  '\x1e64'# -> unI64 7781+  -- LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE+  '\x1e66'# -> unI64 7783+  -- LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE+  '\x1e68'# -> unI64 7785+  -- LATIN CAPITAL LETTER T WITH DOT ABOVE+  '\x1e6a'# -> unI64 7787+  -- LATIN CAPITAL LETTER T WITH DOT BELOW+  '\x1e6c'# -> unI64 7789+  -- LATIN CAPITAL LETTER T WITH LINE BELOW+  '\x1e6e'# -> unI64 7791+  -- LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW+  '\x1e70'# -> unI64 7793+  -- LATIN CAPITAL LETTER U WITH DIAERESIS BELOW+  '\x1e72'# -> unI64 7795+  -- LATIN CAPITAL LETTER U WITH TILDE BELOW+  '\x1e74'# -> unI64 7797+  -- LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW+  '\x1e76'# -> unI64 7799+  -- LATIN CAPITAL LETTER U WITH TILDE AND ACUTE+  '\x1e78'# -> unI64 7801+  -- LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS+  '\x1e7a'# -> unI64 7803+  -- LATIN CAPITAL LETTER V WITH TILDE+  '\x1e7c'# -> unI64 7805+  -- LATIN CAPITAL LETTER V WITH DOT BELOW+  '\x1e7e'# -> unI64 7807+  -- LATIN CAPITAL LETTER W WITH GRAVE+  '\x1e80'# -> unI64 7809+  -- LATIN CAPITAL LETTER W WITH ACUTE+  '\x1e82'# -> unI64 7811+  -- LATIN CAPITAL LETTER W WITH DIAERESIS+  '\x1e84'# -> unI64 7813+  -- LATIN CAPITAL LETTER W WITH DOT ABOVE+  '\x1e86'# -> unI64 7815+  -- LATIN CAPITAL LETTER W WITH DOT BELOW+  '\x1e88'# -> unI64 7817+  -- LATIN CAPITAL LETTER X WITH DOT ABOVE+  '\x1e8a'# -> unI64 7819+  -- LATIN CAPITAL LETTER X WITH DIAERESIS+  '\x1e8c'# -> unI64 7821+  -- LATIN CAPITAL LETTER Y WITH DOT ABOVE+  '\x1e8e'# -> unI64 7823+  -- LATIN CAPITAL LETTER Z WITH CIRCUMFLEX+  '\x1e90'# -> unI64 7825+  -- LATIN CAPITAL LETTER Z WITH DOT BELOW+  '\x1e92'# -> unI64 7827+  -- LATIN CAPITAL LETTER Z WITH LINE BELOW+  '\x1e94'# -> unI64 7829+  -- LATIN SMALL LETTER H WITH LINE BELOW+  '\x1e96'# -> unI64 1713373288+  -- LATIN SMALL LETTER T WITH DIAERESIS+  '\x1e97'# -> unI64 1627390068+  -- LATIN SMALL LETTER W WITH RING ABOVE+  '\x1e98'# -> unI64 1631584375+  -- LATIN SMALL LETTER Y WITH RING ABOVE+  '\x1e99'# -> unI64 1631584377+  -- LATIN SMALL LETTER A WITH RIGHT HALF RING+  '\x1e9a'# -> unI64 1472200801+  -- LATIN SMALL LETTER LONG S WITH DOT ABOVE+  '\x1e9b'# -> unI64 7777+  -- LATIN CAPITAL LETTER SHARP S+  '\x1e9e'# -> unI64 241172595+  -- LATIN CAPITAL LETTER A WITH DOT BELOW+  '\x1ea0'# -> unI64 7841+  -- LATIN CAPITAL LETTER A WITH HOOK ABOVE+  '\x1ea2'# -> unI64 7843+  -- LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE+  '\x1ea4'# -> unI64 7845+  -- LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE+  '\x1ea6'# -> unI64 7847+  -- LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE+  '\x1ea8'# -> unI64 7849+  -- LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE+  '\x1eaa'# -> unI64 7851+  -- LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW+  '\x1eac'# -> unI64 7853+  -- LATIN CAPITAL LETTER A WITH BREVE AND ACUTE+  '\x1eae'# -> unI64 7855+  -- LATIN CAPITAL LETTER A WITH BREVE AND GRAVE+  '\x1eb0'# -> unI64 7857+  -- LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE+  '\x1eb2'# -> unI64 7859+  -- LATIN CAPITAL LETTER A WITH BREVE AND TILDE+  '\x1eb4'# -> unI64 7861+  -- LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW+  '\x1eb6'# -> unI64 7863+  -- LATIN CAPITAL LETTER E WITH DOT BELOW+  '\x1eb8'# -> unI64 7865+  -- LATIN CAPITAL LETTER E WITH HOOK ABOVE+  '\x1eba'# -> unI64 7867+  -- LATIN CAPITAL LETTER E WITH TILDE+  '\x1ebc'# -> unI64 7869+  -- LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE+  '\x1ebe'# -> unI64 7871+  -- LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE+  '\x1ec0'# -> unI64 7873+  -- LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE+  '\x1ec2'# -> unI64 7875+  -- LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE+  '\x1ec4'# -> unI64 7877+  -- LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW+  '\x1ec6'# -> unI64 7879+  -- LATIN CAPITAL LETTER I WITH HOOK ABOVE+  '\x1ec8'# -> unI64 7881+  -- LATIN CAPITAL LETTER I WITH DOT BELOW+  '\x1eca'# -> unI64 7883+  -- LATIN CAPITAL LETTER O WITH DOT BELOW+  '\x1ecc'# -> unI64 7885+  -- LATIN CAPITAL LETTER O WITH HOOK ABOVE+  '\x1ece'# -> unI64 7887+  -- LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE+  '\x1ed0'# -> unI64 7889+  -- LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE+  '\x1ed2'# -> unI64 7891+  -- LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE+  '\x1ed4'# -> unI64 7893+  -- LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE+  '\x1ed6'# -> unI64 7895+  -- LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW+  '\x1ed8'# -> unI64 7897+  -- LATIN CAPITAL LETTER O WITH HORN AND ACUTE+  '\x1eda'# -> unI64 7899+  -- LATIN CAPITAL LETTER O WITH HORN AND GRAVE+  '\x1edc'# -> unI64 7901+  -- LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE+  '\x1ede'# -> unI64 7903+  -- LATIN CAPITAL LETTER O WITH HORN AND TILDE+  '\x1ee0'# -> unI64 7905+  -- LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW+  '\x1ee2'# -> unI64 7907+  -- LATIN CAPITAL LETTER U WITH DOT BELOW+  '\x1ee4'# -> unI64 7909+  -- LATIN CAPITAL LETTER U WITH HOOK ABOVE+  '\x1ee6'# -> unI64 7911+  -- LATIN CAPITAL LETTER U WITH HORN AND ACUTE+  '\x1ee8'# -> unI64 7913+  -- LATIN CAPITAL LETTER U WITH HORN AND GRAVE+  '\x1eea'# -> unI64 7915+  -- LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE+  '\x1eec'# -> unI64 7917+  -- LATIN CAPITAL LETTER U WITH HORN AND TILDE+  '\x1eee'# -> unI64 7919+  -- LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW+  '\x1ef0'# -> unI64 7921+  -- LATIN CAPITAL LETTER Y WITH GRAVE+  '\x1ef2'# -> unI64 7923+  -- LATIN CAPITAL LETTER Y WITH DOT BELOW+  '\x1ef4'# -> unI64 7925+  -- LATIN CAPITAL LETTER Y WITH HOOK ABOVE+  '\x1ef6'# -> unI64 7927+  -- LATIN CAPITAL LETTER Y WITH TILDE+  '\x1ef8'# -> unI64 7929+  -- LATIN CAPITAL LETTER MIDDLE-WELSH LL+  '\x1efa'# -> unI64 7931+  -- LATIN CAPITAL LETTER MIDDLE-WELSH V+  '\x1efc'# -> unI64 7933+  -- LATIN CAPITAL LETTER Y WITH LOOP+  '\x1efe'# -> unI64 7935+  -- GREEK CAPITAL LETTER ALPHA WITH PSILI+  '\x1f08'# -> unI64 7936+  -- GREEK CAPITAL LETTER ALPHA WITH DASIA+  '\x1f09'# -> unI64 7937+  -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA+  '\x1f0a'# -> unI64 7938+  -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA+  '\x1f0b'# -> unI64 7939+  -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA+  '\x1f0c'# -> unI64 7940+  -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA+  '\x1f0d'# -> unI64 7941+  -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI+  '\x1f0e'# -> unI64 7942+  -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI+  '\x1f0f'# -> unI64 7943+  -- GREEK CAPITAL LETTER EPSILON WITH PSILI+  '\x1f18'# -> unI64 7952+  -- GREEK CAPITAL LETTER EPSILON WITH DASIA+  '\x1f19'# -> unI64 7953+  -- GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA+  '\x1f1a'# -> unI64 7954+  -- GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA+  '\x1f1b'# -> unI64 7955+  -- GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA+  '\x1f1c'# -> unI64 7956+  -- GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA+  '\x1f1d'# -> unI64 7957+  -- GREEK CAPITAL LETTER ETA WITH PSILI+  '\x1f28'# -> unI64 7968+  -- GREEK CAPITAL LETTER ETA WITH DASIA+  '\x1f29'# -> unI64 7969+  -- GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA+  '\x1f2a'# -> unI64 7970+  -- GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA+  '\x1f2b'# -> unI64 7971+  -- GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA+  '\x1f2c'# -> unI64 7972+  -- GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA+  '\x1f2d'# -> unI64 7973+  -- GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI+  '\x1f2e'# -> unI64 7974+  -- GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI+  '\x1f2f'# -> unI64 7975+  -- GREEK CAPITAL LETTER IOTA WITH PSILI+  '\x1f38'# -> unI64 7984+  -- GREEK CAPITAL LETTER IOTA WITH DASIA+  '\x1f39'# -> unI64 7985+  -- GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA+  '\x1f3a'# -> unI64 7986+  -- GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA+  '\x1f3b'# -> unI64 7987+  -- GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA+  '\x1f3c'# -> unI64 7988+  -- GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA+  '\x1f3d'# -> unI64 7989+  -- GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI+  '\x1f3e'# -> unI64 7990+  -- GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI+  '\x1f3f'# -> unI64 7991+  -- GREEK CAPITAL LETTER OMICRON WITH PSILI+  '\x1f48'# -> unI64 8000+  -- GREEK CAPITAL LETTER OMICRON WITH DASIA+  '\x1f49'# -> unI64 8001+  -- GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA+  '\x1f4a'# -> unI64 8002+  -- GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA+  '\x1f4b'# -> unI64 8003+  -- GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA+  '\x1f4c'# -> unI64 8004+  -- GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA+  '\x1f4d'# -> unI64 8005+  -- GREEK SMALL LETTER UPSILON WITH PSILI+  '\x1f50'# -> unI64 1650459589+  -- GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA+  '\x1f52'# -> unI64 3377701370987461+  -- GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA+  '\x1f54'# -> unI64 3382099417498565+  -- GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI+  '\x1f56'# -> unI64 3667972440720325+  -- GREEK CAPITAL LETTER UPSILON WITH DASIA+  '\x1f59'# -> unI64 8017+  -- GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA+  '\x1f5b'# -> unI64 8019+  -- GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA+  '\x1f5d'# -> unI64 8021+  -- GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI+  '\x1f5f'# -> unI64 8023+  -- GREEK CAPITAL LETTER OMEGA WITH PSILI+  '\x1f68'# -> unI64 8032+  -- GREEK CAPITAL LETTER OMEGA WITH DASIA+  '\x1f69'# -> unI64 8033+  -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA+  '\x1f6a'# -> unI64 8034+  -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA+  '\x1f6b'# -> unI64 8035+  -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA+  '\x1f6c'# -> unI64 8036+  -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA+  '\x1f6d'# -> unI64 8037+  -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI+  '\x1f6e'# -> unI64 8038+  -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI+  '\x1f6f'# -> unI64 8039+  -- GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI+  '\x1f80'# -> unI64 1998593792+  -- GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI+  '\x1f81'# -> unI64 1998593793+  -- GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI+  '\x1f82'# -> unI64 1998593794+  -- GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI+  '\x1f83'# -> unI64 1998593795+  -- GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI+  '\x1f84'# -> unI64 1998593796+  -- GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI+  '\x1f85'# -> unI64 1998593797+  -- GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI+  '\x1f86'# -> unI64 1998593798+  -- GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI+  '\x1f87'# -> unI64 1998593799+  -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI+  '\x1f88'# -> unI64 1998593792+  -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI+  '\x1f89'# -> unI64 1998593793+  -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI+  '\x1f8a'# -> unI64 1998593794+  -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI+  '\x1f8b'# -> unI64 1998593795+  -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI+  '\x1f8c'# -> unI64 1998593796+  -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI+  '\x1f8d'# -> unI64 1998593797+  -- GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI+  '\x1f8e'# -> unI64 1998593798+  -- GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI+  '\x1f8f'# -> unI64 1998593799+  -- GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI+  '\x1f90'# -> unI64 1998593824+  -- GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI+  '\x1f91'# -> unI64 1998593825+  -- GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI+  '\x1f92'# -> unI64 1998593826+  -- GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI+  '\x1f93'# -> unI64 1998593827+  -- GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI+  '\x1f94'# -> unI64 1998593828+  -- GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI+  '\x1f95'# -> unI64 1998593829+  -- GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI+  '\x1f96'# -> unI64 1998593830+  -- GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI+  '\x1f97'# -> unI64 1998593831+  -- GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI+  '\x1f98'# -> unI64 1998593824+  -- GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI+  '\x1f99'# -> unI64 1998593825+  -- GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI+  '\x1f9a'# -> unI64 1998593826+  -- GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI+  '\x1f9b'# -> unI64 1998593827+  -- GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI+  '\x1f9c'# -> unI64 1998593828+  -- GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI+  '\x1f9d'# -> unI64 1998593829+  -- GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI+  '\x1f9e'# -> unI64 1998593830+  -- GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI+  '\x1f9f'# -> unI64 1998593831+  -- GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI+  '\x1fa0'# -> unI64 1998593888+  -- GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI+  '\x1fa1'# -> unI64 1998593889+  -- GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI+  '\x1fa2'# -> unI64 1998593890+  -- GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI+  '\x1fa3'# -> unI64 1998593891+  -- GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI+  '\x1fa4'# -> unI64 1998593892+  -- GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI+  '\x1fa5'# -> unI64 1998593893+  -- GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI+  '\x1fa6'# -> unI64 1998593894+  -- GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI+  '\x1fa7'# -> unI64 1998593895+  -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI+  '\x1fa8'# -> unI64 1998593888+  -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI+  '\x1fa9'# -> unI64 1998593889+  -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI+  '\x1faa'# -> unI64 1998593890+  -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI+  '\x1fab'# -> unI64 1998593891+  -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI+  '\x1fac'# -> unI64 1998593892+  -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI+  '\x1fad'# -> unI64 1998593893+  -- GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI+  '\x1fae'# -> unI64 1998593894+  -- GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI+  '\x1faf'# -> unI64 1998593895+  -- GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI+  '\x1fb2'# -> unI64 1998593904+  -- GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI+  '\x1fb3'# -> unI64 1998586801+  -- GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI+  '\x1fb4'# -> unI64 1998586796+  -- GREEK SMALL LETTER ALPHA WITH PERISPOMENI+  '\x1fb6'# -> unI64 1749025713+  -- GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI+  '\x1fb7'# -> unI64 4191340074107825+  -- GREEK CAPITAL LETTER ALPHA WITH VRACHY+  '\x1fb8'# -> unI64 8112+  -- GREEK CAPITAL LETTER ALPHA WITH MACRON+  '\x1fb9'# -> unI64 8113+  -- GREEK CAPITAL LETTER ALPHA WITH VARIA+  '\x1fba'# -> unI64 8048+  -- GREEK CAPITAL LETTER ALPHA WITH OXIA+  '\x1fbb'# -> unI64 8049+  -- GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI+  '\x1fbc'# -> unI64 1998586801+  -- GREEK PROSGEGRAMMENI+  '\x1fbe'# -> unI64 953+  -- GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI+  '\x1fc2'# -> unI64 1998593908+  -- GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI+  '\x1fc3'# -> unI64 1998586807+  -- GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI+  '\x1fc4'# -> unI64 1998586798+  -- GREEK SMALL LETTER ETA WITH PERISPOMENI+  '\x1fc6'# -> unI64 1749025719+  -- GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI+  '\x1fc7'# -> unI64 4191340074107831+  -- GREEK CAPITAL LETTER EPSILON WITH VARIA+  '\x1fc8'# -> unI64 8050+  -- GREEK CAPITAL LETTER EPSILON WITH OXIA+  '\x1fc9'# -> unI64 8051+  -- GREEK CAPITAL LETTER ETA WITH VARIA+  '\x1fca'# -> unI64 8052+  -- GREEK CAPITAL LETTER ETA WITH OXIA+  '\x1fcb'# -> unI64 8053+  -- GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI+  '\x1fcc'# -> unI64 1998586807+  -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA+  '\x1fd2'# -> unI64 3377701347918777+  -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA+  '\x1fd3'# -> unI64 3382099394429881+  -- GREEK SMALL LETTER IOTA WITH PERISPOMENI+  '\x1fd6'# -> unI64 1749025721+  -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI+  '\x1fd7'# -> unI64 3667972417651641+  -- GREEK CAPITAL LETTER IOTA WITH VRACHY+  '\x1fd8'# -> unI64 8144+  -- GREEK CAPITAL LETTER IOTA WITH MACRON+  '\x1fd9'# -> unI64 8145+  -- GREEK CAPITAL LETTER IOTA WITH VARIA+  '\x1fda'# -> unI64 8054+  -- GREEK CAPITAL LETTER IOTA WITH OXIA+  '\x1fdb'# -> unI64 8055+  -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA+  '\x1fe2'# -> unI64 3377701347918789+  -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA+  '\x1fe3'# -> unI64 3382099394429893+  -- GREEK SMALL LETTER RHO WITH PSILI+  '\x1fe4'# -> unI64 1650459585+  -- GREEK SMALL LETTER UPSILON WITH PERISPOMENI+  '\x1fe6'# -> unI64 1749025733+  -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI+  '\x1fe7'# -> unI64 3667972417651653+  -- GREEK CAPITAL LETTER UPSILON WITH VRACHY+  '\x1fe8'# -> unI64 8160+  -- GREEK CAPITAL LETTER UPSILON WITH MACRON+  '\x1fe9'# -> unI64 8161+  -- GREEK CAPITAL LETTER UPSILON WITH VARIA+  '\x1fea'# -> unI64 8058+  -- GREEK CAPITAL LETTER UPSILON WITH OXIA+  '\x1feb'# -> unI64 8059+  -- GREEK CAPITAL LETTER RHO WITH DASIA+  '\x1fec'# -> unI64 8165+  -- GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI+  '\x1ff2'# -> unI64 1998593916+  -- GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI+  '\x1ff3'# -> unI64 1998586825+  -- GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI+  '\x1ff4'# -> unI64 1998586830+  -- GREEK SMALL LETTER OMEGA WITH PERISPOMENI+  '\x1ff6'# -> unI64 1749025737+  -- GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI+  '\x1ff7'# -> unI64 4191340074107849+  -- GREEK CAPITAL LETTER OMICRON WITH VARIA+  '\x1ff8'# -> unI64 8056+  -- GREEK CAPITAL LETTER OMICRON WITH OXIA+  '\x1ff9'# -> unI64 8057+  -- GREEK CAPITAL LETTER OMEGA WITH VARIA+  '\x1ffa'# -> unI64 8060+  -- GREEK CAPITAL LETTER OMEGA WITH OXIA+  '\x1ffb'# -> unI64 8061+  -- GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI+  '\x1ffc'# -> unI64 1998586825+  -- OHM SIGN+  '\x2126'# -> unI64 969+  -- KELVIN SIGN+  '\x212a'# -> unI64 107+  -- ANGSTROM SIGN+  '\x212b'# -> unI64 229+  -- TURNED CAPITAL F+  '\x2132'# -> unI64 8526+  -- ROMAN NUMERAL ONE+  '\x2160'# -> unI64 8560+  -- ROMAN NUMERAL TWO+  '\x2161'# -> unI64 8561+  -- ROMAN NUMERAL THREE+  '\x2162'# -> unI64 8562+  -- ROMAN NUMERAL FOUR+  '\x2163'# -> unI64 8563+  -- ROMAN NUMERAL FIVE+  '\x2164'# -> unI64 8564+  -- ROMAN NUMERAL SIX+  '\x2165'# -> unI64 8565+  -- ROMAN NUMERAL SEVEN+  '\x2166'# -> unI64 8566+  -- ROMAN NUMERAL EIGHT+  '\x2167'# -> unI64 8567+  -- ROMAN NUMERAL NINE+  '\x2168'# -> unI64 8568+  -- ROMAN NUMERAL TEN+  '\x2169'# -> unI64 8569+  -- ROMAN NUMERAL ELEVEN+  '\x216a'# -> unI64 8570+  -- ROMAN NUMERAL TWELVE+  '\x216b'# -> unI64 8571+  -- ROMAN NUMERAL FIFTY+  '\x216c'# -> unI64 8572+  -- ROMAN NUMERAL ONE HUNDRED+  '\x216d'# -> unI64 8573+  -- ROMAN NUMERAL FIVE HUNDRED+  '\x216e'# -> unI64 8574+  -- ROMAN NUMERAL ONE THOUSAND+  '\x216f'# -> unI64 8575+  -- ROMAN NUMERAL REVERSED ONE HUNDRED+  '\x2183'# -> unI64 8580+  -- CIRCLED LATIN CAPITAL LETTER A+  '\x24b6'# -> unI64 9424+  -- CIRCLED LATIN CAPITAL LETTER B+  '\x24b7'# -> unI64 9425+  -- CIRCLED LATIN CAPITAL LETTER C+  '\x24b8'# -> unI64 9426+  -- CIRCLED LATIN CAPITAL LETTER D+  '\x24b9'# -> unI64 9427+  -- CIRCLED LATIN CAPITAL LETTER E+  '\x24ba'# -> unI64 9428+  -- CIRCLED LATIN CAPITAL LETTER F+  '\x24bb'# -> unI64 9429+  -- CIRCLED LATIN CAPITAL LETTER G+  '\x24bc'# -> unI64 9430+  -- CIRCLED LATIN CAPITAL LETTER H+  '\x24bd'# -> unI64 9431+  -- CIRCLED LATIN CAPITAL LETTER I+  '\x24be'# -> unI64 9432+  -- CIRCLED LATIN CAPITAL LETTER J+  '\x24bf'# -> unI64 9433+  -- CIRCLED LATIN CAPITAL LETTER K+  '\x24c0'# -> unI64 9434+  -- CIRCLED LATIN CAPITAL LETTER L+  '\x24c1'# -> unI64 9435+  -- CIRCLED LATIN CAPITAL LETTER M+  '\x24c2'# -> unI64 9436+  -- CIRCLED LATIN CAPITAL LETTER N+  '\x24c3'# -> unI64 9437+  -- CIRCLED LATIN CAPITAL LETTER O+  '\x24c4'# -> unI64 9438+  -- CIRCLED LATIN CAPITAL LETTER P+  '\x24c5'# -> unI64 9439+  -- CIRCLED LATIN CAPITAL LETTER Q+  '\x24c6'# -> unI64 9440+  -- CIRCLED LATIN CAPITAL LETTER R+  '\x24c7'# -> unI64 9441+  -- CIRCLED LATIN CAPITAL LETTER S+  '\x24c8'# -> unI64 9442+  -- CIRCLED LATIN CAPITAL LETTER T+  '\x24c9'# -> unI64 9443+  -- CIRCLED LATIN CAPITAL LETTER U+  '\x24ca'# -> unI64 9444+  -- CIRCLED LATIN CAPITAL LETTER V+  '\x24cb'# -> unI64 9445+  -- CIRCLED LATIN CAPITAL LETTER W+  '\x24cc'# -> unI64 9446+  -- CIRCLED LATIN CAPITAL LETTER X+  '\x24cd'# -> unI64 9447+  -- CIRCLED LATIN CAPITAL LETTER Y+  '\x24ce'# -> unI64 9448+  -- CIRCLED LATIN CAPITAL LETTER Z+  '\x24cf'# -> unI64 9449+  -- GLAGOLITIC CAPITAL LETTER AZU+  '\x2c00'# -> unI64 11312+  -- GLAGOLITIC CAPITAL LETTER BUKY+  '\x2c01'# -> unI64 11313+  -- GLAGOLITIC CAPITAL LETTER VEDE+  '\x2c02'# -> unI64 11314+  -- GLAGOLITIC CAPITAL LETTER GLAGOLI+  '\x2c03'# -> unI64 11315+  -- GLAGOLITIC CAPITAL LETTER DOBRO+  '\x2c04'# -> unI64 11316+  -- GLAGOLITIC CAPITAL LETTER YESTU+  '\x2c05'# -> unI64 11317+  -- GLAGOLITIC CAPITAL LETTER ZHIVETE+  '\x2c06'# -> unI64 11318+  -- GLAGOLITIC CAPITAL LETTER DZELO+  '\x2c07'# -> unI64 11319+  -- GLAGOLITIC CAPITAL LETTER ZEMLJA+  '\x2c08'# -> unI64 11320+  -- GLAGOLITIC CAPITAL LETTER IZHE+  '\x2c09'# -> unI64 11321+  -- GLAGOLITIC CAPITAL LETTER INITIAL IZHE+  '\x2c0a'# -> unI64 11322+  -- GLAGOLITIC CAPITAL LETTER I+  '\x2c0b'# -> unI64 11323+  -- GLAGOLITIC CAPITAL LETTER DJERVI+  '\x2c0c'# -> unI64 11324+  -- GLAGOLITIC CAPITAL LETTER KAKO+  '\x2c0d'# -> unI64 11325+  -- GLAGOLITIC CAPITAL LETTER LJUDIJE+  '\x2c0e'# -> unI64 11326+  -- GLAGOLITIC CAPITAL LETTER MYSLITE+  '\x2c0f'# -> unI64 11327+  -- GLAGOLITIC CAPITAL LETTER NASHI+  '\x2c10'# -> unI64 11328+  -- GLAGOLITIC CAPITAL LETTER ONU+  '\x2c11'# -> unI64 11329+  -- GLAGOLITIC CAPITAL LETTER POKOJI+  '\x2c12'# -> unI64 11330+  -- GLAGOLITIC CAPITAL LETTER RITSI+  '\x2c13'# -> unI64 11331+  -- GLAGOLITIC CAPITAL LETTER SLOVO+  '\x2c14'# -> unI64 11332+  -- GLAGOLITIC CAPITAL LETTER TVRIDO+  '\x2c15'# -> unI64 11333+  -- GLAGOLITIC CAPITAL LETTER UKU+  '\x2c16'# -> unI64 11334+  -- GLAGOLITIC CAPITAL LETTER FRITU+  '\x2c17'# -> unI64 11335+  -- GLAGOLITIC CAPITAL LETTER HERU+  '\x2c18'# -> unI64 11336+  -- GLAGOLITIC CAPITAL LETTER OTU+  '\x2c19'# -> unI64 11337+  -- GLAGOLITIC CAPITAL LETTER PE+  '\x2c1a'# -> unI64 11338+  -- GLAGOLITIC CAPITAL LETTER SHTA+  '\x2c1b'# -> unI64 11339+  -- GLAGOLITIC CAPITAL LETTER TSI+  '\x2c1c'# -> unI64 11340+  -- GLAGOLITIC CAPITAL LETTER CHRIVI+  '\x2c1d'# -> unI64 11341+  -- GLAGOLITIC CAPITAL LETTER SHA+  '\x2c1e'# -> unI64 11342+  -- GLAGOLITIC CAPITAL LETTER YERU+  '\x2c1f'# -> unI64 11343+  -- GLAGOLITIC CAPITAL LETTER YERI+  '\x2c20'# -> unI64 11344+  -- GLAGOLITIC CAPITAL LETTER YATI+  '\x2c21'# -> unI64 11345+  -- GLAGOLITIC CAPITAL LETTER SPIDERY HA+  '\x2c22'# -> unI64 11346+  -- GLAGOLITIC CAPITAL LETTER YU+  '\x2c23'# -> unI64 11347+  -- GLAGOLITIC CAPITAL LETTER SMALL YUS+  '\x2c24'# -> unI64 11348+  -- GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL+  '\x2c25'# -> unI64 11349+  -- GLAGOLITIC CAPITAL LETTER YO+  '\x2c26'# -> unI64 11350+  -- GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS+  '\x2c27'# -> unI64 11351+  -- GLAGOLITIC CAPITAL LETTER BIG YUS+  '\x2c28'# -> unI64 11352+  -- GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS+  '\x2c29'# -> unI64 11353+  -- GLAGOLITIC CAPITAL LETTER FITA+  '\x2c2a'# -> unI64 11354+  -- GLAGOLITIC CAPITAL LETTER IZHITSA+  '\x2c2b'# -> unI64 11355+  -- GLAGOLITIC CAPITAL LETTER SHTAPIC+  '\x2c2c'# -> unI64 11356+  -- GLAGOLITIC CAPITAL LETTER TROKUTASTI A+  '\x2c2d'# -> unI64 11357+  -- GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE+  '\x2c2e'# -> unI64 11358+  -- GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI+  '\x2c2f'# -> unI64 11359+  -- LATIN CAPITAL LETTER L WITH DOUBLE BAR+  '\x2c60'# -> unI64 11361+  -- LATIN CAPITAL LETTER L WITH MIDDLE TILDE+  '\x2c62'# -> unI64 619+  -- LATIN CAPITAL LETTER P WITH STROKE+  '\x2c63'# -> unI64 7549+  -- LATIN CAPITAL LETTER R WITH TAIL+  '\x2c64'# -> unI64 637+  -- LATIN CAPITAL LETTER H WITH DESCENDER+  '\x2c67'# -> unI64 11368+  -- LATIN CAPITAL LETTER K WITH DESCENDER+  '\x2c69'# -> unI64 11370+  -- LATIN CAPITAL LETTER Z WITH DESCENDER+  '\x2c6b'# -> unI64 11372+  -- LATIN CAPITAL LETTER ALPHA+  '\x2c6d'# -> unI64 593+  -- LATIN CAPITAL LETTER M WITH HOOK+  '\x2c6e'# -> unI64 625+  -- LATIN CAPITAL LETTER TURNED A+  '\x2c6f'# -> unI64 592+  -- LATIN CAPITAL LETTER TURNED ALPHA+  '\x2c70'# -> unI64 594+  -- LATIN CAPITAL LETTER W WITH HOOK+  '\x2c72'# -> unI64 11379+  -- LATIN CAPITAL LETTER HALF H+  '\x2c75'# -> unI64 11382+  -- LATIN CAPITAL LETTER S WITH SWASH TAIL+  '\x2c7e'# -> unI64 575+  -- LATIN CAPITAL LETTER Z WITH SWASH TAIL+  '\x2c7f'# -> unI64 576+  -- COPTIC CAPITAL LETTER ALFA+  '\x2c80'# -> unI64 11393+  -- COPTIC CAPITAL LETTER VIDA+  '\x2c82'# -> unI64 11395+  -- COPTIC CAPITAL LETTER GAMMA+  '\x2c84'# -> unI64 11397+  -- COPTIC CAPITAL LETTER DALDA+  '\x2c86'# -> unI64 11399+  -- COPTIC CAPITAL LETTER EIE+  '\x2c88'# -> unI64 11401+  -- COPTIC CAPITAL LETTER SOU+  '\x2c8a'# -> unI64 11403+  -- COPTIC CAPITAL LETTER ZATA+  '\x2c8c'# -> unI64 11405+  -- COPTIC CAPITAL LETTER HATE+  '\x2c8e'# -> unI64 11407+  -- COPTIC CAPITAL LETTER THETHE+  '\x2c90'# -> unI64 11409+  -- COPTIC CAPITAL LETTER IAUDA+  '\x2c92'# -> unI64 11411+  -- COPTIC CAPITAL LETTER KAPA+  '\x2c94'# -> unI64 11413+  -- COPTIC CAPITAL LETTER LAULA+  '\x2c96'# -> unI64 11415+  -- COPTIC CAPITAL LETTER MI+  '\x2c98'# -> unI64 11417+  -- COPTIC CAPITAL LETTER NI+  '\x2c9a'# -> unI64 11419+  -- COPTIC CAPITAL LETTER KSI+  '\x2c9c'# -> unI64 11421+  -- COPTIC CAPITAL LETTER O+  '\x2c9e'# -> unI64 11423+  -- COPTIC CAPITAL LETTER PI+  '\x2ca0'# -> unI64 11425+  -- COPTIC CAPITAL LETTER RO+  '\x2ca2'# -> unI64 11427+  -- COPTIC CAPITAL LETTER SIMA+  '\x2ca4'# -> unI64 11429+  -- COPTIC CAPITAL LETTER TAU+  '\x2ca6'# -> unI64 11431+  -- COPTIC CAPITAL LETTER UA+  '\x2ca8'# -> unI64 11433+  -- COPTIC CAPITAL LETTER FI+  '\x2caa'# -> unI64 11435+  -- COPTIC CAPITAL LETTER KHI+  '\x2cac'# -> unI64 11437+  -- COPTIC CAPITAL LETTER PSI+  '\x2cae'# -> unI64 11439+  -- COPTIC CAPITAL LETTER OOU+  '\x2cb0'# -> unI64 11441+  -- COPTIC CAPITAL LETTER DIALECT-P ALEF+  '\x2cb2'# -> unI64 11443+  -- COPTIC CAPITAL LETTER OLD COPTIC AIN+  '\x2cb4'# -> unI64 11445+  -- COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE+  '\x2cb6'# -> unI64 11447+  -- COPTIC CAPITAL LETTER DIALECT-P KAPA+  '\x2cb8'# -> unI64 11449+  -- COPTIC CAPITAL LETTER DIALECT-P NI+  '\x2cba'# -> unI64 11451+  -- COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI+  '\x2cbc'# -> unI64 11453+  -- COPTIC CAPITAL LETTER OLD COPTIC OOU+  '\x2cbe'# -> unI64 11455+  -- COPTIC CAPITAL LETTER SAMPI+  '\x2cc0'# -> unI64 11457+  -- COPTIC CAPITAL LETTER CROSSED SHEI+  '\x2cc2'# -> unI64 11459+  -- COPTIC CAPITAL LETTER OLD COPTIC SHEI+  '\x2cc4'# -> unI64 11461+  -- COPTIC CAPITAL LETTER OLD COPTIC ESH+  '\x2cc6'# -> unI64 11463+  -- COPTIC CAPITAL LETTER AKHMIMIC KHEI+  '\x2cc8'# -> unI64 11465+  -- COPTIC CAPITAL LETTER DIALECT-P HORI+  '\x2cca'# -> unI64 11467+  -- COPTIC CAPITAL LETTER OLD COPTIC HORI+  '\x2ccc'# -> unI64 11469+  -- COPTIC CAPITAL LETTER OLD COPTIC HA+  '\x2cce'# -> unI64 11471+  -- COPTIC CAPITAL LETTER L-SHAPED HA+  '\x2cd0'# -> unI64 11473+  -- COPTIC CAPITAL LETTER OLD COPTIC HEI+  '\x2cd2'# -> unI64 11475+  -- COPTIC CAPITAL LETTER OLD COPTIC HAT+  '\x2cd4'# -> unI64 11477+  -- COPTIC CAPITAL LETTER OLD COPTIC GANGIA+  '\x2cd6'# -> unI64 11479+  -- COPTIC CAPITAL LETTER OLD COPTIC DJA+  '\x2cd8'# -> unI64 11481+  -- COPTIC CAPITAL LETTER OLD COPTIC SHIMA+  '\x2cda'# -> unI64 11483+  -- COPTIC CAPITAL LETTER OLD NUBIAN SHIMA+  '\x2cdc'# -> unI64 11485+  -- COPTIC CAPITAL LETTER OLD NUBIAN NGI+  '\x2cde'# -> unI64 11487+  -- COPTIC CAPITAL LETTER OLD NUBIAN NYI+  '\x2ce0'# -> unI64 11489+  -- COPTIC CAPITAL LETTER OLD NUBIAN WAU+  '\x2ce2'# -> unI64 11491+  -- COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI+  '\x2ceb'# -> unI64 11500+  -- COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA+  '\x2ced'# -> unI64 11502+  -- COPTIC CAPITAL LETTER BOHAIRIC KHEI+  '\x2cf2'# -> unI64 11507+  -- CYRILLIC CAPITAL LETTER ZEMLYA+  '\xa640'# -> unI64 42561+  -- CYRILLIC CAPITAL LETTER DZELO+  '\xa642'# -> unI64 42563+  -- CYRILLIC CAPITAL LETTER REVERSED DZE+  '\xa644'# -> unI64 42565+  -- CYRILLIC CAPITAL LETTER IOTA+  '\xa646'# -> unI64 42567+  -- CYRILLIC CAPITAL LETTER DJERV+  '\xa648'# -> unI64 42569+  -- CYRILLIC CAPITAL LETTER MONOGRAPH UK+  '\xa64a'# -> unI64 42571+  -- CYRILLIC CAPITAL LETTER BROAD OMEGA+  '\xa64c'# -> unI64 42573+  -- CYRILLIC CAPITAL LETTER NEUTRAL YER+  '\xa64e'# -> unI64 42575+  -- CYRILLIC CAPITAL LETTER YERU WITH BACK YER+  '\xa650'# -> unI64 42577+  -- CYRILLIC CAPITAL LETTER IOTIFIED YAT+  '\xa652'# -> unI64 42579+  -- CYRILLIC CAPITAL LETTER REVERSED YU+  '\xa654'# -> unI64 42581+  -- CYRILLIC CAPITAL LETTER IOTIFIED A+  '\xa656'# -> unI64 42583+  -- CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS+  '\xa658'# -> unI64 42585+  -- CYRILLIC CAPITAL LETTER BLENDED YUS+  '\xa65a'# -> unI64 42587+  -- CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS+  '\xa65c'# -> unI64 42589+  -- CYRILLIC CAPITAL LETTER YN+  '\xa65e'# -> unI64 42591+  -- CYRILLIC CAPITAL LETTER REVERSED TSE+  '\xa660'# -> unI64 42593+  -- CYRILLIC CAPITAL LETTER SOFT DE+  '\xa662'# -> unI64 42595+  -- CYRILLIC CAPITAL LETTER SOFT EL+  '\xa664'# -> unI64 42597+  -- CYRILLIC CAPITAL LETTER SOFT EM+  '\xa666'# -> unI64 42599+  -- CYRILLIC CAPITAL LETTER MONOCULAR O+  '\xa668'# -> unI64 42601+  -- CYRILLIC CAPITAL LETTER BINOCULAR O+  '\xa66a'# -> unI64 42603+  -- CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O+  '\xa66c'# -> unI64 42605+  -- CYRILLIC CAPITAL LETTER DWE+  '\xa680'# -> unI64 42625+  -- CYRILLIC CAPITAL LETTER DZWE+  '\xa682'# -> unI64 42627+  -- CYRILLIC CAPITAL LETTER ZHWE+  '\xa684'# -> unI64 42629+  -- CYRILLIC CAPITAL LETTER CCHE+  '\xa686'# -> unI64 42631+  -- CYRILLIC CAPITAL LETTER DZZE+  '\xa688'# -> unI64 42633+  -- CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK+  '\xa68a'# -> unI64 42635+  -- CYRILLIC CAPITAL LETTER TWE+  '\xa68c'# -> unI64 42637+  -- CYRILLIC CAPITAL LETTER TSWE+  '\xa68e'# -> unI64 42639+  -- CYRILLIC CAPITAL LETTER TSSE+  '\xa690'# -> unI64 42641+  -- CYRILLIC CAPITAL LETTER TCHE+  '\xa692'# -> unI64 42643+  -- CYRILLIC CAPITAL LETTER HWE+  '\xa694'# -> unI64 42645+  -- CYRILLIC CAPITAL LETTER SHWE+  '\xa696'# -> unI64 42647+  -- CYRILLIC CAPITAL LETTER DOUBLE O+  '\xa698'# -> unI64 42649+  -- CYRILLIC CAPITAL LETTER CROSSED O+  '\xa69a'# -> unI64 42651+  -- LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF+  '\xa722'# -> unI64 42787+  -- LATIN CAPITAL LETTER EGYPTOLOGICAL AIN+  '\xa724'# -> unI64 42789+  -- LATIN CAPITAL LETTER HENG+  '\xa726'# -> unI64 42791+  -- LATIN CAPITAL LETTER TZ+  '\xa728'# -> unI64 42793+  -- LATIN CAPITAL LETTER TRESILLO+  '\xa72a'# -> unI64 42795+  -- LATIN CAPITAL LETTER CUATRILLO+  '\xa72c'# -> unI64 42797+  -- LATIN CAPITAL LETTER CUATRILLO WITH COMMA+  '\xa72e'# -> unI64 42799+  -- LATIN CAPITAL LETTER AA+  '\xa732'# -> unI64 42803+  -- LATIN CAPITAL LETTER AO+  '\xa734'# -> unI64 42805+  -- LATIN CAPITAL LETTER AU+  '\xa736'# -> unI64 42807+  -- LATIN CAPITAL LETTER AV+  '\xa738'# -> unI64 42809+  -- LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR+  '\xa73a'# -> unI64 42811+  -- LATIN CAPITAL LETTER AY+  '\xa73c'# -> unI64 42813+  -- LATIN CAPITAL LETTER REVERSED C WITH DOT+  '\xa73e'# -> unI64 42815+  -- LATIN CAPITAL LETTER K WITH STROKE+  '\xa740'# -> unI64 42817+  -- LATIN CAPITAL LETTER K WITH DIAGONAL STROKE+  '\xa742'# -> unI64 42819+  -- LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE+  '\xa744'# -> unI64 42821+  -- LATIN CAPITAL LETTER BROKEN L+  '\xa746'# -> unI64 42823+  -- LATIN CAPITAL LETTER L WITH HIGH STROKE+  '\xa748'# -> unI64 42825+  -- LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY+  '\xa74a'# -> unI64 42827+  -- LATIN CAPITAL LETTER O WITH LOOP+  '\xa74c'# -> unI64 42829+  -- LATIN CAPITAL LETTER OO+  '\xa74e'# -> unI64 42831+  -- LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER+  '\xa750'# -> unI64 42833+  -- LATIN CAPITAL LETTER P WITH FLOURISH+  '\xa752'# -> unI64 42835+  -- LATIN CAPITAL LETTER P WITH SQUIRREL TAIL+  '\xa754'# -> unI64 42837+  -- LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER+  '\xa756'# -> unI64 42839+  -- LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE+  '\xa758'# -> unI64 42841+  -- LATIN CAPITAL LETTER R ROTUNDA+  '\xa75a'# -> unI64 42843+  -- LATIN CAPITAL LETTER RUM ROTUNDA+  '\xa75c'# -> unI64 42845+  -- LATIN CAPITAL LETTER V WITH DIAGONAL STROKE+  '\xa75e'# -> unI64 42847+  -- LATIN CAPITAL LETTER VY+  '\xa760'# -> unI64 42849+  -- LATIN CAPITAL LETTER VISIGOTHIC Z+  '\xa762'# -> unI64 42851+  -- LATIN CAPITAL LETTER THORN WITH STROKE+  '\xa764'# -> unI64 42853+  -- LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER+  '\xa766'# -> unI64 42855+  -- LATIN CAPITAL LETTER VEND+  '\xa768'# -> unI64 42857+  -- LATIN CAPITAL LETTER ET+  '\xa76a'# -> unI64 42859+  -- LATIN CAPITAL LETTER IS+  '\xa76c'# -> unI64 42861+  -- LATIN CAPITAL LETTER CON+  '\xa76e'# -> unI64 42863+  -- LATIN CAPITAL LETTER INSULAR D+  '\xa779'# -> unI64 42874+  -- LATIN CAPITAL LETTER INSULAR F+  '\xa77b'# -> unI64 42876+  -- LATIN CAPITAL LETTER INSULAR G+  '\xa77d'# -> unI64 7545+  -- LATIN CAPITAL LETTER TURNED INSULAR G+  '\xa77e'# -> unI64 42879+  -- LATIN CAPITAL LETTER TURNED L+  '\xa780'# -> unI64 42881+  -- LATIN CAPITAL LETTER INSULAR R+  '\xa782'# -> unI64 42883+  -- LATIN CAPITAL LETTER INSULAR S+  '\xa784'# -> unI64 42885+  -- LATIN CAPITAL LETTER INSULAR T+  '\xa786'# -> unI64 42887+  -- LATIN CAPITAL LETTER SALTILLO+  '\xa78b'# -> unI64 42892+  -- LATIN CAPITAL LETTER TURNED H+  '\xa78d'# -> unI64 613+  -- LATIN CAPITAL LETTER N WITH DESCENDER+  '\xa790'# -> unI64 42897+  -- LATIN CAPITAL LETTER C WITH BAR+  '\xa792'# -> unI64 42899+  -- LATIN CAPITAL LETTER B WITH FLOURISH+  '\xa796'# -> unI64 42903+  -- LATIN CAPITAL LETTER F WITH STROKE+  '\xa798'# -> unI64 42905+  -- LATIN CAPITAL LETTER VOLAPUK AE+  '\xa79a'# -> unI64 42907+  -- LATIN CAPITAL LETTER VOLAPUK OE+  '\xa79c'# -> unI64 42909+  -- LATIN CAPITAL LETTER VOLAPUK UE+  '\xa79e'# -> unI64 42911+  -- LATIN CAPITAL LETTER G WITH OBLIQUE STROKE+  '\xa7a0'# -> unI64 42913+  -- LATIN CAPITAL LETTER K WITH OBLIQUE STROKE+  '\xa7a2'# -> unI64 42915+  -- LATIN CAPITAL LETTER N WITH OBLIQUE STROKE+  '\xa7a4'# -> unI64 42917+  -- LATIN CAPITAL LETTER R WITH OBLIQUE STROKE+  '\xa7a6'# -> unI64 42919+  -- LATIN CAPITAL LETTER S WITH OBLIQUE STROKE+  '\xa7a8'# -> unI64 42921+  -- LATIN CAPITAL LETTER H WITH HOOK+  '\xa7aa'# -> unI64 614+  -- LATIN CAPITAL LETTER REVERSED OPEN E+  '\xa7ab'# -> unI64 604+  -- LATIN CAPITAL LETTER SCRIPT G+  '\xa7ac'# -> unI64 609+  -- LATIN CAPITAL LETTER L WITH BELT+  '\xa7ad'# -> unI64 620+  -- LATIN CAPITAL LETTER SMALL CAPITAL I+  '\xa7ae'# -> unI64 618+  -- LATIN CAPITAL LETTER TURNED K+  '\xa7b0'# -> unI64 670+  -- LATIN CAPITAL LETTER TURNED T+  '\xa7b1'# -> unI64 647+  -- LATIN CAPITAL LETTER J WITH CROSSED-TAIL+  '\xa7b2'# -> unI64 669+  -- LATIN CAPITAL LETTER CHI+  '\xa7b3'# -> unI64 43859+  -- LATIN CAPITAL LETTER BETA+  '\xa7b4'# -> unI64 42933+  -- LATIN CAPITAL LETTER OMEGA+  '\xa7b6'# -> unI64 42935+  -- LATIN CAPITAL LETTER U WITH STROKE+  '\xa7b8'# -> unI64 42937+  -- LATIN CAPITAL LETTER GLOTTAL A+  '\xa7ba'# -> unI64 42939+  -- LATIN CAPITAL LETTER GLOTTAL I+  '\xa7bc'# -> unI64 42941+  -- LATIN CAPITAL LETTER GLOTTAL U+  '\xa7be'# -> unI64 42943+  -- LATIN CAPITAL LETTER OLD POLISH O+  '\xa7c0'# -> unI64 42945+  -- LATIN CAPITAL LETTER ANGLICANA W+  '\xa7c2'# -> unI64 42947+  -- LATIN CAPITAL LETTER C WITH PALATAL HOOK+  '\xa7c4'# -> unI64 42900+  -- LATIN CAPITAL LETTER S WITH HOOK+  '\xa7c5'# -> unI64 642+  -- LATIN CAPITAL LETTER Z WITH PALATAL HOOK+  '\xa7c6'# -> unI64 7566+  -- LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY+  '\xa7c7'# -> unI64 42952+  -- LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY+  '\xa7c9'# -> unI64 42954+  -- LATIN CAPITAL LETTER CLOSED INSULAR G+  '\xa7d0'# -> unI64 42961+  -- LATIN CAPITAL LETTER MIDDLE SCOTS S+  '\xa7d6'# -> unI64 42967+  -- LATIN CAPITAL LETTER SIGMOID S+  '\xa7d8'# -> unI64 42969+  -- LATIN CAPITAL LETTER REVERSED HALF H+  '\xa7f5'# -> unI64 42998+  -- CHEROKEE SMALL LETTER A+  '\xab70'# -> unI64 5024+  -- CHEROKEE SMALL LETTER E+  '\xab71'# -> unI64 5025+  -- CHEROKEE SMALL LETTER I+  '\xab72'# -> unI64 5026+  -- CHEROKEE SMALL LETTER O+  '\xab73'# -> unI64 5027+  -- CHEROKEE SMALL LETTER U+  '\xab74'# -> unI64 5028+  -- CHEROKEE SMALL LETTER V+  '\xab75'# -> unI64 5029+  -- CHEROKEE SMALL LETTER GA+  '\xab76'# -> unI64 5030+  -- CHEROKEE SMALL LETTER KA+  '\xab77'# -> unI64 5031+  -- CHEROKEE SMALL LETTER GE+  '\xab78'# -> unI64 5032+  -- CHEROKEE SMALL LETTER GI+  '\xab79'# -> unI64 5033+  -- CHEROKEE SMALL LETTER GO+  '\xab7a'# -> unI64 5034+  -- CHEROKEE SMALL LETTER GU+  '\xab7b'# -> unI64 5035+  -- CHEROKEE SMALL LETTER GV+  '\xab7c'# -> unI64 5036+  -- CHEROKEE SMALL LETTER HA+  '\xab7d'# -> unI64 5037+  -- CHEROKEE SMALL LETTER HE+  '\xab7e'# -> unI64 5038+  -- CHEROKEE SMALL LETTER HI+  '\xab7f'# -> unI64 5039+  -- CHEROKEE SMALL LETTER HO+  '\xab80'# -> unI64 5040+  -- CHEROKEE SMALL LETTER HU+  '\xab81'# -> unI64 5041+  -- CHEROKEE SMALL LETTER HV+  '\xab82'# -> unI64 5042+  -- CHEROKEE SMALL LETTER LA+  '\xab83'# -> unI64 5043+  -- CHEROKEE SMALL LETTER LE+  '\xab84'# -> unI64 5044+  -- CHEROKEE SMALL LETTER LI+  '\xab85'# -> unI64 5045+  -- CHEROKEE SMALL LETTER LO+  '\xab86'# -> unI64 5046+  -- CHEROKEE SMALL LETTER LU+  '\xab87'# -> unI64 5047+  -- CHEROKEE SMALL LETTER LV+  '\xab88'# -> unI64 5048+  -- CHEROKEE SMALL LETTER MA+  '\xab89'# -> unI64 5049+  -- CHEROKEE SMALL LETTER ME+  '\xab8a'# -> unI64 5050+  -- CHEROKEE SMALL LETTER MI+  '\xab8b'# -> unI64 5051+  -- CHEROKEE SMALL LETTER MO+  '\xab8c'# -> unI64 5052+  -- CHEROKEE SMALL LETTER MU+  '\xab8d'# -> unI64 5053+  -- CHEROKEE SMALL LETTER NA+  '\xab8e'# -> unI64 5054+  -- CHEROKEE SMALL LETTER HNA+  '\xab8f'# -> unI64 5055+  -- CHEROKEE SMALL LETTER NAH+  '\xab90'# -> unI64 5056+  -- CHEROKEE SMALL LETTER NE+  '\xab91'# -> unI64 5057+  -- CHEROKEE SMALL LETTER NI+  '\xab92'# -> unI64 5058+  -- CHEROKEE SMALL LETTER NO+  '\xab93'# -> unI64 5059+  -- CHEROKEE SMALL LETTER NU+  '\xab94'# -> unI64 5060+  -- CHEROKEE SMALL LETTER NV+  '\xab95'# -> unI64 5061+  -- CHEROKEE SMALL LETTER QUA+  '\xab96'# -> unI64 5062+  -- CHEROKEE SMALL LETTER QUE+  '\xab97'# -> unI64 5063+  -- CHEROKEE SMALL LETTER QUI+  '\xab98'# -> unI64 5064+  -- CHEROKEE SMALL LETTER QUO+  '\xab99'# -> unI64 5065+  -- CHEROKEE SMALL LETTER QUU+  '\xab9a'# -> unI64 5066+  -- CHEROKEE SMALL LETTER QUV+  '\xab9b'# -> unI64 5067+  -- CHEROKEE SMALL LETTER SA+  '\xab9c'# -> unI64 5068+  -- CHEROKEE SMALL LETTER S+  '\xab9d'# -> unI64 5069+  -- CHEROKEE SMALL LETTER SE+  '\xab9e'# -> unI64 5070+  -- CHEROKEE SMALL LETTER SI+  '\xab9f'# -> unI64 5071+  -- CHEROKEE SMALL LETTER SO+  '\xaba0'# -> unI64 5072+  -- CHEROKEE SMALL LETTER SU+  '\xaba1'# -> unI64 5073+  -- CHEROKEE SMALL LETTER SV+  '\xaba2'# -> unI64 5074+  -- CHEROKEE SMALL LETTER DA+  '\xaba3'# -> unI64 5075+  -- CHEROKEE SMALL LETTER TA+  '\xaba4'# -> unI64 5076+  -- CHEROKEE SMALL LETTER DE+  '\xaba5'# -> unI64 5077+  -- CHEROKEE SMALL LETTER TE+  '\xaba6'# -> unI64 5078+  -- CHEROKEE SMALL LETTER DI+  '\xaba7'# -> unI64 5079+  -- CHEROKEE SMALL LETTER TI+  '\xaba8'# -> unI64 5080+  -- CHEROKEE SMALL LETTER DO+  '\xaba9'# -> unI64 5081+  -- CHEROKEE SMALL LETTER DU+  '\xabaa'# -> unI64 5082+  -- CHEROKEE SMALL LETTER DV+  '\xabab'# -> unI64 5083+  -- CHEROKEE SMALL LETTER DLA+  '\xabac'# -> unI64 5084+  -- CHEROKEE SMALL LETTER TLA+  '\xabad'# -> unI64 5085+  -- CHEROKEE SMALL LETTER TLE+  '\xabae'# -> unI64 5086+  -- CHEROKEE SMALL LETTER TLI+  '\xabaf'# -> unI64 5087+  -- CHEROKEE SMALL LETTER TLO+  '\xabb0'# -> unI64 5088+  -- CHEROKEE SMALL LETTER TLU+  '\xabb1'# -> unI64 5089+  -- CHEROKEE SMALL LETTER TLV+  '\xabb2'# -> unI64 5090+  -- CHEROKEE SMALL LETTER TSA+  '\xabb3'# -> unI64 5091+  -- CHEROKEE SMALL LETTER TSE+  '\xabb4'# -> unI64 5092+  -- CHEROKEE SMALL LETTER TSI+  '\xabb5'# -> unI64 5093+  -- CHEROKEE SMALL LETTER TSO+  '\xabb6'# -> unI64 5094+  -- CHEROKEE SMALL LETTER TSU+  '\xabb7'# -> unI64 5095+  -- CHEROKEE SMALL LETTER TSV+  '\xabb8'# -> unI64 5096+  -- CHEROKEE SMALL LETTER WA+  '\xabb9'# -> unI64 5097+  -- CHEROKEE SMALL LETTER WE+  '\xabba'# -> unI64 5098+  -- CHEROKEE SMALL LETTER WI+  '\xabbb'# -> unI64 5099+  -- CHEROKEE SMALL LETTER WO+  '\xabbc'# -> unI64 5100+  -- CHEROKEE SMALL LETTER WU+  '\xabbd'# -> unI64 5101+  -- CHEROKEE SMALL LETTER WV+  '\xabbe'# -> unI64 5102+  -- CHEROKEE SMALL LETTER YA+  '\xabbf'# -> unI64 5103+  -- LATIN SMALL LIGATURE FF+  '\xfb00'# -> unI64 213909606+  -- LATIN SMALL LIGATURE FI+  '\xfb01'# -> unI64 220201062+  -- LATIN SMALL LIGATURE FL+  '\xfb02'# -> unI64 226492518+  -- LATIN SMALL LIGATURE FFI+  '\xfb03'# -> unI64 461795097575526+  -- LATIN SMALL LIGATURE FFL+  '\xfb04'# -> unI64 474989237108838+  -- LATIN SMALL LIGATURE LONG S T+  '\xfb05'# -> unI64 243269747+  -- LATIN SMALL LIGATURE ST+  '\xfb06'# -> unI64 243269747+  -- ARMENIAN SMALL LIGATURE MEN NOW+  '\xfb13'# -> unI64 2931819892+  -- ARMENIAN SMALL LIGATURE MEN ECH+  '\xfb14'# -> unI64 2896168308+  -- ARMENIAN SMALL LIGATURE MEN INI+  '\xfb15'# -> unI64 2908751220+  -- ARMENIAN SMALL LIGATURE VEW NOW+  '\xfb16'# -> unI64 2931819902+  -- ARMENIAN SMALL LIGATURE MEN XEH+  '\xfb17'# -> unI64 2912945524+  -- FULLWIDTH LATIN CAPITAL LETTER A+  '\xff21'# -> unI64 65345+  -- FULLWIDTH LATIN CAPITAL LETTER B+  '\xff22'# -> unI64 65346+  -- FULLWIDTH LATIN CAPITAL LETTER C+  '\xff23'# -> unI64 65347+  -- FULLWIDTH LATIN CAPITAL LETTER D+  '\xff24'# -> unI64 65348+  -- FULLWIDTH LATIN CAPITAL LETTER E+  '\xff25'# -> unI64 65349+  -- FULLWIDTH LATIN CAPITAL LETTER F+  '\xff26'# -> unI64 65350+  -- FULLWIDTH LATIN CAPITAL LETTER G+  '\xff27'# -> unI64 65351+  -- FULLWIDTH LATIN CAPITAL LETTER H+  '\xff28'# -> unI64 65352+  -- FULLWIDTH LATIN CAPITAL LETTER I+  '\xff29'# -> unI64 65353+  -- FULLWIDTH LATIN CAPITAL LETTER J+  '\xff2a'# -> unI64 65354+  -- FULLWIDTH LATIN CAPITAL LETTER K+  '\xff2b'# -> unI64 65355+  -- FULLWIDTH LATIN CAPITAL LETTER L+  '\xff2c'# -> unI64 65356+  -- FULLWIDTH LATIN CAPITAL LETTER M+  '\xff2d'# -> unI64 65357+  -- FULLWIDTH LATIN CAPITAL LETTER N+  '\xff2e'# -> unI64 65358+  -- FULLWIDTH LATIN CAPITAL LETTER O+  '\xff2f'# -> unI64 65359+  -- FULLWIDTH LATIN CAPITAL LETTER P+  '\xff30'# -> unI64 65360+  -- FULLWIDTH LATIN CAPITAL LETTER Q+  '\xff31'# -> unI64 65361+  -- FULLWIDTH LATIN CAPITAL LETTER R+  '\xff32'# -> unI64 65362+  -- FULLWIDTH LATIN CAPITAL LETTER S+  '\xff33'# -> unI64 65363+  -- FULLWIDTH LATIN CAPITAL LETTER T+  '\xff34'# -> unI64 65364+  -- FULLWIDTH LATIN CAPITAL LETTER U+  '\xff35'# -> unI64 65365+  -- FULLWIDTH LATIN CAPITAL LETTER V+  '\xff36'# -> unI64 65366+  -- FULLWIDTH LATIN CAPITAL LETTER W+  '\xff37'# -> unI64 65367+  -- FULLWIDTH LATIN CAPITAL LETTER X+  '\xff38'# -> unI64 65368+  -- FULLWIDTH LATIN CAPITAL LETTER Y+  '\xff39'# -> unI64 65369+  -- FULLWIDTH LATIN CAPITAL LETTER Z+  '\xff3a'# -> unI64 65370+  -- DESERET CAPITAL LETTER LONG I+  '\x10400'# -> unI64 66600+  -- DESERET CAPITAL LETTER LONG E+  '\x10401'# -> unI64 66601+  -- DESERET CAPITAL LETTER LONG A+  '\x10402'# -> unI64 66602+  -- DESERET CAPITAL LETTER LONG AH+  '\x10403'# -> unI64 66603+  -- DESERET CAPITAL LETTER LONG O+  '\x10404'# -> unI64 66604+  -- DESERET CAPITAL LETTER LONG OO+  '\x10405'# -> unI64 66605+  -- DESERET CAPITAL LETTER SHORT I+  '\x10406'# -> unI64 66606+  -- DESERET CAPITAL LETTER SHORT E+  '\x10407'# -> unI64 66607+  -- DESERET CAPITAL LETTER SHORT A+  '\x10408'# -> unI64 66608+  -- DESERET CAPITAL LETTER SHORT AH+  '\x10409'# -> unI64 66609+  -- DESERET CAPITAL LETTER SHORT O+  '\x1040a'# -> unI64 66610+  -- DESERET CAPITAL LETTER SHORT OO+  '\x1040b'# -> unI64 66611+  -- DESERET CAPITAL LETTER AY+  '\x1040c'# -> unI64 66612+  -- DESERET CAPITAL LETTER OW+  '\x1040d'# -> unI64 66613+  -- DESERET CAPITAL LETTER WU+  '\x1040e'# -> unI64 66614+  -- DESERET CAPITAL LETTER YEE+  '\x1040f'# -> unI64 66615+  -- DESERET CAPITAL LETTER H+  '\x10410'# -> unI64 66616+  -- DESERET CAPITAL LETTER PEE+  '\x10411'# -> unI64 66617+  -- DESERET CAPITAL LETTER BEE+  '\x10412'# -> unI64 66618+  -- DESERET CAPITAL LETTER TEE+  '\x10413'# -> unI64 66619+  -- DESERET CAPITAL LETTER DEE+  '\x10414'# -> unI64 66620+  -- DESERET CAPITAL LETTER CHEE+  '\x10415'# -> unI64 66621+  -- DESERET CAPITAL LETTER JEE+  '\x10416'# -> unI64 66622+  -- DESERET CAPITAL LETTER KAY+  '\x10417'# -> unI64 66623+  -- DESERET CAPITAL LETTER GAY+  '\x10418'# -> unI64 66624+  -- DESERET CAPITAL LETTER EF+  '\x10419'# -> unI64 66625+  -- DESERET CAPITAL LETTER VEE+  '\x1041a'# -> unI64 66626+  -- DESERET CAPITAL LETTER ETH+  '\x1041b'# -> unI64 66627+  -- DESERET CAPITAL LETTER THEE+  '\x1041c'# -> unI64 66628+  -- DESERET CAPITAL LETTER ES+  '\x1041d'# -> unI64 66629+  -- DESERET CAPITAL LETTER ZEE+  '\x1041e'# -> unI64 66630+  -- DESERET CAPITAL LETTER ESH+  '\x1041f'# -> unI64 66631+  -- DESERET CAPITAL LETTER ZHEE+  '\x10420'# -> unI64 66632+  -- DESERET CAPITAL LETTER ER+  '\x10421'# -> unI64 66633+  -- DESERET CAPITAL LETTER EL+  '\x10422'# -> unI64 66634+  -- DESERET CAPITAL LETTER EM+  '\x10423'# -> unI64 66635+  -- DESERET CAPITAL LETTER EN+  '\x10424'# -> unI64 66636+  -- DESERET CAPITAL LETTER ENG+  '\x10425'# -> unI64 66637+  -- DESERET CAPITAL LETTER OI+  '\x10426'# -> unI64 66638+  -- DESERET CAPITAL LETTER EW+  '\x10427'# -> unI64 66639+  -- OSAGE CAPITAL LETTER A+  '\x104b0'# -> unI64 66776+  -- OSAGE CAPITAL LETTER AI+  '\x104b1'# -> unI64 66777+  -- OSAGE CAPITAL LETTER AIN+  '\x104b2'# -> unI64 66778+  -- OSAGE CAPITAL LETTER AH+  '\x104b3'# -> unI64 66779+  -- OSAGE CAPITAL LETTER BRA+  '\x104b4'# -> unI64 66780+  -- OSAGE CAPITAL LETTER CHA+  '\x104b5'# -> unI64 66781+  -- OSAGE CAPITAL LETTER EHCHA+  '\x104b6'# -> unI64 66782+  -- OSAGE CAPITAL LETTER E+  '\x104b7'# -> unI64 66783+  -- OSAGE CAPITAL LETTER EIN+  '\x104b8'# -> unI64 66784+  -- OSAGE CAPITAL LETTER HA+  '\x104b9'# -> unI64 66785+  -- OSAGE CAPITAL LETTER HYA+  '\x104ba'# -> unI64 66786+  -- OSAGE CAPITAL LETTER I+  '\x104bb'# -> unI64 66787+  -- OSAGE CAPITAL LETTER KA+  '\x104bc'# -> unI64 66788+  -- OSAGE CAPITAL LETTER EHKA+  '\x104bd'# -> unI64 66789+  -- OSAGE CAPITAL LETTER KYA+  '\x104be'# -> unI64 66790+  -- OSAGE CAPITAL LETTER LA+  '\x104bf'# -> unI64 66791+  -- OSAGE CAPITAL LETTER MA+  '\x104c0'# -> unI64 66792+  -- OSAGE CAPITAL LETTER NA+  '\x104c1'# -> unI64 66793+  -- OSAGE CAPITAL LETTER O+  '\x104c2'# -> unI64 66794+  -- OSAGE CAPITAL LETTER OIN+  '\x104c3'# -> unI64 66795+  -- OSAGE CAPITAL LETTER PA+  '\x104c4'# -> unI64 66796+  -- OSAGE CAPITAL LETTER EHPA+  '\x104c5'# -> unI64 66797+  -- OSAGE CAPITAL LETTER SA+  '\x104c6'# -> unI64 66798+  -- OSAGE CAPITAL LETTER SHA+  '\x104c7'# -> unI64 66799+  -- OSAGE CAPITAL LETTER TA+  '\x104c8'# -> unI64 66800+  -- OSAGE CAPITAL LETTER EHTA+  '\x104c9'# -> unI64 66801+  -- OSAGE CAPITAL LETTER TSA+  '\x104ca'# -> unI64 66802+  -- OSAGE CAPITAL LETTER EHTSA+  '\x104cb'# -> unI64 66803+  -- OSAGE CAPITAL LETTER TSHA+  '\x104cc'# -> unI64 66804+  -- OSAGE CAPITAL LETTER DHA+  '\x104cd'# -> unI64 66805+  -- OSAGE CAPITAL LETTER U+  '\x104ce'# -> unI64 66806+  -- OSAGE CAPITAL LETTER WA+  '\x104cf'# -> unI64 66807+  -- OSAGE CAPITAL LETTER KHA+  '\x104d0'# -> unI64 66808+  -- OSAGE CAPITAL LETTER GHA+  '\x104d1'# -> unI64 66809+  -- OSAGE CAPITAL LETTER ZA+  '\x104d2'# -> unI64 66810+  -- OSAGE CAPITAL LETTER ZHA+  '\x104d3'# -> unI64 66811+  -- VITHKUQI CAPITAL LETTER A+  '\x10570'# -> unI64 66967+  -- VITHKUQI CAPITAL LETTER BBE+  '\x10571'# -> unI64 66968+  -- VITHKUQI CAPITAL LETTER BE+  '\x10572'# -> unI64 66969+  -- VITHKUQI CAPITAL LETTER CE+  '\x10573'# -> unI64 66970+  -- VITHKUQI CAPITAL LETTER CHE+  '\x10574'# -> unI64 66971+  -- VITHKUQI CAPITAL LETTER DE+  '\x10575'# -> unI64 66972+  -- VITHKUQI CAPITAL LETTER DHE+  '\x10576'# -> unI64 66973+  -- VITHKUQI CAPITAL LETTER EI+  '\x10577'# -> unI64 66974+  -- VITHKUQI CAPITAL LETTER E+  '\x10578'# -> unI64 66975+  -- VITHKUQI CAPITAL LETTER FE+  '\x10579'# -> unI64 66976+  -- VITHKUQI CAPITAL LETTER GA+  '\x1057a'# -> unI64 66977+  -- VITHKUQI CAPITAL LETTER HA+  '\x1057c'# -> unI64 66979+  -- VITHKUQI CAPITAL LETTER HHA+  '\x1057d'# -> unI64 66980+  -- VITHKUQI CAPITAL LETTER I+  '\x1057e'# -> unI64 66981+  -- VITHKUQI CAPITAL LETTER IJE+  '\x1057f'# -> unI64 66982+  -- VITHKUQI CAPITAL LETTER JE+  '\x10580'# -> unI64 66983+  -- VITHKUQI CAPITAL LETTER KA+  '\x10581'# -> unI64 66984+  -- VITHKUQI CAPITAL LETTER LA+  '\x10582'# -> unI64 66985+  -- VITHKUQI CAPITAL LETTER LLA+  '\x10583'# -> unI64 66986+  -- VITHKUQI CAPITAL LETTER ME+  '\x10584'# -> unI64 66987+  -- VITHKUQI CAPITAL LETTER NE+  '\x10585'# -> unI64 66988+  -- VITHKUQI CAPITAL LETTER NJE+  '\x10586'# -> unI64 66989+  -- VITHKUQI CAPITAL LETTER O+  '\x10587'# -> unI64 66990+  -- VITHKUQI CAPITAL LETTER PE+  '\x10588'# -> unI64 66991+  -- VITHKUQI CAPITAL LETTER QA+  '\x10589'# -> unI64 66992+  -- VITHKUQI CAPITAL LETTER RE+  '\x1058a'# -> unI64 66993+  -- VITHKUQI CAPITAL LETTER SE+  '\x1058c'# -> unI64 66995+  -- VITHKUQI CAPITAL LETTER SHE+  '\x1058d'# -> unI64 66996+  -- VITHKUQI CAPITAL LETTER TE+  '\x1058e'# -> unI64 66997+  -- VITHKUQI CAPITAL LETTER THE+  '\x1058f'# -> unI64 66998+  -- VITHKUQI CAPITAL LETTER U+  '\x10590'# -> unI64 66999+  -- VITHKUQI CAPITAL LETTER VE+  '\x10591'# -> unI64 67000+  -- VITHKUQI CAPITAL LETTER XE+  '\x10592'# -> unI64 67001+  -- VITHKUQI CAPITAL LETTER Y+  '\x10594'# -> unI64 67003+  -- VITHKUQI CAPITAL LETTER ZE+  '\x10595'# -> unI64 67004+  -- OLD HUNGARIAN CAPITAL LETTER A+  '\x10c80'# -> unI64 68800+  -- OLD HUNGARIAN CAPITAL LETTER AA+  '\x10c81'# -> unI64 68801+  -- OLD HUNGARIAN CAPITAL LETTER EB+  '\x10c82'# -> unI64 68802+  -- OLD HUNGARIAN CAPITAL LETTER AMB+  '\x10c83'# -> unI64 68803+  -- OLD HUNGARIAN CAPITAL LETTER EC+  '\x10c84'# -> unI64 68804+  -- OLD HUNGARIAN CAPITAL LETTER ENC+  '\x10c85'# -> unI64 68805+  -- OLD HUNGARIAN CAPITAL LETTER ECS+  '\x10c86'# -> unI64 68806+  -- OLD HUNGARIAN CAPITAL LETTER ED+  '\x10c87'# -> unI64 68807+  -- OLD HUNGARIAN CAPITAL LETTER AND+  '\x10c88'# -> unI64 68808+  -- OLD HUNGARIAN CAPITAL LETTER E+  '\x10c89'# -> unI64 68809+  -- OLD HUNGARIAN CAPITAL LETTER CLOSE E+  '\x10c8a'# -> unI64 68810+  -- OLD HUNGARIAN CAPITAL LETTER EE+  '\x10c8b'# -> unI64 68811+  -- OLD HUNGARIAN CAPITAL LETTER EF+  '\x10c8c'# -> unI64 68812+  -- OLD HUNGARIAN CAPITAL LETTER EG+  '\x10c8d'# -> unI64 68813+  -- OLD HUNGARIAN CAPITAL LETTER EGY+  '\x10c8e'# -> unI64 68814+  -- OLD HUNGARIAN CAPITAL LETTER EH+  '\x10c8f'# -> unI64 68815+  -- OLD HUNGARIAN CAPITAL LETTER I+  '\x10c90'# -> unI64 68816+  -- OLD HUNGARIAN CAPITAL LETTER II+  '\x10c91'# -> unI64 68817+  -- OLD HUNGARIAN CAPITAL LETTER EJ+  '\x10c92'# -> unI64 68818+  -- OLD HUNGARIAN CAPITAL LETTER EK+  '\x10c93'# -> unI64 68819+  -- OLD HUNGARIAN CAPITAL LETTER AK+  '\x10c94'# -> unI64 68820+  -- OLD HUNGARIAN CAPITAL LETTER UNK+  '\x10c95'# -> unI64 68821+  -- OLD HUNGARIAN CAPITAL LETTER EL+  '\x10c96'# -> unI64 68822+  -- OLD HUNGARIAN CAPITAL LETTER ELY+  '\x10c97'# -> unI64 68823+  -- OLD HUNGARIAN CAPITAL LETTER EM+  '\x10c98'# -> unI64 68824+  -- OLD HUNGARIAN CAPITAL LETTER EN+  '\x10c99'# -> unI64 68825+  -- OLD HUNGARIAN CAPITAL LETTER ENY+  '\x10c9a'# -> unI64 68826+  -- OLD HUNGARIAN CAPITAL LETTER O+  '\x10c9b'# -> unI64 68827+  -- OLD HUNGARIAN CAPITAL LETTER OO+  '\x10c9c'# -> unI64 68828+  -- OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG OE+  '\x10c9d'# -> unI64 68829+  -- OLD HUNGARIAN CAPITAL LETTER RUDIMENTA OE+  '\x10c9e'# -> unI64 68830+  -- OLD HUNGARIAN CAPITAL LETTER OEE+  '\x10c9f'# -> unI64 68831+  -- OLD HUNGARIAN CAPITAL LETTER EP+  '\x10ca0'# -> unI64 68832+  -- OLD HUNGARIAN CAPITAL LETTER EMP+  '\x10ca1'# -> unI64 68833+  -- OLD HUNGARIAN CAPITAL LETTER ER+  '\x10ca2'# -> unI64 68834+  -- OLD HUNGARIAN CAPITAL LETTER SHORT ER+  '\x10ca3'# -> unI64 68835+  -- OLD HUNGARIAN CAPITAL LETTER ES+  '\x10ca4'# -> unI64 68836+  -- OLD HUNGARIAN CAPITAL LETTER ESZ+  '\x10ca5'# -> unI64 68837+  -- OLD HUNGARIAN CAPITAL LETTER ET+  '\x10ca6'# -> unI64 68838+  -- OLD HUNGARIAN CAPITAL LETTER ENT+  '\x10ca7'# -> unI64 68839+  -- OLD HUNGARIAN CAPITAL LETTER ETY+  '\x10ca8'# -> unI64 68840+  -- OLD HUNGARIAN CAPITAL LETTER ECH+  '\x10ca9'# -> unI64 68841+  -- OLD HUNGARIAN CAPITAL LETTER U+  '\x10caa'# -> unI64 68842+  -- OLD HUNGARIAN CAPITAL LETTER UU+  '\x10cab'# -> unI64 68843+  -- OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG UE+  '\x10cac'# -> unI64 68844+  -- OLD HUNGARIAN CAPITAL LETTER RUDIMENTA UE+  '\x10cad'# -> unI64 68845+  -- OLD HUNGARIAN CAPITAL LETTER EV+  '\x10cae'# -> unI64 68846+  -- OLD HUNGARIAN CAPITAL LETTER EZ+  '\x10caf'# -> unI64 68847+  -- OLD HUNGARIAN CAPITAL LETTER EZS+  '\x10cb0'# -> unI64 68848+  -- OLD HUNGARIAN CAPITAL LETTER ENT-SHAPED SIGN+  '\x10cb1'# -> unI64 68849+  -- OLD HUNGARIAN CAPITAL LETTER US+  '\x10cb2'# -> unI64 68850+  -- WARANG CITI CAPITAL LETTER NGAA+  '\x118a0'# -> unI64 71872+  -- WARANG CITI CAPITAL LETTER A+  '\x118a1'# -> unI64 71873+  -- WARANG CITI CAPITAL LETTER WI+  '\x118a2'# -> unI64 71874+  -- WARANG CITI CAPITAL LETTER YU+  '\x118a3'# -> unI64 71875+  -- WARANG CITI CAPITAL LETTER YA+  '\x118a4'# -> unI64 71876+  -- WARANG CITI CAPITAL LETTER YO+  '\x118a5'# -> unI64 71877+  -- WARANG CITI CAPITAL LETTER II+  '\x118a6'# -> unI64 71878+  -- WARANG CITI CAPITAL LETTER UU+  '\x118a7'# -> unI64 71879+  -- WARANG CITI CAPITAL LETTER E+  '\x118a8'# -> unI64 71880+  -- WARANG CITI CAPITAL LETTER O+  '\x118a9'# -> unI64 71881+  -- WARANG CITI CAPITAL LETTER ANG+  '\x118aa'# -> unI64 71882+  -- WARANG CITI CAPITAL LETTER GA+  '\x118ab'# -> unI64 71883+  -- WARANG CITI CAPITAL LETTER KO+  '\x118ac'# -> unI64 71884+  -- WARANG CITI CAPITAL LETTER ENY+  '\x118ad'# -> unI64 71885+  -- WARANG CITI CAPITAL LETTER YUJ+  '\x118ae'# -> unI64 71886+  -- WARANG CITI CAPITAL LETTER UC+  '\x118af'# -> unI64 71887+  -- WARANG CITI CAPITAL LETTER ENN+  '\x118b0'# -> unI64 71888+  -- WARANG CITI CAPITAL LETTER ODD+  '\x118b1'# -> unI64 71889+  -- WARANG CITI CAPITAL LETTER TTE+  '\x118b2'# -> unI64 71890+  -- WARANG CITI CAPITAL LETTER NUNG+  '\x118b3'# -> unI64 71891+  -- WARANG CITI CAPITAL LETTER DA+  '\x118b4'# -> unI64 71892+  -- WARANG CITI CAPITAL LETTER AT+  '\x118b5'# -> unI64 71893+  -- WARANG CITI CAPITAL LETTER AM+  '\x118b6'# -> unI64 71894+  -- WARANG CITI CAPITAL LETTER BU+  '\x118b7'# -> unI64 71895+  -- WARANG CITI CAPITAL LETTER PU+  '\x118b8'# -> unI64 71896+  -- WARANG CITI CAPITAL LETTER HIYO+  '\x118b9'# -> unI64 71897+  -- WARANG CITI CAPITAL LETTER HOLO+  '\x118ba'# -> unI64 71898+  -- WARANG CITI CAPITAL LETTER HORR+  '\x118bb'# -> unI64 71899+  -- WARANG CITI CAPITAL LETTER HAR+  '\x118bc'# -> unI64 71900+  -- WARANG CITI CAPITAL LETTER SSUU+  '\x118bd'# -> unI64 71901+  -- WARANG CITI CAPITAL LETTER SII+  '\x118be'# -> unI64 71902+  -- WARANG CITI CAPITAL LETTER VIYO+  '\x118bf'# -> unI64 71903+  -- MEDEFAIDRIN CAPITAL LETTER M+  '\x16e40'# -> unI64 93792+  -- MEDEFAIDRIN CAPITAL LETTER S+  '\x16e41'# -> unI64 93793+  -- MEDEFAIDRIN CAPITAL LETTER V+  '\x16e42'# -> unI64 93794+  -- MEDEFAIDRIN CAPITAL LETTER W+  '\x16e43'# -> unI64 93795+  -- MEDEFAIDRIN CAPITAL LETTER ATIU+  '\x16e44'# -> unI64 93796+  -- MEDEFAIDRIN CAPITAL LETTER Z+  '\x16e45'# -> unI64 93797+  -- MEDEFAIDRIN CAPITAL LETTER KP+  '\x16e46'# -> unI64 93798+  -- MEDEFAIDRIN CAPITAL LETTER P+  '\x16e47'# -> unI64 93799+  -- MEDEFAIDRIN CAPITAL LETTER T+  '\x16e48'# -> unI64 93800+  -- MEDEFAIDRIN CAPITAL LETTER G+  '\x16e49'# -> unI64 93801+  -- MEDEFAIDRIN CAPITAL LETTER F+  '\x16e4a'# -> unI64 93802+  -- MEDEFAIDRIN CAPITAL LETTER I+  '\x16e4b'# -> unI64 93803+  -- MEDEFAIDRIN CAPITAL LETTER K+  '\x16e4c'# -> unI64 93804+  -- MEDEFAIDRIN CAPITAL LETTER A+  '\x16e4d'# -> unI64 93805+  -- MEDEFAIDRIN CAPITAL LETTER J+  '\x16e4e'# -> unI64 93806+  -- MEDEFAIDRIN CAPITAL LETTER E+  '\x16e4f'# -> unI64 93807+  -- MEDEFAIDRIN CAPITAL LETTER B+  '\x16e50'# -> unI64 93808+  -- MEDEFAIDRIN CAPITAL LETTER C+  '\x16e51'# -> unI64 93809+  -- MEDEFAIDRIN CAPITAL LETTER U+  '\x16e52'# -> unI64 93810+  -- MEDEFAIDRIN CAPITAL LETTER YU+  '\x16e53'# -> unI64 93811+  -- MEDEFAIDRIN CAPITAL LETTER L+  '\x16e54'# -> unI64 93812+  -- MEDEFAIDRIN CAPITAL LETTER Q+  '\x16e55'# -> unI64 93813+  -- MEDEFAIDRIN CAPITAL LETTER HP+  '\x16e56'# -> unI64 93814+  -- MEDEFAIDRIN CAPITAL LETTER NY+  '\x16e57'# -> unI64 93815+  -- MEDEFAIDRIN CAPITAL LETTER X+  '\x16e58'# -> unI64 93816+  -- MEDEFAIDRIN CAPITAL LETTER D+  '\x16e59'# -> unI64 93817+  -- MEDEFAIDRIN CAPITAL LETTER OE+  '\x16e5a'# -> unI64 93818+  -- MEDEFAIDRIN CAPITAL LETTER N+  '\x16e5b'# -> unI64 93819+  -- MEDEFAIDRIN CAPITAL LETTER R+  '\x16e5c'# -> unI64 93820+  -- MEDEFAIDRIN CAPITAL LETTER O+  '\x16e5d'# -> unI64 93821+  -- MEDEFAIDRIN CAPITAL LETTER AI+  '\x16e5e'# -> unI64 93822+  -- MEDEFAIDRIN CAPITAL LETTER Y+  '\x16e5f'# -> unI64 93823+  -- ADLAM CAPITAL LETTER ALIF+  '\x1e900'# -> unI64 125218+  -- ADLAM CAPITAL LETTER DAALI+  '\x1e901'# -> unI64 125219+  -- ADLAM CAPITAL LETTER LAAM+  '\x1e902'# -> unI64 125220+  -- ADLAM CAPITAL LETTER MIIM+  '\x1e903'# -> unI64 125221+  -- ADLAM CAPITAL LETTER BA+  '\x1e904'# -> unI64 125222+  -- ADLAM CAPITAL LETTER SINNYIIYHE+  '\x1e905'# -> unI64 125223+  -- ADLAM CAPITAL LETTER PE+  '\x1e906'# -> unI64 125224+  -- ADLAM CAPITAL LETTER BHE+  '\x1e907'# -> unI64 125225+  -- ADLAM CAPITAL LETTER RA+  '\x1e908'# -> unI64 125226+  -- ADLAM CAPITAL LETTER E+  '\x1e909'# -> unI64 125227+  -- ADLAM CAPITAL LETTER FA+  '\x1e90a'# -> unI64 125228+  -- ADLAM CAPITAL LETTER I+  '\x1e90b'# -> unI64 125229+  -- ADLAM CAPITAL LETTER O+  '\x1e90c'# -> unI64 125230+  -- ADLAM CAPITAL LETTER DHA+  '\x1e90d'# -> unI64 125231+  -- ADLAM CAPITAL LETTER YHE+  '\x1e90e'# -> unI64 125232+  -- ADLAM CAPITAL LETTER WAW+  '\x1e90f'# -> unI64 125233+  -- ADLAM CAPITAL LETTER NUN+  '\x1e910'# -> unI64 125234+  -- ADLAM CAPITAL LETTER KAF+  '\x1e911'# -> unI64 125235+  -- ADLAM CAPITAL LETTER YA+  '\x1e912'# -> unI64 125236+  -- ADLAM CAPITAL LETTER U+  '\x1e913'# -> unI64 125237+  -- ADLAM CAPITAL LETTER JIIM+  '\x1e914'# -> unI64 125238+  -- ADLAM CAPITAL LETTER CHI+  '\x1e915'# -> unI64 125239+  -- ADLAM CAPITAL LETTER HA+  '\x1e916'# -> unI64 125240+  -- ADLAM CAPITAL LETTER QAAF+  '\x1e917'# -> unI64 125241+  -- ADLAM CAPITAL LETTER GA+  '\x1e918'# -> unI64 125242+  -- ADLAM CAPITAL LETTER NYA+  '\x1e919'# -> unI64 125243+  -- ADLAM CAPITAL LETTER TU+  '\x1e91a'# -> unI64 125244+  -- ADLAM CAPITAL LETTER NHA+  '\x1e91b'# -> unI64 125245+  -- ADLAM CAPITAL LETTER VA+  '\x1e91c'# -> unI64 125246+  -- ADLAM CAPITAL LETTER KHA+  '\x1e91d'# -> unI64 125247+  -- ADLAM CAPITAL LETTER GBE+  '\x1e91e'# -> unI64 125248+  -- ADLAM CAPITAL LETTER ZAL+  '\x1e91f'# -> unI64 125249+  -- ADLAM CAPITAL LETTER KPO+  '\x1e920'# -> unI64 125250+  -- ADLAM CAPITAL LETTER SHA+  '\x1e921'# -> unI64 125251+  _ -> unI64 0
src-ghc/Data/JSString/Internal/Type.hs view
@@ -28,6 +28,10 @@                                     ) where -}++import Prelude ()+import Prelude.Compat+ import Control.DeepSeq  import Data.Coerce                    (coerce)@@ -41,7 +45,7 @@ import GHC.Exts                       (Char(..), ord#, andI#, (/=#), isTrue#)  -- | A wrapper around a JavaScript string-newtype JSString = JSString Text deriving(Show, Read, IsString, Monoid, Ord, Eq, Data, ToJSON, FromJSON, Typeable)+newtype JSString = JSString Text deriving(Show, Read, IsString, Semigroup, Monoid, Ord, Eq, Data, ToJSON, FromJSON, Typeable)  instance NFData JSString where rnf !_ = () 
+ src-ghc/GHCJS/Concurrent.hs view
@@ -0,0 +1,22 @@+{-# LANGUAGE DeriveDataTypeable #-}++module GHCJS.Concurrent ( OnBlocked(..)+                        , WouldBlockException(..)+                        ) where++import           GHCJS.Prim++import           Data.Data++{- |+     The runtime tries to run synchronous threads to completion. Sometimes it's+     not possible to continue running a thread, for example when the thread+     tries to take an empty 'MVar'. The runtime can then either throw a+     'WouldBlockException', aborting the blocking action, or continue the+     thread asynchronously.+ -}++data OnBlocked = ContinueAsync -- ^ continue the thread asynchronously if blocked+               | ThrowWouldBlock -- ^ throw 'WouldBlockException' if blocked+               deriving (Data, Typeable, Enum, Show, Eq, Ord)+
src-ghc/GHCJS/Foreign/Internal.hs view
@@ -27,26 +27,28 @@        (valueToBool) import Data.Typeable (Typeable) import GHCJS.Prim (isNull, isUndefined)+import System.IO.Unsafe (unsafePerformIO)+import Data.IORef (newIORef)  jsTrue :: JSVal-jsTrue = JSVal 3-{-# INLINE jsTrue #-}+jsTrue = JSVal . unsafePerformIO $ newIORef 3+{-# NOINLINE jsTrue #-}  jsFalse :: JSVal-jsFalse = JSVal 2-{-# INLINE jsFalse #-}+jsFalse = JSVal . unsafePerformIO $ newIORef 2+{-# NOINLINE jsFalse #-}  jsNull :: JSVal-jsNull = JSVal 0-{-# INLINE jsNull #-}+jsNull = JSVal . unsafePerformIO $ newIORef 0+{-# NOINLINE jsNull #-}  toJSBool :: Bool -> JSVal-toJSBool b = JSVal $ if b then 3 else 2-{-# INLINE toJSBool #-}+toJSBool b = JSVal . unsafePerformIO . newIORef $ if b then 3 else 2+{-# NOINLINE toJSBool #-}  jsUndefined :: JSVal-jsUndefined = JSVal 1-{-# INLINE jsUndefined #-}+jsUndefined = JSVal . unsafePerformIO $ newIORef 1+{-# NOINLINE jsUndefined #-}  isTruthy :: JSVal -> GHCJSPure Bool isTruthy = GHCJSPure . valueToBool
src-ghc/GHCJS/Marshal/Internal.hs view
@@ -34,7 +34,7 @@ import qualified JavaScript.Object.Internal as OI (Object(..), create, setProp, getProp) import qualified JavaScript.Array.Internal as AI (SomeJSArray(..), create, push, read, fromListIO, toListIO) -import           Language.Javascript.JSaddle.Types (JSM, MutableJSArray, GHCJSPure(..), ghcjsPure, ghcjsPureMap, JSadddleHasCallStack)+import           Language.Javascript.JSaddle.Types (JSM, MutableJSArray, GHCJSPure(..), ghcjsPure, ghcjsPureMap, JSaddleHasCallStack) import           Language.Javascript.JSaddle.String (textToStr)  data Purity = PureShared    -- ^ conversion is pure even if the original value is shared@@ -61,7 +61,7 @@   default toJSVal :: (Generic a, GToJSVal (Rep a ())) => a -> JSM JSVal   toJSVal = toJSVal_generic id -fromJustWithStack :: JSadddleHasCallStack => Maybe a -> a+fromJustWithStack :: JSaddleHasCallStack => Maybe a -> a fromJustWithStack Nothing = error "fromJSValUnchecked: fromJSVal result was Nothing" fromJustWithStack (Just x) = x @@ -69,7 +69,7 @@   fromJSVal :: JSVal -> JSM (Maybe a)  #if MIN_VERSION_base(4,9,0) && defined(JSADDLE_HAS_CALL_STACK)-  fromJSValUnchecked :: JSadddleHasCallStack => JSVal -> JSM a+  fromJSValUnchecked :: JSaddleHasCallStack => JSVal -> JSM a #ifdef CHECK_UNCHECKED   fromJSValUnchecked v = fromJSVal v >>= \case                              Nothing -> error "fromJSValUnchecked: fromJSVal result was Nothing"@@ -87,7 +87,7 @@   fromJSValListOf = fmap sequence . (mapM fromJSVal <=< AI.toListIO . coerce) -- fixme should check that it's an array  #if MIN_VERSION_base(4,9,0) && defined(JSADDLE_HAS_CALL_STACK)-  fromJSValUncheckedListOf :: JSadddleHasCallStack => JSVal -> JSM [a]+  fromJSValUncheckedListOf :: JSaddleHasCallStack => JSVal -> JSM [a] #else   fromJSValUncheckedListOf :: JSVal -> JSM [a] #endif
src-ghc/GHCJS/Prim/Internal.hs view
@@ -14,9 +14,9 @@ import           Data.Typeable (Typeable) import           Unsafe.Coerce (unsafeCoerce) -import           Data.Aeson (ToJSON(..), FromJSON(..))- import qualified GHC.Exception as Ex+import Data.IORef (newIORef, IORef)+import System.IO.Unsafe (unsafePerformIO)  -- A reference to a particular JavaScript value inside the JavaScript context type JSValueRef = Int64@@ -25,7 +25,7 @@   JSVal is a boxed type that can be used as FFI   argument or result. -}-newtype JSVal = JSVal JSValueRef deriving(Show, ToJSON, FromJSON)+newtype JSVal = JSVal (IORef JSValueRef)  instance NFData JSVal where   rnf x = x `seq` ()@@ -49,8 +49,8 @@   return (JSException (unsafeCoerce ref) "")  jsNull :: JSVal-jsNull = JSVal 0-{-# INLINE jsNull #-}+jsNull = JSVal . unsafePerformIO $ newIORef 0+{-# NOINLINE jsNull #-}  {- | If a synchronous thread tries to do something that can only      be done asynchronously, and the thread is set up to not
src-ghc/GHCJS/Types.hs view
@@ -27,19 +27,21 @@ import GHC.Types import GHC.Prim import GHC.Ptr+import GHC.IORef+import GHC.IO.Unsafe (unsafePerformIO)  import Control.DeepSeq import Unsafe.Coerce -type Ref# = Int64+type Ref# = IORef Int64  mkRef :: Ref# -> JSVal mkRef = JSVal {-# INLINE mkRef #-}  nullRef :: JSVal-nullRef = JSVal 0-{-# INLINE nullRef #-}+nullRef = JSVal . unsafePerformIO $ newIORef 0+{-# NOINLINE nullRef #-}  --toPtr :: JSVal -> Ptr a --toPtr (JSVal x) = unsafeCoerce (Ptr' x 0#)
src-ghc/JavaScript/Array.hs view
@@ -48,7 +48,7 @@        (JSM, JSVal, SomeJSArray(..), JSArray,         MutableJSArray, GHCJSPure(..)) import Control.Lens.Operators ((^.))-import Language.Javascript.JSaddle.Object (js2, js0, (##), js1, js)+import Language.Javascript.JSaddle.Object (js2, js0, (<##), js1, js) import Language.Javascript.JSaddle.Value (valToNumber) import JavaScript.Array.Internal (create, fromList, fromListIO, toList, toListIO, index, read, push) @@ -69,7 +69,7 @@ {-# INLINE append #-}  write :: Int -> JSVal -> MutableJSArray -> JSM ()-write n e (SomeJSArray x) = void $ (x ## n) e+write n e (SomeJSArray x) = void $ (x <## n) e {-# INLINE write #-}  pop :: MutableJSArray -> JSM JSVal
src-ghc/JavaScript/Array/Internal.hs view
@@ -21,8 +21,6 @@ import Language.Javascript.JSaddle.Types (JSM, SomeJSArray(..), JSArray, MutableJSArray, STJSArray, Object(..), GHCJSPure(..)) import Language.Javascript.JSaddle.Native.Internal        (newArray, getPropertyByName, getPropertyAtIndex, callAsFunction, valueToNumber)-import Language.Javascript.JSaddle.Run-       (Command(..), Result(..), AsyncCommand(..), sendCommand, sendLazyCommand)  create :: JSM MutableJSArray create = SomeJSArray <$> newArray []
src-ghc/JavaScript/TypedArray/DataView/Internal.hs view
@@ -1,5 +1,4 @@ {-# LANGUAGE CPP #-}-{-# LANGUAGE JavaScriptFFI #-} {-# LANGUAGE ForeignFunctionInterface #-} {-# LANGUAGE UnliftedFFITypes #-} {-# LANGUAGE GHCForeignImportPrim #-}
src-ghc/JavaScript/TypedArray/Internal.hs view
@@ -3,6 +3,7 @@ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE PolyKinds #-}+{-# LANGUAGE TypeOperators #-}  module JavaScript.TypedArray.Internal where 
src/Language/Javascript/JSaddle.hs view
@@ -9,7 +9,7 @@ -- | This package provides an EDSL for calling JavaScript that --   can be used both from GHCJS and GHC.  When using GHC --   the application is run using Warp and WebSockets to---   drive a small JavaScipt helper.+--   drive a small JavaScript helper. -----------------------------------------------------------------------------  module Language.Javascript.JSaddle (@@ -35,10 +35,10 @@   --   --   Where it makes sense code examples are given in two forms.  One   --   that uses 'eval' to run a purely JavaScript version and one that-  --   uses more of the JSaddle EDSL feature being demonstated.+  --   uses more of the JSaddle EDSL feature being demonstrated.    -- * Calling Haskell from JavaScript-  -- | You can call back into haskell from JavaScript using 'fun' to+  -- | You can call back into Haskell from JavaScript using 'fun' to   --   convert a Haskell function in the JSM monad into a javascript   --   value. @@ -52,8 +52,8 @@   --   and the server will run the Haskell code.  The JSaddle parts will   --   be executed by sending commands back to the browser. -  --   Although the code JavaScript code is executed in the the strict order-  --   set out by the EDSL it done asynchonously to the Haskell code.+  --   Although the JavaScript code is executed in the strict order+  --   set out by the EDSL it is done asynchronously to the Haskell code.   --   This improves the performance by reducing the number of round trips   --   needed between the Haskell and JavaScript code. 
+ src/Language/Javascript/JSaddle/Debug.hs view
@@ -0,0 +1,48 @@+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+-----------------------------------------------------------------------------+--+-- Module      :  Language.Javascript.JSaddle.WebSockets+-- Copyright   :  (c) Hamish Mackenzie+-- License     :  MIT+--+-- Maintainer  :  Hamish Mackenzie <Hamish.K.Mackenzie@googlemail.com>+--+-- |+--+-----------------------------------------------------------------------------++module Language.Javascript.JSaddle.Debug (+    contexts+  , addContext+  , removeContext+  , runOnAll+  , runOnAll_+) where++import Language.Javascript.JSaddle+       (runJSM, askJSM, JSM, JSContextRef(..))+import Data.IORef (readIORef, atomicModifyIORef', newIORef, IORef)+import System.IO.Unsafe (unsafePerformIO)+import Data.Monoid ((<>))+import Control.Monad.IO.Class (MonadIO(..))+import Data.Int (Int64)++contexts :: IORef [JSContextRef]+contexts = unsafePerformIO $ newIORef []+{-# NOINLINE contexts #-}++addContext :: JSM ()+addContext = do+    ctx <- askJSM+    liftIO $ atomicModifyIORef' contexts $ \c -> (c <> [ctx], ())++removeContext :: MonadIO m => Int64 -> m ()+removeContext cid =+    liftIO $ atomicModifyIORef' contexts $ \c -> (filter ((/= cid) . contextId) c, ())++runOnAll :: MonadIO m => JSM a -> m [a]+runOnAll f = liftIO (readIORef contexts) >>= mapM (runJSM f)++runOnAll_ :: MonadIO m => JSM a -> m ()+runOnAll_ f = liftIO (readIORef contexts) >>= mapM_ (runJSM f)
src/Language/Javascript/JSaddle/Evaluate.hs view
@@ -50,7 +50,12 @@      -> JSM JSVal #ifdef ghcjs_HOST_OS eval script = liftIO $ js_eval (toJSString script)-foreign import javascript unsafe "$r = eval($1);"+foreign import javascript safe+#if __GLASGOW_HASKELL__ >= 900+  "(($1) => { return eval($1); })"+#else+  "$r = eval($1);"+#endif     js_eval :: JSString -> IO JSVal #else eval = evaluateScript . toJSString
src/Language/Javascript/JSaddle/Exception.hs view
@@ -19,7 +19,11 @@  import qualified Control.Exception as E (Exception) #ifdef ghcjs_HOST_OS+#if __GLASGOW_HASKELL__ >= 900+import GHC.JS.Prim (JSVal)+#else import GHCJS.Prim (JSVal)+#endif #else import GHCJS.Prim.Internal (JSVal) #endif
src/Language/Javascript/JSaddle/Monad.hs view
@@ -38,13 +38,12 @@   , bracket ) where -import Prelude hiding (read) #ifndef ghcjs_HOST_OS-import Control.Monad.Trans.Reader (runReaderT, ask, ReaderT(..))+import Control.Monad.Trans.Reader (runReaderT, ask) #endif import Control.Monad.IO.Class (MonadIO(..))-import qualified Control.Exception as E (Exception, catch, bracket)-import Language.Javascript.JSaddle.Types (JSM(..), MonadJSM, liftJSM, JSContextRef(..))+import Control.Monad.Catch (catch, bracket)+import Language.Javascript.JSaddle.Types (JSM(..), MonadJSM, liftJSM, JSContextRef) import Language.Javascript.JSaddle.Run (syncPoint, syncAfter, waitForAnimationFrame, nextAnimationFrame)  -- | Gets the JavaScript context from the monad@@ -66,25 +65,3 @@ -- | Alternative version of 'runJSM' runJSaddle :: MonadIO m => JSContextRef -> JSM a -> m a runJSaddle = flip runJSM----- | Wrapped version of 'E.catch' that runs in a MonadIO that works---   a bit better with 'JSM'-catch :: E.Exception e-      => JSM b-      -> (e -> JSM b)-      -> JSM b-t `catch` c = do-    r <- askJSM-    liftIO (runJSM (syncAfter t) r `E.catch` \e -> runJSM (c e) r)---- | Wrapped version of 'E.bracket' that runs in a MonadIO that works---   a bit better with 'JSM'-bracket :: JSM a -> (a -> JSM b) -> (a -> JSM c) -> JSM c-bracket aquire release f = do-    r <- askJSM-    liftIO $ E.bracket-        (runJSM (syncAfter aquire) r)-        (\x -> runJSM (syncAfter $ release x) r)-        (\x -> runJSM (syncAfter $ f x) r)-
src/Language/Javascript/JSaddle/Native/Internal.hs view
@@ -1,3 +1,6 @@+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE MagicHash #-}+{-# LANGUAGE UnboxedTuples #-} ----------------------------------------------------------------------------- -- -- Module      :  Language.Javascript.JSaddle.Native@@ -27,7 +30,8 @@   , callAsFunction   , callAsConstructor   , newEmptyObject-  , newCallback+  , newAsyncCallback+  , newSyncCallback   , newArray   , evaluateScript   , deRefVal@@ -44,7 +48,6 @@ ) where  import Control.Monad.IO.Class (MonadIO(..))-import Control.Monad.Primitive (touch)  import Data.Aeson (Value) @@ -54,32 +57,36 @@         JSStringReceived(..), JSStringForSend(..), JSObjectForSend(..)) import Language.Javascript.JSaddle.Monad (askJSM) import Language.Javascript.JSaddle.Run-       (Command(..), AsyncCommand(..), Result(..), sendCommand,+       (Command(..), Result(..), sendCommand,         sendAsyncCommand, sendLazyCommand, wrapJSVal)+import GHC.IORef (IORef(..), readIORef)+import GHC.STRef (STRef(..))+import GHC.IO (IO(..))+import GHC.Base (touch#)  wrapJSString :: MonadIO m => JSStringReceived -> m JSString wrapJSString (JSStringReceived ref) = return $ JSString ref +touchIORef :: IORef a -> IO ()+touchIORef (IORef (STRef r#)) = IO $ \s -> case touch# r# s of s' -> (# s', () #)+ withJSVal :: MonadIO m => JSVal -> (JSValueForSend -> m a) -> m a-withJSVal v@(JSVal ref) f =- do result <- f (JSValueForSend ref)-    liftIO $ touch v+withJSVal (JSVal ref) f = do+    result <- (f . JSValueForSend) =<< liftIO (readIORef ref)+    liftIO $ touchIORef ref     return result  withJSVals :: MonadIO m => [JSVal] -> ([JSValueForSend] -> m a) -> m a withJSVals v f =- do result <- f (map (\(JSVal ref) -> JSValueForSend ref) v)-    liftIO $ mapM_ touch v+ do result <- f =<< mapM (\(JSVal ref) -> liftIO $ JSValueForSend <$> readIORef ref) v+    liftIO $ mapM_ (\(JSVal ref) -> touchIORef ref) v     return result  withObject :: MonadIO m => Object -> (JSObjectForSend -> m a) -> m a withObject (Object o) f = withJSVal o (f . JSObjectForSend)  withJSString :: MonadIO m => JSString -> (JSStringForSend -> m a) -> m a-withJSString v@(JSString ref) f =- do result <- f (JSStringForSend ref)-    liftIO $ touch v-    return result+withJSString (JSString ref) f = f (JSStringForSend ref)  setPropertyByName :: JSString -> JSVal -> Object -> JSM () setPropertyByName name val this =@@ -136,14 +143,22 @@ newEmptyObject = Object <$> sendLazyCommand NewEmptyObject {-# INLINE newEmptyObject #-} -newCallback :: JSCallAsFunction -> JSM Object-newCallback f = do-    object <- Object <$> sendLazyCommand NewCallback+newAsyncCallback :: JSCallAsFunction -> JSM Object+newAsyncCallback f = do+    object <- Object <$> sendLazyCommand NewAsyncCallback     add <- addCallback <$> askJSM     liftIO $ add object f     return object-{-# INLINE newCallback #-}+{-# INLINE newAsyncCallback #-} +newSyncCallback :: JSCallAsFunction -> JSM Object+newSyncCallback f = do+    object <- Object <$> sendLazyCommand NewSyncCallback+    add <- addCallback <$> askJSM+    liftIO $ add object f+    return object+{-# INLINE newSyncCallback #-}+ newArray :: [JSVal] -> JSM JSVal newArray xs = withJSVals xs $ \xs' -> sendLazyCommand (NewArray xs') {-# INLINE newArray #-}@@ -157,59 +172,68 @@ {-# INLINE deRefVal #-}  valueToBool :: JSVal -> JSM Bool-valueToBool (JSVal 0) = return False -- null-valueToBool (JSVal 1) = return False -- undefined-valueToBool (JSVal 2) = return False -- false-valueToBool (JSVal 3) = return True  -- true-valueToBool v = withJSVal v $ \rval -> do-    ~(ValueToBoolResult result) <- sendCommand (ValueToBool rval)-    return result+valueToBool v@(JSVal ref) = liftIO (readIORef ref) >>= \case+    0 -> return False -- null+    1 -> return False -- undefined+    2 -> return False -- false+    3 -> return True  -- true+    _ -> withJSVal v $ \rval -> do+        (ValueToBoolResult result) <- sendCommand (ValueToBool rval)+        return result {-# INLINE valueToBool #-}  valueToNumber :: JSVal -> JSM Double valueToNumber value =     withJSVal value $ \rval -> do-        ~(ValueToNumberResult result) <- sendCommand (ValueToNumber rval)+        (ValueToNumberResult result) <- sendCommand (ValueToNumber rval)         return result {-# INLINE valueToNumber #-}  valueToString :: JSVal -> JSM JSString valueToString value = withJSVal value $ \rval -> do-    ~(ValueToStringResult result) <- sendCommand (ValueToString rval)+    (ValueToStringResult result) <- sendCommand (ValueToString rval)     wrapJSString result {-# INLINE valueToString #-}  valueToJSON :: JSVal -> JSM JSString valueToJSON value = withJSVal value $ \rval -> do-    ~(ValueToJSONResult result) <- sendCommand (ValueToJSON rval)+    (ValueToJSONResult result) <- sendCommand (ValueToJSON rval)     wrapJSString result {-# INLINE valueToJSON #-}  valueToJSONValue :: JSVal -> JSM Value valueToJSONValue value = withJSVal value $ \rval -> do-    ~(ValueToJSONValueResult result) <- sendCommand (ValueToJSONValue rval)+    (ValueToJSONValueResult result) <- sendCommand (ValueToJSONValue rval)     return result {-# INLINE valueToJSONValue #-}  isNull :: JSVal -> JSM Bool-isNull (JSVal 0) = return True-isNull v = withJSVal v $ \rval -> do-    ~(IsNullResult result) <- sendCommand $ IsNull rval-    return result+isNull v@(JSVal ref) = liftIO (readIORef ref) >>= \case+    0 -> return True  -- null+    1 -> return False -- undefined+    2 -> return False -- false+    3 -> return False -- true+    _ -> withJSVal v $ \rval -> do+        (IsNullResult result) <- sendCommand $ IsNull rval+        return result {-# INLINE isNull #-}  isUndefined :: JSVal -> JSM Bool-isUndefined (JSVal 1) = return True-isUndefined v = withJSVal v $ \rval -> do-    ~(IsUndefinedResult result) <- sendCommand $ IsUndefined rval-    return result+isUndefined v@(JSVal ref) = liftIO (readIORef ref) >>= \case+    0 -> return False -- null+    1 -> return True  -- undefined+    2 -> return False -- false+    3 -> return False -- true+    _ -> withJSVal v $ \rval -> do+        (IsUndefinedResult result) <- sendCommand $ IsUndefined rval+        return result {-# INLINE isUndefined #-}  strictEqual :: JSVal -> JSVal -> JSM Bool strictEqual a b =     withJSVal a $ \aref ->         withJSVal b $ \bref -> do-            ~(StrictEqualResult result) <- sendCommand $ StrictEqual aref bref+            (StrictEqualResult result) <- sendCommand $ StrictEqual aref bref             return result {-# INLINE strictEqual #-} @@ -217,13 +241,13 @@ instanceOf value constructor =     withJSVal value $ \rval ->         withObject constructor $ \c' -> do-            ~(InstanceOfResult result) <- sendCommand $ InstanceOf rval c'+            (InstanceOfResult result) <- sendCommand $ InstanceOf rval c'             return result {-# INLINE instanceOf #-}  propertyNames :: Object -> JSM [JSString] propertyNames this =     withObject this $ \rthis -> do-        ~(PropertyNamesResult result) <- sendCommand $ PropertyNames rthis+        (PropertyNamesResult result) <- sendCommand $ PropertyNames rthis         mapM wrapJSString result {-# INLINE propertyNames #-}
+ src/Language/Javascript/JSaddle/Null.hs view
@@ -0,0 +1,56 @@+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+-----------------------------------------------------------------------------+--+-- Module      :  Language.Javascript.JSaddle.WebSockets+-- Copyright   :  (c) Hamish Mackenzie+-- License     :  MIT+--+-- Maintainer  :  Hamish Mackenzie <Hamish.K.Mackenzie@googlemail.com>+--+-- |+--+-----------------------------------------------------------------------------++module Language.Javascript.JSaddle.Null (+    run+) where++import Language.Javascript.JSaddle.Types+       (BatchResults(..), JSM, JSStringReceived(..), Batch(..),+        Results(..), Result(..), Command(..))+import Control.Concurrent.Chan (readChan, writeChan, newChan)+import Language.Javascript.JSaddle.Run (runJavaScript)+import Control.Concurrent (forkIO)+import Control.Monad (forever)+import Data.Aeson (Value(..))+import Data.Maybe (mapMaybe)++-- | This is for performance testing JSaddle code that does not need to+-- to read anything back from the JavaScript context.+-- Anthing that does try to read will get JS null, 0 or "" back (depending+-- on how the value is read).+run :: JSM () -> IO ()+run f = do+    batches <- newChan+    (processResult, _processSyncResult, start) <- runJavaScript (writeChan batches) f+    _ <- forkIO $ forever $+        readChan batches >>= \case+            Batch commands _ batchNumber ->+                processResult $ BatchResults batchNumber . Success [] $ mapMaybe (\case+                        Left _ -> Nothing+                        Right command -> Just $+                            case command of+                                DeRefVal _ -> DeRefValResult 0 ""+                                ValueToBool _ -> ValueToBoolResult False+                                ValueToNumber _ -> ValueToNumberResult 0+                                ValueToString _ -> ValueToStringResult (JSStringReceived "")+                                ValueToJSON _ -> ValueToJSONResult (JSStringReceived "null")+                                ValueToJSONValue _ -> ValueToJSONValueResult Null+                                IsNull _ -> IsNullResult True+                                IsUndefined _ -> IsUndefinedResult False+                                StrictEqual _ _ -> StrictEqualResult False+                                InstanceOf _ _ -> InstanceOfResult False+                                PropertyNames _ -> PropertyNamesResult []+                                Sync -> SyncResult) commands+    start
src/Language/Javascript/JSaddle/Object.hs view
@@ -66,6 +66,7 @@   -- * Calling Haskell From JavaScript   , Function(..)   , function+  , asyncFunction   , freeFunction   , fun   , JSCallAsFunction@@ -101,8 +102,12 @@ import Data.Coerce (coerce) #ifdef ghcjs_HOST_OS import GHCJS.Types (nullRef)+#if __GLASGOW_HASKELL__ >= 900+import GHC.JS.Foreign.Callback+#else import GHCJS.Foreign.Callback-       (releaseCallback, syncCallback2, OnBlocked(..), Callback)+#endif+       (releaseCallback, syncCallback2, asyncCallback2, OnBlocked(..), Callback) import GHCJS.Marshal (ToJSVal(..)) import JavaScript.Array (MutableJSArray) import qualified JavaScript.Array as Array (toListIO, fromListIO)@@ -115,12 +120,13 @@ #else import GHCJS.Marshal.Internal (ToJSVal(..)) import Language.Javascript.JSaddle.Native-       (newCallback, callAsFunction, callAsConstructor)+       (newAsyncCallback, newSyncCallback, callAsFunction, callAsConstructor) import Language.Javascript.JSaddle.Monad (askJSM, JSM) import Language.Javascript.JSaddle.Types-       (JSString, Object(..), SomeJSArray(..),-        JSVal(..), JSCallAsFunction, JSContextRef(..))+       (JSValueForSend(..), AsyncCommand(..), JSString, Object(..),+        SomeJSArray(..), JSVal(..), JSCallAsFunction, JSContextRef(..)) import JavaScript.Object.Internal (create, listProps)+import Language.Javascript.JSaddle.Run (sendAsyncCommand) #endif import JavaScript.Array.Internal (fromListIO) import Language.Javascript.JSaddle.Value (valToObject)@@ -130,6 +136,8 @@ import Control.Monad.IO.Class (MonadIO(..)) import Language.Javascript.JSaddle.Properties import Control.Lens (IndexPreservingGetter, to)+import Data.IORef (newIORef, readIORef)+import System.IO.Unsafe (unsafePerformIO)  -- $setup -- >>> import Control.Concurrent.MVar (newEmptyMVar, takeMVar, putMVar)@@ -140,7 +148,7 @@ -- >>> import Control.Lens.Operators ((^.)) -- >>> import qualified Data.Text as T (unpack) --- | Object can be made by evaluating a fnction in 'JSM' as long+-- | Object can be made by evaluating a function in 'JSM' as long --   as it returns something we can make into a Object. instance MakeObject v => MakeObject (JSM v) where     makeObject v = v >>= makeObject@@ -184,7 +192,7 @@ js :: (MakeObject s, ToJSString name)    => name          -- ^ Name of the property to find    -> IndexPreservingGetter s (JSM JSVal)-js name = to (!name)+js name = to (! name)  -- | Makes a setter for a particular property name. --@@ -435,9 +443,22 @@ #endif  --- ^ Make a JavaScript function object that wraps a Haskell function.+#ifdef ghcjs_HOST_OS+-- Do not replace `function ()` with `=>` as `arguments` will not work+foreign import javascript unsafe+#if __GLASGOW_HASKELL__ >= 900+  "(($1) => { return function () { $1(this, arguments); }; })"+#else+  "$r = function () { $1(this, arguments); }"+#endif+    makeFunctionWithCallback :: Callback (JSVal -> JSVal -> IO ()) -> IO Object+#endif++-- | Make a JavaScript function object that wraps a Haskell function.+-- Calls made to the function will be synchronous where possible+-- (on GHCJS it uses on `syncCallback2` with `ContinueAsync`). function :: JSCallAsFunction -- ^ Haskell function to call-         -> JSM Function       -- ^ Returns a JavaScript function object that will+         -> JSM Function     -- ^ Returns a JavaScript function object that will                              --   call the Haskell one when it is called #ifdef ghcjs_HOST_OS function f = do@@ -445,22 +466,44 @@         rargs <- Array.toListIO (coerce args)         f this this rargs -- TODO pass function object through     Function callback <$> makeFunctionWithCallback callback-foreign import javascript unsafe "$r = function () { $1(this, arguments); }"-    makeFunctionWithCallback :: Callback (JSVal -> JSVal -> IO ()) -> IO Object #else function f = do-    object <- newCallback f+    object <- newSyncCallback f     return $ Function object #endif +-- | Make a JavaScript function object that wraps a Haskell function.+-- Calls made to the function will be asynchronous.+asyncFunction :: JSCallAsFunction -- ^ Haskell function to call+              -> JSM Function     -- ^ Returns a JavaScript function object that will+                                  --   call the Haskell one when it is called+#ifdef ghcjs_HOST_OS+asyncFunction f = do+    callback <- asyncCallback2 $ \this args -> do+        rargs <- Array.toListIO (coerce args)+        f this this rargs -- TODO pass function object through+    Function callback <$> makeFunctionWithCallback callback+#else+asyncFunction f = do+    object <- newAsyncCallback f+    return $ Function object+#endif+ freeFunction :: Function -> JSM () #ifdef ghcjs_HOST_OS freeFunction (Function callback _) = liftIO $     releaseCallback callback #else-freeFunction (Function object) = do-    free <- freeCallback <$> askJSM-    liftIO $ free object+freeFunction (Function (Object (JSVal objectRef))) = do+    -- By now the callback should ideally have been removed from whatever+    -- events it was added to.+    -- In case a call to the callback is still pending (perhaps just being sent+    -- on the JS side) we use FreeCallback to queue the callback to be freed when+    -- the next batch of results comes back fro JS.+    -- We are not using withJSVal to keep JS value "alive" because FreeCallback+    -- does not use the it.+    n <- liftIO $ readIORef objectRef+    sendAsyncCommand (FreeCallback (JSValueForSend n)) #endif  instance ToJSVal Function where@@ -493,14 +536,18 @@     Object . coerce <$> fromListIO rargs  -- | JavaScript's global object-global :: Object #ifdef ghcjs_HOST_OS-global = js_window-foreign import javascript unsafe "$r = window"-    js_window :: Object+foreign import javascript unsafe+#if __GLASGOW_HASKELL__ >= 900+  "(() => { return globalThis; })" #else-global = Object (JSVal 4)+  "$r = globalThis" #endif+    global :: Object+#else+global :: Object+global = Object . JSVal . unsafePerformIO $ newIORef 4+#endif  -- | Get a list containing the property names present on a given object -- >>> testJSaddle $ show . map strToText <$> propertyNames obj@@ -524,7 +571,12 @@ objCallAsFunction f this args = do     rargs <- makeArgs args >>= liftIO . Array.fromListIO     liftIO $ js_apply f this rargs-foreign import javascript unsafe "$r = $1.apply($2, $3)"+foreign import javascript safe+#if __GLASGOW_HASKELL__ >= 900+  "(($1,$2,$3) => { return $1.apply($2, $3); })"+#else+  "$r = $1.apply($2, $3)"+#endif     js_apply :: Object -> Object -> MutableJSArray -> IO JSVal #else objCallAsFunction f this args = do@@ -544,8 +596,34 @@ objCallAsConstructor f args = do     rargs <- makeArgs args >>= liftIO . Array.fromListIO     liftIO $ js_new f rargs-foreign import javascript unsafe "\+foreign import javascript safe+#if __GLASGOW_HASKELL__ >= 900+  "(($1,$2) => {\         switch($2.length) {\+            case 0 : return new $1();\+            case 1 : return new $1($2[0]);\+            case 2 : return new $1($2[0],$2[1]);\+            case 3 : return new $1($2[0],$2[1],$2[2]);\+            case 4 : return new $1($2[0],$2[1],$2[2],$2[3]);\+            case 5 : return new $1($2[0],$2[1],$2[2],$2[3],$2[4]);\+            case 6 : return new $1($2[0],$2[1],$2[2],$2[3],$2[4],$2[5]);\+            case 7 : return new $1($2[0],$2[1],$2[2],$2[3],$2[4],$2[5],$2[6]);\+            default:\+                var temp = function() {\+                    ret = $1.apply(this, $2);\+                };\+                temp.prototype = $1.prototype;\+                var i = new temp();\+                if(ret instanceof Object) {\+                    return ret;\+                } else {\+                    i.constructor = $1;\+                    return i;\+                }\+        }\+  })"+#else+       "switch($2.length) {\             case 0 : $r = new $1(); break;\             case 1 : $r = new $1($2[0]); break;\             case 2 : $r = new $1($2[0],$2[1]); break;\@@ -567,6 +645,7 @@                     $r = i;\                 }\         }"+#endif     js_new :: Object -> MutableJSArray -> IO JSVal #else objCallAsConstructor f args = do@@ -580,5 +659,5 @@ #ifdef ghcjs_HOST_OS nullObject = Object nullRef #else-nullObject = Object (JSVal 0)+nullObject = Object . JSVal . unsafePerformIO $ newIORef 0 #endif
src/Language/Javascript/JSaddle/Properties.hs view
@@ -60,7 +60,12 @@                       -> JSM JSVal -- ^ returns the property value. #ifdef ghcjs_HOST_OS objGetPropertyAtIndex this index = js_tryIndex index this-foreign import javascript unsafe "$r=$2[$1]"+foreign import javascript unsafe+#if __GLASGOW_HASKELL__ >= 900+  "(($1,$2) => { return $2[$1]; })"+#else+  "$r=$2[$1]"+#endif     js_tryIndex :: Int -> Object -> IO JSVal #else objGetPropertyAtIndex this index =@@ -87,7 +92,12 @@ objSetPropertyAtIndex this index val = do     vref <- toJSVal val     js_trySetAtIndex index this vref-foreign import javascript unsafe "$2[$1]=$3"+foreign import javascript unsafe+#if __GLASGOW_HASKELL__ >= 900+  "(($1,$2,$3) => { return $2[$1]=$3; })"+#else+  "$2[$1]=$3"+#endif     js_trySetAtIndex :: Int -> Object -> JSVal -> IO () #else objSetPropertyAtIndex this index val =
src/Language/Javascript/JSaddle/Run.hs view
@@ -1,6 +1,9 @@+{-# LANGUAGE BangPatterns #-} {-# LANGUAGE CPP #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE MagicHash #-}+{-# LANGUAGE UnboxedTuples #-} ----------------------------------------------------------------------------- -- -- Module      :  Language.Javascript.JSaddle.Run@@ -33,41 +36,51 @@ #endif ) where +import Prelude ()+import Prelude.Compat+ #ifdef ghcjs_HOST_OS-import Language.Javascript.JSaddle.Types (JSM)+import Language.Javascript.JSaddle.Types (JSM, syncPoint, syncAfter) import qualified JavaScript.Web.AnimationFrame as GHCJS        (waitForAnimationFrame) #else-import Control.Exception (throwIO)-import Control.Monad (void, when, forever, zipWithM_)+import Control.Exception (throwIO, evaluate)+import Control.Monad (void, when, zipWithM_) import Control.Monad.IO.Class (MonadIO(..)) import Control.Monad.Trans.Reader (ask, runReaderT) import Control.Monad.STM (atomically)-import Control.Concurrent (forkIO)+import Control.Concurrent (forkIO, myThreadId) import Control.Concurrent.STM.TChan        (tryReadTChan, TChan, readTChan, writeTChan, newTChanIO) import Control.Concurrent.STM.TVar        (writeTVar, readTVar, readTVarIO, modifyTVar', newTVarIO) import Control.Concurrent.MVar-       (MVar, MVar, putMVar, takeMVar, newEmptyMVar)+       (tryTakeMVar, MVar, putMVar, takeMVar, newMVar, newEmptyMVar, readMVar, modifyMVar)  import System.IO.Unsafe (unsafeInterleaveIO)-import System.Mem.Weak (addFinalizer)+import System.Random -import Data.Monoid ((<>))-import qualified Data.Text as T (unpack)+import GHC.Base (IO(..), mkWeak#)+import GHC.Conc (ThreadId(..))+import qualified Data.Text as T (unpack, pack) import qualified Data.Map as M (lookup, delete, insert, empty, size)+import qualified Data.Set as S (empty, member, insert, delete) import Data.Time.Clock (getCurrentTime,diffUTCTime)-import Data.IORef (newIORef, atomicWriteIORef, readIORef)+import Data.IORef+       (mkWeakIORef, newIORef, atomicWriteIORef, readIORef)  import Language.Javascript.JSaddle.Types-       (Command(..), AsyncCommand(..), Result(..), Results(..), JSContextRef(..), JSVal(..),-        Object(..), JSValueReceived(..), JSM(..), Batch(..), JSValueForSend(..))+       (Command(..), AsyncCommand(..), Result(..), BatchResults(..), Results(..), JSContextRef(..), JSVal(..),+        Object(..), JSValueReceived(..), JSM(..), Batch(..), JSValueForSend(..), syncPoint, syncAfter, sendCommand) import Language.Javascript.JSaddle.Exception (JSException(..))--- import Language.Javascript.JSaddle.Native.Internal (wrapJSVal) import Control.DeepSeq (deepseq)+#if MIN_VERSION_base(4,11,0)+import GHC.Stats (getRTSStatsEnabled, getRTSStats, RTSStats(..), gcdetails_live_bytes, gc)+#else import GHC.Stats (getGCStatsEnabled, getGCStats, GCStats(..)) #endif+import Data.Foldable (forM_)+#endif  -- | Enable (or disable) JSaddle logging enableLogging :: Bool -> JSM ()@@ -79,27 +92,6 @@     liftIO $ f v #endif --- | Forces execution of pending asyncronous code-syncPoint :: JSM ()-#ifdef ghcjs_HOST_OS-syncPoint = return ()-#else-syncPoint = do-    SyncResult <- sendCommand Sync-    return ()-#endif---- | Forces execution of pending asyncronous code after performing `f`-syncAfter :: JSM a -> JSM a-#ifdef ghcjs_HOST_OS-syncAfter = id-#else-syncAfter f = do-    result <- f-    syncPoint-    return result-#endif- -- | On GHCJS this is 'JavaScript.Web.AnimationFrame.waitForAnimationFrame'. --   On GHC it will delay the execution of the current batch of asynchronous --   command when they are sent to JavaScript.  It will not delay the Haskell@@ -125,17 +117,12 @@     syncAfter (f t)  #ifndef ghcjs_HOST_OS-sendCommand :: Command -> JSM Result-sendCommand cmd = do-    s <- doSendCommand <$> JSM ask-    liftIO $ s cmd- sendLazyCommand :: (JSValueForSend -> AsyncCommand) -> JSM JSVal sendLazyCommand cmd = do     nextRefTVar <- nextRef <$> JSM ask     n <- liftIO . atomically $ do         n <- subtract 1 <$> readTVar nextRefTVar-        writeTVar nextRefTVar n+        writeTVar nextRefTVar $! n         return n     s <- doSendAsyncCommand <$> JSM ask     liftIO $ s (cmd $ JSValueForSend n)@@ -146,66 +133,112 @@     s <- doSendAsyncCommand <$> JSM ask     liftIO $ s cmd -runJavaScript :: (Batch -> IO ()) -> JSM () -> IO (Results -> IO (), IO ())+runJavaScript :: (Batch -> IO ()) -> JSM () -> IO (Results -> IO (), Results -> IO Batch, IO ()) runJavaScript sendBatch entryPoint = do+    contextId' <- randomIO     startTime' <- getCurrentTime     recvMVar <- newEmptyMVar+    lastAsyncBatch <- newEmptyMVar     commandChan <- newTChanIO     callbacks <- newTVarIO M.empty     nextRef' <- newTVarIO 0+    finalizerThreads' <- newMVar S.empty+    animationFrameHandlers' <- newMVar []     loggingEnabled <- newIORef False+    liveRefs' <- newMVar S.empty     let ctx = JSContextRef {-        startTime = startTime'-      , doSendCommand = \cmd -> cmd `deepseq` do-            result <- newEmptyMVar-            atomically $ writeTChan commandChan (Right (cmd, result))-            unsafeInterleaveIO $-                takeMVar result >>= \case-                    (ThrowJSValue (JSValueReceived v)) -> throwIO $ JSException (JSVal v)-                    r -> return r-      , doSendAsyncCommand = \cmd -> cmd `deepseq` atomically (writeTChan commandChan $ Left cmd)-      , addCallback = \(Object (JSVal val)) cb -> atomically $ modifyTVar' callbacks (M.insert val cb)-      , freeCallback = \(Object (JSVal val)) -> atomically $ modifyTVar' callbacks (M.delete val)-      , nextRef = nextRef'-      , doEnableLogging = atomicWriteIORef loggingEnabled-      }-    let processResults = \case+            contextId = contextId'+          , startTime = startTime'+          , doSendCommand = \cmd -> cmd `deepseq` do+                result <- newEmptyMVar+                atomically $ writeTChan commandChan (Right (cmd, result))+                unsafeInterleaveIO $+                    takeMVar result >>= \case+                        (ThrowJSValue v) -> do+                            jsval <- wrapJSVal' ctx v+                            throwIO $ JSException jsval+                        r -> return r+          , doSendAsyncCommand = \cmd -> cmd `deepseq` atomically (writeTChan commandChan $ Left cmd)+          , addCallback = \(Object (JSVal ioref)) cb -> do+                val <- readIORef ioref+                atomically $ modifyTVar' callbacks (M.insert val cb)+          , nextRef = nextRef'+          , doEnableLogging = atomicWriteIORef loggingEnabled+          , finalizerThreads = finalizerThreads'+          , animationFrameHandlers = animationFrameHandlers'+          , liveRefs = liveRefs'+          }+        processResults :: Bool -> Results -> IO ()+        processResults syncCallbacks = \case             (ProtocolError err) -> error $ "Protocol error : " <> T.unpack err-            (Callback f this a) -> do-                logInfo ("Call " <>)-                f'@(JSVal fNumber) <- runReaderT (unJSM $ wrapJSVal f) ctx+            (Callback n br (JSValueReceived fNumber) f this a) -> do+                putMVar recvMVar (n, br)+                f' <- runReaderT (unJSM $ wrapJSVal f) ctx                 this' <- runReaderT  (unJSM $ wrapJSVal this) ctx                 args <- runReaderT (unJSM $ mapM wrapJSVal a) ctx+                logInfo (("Call " <> show fNumber <> " ") <>)                 (M.lookup fNumber <$> liftIO (readTVarIO callbacks)) >>= \case                     Nothing -> liftIO $ putStrLn "Callback called after it was freed"-                    Just cb -> void . forkIO $ runReaderT (unJSM $ cb f' this' args) ctx-            m                   -> putMVar recvMVar m+                    Just cb -> void . forkIO $ do+                        runReaderT (unJSM $ cb f' this' args) ctx+                        when syncCallbacks $+                            doSendAsyncCommand ctx EndSyncBlock+            Duplicate nBatch nExpected -> do+                putStrLn $ "Error : Unexpected Duplicate. syncCallbacks=" <> show syncCallbacks <>+                    " nBatch=" <> show nBatch <> " nExpected=" <> show nExpected+                void $ doSendCommand ctx Sync+            BatchResults n br -> putMVar recvMVar (n, br)+        asyncResults :: Results -> IO ()+        asyncResults results =+            void . forkIO $ processResults False results+        syncResults :: Results -> IO Batch+        syncResults results = do+            void . forkIO $ processResults True results+            readMVar lastAsyncBatch         logInfo s =             readIORef loggingEnabled >>= \case                 True -> do-                    currentBytesUsedStr <- getGCStatsEnabled >>= \case-                        True  -> show . currentBytesUsed <$> getGCStats+                    currentBytesUsedStr <- getRTSStatsEnabled >>= \case+                        True  -> show . currentBytesUsed <$> getRTSStats                         False -> return "??"                     cbCount <- M.size <$> readTVarIO callbacks-                    putStrLn . s $ "M " <> currentBytesUsedStr <> "CB " <> show cbCount+                    putStrLn . s $ "M " <> currentBytesUsedStr <> " CB " <> show cbCount <> " "                 False -> return ()-    _ <- forkIO . forever $ readBatch commandChan >>= \case-            (batch@(Batch cmds _), resultMVars) -> do+    _ <- forkIO . numberForeverFromM_ 1 $ \nBatch ->+        readBatch nBatch commandChan >>= \case+            (batch@(Batch cmds _ _), resultMVars) -> do                 logInfo (\x -> "Sync " <> x <> show (length cmds, last cmds))+                _ <- tryTakeMVar lastAsyncBatch+                putMVar lastAsyncBatch batch                 sendBatch batch-                takeMVar recvMVar >>= \case-                    Success results | length results /= length resultMVars -> error "Unexpected number of jsaddle results"-                                    | otherwise -> zipWithM_ putMVar resultMVars results-                    Failure results exception -> do+                takeResult recvMVar nBatch >>= \case+                    (n, _) | n /= nBatch -> error $ "Unexpected jsaddle results (expected batch " <> show nBatch <> ", got batch " <> show n <> ")"+                    (_, Success callbacksToFree results)+                           | length results /= length resultMVars -> error "Unexpected number of jsaddle results"+                           | otherwise -> do+                        zipWithM_ putMVar resultMVars results+                        forM_ callbacksToFree $ \(JSValueReceived val) ->+                            atomically (modifyTVar' callbacks (M.delete val))+                    (_, Failure callbacksToFree results exception err) -> do                         -- The exception will only be rethrown in Haskell if/when one of the                         -- missing results (if any) is evaluated.                         putStrLn "A JavaScript exception was thrown! (may not reach Haskell code)"+                        putStrLn err                         zipWithM_ putMVar resultMVars $ results <> repeat (ThrowJSValue exception)-                    _ -> error "Unexpected jsaddle results"-    return (processResults, runReaderT (unJSM entryPoint) ctx)+                        forM_ callbacksToFree $ \(JSValueReceived val) ->+                            atomically (modifyTVar' callbacks (M.delete val))+    return (asyncResults, syncResults, runReaderT (unJSM entryPoint) ctx)   where-    readBatch :: TChan (Either AsyncCommand (Command, MVar Result)) -> IO (Batch, [MVar Result])-    readBatch chan = do+    numberForeverFromM_ :: (Monad m, Enum n) => n -> (n -> m a) -> m ()+    numberForeverFromM_ !n f = do+      _ <- f n+      numberForeverFromM_ (succ n) f+    takeResult recvMVar nBatch =+        takeMVar recvMVar >>= \case+            (n, _) | n < nBatch -> takeResult recvMVar nBatch+            r -> return r+    readBatch :: Int -> TChan (Either AsyncCommand (Command, MVar Result)) -> IO (Batch, [MVar Result])+    readBatch nBatch chan = do         first <- atomically $ readTChan chan -- We want at least one command to send         loop first ([], [])       where@@ -216,28 +249,64 @@             let cmds = Right syncCmd:cmds'                 resultMVars = resultMVar:resultMVars'             atomically (tryReadTChan chan) >>= \case-                Nothing -> return (Batch (reverse cmds) False, reverse resultMVars)+                Nothing -> return (Batch (reverse cmds) False nBatch, reverse resultMVars)                 Just cmd -> loop cmd (cmds, resultMVars)         loop (Left asyncCmd) (cmds', resultMVars) = do             let cmds = Left asyncCmd:cmds'             atomically (tryReadTChan chan) >>= \case-                Nothing -> return (Batch (reverse cmds) False, reverse resultMVars)+                Nothing -> return (Batch (reverse cmds) False nBatch, reverse resultMVars)                 Just cmd -> loop cmd (cmds, resultMVars)         -- When we have seen a SyncWithAnimationFrame command only a synchronous command should end the batch         loopAnimation :: Either AsyncCommand (Command, MVar Result) -> ([Either AsyncCommand Command], [MVar Result]) -> IO (Batch, [MVar Result])         loopAnimation (Right (Sync, resultMVar)) (cmds, resultMVars) =-            return (Batch (reverse (Right Sync:cmds)) True, reverse (resultMVar:resultMVars))+            return (Batch (reverse (Right Sync:cmds)) True nBatch, reverse (resultMVar:resultMVars))         loopAnimation (Right (syncCmd, resultMVar)) (cmds, resultMVars) =             atomically (readTChan chan) >>= \cmd -> loopAnimation cmd (Right syncCmd:cmds, resultMVar:resultMVars)         loopAnimation (Left asyncCmd) (cmds, resultMVars) =             atomically (readTChan chan) >>= \cmd -> loopAnimation cmd (Left asyncCmd:cmds, resultMVars)+#ifndef ghcjs_HOST_OS+#if MIN_VERSION_base(4,11,0)+    currentBytesUsed = gcdetails_live_bytes . gc+#else+    getRTSStatsEnabled = getGCStatsEnabled+    getRTSStats = getGCStats+#endif+#endif ++addThreadFinalizer :: ThreadId -> IO () -> IO ()+addThreadFinalizer t@(ThreadId t#) (IO finalizer) =+    IO $ \s -> case mkWeak# t# t finalizer s of { (# s1, _ #) -> (# s1, () #) }++ wrapJSVal :: JSValueReceived -> JSM JSVal-wrapJSVal (JSValueReceived ref) = do-    -- TODO make sure this ref has not already been wrapped (perhaps only in debug version)-    let result = JSVal ref-    when (ref >= 5) $ do-        ctx <- JSM ask-        liftIO . addFinalizer result $ doSendAsyncCommand ctx $ FreeRef $ JSValueForSend ref-    return result+wrapJSVal v = do+    ctx <- JSM ask+    liftIO $ wrapJSVal' ctx v++wrapJSVal' :: JSContextRef -> JSValueReceived -> IO JSVal+wrapJSVal' ctx (JSValueReceived n) = do+    ref <- liftIO $ newIORef n+    when (n >= 5 || n < 0) $+#ifdef JSADDLE_CHECK_WRAPJSVAL+     do lr <- takeMVar $ liveRefs ctx+        if n `S.member` lr+            then do+                putStrLn $ "JS Value Ref " <> show n <> " already wrapped"+                putMVar (liveRefs ctx) lr+            else putMVar (liveRefs ctx) =<< evaluate (S.insert n lr)+#endif+        void . mkWeakIORef ref $ do+            ft <- takeMVar $ finalizerThreads ctx+            t <- myThreadId+            let tname = T.pack $ show t+            doSendAsyncCommand ctx $ FreeRef tname $ JSValueForSend n+            if tname `S.member` ft+                then putMVar (finalizerThreads ctx) ft+                else do+                    addThreadFinalizer t $ do+                        modifyMVar (finalizerThreads ctx) $ \s -> return (S.delete tname s, ())+                        doSendAsyncCommand ctx $ FreeRefs tname+                    putMVar (finalizerThreads ctx) =<< evaluate (S.insert tname ft)+    return (JSVal ref) #endif
src/Language/Javascript/JSaddle/Run/Files.hs view
@@ -13,14 +13,15 @@  module Language.Javascript.JSaddle.Run.Files (     indexHtml-  , jsaddleJs   , initState   , runBatch   , ghcjsHelpers ) where +import Prelude ()+import Prelude.Compat+ import Data.ByteString.Lazy (ByteString)-import Data.Monoid ((<>))  indexHtml :: ByteString indexHtml =@@ -31,25 +32,38 @@     \</head>\n\     \<body>\n\     \</body>\n\-    \<script src=\"jsaddle.js\"></script>\n\+    \<script src=\"/jsaddle.js\"></script>\n\     \</html>"  initState :: ByteString initState = "\     \        var jsaddle_values = new Map();\n\+    \        var jsaddle_free = new Map();\n\     \        jsaddle_values.set(0, null);\n\     \        jsaddle_values.set(1, undefined);\n\     \        jsaddle_values.set(2, false);\n\     \        jsaddle_values.set(3, true);\n\-    \        jsaddle_values.set(4, window);\n\+    \        jsaddle_values.set(4, globalThis);\n\     \        var jsaddle_index = 100;\n\+    \        var expectedBatch = 1;\n\+    \        var lastResults = [0, {\"tag\": \"Success\", \"contents\": [[], []]}];\n\+    \        var inCallback = 0;\n\+    \        var asyncBatch = null;\n\     \" -runBatch :: (ByteString -> ByteString) -> ByteString-runBatch send = "\+runBatch :: (ByteString -> ByteString) -> Maybe (ByteString -> ByteString) -> ByteString+runBatch send sendSync = "\+    \  var runBatch = function(firstBatch) {\n\     \    var processBatch = function(timestamp) {\n\-    \        var results = [];\n\-    \        try {\n\+    \      var batch = firstBatch;\n\+    \      var callbacksToFree = [];\n\+    \      var results = [];\n\+    \      inCallback++;\n\+    \      try {\n\+    \        syncDepth = initialSyncDepth || 0;\n\+    \        for(;;){\n\+    \          if(batch[2] === expectedBatch) {\n\+    \            expectedBatch++;\n\     \            var nCommandsLength = batch[0].length;\n\     \            for (var nCommand = 0; nCommand != nCommandsLength; nCommand++) {\n\     \                var cmd = batch[0][nCommand];\n\@@ -57,8 +71,16 @@     \                    var d = cmd.Left;\n\     \                    switch (d.tag) {\n\     \                            case \"FreeRef\":\n\-    \                                jsaddle_values.delete(d.contents);\n\+    \                                var refsToFree = jsaddle_free.get(d.contents[0]) || [];\n\+    \                                refsToFree.push(d.contents[1]);\n\+    \                                jsaddle_free.set(d.contents[0], refsToFree);\n\     \                                break;\n\+    \                            case \"FreeRefs\":\n\+    \                                var refsToFree = jsaddle_free.get(d.contents) || [];\n\+    \                                for(var nRef = 0; nRef != refsToFree.length; nRef++)\n\+    \                                    jsaddle_values.delete(refsToFree[nRef]);\n\+    \                                jsaddle_free.delete(d.contents);\n\+    \                                break;\n\     \                            case \"SetPropertyByName\":\n\     \                                jsaddle_values.get(d.contents[0])[d.contents[1]]=jsaddle_values.get(d.contents[2]);\n\     \                                break;\n\@@ -73,6 +95,10 @@     \                                var n = d.contents[1];\n\     \                                jsaddle_values.set(n, d.contents[0]);\n\     \                                break;\n\+    \                            case \"JSONValueToValue\":\n\+    \                                var n = d.contents[1];\n\+    \                                jsaddle_values.set(n, d.contents[0]);\n\+    \                                break;\n\     \                            case \"GetPropertyByName\":\n\     \                                var n = d.contents[2];\n\     \                                jsaddle_values.set(n, jsaddle_values.get(d.contents[0])[d.contents[1]]);\n\@@ -89,10 +115,12 @@     \                                var n = d.contents;\n\     \                                jsaddle_values.set(n, {});\n\     \                                break;\n\-    \                            case \"NewCallback\":\n\+    \                            case \"NewAsyncCallback\":\n\     \                                (function() {\n\     \                                    var nFunction = d.contents;\n\-    \                                    jsaddle_values.set(nFunction, function() {\n\+    \                                    var func = function() {\n\+    \                                        var nFunctionInFunc = ++jsaddle_index;\n\+    \                                        jsaddle_values.set(nFunctionInFunc, func);\n\     \                                        var nThis = ++jsaddle_index;\n\     \                                        jsaddle_values.set(nThis, this);\n\     \                                        var args = [];\n\@@ -101,9 +129,43 @@     \                                            jsaddle_values.set(nArg, arguments[i]);\n\     \                                            args[i] = nArg;\n\     \                                        }\n\-    \                                        " <> send "{\"tag\": \"Callback\", \"contents\": [nFunction, nThis, args]}" <> "\n\-    \                                    })})();\n\+    \                                        " <> send "{\"tag\": \"Callback\", \"contents\": [lastResults[0], lastResults[1], nFunction, nFunctionInFunc, nThis, args]}" <> "\n\+    \                                    };\n\+    \                                    jsaddle_values.set(nFunction, func);\n\+    \                                })();\n\     \                                break;\n\+    \                            case \"NewSyncCallback\":\n\+    \                                (function() {\n\+    \                                    var nFunction = d.contents;\n\+    \                                    var func = function() {\n\+    \                                        var nFunctionInFunc = ++jsaddle_index;\n\+    \                                        jsaddle_values.set(nFunctionInFunc, func);\n\+    \                                        var nThis = ++jsaddle_index;\n\+    \                                        jsaddle_values.set(nThis, this);\n\+    \                                        var args = [];\n\+    \                                        for (var i = 0; i != arguments.length; i++) {\n\+    \                                            var nArg = ++jsaddle_index;\n\+    \                                            jsaddle_values.set(nArg, arguments[i]);\n\+    \                                            args[i] = nArg;\n\+    \                                        }\n" <> (+    case sendSync of+      Just s  ->+        "                                        if(inCallback > 0) {\n\+        \                                          " <> send "{\"tag\": \"Callback\", \"contents\": [lastResults[0], lastResults[1], nFunction, nFunctionInFunc, nThis, args]}" <> "\n\+        \                                        } else {\n\+        \                                          initialSyncDepth = 1;\n\+        \                                          runBatch(" <> s "{\"tag\": \"Callback\", \"contents\": [lastResults[0], lastResults[1], nFunction, nFunctionInFunc, nThis, args]}" <> ");\n\+        \                                        }\n"+      Nothing ->+        "                                        " <> send "{\"tag\": \"Callback\", \"contents\": [lastResults[0], lastResults[1], nFunction, nFunctionInFunc, nThis, args]}" <> "\n"+    ) <>+    "                                    };\n\+    \                                    jsaddle_values.set(nFunction, func);\n\+    \                                })();\n\+    \                                break;\n\+    \                            case \"FreeCallback\":\n\+    \                                callbacksToFree.push(d.contents);\n\+    \                                break;\n\     \                            case \"CallAsFunction\":\n\     \                                var n = d.contents[3];\n\     \                                jsaddle_values.set(n,\n\@@ -145,9 +207,15 @@     \                                jsaddle_values.set(n, d.contents[0].map(function(v){return jsaddle_values.get(v);}));\n\     \                                break;\n\     \                            case \"SyncWithAnimationFrame\":\n\-    \                                var n = d.contents[0];\n\+    \                                var n = d.contents;\n\     \                                jsaddle_values.set(n, timestamp);\n\     \                                break;\n\+    \                            case \"StartSyncBlock\":\n\+    \                                syncDepth++;\n\+    \                                break;\n\+    \                            case \"EndSyncBlock\":\n\+    \                                syncDepth--;\n\+    \                                break;\n\     \                            default:\n\     \                                " <> send "{\"tag\": \"ProtocolError\", \"contents\": e.data}" <> "\n\     \                                return;\n\@@ -182,7 +250,7 @@     \                                        (v === true           ) ? [3, \"\"] :\n\     \                                        (typeof v === \"number\") ? [-1, v.toString()] :\n\     \                                        (typeof v === \"string\") ? [-2, v]\n\-    \                                                                : [n, \"\"];\n\+    \                                                                : [-3, \"\"];\n\     \                                results.push({\"tag\": \"DeRefValResult\", \"contents\": c});\n\     \                                break;\n\     \                            case \"IsNull\":\n\@@ -210,55 +278,67 @@     \                        }\n\     \                }\n\     \            }\n\-    \            " <> send "{\"tag\": \"Success\", \"contents\": results}" <> "\n\-    \        }\n\-    \        catch (err) {\n\-    \            var n = ++jsaddle_index;\n\-    \            jsaddle_values.set(n, err);\n\-    \            " <> send "{\"tag\": \"Failure\", \"contents\": [results,n]}" <> "\n\+    \            if(syncDepth <= 0) {\n\+    \              lastResults = [batch[2], {\"tag\": \"Success\", \"contents\": [callbacksToFree, results]}];\n\+    \              " <> send "{\"tag\": \"BatchResults\", \"contents\": [lastResults[0], lastResults[1]]}" <> "\n\+    \              break;\n\+    \            } else {\n" <> (+    case sendSync of+      Just s  ->+        "              lastResults = [batch[2], {\"tag\": \"Success\", \"contents\": [callbacksToFree, results]}];\n\+        \              batch = " <> s "{\"tag\": \"BatchResults\", \"contents\": [lastResults[0], lastResults[1]]}" <> ";\n\+        \              results = [];\n\+        \              callbacksToFree = [];\n"+      Nothing ->+        "              " <> send "{\"tag\": \"BatchResults\", \"contents\": [batch[2], {\"tag\": \"Success\", \"contents\": [callbacksToFree, results]}]}" <> "\n\+        \              break;\n"+    ) <>+    "            }\n\+    \          } else {\n\+    \            if(syncDepth <= 0) {\n\+    \              break;\n\+    \            } else {\n" <> (+    case sendSync of+      Just s  ->+        "              if(batch[2] === expectedBatch - 1) {\n\+        \                batch = " <> s "{\"tag\": \"BatchResults\", \"contents\": [lastResults[0], lastResults[1]]}" <> ";\n\+        \              } else {\n\+        \                batch = " <> s "{\"tag\": \"Duplicate\", \"contents\": [batch[2], expectedBatch]}" <> ";\n\+        \              }\n\+        \              results = [];\n\+        \              callbacksToFree = [];\n"+      Nothing ->+        "              " <> send "{\"tag\": \"Duplicate\", \"contents\": [batch[2], expectedBatch]}" <> "\n\+        \              break;\n"+    ) <>+    "            }\n\+    \          }\n\     \        }\n\+    \      }\n\+    \      catch (err) {\n\+    \        var n = ++jsaddle_index;\n\+    \        jsaddle_values.set(n, err);\n\+    \        console.log(err);\n\+    \        " <> send "{\"tag\": \"BatchResults\", \"contents\": [batch[2], {\"tag\": \"Failure\", \"contents\": [callbacksToFree, results, n, String(err)]}]}" <> "\n\+    \      }\n\+    \      if(inCallback == 1) {\n\+    \          while(asyncBatch !== null) {\n\+    \              var b = asyncBatch;\n\+    \              asyncBatch = null;\n\+    \              if(b[2] == expectedBatch) runBatch(b);\n\+    \          }\n\+    \      }\n\+    \      inCallback--;\n\     \    };\n\-    \    if(batch[1]) {\n\-    \        window.requestAnimationFrame(processBatch);\n\+    \    if(batch[1] && (initialSyncDepth || 0) === 0) {\n\+    \        globalThis.requestAnimationFrame(processBatch);\n\     \    }\n\     \    else {\n\-    \        processBatch(window.performance ? window.performance.now() : null);\n\+    \        processBatch(globalThis.performance ? globalThis.performance.now() : null);\n\     \    }\n\-    \"---- Use this to generate this string for embedding--- sed -e 's|\\|\\\\|g' -e 's|^|    \\|' -e 's|$|\\n\\|' -e 's|"|\\"|g' data/jsaddle.js | pbcopy-jsaddleJs :: ByteString-jsaddleJs = "\-    \if(typeof global !== \"undefined\") {\n\-    \    global.window = global;\n\-    \    global.WebSocket = require('ws');\n\-    \}\n\-    \\n\-    \var connect = function() {\n\-    \    var wsaddress =\n\-    \            typeof window.location === \"undefined\"\n\-    \                ? \"ws://localhost:3709/\"\n\-    \                : window.location.protocol.replace('http', 'ws')+\"//\"+window.location.hostname+(window.location.port?(\":\"+window.location.port):\"\");\n\-    \\n\-    \    var ws = new WebSocket(wsaddress);\n\-    \\n\-    \    ws.onopen = function(e) {\n\-    \ " <> initState <> "\-    \\n\-    \        ws.onmessage = function(e) {\n\-    \            var batch = JSON.parse(e.data);\n\-    \\n\-    \ " <> runBatch (\a -> "ws.send(JSON.stringify(" <> a <> "));") <> "\-    \        };\n\-    \    };\n\-    \    ws.onerror = function() {\n\-    \        setTimeout(connect, 1000);\n\-    \    };\n\-    \}\n\-    \\n\-    \ " <> ghcjsHelpers <> "\-    \connect();\n\+    \  };\n\+    \  initialSyncDepth = 0;\n\+    \  runBatch(batch);\n\     \"  ghcjsHelpers :: ByteString@@ -366,7 +446,7 @@     \         };\n\     \}\n\     \function h$newByteArrayFromBase64String(base64) {\n\-    \  var bin = window.atob(base64);\n\+    \  var bin = globalThis.atob(base64);\n\     \  var ba = h$newByteArray(bin.length);\n\     \  var u8 = ba.u8;\n\     \  for (var i = 0; i < bin.length; i++) {\n\@@ -381,6 +461,6 @@     \  for (var i = off; i < end; i++) {\n\     \    bin += String.fromCharCode(u8[i]);\n\     \  }\n\-    \  return window.btoa(bin);\n\+    \  return globalThis.btoa(bin);\n\     \}\n\     \"
src/Language/Javascript/JSaddle/Types.hs view
@@ -14,6 +14,8 @@ #endif {-# LANGUAGE ConstraintKinds            #-} {-# LANGUAGE KindSignatures             #-}+{-# LANGUAGE AllowAmbiguousTypes        #-}+{-# LANGUAGE TypeOperators              #-} ----------------------------------------------------------------------------- -- -- Module      :  Language.Javascript.JSaddle.Types@@ -55,10 +57,16 @@   , JSCallAsFunction    -- * Debugging-  , JSadddleHasCallStack+  , JSaddleHasCallStack -  -- * JavaScript Context Commands+  -- * Sync JSM+  , syncPoint+  , syncAfter+ #ifndef ghcjs_HOST_OS+  , sendCommand++  -- * JavaScript Context Commands   , MutabilityType(..)   , Mutable   , Immutable@@ -73,6 +81,7 @@   , Command(..)   , Batch(..)   , Result(..)+  , BatchResults(..)   , Results(..) #endif ) where@@ -87,21 +96,37 @@ import GHCJS.Prim.Internal (JSVal(..), JSValueRef) import Data.JSString.Internal.Type (JSString(..)) import Control.DeepSeq (NFData(..))-import Control.Monad.Trans.Reader (ReaderT(..))-import Control.Monad.Trans.State.Lazy (StateT(..))-import qualified Control.Monad.Trans.State.Strict as Strict-       (StateT(..))+import Control.Monad.Catch (MonadThrow, MonadCatch(..), MonadMask(..))+import Control.Monad.Codensity (Codensity(..))+import Control.Monad.Trans.Cont (ContT(..))+import Control.Monad.Trans.Except (ExceptT(..))+import Control.Monad.Trans.Identity (IdentityT(..))+import Control.Monad.Trans.Maybe (MaybeT(..))+import Control.Monad.Trans.Reader (ReaderT(..), ask)+import Control.Monad.Trans.RWS.Lazy as Lazy (RWST(..))+import Control.Monad.Trans.RWS.Strict as Strict (RWST(..))+import Control.Monad.Trans.State.Lazy as Lazy (StateT(..))+import Control.Monad.Trans.State.Strict as Strict (StateT(..))+import Control.Monad.Trans.Writer.Lazy as Lazy (WriterT(..))+import Control.Monad.Trans.Writer.Strict as Strict (WriterT(..)) import Control.Monad.Trans.Class (MonadTrans(..)) import Control.Monad.Fix (MonadFix) import Control.Monad.Ref (MonadAtomicRef(..), MonadRef(..)) import Control.Concurrent.STM.TVar (TVar)+import Control.Concurrent.MVar (MVar)+import Data.Int (Int64)+import Data.Set (Set) import Data.Text (Text) import Data.Time.Clock (UTCTime(..))+import Data.Type.Equality (type (~~)) import Data.Typeable (Typeable) import Data.Coerce (coerce, Coercible) import Data.Aeson        (defaultOptions, genericToEncoding, ToJSON(..), FromJSON(..), Value)+import GHC.Exts (TYPE) import GHC.Generics (Generic)+import Control.Monad.IO.Unlift (MonadUnliftIO)+import qualified Control.Monad.Fail as Fail #endif  #if MIN_VERSION_base(4,9,0) && defined(CHECK_UNCHECKED)@@ -118,13 +143,16 @@ type JSContextRef = () #else data JSContextRef = JSContextRef {-    startTime          :: UTCTime-  , doSendCommand      :: Command -> IO Result-  , doSendAsyncCommand :: AsyncCommand -> IO ()-  , addCallback        :: Object -> JSCallAsFunction -> IO ()-  , freeCallback       :: Object -> IO ()-  , nextRef            :: TVar JSValueRef-  , doEnableLogging    :: Bool -> IO ()+    contextId              :: Int64+  , startTime              :: UTCTime+  , doSendCommand          :: Command -> IO Result+  , doSendAsyncCommand     :: AsyncCommand -> IO ()+  , addCallback            :: Object -> JSCallAsFunction -> IO ()+  , nextRef                :: TVar JSValueRef+  , doEnableLogging        :: Bool -> IO ()+  , finalizerThreads       :: MVar (Set Text)+  , animationFrameHandlers :: MVar [Double -> JSM ()]+  , liveRefs               :: MVar (Set Int64) } #endif @@ -140,10 +168,57 @@ type JSM = IO #else newtype JSM a = JSM { unJSM :: ReaderT JSContextRef IO a }-    deriving (Functor, Applicative, Monad, MonadIO, MonadFix)+    deriving (Functor, Applicative, Monad, MonadIO, MonadFix, MonadThrow, MonadUnliftIO, Fail.MonadFail)++instance MonadCatch JSM where+    t `catch` c = JSM (unJSM (syncAfter t) `catch` \e -> unJSM (c e))++instance MonadMask JSM where+  mask a = JSM $ mask $ \unmask -> unJSM (a $ q unmask)+    where q :: (ReaderT JSContextRef IO a -> ReaderT JSContextRef IO a) -> JSM a -> JSM a+          q unmask (JSM b) = syncAfter . JSM $ unmask b+  uninterruptibleMask a =+    JSM $ uninterruptibleMask $ \unmask -> unJSM (a $ q unmask)+      where q :: (ReaderT JSContextRef IO a -> ReaderT JSContextRef IO a) -> JSM a -> JSM a+            q unmask (JSM b) = syncAfter . JSM $ unmask b+#if MIN_VERSION_exceptions(0,9,0)+  generalBracket acquire release use =+    JSM $ generalBracket+      (unJSM acquire)+      (\resource exitCase -> unJSM $ release resource exitCase)+      (unJSM . syncAfter . use) #endif +#endif +-- | Forces execution of pending asyncronous code+syncPoint :: JSM ()+#ifdef ghcjs_HOST_OS+syncPoint = return ()+#else+syncPoint = do+    SyncResult <- sendCommand Sync+    return ()+#endif++-- | Forces execution of pending asyncronous code after performing `f`+syncAfter :: JSM a -> JSM a+#ifdef ghcjs_HOST_OS+syncAfter = id+#else+syncAfter f = do+    result <- f+    syncPoint+    return result+#endif++#ifndef ghcjs_HOST_OS+sendCommand :: Command -> JSM Result+sendCommand cmd = do+    s <- doSendCommand <$> JSM ask+    liftIO $ s cmd+#endif+ -- | Type we can give to functions that are pure when using ghcjs, but --   live in JSM when using jsaddle. --@@ -191,24 +266,62 @@ #else class (Applicative m, MonadIO m) => MonadJSM m where     liftJSM' :: JSM a -> m a-    {-# MINIMAL liftJSM' #-} +    default liftJSM' :: (MonadJSM m', MonadTrans t, m ~ t m') => JSM a -> m a+    liftJSM' = lift . (liftJSM' :: MonadJSM m' => JSM a -> m' a)+    {-# INLINE liftJSM' #-}+ instance MonadJSM JSM where     liftJSM' = id     {-# INLINE liftJSM' #-} -instance MonadJSM m => MonadJSM (ReaderT e m) where+instance (MonadJSM m) => MonadJSM (ContT r m) where     liftJSM' = lift . liftJSM'     {-# INLINE liftJSM' #-} -instance MonadJSM m => MonadJSM (StateT r m) where+instance (MonadJSM m) => MonadJSM (ExceptT e m) where     liftJSM' = lift . liftJSM'     {-# INLINE liftJSM' #-} -instance MonadJSM m => MonadJSM (Strict.StateT r m) where+instance (MonadJSM m) => MonadJSM (IdentityT m) where     liftJSM' = lift . liftJSM'     {-# INLINE liftJSM' #-} +instance (MonadJSM m) => MonadJSM (MaybeT m) where+    liftJSM' = lift . liftJSM'+    {-# INLINE liftJSM' #-}++instance (MonadJSM m) => MonadJSM (ReaderT r m) where+    liftJSM' = lift . liftJSM'+    {-# INLINE liftJSM' #-}++instance (Monoid w, MonadJSM m) => MonadJSM (Lazy.RWST r w s m) where+    liftJSM' = lift . liftJSM'+    {-# INLINE liftJSM' #-}++instance (Monoid w, MonadJSM m) => MonadJSM (Strict.RWST r w s m) where+    liftJSM' = lift . liftJSM'+    {-# INLINE liftJSM' #-}++instance (MonadJSM m) => MonadJSM (Lazy.StateT s m) where+    liftJSM' = lift . liftJSM'+    {-# INLINE liftJSM' #-}++instance (MonadJSM m) => MonadJSM (Strict.StateT s m) where+    liftJSM' = lift . liftJSM'+    {-# INLINE liftJSM' #-}++instance (Monoid w, MonadJSM m) => MonadJSM (Lazy.WriterT w m) where+    liftJSM' = lift . liftJSM'+    {-# INLINE liftJSM' #-}++instance (Monoid w, MonadJSM m) => MonadJSM (Strict.WriterT w m) where+    liftJSM' = lift . liftJSM'+    {-# INLINE liftJSM' #-}++instance (m ~~ m', MonadJSM m') => MonadJSM (Codensity (m :: k -> TYPE rep)) where+    liftJSM' = lift . liftJSM'+ instance MonadRef JSM where     type Ref JSM = Ref IO     newRef = liftIO . newRef@@ -280,7 +393,7 @@ type STJSArray s    = SomeJSArray (STMutable s)  -- | See 'JavaScript.Object.Internal.Object'-newtype Object = Object JSVal deriving(Show, ToJSON, FromJSON)+newtype Object = Object JSVal  -- | See 'GHCJS.Nullable.Nullable' newtype Nullable a = Nullable a@@ -304,7 +417,8 @@ instance NFData JSStringForSend  -- | Command sent to a JavaScript context for execution asynchronously-data AsyncCommand = FreeRef JSValueForSend+data AsyncCommand = FreeRef Text JSValueForSend+                  | FreeRefs Text                   | SetPropertyByName JSObjectForSend JSStringForSend JSValueForSend                   | SetPropertyAtIndex JSObjectForSend Int JSValueForSend                   | StringToValue JSStringForSend JSValueForSend@@ -315,11 +429,15 @@                   | CallAsFunction JSObjectForSend JSObjectForSend [JSValueForSend] JSValueForSend                   | CallAsConstructor JSObjectForSend [JSValueForSend] JSValueForSend                   | NewEmptyObject JSValueForSend-                  | NewCallback JSValueForSend+                  | NewAsyncCallback JSValueForSend+                  | NewSyncCallback JSValueForSend+                  | FreeCallback JSValueForSend                   | NewArray [JSValueForSend] JSValueForSend                   | EvaluateScript JSStringForSend JSValueForSend                   | SyncWithAnimationFrame JSValueForSend-                  deriving (Show, Generic)+                  | StartSyncBlock+                  | EndSyncBlock+                   deriving (Show, Generic)  instance ToJSON AsyncCommand where     toEncoding = genericToEncoding defaultOptions@@ -351,7 +469,7 @@ instance NFData Command  -- | Batch of commands that can be sent together to the JavaScript context-data Batch = Batch [Either AsyncCommand Command] Bool+data Batch = Batch [Either AsyncCommand Command] Bool Int              deriving (Show, Generic)  instance ToJSON Batch where@@ -382,9 +500,18 @@  instance FromJSON Result -data Results = Success [Result]-             | Failure [Result] JSValueReceived-             | Callback JSValueReceived JSValueReceived [JSValueReceived]+data BatchResults = Success [JSValueReceived] [Result]+                  | Failure [JSValueReceived] [Result] JSValueReceived String+             deriving (Show, Generic)++instance ToJSON BatchResults where+    toEncoding = genericToEncoding defaultOptions++instance FromJSON BatchResults++data Results = BatchResults Int BatchResults+             | Duplicate Int Int+             | Callback Int BatchResults JSValueReceived JSValueReceived JSValueReceived [JSValueReceived]              | ProtocolError Text              deriving (Show, Generic) @@ -396,9 +523,9 @@  -- | Like HasCallStack, but only when jsaddle cabal flag check-unchecked is set #if MIN_VERSION_base(4,9,0) && defined(CHECK_UNCHECKED)-type JSadddleHasCallStack = HasCallStack+type JSaddleHasCallStack = HasCallStack #else-type JSadddleHasCallStack = (() :: Constraint)+type JSaddleHasCallStack = (() :: Constraint) #endif  
src/Language/Javascript/JSaddle/Value.hs view
@@ -189,8 +189,14 @@ valToNumber :: ToJSVal value => value -> JSM Double #ifdef ghcjs_HOST_OS valToNumber value = jsrefToNumber <$> toJSVal value-foreign import javascript unsafe "$r = Number($1);" jsrefToNumber :: JSVal -> Double+foreign import javascript unsafe+#if __GLASGOW_HASKELL__ >= 900+  "(($1) => { return Number($1); })" #else+  "$r = Number($1);"+#endif+     jsrefToNumber :: JSVal -> Double+#else valToNumber value = toJSVal value >>= valueToNumber #endif @@ -216,8 +222,14 @@ valToStr :: ToJSVal value => value -> JSM JSString #ifdef ghcjs_HOST_OS valToStr value = jsrefToString <$> toJSVal value-foreign import javascript unsafe "$r = $1.toString();" jsrefToString :: JSVal -> JSString+foreign import javascript unsafe+#if __GLASGOW_HASKELL__ >= 900+  "(($1) => { return $1.toString(); })" #else+  "$r = $1.toString();"+#endif+    jsrefToString :: JSVal -> JSString+#else valToStr value = toJSVal value >>= valueToString #endif @@ -267,8 +279,14 @@ valToJSON :: ToJSVal value => value -> JSM JSString #ifdef ghcjs_HOST_OS valToJSON value = jsrefToJSON <$> toJSVal value-foreign import javascript unsafe "$r = $1 === undefined ? \"\" : JSON.stringify($1);" jsrefToJSON :: JSVal -> JSString+foreign import javascript unsafe+#if __GLASGOW_HASKELL__ >= 900+  "(($1) => { return $1 === undefined ? \"\" : JSON.stringify($1); })" #else+  "$r = $1 === undefined ? \"\" : JSON.stringify($1);"+#endif+    jsrefToJSON :: JSVal -> JSString+#else valToJSON value = toJSVal value >>= valueToJSON #endif @@ -611,22 +629,35 @@         4 -> ValString <$> valToText valref         5 -> ValObject <$> valToObject valref         _ -> error "Unexpected result dereferencing JSaddle value"-foreign import javascript unsafe "$r = ($1 === undefined)?0:\-                                       ($1===null)?1:\-                                       (typeof $1===\"boolean\")?2:\-                                       (typeof $1===\"number\")?3:\-                                       (typeof $1===\"string\")?4:\-                                       (typeof $1===\"object\")?5:-1;" jsrefGetType :: JSVal -> Int+foreign import javascript unsafe+#if __GLASGOW_HASKELL__ >= 900+  "(($1) => { return ($1 === undefined)?0:\+                     ($1===null)?1:\+                     (typeof $1===\"boolean\")?2:\+                     (typeof $1===\"number\")?3:\+                     (typeof $1===\"string\")?4:\+                     (typeof $1===\"object\")?5:-1; })" #else-deRefVal value = toJSVal value >>= N.deRefVal >>= \result -> return $-    case result of+  "$r = ($1 === undefined)?0:\+        ($1===null)?1:\+        (typeof $1===\"boolean\")?2:\+        (typeof $1===\"number\")?3:\+        (typeof $1===\"string\")?4:\+        (typeof $1===\"object\")?5:-1;"+#endif+    jsrefGetType :: JSVal -> Int+#else+deRefVal value = do+    v <- toJSVal value+    result <- N.deRefVal v+    return $ case result of         DeRefValResult 0    _ -> ValNull         DeRefValResult 1    _ -> ValUndefined         DeRefValResult 2    _ -> ValBool False         DeRefValResult 3    _ -> ValBool True         DeRefValResult (-1) s -> ValNumber (read (T.unpack s))         DeRefValResult (-2) s -> ValString s-        DeRefValResult ref  _ -> ValObject (Object (JSVal ref))+        DeRefValResult (-3) _ -> ValObject (Object v)         _                     -> error "Unexpected result dereferencing JSaddle value" #endif @@ -667,8 +698,13 @@  #ifdef ghcjs_HOST_OS foreign import javascript unsafe-  "$1===$2" jsvalueisstrictequal :: JSVal -> JSVal -> Bool+#if __GLASGOW_HASKELL__ >= 900+  "(($1,$2) => { return $1===$2; })"+#else+  "$1===$2" #endif+    jsvalueisstrictequal :: JSVal -> JSVal -> Bool+#endif  -- | Determine if two values are equal (JavaScripts ===) -- >>> testJSaddle $ strictEqual True False@@ -690,7 +726,12 @@ #endif  #ifdef ghcjs_HOST_OS-foreign import javascript unsafe "$1 instanceof $2"+foreign import javascript unsafe+#if __GLASGOW_HASKELL__ >= 900+  "(($1,$2) => { return $1 instanceof $2; })"+#else+  "$1 instanceof $2"+#endif   js_isInstanceOf :: JSVal -> Object -> Bool #endif