[pango/pango2: 159/201] Adapt layout tests to underline changes




commit 0a2d1e4d256332960a6b99eb5f30948e14c5570d
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun Jun 5 00:01:48 2022 -0400

    Adapt layout tests to underline changes

 tests/layouts/aaa.layout           |   12 +-
 tests/layouts/arabic-format.layout |    4 +-
 tests/layouts/bratwurst.layout     |   25 +-
 tests/layouts/bratwurst2.layout    |    4 +-
 tests/layouts/bratwurst3.layout    |   10 +-
 tests/layouts/bratwurst4.layout    |    6 +-
 tests/layouts/effigy.layout        |    6 +-
 tests/layouts/kebab.layout         |    6 +-
 tests/layouts/letterspacing.layout |    4 +-
 tests/layouts/no-space.layout      |   30 +-
 tests/layouts/tab-assert.layout    |    4 +-
 tests/layouts/tab-crash.layout     | 2027 +++++++++++++++++++++++++++++++-----
 tests/layouts/tabs-nowrap.layout   |    6 +-
 tests/layouts/tabs.layout          |   12 +-
 tests/layouts/valid-1.layout       |   19 +-
 tests/layouts/valid-10.layout      |  107 +-
 tests/layouts/valid-11.layout      |   53 +-
 tests/layouts/valid-12.layout      |   85 +-
 tests/layouts/valid-13.layout      |   85 +-
 tests/layouts/valid-14.layout      |  172 +--
 tests/layouts/valid-15.layout      |   21 +-
 tests/layouts/valid-16.layout      |   21 +-
 tests/layouts/valid-17.layout      |   26 +-
 tests/layouts/valid-18.layout      |   33 +-
 tests/layouts/valid-19.layout      |  145 ++-
 tests/layouts/valid-2.layout       |   37 +-
 tests/layouts/valid-20.layout      |   26 +-
 tests/layouts/valid-21.layout      |   23 +-
 tests/layouts/valid-22.layout      |   58 +-
 tests/layouts/valid-3.layout       |   24 +-
 tests/layouts/valid-4.layout       |   37 +-
 tests/layouts/valid-5.layout       |   44 +-
 tests/layouts/valid-6.layout       |   58 +-
 tests/layouts/valid-7.layout       |   24 +-
 tests/layouts/valid-8.layout       |  102 +-
 tests/layouts/valid-9.layout       |  128 ++-
 tests/layouts/vertical.layout      |   34 +-
 37 files changed, 2474 insertions(+), 1044 deletions(-)
---
diff --git a/tests/layouts/aaa.layout b/tests/layouts/aaa.layout
index 78ff8f9a..f00f06c1 100644
--- a/tests/layouts/aaa.layout
+++ b/tests/layouts/aaa.layout
@@ -68,12 +68,12 @@
     "hypenated" : true,
     "unknown-glyphs" : 0,
     "width" : 53248,
-    "height" : 261120,
+    "height" : 254290,
     "lines" : [
       {
         "position" : [
           0,
-          40960
+          40554
         ],
         "line" : {
           "start-index" : 0,
@@ -124,7 +124,7 @@
       {
         "position" : [
           0,
-          93184
+          91412
         ],
         "line" : {
           "start-index" : 1,
@@ -175,7 +175,7 @@
       {
         "position" : [
           0,
-          145408
+          142270
         ],
         "line" : {
           "start-index" : 2,
@@ -226,7 +226,7 @@
       {
         "position" : [
           0,
-          197632
+          193128
         ],
         "line" : {
           "start-index" : 3,
@@ -272,7 +272,7 @@
       {
         "position" : [
           0,
-          249856
+          243986
         ],
         "line" : {
           "start-index" : 4,
diff --git a/tests/layouts/arabic-format.layout b/tests/layouts/arabic-format.layout
index 36cb1d9b..1fa980a2 100644
--- a/tests/layouts/arabic-format.layout
+++ b/tests/layouts/arabic-format.layout
@@ -42,12 +42,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 56320,
-    "height" : 77824,
+    "height" : 76807,
     "lines" : [
       {
         "position" : [
           0,
-          49152
+          49108
         ],
         "line" : {
           "start-index" : 0,
diff --git a/tests/layouts/bratwurst.layout b/tests/layouts/bratwurst.layout
index fb218cd9..e14f6a85 100644
--- a/tests/layouts/bratwurst.layout
+++ b/tests/layouts/bratwurst.layout
@@ -93,13 +93,13 @@
     "ellipsized" : false,
     "hypenated" : false,
     "unknown-glyphs" : 0,
-    "width" : 200704,
-    "height" : 53248,
+    "width" : 196608,
+    "height" : 52428,
     "lines" : [
       {
         "position" : [
           0,
-          43008
+          42947
         ],
         "line" : {
           "start-index" : 0,
@@ -169,11 +169,16 @@
               "language" : "en-us",
               "script" : "Latn",
               "font" : {
-                "description" : "Cantarell Bold 32",
+                "description" : "Cantarell Bold Italic 32",
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 8374
-                }
+                "matrix" : [
+                  1,
+                  0.20000000000000001,
+                  0,
+                  1,
+                  0,
+                  0
+                ]
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -182,7 +187,7 @@
               "glyphs" : [
                 {
                   "glyph" : 467,
-                  "width" : 35840,
+                  "width" : 33792,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 },
@@ -194,7 +199,7 @@
                 },
                 {
                   "glyph" : 409,
-                  "width" : 17408,
+                  "width" : 16384,
                   "is-cluster-start" : true,
                   "log-cluster" : 2
                 },
@@ -206,7 +211,7 @@
                 },
                 {
                   "glyph" : 430,
-                  "width" : 16384,
+                  "width" : 15360,
                   "is-cluster-start" : true,
                   "log-cluster" : 4
                 }
diff --git a/tests/layouts/bratwurst2.layout b/tests/layouts/bratwurst2.layout
index 0330f6b0..a5aab845 100644
--- a/tests/layouts/bratwurst2.layout
+++ b/tests/layouts/bratwurst2.layout
@@ -87,12 +87,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 200704,
-    "height" : 53248,
+    "height" : 52428,
     "lines" : [
       {
         "position" : [
           0,
-          43008
+          42947
         ],
         "line" : {
           "start-index" : 0,
diff --git a/tests/layouts/bratwurst3.layout b/tests/layouts/bratwurst3.layout
index de28af37..2334bcc6 100644
--- a/tests/layouts/bratwurst3.layout
+++ b/tests/layouts/bratwurst3.layout
@@ -88,12 +88,12 @@
     "hypenated" : true,
     "unknown-glyphs" : 0,
     "width" : 78848,
-    "height" : 212992,
+    "height" : 209712,
     "lines" : [
       {
         "position" : [
           0,
-          43008
+          42947
         ],
         "line" : {
           "start-index" : 0,
@@ -153,7 +153,7 @@
       {
         "position" : [
           0,
-          96256
+          95375
         ],
         "line" : {
           "start-index" : 2,
@@ -213,7 +213,7 @@
       {
         "position" : [
           0,
-          149504
+          147803
         ],
         "line" : {
           "start-index" : 4,
@@ -273,7 +273,7 @@
       {
         "position" : [
           0,
-          202752
+          200231
         ],
         "line" : {
           "start-index" : 6,
diff --git a/tests/layouts/bratwurst4.layout b/tests/layouts/bratwurst4.layout
index d9fd1afb..46d99f32 100644
--- a/tests/layouts/bratwurst4.layout
+++ b/tests/layouts/bratwurst4.layout
@@ -93,12 +93,12 @@
     "hypenated" : true,
     "unknown-glyphs" : 0,
     "width" : 114688,
-    "height" : 106496,
+    "height" : 104856,
     "lines" : [
       {
         "position" : [
           0,
-          43008
+          42947
         ],
         "line" : {
           "start-index" : 0,
@@ -176,7 +176,7 @@
       {
         "position" : [
           0,
-          96256
+          95375
         ],
         "line" : {
           "start-index" : 6,
diff --git a/tests/layouts/effigy.layout b/tests/layouts/effigy.layout
index d4ae8575..953fe279 100644
--- a/tests/layouts/effigy.layout
+++ b/tests/layouts/effigy.layout
@@ -74,12 +74,12 @@
     "hypenated" : true,
     "unknown-glyphs" : 0,
     "width" : 71680,
-    "height" : 104448,
+    "height" : 101716,
     "lines" : [
       {
         "position" : [
           0,
-          40960
+          40554
         ],
         "line" : {
           "start-index" : 0,
@@ -136,7 +136,7 @@
       {
         "position" : [
           0,
-          93184
+          91412
         ],
         "line" : {
           "start-index" : 3,
diff --git a/tests/layouts/kebab.layout b/tests/layouts/kebab.layout
index 1c066ccf..4a04835d 100644
--- a/tests/layouts/kebab.layout
+++ b/tests/layouts/kebab.layout
@@ -102,12 +102,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 126976,
-    "height" : 106496,
+    "height" : 104856,
     "lines" : [
       {
         "position" : [
           0,
-          43008
+          42947
         ],
         "line" : {
           "start-index" : 0,
@@ -186,7 +186,7 @@
       {
         "position" : [
           0,
-          96256
+          95375
         ],
         "line" : {
           "start-index" : 7,
diff --git a/tests/layouts/letterspacing.layout b/tests/layouts/letterspacing.layout
index 040fc686..86071325 100644
--- a/tests/layouts/letterspacing.layout
+++ b/tests/layouts/letterspacing.layout
@@ -64,12 +64,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 63488,
-    "height" : 52224,
+    "height" : 50858,
     "lines" : [
       {
         "position" : [
           0,
-          40960
+          40554
         ],
         "line" : {
           "start-index" : 0,
diff --git a/tests/layouts/no-space.layout b/tests/layouts/no-space.layout
index 010cc56a..eb5ce823 100644
--- a/tests/layouts/no-space.layout
+++ b/tests/layouts/no-space.layout
@@ -69,14 +69,14 @@
     "wrapped" : false,
     "ellipsized" : false,
     "hypenated" : false,
-    "unknown-glyphs" : 4,
+    "unknown-glyphs" : 1,
     "width" : 89088,
-    "height" : 45056,
+    "height" : 50858,
     "lines" : [
       {
         "position" : [
           0,
-          38912
+          40554
         ],
         "line" : {
           "start-index" : 0,
@@ -100,8 +100,8 @@
               "language" : "en-us",
               "script" : "Zyyy",
               "font" : {
-                "description" : "Font Awesome 5 Free Solid Heavy 32",
-                "checksum" : "8fe6cd51391fa6f8c2008609ddd489bb81a6d7674f3a1c8b7fa07efd026a6397"
+                "description" : "DejaVu Sans 32",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -109,32 +109,32 @@
               "end-x-offset" : 0,
               "glyphs" : [
                 {
-                  "glyph" : 268435488,
-                  "width" : 11264,
+                  "glyph" : 3,
+                  "width" : 14336,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 },
                 {
-                  "glyph" : 268435488,
-                  "width" : 11264,
+                  "glyph" : 3,
+                  "width" : 14336,
                   "is-cluster-start" : true,
                   "log-cluster" : 1
                 },
                 {
-                  "glyph" : 1,
-                  "width" : 44032,
+                  "glyph" : 268497627,
+                  "width" : 31744,
                   "is-cluster-start" : true,
                   "log-cluster" : 2
                 },
                 {
-                  "glyph" : 268435488,
-                  "width" : 11264,
+                  "glyph" : 3,
+                  "width" : 14336,
                   "is-cluster-start" : true,
                   "log-cluster" : 5
                 },
                 {
-                  "glyph" : 268435488,
-                  "width" : 11264,
+                  "glyph" : 3,
+                  "width" : 14336,
                   "is-cluster-start" : true,
                   "log-cluster" : 6
                 }
diff --git a/tests/layouts/tab-assert.layout b/tests/layouts/tab-assert.layout
index fc884793..c0dfa160 100644
--- a/tests/layouts/tab-assert.layout
+++ b/tests/layouts/tab-assert.layout
@@ -64,12 +64,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 56320,
-    "height" : 19456,
+    "height" : 19072,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          15208
         ],
         "line" : {
           "start-index" : 0,
diff --git a/tests/layouts/tab-crash.layout b/tests/layouts/tab-crash.layout
index e001bbc5..bb426141 100644
--- a/tests/layouts/tab-crash.layout
+++ b/tests/layouts/tab-crash.layout
@@ -583,12 +583,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 552960,
-    "height" : 58368,
+    "height" : 57216,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          15208
         ],
         "line" : {
           "start-index" : 0,
@@ -605,8 +605,8 @@
           "runs" : [
             {
               "offset" : 0,
-              "length" : 55,
-              "text" : "id=3 UNION ALL SELECT NULL, NULL, CONCAT(0x7373737373, ",
+              "length" : 1,
+              "text" : "i",
               "bidi-level" : 0,
               "gravity" : "south",
               "language" : "en-us",
@@ -625,358 +625,1475 @@
                   "width" : 10240,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
-                },
+                }
+              ]
+            },
+            {
+              "offset" : 1,
+              "length" : 1,
+              "text" : "d",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 71,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 1
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 2,
+              "length" : 1,
+              "text" : "=",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 32,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 2
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 3,
+              "length" : 2,
+              "text" : "3 ",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 22,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 3
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 3,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 4
-                },
+                  "log-cluster" : 1
+                }
+              ]
+            },
+            {
+              "offset" : 5,
+              "length" : 1,
+              "text" : "U",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 56,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 5
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 6,
+              "length" : 1,
+              "text" : "N",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 49,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 6
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 7,
+              "length" : 1,
+              "text" : "I",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 44,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 7
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 8,
+              "length" : 1,
+              "text" : "O",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 50,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 8
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 9,
+              "length" : 2,
+              "text" : "N ",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 49,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 9
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 3,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 10
-                },
+                  "log-cluster" : 1
+                }
+              ]
+            },
+            {
+              "offset" : 11,
+              "length" : 1,
+              "text" : "A",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 36,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 11
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 12,
+              "length" : 3,
+              "text" : "LL ",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 47,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 12
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 47,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 13
+                  "log-cluster" : 1
                 },
                 {
                   "glyph" : 3,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 14
-                },
+                  "log-cluster" : 2
+                }
+              ]
+            },
+            {
+              "offset" : 15,
+              "length" : 1,
+              "text" : "S",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 54,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 15
-                },
-                {
-                  "glyph" : 40,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 16
-                },
-                {
-                  "glyph" : 47,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 17
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 16,
+              "length" : 1,
+              "text" : "E",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 40,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 18
-                },
-                {
-                  "glyph" : 38,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 17,
+              "length" : 1,
+              "text" : "L",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 47,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 19
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 18,
+              "length" : 1,
+              "text" : "E",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 40,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 19,
+              "length" : 1,
+              "text" : "C",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 38,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 20,
+              "length" : 2,
+              "text" : "T ",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 55,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 20
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 3,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 21
-                },
+                  "log-cluster" : 1
+                }
+              ]
+            },
+            {
+              "offset" : 22,
+              "length" : 1,
+              "text" : "N",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 49,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 22
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 23,
+              "length" : 1,
+              "text" : "U",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 56,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 23
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 24,
+              "length" : 2,
+              "text" : "LL",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 47,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 24
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 47,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 25
-                },
+                  "log-cluster" : 1
+                }
+              ]
+            },
+            {
+              "offset" : 26,
+              "length" : 2,
+              "text" : ", ",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 15,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 26
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 3,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 27
-                },
+                  "log-cluster" : 1
+                }
+              ]
+            },
+            {
+              "offset" : 28,
+              "length" : 1,
+              "text" : "N",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 49,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 28
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 29,
+              "length" : 1,
+              "text" : "U",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 56,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 29
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 30,
+              "length" : 2,
+              "text" : "LL",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 47,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 30
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 47,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 31
-                },
+                  "log-cluster" : 1
+                }
+              ]
+            },
+            {
+              "offset" : 32,
+              "length" : 2,
+              "text" : ", ",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 15,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 32
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 3,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 33
-                },
-                {
-                  "glyph" : 38,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 34
-                },
-                {
-                  "glyph" : 50,
-                  "width" : 10240,
+                  "log-cluster" : 1
+                }
+              ]
+            },
+            {
+              "offset" : 34,
+              "length" : 1,
+              "text" : "C",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 38,
+                  "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 35
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 35,
+              "length" : 1,
+              "text" : "O",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 50,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 36,
+              "length" : 1,
+              "text" : "N",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 49,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 36
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 37,
+              "length" : 1,
+              "text" : "C",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 38,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 37
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 38,
+              "length" : 1,
+              "text" : "A",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 36,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 38
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 39,
+              "length" : 1,
+              "text" : "T",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 55,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 39
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 40,
+              "length" : 1,
+              "text" : "(",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 11,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 40
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 41,
+              "length" : 1,
+              "text" : "0",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 19,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 42,
+              "length" : 1,
+              "text" : "x",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 91,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 43,
+              "length" : 1,
+              "text" : "7",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 26,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 44,
+              "length" : 1,
+              "text" : "3",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 22,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 45,
+              "length" : 1,
+              "text" : "7",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 26,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 46,
+              "length" : 1,
+              "text" : "3",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 22,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 47,
+              "length" : 1,
+              "text" : "7",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 26,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 48,
+              "length" : 1,
+              "text" : "3",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 22,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 49,
+              "length" : 1,
+              "text" : "7",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 26,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 50,
+              "length" : 1,
+              "text" : "3",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 22,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 51,
+              "length" : 1,
+              "text" : "7",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 26,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 52,
+              "length" : 1,
+              "text" : "3",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 22,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 53,
+              "length" : 2,
+              "text" : ", ",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 15,
+                  "width" : 10240,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 0
                 },
+                {
+                  "glyph" : 268435455,
+                  "width" : 0,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 1
+                }
+              ]
+            }
+          ]
+        }
+      },
+      {
+        "position" : [
+          0,
+          34280
+        ],
+        "line" : {
+          "start-index" : 55,
+          "length" : 25,
+          "start-offset" : 55,
+          "n-chars" : 25,
+          "wrapped" : true,
+          "ellipsized" : false,
+          "hyphenated" : false,
+          "justified" : false,
+          "paragraph-start" : false,
+          "paragraph-end" : false,
+          "direction" : "ltr",
+          "runs" : [
+            {
+              "offset" : 55,
+              "length" : 1,
+              "text" : "0",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 19,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 41
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 56,
+              "length" : 1,
+              "text" : "x",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 91,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 42
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 57,
+              "length" : 1,
+              "text" : "7",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 26,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 43
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 58,
+              "length" : 2,
+              "text" : "33",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 22,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 44
-                },
-                {
-                  "glyph" : 26,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 45
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 22,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 46
-                },
+                  "log-cluster" : 1
+                }
+              ]
+            },
+            {
+              "offset" : 60,
+              "length" : 1,
+              "text" : "2",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
-                  "glyph" : 26,
+                  "glyph" : 21,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 47
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 61,
+              "length" : 1,
+              "text" : "3",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 22,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 48
-                },
-                {
-                  "glyph" : 26,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 49
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 62,
+              "length" : 1,
+              "text" : "1",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
-                  "glyph" : 22,
+                  "glyph" : 20,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 50
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 63,
+              "length" : 1,
+              "text" : "7",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 26,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 51
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 64,
+              "length" : 1,
+              "text" : "3",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 22,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 52
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 65,
+              "length" : 1,
+              "text" : "6",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
-                  "glyph" : 15,
+                  "glyph" : 25,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 53
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 66,
+              "length" : 1,
+              "text" : "5",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
-                  "glyph" : 268435455,
-                  "width" : 0,
+                  "glyph" : 24,
+                  "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 54
+                  "log-cluster" : 0
                 }
-              ]
-            }
-          ]
-        }
-      },
-      {
-        "position" : [
-          0,
-          34816
-        ],
-        "line" : {
-          "start-index" : 55,
-          "length" : 25,
-          "start-offset" : 55,
-          "n-chars" : 25,
-          "wrapped" : true,
-          "ellipsized" : false,
-          "hyphenated" : false,
-          "justified" : false,
-          "paragraph-start" : false,
-          "paragraph-end" : false,
-          "direction" : "ltr",
-          "runs" : [
+              ]
+            },
             {
-              "offset" : 55,
-              "length" : 25,
-              "text" : "0x73323173656374657374), ",
+              "offset" : 67,
+              "length" : 1,
+              "text" : "6",
               "bidi-level" : 0,
               "gravity" : "south",
               "language" : "en-us",
@@ -990,155 +2107,292 @@
               "start-x-offset" : 0,
               "end-x-offset" : 0,
               "glyphs" : [
-                {
-                  "glyph" : 19,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 0
-                },
-                {
-                  "glyph" : 91,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 1
-                },
-                {
-                  "glyph" : 26,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 2
-                },
-                {
-                  "glyph" : 22,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 3
-                },
-                {
-                  "glyph" : 22,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 4
-                },
-                {
-                  "glyph" : 21,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 5
-                },
-                {
-                  "glyph" : 22,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 6
-                },
-                {
-                  "glyph" : 20,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 7
-                },
-                {
-                  "glyph" : 26,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 8
-                },
-                {
-                  "glyph" : 22,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 9
-                },
-                {
-                  "glyph" : 25,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 10
-                },
-                {
-                  "glyph" : 24,
-                  "width" : 10240,
-                  "is-cluster-start" : true,
-                  "log-cluster" : 11
-                },
                 {
                   "glyph" : 25,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 12
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 68,
+              "length" : 1,
+              "text" : "3",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 22,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 13
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 69,
+              "length" : 1,
+              "text" : "7",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 26,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 14
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 70,
+              "length" : 1,
+              "text" : "4",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 23,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 15
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 71,
+              "length" : 1,
+              "text" : "6",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 25,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 16
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 72,
+              "length" : 1,
+              "text" : "5",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 24,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 17
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 73,
+              "length" : 1,
+              "text" : "7",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 26,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 18
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 74,
+              "length" : 1,
+              "text" : "3",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 22,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 19
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 75,
+              "length" : 1,
+              "text" : "7",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 26,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 20
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 76,
+              "length" : 1,
+              "text" : "4",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 23,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 21
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 77,
+              "length" : 1,
+              "text" : ")",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 12,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 22
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 78,
+              "length" : 2,
+              "text" : ", ",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 15,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 23
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 268435455,
                   "width" : 0,
                   "is-cluster-start" : true,
-                  "log-cluster" : 24
+                  "log-cluster" : 1
                 }
               ]
             }
@@ -1148,7 +2402,7 @@
       {
         "position" : [
           0,
-          54272
+          53352
         ],
         "line" : {
           "start-index" : 80,
@@ -1165,8 +2419,8 @@
           "runs" : [
             {
               "offset" : 80,
-              "length" : 6,
-              "text" : "NULL--",
+              "length" : 1,
+              "text" : "N",
               "bidi-level" : 0,
               "gravity" : "south",
               "language" : "en-us",
@@ -1185,36 +2439,93 @@
                   "width" : 10240,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
-                },
+                }
+              ]
+            },
+            {
+              "offset" : 81,
+              "length" : 1,
+              "text" : "U",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 56,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 1
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 82,
+              "length" : 2,
+              "text" : "LL",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 47,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 2
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 47,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 3
-                },
+                  "log-cluster" : 1
+                }
+              ]
+            },
+            {
+              "offset" : 84,
+              "length" : 2,
+              "text" : "--",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 16,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 4
+                  "log-cluster" : 0
                 },
                 {
                   "glyph" : 16,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 5
+                  "log-cluster" : 1
                 }
               ]
             },
@@ -1320,8 +2631,8 @@
             },
             {
               "offset" : 90,
-              "length" : 10,
-              "text" : "-->(MYSQL)",
+              "length" : 2,
+              "text" : "--",
               "bidi-level" : 0,
               "gravity" : "south",
               "language" : "en-us",
@@ -1346,54 +2657,206 @@
                   "width" : 10240,
                   "is-cluster-start" : true,
                   "log-cluster" : 1
-                },
+                }
+              ]
+            },
+            {
+              "offset" : 92,
+              "length" : 1,
+              "text" : ">",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 33,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 2
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 93,
+              "length" : 1,
+              "text" : "(",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 11,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 3
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 94,
+              "length" : 1,
+              "text" : "M",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 48,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 4
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 95,
+              "length" : 1,
+              "text" : "Y",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 60,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 5
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 96,
+              "length" : 1,
+              "text" : "S",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 54,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 6
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 97,
+              "length" : 1,
+              "text" : "Q",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 52,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 7
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 98,
+              "length" : 1,
+              "text" : "L",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 47,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 8
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 99,
+              "length" : 1,
+              "text" : ")",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "DejaVu Sans Mono 12",
+                "checksum" : "84c5467cadd1f6f23db0d9fbb6377e0d301334d3b5f36e6d5acebd34d0857d3a"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 12,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 9
+                  "log-cluster" : 0
                 }
               ]
             }
diff --git a/tests/layouts/tabs-nowrap.layout b/tests/layouts/tabs-nowrap.layout
index dfbd8c16..c450fc93 100644
--- a/tests/layouts/tabs-nowrap.layout
+++ b/tests/layouts/tabs-nowrap.layout
@@ -125,12 +125,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 239616,
-    "height" : 104448,
+    "height" : 101716,
     "lines" : [
       {
         "position" : [
           0,
-          40960
+          40554
         ],
         "line" : {
           "start-index" : 0,
@@ -256,7 +256,7 @@
       {
         "position" : [
           0,
-          93184
+          91412
         ],
         "line" : {
           "start-index" : 6,
diff --git a/tests/layouts/tabs.layout b/tests/layouts/tabs.layout
index b9ba962e..9a9dd748 100644
--- a/tests/layouts/tabs.layout
+++ b/tests/layouts/tabs.layout
@@ -504,12 +504,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 460800,
-    "height" : 73728,
+    "height" : 68811,
     "lines" : [
       {
         "position" : [
           0,
-          19456
+          18789
         ],
         "line" : {
           "start-index" : 0,
@@ -830,7 +830,7 @@
               "glyphs" : [
                 {
                   "glyph" : 268435455,
-                  "width" : 39424,
+                  "width" : 44544,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 }
@@ -876,7 +876,7 @@
       {
         "position" : [
           0,
-          44032
+          41726
         ],
         "line" : {
           "start-index" : 22,
@@ -1203,7 +1203,7 @@
               "glyphs" : [
                 {
                   "glyph" : 268435455,
-                  "width" : 33792,
+                  "width" : 38912,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 }
@@ -1255,7 +1255,7 @@
       {
         "position" : [
           0,
-          68608
+          64663
         ],
         "line" : {
           "start-index" : 46,
diff --git a/tests/layouts/valid-1.layout b/tests/layouts/valid-1.layout
index 68203657..84375cb2 100644
--- a/tests/layouts/valid-1.layout
+++ b/tests/layouts/valid-1.layout
@@ -336,12 +336,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 225280,
-    "height" : 19456,
+    "height" : 18022,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -366,10 +366,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -520,10 +517,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -622,10 +616,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 2,
               "extra-attributes" : [
diff --git a/tests/layouts/valid-10.layout b/tests/layouts/valid-10.layout
index 802da8cc..32041025 100644
--- a/tests/layouts/valid-10.layout
+++ b/tests/layouts/valid-10.layout
@@ -157,12 +157,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 102400,
-    "height" : 19456,
+    "height" : 18305,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -187,10 +187,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -236,9 +233,9 @@
               ]
             },
             {
-              "offset" : 6,
-              "length" : 8,
-              "text" : "שלום",
+              "offset" : 12,
+              "length" : 2,
+              "text" : "ם",
               "bidi-level" : 1,
               "gravity" : "south",
               "language" : "he",
@@ -256,20 +253,77 @@
                   "glyph" : 1332,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 6
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 10,
+              "length" : 2,
+              "text" : "ו",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1324,
                   "width" : 4096,
                   "is-cluster-start" : true,
-                  "log-cluster" : 4
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 8,
+              "length" : 2,
+              "text" : "ל",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1331,
                   "width" : 8192,
                   "is-cluster-start" : true,
-                  "log-cluster" : 2
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 6,
+              "length" : 2,
+              "text" : "ש",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1344,
                   "width" : 10240,
@@ -287,11 +341,8 @@
               "language" : "he",
               "script" : "Hebr",
               "font" : {
-                "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -299,8 +350,8 @@
               "end-x-offset" : 0,
               "glyphs" : [
                 {
-                  "glyph" : 1109,
-                  "width" : 3072,
+                  "glyph" : 3,
+                  "width" : 5120,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 }
@@ -316,10 +367,7 @@
               "script" : "Grek",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -344,10 +392,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 2,
               "extra-attributes" : [
@@ -363,7 +408,7 @@
               "glyphs" : [
                 {
                   "glyph" : 1062,
-                  "width" : 19456,
+                  "width" : 17408,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 }
diff --git a/tests/layouts/valid-11.layout b/tests/layouts/valid-11.layout
index 23082183..e95712d9 100644
--- a/tests/layouts/valid-11.layout
+++ b/tests/layouts/valid-11.layout
@@ -31,19 +31,25 @@
       "start" : 7,
       "end" : 10,
       "type" : "underline",
-      "value" : "low"
+      "value" : "single"
+    },
+    {
+      "start" : 7,
+      "end" : 10,
+      "type" : "underline-position",
+      "value" : "under"
     },
     {
       "start" : 7,
       "end" : 10,
       "type" : "strikethrough",
-      "value" : true
+      "value" : "single"
     },
     {
       "start" : 11,
       "end" : 16,
       "type" : "underline",
-      "value" : "error"
+      "value" : "dotted"
     },
     {
       "start" : 11,
@@ -168,12 +174,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 109568,
-    "height" : 20480,
+    "height" : 19046,
     "lines" : [
       {
         "position" : [
           0,
-          16384
+          15787
         ],
         "line" : {
           "start-index" : 0,
@@ -198,10 +204,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -268,10 +271,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -296,10 +296,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -307,13 +304,19 @@
                   "start" : 7,
                   "end" : 10,
                   "type" : "underline",
-                  "value" : "low"
+                  "value" : "single"
+                },
+                {
+                  "start" : 7,
+                  "end" : 10,
+                  "type" : "underline-position",
+                  "value" : "under"
                 },
                 {
                   "start" : 7,
                   "end" : 10,
                   "type" : "strikethrough",
-                  "value" : true
+                  "value" : "single"
                 }
               ],
               "y-offset" : 0,
@@ -350,10 +353,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -378,10 +378,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -395,7 +392,7 @@
                   "start" : 11,
                   "end" : 16,
                   "type" : "underline",
-                  "value" : "error"
+                  "value" : "dotted"
                 }
               ],
               "y-offset" : 1024,
diff --git a/tests/layouts/valid-12.layout b/tests/layouts/valid-12.layout
index 4c5dae62..2c6d257a 100644
--- a/tests/layouts/valid-12.layout
+++ b/tests/layouts/valid-12.layout
@@ -184,13 +184,13 @@
     "ellipsized" : false,
     "hypenated" : false,
     "unknown-glyphs" : 1,
-    "width" : 179200,
-    "height" : 38912,
+    "width" : 173056,
+    "height" : 36044,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -215,10 +215,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -243,10 +240,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -271,10 +265,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -299,10 +290,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -327,10 +315,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -355,10 +340,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -383,10 +365,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -411,10 +390,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -423,7 +399,7 @@
               "glyphs" : [
                 {
                   "glyph" : 268443688,
-                  "width" : 17408,
+                  "width" : 11264,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 }
@@ -435,7 +411,7 @@
       {
         "position" : [
           0,
-          34816
+          32785
         ],
         "line" : {
           "start-index" : 10,
@@ -460,10 +436,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -488,10 +461,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -516,10 +486,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -544,10 +511,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -572,10 +536,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -600,10 +561,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -628,10 +586,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-13.layout b/tests/layouts/valid-13.layout
index 60ff3cff..e19df41a 100644
--- a/tests/layouts/valid-13.layout
+++ b/tests/layouts/valid-13.layout
@@ -184,13 +184,13 @@
     "ellipsized" : false,
     "hypenated" : false,
     "unknown-glyphs" : 1,
-    "width" : 179200,
-    "height" : 38912,
+    "width" : 173056,
+    "height" : 36044,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -215,10 +215,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -243,10 +240,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -271,10 +265,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -299,10 +290,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -327,10 +315,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -355,10 +340,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -383,10 +365,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -411,10 +390,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -423,7 +399,7 @@
               "glyphs" : [
                 {
                   "glyph" : 268443688,
-                  "width" : 17408,
+                  "width" : 11264,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 }
@@ -435,7 +411,7 @@
       {
         "position" : [
           0,
-          34816
+          32785
         ],
         "line" : {
           "start-index" : 10,
@@ -460,10 +436,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -488,10 +461,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -516,10 +486,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -544,10 +511,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -572,10 +536,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -600,10 +561,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -628,10 +586,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-14.layout b/tests/layouts/valid-14.layout
index b739f639..b165611b 100644
--- a/tests/layouts/valid-14.layout
+++ b/tests/layouts/valid-14.layout
@@ -175,16 +175,16 @@
   ],
   "output" : {
     "wrapped" : false,
-    "ellipsized" : true,
+    "ellipsized" : false,
     "hypenated" : false,
-    "unknown-glyphs" : 1,
+    "unknown-glyphs" : 2,
     "width" : 161792,
-    "height" : 21047,
+    "height" : 18022,
     "lines" : [
       {
         "position" : [
           0,
-          16951
+          14426
         ],
         "line" : {
           "start-index" : 0,
@@ -192,7 +192,7 @@
           "start-offset" : 0,
           "n-chars" : 22,
           "wrapped" : false,
-          "ellipsized" : true,
+          "ellipsized" : false,
           "hyphenated" : false,
           "justified" : false,
           "paragraph-start" : true,
@@ -201,71 +201,57 @@
           "runs" : [
             {
               "offset" : 0,
-              "length" : 6,
-              "text" : "你好",
+              "length" : 3,
+              "text" : "你",
               "bidi-level" : 0,
               "gravity" : "south",
-              "language" : "en-us",
-              "script" : "Zyyy",
+              "language" : "xx",
+              "script" : "Hani",
               "font" : {
-                "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
-              "flags" : 2,
-              "extra-attributes" : [
-                {
-                  "end" : 2147483647,
-                  "type" : "fallback",
-                  "value" : true
-                }
-              ],
+              "flags" : 0,
               "y-offset" : 0,
               "start-x-offset" : 0,
               "end-x-offset" : 0,
               "glyphs" : [
                 {
-                  "glyph" : 1058,
-                  "width" : 4096,
+                  "glyph" : 268455776,
+                  "width" : 11264,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
-                },
-                {
-                  "glyph" : 1058,
-                  "width" : 4096,
-                  "log-cluster" : 0
-                },
-                {
-                  "glyph" : 1058,
-                  "width" : 17408,
-                  "log-cluster" : 0
                 }
               ]
             },
             {
-              "offset" : 6,
-              "length" : 1,
-              "text" : " ",
+              "offset" : 3,
+              "length" : 4,
+              "text" : "好 ",
               "bidi-level" : 0,
               "gravity" : "south",
               "language" : "xx",
               "script" : "Hani",
               "font" : {
-                "description" : "Droid Sans Japanese 11",
-                "checksum" : "9e7449c453527829c963330ba36f4de3b20911e185a1df08a97082bb69e795d7"
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
-              "y-offset" : 567,
+              "y-offset" : 0,
               "start-x-offset" : 0,
               "end-x-offset" : 0,
               "glyphs" : [
                 {
-                  "glyph" : 268435488,
-                  "width" : 4096,
+                  "glyph" : 268458365,
+                  "width" : 11264,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
+                },
+                {
+                  "glyph" : 3,
+                  "width" : 5120,
+                  "is-cluster-start" : true,
+                  "log-cluster" : 3
                 }
               ]
             },
@@ -279,13 +265,10 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
-              "y-offset" : 0,
+              "y-offset" : -337,
               "start-x-offset" : 0,
               "end-x-offset" : 0,
               "glyphs" : [
@@ -328,9 +311,9 @@
               ]
             },
             {
-              "offset" : 13,
-              "length" : 8,
-              "text" : "שלום",
+              "offset" : 19,
+              "length" : 2,
+              "text" : "ם",
               "bidi-level" : 1,
               "gravity" : "south",
               "language" : "he",
@@ -340,7 +323,7 @@
                 "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
-              "y-offset" : 337,
+              "y-offset" : 0,
               "start-x-offset" : 0,
               "end-x-offset" : 0,
               "glyphs" : [
@@ -348,20 +331,77 @@
                   "glyph" : 1332,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 6
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 17,
+              "length" : 2,
+              "text" : "ו",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1324,
                   "width" : 4096,
                   "is-cluster-start" : true,
-                  "log-cluster" : 4
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 15,
+              "length" : 2,
+              "text" : "ל",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1331,
                   "width" : 8192,
                   "is-cluster-start" : true,
-                  "log-cluster" : 2
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 13,
+              "length" : 2,
+              "text" : "ש",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1344,
                   "width" : 10240,
@@ -379,11 +419,8 @@
               "language" : "he",
               "script" : "Hebr",
               "font" : {
-                "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -391,8 +428,8 @@
               "end-x-offset" : 0,
               "glyphs" : [
                 {
-                  "glyph" : 1109,
-                  "width" : 3072,
+                  "glyph" : 3,
+                  "width" : 5120,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 }
@@ -408,13 +445,10 @@
               "script" : "Grek",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
-              "y-offset" : 0,
+              "y-offset" : -337,
               "start-x-offset" : 0,
               "end-x-offset" : 0,
               "glyphs" : [
diff --git a/tests/layouts/valid-15.layout b/tests/layouts/valid-15.layout
index 1f18d9c1..ed062795 100644
--- a/tests/layouts/valid-15.layout
+++ b/tests/layouts/valid-15.layout
@@ -632,12 +632,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 153600,
-    "height" : 38912,
+    "height" : 36044,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -662,10 +662,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -830,7 +827,7 @@
       {
         "position" : [
           0,
-          34816
+          32785
         ],
         "line" : {
           "start-index" : 25,
@@ -855,10 +852,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -997,10 +991,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 2,
               "extra-attributes" : [
diff --git a/tests/layouts/valid-16.layout b/tests/layouts/valid-16.layout
index 7a9e0c9f..eb5f4bf9 100644
--- a/tests/layouts/valid-16.layout
+++ b/tests/layouts/valid-16.layout
@@ -633,12 +633,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 153600,
-    "height" : 38912,
+    "height" : 36044,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -663,10 +663,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -831,7 +828,7 @@
       {
         "position" : [
           0,
-          34816
+          32785
         ],
         "line" : {
           "start-index" : 25,
@@ -856,10 +853,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -998,10 +992,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 2,
               "extra-attributes" : [
diff --git a/tests/layouts/valid-17.layout b/tests/layouts/valid-17.layout
index 8e9b1292..4984b3bb 100644
--- a/tests/layouts/valid-17.layout
+++ b/tests/layouts/valid-17.layout
@@ -134,12 +134,12 @@
     "hypenated" : true,
     "unknown-glyphs" : 0,
     "width" : 93184,
-    "height" : 38912,
+    "height" : 36327,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -164,10 +164,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -235,10 +232,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -300,10 +294,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -361,7 +352,7 @@
       {
         "position" : [
           0,
-          34816
+          33068
         ],
         "line" : {
           "start-index" : 19,
@@ -386,10 +377,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-18.layout b/tests/layouts/valid-18.layout
index 77cfe7e7..d8a85f8a 100644
--- a/tests/layouts/valid-18.layout
+++ b/tests/layouts/valid-18.layout
@@ -322,13 +322,13 @@
     "ellipsized" : false,
     "hypenated" : false,
     "unknown-glyphs" : 5,
-    "width" : 302080,
-    "height" : 38912,
+    "width" : 271360,
+    "height" : 36044,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -353,10 +353,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -478,10 +475,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -497,7 +491,7 @@
               "glyphs" : [
                 {
                   "glyph" : 268443688,
-                  "width" : 17408,
+                  "width" : 11264,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 }
@@ -509,7 +503,7 @@
       {
         "position" : [
           0,
-          34816
+          32785
         ],
         "line" : {
           "start-index" : 19,
@@ -534,10 +528,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -595,7 +586,7 @@
                 },
                 {
                   "glyph" : 268435629,
-                  "width" : 23552,
+                  "width" : 15360,
                   "is-cluster-start" : true,
                   "log-cluster" : 7
                 },
@@ -613,7 +604,7 @@
                 },
                 {
                   "glyph" : 268435629,
-                  "width" : 23552,
+                  "width" : 15360,
                   "is-cluster-start" : true,
                   "log-cluster" : 11
                 },
@@ -685,7 +676,7 @@
                 },
                 {
                   "glyph" : 268500735,
-                  "width" : 23552,
+                  "width" : 15360,
                   "is-cluster-start" : true,
                   "log-cluster" : 24
                 },
@@ -715,7 +706,7 @@
                 },
                 {
                   "glyph" : 268443660,
-                  "width" : 17408,
+                  "width" : 11264,
                   "is-cluster-start" : true,
                   "log-cluster" : 31
                 },
diff --git a/tests/layouts/valid-19.layout b/tests/layouts/valid-19.layout
index 4ad51403..dd85b1e3 100644
--- a/tests/layouts/valid-19.layout
+++ b/tests/layouts/valid-19.layout
@@ -159,13 +159,13 @@
     "ellipsized" : false,
     "hypenated" : false,
     "unknown-glyphs" : 0,
-    "width" : 166912,
-    "height" : 19456,
+    "width" : 203776,
+    "height" : 18430,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -227,15 +227,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Noto Color Emoji 11",
-                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47",
-                "matrix" : [
-                  0.13455956135321101,
-                  -0,
-                  -0,
-                  0.13455956135321101,
-                  0,
-                  0
-                ]
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -267,10 +259,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -287,23 +276,15 @@
             },
             {
               "offset" : 16,
-              "length" : 8,
-              "text" : "🇩🇪",
+              "length" : 4,
+              "text" : "🇩",
               "bidi-level" : 0,
               "gravity" : "south",
               "language" : "en-us",
               "script" : "Zyyy",
               "font" : {
                 "description" : "Noto Color Emoji 11",
-                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47",
-                "matrix" : [
-                  0.13455956135321101,
-                  -0,
-                  -0,
-                  0.13455956135321101,
-                  0,
-                  0
-                ]
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -311,7 +292,33 @@
               "end-x-offset" : 0,
               "glyphs" : [
                 {
-                  "glyph" : 22,
+                  "glyph" : 8,
+                  "width" : 18432,
+                  "is-cluster-start" : true,
+                  "is-color" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 20,
+              "length" : 4,
+              "text" : "🇪",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Zyyy",
+              "font" : {
+                "description" : "Noto Color Emoji 11",
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 9,
                   "width" : 18432,
                   "is-cluster-start" : true,
                   "is-color" : true,
@@ -329,10 +336,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -357,15 +361,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Noto Color Emoji 11",
-                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47",
-                "matrix" : [
-                  0.13455956135321101,
-                  -0,
-                  -0,
-                  0.13455956135321101,
-                  0,
-                  0
-                ]
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -391,10 +387,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -411,23 +404,15 @@
             },
             {
               "offset" : 29,
-              "length" : 7,
-              "text" : "✋🏾",
+              "length" : 3,
+              "text" : "✋",
               "bidi-level" : 0,
               "gravity" : "south",
               "language" : "en-us",
               "script" : "Zyyy",
               "font" : {
                 "description" : "Noto Color Emoji 11",
-                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47",
-                "matrix" : [
-                  0.13455956135321101,
-                  -0,
-                  -0,
-                  0.13455956135321101,
-                  0,
-                  0
-                ]
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -435,7 +420,33 @@
               "end-x-offset" : 0,
               "glyphs" : [
                 {
-                  "glyph" : 21,
+                  "glyph" : 7,
+                  "width" : 18432,
+                  "is-cluster-start" : true,
+                  "is-color" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 32,
+              "length" : 4,
+              "text" : "🏾",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Zyyy",
+              "font" : {
+                "description" : "Noto Color Emoji 11",
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 11,
                   "width" : 18432,
                   "is-cluster-start" : true,
                   "is-color" : true,
@@ -453,10 +464,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -505,15 +513,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Noto Color Emoji 11",
-                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47",
-                "matrix" : [
-                  0.13455956135321101,
-                  -0,
-                  -0,
-                  0.13455956135321101,
-                  0,
-                  0
-                ]
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -551,10 +551,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-2.layout b/tests/layouts/valid-2.layout
index 8d06d1d2..70edab66 100644
--- a/tests/layouts/valid-2.layout
+++ b/tests/layouts/valid-2.layout
@@ -240,12 +240,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 200704,
-    "height" : 19456,
+    "height" : 18022,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -270,10 +270,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -345,11 +342,16 @@
               "language" : "en-us",
               "script" : "Latn",
               "font" : {
-                "description" : "Cantarell 11",
+                "description" : "Cantarell Italic 11",
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "matrix" : [
+                  1,
+                  0.20000000000000001,
+                  0,
+                  1,
+                  0,
+                  0
+                ]
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -392,10 +394,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -456,10 +455,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -516,10 +512,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-20.layout b/tests/layouts/valid-20.layout
index ebc1cab5..52823340 100644
--- a/tests/layouts/valid-20.layout
+++ b/tests/layouts/valid-20.layout
@@ -89,12 +89,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 76800,
-    "height" : 25600,
+    "height" : 23774,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -119,10 +119,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell Rotated-Left 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -144,24 +141,24 @@
                 {
                   "glyph" : 244,
                   "width" : 18432,
-                  "x-offset" : 14764,
-                  "y-offset" : 3845,
+                  "x-offset" : 14336,
+                  "y-offset" : 4096,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 },
                 {
                   "glyph" : 272,
                   "width" : 18432,
-                  "x-offset" : 14764,
-                  "y-offset" : 4280,
+                  "x-offset" : 14336,
+                  "y-offset" : 4096,
                   "is-cluster-start" : true,
                   "log-cluster" : 1
                 },
                 {
                   "glyph" : 273,
                   "width" : 18432,
-                  "x-offset" : 14764,
-                  "y-offset" : 3507,
+                  "x-offset" : 14336,
+                  "y-offset" : 3072,
                   "is-cluster-start" : true,
                   "log-cluster" : 2
                 }
@@ -177,10 +174,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
diff --git a/tests/layouts/valid-21.layout b/tests/layouts/valid-21.layout
index f8d0dd11..5cea18dc 100644
--- a/tests/layouts/valid-21.layout
+++ b/tests/layouts/valid-21.layout
@@ -61,13 +61,13 @@
     "ellipsized" : false,
     "hypenated" : false,
     "unknown-glyphs" : 1,
-    "width" : 45056,
-    "height" : 19456,
+    "width" : 36864,
+    "height" : 18430,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -92,15 +92,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Noto Color Emoji 11",
-                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47",
-                "matrix" : [
-                  0.13455956135321101,
-                  -0,
-                  -0,
-                  0.13455956135321101,
-                  0,
-                  0
-                ]
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -138,10 +130,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -162,7 +151,7 @@
                 },
                 {
                   "glyph" : 268443661,
-                  "width" : 23552,
+                  "width" : 15360,
                   "is-cluster-start" : true,
                   "log-cluster" : 1
                 }
diff --git a/tests/layouts/valid-22.layout b/tests/layouts/valid-22.layout
index b5c4ab1b..85b7b5ba 100644
--- a/tests/layouts/valid-22.layout
+++ b/tests/layouts/valid-22.layout
@@ -184,12 +184,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 49152,
-    "height" : 22658,
+    "height" : 21100,
     "lines" : [
       {
         "position" : [
           0,
-          16312
+          15708
         ],
         "line" : {
           "start-index" : 0,
@@ -214,10 +214,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -241,11 +238,16 @@
               "language" : "en-us",
               "script" : "Latn",
               "font" : {
-                "description" : "Cantarell 7.1484375",
+                "description" : "Cantarell Italic 7.1494140625",
                 "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "matrix" : [
+                  1,
+                  0.20000000000000001,
+                  0,
+                  1,
+                  0,
+                  0
+                ]
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -284,10 +286,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -329,11 +328,8 @@
               "language" : "en-us",
               "script" : "Latn",
               "font" : {
-                "description" : "Cantarell 7.1484375",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "description" : "Cantarell 7.1494140625",
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -371,11 +367,8 @@
               "language" : "en-us",
               "script" : "Latn",
               "font" : {
-                "description" : "Cantarell 4.646484375",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "description" : "Cantarell 4.6474609375",
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -426,10 +419,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 3.0205078125",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -491,11 +481,8 @@
               "language" : "en-us",
               "script" : "Latn",
               "font" : {
-                "description" : "Cantarell 1.962890625",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "description" : "Cantarell 1.9638671875",
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -570,10 +557,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 1.2763671875",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
diff --git a/tests/layouts/valid-3.layout b/tests/layouts/valid-3.layout
index 48a0a824..c32ff56e 100644
--- a/tests/layouts/valid-3.layout
+++ b/tests/layouts/valid-3.layout
@@ -71,12 +71,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 56320,
-    "height" : 19456,
+    "height" : 18430,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -101,10 +101,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -141,15 +138,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Noto Color Emoji 11",
-                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47",
-                "matrix" : [
-                  0.13455956135321101,
-                  -0,
-                  -0,
-                  0.13455956135321101,
-                  0,
-                  0
-                ]
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -181,10 +170,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-4.layout b/tests/layouts/valid-4.layout
index 57ae012b..f3ee1261 100644
--- a/tests/layouts/valid-4.layout
+++ b/tests/layouts/valid-4.layout
@@ -876,12 +876,12 @@
     "hypenated" : true,
     "unknown-glyphs" : 0,
     "width" : 197632,
-    "height" : 97280,
+    "height" : 90110,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -906,10 +906,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 4,
               "y-offset" : 0,
@@ -1109,7 +1106,7 @@
       {
         "position" : [
           0,
-          34816
+          32785
         ],
         "line" : {
           "start-index" : 32,
@@ -1134,10 +1131,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1338,7 +1332,7 @@
       {
         "position" : [
           0,
-          54272
+          50807
         ],
         "line" : {
           "start-index" : 63,
@@ -1363,10 +1357,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 4,
               "y-offset" : 0,
@@ -1560,7 +1551,7 @@
       {
         "position" : [
           0,
-          73728
+          68829
         ],
         "line" : {
           "start-index" : 96,
@@ -1585,10 +1576,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1795,7 +1783,7 @@
       {
         "position" : [
           0,
-          93184
+          86851
         ],
         "line" : {
           "start-index" : 129,
@@ -1820,10 +1808,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-5.layout b/tests/layouts/valid-5.layout
index 6af0f947..744caeaa 100644
--- a/tests/layouts/valid-5.layout
+++ b/tests/layouts/valid-5.layout
@@ -776,12 +776,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 194560,
-    "height" : 116736,
+    "height" : 108132,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -806,10 +806,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -958,7 +955,7 @@
       {
         "position" : [
           0,
-          34816
+          32785
         ],
         "line" : {
           "start-index" : 21,
@@ -983,10 +980,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -1147,7 +1141,7 @@
       {
         "position" : [
           0,
-          54272
+          50807
         ],
         "line" : {
           "start-index" : 44,
@@ -1172,10 +1166,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -1378,7 +1369,7 @@
       {
         "position" : [
           0,
-          73728
+          68829
         ],
         "line" : {
           "start-index" : 74,
@@ -1403,10 +1394,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -1525,7 +1513,7 @@
       {
         "position" : [
           0,
-          93184
+          86851
         ],
         "line" : {
           "start-index" : 91,
@@ -1550,10 +1538,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -1718,7 +1703,7 @@
       {
         "position" : [
           0,
-          112640
+          104873
         ],
         "line" : {
           "start-index" : 117,
@@ -1743,10 +1728,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-6.layout b/tests/layouts/valid-6.layout
index 2f419e58..83d5ebdd 100644
--- a/tests/layouts/valid-6.layout
+++ b/tests/layouts/valid-6.layout
@@ -162,13 +162,13 @@
     "ellipsized" : false,
     "hypenated" : false,
     "unknown-glyphs" : 0,
-    "width" : 142336,
-    "height" : 19456,
+    "width" : 160768,
+    "height" : 18430,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -193,10 +193,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -213,23 +210,15 @@
             },
             {
               "offset" : 1,
-              "length" : 7,
-              "text" : "0️⃣",
+              "length" : 4,
+              "text" : "0️",
               "bidi-level" : 0,
               "gravity" : "south",
               "language" : "en-us",
               "script" : "Latn",
               "font" : {
                 "description" : "Noto Color Emoji 11",
-                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47",
-                "matrix" : [
-                  0.13455956135321101,
-                  -0,
-                  -0,
-                  0.13455956135321101,
-                  0,
-                  0
-                ]
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -237,7 +226,33 @@
               "end-x-offset" : 0,
               "glyphs" : [
                 {
-                  "glyph" : 19,
+                  "glyph" : 3,
+                  "width" : 18432,
+                  "is-cluster-start" : true,
+                  "is-color" : true,
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 5,
+              "length" : 3,
+              "text" : "⃣",
+              "bidi-level" : 0,
+              "gravity" : "south",
+              "language" : "en-us",
+              "script" : "Latn",
+              "font" : {
+                "description" : "Noto Color Emoji 11",
+                "checksum" : "054c1c2e2ca956b920262840dcad39dcf27bb88d6f70b892b2b1180de2c2ab47"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
+                {
+                  "glyph" : 5,
                   "width" : 18432,
                   "is-cluster-start" : true,
                   "is-color" : true,
@@ -255,10 +270,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-7.layout b/tests/layouts/valid-7.layout
index 812f31de..d340f6f5 100644
--- a/tests/layouts/valid-7.layout
+++ b/tests/layouts/valid-7.layout
@@ -337,12 +337,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 153600,
-    "height" : 19456,
+    "height" : 18022,
     "lines" : [
       {
         "position" : [
           51200,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -367,10 +367,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -461,10 +458,7 @@
               "script" : "Zyyy",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 2,
               "extra-attributes" : [
@@ -496,10 +490,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -550,10 +541,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-8.layout b/tests/layouts/valid-8.layout
index 60423aae..f5a62622 100644
--- a/tests/layouts/valid-8.layout
+++ b/tests/layouts/valid-8.layout
@@ -156,13 +156,13 @@
     "ellipsized" : false,
     "hypenated" : false,
     "unknown-glyphs" : 0,
-    "width" : 132096,
-    "height" : 19456,
+    "width" : 134144,
+    "height" : 18305,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -187,10 +187,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -236,9 +233,9 @@
               ]
             },
             {
-              "offset" : 6,
-              "length" : 8,
-              "text" : "שלום",
+              "offset" : 12,
+              "length" : 2,
+              "text" : "ם",
               "bidi-level" : 1,
               "gravity" : "south",
               "language" : "he",
@@ -256,20 +253,77 @@
                   "glyph" : 1332,
                   "width" : 10240,
                   "is-cluster-start" : true,
-                  "log-cluster" : 6
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 10,
+              "length" : 2,
+              "text" : "ו",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1324,
                   "width" : 4096,
                   "is-cluster-start" : true,
-                  "log-cluster" : 4
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 8,
+              "length" : 2,
+              "text" : "ל",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1331,
                   "width" : 8192,
                   "is-cluster-start" : true,
-                  "log-cluster" : 2
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 6,
+              "length" : 2,
+              "text" : "ש",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1344,
                   "width" : 10240,
@@ -287,11 +341,8 @@
               "language" : "he",
               "script" : "Hebr",
               "font" : {
-                "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "y-offset" : 0,
@@ -299,8 +350,8 @@
               "end-x-offset" : 0,
               "glyphs" : [
                 {
-                  "glyph" : 1109,
-                  "width" : 3072,
+                  "glyph" : 3,
+                  "width" : 5120,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 }
@@ -316,10 +367,7 @@
               "script" : "Grek",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "y-offset" : 0,
diff --git a/tests/layouts/valid-9.layout b/tests/layouts/valid-9.layout
index be027d0c..bca89f44 100644
--- a/tests/layouts/valid-9.layout
+++ b/tests/layouts/valid-9.layout
@@ -163,12 +163,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 71392,
-    "height" : 77824,
+    "height" : 71548,
     "lines" : [
       {
         "position" : [
           0,
-          15360
+          14763
         ],
         "line" : {
           "start-index" : 0,
@@ -193,10 +193,7 @@
               "script" : "Latn",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -259,7 +256,7 @@
       {
         "position" : [
           0,
-          34816
+          31962
         ],
         "line" : {
           "start-index" : 6,
@@ -275,9 +272,9 @@
           "direction" : "ltr",
           "runs" : [
             {
-              "offset" : 6,
-              "length" : 8,
-              "text" : "שלום",
+              "offset" : 12,
+              "length" : 2,
+              "text" : "ם",
               "bidi-level" : 1,
               "gravity" : "south",
               "language" : "he",
@@ -302,22 +299,100 @@
                   "glyph" : 1332,
                   "width" : 14684,
                   "is-cluster-start" : true,
-                  "log-cluster" : 6
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 10,
+              "length" : 2,
+              "text" : "ו",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "extra-attributes" : [
+                {
+                  "end" : 30,
+                  "type" : "letter-spacing",
+                  "value" : 8888
+                }
+              ],
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1324,
                   "width" : 12984,
                   "x-offset" : 4444,
                   "is-cluster-start" : true,
-                  "log-cluster" : 4
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 8,
+              "length" : 2,
+              "text" : "ל",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "extra-attributes" : [
+                {
+                  "end" : 30,
+                  "type" : "letter-spacing",
+                  "value" : 8888
+                }
+              ],
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1331,
                   "width" : 17080,
                   "x-offset" : 4444,
                   "is-cluster-start" : true,
-                  "log-cluster" : 2
-                },
+                  "log-cluster" : 0
+                }
+              ]
+            },
+            {
+              "offset" : 6,
+              "length" : 2,
+              "text" : "ש",
+              "bidi-level" : 1,
+              "gravity" : "south",
+              "language" : "he",
+              "script" : "Hebr",
+              "font" : {
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
+              },
+              "flags" : 0,
+              "extra-attributes" : [
+                {
+                  "end" : 30,
+                  "type" : "letter-spacing",
+                  "value" : 8888
+                }
+              ],
+              "y-offset" : 0,
+              "start-x-offset" : 0,
+              "end-x-offset" : 0,
+              "glyphs" : [
                 {
                   "glyph" : 1344,
                   "width" : 19128,
@@ -336,11 +411,8 @@
               "language" : "he",
               "script" : "Hebr",
               "font" : {
-                "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "description" : "DejaVu Sans 11",
+                "checksum" : "69ccd07023a72ceb27a5e5c22f728627353b60a198170f5e58dd7014221abf01"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -369,7 +441,7 @@
       {
         "position" : [
           0,
-          54272
+          50267
         ],
         "line" : {
           "start-index" : 15,
@@ -394,10 +466,7 @@
               "script" : "Grek",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
@@ -453,7 +522,7 @@
       {
         "position" : [
           0,
-          73728
+          68289
         ],
         "line" : {
           "start-index" : 24,
@@ -478,10 +547,7 @@
               "script" : "Grek",
               "font" : {
                 "description" : "Cantarell 11",
-                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2",
-                "variations" : {
-                  "wght" : 0
-                }
+                "checksum" : "5bcb6ee14ee9d210b2e91d643de1fe456e9d1aea770983fdb05951545efebbe2"
               },
               "flags" : 0,
               "extra-attributes" : [
diff --git a/tests/layouts/vertical.layout b/tests/layouts/vertical.layout
index bd2c0af8..ebfde141 100644
--- a/tests/layouts/vertical.layout
+++ b/tests/layouts/vertical.layout
@@ -93,12 +93,12 @@
     "hypenated" : false,
     "unknown-glyphs" : 0,
     "width" : 294912,
-    "height" : 49152,
+    "height" : 47448,
     "lines" : [
       {
         "position" : [
           0,
-          24576
+          23724
         ],
         "line" : {
           "start-index" : 0,
@@ -133,24 +133,24 @@
                 {
                   "glyph" : 1,
                   "width" : 32768,
-                  "x-offset" : 28836,
-                  "y-offset" : 9945,
+                  "x-offset" : 28672,
+                  "y-offset" : 10240,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 },
                 {
                   "glyph" : 2,
                   "width" : 32768,
-                  "x-offset" : 28836,
-                  "y-offset" : 10764,
+                  "x-offset" : 28672,
+                  "y-offset" : 11264,
                   "is-cluster-start" : true,
                   "log-cluster" : 1
                 },
                 {
                   "glyph" : 3,
                   "width" : 32768,
-                  "x-offset" : 28836,
-                  "y-offset" : 10453,
+                  "x-offset" : 28672,
+                  "y-offset" : 10240,
                   "is-cluster-start" : true,
                   "log-cluster" : 2
                 }
@@ -176,7 +176,7 @@
                 {
                   "glyph" : 4,
                   "width" : 32768,
-                  "x-offset" : 28836,
+                  "x-offset" : 28672,
                   "y-offset" : 16384,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
@@ -184,7 +184,7 @@
                 {
                   "glyph" : 5,
                   "width" : 32768,
-                  "x-offset" : 28836,
+                  "x-offset" : 28672,
                   "y-offset" : 16384,
                   "is-cluster-start" : true,
                   "log-cluster" : 3
@@ -192,7 +192,7 @@
                 {
                   "glyph" : 7,
                   "width" : 32768,
-                  "x-offset" : 28836,
+                  "x-offset" : 28672,
                   "y-offset" : 16384,
                   "is-cluster-start" : true,
                   "log-cluster" : 6
@@ -219,24 +219,24 @@
                 {
                   "glyph" : 1,
                   "width" : 32768,
-                  "x-offset" : 28836,
-                  "y-offset" : 9945,
+                  "x-offset" : 28672,
+                  "y-offset" : 10240,
                   "is-cluster-start" : true,
                   "log-cluster" : 0
                 },
                 {
                   "glyph" : 2,
                   "width" : 32768,
-                  "x-offset" : 28836,
-                  "y-offset" : 10764,
+                  "x-offset" : 28672,
+                  "y-offset" : 11264,
                   "is-cluster-start" : true,
                   "log-cluster" : 1
                 },
                 {
                   "glyph" : 3,
                   "width" : 32768,
-                  "x-offset" : 28836,
-                  "y-offset" : 10453,
+                  "x-offset" : 28672,
+                  "y-offset" : 10240,
                   "is-cluster-start" : true,
                   "log-cluster" : 2
                 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]