From 7b9d96838143d2e803d97cf3ff487f731e7ec8ad Mon Sep 17 00:00:00 2001
From: Ryan Oldenburg <guzba8@gmail.com>
Date: Thu, 25 Feb 2021 11:39:23 -0600
Subject: [PATCH 1/4] small comment things

---
 src/pixie.nim                 | 36 +++++++++++++++---------------
 src/pixie/blends.nim          | 42 +++++++++++++++++------------------
 src/pixie/fileformats/svg.nim |  2 +-
 src/pixie/images.nim          |  2 +-
 src/pixie/paths.nim           | 34 +++++++++++++++++-----------
 5 files changed, 62 insertions(+), 54 deletions(-)

diff --git a/src/pixie.nim b/src/pixie.nim
index 3ce03ea..ed9cca4 100644
--- a/src/pixie.nim
+++ b/src/pixie.nim
@@ -52,13 +52,13 @@ proc writeFile*(image: Image, filePath: string) =
   image.writeFile(filePath, fileformat)
 
 proc fillRect*(image: Image, rect: Rect, color: ColorRGBA) =
-  ## Fill a rectangle.
+  ## Fills a rectangle.
   var path: Path
   path.rect(rect)
   image.fillPath(path, color)
 
 proc fillRect*(mask: Mask, rect: Rect) =
-  ## Fill a rectangle.
+  ## Fills a rectangle.
   var path: Path
   path.rect(rect)
   mask.fillPath(path)
@@ -66,13 +66,13 @@ proc fillRect*(mask: Mask, rect: Rect) =
 proc strokeRect*(
   image: Image, rect: Rect, color: ColorRGBA, strokeWidth = 1.0
 ) =
-  ## Stroke a rounded rectangle.
+  ## Strokes a rectangle.
   var path: Path
   path.rect(rect)
   image.strokePath(path, color, strokeWidth)
 
 proc strokeRect*(mask: Mask, rect: Rect, strokeWidth = 1.0) =
-  ## Stroke a rounded rectangle.
+  ## Strokes a rectangle.
   var path: Path
   path.rect(rect)
   mask.strokePath(path, strokeWidth)
@@ -83,7 +83,7 @@ proc fillRoundedRect*(
   nw, ne, se, sw: float32,
   color: ColorRGBA
 ) =
-  ## Fill a rounded rectangle.
+  ## Fills a rounded rectangle.
   var path: Path
   path.roundedRect(rect, nw, ne, se, sw)
   image.fillPath(path, color)
@@ -94,19 +94,19 @@ proc fillRoundedRect*(
   radius: float32,
   color: ColorRGBA
 ) =
-  ## Fill a rounded rectangle.
+  ## Fills a rounded rectangle.
   var path: Path
   path.roundedRect(rect, radius, radius, radius, radius)
   image.fillPath(path, color)
 
 proc fillRoundedRect*(mask: Mask, rect: Rect, nw, ne, se, sw: float32) =
-  ## Fill a rounded rectangle.
+  ## Fills a rounded rectangle.
   var path: Path
   path.roundedRect(rect, nw, ne, se, sw)
   mask.fillPath(path)
 
 proc fillRoundedRect*(mask: Mask, rect: Rect, radius: float32) =
-  ## Fill a rounded rectangle.
+  ## Fills a rounded rectangle.
   var path: Path
   path.roundedRect(rect, radius, radius, radius, radius)
   mask.fillPath(path)
@@ -118,7 +118,7 @@ proc strokeRoundedRect*(
   color: ColorRGBA,
   strokeWidth = 1.0
 ) =
-  ## Stroke a rounded rectangle.
+  ## Strokes a rounded rectangle.
   var path: Path
   path.roundedRect(rect, nw, ne, se, sw)
   image.strokePath(path, color, strokeWidth)
@@ -130,7 +130,7 @@ proc strokeRoundedRect*(
   color: ColorRGBA,
   strokeWidth = 1.0
 ) =
-  ## Stroke a rounded rectangle.
+  ## Strokes a rounded rectangle.
   var path: Path
   path.roundedRect(rect, radius, radius, radius, radius)
   image.strokePath(path, color, strokeWidth)
@@ -138,7 +138,7 @@ proc strokeRoundedRect*(
 proc strokeRoundedRect*(
   mask: Mask, rect: Rect, nw, ne, se, sw: float32, strokeWidth = 1.0
 ) =
-  ## Stroke a rounded rectangle.
+  ## Strokes a rounded rectangle.
   var path: Path
   path.roundedRect(rect, nw, ne, se, sw)
   mask.strokePath(path, strokeWidth)
@@ -146,7 +146,7 @@ proc strokeRoundedRect*(
 proc strokeRoundedRect*(
   mask: Mask, rect: Rect, radius: float32, strokeWidth = 1.0
 ) =
-  ## Stroke a rounded rectangle.
+  ## Strokes a rounded rectangle.
   var path: Path
   path.roundedRect(rect, radius, radius, radius, radius)
   mask.strokePath(path, strokeWidth)
@@ -157,14 +157,14 @@ proc strokeSegment*(
   color: ColorRGBA,
   strokeWidth = 1.0
 ) =
-  ## Stroke a segment (draws a line from segment.at to segment.to).
+  ## Strokes a segment (draws a line from segment.at to segment.to).
   var path: Path
   path.moveTo(segment.at)
   path.lineTo(segment.to)
   image.strokePath(path, color, strokeWidth)
 
 proc strokeSegment*(mask: Mask, segment: Segment, strokeWidth: float32) =
-  ## Stroke a segment (draws a line from segment.at to segment.to).
+  ## Strokes a segment (draws a line from segment.at to segment.to).
   var path: Path
   path.moveTo(segment.at)
   path.lineTo(segment.to)
@@ -177,7 +177,7 @@ proc fillEllipse*(
   color: ColorRGBA,
   blendMode = bmNormal
 ) =
-  ## Fill an ellipse.
+  ## Fills an ellipse.
   var path: Path
   path.ellipse(center, rx, ry)
   image.fillPath(path, color, wrNonZero, blendMode)
@@ -187,7 +187,7 @@ proc fillEllipse*(
   center: Vec2,
   rx, ry: float32
 ) =
-  ## Fill an ellipse.
+  ## Fills an ellipse.
   var path: Path
   path.ellipse(center, rx, ry)
   mask.fillPath(path)
@@ -199,7 +199,7 @@ proc strokeEllipse*(
   color: ColorRGBA,
   strokeWidth = 1.0
 ) =
-  ## Stroke an ellipse.
+  ## Strokes an ellipse.
   var path: Path
   path.ellipse(center, rx, ry)
   image.strokePath(path, color, strokeWidth)
@@ -210,7 +210,7 @@ proc strokeEllipse*(
   rx, ry: float32,
   strokeWidth = 1.0
 ) =
-  ## Stroke an ellipse.
+  ## Strokes an ellipse.
   var path: Path
   path.ellipse(center, rx, ry)
   mask.strokePath(path, strokeWidth)
diff --git a/src/pixie/blends.nim b/src/pixie/blends.nim
index 7623207..8b37575 100644
--- a/src/pixie/blends.nim
+++ b/src/pixie/blends.nim
@@ -210,15 +210,15 @@ proc blendMultiply(backdrop, source: ColorRGBA): ColorRGBA =
   result.b = blend(backdrop.b, backdrop.a, source.b, source.a)
   result.a = blendAlpha(backdrop.a, source.a)
 
-proc blendLinearBurn(backdrop, source: ColorRGBA): ColorRGBA =
-  let
-    backdrop = backdrop.toStraightAlpha()
-    source = source.toStraightAlpha()
-  result.r = min(0, backdrop.r.int32 + source.r.int32 - 255).uint8
-  result.g = min(0, backdrop.g.int32 + source.g.int32 - 255).uint8
-  result.b = min(0, backdrop.b.int32 + source.b.int32 - 255).uint8
-  result = alphaFix(backdrop, source, result)
-  result = result.toPremultipliedAlpha()
+# proc blendLinearBurn(backdrop, source: ColorRGBA): ColorRGBA =
+#   let
+#     backdrop = backdrop.toStraightAlpha()
+#     source = source.toStraightAlpha()
+#   result.r = min(0, backdrop.r.int32 + source.r.int32 - 255).uint8
+#   result.g = min(0, backdrop.g.int32 + source.g.int32 - 255).uint8
+#   result.b = min(0, backdrop.b.int32 + source.b.int32 - 255).uint8
+#   result = alphaFix(backdrop, source, result)
+#   result = result.toPremultipliedAlpha()
 
 proc blendColorBurn(backdrop, source: ColorRGBA): ColorRGBA =
   let
@@ -257,15 +257,15 @@ proc blendScreen(backdrop, source: ColorRGBA): ColorRGBA =
   result.b = screen(backdrop.b, source.b)
   result.a = blendAlpha(backdrop.a, source.a)
 
-proc blendLinearDodge(backdrop, source: ColorRGBA): ColorRGBA =
-  let
-    backdrop = backdrop.toStraightAlpha()
-    source = source.toStraightAlpha()
-  result.r = min(backdrop.r.uint32 + source.r, 255).uint8
-  result.g = min(backdrop.g.uint32 + source.g, 255).uint8
-  result.b = min(backdrop.b.uint32 + source.b, 255).uint8
-  result = alphaFix(backdrop, source, result)
-  result = result.toPremultipliedAlpha()
+# proc blendLinearDodge(backdrop, source: ColorRGBA): ColorRGBA =
+#   let
+#     backdrop = backdrop.toStraightAlpha()
+#     source = source.toStraightAlpha()
+#   result.r = min(backdrop.r.uint32 + source.r, 255).uint8
+#   result.g = min(backdrop.g.uint32 + source.g, 255).uint8
+#   result.b = min(backdrop.b.uint32 + source.b, 255).uint8
+#   result = alphaFix(backdrop, source, result)
+#   result = result.toPremultipliedAlpha()
 
 proc blendColorDodge(backdrop, source: ColorRGBA): ColorRGBA =
   let
@@ -449,9 +449,9 @@ proc blendExcludeMask(backdrop, source: ColorRGBA): ColorRGBA =
 proc blendOverwrite(backdrop, source: ColorRGBA): ColorRGBA =
   source
 
-proc blendWhite(backdrop, source: ColorRGBA): ColorRGBA =
-  ## For testing
-  rgba(255, 255, 255, 255)
+# proc blendWhite(backdrop, source: ColorRGBA): ColorRGBA =
+#   ## For testing
+#   rgba(255, 255, 255, 255)
 
 proc blender*(blendMode: BlendMode): Blender =
   ## Returns a blend function for a given blend mode.
diff --git a/src/pixie/fileformats/svg.nim b/src/pixie/fileformats/svg.nim
index 32fc68e..2007ad2 100644
--- a/src/pixie/fileformats/svg.nim
+++ b/src/pixie/fileformats/svg.nim
@@ -339,7 +339,7 @@ proc draw(img: Image, node: XmlNode, ctxStack: var seq[Ctx]) =
     raise newException(PixieError, "Unsupported SVG tag: " & node.tag & ".")
 
 proc decodeSvg*(data: string, width = 0, height = 0): Image =
-  ## Render SVG file and return the image.
+  ## Render SVG file and return the image. Defaults to the SVG's view box size.
   try:
     let root = parseXml(data)
     if root.tag != "svg":
diff --git a/src/pixie/images.nim b/src/pixie/images.nim
index 6897208..bc2c293 100644
--- a/src/pixie/images.nim
+++ b/src/pixie/images.nim
@@ -200,7 +200,7 @@ proc minifyBy2*(image: Image, power = 1): Image =
     src = result
 
 proc magnifyBy2*(image: Image, power = 1): Image =
-  ## Scales image image up by 2 ^ power.
+  ## Scales image up by 2 ^ power.
   if power < 0:
     raise newException(PixieError, "Cannot magnifyBy2 with negative power")
 
diff --git a/src/pixie/paths.nim b/src/pixie/paths.nim
index c55f99e..888c692 100644
--- a/src/pixie/paths.nim
+++ b/src/pixie/paths.nim
@@ -41,7 +41,7 @@ when defined(release):
   {.push checks: off.}
 
 proc maxScale(m: Mat3): float32 =
-  ## What is the largest scale of this matrix.
+  ## What is the largest scale factor of this matrix?
   max(
     vec2(m[0, 0], m[0, 1]).length,
     vec2(m[1, 0], m[1, 1]).length
@@ -89,7 +89,7 @@ proc `$`*(path: Path): string =
         result.add " "
 
 proc parsePath*(path: string): Path =
-  ## Converts a SVG style path into seq of commands.
+  ## Converts a SVG style path string into seq of commands.
 
   if path.len == 0:
     return
@@ -398,7 +398,9 @@ proc arcTo*(path: var Path, ctrl1, ctrl2: Vec2, radius: float32) {.inline.} =
     ))
     path.at = to
 
-proc arcTo*(path: var Path, x1, y1, x2, y2, radius: float32) =
+proc arcTo*(path: var Path, x1, y1, x2, y2, radius: float32) {.inline.} =
+  ## Adds a circular arc to the current sub-path, using the given control
+  ## points and radius.
   path.arcTo(vec2(x1, y1), vec2(x2, y2), radius)
 
 proc ellipticalArcTo*(
@@ -419,6 +421,9 @@ proc ellipticalArcTo*(
   path.at = vec2(x, y)
 
 proc rect*(path: var Path, x, y, w, h: float32, clockwise = true) =
+  ## Adds a rectangle.
+  ## Clockwise param can be used to subtract a rect from a path when using
+  ## even-odd winding rule.
   if clockwise:
     path.moveTo(x, y)
     path.lineTo(x + w, y)
@@ -434,12 +439,14 @@ proc rect*(path: var Path, x, y, w, h: float32, clockwise = true) =
 
 proc rect*(path: var Path, pos: Vec2, wh: Vec2, clockwise = true) {.inline.} =
   ## Adds a rectangle.
-  ## Clockwise param can be used to subtract a rect from a path using even-odd.
+  ## Clockwise param can be used to subtract a rect from a path when using
+  ## even-odd winding rule.
   path.rect(pos.x, pos.y, wh.x, wh.y, clockwise)
 
 proc rect*(path: var Path, rect: Rect, clockwise = true) {.inline.} =
   ## Adds a rectangle.
-  ## Clockwise param can be used to subtract a rect from a path using even-odd.
+  ## Clockwise param can be used to subtract a rect from a path when using
+  ## even-odd winding rule.
   path.rect(rect.x, rect.y, rect.w, rect.h, clockwise)
 
 const splineCircleK = 4.0 * (-1.0 + sqrt(2.0)) / 3
@@ -450,7 +457,8 @@ proc roundedRect*(
   path: var Path, x, y, w, h, nw, ne, se, sw: float32, clockwise = true
 ) =
   ## Adds a rounded rectangle.
-  ## Clockwise param can be used to subtract a rect from a path using even-odd.
+  ## Clockwise param can be used to subtract a rect from a path when using
+  ## even-odd winding rule.
   let
     s = splineCircleK
 
@@ -505,14 +513,16 @@ proc roundedRect*(
   path: var Path, pos, wh: Vec2, nw, ne, se, sw: float32, clockwise = true
 ) {.inline.} =
   ## Adds a rounded rectangle.
-  ## Clockwise param can be used to subtract a rect from a path using even-odd.
+  ## Clockwise param can be used to subtract a rect from a path when using
+  ## even-odd winding rule.
   path.roundedRect(pos.x, pos.y, wh.x, wh.y, nw, ne, se, sw, clockwise)
 
 proc roundedRect*(
   path: var Path, rect: Rect, nw, ne, se, sw: float32, clockwise = true
 ) {.inline.} =
   ## Adds a rounded rectangle.
-  ## Clockwise param can be used to subtract a rect from a path using even-odd.
+  ## Clockwise param can be used to subtract a rect from a path when using
+  ## even-odd winding rule.
   path.roundedRect(rect.x, rect.y, rect.w, rect.h, nw, ne, se, sw, clockwise)
 
 proc ellipse*(path: var Path, cx, cy, rx, ry: float32) =
@@ -533,7 +543,7 @@ proc ellipse*(path: var Path, center: Vec2, rx, ry: float32) {.inline.} =
   path.ellipse(center.x, center.y, rx, ry)
 
 proc polygon*(path: var Path, x, y, size: float32, sides: int) =
-  ## Draws a n-sided regular polygon at (x, y) with a size.
+  ## Draws an n-sided regular polygon at (x, y) with the parameter size.
   path.moveTo(x + size * cos(0.0), y + size * sin(0.0))
   for side in 0 .. sides:
     path.lineTo(
@@ -542,12 +552,11 @@ proc polygon*(path: var Path, x, y, size: float32, sides: int) =
     )
 
 proc polygon*(path: var Path, pos: Vec2, size: float32, sides: int) {.inline.} =
-  ## Draws a n-sided regular polygon at (x, y) with a size.
+  ## Draws a n-sided regular polygon at (x, y) with the parameter size.
   path.polygon(pos.x, pos.y, size, sides)
 
 proc commandsToShapes*(path: Path, pixelScale: float32 = 1.0): seq[seq[Vec2]] =
   ## Converts SVG-like commands to line segments.
-
   var
     start, at: Vec2
     shape: seq[Vec2]
@@ -910,7 +919,7 @@ iterator segments*(s: seq[Vec2]): Segment =
     yield(segment(s[i], s[i + 1]))
 
 proc quickSort(a: var seq[(float32, int16)], inl, inr: int) =
-  ## Quick sorts inline faster then standard lib.
+  ## Sorts in place + faster than standard lib sort.
   var
     r = inr
     l = inl
@@ -966,7 +975,6 @@ proc partitionSegments(
   shapes: seq[seq[Vec2]], height: int
 ): seq[seq[(Segment, int16)]] =
   ## Puts segments into the height partitions they intersect with.
-
   var segmentCount: int
   for shape in shapes:
     segmentCount += shape.len - 1

From 751b804679f7ba38d34774d4c72fd1f4eea90670 Mon Sep 17 00:00:00 2001
From: Ryan Oldenburg <guzba8@gmail.com>
Date: Thu, 25 Feb 2021 11:43:09 -0600
Subject: [PATCH 2/4] morepretty

---
 examples/gradient.nim    | 14 +++++-----
 examples/image_tiled.nim |  4 +--
 src/pixie.nim            |  5 ++--
 src/pixie/blends.nim     |  1 -
 src/pixie/images.nim     |  4 ++-
 src/pixie/paints.nim     | 18 ++++++------
 src/pixie/paths.nim      |  4 +--
 tests/test_paints.nim    | 59 ++++++++++++++++++++--------------------
 8 files changed, 54 insertions(+), 55 deletions(-)

diff --git a/examples/gradient.nim b/examples/gradient.nim
index 6e7386e..3c0fc0c 100644
--- a/examples/gradient.nim
+++ b/examples/gradient.nim
@@ -14,17 +14,17 @@ image.fillPath(
     z
   """,
   Paint(
-    kind:pkGradientRadial,
+    kind: pkGradientRadial,
     gradientHandlePositions: @[
       vec2(100, 100),
       vec2(200, 100),
       vec2(100, 200)
-    ],
-    gradientStops: @[
-      ColorStop(color:rgba(255, 0, 0, 255).color, position: 0),
-      ColorStop(color:rgba(255, 0, 0, 40).color, position: 1.0),
-    ]
-  )
+  ],
+  gradientStops: @[
+    ColorStop(color: rgba(255, 0, 0, 255).color, position: 0),
+    ColorStop(color: rgba(255, 0, 0, 40).color, position: 1.0),
+  ]
+)
 )
 
 image.writeFile("examples/paint.png")
diff --git a/examples/image_tiled.nim b/examples/image_tiled.nim
index 2bb6f77..cac5af5 100644
--- a/examples/image_tiled.nim
+++ b/examples/image_tiled.nim
@@ -14,9 +14,9 @@ path.polygon(
 image.fillPath(
   path,
   Paint(
-    kind:pkImageTiled,
+    kind: pkImageTiled,
     image: readImage("tests/images/png/baboon.png"),
-    imageMat:scale(vec2(0.08, 0.08))
+    imageMat: scale(vec2(0.08, 0.08))
   )
 )
 
diff --git a/src/pixie.nim b/src/pixie.nim
index ed9cca4..74a956e 100644
--- a/src/pixie.nim
+++ b/src/pixie.nim
@@ -1,9 +1,8 @@
 import bumpy, chroma, flatty/binny, os, pixie/blends, pixie/common,
     pixie/fileformats/bmp, pixie/fileformats/jpg, pixie/fileformats/png,
-    pixie/fileformats/svg, pixie/paints, pixie/images, pixie/masks,
-    pixie/paths, vmath
+    pixie/fileformats/svg, pixie/images, pixie/masks, pixie/paints, pixie/paths, vmath
 
-export blends, bumpy, chroma, common, paints, images, masks, paths, vmath
+export blends, bumpy, chroma, common, images, masks, paints, paths, vmath
 
 type
   FileFormat* = enum
diff --git a/src/pixie/blends.nim b/src/pixie/blends.nim
index 8b37575..aca4bbc 100644
--- a/src/pixie/blends.nim
+++ b/src/pixie/blends.nim
@@ -35,7 +35,6 @@ type
     bmIntersectMask
     bmExcludeMask
 
-
   Blender* = proc(backdrop, source: ColorRGBA): ColorRGBA ## Function signature
   ## returned by blender.
   Masker* = proc(backdrop, source: uint8): uint8 ## Function signature returned
diff --git a/src/pixie/images.nim b/src/pixie/images.nim
index bc2c293..6bd4d59 100644
--- a/src/pixie/images.nim
+++ b/src/pixie/images.nim
@@ -543,7 +543,9 @@ proc getRgbaSmooth*(image: Image, x, y: float32, wrapped = false): ColorRGBA =
 
   lerp(bottomMix, topMix, diffY)
 
-proc drawCorrect(a, b: Image | Mask, mat = mat3(), tiled = false, blendMode = bmNormal) =
+proc drawCorrect(
+  a, b: Image | Mask, mat = mat3(), tiled = false, blendMode = bmNormal
+) =
   ## Draws one image onto another using matrix with color blending.
 
   when type(a) is Image:
diff --git a/src/pixie/paints.nim b/src/pixie/paints.nim
index 72bef3f..66eb544 100644
--- a/src/pixie/paints.nim
+++ b/src/pixie/paints.nim
@@ -1,4 +1,4 @@
-import chroma, common, images, vmath, blends
+import blends, chroma, common, images, vmath
 
 type
   PaintKind* = enum
@@ -13,19 +13,19 @@ type
     ## Paint used to fill paths.
     case kind*: PaintKind
     of pkSolid:
-      color*: ColorRGBA                    ## Color to fill with.
+      color*: ColorRGBA                   ## Color to fill with.
     of pkImage, pkImageTiled:
-      image*: Image                        ## Image to fill with.
-      imageMat*: Mat3                      ## Matrix of the filled image.
+      image*: Image                       ## Image to fill with.
+      imageMat*: Mat3                     ## Matrix of the filled image.
     of pkGradientLinear, pkGradientRadial, pkGradientAngular:
-      gradientHandlePositions*: seq[Vec2]  ## Gradient positions (image space).
-      gradientStops*: seq[ColorStop]       ## Color stops (gradient space).
-    blendMode*: BlendMode                  ## Blend mode.
+      gradientHandlePositions*: seq[Vec2] ## Gradient positions (image space).
+      gradientStops*: seq[ColorStop]      ## Color stops (gradient space).
+    blendMode*: BlendMode                 ## Blend mode.
 
   ColorStop* = object
     ## Color stop on a gradient curve.
-    color*: Color                         ## Color of the stop
-    position*: float32                    ## Gradient Stop position 0..1.
+    color*: Color      ## Color of the stop
+    position*: float32 ## Gradient Stop position 0..1.
 
 proc toLineSpace(at, to, point: Vec2): float32 =
   ## Convert position on to where it would fall on a line between at and to.
diff --git a/src/pixie/paths.nim b/src/pixie/paths.nim
index 888c692..66af2df 100644
--- a/src/pixie/paths.nim
+++ b/src/pixie/paths.nim
@@ -1,4 +1,4 @@
-import blends, bumpy, chroma, common, images, masks, strutils, vmath, paints
+import blends, bumpy, chroma, common, images, masks, paints, strutils, vmath
 
 when defined(amd64) and not defined(pixieNoSimd):
   import nimsimd/sse2
@@ -35,7 +35,7 @@ type
 
   SomePath* = Path | string | seq[seq[Vec2]]
 
-const epsilon = 0.0001 * PI  ## Tiny value used for some computations.
+const epsilon = 0.0001 * PI ## Tiny value used for some computations.
 
 when defined(release):
   {.push checks: off.}
diff --git a/tests/test_paints.nim b/tests/test_paints.nim
index 7f2a049..a832d86 100644
--- a/tests/test_paints.nim
+++ b/tests/test_paints.nim
@@ -14,8 +14,8 @@ block:
   image.fillPath(
     heartShape,
     Paint(
-      kind:pkSolid,
-      color:rgba(255, 0, 0, 255)
+      kind: pkSolid,
+      color: rgba(255, 0, 0, 255)
     )
   )
   image.writeFile("tests/images/paths/paintSolid.png")
@@ -26,9 +26,9 @@ block:
   image.fillPath(
     heartShape,
     Paint(
-      kind:pkImage,
-      image:decodePng(readFile("tests/images/png/baboon.png")),
-      imageMat:scale(vec2(0.2, 0.2))
+      kind: pkImage,
+      image: decodePng(readFile("tests/images/png/baboon.png")),
+      imageMat: scale(vec2(0.2, 0.2))
     )
   )
   image.writeFile("tests/images/paths/paintImage.png")
@@ -39,30 +39,29 @@ block:
   image.fillPath(
     heartShape,
     Paint(
-      kind:pkImageTiled,
-      image:decodePng(readFile("tests/images/png/baboon.png")),
-      imageMat:scale(vec2(0.02, 0.02))
+      kind: pkImageTiled,
+      image: decodePng(readFile("tests/images/png/baboon.png")),
+      imageMat: scale(vec2(0.02, 0.02))
     )
   )
   image.writeFile("tests/images/paths/paintImageTiled.png")
 
-
 block:
   let
     image = newImage(100, 100)
   image.fillPath(
     heartShape,
     Paint(
-      kind:pkGradientLinear,
+      kind: pkGradientLinear,
       gradientHandlePositions: @[
         vec2(0, 50),
         vec2(100, 50),
-      ],
-      gradientStops: @[
-        ColorStop(color:rgba(255, 0, 0, 255).color, position: 0),
-        ColorStop(color:rgba(255, 0, 0, 40).color, position: 1.0),
-      ]
-    )
+    ],
+    gradientStops: @[
+      ColorStop(color: rgba(255, 0, 0, 255).color, position: 0),
+      ColorStop(color: rgba(255, 0, 0, 40).color, position: 1.0),
+    ]
+  )
   )
   image.writeFile("tests/images/paths/gradientLinear.png")
 
@@ -72,17 +71,17 @@ block:
   image.fillPath(
     heartShape,
     Paint(
-      kind:pkGradientRadial,
+      kind: pkGradientRadial,
       gradientHandlePositions: @[
         vec2(50, 50),
         vec2(100, 50),
         vec2(50, 100)
-      ],
-      gradientStops: @[
-        ColorStop(color:rgba(255, 0, 0, 255).color, position: 0),
-        ColorStop(color:rgba(255, 0, 0, 40).color, position: 1.0),
-      ]
-    )
+    ],
+    gradientStops: @[
+      ColorStop(color: rgba(255, 0, 0, 255).color, position: 0),
+      ColorStop(color: rgba(255, 0, 0, 40).color, position: 1.0),
+    ]
+  )
   )
 
   image.writeFile("tests/images/paths/gradientRadial.png")
@@ -93,17 +92,17 @@ block:
   image.fillPath(
     heartShape,
     Paint(
-      kind:pkGradientAngular,
+      kind: pkGradientAngular,
       gradientHandlePositions: @[
         vec2(50, 50),
         vec2(100, 50),
         vec2(50, 100)
-      ],
-      gradientStops: @[
-        ColorStop(color:rgba(255, 0, 0, 255).color, position: 0),
-        ColorStop(color:rgba(255, 0, 0, 40).color, position: 1.0),
-      ]
-    )
+    ],
+    gradientStops: @[
+      ColorStop(color: rgba(255, 0, 0, 255).color, position: 0),
+      ColorStop(color: rgba(255, 0, 0, 40).color, position: 1.0),
+    ]
+  )
   )
 
   image.writeFile("tests/images/paths/gradientAngular.png")

From 3c3cd499ea1279a99de160b2cc5410bdbf455776 Mon Sep 17 00:00:00 2001
From: Ryan Oldenburg <guzba8@gmail.com>
Date: Thu, 25 Feb 2021 11:48:34 -0600
Subject: [PATCH 3/4] generate docs

---
 docs/dochack.js                 | 2479 ++++++++++++++++---------------
 docs/nimdoc.out.css             |   34 -
 docs/pixie.html                 |   87 +-
 docs/pixie/blends.html          |    7 +-
 docs/pixie/common.html          |   39 +-
 docs/pixie/fileformats/bmp.html |    7 +-
 docs/pixie/fileformats/jpg.html |    7 +-
 docs/pixie/fileformats/png.html |    7 +-
 docs/pixie/fileformats/svg.html |   11 +-
 docs/pixie/images.html          |   66 +-
 docs/pixie/images.idx           |    6 +-
 docs/pixie/masks.html           |    7 +-
 docs/pixie/paints.html          |   37 +-
 docs/pixie/paints.idx           |    2 -
 docs/pixie/paths.html           |   68 +-
 docs/pixie/paths.idx            |    3 +
 docs/theindex.html              |   40 +-
 17 files changed, 1468 insertions(+), 1439 deletions(-)

diff --git a/docs/dochack.js b/docs/dochack.js
index 696f575..9786235 100644
--- a/docs/dochack.js
+++ b/docs/dochack.js
@@ -1,779 +1,784 @@
-/* Generated by the Nim Compiler v1.5.1 */
+/* Generated by the Nim Compiler v1.4.4 */
 var framePtr = null;
 var excHandler = 0;
 var lastJSError = null;
-var NTI520093699 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
-var NTI385876518 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
-var NTI503316596 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316595 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316594 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316593 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316592 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316591 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316590 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316589 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316588 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316587 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316586 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316585 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316584 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316583 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316582 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316581 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316580 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316579 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316578 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316577 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316576 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316575 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316574 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316482 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
-var NTI503316526 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
-var NTI503316525 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
-var NTI503316645 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316642 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
-var NTI503316641 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
-var NTI503316572 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
-var NTI503316644 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
-var NTI503316573 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
-var NTI503316514 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
-var NTI503316513 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
-var NTI503316619 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
-var NTI503316516 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
-var NTI503316515 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
-var NTI503316618 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
-var NTI503316617 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
-var NTI503316524 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
-var NTI503316523 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
-var NTI503316616 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
-var NTI503316615 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
-var NTI503316518 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
-var NTI503316517 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
-var NTI503316614 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
-var NTI503316621 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
-var NTI503316520 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
-var NTI503316519 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
-var NTI503316620 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
-var NTI33554454 = {size: 0,kind: 31,base: null,node: null,finalizer: null};
-var NTI503316624 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
-var NTI503316522 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
-var NTI503316521 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
-var NTI33554464 = {size: 0,kind: 1,base: null,node: null,finalizer: null};
-var NTI503316495 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
-var NTI503316494 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
-var NTI503316502 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
-var NTI503316501 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
-var NTI503316500 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
-var NTI503316499 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
-var NTI503316496 = {size: 0, kind: 14, base: null, node: null, finalizer: null};
-var NTI503316613 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
-var NTI503316612 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
-var NTI503316611 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
-var NTI503316498 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
-var NTI503316497 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
-var NTI503316899 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
-var NTI33555108 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
-var NTI33555112 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
-var NTI33555071 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
-var NTI33555149 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
-var NTI33554437 = {size: 0,kind: 28,base: null,node: null,finalizer: null};
-var NTI33554438 = {size: 0,kind: 29,base: null,node: null,finalizer: null};
-var NTI33555148 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
-var NTI33555096 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
-var NTI33555097 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
-var NTI33555104 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
-var NTI33555106 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
-var NNI33555106 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
-NTI33555106.node = NNI33555106;
-var NNI33555104 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
-NTI33555104.node = NNI33555104;
-var NNI33555097 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
-NTI33555097.node = NNI33555097;
-NTI33555148.base = NTI33555096;
-NTI33555149.base = NTI33555096;
-var NNI33555096 = {kind: 2, len: 5, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "parent", len: 0, typ: NTI33555148, name: "parent", sons: null}, 
-{kind: 1, offset: "name", len: 0, typ: NTI33554438, name: "name", sons: null}, 
-{kind: 1, offset: "message", len: 0, typ: NTI33554437, name: "msg", sons: null}, 
-{kind: 1, offset: "trace", len: 0, typ: NTI33554437, name: "trace", sons: null}, 
-{kind: 1, offset: "up", len: 0, typ: NTI33555149, name: "up", sons: null}]};
-NTI33555096.node = NNI33555096;
-var NNI33555071 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
-NTI33555071.node = NNI33555071;
-NTI33555096.base = NTI33555071;
-NTI33555097.base = NTI33555096;
-NTI33555104.base = NTI33555097;
-NTI33555106.base = NTI33555104;
-var NNI33555112 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
-NTI33555112.node = NNI33555112;
-NTI33555112.base = NTI33555097;
-var NNI33555108 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
-NTI33555108.node = NNI33555108;
-NTI33555108.base = NTI33555097;
-NTI503316611.base = NTI503316497;
-NTI503316612.base = NTI503316497;
-NTI503316613.base = NTI503316497;
-var NNI503316496 = {kind: 2, offset: 0, typ: null, name: null, len: 12, sons: {"1": {kind: 1, offset: 1, typ: NTI503316496, name: "ElementNode", len: 0, sons: null}, 
-"2": {kind: 1, offset: 2, typ: NTI503316496, name: "AttributeNode", len: 0, sons: null}, 
-"3": {kind: 1, offset: 3, typ: NTI503316496, name: "TextNode", len: 0, sons: null}, 
-"4": {kind: 1, offset: 4, typ: NTI503316496, name: "CDATANode", len: 0, sons: null}, 
-"5": {kind: 1, offset: 5, typ: NTI503316496, name: "EntityRefNode", len: 0, sons: null}, 
-"6": {kind: 1, offset: 6, typ: NTI503316496, name: "EntityNode", len: 0, sons: null}, 
-"7": {kind: 1, offset: 7, typ: NTI503316496, name: "ProcessingInstructionNode", len: 0, sons: null}, 
-"8": {kind: 1, offset: 8, typ: NTI503316496, name: "CommentNode", len: 0, sons: null}, 
-"9": {kind: 1, offset: 9, typ: NTI503316496, name: "DocumentNode", len: 0, sons: null}, 
-"10": {kind: 1, offset: 10, typ: NTI503316496, name: "DocumentTypeNode", len: 0, sons: null}, 
-"11": {kind: 1, offset: 11, typ: NTI503316496, name: "DocumentFragmentNode", len: 0, sons: null}, 
-"12": {kind: 1, offset: 12, typ: NTI503316496, name: "NotationNode", len: 0, sons: null}}};
-NTI503316496.node = NNI503316496;
-var NNI503316495 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
-NTI503316495.node = NNI503316495;
-NTI503316495.base = NTI33555071;
-NTI503316494.base = NTI503316495;
-NTI503316624.base = NTI503316501;
-var NNI503316522 = {kind: 2, len: 10, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "acceptCharset", len: 0, typ: NTI33554438, name: "acceptCharset", sons: null}, 
-{kind: 1, offset: "action", len: 0, typ: NTI33554438, name: "action", sons: null}, 
-{kind: 1, offset: "autocomplete", len: 0, typ: NTI33554438, name: "autocomplete", sons: null}, 
-{kind: 1, offset: "elements", len: 0, typ: NTI503316624, name: "elements", sons: null}, 
-{kind: 1, offset: "encoding", len: 0, typ: NTI33554438, name: "encoding", sons: null}, 
-{kind: 1, offset: "enctype", len: 0, typ: NTI33554438, name: "enctype", sons: null}, 
-{kind: 1, offset: "length", len: 0, typ: NTI33554454, name: "length", sons: null}, 
-{kind: 1, offset: "method", len: 0, typ: NTI33554438, name: "method", sons: null}, 
-{kind: 1, offset: "noValidate", len: 0, typ: NTI33554464, name: "noValidate", sons: null}, 
-{kind: 1, offset: "target", len: 0, typ: NTI33554438, name: "target", sons: null}]};
-NTI503316522.node = NNI503316522;
-NTI503316522.base = NTI503316502;
-NTI503316521.base = NTI503316522;
-var NNI503316520 = {kind: 2, len: 5, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "defaultSelected", len: 0, typ: NTI33554464, name: "defaultSelected", sons: null}, 
-{kind: 1, offset: "selected", len: 0, typ: NTI33554464, name: "selected", sons: null}, 
-{kind: 1, offset: "selectedIndex", len: 0, typ: NTI33554454, name: "selectedIndex", sons: null}, 
-{kind: 1, offset: "text", len: 0, typ: NTI33554438, name: "text", sons: null}, 
-{kind: 1, offset: "value", len: 0, typ: NTI33554438, name: "value", sons: null}]};
-NTI503316520.node = NNI503316520;
-NTI503316520.base = NTI503316502;
-NTI503316519.base = NTI503316520;
-NTI503316620.base = NTI503316519;
-NTI503316621.base = NTI503316519;
-var NNI503316502 = {kind: 2, len: 20, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "className", len: 0, typ: NTI33554438, name: "className", sons: null}, 
-{kind: 1, offset: "classList", len: 0, typ: NTI503316494, name: "classList", sons: null}, 
-{kind: 1, offset: "checked", len: 0, typ: NTI33554464, name: "checked", sons: null}, 
-{kind: 1, offset: "defaultChecked", len: 0, typ: NTI33554464, name: "defaultChecked", sons: null}, 
-{kind: 1, offset: "defaultValue", len: 0, typ: NTI33554438, name: "defaultValue", sons: null}, 
-{kind: 1, offset: "disabled", len: 0, typ: NTI33554464, name: "disabled", sons: null}, 
-{kind: 1, offset: "form", len: 0, typ: NTI503316521, name: "form", sons: null}, 
-{kind: 1, offset: "name", len: 0, typ: NTI33554438, name: "name", sons: null}, 
-{kind: 1, offset: "readOnly", len: 0, typ: NTI33554464, name: "readOnly", sons: null}, 
-{kind: 1, offset: "options", len: 0, typ: NTI503316620, name: "options", sons: null}, 
-{kind: 1, offset: "selectedOptions", len: 0, typ: NTI503316621, name: "selectedOptions", sons: null}, 
-{kind: 1, offset: "clientWidth", len: 0, typ: NTI33554454, name: "clientWidth", sons: null}, 
-{kind: 1, offset: "clientHeight", len: 0, typ: NTI33554454, name: "clientHeight", sons: null}, 
-{kind: 1, offset: "contentEditable", len: 0, typ: NTI33554438, name: "contentEditable", sons: null}, 
-{kind: 1, offset: "isContentEditable", len: 0, typ: NTI33554464, name: "isContentEditable", sons: null}, 
-{kind: 1, offset: "dir", len: 0, typ: NTI33554438, name: "dir", sons: null}, 
-{kind: 1, offset: "offsetHeight", len: 0, typ: NTI33554454, name: "offsetHeight", sons: null}, 
-{kind: 1, offset: "offsetWidth", len: 0, typ: NTI33554454, name: "offsetWidth", sons: null}, 
-{kind: 1, offset: "offsetLeft", len: 0, typ: NTI33554454, name: "offsetLeft", sons: null}, 
-{kind: 1, offset: "offsetTop", len: 0, typ: NTI33554454, name: "offsetTop", sons: null}]};
-NTI503316502.node = NNI503316502;
-NTI503316502.base = NTI503316498;
-NTI503316501.base = NTI503316502;
-var NNI503316518 = {kind: 2, len: 3, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "text", len: 0, typ: NTI33554438, name: "text", sons: null}, 
-{kind: 1, offset: "x", len: 0, typ: NTI33554454, name: "x", sons: null}, 
-{kind: 1, offset: "y", len: 0, typ: NTI33554454, name: "y", sons: null}]};
-NTI503316518.node = NNI503316518;
-NTI503316518.base = NTI503316502;
-NTI503316517.base = NTI503316518;
-NTI503316614.base = NTI503316517;
-NTI503316615.base = NTI503316521;
-var NNI503316524 = {kind: 2, len: 8, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "border", len: 0, typ: NTI33554454, name: "border", sons: null}, 
-{kind: 1, offset: "complete", len: 0, typ: NTI33554464, name: "complete", sons: null}, 
-{kind: 1, offset: "height", len: 0, typ: NTI33554454, name: "height", sons: null}, 
-{kind: 1, offset: "hspace", len: 0, typ: NTI33554454, name: "hspace", sons: null}, 
-{kind: 1, offset: "lowsrc", len: 0, typ: NTI33554438, name: "lowsrc", sons: null}, 
-{kind: 1, offset: "src", len: 0, typ: NTI33554438, name: "src", sons: null}, 
-{kind: 1, offset: "vspace", len: 0, typ: NTI33554454, name: "vspace", sons: null}, 
-{kind: 1, offset: "width", len: 0, typ: NTI33554454, name: "width", sons: null}]};
-NTI503316524.node = NNI503316524;
-NTI503316524.base = NTI503316502;
-NTI503316523.base = NTI503316524;
-NTI503316616.base = NTI503316523;
-NTI503316617.base = NTI503316501;
-var NNI503316516 = {kind: 2, len: 6, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "height", len: 0, typ: NTI33554454, name: "height", sons: null}, 
-{kind: 1, offset: "hspace", len: 0, typ: NTI33554454, name: "hspace", sons: null}, 
-{kind: 1, offset: "src", len: 0, typ: NTI33554438, name: "src", sons: null}, 
-{kind: 1, offset: "width", len: 0, typ: NTI33554454, name: "width", sons: null}, 
-{kind: 1, offset: "type", len: 0, typ: NTI33554438, name: "type", sons: null}, 
-{kind: 1, offset: "vspace", len: 0, typ: NTI33554454, name: "vspace", sons: null}]};
-NTI503316516.node = NNI503316516;
-NTI503316516.base = NTI503316502;
-NTI503316515.base = NTI503316516;
-NTI503316618.base = NTI503316515;
-var NNI503316514 = {kind: 2, len: 4, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "target", len: 0, typ: NTI33554438, name: "target", sons: null}, 
-{kind: 1, offset: "text", len: 0, typ: NTI33554438, name: "text", sons: null}, 
-{kind: 1, offset: "x", len: 0, typ: NTI33554454, name: "x", sons: null}, 
-{kind: 1, offset: "y", len: 0, typ: NTI33554454, name: "y", sons: null}]};
-NTI503316514.node = NNI503316514;
-NTI503316514.base = NTI503316502;
-NTI503316513.base = NTI503316514;
-NTI503316619.base = NTI503316513;
-var NNI503316641 = {kind: 1, offset: "then", len: 0, typ: NTI503316642, name: "then", sons: null};
-NTI503316641.node = NNI503316641;
-NTI503316572.base = NTI503316641;
-var NNI503316644 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "ready", len: 0, typ: NTI503316572, name: "ready", sons: null}, 
-{kind: 1, offset: "onloadingdone", len: 0, typ: NTI503316645, name: "onloadingdone", sons: null}]};
-NTI503316644.node = NNI503316644;
-NTI503316573.base = NTI503316644;
-var NNI503316500 = {kind: 2, len: 23, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "activeElement", len: 0, typ: NTI503316501, name: "activeElement", sons: null}, 
-{kind: 1, offset: "documentElement", len: 0, typ: NTI503316501, name: "documentElement", sons: null}, 
-{kind: 1, offset: "alinkColor", len: 0, typ: NTI33554438, name: "alinkColor", sons: null}, 
-{kind: 1, offset: "bgColor", len: 0, typ: NTI33554438, name: "bgColor", sons: null}, 
-{kind: 1, offset: "body", len: 0, typ: NTI503316501, name: "body", sons: null}, 
-{kind: 1, offset: "charset", len: 0, typ: NTI33554438, name: "charset", sons: null}, 
-{kind: 1, offset: "cookie", len: 0, typ: NTI33554438, name: "cookie", sons: null}, 
-{kind: 1, offset: "defaultCharset", len: 0, typ: NTI33554438, name: "defaultCharset", sons: null}, 
-{kind: 1, offset: "fgColor", len: 0, typ: NTI33554438, name: "fgColor", sons: null}, 
-{kind: 1, offset: "head", len: 0, typ: NTI503316501, name: "head", sons: null}, 
-{kind: 1, offset: "lastModified", len: 0, typ: NTI33554438, name: "lastModified", sons: null}, 
-{kind: 1, offset: "linkColor", len: 0, typ: NTI33554438, name: "linkColor", sons: null}, 
-{kind: 1, offset: "referrer", len: 0, typ: NTI33554438, name: "referrer", sons: null}, 
-{kind: 1, offset: "title", len: 0, typ: NTI33554438, name: "title", sons: null}, 
-{kind: 1, offset: "URL", len: 0, typ: NTI33554438, name: "URL", sons: null}, 
-{kind: 1, offset: "vlinkColor", len: 0, typ: NTI33554438, name: "vlinkColor", sons: null}, 
-{kind: 1, offset: "anchors", len: 0, typ: NTI503316614, name: "anchors", sons: null}, 
-{kind: 1, offset: "forms", len: 0, typ: NTI503316615, name: "forms", sons: null}, 
-{kind: 1, offset: "images", len: 0, typ: NTI503316616, name: "images", sons: null}, 
-{kind: 1, offset: "applets", len: 0, typ: NTI503316617, name: "applets", sons: null}, 
-{kind: 1, offset: "embeds", len: 0, typ: NTI503316618, name: "embeds", sons: null}, 
-{kind: 1, offset: "links", len: 0, typ: NTI503316619, name: "links", sons: null}, 
-{kind: 1, offset: "fonts", len: 0, typ: NTI503316573, name: "fonts", sons: null}]};
-NTI503316500.node = NNI503316500;
-NTI503316500.base = NTI503316498;
-NTI503316499.base = NTI503316500;
-var NNI503316526 = {kind: 2, len: 368, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "alignContent", len: 0, typ: NTI33554438, name: "alignContent", sons: null}, 
-{kind: 1, offset: "alignItems", len: 0, typ: NTI33554438, name: "alignItems", sons: null}, 
-{kind: 1, offset: "alignSelf", len: 0, typ: NTI33554438, name: "alignSelf", sons: null}, 
-{kind: 1, offset: "all", len: 0, typ: NTI33554438, name: "all", sons: null}, 
-{kind: 1, offset: "animation", len: 0, typ: NTI33554438, name: "animation", sons: null}, 
-{kind: 1, offset: "animationDelay", len: 0, typ: NTI33554438, name: "animationDelay", sons: null}, 
-{kind: 1, offset: "animationDirection", len: 0, typ: NTI33554438, name: "animationDirection", sons: null}, 
-{kind: 1, offset: "animationDuration", len: 0, typ: NTI33554438, name: "animationDuration", sons: null}, 
-{kind: 1, offset: "animationFillMode", len: 0, typ: NTI33554438, name: "animationFillMode", sons: null}, 
-{kind: 1, offset: "animationIterationCount", len: 0, typ: NTI33554438, name: "animationIterationCount", sons: null}, 
-{kind: 1, offset: "animationName", len: 0, typ: NTI33554438, name: "animationName", sons: null}, 
-{kind: 1, offset: "animationPlayState", len: 0, typ: NTI33554438, name: "animationPlayState", sons: null}, 
-{kind: 1, offset: "animationTimingFunction", len: 0, typ: NTI33554438, name: "animationTimingFunction", sons: null}, 
-{kind: 1, offset: "backdropFilter", len: 0, typ: NTI33554438, name: "backdropFilter", sons: null}, 
-{kind: 1, offset: "backfaceVisibility", len: 0, typ: NTI33554438, name: "backfaceVisibility", sons: null}, 
-{kind: 1, offset: "background", len: 0, typ: NTI33554438, name: "background", sons: null}, 
-{kind: 1, offset: "backgroundAttachment", len: 0, typ: NTI33554438, name: "backgroundAttachment", sons: null}, 
-{kind: 1, offset: "backgroundBlendMode", len: 0, typ: NTI33554438, name: "backgroundBlendMode", sons: null}, 
-{kind: 1, offset: "backgroundClip", len: 0, typ: NTI33554438, name: "backgroundClip", sons: null}, 
-{kind: 1, offset: "backgroundColor", len: 0, typ: NTI33554438, name: "backgroundColor", sons: null}, 
-{kind: 1, offset: "backgroundImage", len: 0, typ: NTI33554438, name: "backgroundImage", sons: null}, 
-{kind: 1, offset: "backgroundOrigin", len: 0, typ: NTI33554438, name: "backgroundOrigin", sons: null}, 
-{kind: 1, offset: "backgroundPosition", len: 0, typ: NTI33554438, name: "backgroundPosition", sons: null}, 
-{kind: 1, offset: "backgroundRepeat", len: 0, typ: NTI33554438, name: "backgroundRepeat", sons: null}, 
-{kind: 1, offset: "backgroundSize", len: 0, typ: NTI33554438, name: "backgroundSize", sons: null}, 
-{kind: 1, offset: "blockSize", len: 0, typ: NTI33554438, name: "blockSize", sons: null}, 
-{kind: 1, offset: "border", len: 0, typ: NTI33554438, name: "border", sons: null}, 
-{kind: 1, offset: "borderBlock", len: 0, typ: NTI33554438, name: "borderBlock", sons: null}, 
-{kind: 1, offset: "borderBlockColor", len: 0, typ: NTI33554438, name: "borderBlockColor", sons: null}, 
-{kind: 1, offset: "borderBlockEnd", len: 0, typ: NTI33554438, name: "borderBlockEnd", sons: null}, 
-{kind: 1, offset: "borderBlockEndColor", len: 0, typ: NTI33554438, name: "borderBlockEndColor", sons: null}, 
-{kind: 1, offset: "borderBlockEndStyle", len: 0, typ: NTI33554438, name: "borderBlockEndStyle", sons: null}, 
-{kind: 1, offset: "borderBlockEndWidth", len: 0, typ: NTI33554438, name: "borderBlockEndWidth", sons: null}, 
-{kind: 1, offset: "borderBlockStart", len: 0, typ: NTI33554438, name: "borderBlockStart", sons: null}, 
-{kind: 1, offset: "borderBlockStartColor", len: 0, typ: NTI33554438, name: "borderBlockStartColor", sons: null}, 
-{kind: 1, offset: "borderBlockStartStyle", len: 0, typ: NTI33554438, name: "borderBlockStartStyle", sons: null}, 
-{kind: 1, offset: "borderBlockStartWidth", len: 0, typ: NTI33554438, name: "borderBlockStartWidth", sons: null}, 
-{kind: 1, offset: "borderBlockStyle", len: 0, typ: NTI33554438, name: "borderBlockStyle", sons: null}, 
-{kind: 1, offset: "borderBlockWidth", len: 0, typ: NTI33554438, name: "borderBlockWidth", sons: null}, 
-{kind: 1, offset: "borderBottom", len: 0, typ: NTI33554438, name: "borderBottom", sons: null}, 
-{kind: 1, offset: "borderBottomColor", len: 0, typ: NTI33554438, name: "borderBottomColor", sons: null}, 
-{kind: 1, offset: "borderBottomLeftRadius", len: 0, typ: NTI33554438, name: "borderBottomLeftRadius", sons: null}, 
-{kind: 1, offset: "borderBottomRightRadius", len: 0, typ: NTI33554438, name: "borderBottomRightRadius", sons: null}, 
-{kind: 1, offset: "borderBottomStyle", len: 0, typ: NTI33554438, name: "borderBottomStyle", sons: null}, 
-{kind: 1, offset: "borderBottomWidth", len: 0, typ: NTI33554438, name: "borderBottomWidth", sons: null}, 
-{kind: 1, offset: "borderCollapse", len: 0, typ: NTI33554438, name: "borderCollapse", sons: null}, 
-{kind: 1, offset: "borderColor", len: 0, typ: NTI33554438, name: "borderColor", sons: null}, 
-{kind: 1, offset: "borderEndEndRadius", len: 0, typ: NTI33554438, name: "borderEndEndRadius", sons: null}, 
-{kind: 1, offset: "borderEndStartRadius", len: 0, typ: NTI33554438, name: "borderEndStartRadius", sons: null}, 
-{kind: 1, offset: "borderImage", len: 0, typ: NTI33554438, name: "borderImage", sons: null}, 
-{kind: 1, offset: "borderImageOutset", len: 0, typ: NTI33554438, name: "borderImageOutset", sons: null}, 
-{kind: 1, offset: "borderImageRepeat", len: 0, typ: NTI33554438, name: "borderImageRepeat", sons: null}, 
-{kind: 1, offset: "borderImageSlice", len: 0, typ: NTI33554438, name: "borderImageSlice", sons: null}, 
-{kind: 1, offset: "borderImageSource", len: 0, typ: NTI33554438, name: "borderImageSource", sons: null}, 
-{kind: 1, offset: "borderImageWidth", len: 0, typ: NTI33554438, name: "borderImageWidth", sons: null}, 
-{kind: 1, offset: "borderInline", len: 0, typ: NTI33554438, name: "borderInline", sons: null}, 
-{kind: 1, offset: "borderInlineColor", len: 0, typ: NTI33554438, name: "borderInlineColor", sons: null}, 
-{kind: 1, offset: "borderInlineEnd", len: 0, typ: NTI33554438, name: "borderInlineEnd", sons: null}, 
-{kind: 1, offset: "borderInlineEndColor", len: 0, typ: NTI33554438, name: "borderInlineEndColor", sons: null}, 
-{kind: 1, offset: "borderInlineEndStyle", len: 0, typ: NTI33554438, name: "borderInlineEndStyle", sons: null}, 
-{kind: 1, offset: "borderInlineEndWidth", len: 0, typ: NTI33554438, name: "borderInlineEndWidth", sons: null}, 
-{kind: 1, offset: "borderInlineStart", len: 0, typ: NTI33554438, name: "borderInlineStart", sons: null}, 
-{kind: 1, offset: "borderInlineStartColor", len: 0, typ: NTI33554438, name: "borderInlineStartColor", sons: null}, 
-{kind: 1, offset: "borderInlineStartStyle", len: 0, typ: NTI33554438, name: "borderInlineStartStyle", sons: null}, 
-{kind: 1, offset: "borderInlineStartWidth", len: 0, typ: NTI33554438, name: "borderInlineStartWidth", sons: null}, 
-{kind: 1, offset: "borderInlineStyle", len: 0, typ: NTI33554438, name: "borderInlineStyle", sons: null}, 
-{kind: 1, offset: "borderInlineWidth", len: 0, typ: NTI33554438, name: "borderInlineWidth", sons: null}, 
-{kind: 1, offset: "borderLeft", len: 0, typ: NTI33554438, name: "borderLeft", sons: null}, 
-{kind: 1, offset: "borderLeftColor", len: 0, typ: NTI33554438, name: "borderLeftColor", sons: null}, 
-{kind: 1, offset: "borderLeftStyle", len: 0, typ: NTI33554438, name: "borderLeftStyle", sons: null}, 
-{kind: 1, offset: "borderLeftWidth", len: 0, typ: NTI33554438, name: "borderLeftWidth", sons: null}, 
-{kind: 1, offset: "borderRadius", len: 0, typ: NTI33554438, name: "borderRadius", sons: null}, 
-{kind: 1, offset: "borderRight", len: 0, typ: NTI33554438, name: "borderRight", sons: null}, 
-{kind: 1, offset: "borderRightColor", len: 0, typ: NTI33554438, name: "borderRightColor", sons: null}, 
-{kind: 1, offset: "borderRightStyle", len: 0, typ: NTI33554438, name: "borderRightStyle", sons: null}, 
-{kind: 1, offset: "borderRightWidth", len: 0, typ: NTI33554438, name: "borderRightWidth", sons: null}, 
-{kind: 1, offset: "borderSpacing", len: 0, typ: NTI33554438, name: "borderSpacing", sons: null}, 
-{kind: 1, offset: "borderStartEndRadius", len: 0, typ: NTI33554438, name: "borderStartEndRadius", sons: null}, 
-{kind: 1, offset: "borderStartStartRadius", len: 0, typ: NTI33554438, name: "borderStartStartRadius", sons: null}, 
-{kind: 1, offset: "borderStyle", len: 0, typ: NTI33554438, name: "borderStyle", sons: null}, 
-{kind: 1, offset: "borderTop", len: 0, typ: NTI33554438, name: "borderTop", sons: null}, 
-{kind: 1, offset: "borderTopColor", len: 0, typ: NTI33554438, name: "borderTopColor", sons: null}, 
-{kind: 1, offset: "borderTopLeftRadius", len: 0, typ: NTI33554438, name: "borderTopLeftRadius", sons: null}, 
-{kind: 1, offset: "borderTopRightRadius", len: 0, typ: NTI33554438, name: "borderTopRightRadius", sons: null}, 
-{kind: 1, offset: "borderTopStyle", len: 0, typ: NTI33554438, name: "borderTopStyle", sons: null}, 
-{kind: 1, offset: "borderTopWidth", len: 0, typ: NTI33554438, name: "borderTopWidth", sons: null}, 
-{kind: 1, offset: "borderWidth", len: 0, typ: NTI33554438, name: "borderWidth", sons: null}, 
-{kind: 1, offset: "bottom", len: 0, typ: NTI33554438, name: "bottom", sons: null}, 
-{kind: 1, offset: "boxDecorationBreak", len: 0, typ: NTI33554438, name: "boxDecorationBreak", sons: null}, 
-{kind: 1, offset: "boxShadow", len: 0, typ: NTI33554438, name: "boxShadow", sons: null}, 
-{kind: 1, offset: "boxSizing", len: 0, typ: NTI33554438, name: "boxSizing", sons: null}, 
-{kind: 1, offset: "breakAfter", len: 0, typ: NTI33554438, name: "breakAfter", sons: null}, 
-{kind: 1, offset: "breakBefore", len: 0, typ: NTI33554438, name: "breakBefore", sons: null}, 
-{kind: 1, offset: "breakInside", len: 0, typ: NTI33554438, name: "breakInside", sons: null}, 
-{kind: 1, offset: "captionSide", len: 0, typ: NTI33554438, name: "captionSide", sons: null}, 
-{kind: 1, offset: "caretColor", len: 0, typ: NTI33554438, name: "caretColor", sons: null}, 
-{kind: 1, offset: "clear", len: 0, typ: NTI33554438, name: "clear", sons: null}, 
-{kind: 1, offset: "clip", len: 0, typ: NTI33554438, name: "clip", sons: null}, 
-{kind: 1, offset: "clipPath", len: 0, typ: NTI33554438, name: "clipPath", sons: null}, 
-{kind: 1, offset: "color", len: 0, typ: NTI33554438, name: "color", sons: null}, 
-{kind: 1, offset: "colorAdjust", len: 0, typ: NTI33554438, name: "colorAdjust", sons: null}, 
-{kind: 1, offset: "columnCount", len: 0, typ: NTI33554438, name: "columnCount", sons: null}, 
-{kind: 1, offset: "columnFill", len: 0, typ: NTI33554438, name: "columnFill", sons: null}, 
-{kind: 1, offset: "columnGap", len: 0, typ: NTI33554438, name: "columnGap", sons: null}, 
-{kind: 1, offset: "columnRule", len: 0, typ: NTI33554438, name: "columnRule", sons: null}, 
-{kind: 1, offset: "columnRuleColor", len: 0, typ: NTI33554438, name: "columnRuleColor", sons: null}, 
-{kind: 1, offset: "columnRuleStyle", len: 0, typ: NTI33554438, name: "columnRuleStyle", sons: null}, 
-{kind: 1, offset: "columnRuleWidth", len: 0, typ: NTI33554438, name: "columnRuleWidth", sons: null}, 
-{kind: 1, offset: "columnSpan", len: 0, typ: NTI33554438, name: "columnSpan", sons: null}, 
-{kind: 1, offset: "columnWidth", len: 0, typ: NTI33554438, name: "columnWidth", sons: null}, 
-{kind: 1, offset: "columns", len: 0, typ: NTI33554438, name: "columns", sons: null}, 
-{kind: 1, offset: "contain", len: 0, typ: NTI33554438, name: "contain", sons: null}, 
-{kind: 1, offset: "content", len: 0, typ: NTI33554438, name: "content", sons: null}, 
-{kind: 1, offset: "counterIncrement", len: 0, typ: NTI33554438, name: "counterIncrement", sons: null}, 
-{kind: 1, offset: "counterReset", len: 0, typ: NTI33554438, name: "counterReset", sons: null}, 
-{kind: 1, offset: "counterSet", len: 0, typ: NTI33554438, name: "counterSet", sons: null}, 
-{kind: 1, offset: "cursor", len: 0, typ: NTI33554438, name: "cursor", sons: null}, 
-{kind: 1, offset: "direction", len: 0, typ: NTI33554438, name: "direction", sons: null}, 
-{kind: 1, offset: "display", len: 0, typ: NTI33554438, name: "display", sons: null}, 
-{kind: 1, offset: "emptyCells", len: 0, typ: NTI33554438, name: "emptyCells", sons: null}, 
-{kind: 1, offset: "filter", len: 0, typ: NTI33554438, name: "filter", sons: null}, 
-{kind: 1, offset: "flex", len: 0, typ: NTI33554438, name: "flex", sons: null}, 
-{kind: 1, offset: "flexBasis", len: 0, typ: NTI33554438, name: "flexBasis", sons: null}, 
-{kind: 1, offset: "flexDirection", len: 0, typ: NTI33554438, name: "flexDirection", sons: null}, 
-{kind: 1, offset: "flexFlow", len: 0, typ: NTI33554438, name: "flexFlow", sons: null}, 
-{kind: 1, offset: "flexGrow", len: 0, typ: NTI33554438, name: "flexGrow", sons: null}, 
-{kind: 1, offset: "flexShrink", len: 0, typ: NTI33554438, name: "flexShrink", sons: null}, 
-{kind: 1, offset: "flexWrap", len: 0, typ: NTI33554438, name: "flexWrap", sons: null}, 
-{kind: 1, offset: "cssFloat", len: 0, typ: NTI33554438, name: "cssFloat", sons: null}, 
-{kind: 1, offset: "font", len: 0, typ: NTI33554438, name: "font", sons: null}, 
-{kind: 1, offset: "fontFamily", len: 0, typ: NTI33554438, name: "fontFamily", sons: null}, 
-{kind: 1, offset: "fontFeatureSettings", len: 0, typ: NTI33554438, name: "fontFeatureSettings", sons: null}, 
-{kind: 1, offset: "fontKerning", len: 0, typ: NTI33554438, name: "fontKerning", sons: null}, 
-{kind: 1, offset: "fontLanguageOverride", len: 0, typ: NTI33554438, name: "fontLanguageOverride", sons: null}, 
-{kind: 1, offset: "fontOpticalSizing", len: 0, typ: NTI33554438, name: "fontOpticalSizing", sons: null}, 
-{kind: 1, offset: "fontSize", len: 0, typ: NTI33554438, name: "fontSize", sons: null}, 
-{kind: 1, offset: "fontSizeAdjust", len: 0, typ: NTI33554438, name: "fontSizeAdjust", sons: null}, 
-{kind: 1, offset: "fontStretch", len: 0, typ: NTI33554438, name: "fontStretch", sons: null}, 
-{kind: 1, offset: "fontStyle", len: 0, typ: NTI33554438, name: "fontStyle", sons: null}, 
-{kind: 1, offset: "fontSynthesis", len: 0, typ: NTI33554438, name: "fontSynthesis", sons: null}, 
-{kind: 1, offset: "fontVariant", len: 0, typ: NTI33554438, name: "fontVariant", sons: null}, 
-{kind: 1, offset: "fontVariantAlternates", len: 0, typ: NTI33554438, name: "fontVariantAlternates", sons: null}, 
-{kind: 1, offset: "fontVariantCaps", len: 0, typ: NTI33554438, name: "fontVariantCaps", sons: null}, 
-{kind: 1, offset: "fontVariantEastAsian", len: 0, typ: NTI33554438, name: "fontVariantEastAsian", sons: null}, 
-{kind: 1, offset: "fontVariantLigatures", len: 0, typ: NTI33554438, name: "fontVariantLigatures", sons: null}, 
-{kind: 1, offset: "fontVariantNumeric", len: 0, typ: NTI33554438, name: "fontVariantNumeric", sons: null}, 
-{kind: 1, offset: "fontVariantPosition", len: 0, typ: NTI33554438, name: "fontVariantPosition", sons: null}, 
-{kind: 1, offset: "fontVariationSettings", len: 0, typ: NTI33554438, name: "fontVariationSettings", sons: null}, 
-{kind: 1, offset: "fontWeight", len: 0, typ: NTI33554438, name: "fontWeight", sons: null}, 
-{kind: 1, offset: "gap", len: 0, typ: NTI33554438, name: "gap", sons: null}, 
-{kind: 1, offset: "grid", len: 0, typ: NTI33554438, name: "grid", sons: null}, 
-{kind: 1, offset: "gridArea", len: 0, typ: NTI33554438, name: "gridArea", sons: null}, 
-{kind: 1, offset: "gridAutoColumns", len: 0, typ: NTI33554438, name: "gridAutoColumns", sons: null}, 
-{kind: 1, offset: "gridAutoFlow", len: 0, typ: NTI33554438, name: "gridAutoFlow", sons: null}, 
-{kind: 1, offset: "gridAutoRows", len: 0, typ: NTI33554438, name: "gridAutoRows", sons: null}, 
-{kind: 1, offset: "gridColumn", len: 0, typ: NTI33554438, name: "gridColumn", sons: null}, 
-{kind: 1, offset: "gridColumnEnd", len: 0, typ: NTI33554438, name: "gridColumnEnd", sons: null}, 
-{kind: 1, offset: "gridColumnStart", len: 0, typ: NTI33554438, name: "gridColumnStart", sons: null}, 
-{kind: 1, offset: "gridRow", len: 0, typ: NTI33554438, name: "gridRow", sons: null}, 
-{kind: 1, offset: "gridRowEnd", len: 0, typ: NTI33554438, name: "gridRowEnd", sons: null}, 
-{kind: 1, offset: "gridRowStart", len: 0, typ: NTI33554438, name: "gridRowStart", sons: null}, 
-{kind: 1, offset: "gridTemplate", len: 0, typ: NTI33554438, name: "gridTemplate", sons: null}, 
-{kind: 1, offset: "gridTemplateAreas", len: 0, typ: NTI33554438, name: "gridTemplateAreas", sons: null}, 
-{kind: 1, offset: "gridTemplateColumns", len: 0, typ: NTI33554438, name: "gridTemplateColumns", sons: null}, 
-{kind: 1, offset: "gridTemplateRows", len: 0, typ: NTI33554438, name: "gridTemplateRows", sons: null}, 
-{kind: 1, offset: "hangingPunctuation", len: 0, typ: NTI33554438, name: "hangingPunctuation", sons: null}, 
-{kind: 1, offset: "height", len: 0, typ: NTI33554438, name: "height", sons: null}, 
-{kind: 1, offset: "hyphens", len: 0, typ: NTI33554438, name: "hyphens", sons: null}, 
-{kind: 1, offset: "imageOrientation", len: 0, typ: NTI33554438, name: "imageOrientation", sons: null}, 
-{kind: 1, offset: "imageRendering", len: 0, typ: NTI33554438, name: "imageRendering", sons: null}, 
-{kind: 1, offset: "inlineSize", len: 0, typ: NTI33554438, name: "inlineSize", sons: null}, 
-{kind: 1, offset: "inset", len: 0, typ: NTI33554438, name: "inset", sons: null}, 
-{kind: 1, offset: "insetBlock", len: 0, typ: NTI33554438, name: "insetBlock", sons: null}, 
-{kind: 1, offset: "insetBlockEnd", len: 0, typ: NTI33554438, name: "insetBlockEnd", sons: null}, 
-{kind: 1, offset: "insetBlockStart", len: 0, typ: NTI33554438, name: "insetBlockStart", sons: null}, 
-{kind: 1, offset: "insetInline", len: 0, typ: NTI33554438, name: "insetInline", sons: null}, 
-{kind: 1, offset: "insetInlineEnd", len: 0, typ: NTI33554438, name: "insetInlineEnd", sons: null}, 
-{kind: 1, offset: "insetInlineStart", len: 0, typ: NTI33554438, name: "insetInlineStart", sons: null}, 
-{kind: 1, offset: "isolation", len: 0, typ: NTI33554438, name: "isolation", sons: null}, 
-{kind: 1, offset: "justifyContent", len: 0, typ: NTI33554438, name: "justifyContent", sons: null}, 
-{kind: 1, offset: "justifyItems", len: 0, typ: NTI33554438, name: "justifyItems", sons: null}, 
-{kind: 1, offset: "justifySelf", len: 0, typ: NTI33554438, name: "justifySelf", sons: null}, 
-{kind: 1, offset: "left", len: 0, typ: NTI33554438, name: "left", sons: null}, 
-{kind: 1, offset: "letterSpacing", len: 0, typ: NTI33554438, name: "letterSpacing", sons: null}, 
-{kind: 1, offset: "lineBreak", len: 0, typ: NTI33554438, name: "lineBreak", sons: null}, 
-{kind: 1, offset: "lineHeight", len: 0, typ: NTI33554438, name: "lineHeight", sons: null}, 
-{kind: 1, offset: "listStyle", len: 0, typ: NTI33554438, name: "listStyle", sons: null}, 
-{kind: 1, offset: "listStyleImage", len: 0, typ: NTI33554438, name: "listStyleImage", sons: null}, 
-{kind: 1, offset: "listStylePosition", len: 0, typ: NTI33554438, name: "listStylePosition", sons: null}, 
-{kind: 1, offset: "listStyleType", len: 0, typ: NTI33554438, name: "listStyleType", sons: null}, 
-{kind: 1, offset: "margin", len: 0, typ: NTI33554438, name: "margin", sons: null}, 
-{kind: 1, offset: "marginBlock", len: 0, typ: NTI33554438, name: "marginBlock", sons: null}, 
-{kind: 1, offset: "marginBlockEnd", len: 0, typ: NTI33554438, name: "marginBlockEnd", sons: null}, 
-{kind: 1, offset: "marginBlockStart", len: 0, typ: NTI33554438, name: "marginBlockStart", sons: null}, 
-{kind: 1, offset: "marginBottom", len: 0, typ: NTI33554438, name: "marginBottom", sons: null}, 
-{kind: 1, offset: "marginInline", len: 0, typ: NTI33554438, name: "marginInline", sons: null}, 
-{kind: 1, offset: "marginInlineEnd", len: 0, typ: NTI33554438, name: "marginInlineEnd", sons: null}, 
-{kind: 1, offset: "marginInlineStart", len: 0, typ: NTI33554438, name: "marginInlineStart", sons: null}, 
-{kind: 1, offset: "marginLeft", len: 0, typ: NTI33554438, name: "marginLeft", sons: null}, 
-{kind: 1, offset: "marginRight", len: 0, typ: NTI33554438, name: "marginRight", sons: null}, 
-{kind: 1, offset: "marginTop", len: 0, typ: NTI33554438, name: "marginTop", sons: null}, 
-{kind: 1, offset: "mask", len: 0, typ: NTI33554438, name: "mask", sons: null}, 
-{kind: 1, offset: "maskBorder", len: 0, typ: NTI33554438, name: "maskBorder", sons: null}, 
-{kind: 1, offset: "maskBorderMode", len: 0, typ: NTI33554438, name: "maskBorderMode", sons: null}, 
-{kind: 1, offset: "maskBorderOutset", len: 0, typ: NTI33554438, name: "maskBorderOutset", sons: null}, 
-{kind: 1, offset: "maskBorderRepeat", len: 0, typ: NTI33554438, name: "maskBorderRepeat", sons: null}, 
-{kind: 1, offset: "maskBorderSlice", len: 0, typ: NTI33554438, name: "maskBorderSlice", sons: null}, 
-{kind: 1, offset: "maskBorderSource", len: 0, typ: NTI33554438, name: "maskBorderSource", sons: null}, 
-{kind: 1, offset: "maskBorderWidth", len: 0, typ: NTI33554438, name: "maskBorderWidth", sons: null}, 
-{kind: 1, offset: "maskClip", len: 0, typ: NTI33554438, name: "maskClip", sons: null}, 
-{kind: 1, offset: "maskComposite", len: 0, typ: NTI33554438, name: "maskComposite", sons: null}, 
-{kind: 1, offset: "maskImage", len: 0, typ: NTI33554438, name: "maskImage", sons: null}, 
-{kind: 1, offset: "maskMode", len: 0, typ: NTI33554438, name: "maskMode", sons: null}, 
-{kind: 1, offset: "maskOrigin", len: 0, typ: NTI33554438, name: "maskOrigin", sons: null}, 
-{kind: 1, offset: "maskPosition", len: 0, typ: NTI33554438, name: "maskPosition", sons: null}, 
-{kind: 1, offset: "maskRepeat", len: 0, typ: NTI33554438, name: "maskRepeat", sons: null}, 
-{kind: 1, offset: "maskSize", len: 0, typ: NTI33554438, name: "maskSize", sons: null}, 
-{kind: 1, offset: "maskType", len: 0, typ: NTI33554438, name: "maskType", sons: null}, 
-{kind: 1, offset: "maxBlockSize", len: 0, typ: NTI33554438, name: "maxBlockSize", sons: null}, 
-{kind: 1, offset: "maxHeight", len: 0, typ: NTI33554438, name: "maxHeight", sons: null}, 
-{kind: 1, offset: "maxInlineSize", len: 0, typ: NTI33554438, name: "maxInlineSize", sons: null}, 
-{kind: 1, offset: "maxWidth", len: 0, typ: NTI33554438, name: "maxWidth", sons: null}, 
-{kind: 1, offset: "minBlockSize", len: 0, typ: NTI33554438, name: "minBlockSize", sons: null}, 
-{kind: 1, offset: "minHeight", len: 0, typ: NTI33554438, name: "minHeight", sons: null}, 
-{kind: 1, offset: "minInlineSize", len: 0, typ: NTI33554438, name: "minInlineSize", sons: null}, 
-{kind: 1, offset: "minWidth", len: 0, typ: NTI33554438, name: "minWidth", sons: null}, 
-{kind: 1, offset: "mixBlendMode", len: 0, typ: NTI33554438, name: "mixBlendMode", sons: null}, 
-{kind: 1, offset: "objectFit", len: 0, typ: NTI33554438, name: "objectFit", sons: null}, 
-{kind: 1, offset: "objectPosition", len: 0, typ: NTI33554438, name: "objectPosition", sons: null}, 
-{kind: 1, offset: "offset", len: 0, typ: NTI33554438, name: "offset", sons: null}, 
-{kind: 1, offset: "offsetAnchor", len: 0, typ: NTI33554438, name: "offsetAnchor", sons: null}, 
-{kind: 1, offset: "offsetDistance", len: 0, typ: NTI33554438, name: "offsetDistance", sons: null}, 
-{kind: 1, offset: "offsetPath", len: 0, typ: NTI33554438, name: "offsetPath", sons: null}, 
-{kind: 1, offset: "offsetRotate", len: 0, typ: NTI33554438, name: "offsetRotate", sons: null}, 
-{kind: 1, offset: "opacity", len: 0, typ: NTI33554438, name: "opacity", sons: null}, 
-{kind: 1, offset: "order", len: 0, typ: NTI33554438, name: "order", sons: null}, 
-{kind: 1, offset: "orphans", len: 0, typ: NTI33554438, name: "orphans", sons: null}, 
-{kind: 1, offset: "outline", len: 0, typ: NTI33554438, name: "outline", sons: null}, 
-{kind: 1, offset: "outlineColor", len: 0, typ: NTI33554438, name: "outlineColor", sons: null}, 
-{kind: 1, offset: "outlineOffset", len: 0, typ: NTI33554438, name: "outlineOffset", sons: null}, 
-{kind: 1, offset: "outlineStyle", len: 0, typ: NTI33554438, name: "outlineStyle", sons: null}, 
-{kind: 1, offset: "outlineWidth", len: 0, typ: NTI33554438, name: "outlineWidth", sons: null}, 
-{kind: 1, offset: "overflow", len: 0, typ: NTI33554438, name: "overflow", sons: null}, 
-{kind: 1, offset: "overflowAnchor", len: 0, typ: NTI33554438, name: "overflowAnchor", sons: null}, 
-{kind: 1, offset: "overflowBlock", len: 0, typ: NTI33554438, name: "overflowBlock", sons: null}, 
-{kind: 1, offset: "overflowInline", len: 0, typ: NTI33554438, name: "overflowInline", sons: null}, 
-{kind: 1, offset: "overflowWrap", len: 0, typ: NTI33554438, name: "overflowWrap", sons: null}, 
-{kind: 1, offset: "overflowX", len: 0, typ: NTI33554438, name: "overflowX", sons: null}, 
-{kind: 1, offset: "overflowY", len: 0, typ: NTI33554438, name: "overflowY", sons: null}, 
-{kind: 1, offset: "overscrollBehavior", len: 0, typ: NTI33554438, name: "overscrollBehavior", sons: null}, 
-{kind: 1, offset: "overscrollBehaviorBlock", len: 0, typ: NTI33554438, name: "overscrollBehaviorBlock", sons: null}, 
-{kind: 1, offset: "overscrollBehaviorInline", len: 0, typ: NTI33554438, name: "overscrollBehaviorInline", sons: null}, 
-{kind: 1, offset: "overscrollBehaviorX", len: 0, typ: NTI33554438, name: "overscrollBehaviorX", sons: null}, 
-{kind: 1, offset: "overscrollBehaviorY", len: 0, typ: NTI33554438, name: "overscrollBehaviorY", sons: null}, 
-{kind: 1, offset: "padding", len: 0, typ: NTI33554438, name: "padding", sons: null}, 
-{kind: 1, offset: "paddingBlock", len: 0, typ: NTI33554438, name: "paddingBlock", sons: null}, 
-{kind: 1, offset: "paddingBlockEnd", len: 0, typ: NTI33554438, name: "paddingBlockEnd", sons: null}, 
-{kind: 1, offset: "paddingBlockStart", len: 0, typ: NTI33554438, name: "paddingBlockStart", sons: null}, 
-{kind: 1, offset: "paddingBottom", len: 0, typ: NTI33554438, name: "paddingBottom", sons: null}, 
-{kind: 1, offset: "paddingInline", len: 0, typ: NTI33554438, name: "paddingInline", sons: null}, 
-{kind: 1, offset: "paddingInlineEnd", len: 0, typ: NTI33554438, name: "paddingInlineEnd", sons: null}, 
-{kind: 1, offset: "paddingInlineStart", len: 0, typ: NTI33554438, name: "paddingInlineStart", sons: null}, 
-{kind: 1, offset: "paddingLeft", len: 0, typ: NTI33554438, name: "paddingLeft", sons: null}, 
-{kind: 1, offset: "paddingRight", len: 0, typ: NTI33554438, name: "paddingRight", sons: null}, 
-{kind: 1, offset: "paddingTop", len: 0, typ: NTI33554438, name: "paddingTop", sons: null}, 
-{kind: 1, offset: "pageBreakAfter", len: 0, typ: NTI33554438, name: "pageBreakAfter", sons: null}, 
-{kind: 1, offset: "pageBreakBefore", len: 0, typ: NTI33554438, name: "pageBreakBefore", sons: null}, 
-{kind: 1, offset: "pageBreakInside", len: 0, typ: NTI33554438, name: "pageBreakInside", sons: null}, 
-{kind: 1, offset: "paintOrder", len: 0, typ: NTI33554438, name: "paintOrder", sons: null}, 
-{kind: 1, offset: "perspective", len: 0, typ: NTI33554438, name: "perspective", sons: null}, 
-{kind: 1, offset: "perspectiveOrigin", len: 0, typ: NTI33554438, name: "perspectiveOrigin", sons: null}, 
-{kind: 1, offset: "placeContent", len: 0, typ: NTI33554438, name: "placeContent", sons: null}, 
-{kind: 1, offset: "placeItems", len: 0, typ: NTI33554438, name: "placeItems", sons: null}, 
-{kind: 1, offset: "placeSelf", len: 0, typ: NTI33554438, name: "placeSelf", sons: null}, 
-{kind: 1, offset: "pointerEvents", len: 0, typ: NTI33554438, name: "pointerEvents", sons: null}, 
-{kind: 1, offset: "position", len: 0, typ: NTI33554438, name: "position", sons: null}, 
-{kind: 1, offset: "quotes", len: 0, typ: NTI33554438, name: "quotes", sons: null}, 
-{kind: 1, offset: "resize", len: 0, typ: NTI33554438, name: "resize", sons: null}, 
-{kind: 1, offset: "right", len: 0, typ: NTI33554438, name: "right", sons: null}, 
-{kind: 1, offset: "rotate", len: 0, typ: NTI33554438, name: "rotate", sons: null}, 
-{kind: 1, offset: "rowGap", len: 0, typ: NTI33554438, name: "rowGap", sons: null}, 
-{kind: 1, offset: "scale", len: 0, typ: NTI33554438, name: "scale", sons: null}, 
-{kind: 1, offset: "scrollBehavior", len: 0, typ: NTI33554438, name: "scrollBehavior", sons: null}, 
-{kind: 1, offset: "scrollMargin", len: 0, typ: NTI33554438, name: "scrollMargin", sons: null}, 
-{kind: 1, offset: "scrollMarginBlock", len: 0, typ: NTI33554438, name: "scrollMarginBlock", sons: null}, 
-{kind: 1, offset: "scrollMarginBlockEnd", len: 0, typ: NTI33554438, name: "scrollMarginBlockEnd", sons: null}, 
-{kind: 1, offset: "scrollMarginBlockStart", len: 0, typ: NTI33554438, name: "scrollMarginBlockStart", sons: null}, 
-{kind: 1, offset: "scrollMarginBottom", len: 0, typ: NTI33554438, name: "scrollMarginBottom", sons: null}, 
-{kind: 1, offset: "scrollMarginInline", len: 0, typ: NTI33554438, name: "scrollMarginInline", sons: null}, 
-{kind: 1, offset: "scrollMarginInlineEnd", len: 0, typ: NTI33554438, name: "scrollMarginInlineEnd", sons: null}, 
-{kind: 1, offset: "scrollMarginInlineStart", len: 0, typ: NTI33554438, name: "scrollMarginInlineStart", sons: null}, 
-{kind: 1, offset: "scrollMarginLeft", len: 0, typ: NTI33554438, name: "scrollMarginLeft", sons: null}, 
-{kind: 1, offset: "scrollMarginRight", len: 0, typ: NTI33554438, name: "scrollMarginRight", sons: null}, 
-{kind: 1, offset: "scrollMarginTop", len: 0, typ: NTI33554438, name: "scrollMarginTop", sons: null}, 
-{kind: 1, offset: "scrollPadding", len: 0, typ: NTI33554438, name: "scrollPadding", sons: null}, 
-{kind: 1, offset: "scrollPaddingBlock", len: 0, typ: NTI33554438, name: "scrollPaddingBlock", sons: null}, 
-{kind: 1, offset: "scrollPaddingBlockEnd", len: 0, typ: NTI33554438, name: "scrollPaddingBlockEnd", sons: null}, 
-{kind: 1, offset: "scrollPaddingBlockStart", len: 0, typ: NTI33554438, name: "scrollPaddingBlockStart", sons: null}, 
-{kind: 1, offset: "scrollPaddingBottom", len: 0, typ: NTI33554438, name: "scrollPaddingBottom", sons: null}, 
-{kind: 1, offset: "scrollPaddingInline", len: 0, typ: NTI33554438, name: "scrollPaddingInline", sons: null}, 
-{kind: 1, offset: "scrollPaddingInlineEnd", len: 0, typ: NTI33554438, name: "scrollPaddingInlineEnd", sons: null}, 
-{kind: 1, offset: "scrollPaddingInlineStart", len: 0, typ: NTI33554438, name: "scrollPaddingInlineStart", sons: null}, 
-{kind: 1, offset: "scrollPaddingLeft", len: 0, typ: NTI33554438, name: "scrollPaddingLeft", sons: null}, 
-{kind: 1, offset: "scrollPaddingRight", len: 0, typ: NTI33554438, name: "scrollPaddingRight", sons: null}, 
-{kind: 1, offset: "scrollPaddingTop", len: 0, typ: NTI33554438, name: "scrollPaddingTop", sons: null}, 
-{kind: 1, offset: "scrollSnapAlign", len: 0, typ: NTI33554438, name: "scrollSnapAlign", sons: null}, 
-{kind: 1, offset: "scrollSnapStop", len: 0, typ: NTI33554438, name: "scrollSnapStop", sons: null}, 
-{kind: 1, offset: "scrollSnapType", len: 0, typ: NTI33554438, name: "scrollSnapType", sons: null}, 
-{kind: 1, offset: "scrollbar3dLightColor", len: 0, typ: NTI33554438, name: "scrollbar3dLightColor", sons: null}, 
-{kind: 1, offset: "scrollbarArrowColor", len: 0, typ: NTI33554438, name: "scrollbarArrowColor", sons: null}, 
-{kind: 1, offset: "scrollbarBaseColor", len: 0, typ: NTI33554438, name: "scrollbarBaseColor", sons: null}, 
-{kind: 1, offset: "scrollbarColor", len: 0, typ: NTI33554438, name: "scrollbarColor", sons: null}, 
-{kind: 1, offset: "scrollbarDarkshadowColor", len: 0, typ: NTI33554438, name: "scrollbarDarkshadowColor", sons: null}, 
-{kind: 1, offset: "scrollbarFaceColor", len: 0, typ: NTI33554438, name: "scrollbarFaceColor", sons: null}, 
-{kind: 1, offset: "scrollbarHighlightColor", len: 0, typ: NTI33554438, name: "scrollbarHighlightColor", sons: null}, 
-{kind: 1, offset: "scrollbarShadowColor", len: 0, typ: NTI33554438, name: "scrollbarShadowColor", sons: null}, 
-{kind: 1, offset: "scrollbarTrackColor", len: 0, typ: NTI33554438, name: "scrollbarTrackColor", sons: null}, 
-{kind: 1, offset: "scrollbarWidth", len: 0, typ: NTI33554438, name: "scrollbarWidth", sons: null}, 
-{kind: 1, offset: "shapeImageThreshold", len: 0, typ: NTI33554438, name: "shapeImageThreshold", sons: null}, 
-{kind: 1, offset: "shapeMargin", len: 0, typ: NTI33554438, name: "shapeMargin", sons: null}, 
-{kind: 1, offset: "shapeOutside", len: 0, typ: NTI33554438, name: "shapeOutside", sons: null}, 
-{kind: 1, offset: "tabSize", len: 0, typ: NTI33554438, name: "tabSize", sons: null}, 
-{kind: 1, offset: "tableLayout", len: 0, typ: NTI33554438, name: "tableLayout", sons: null}, 
-{kind: 1, offset: "textAlign", len: 0, typ: NTI33554438, name: "textAlign", sons: null}, 
-{kind: 1, offset: "textAlignLast", len: 0, typ: NTI33554438, name: "textAlignLast", sons: null}, 
-{kind: 1, offset: "textCombineUpright", len: 0, typ: NTI33554438, name: "textCombineUpright", sons: null}, 
-{kind: 1, offset: "textDecoration", len: 0, typ: NTI33554438, name: "textDecoration", sons: null}, 
-{kind: 1, offset: "textDecorationColor", len: 0, typ: NTI33554438, name: "textDecorationColor", sons: null}, 
-{kind: 1, offset: "textDecorationLine", len: 0, typ: NTI33554438, name: "textDecorationLine", sons: null}, 
-{kind: 1, offset: "textDecorationSkipInk", len: 0, typ: NTI33554438, name: "textDecorationSkipInk", sons: null}, 
-{kind: 1, offset: "textDecorationStyle", len: 0, typ: NTI33554438, name: "textDecorationStyle", sons: null}, 
-{kind: 1, offset: "textDecorationThickness", len: 0, typ: NTI33554438, name: "textDecorationThickness", sons: null}, 
-{kind: 1, offset: "textEmphasis", len: 0, typ: NTI33554438, name: "textEmphasis", sons: null}, 
-{kind: 1, offset: "textEmphasisColor", len: 0, typ: NTI33554438, name: "textEmphasisColor", sons: null}, 
-{kind: 1, offset: "textEmphasisPosition", len: 0, typ: NTI33554438, name: "textEmphasisPosition", sons: null}, 
-{kind: 1, offset: "textEmphasisStyle", len: 0, typ: NTI33554438, name: "textEmphasisStyle", sons: null}, 
-{kind: 1, offset: "textIndent", len: 0, typ: NTI33554438, name: "textIndent", sons: null}, 
-{kind: 1, offset: "textJustify", len: 0, typ: NTI33554438, name: "textJustify", sons: null}, 
-{kind: 1, offset: "textOrientation", len: 0, typ: NTI33554438, name: "textOrientation", sons: null}, 
-{kind: 1, offset: "textOverflow", len: 0, typ: NTI33554438, name: "textOverflow", sons: null}, 
-{kind: 1, offset: "textRendering", len: 0, typ: NTI33554438, name: "textRendering", sons: null}, 
-{kind: 1, offset: "textShadow", len: 0, typ: NTI33554438, name: "textShadow", sons: null}, 
-{kind: 1, offset: "textTransform", len: 0, typ: NTI33554438, name: "textTransform", sons: null}, 
-{kind: 1, offset: "textUnderlineOffset", len: 0, typ: NTI33554438, name: "textUnderlineOffset", sons: null}, 
-{kind: 1, offset: "textUnderlinePosition", len: 0, typ: NTI33554438, name: "textUnderlinePosition", sons: null}, 
-{kind: 1, offset: "top", len: 0, typ: NTI33554438, name: "top", sons: null}, 
-{kind: 1, offset: "touchAction", len: 0, typ: NTI33554438, name: "touchAction", sons: null}, 
-{kind: 1, offset: "transform", len: 0, typ: NTI33554438, name: "transform", sons: null}, 
-{kind: 1, offset: "transformBox", len: 0, typ: NTI33554438, name: "transformBox", sons: null}, 
-{kind: 1, offset: "transformOrigin", len: 0, typ: NTI33554438, name: "transformOrigin", sons: null}, 
-{kind: 1, offset: "transformStyle", len: 0, typ: NTI33554438, name: "transformStyle", sons: null}, 
-{kind: 1, offset: "transition", len: 0, typ: NTI33554438, name: "transition", sons: null}, 
-{kind: 1, offset: "transitionDelay", len: 0, typ: NTI33554438, name: "transitionDelay", sons: null}, 
-{kind: 1, offset: "transitionDuration", len: 0, typ: NTI33554438, name: "transitionDuration", sons: null}, 
-{kind: 1, offset: "transitionProperty", len: 0, typ: NTI33554438, name: "transitionProperty", sons: null}, 
-{kind: 1, offset: "transitionTimingFunction", len: 0, typ: NTI33554438, name: "transitionTimingFunction", sons: null}, 
-{kind: 1, offset: "translate", len: 0, typ: NTI33554438, name: "translate", sons: null}, 
-{kind: 1, offset: "unicodeBidi", len: 0, typ: NTI33554438, name: "unicodeBidi", sons: null}, 
-{kind: 1, offset: "verticalAlign", len: 0, typ: NTI33554438, name: "verticalAlign", sons: null}, 
-{kind: 1, offset: "visibility", len: 0, typ: NTI33554438, name: "visibility", sons: null}, 
-{kind: 1, offset: "whiteSpace", len: 0, typ: NTI33554438, name: "whiteSpace", sons: null}, 
-{kind: 1, offset: "widows", len: 0, typ: NTI33554438, name: "widows", sons: null}, 
-{kind: 1, offset: "width", len: 0, typ: NTI33554438, name: "width", sons: null}, 
-{kind: 1, offset: "willChange", len: 0, typ: NTI33554438, name: "willChange", sons: null}, 
-{kind: 1, offset: "wordBreak", len: 0, typ: NTI33554438, name: "wordBreak", sons: null}, 
-{kind: 1, offset: "wordSpacing", len: 0, typ: NTI33554438, name: "wordSpacing", sons: null}, 
-{kind: 1, offset: "writingMode", len: 0, typ: NTI33554438, name: "writingMode", sons: null}, 
-{kind: 1, offset: "zIndex", len: 0, typ: NTI33554438, name: "zIndex", sons: null}]};
-NTI503316526.node = NNI503316526;
-NTI503316526.base = NTI33555071;
-NTI503316525.base = NTI503316526;
-var NNI503316498 = {kind: 2, len: 22, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "attributes", len: 0, typ: NTI503316611, name: "attributes", sons: null}, 
-{kind: 1, offset: "childNodes", len: 0, typ: NTI503316612, name: "childNodes", sons: null}, 
-{kind: 1, offset: "children", len: 0, typ: NTI503316613, name: "children", sons: null}, 
-{kind: 1, offset: "data", len: 0, typ: NTI33554438, name: "data", sons: null}, 
-{kind: 1, offset: "firstChild", len: 0, typ: NTI503316497, name: "firstChild", sons: null}, 
-{kind: 1, offset: "lastChild", len: 0, typ: NTI503316497, name: "lastChild", sons: null}, 
-{kind: 1, offset: "nextSibling", len: 0, typ: NTI503316497, name: "nextSibling", sons: null}, 
-{kind: 1, offset: "nodeName", len: 0, typ: NTI33554438, name: "nodeName", sons: null}, 
-{kind: 1, offset: "nodeType", len: 0, typ: NTI503316496, name: "nodeType", sons: null}, 
-{kind: 1, offset: "nodeValue", len: 0, typ: NTI33554438, name: "nodeValue", sons: null}, 
-{kind: 1, offset: "parentNode", len: 0, typ: NTI503316497, name: "parentNode", sons: null}, 
-{kind: 1, offset: "content", len: 0, typ: NTI503316497, name: "content", sons: null}, 
-{kind: 1, offset: "previousSibling", len: 0, typ: NTI503316497, name: "previousSibling", sons: null}, 
-{kind: 1, offset: "ownerDocument", len: 0, typ: NTI503316499, name: "ownerDocument", sons: null}, 
-{kind: 1, offset: "innerHTML", len: 0, typ: NTI33554438, name: "innerHTML", sons: null}, 
-{kind: 1, offset: "outerHTML", len: 0, typ: NTI33554438, name: "outerHTML", sons: null}, 
-{kind: 1, offset: "innerText", len: 0, typ: NTI33554438, name: "innerText", sons: null}, 
-{kind: 1, offset: "textContent", len: 0, typ: NTI33554438, name: "textContent", sons: null}, 
-{kind: 1, offset: "style", len: 0, typ: NTI503316525, name: "style", sons: null}, 
-{kind: 1, offset: "baseURI", len: 0, typ: NTI33554438, name: "baseURI", sons: null}, 
-{kind: 1, offset: "parentElement", len: 0, typ: NTI503316501, name: "parentElement", sons: null}, 
-{kind: 1, offset: "isConnected", len: 0, typ: NTI33554464, name: "isConnected", sons: null}]};
-NTI503316498.node = NNI503316498;
-var NNI503316482 = {kind: 2, len: 23, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "onabort", len: 0, typ: NTI503316574, name: "onabort", sons: null}, 
-{kind: 1, offset: "onblur", len: 0, typ: NTI503316575, name: "onblur", sons: null}, 
-{kind: 1, offset: "onchange", len: 0, typ: NTI503316576, name: "onchange", sons: null}, 
-{kind: 1, offset: "onclick", len: 0, typ: NTI503316577, name: "onclick", sons: null}, 
-{kind: 1, offset: "ondblclick", len: 0, typ: NTI503316578, name: "ondblclick", sons: null}, 
-{kind: 1, offset: "onerror", len: 0, typ: NTI503316579, name: "onerror", sons: null}, 
-{kind: 1, offset: "onfocus", len: 0, typ: NTI503316580, name: "onfocus", sons: null}, 
-{kind: 1, offset: "onkeydown", len: 0, typ: NTI503316581, name: "onkeydown", sons: null}, 
-{kind: 1, offset: "onkeypress", len: 0, typ: NTI503316582, name: "onkeypress", sons: null}, 
-{kind: 1, offset: "onkeyup", len: 0, typ: NTI503316583, name: "onkeyup", sons: null}, 
-{kind: 1, offset: "onload", len: 0, typ: NTI503316584, name: "onload", sons: null}, 
-{kind: 1, offset: "onmousedown", len: 0, typ: NTI503316585, name: "onmousedown", sons: null}, 
-{kind: 1, offset: "onmousemove", len: 0, typ: NTI503316586, name: "onmousemove", sons: null}, 
-{kind: 1, offset: "onmouseout", len: 0, typ: NTI503316587, name: "onmouseout", sons: null}, 
-{kind: 1, offset: "onmouseover", len: 0, typ: NTI503316588, name: "onmouseover", sons: null}, 
-{kind: 1, offset: "onmouseup", len: 0, typ: NTI503316589, name: "onmouseup", sons: null}, 
-{kind: 1, offset: "onreset", len: 0, typ: NTI503316590, name: "onreset", sons: null}, 
-{kind: 1, offset: "onselect", len: 0, typ: NTI503316591, name: "onselect", sons: null}, 
-{kind: 1, offset: "onsubmit", len: 0, typ: NTI503316592, name: "onsubmit", sons: null}, 
-{kind: 1, offset: "onunload", len: 0, typ: NTI503316593, name: "onunload", sons: null}, 
-{kind: 1, offset: "onloadstart", len: 0, typ: NTI503316594, name: "onloadstart", sons: null}, 
-{kind: 1, offset: "onprogress", len: 0, typ: NTI503316595, name: "onprogress", sons: null}, 
-{kind: 1, offset: "onloadend", len: 0, typ: NTI503316596, name: "onloadend", sons: null}]};
-NTI503316482.node = NNI503316482;
-NTI503316482.base = NTI33555071;
-NTI503316498.base = NTI503316482;
-NTI503316497.base = NTI503316498;
-NTI503316899.base = NTI503316497;
-NTI385876518.base = NTI33554438;
-var NNI520093699 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI33554454, name: "Field0", sons: null}, 
-{kind: 1, offset: "Field1", len: 0, typ: NTI33554464, name: "Field1", sons: null}]};
-NTI520093699.node = NNI520093699;
-function makeNimstrLit(c_33556787) {
-      var result = [];
-  for (var i = 0; i < c_33556787.length; ++i) {
-    result[i] = c_33556787.charCodeAt(i);
+var NTI10436058 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
+var NTI1214653 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
+var NTI10595580 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
+var NTI1872476 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872472 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872468 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872464 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872460 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872456 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872452 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872448 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872444 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872440 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872436 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872432 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872428 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872424 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872420 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872416 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872412 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872408 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872404 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872400 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872396 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872392 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872388 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1872205 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
+var NTI1872293 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
+var NTI1872291 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
+var NTI1873628 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1873619 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
+var NTI1873618 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
+var NTI1872385 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
+var NTI1873626 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
+var NTI1872387 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
+var NTI1872269 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
+var NTI1872267 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
+var NTI1872661 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
+var NTI1872273 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
+var NTI1872271 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
+var NTI1872659 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
+var NTI1872657 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
+var NTI1872289 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
+var NTI1872287 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
+var NTI1872655 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
+var NTI1872653 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
+var NTI1872277 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
+var NTI1872275 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
+var NTI1872651 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
+var NTI1872675 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
+var NTI1872281 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
+var NTI1872279 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
+var NTI1872673 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
+var NTI1208044 = {size: 0,kind: 31,base: null,node: null,finalizer: null};
+var NTI1872767 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
+var NTI1872285 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
+var NTI1872283 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
+var NTI1208064 = {size: 0,kind: 1,base: null,node: null,finalizer: null};
+var NTI1872231 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
+var NTI1872229 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
+var NTI1872245 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
+var NTI1872243 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
+var NTI1872241 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
+var NTI1872239 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
+var NTI1872233 = {size: 0, kind: 14, base: null, node: null, finalizer: null};
+var NTI1872614 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
+var NTI1872612 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
+var NTI1872610 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
+var NTI1872237 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
+var NTI1872235 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
+var NTI1900505 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
+var NTI1214641 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
+var NTI1214649 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
+var NTI1214408 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
+var NTI1214728 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
+var NTI1208013 = {size: 0,kind: 28,base: null,node: null,finalizer: null};
+var NTI1208015 = {size: 0,kind: 29,base: null,node: null,finalizer: null};
+var NTI1214723 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
+var NTI1214617 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
+var NTI1214619 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
+var NTI1214633 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
+var NTI1214637 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
+var NNI1214637 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
+NTI1214637.node = NNI1214637;
+var NNI1214633 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
+NTI1214633.node = NNI1214633;
+var NNI1214619 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
+NTI1214619.node = NNI1214619;
+NTI1214723.base = NTI1214617;
+NTI1214728.base = NTI1214617;
+var NNI1214617 = {kind: 2, len: 5, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "parent", len: 0, typ: NTI1214723, name: "parent", sons: null}, 
+{kind: 1, offset: "name", len: 0, typ: NTI1208015, name: "name", sons: null}, 
+{kind: 1, offset: "message", len: 0, typ: NTI1208013, name: "msg", sons: null}, 
+{kind: 1, offset: "trace", len: 0, typ: NTI1208013, name: "trace", sons: null}, 
+{kind: 1, offset: "up", len: 0, typ: NTI1214728, name: "up", sons: null}]};
+NTI1214617.node = NNI1214617;
+var NNI1214408 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
+NTI1214408.node = NNI1214408;
+NTI1214617.base = NTI1214408;
+NTI1214619.base = NTI1214617;
+NTI1214633.base = NTI1214619;
+NTI1214637.base = NTI1214633;
+var NNI1214649 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
+NTI1214649.node = NNI1214649;
+NTI1214649.base = NTI1214619;
+var NNI1214641 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
+NTI1214641.node = NNI1214641;
+NTI1214641.base = NTI1214619;
+NTI1872610.base = NTI1872235;
+NTI1872612.base = NTI1872235;
+NTI1872614.base = NTI1872235;
+var NNI1872233 = {kind: 2, offset: 0, typ: null, name: null, len: 12, sons: {"1": {kind: 1, offset: 1, typ: NTI1872233, name: "ElementNode", len: 0, sons: null}, 
+"2": {kind: 1, offset: 2, typ: NTI1872233, name: "AttributeNode", len: 0, sons: null}, 
+"3": {kind: 1, offset: 3, typ: NTI1872233, name: "TextNode", len: 0, sons: null}, 
+"4": {kind: 1, offset: 4, typ: NTI1872233, name: "CDATANode", len: 0, sons: null}, 
+"5": {kind: 1, offset: 5, typ: NTI1872233, name: "EntityRefNode", len: 0, sons: null}, 
+"6": {kind: 1, offset: 6, typ: NTI1872233, name: "EntityNode", len: 0, sons: null}, 
+"7": {kind: 1, offset: 7, typ: NTI1872233, name: "ProcessingInstructionNode", len: 0, sons: null}, 
+"8": {kind: 1, offset: 8, typ: NTI1872233, name: "CommentNode", len: 0, sons: null}, 
+"9": {kind: 1, offset: 9, typ: NTI1872233, name: "DocumentNode", len: 0, sons: null}, 
+"10": {kind: 1, offset: 10, typ: NTI1872233, name: "DocumentTypeNode", len: 0, sons: null}, 
+"11": {kind: 1, offset: 11, typ: NTI1872233, name: "DocumentFragmentNode", len: 0, sons: null}, 
+"12": {kind: 1, offset: 12, typ: NTI1872233, name: "NotationNode", len: 0, sons: null}}};
+NTI1872233.node = NNI1872233;
+var NNI1872231 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
+NTI1872231.node = NNI1872231;
+NTI1872231.base = NTI1214408;
+NTI1872229.base = NTI1872231;
+NTI1872767.base = NTI1872243;
+var NNI1872285 = {kind: 2, len: 10, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "acceptCharset", len: 0, typ: NTI1208015, name: "acceptCharset", sons: null}, 
+{kind: 1, offset: "action", len: 0, typ: NTI1208015, name: "action", sons: null}, 
+{kind: 1, offset: "autocomplete", len: 0, typ: NTI1208015, name: "autocomplete", sons: null}, 
+{kind: 1, offset: "elements", len: 0, typ: NTI1872767, name: "elements", sons: null}, 
+{kind: 1, offset: "encoding", len: 0, typ: NTI1208015, name: "encoding", sons: null}, 
+{kind: 1, offset: "enctype", len: 0, typ: NTI1208015, name: "enctype", sons: null}, 
+{kind: 1, offset: "length", len: 0, typ: NTI1208044, name: "length", sons: null}, 
+{kind: 1, offset: "method", len: 0, typ: NTI1208015, name: "method", sons: null}, 
+{kind: 1, offset: "noValidate", len: 0, typ: NTI1208064, name: "noValidate", sons: null}, 
+{kind: 1, offset: "target", len: 0, typ: NTI1208015, name: "target", sons: null}]};
+NTI1872285.node = NNI1872285;
+NTI1872285.base = NTI1872245;
+NTI1872283.base = NTI1872285;
+var NNI1872281 = {kind: 2, len: 5, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "defaultSelected", len: 0, typ: NTI1208064, name: "defaultSelected", sons: null}, 
+{kind: 1, offset: "selected", len: 0, typ: NTI1208064, name: "selected", sons: null}, 
+{kind: 1, offset: "selectedIndex", len: 0, typ: NTI1208044, name: "selectedIndex", sons: null}, 
+{kind: 1, offset: "text", len: 0, typ: NTI1208015, name: "text", sons: null}, 
+{kind: 1, offset: "value", len: 0, typ: NTI1208015, name: "value", sons: null}]};
+NTI1872281.node = NNI1872281;
+NTI1872281.base = NTI1872245;
+NTI1872279.base = NTI1872281;
+NTI1872673.base = NTI1872279;
+NTI1872675.base = NTI1872279;
+var NNI1872245 = {kind: 2, len: 20, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "className", len: 0, typ: NTI1208015, name: "className", sons: null}, 
+{kind: 1, offset: "classList", len: 0, typ: NTI1872229, name: "classList", sons: null}, 
+{kind: 1, offset: "checked", len: 0, typ: NTI1208064, name: "checked", sons: null}, 
+{kind: 1, offset: "defaultChecked", len: 0, typ: NTI1208064, name: "defaultChecked", sons: null}, 
+{kind: 1, offset: "defaultValue", len: 0, typ: NTI1208015, name: "defaultValue", sons: null}, 
+{kind: 1, offset: "disabled", len: 0, typ: NTI1208064, name: "disabled", sons: null}, 
+{kind: 1, offset: "form", len: 0, typ: NTI1872283, name: "form", sons: null}, 
+{kind: 1, offset: "name", len: 0, typ: NTI1208015, name: "name", sons: null}, 
+{kind: 1, offset: "readOnly", len: 0, typ: NTI1208064, name: "readOnly", sons: null}, 
+{kind: 1, offset: "options", len: 0, typ: NTI1872673, name: "options", sons: null}, 
+{kind: 1, offset: "selectedOptions", len: 0, typ: NTI1872675, name: "selectedOptions", sons: null}, 
+{kind: 1, offset: "clientWidth", len: 0, typ: NTI1208044, name: "clientWidth", sons: null}, 
+{kind: 1, offset: "clientHeight", len: 0, typ: NTI1208044, name: "clientHeight", sons: null}, 
+{kind: 1, offset: "contentEditable", len: 0, typ: NTI1208015, name: "contentEditable", sons: null}, 
+{kind: 1, offset: "isContentEditable", len: 0, typ: NTI1208064, name: "isContentEditable", sons: null}, 
+{kind: 1, offset: "dir", len: 0, typ: NTI1208015, name: "dir", sons: null}, 
+{kind: 1, offset: "offsetHeight", len: 0, typ: NTI1208044, name: "offsetHeight", sons: null}, 
+{kind: 1, offset: "offsetWidth", len: 0, typ: NTI1208044, name: "offsetWidth", sons: null}, 
+{kind: 1, offset: "offsetLeft", len: 0, typ: NTI1208044, name: "offsetLeft", sons: null}, 
+{kind: 1, offset: "offsetTop", len: 0, typ: NTI1208044, name: "offsetTop", sons: null}]};
+NTI1872245.node = NNI1872245;
+NTI1872245.base = NTI1872237;
+NTI1872243.base = NTI1872245;
+var NNI1872277 = {kind: 2, len: 3, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "text", len: 0, typ: NTI1208015, name: "text", sons: null}, 
+{kind: 1, offset: "x", len: 0, typ: NTI1208044, name: "x", sons: null}, 
+{kind: 1, offset: "y", len: 0, typ: NTI1208044, name: "y", sons: null}]};
+NTI1872277.node = NNI1872277;
+NTI1872277.base = NTI1872245;
+NTI1872275.base = NTI1872277;
+NTI1872651.base = NTI1872275;
+NTI1872653.base = NTI1872283;
+var NNI1872289 = {kind: 2, len: 8, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "border", len: 0, typ: NTI1208044, name: "border", sons: null}, 
+{kind: 1, offset: "complete", len: 0, typ: NTI1208064, name: "complete", sons: null}, 
+{kind: 1, offset: "height", len: 0, typ: NTI1208044, name: "height", sons: null}, 
+{kind: 1, offset: "hspace", len: 0, typ: NTI1208044, name: "hspace", sons: null}, 
+{kind: 1, offset: "lowsrc", len: 0, typ: NTI1208015, name: "lowsrc", sons: null}, 
+{kind: 1, offset: "src", len: 0, typ: NTI1208015, name: "src", sons: null}, 
+{kind: 1, offset: "vspace", len: 0, typ: NTI1208044, name: "vspace", sons: null}, 
+{kind: 1, offset: "width", len: 0, typ: NTI1208044, name: "width", sons: null}]};
+NTI1872289.node = NNI1872289;
+NTI1872289.base = NTI1872245;
+NTI1872287.base = NTI1872289;
+NTI1872655.base = NTI1872287;
+NTI1872657.base = NTI1872243;
+var NNI1872273 = {kind: 2, len: 6, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "height", len: 0, typ: NTI1208044, name: "height", sons: null}, 
+{kind: 1, offset: "hspace", len: 0, typ: NTI1208044, name: "hspace", sons: null}, 
+{kind: 1, offset: "src", len: 0, typ: NTI1208015, name: "src", sons: null}, 
+{kind: 1, offset: "width", len: 0, typ: NTI1208044, name: "width", sons: null}, 
+{kind: 1, offset: "type", len: 0, typ: NTI1208015, name: "type", sons: null}, 
+{kind: 1, offset: "vspace", len: 0, typ: NTI1208044, name: "vspace", sons: null}]};
+NTI1872273.node = NNI1872273;
+NTI1872273.base = NTI1872245;
+NTI1872271.base = NTI1872273;
+NTI1872659.base = NTI1872271;
+var NNI1872269 = {kind: 2, len: 4, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "target", len: 0, typ: NTI1208015, name: "target", sons: null}, 
+{kind: 1, offset: "text", len: 0, typ: NTI1208015, name: "text", sons: null}, 
+{kind: 1, offset: "x", len: 0, typ: NTI1208044, name: "x", sons: null}, 
+{kind: 1, offset: "y", len: 0, typ: NTI1208044, name: "y", sons: null}]};
+NTI1872269.node = NNI1872269;
+NTI1872269.base = NTI1872245;
+NTI1872267.base = NTI1872269;
+NTI1872661.base = NTI1872267;
+var NNI1873618 = {kind: 1, offset: "then", len: 0, typ: NTI1873619, name: "then", sons: null};
+NTI1873618.node = NNI1873618;
+NTI1872385.base = NTI1873618;
+var NNI1873626 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "ready", len: 0, typ: NTI1872385, name: "ready", sons: null}, 
+{kind: 1, offset: "onloadingdone", len: 0, typ: NTI1873628, name: "onloadingdone", sons: null}]};
+NTI1873626.node = NNI1873626;
+NTI1872387.base = NTI1873626;
+var NNI1872241 = {kind: 2, len: 23, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "activeElement", len: 0, typ: NTI1872243, name: "activeElement", sons: null}, 
+{kind: 1, offset: "documentElement", len: 0, typ: NTI1872243, name: "documentElement", sons: null}, 
+{kind: 1, offset: "alinkColor", len: 0, typ: NTI1208015, name: "alinkColor", sons: null}, 
+{kind: 1, offset: "bgColor", len: 0, typ: NTI1208015, name: "bgColor", sons: null}, 
+{kind: 1, offset: "body", len: 0, typ: NTI1872243, name: "body", sons: null}, 
+{kind: 1, offset: "charset", len: 0, typ: NTI1208015, name: "charset", sons: null}, 
+{kind: 1, offset: "cookie", len: 0, typ: NTI1208015, name: "cookie", sons: null}, 
+{kind: 1, offset: "defaultCharset", len: 0, typ: NTI1208015, name: "defaultCharset", sons: null}, 
+{kind: 1, offset: "fgColor", len: 0, typ: NTI1208015, name: "fgColor", sons: null}, 
+{kind: 1, offset: "head", len: 0, typ: NTI1872243, name: "head", sons: null}, 
+{kind: 1, offset: "lastModified", len: 0, typ: NTI1208015, name: "lastModified", sons: null}, 
+{kind: 1, offset: "linkColor", len: 0, typ: NTI1208015, name: "linkColor", sons: null}, 
+{kind: 1, offset: "referrer", len: 0, typ: NTI1208015, name: "referrer", sons: null}, 
+{kind: 1, offset: "title", len: 0, typ: NTI1208015, name: "title", sons: null}, 
+{kind: 1, offset: "URL", len: 0, typ: NTI1208015, name: "URL", sons: null}, 
+{kind: 1, offset: "vlinkColor", len: 0, typ: NTI1208015, name: "vlinkColor", sons: null}, 
+{kind: 1, offset: "anchors", len: 0, typ: NTI1872651, name: "anchors", sons: null}, 
+{kind: 1, offset: "forms", len: 0, typ: NTI1872653, name: "forms", sons: null}, 
+{kind: 1, offset: "images", len: 0, typ: NTI1872655, name: "images", sons: null}, 
+{kind: 1, offset: "applets", len: 0, typ: NTI1872657, name: "applets", sons: null}, 
+{kind: 1, offset: "embeds", len: 0, typ: NTI1872659, name: "embeds", sons: null}, 
+{kind: 1, offset: "links", len: 0, typ: NTI1872661, name: "links", sons: null}, 
+{kind: 1, offset: "fonts", len: 0, typ: NTI1872387, name: "fonts", sons: null}]};
+NTI1872241.node = NNI1872241;
+NTI1872241.base = NTI1872237;
+NTI1872239.base = NTI1872241;
+var NNI1872293 = {kind: 2, len: 368, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "alignContent", len: 0, typ: NTI1208015, name: "alignContent", sons: null}, 
+{kind: 1, offset: "alignItems", len: 0, typ: NTI1208015, name: "alignItems", sons: null}, 
+{kind: 1, offset: "alignSelf", len: 0, typ: NTI1208015, name: "alignSelf", sons: null}, 
+{kind: 1, offset: "all", len: 0, typ: NTI1208015, name: "all", sons: null}, 
+{kind: 1, offset: "animation", len: 0, typ: NTI1208015, name: "animation", sons: null}, 
+{kind: 1, offset: "animationDelay", len: 0, typ: NTI1208015, name: "animationDelay", sons: null}, 
+{kind: 1, offset: "animationDirection", len: 0, typ: NTI1208015, name: "animationDirection", sons: null}, 
+{kind: 1, offset: "animationDuration", len: 0, typ: NTI1208015, name: "animationDuration", sons: null}, 
+{kind: 1, offset: "animationFillMode", len: 0, typ: NTI1208015, name: "animationFillMode", sons: null}, 
+{kind: 1, offset: "animationIterationCount", len: 0, typ: NTI1208015, name: "animationIterationCount", sons: null}, 
+{kind: 1, offset: "animationName", len: 0, typ: NTI1208015, name: "animationName", sons: null}, 
+{kind: 1, offset: "animationPlayState", len: 0, typ: NTI1208015, name: "animationPlayState", sons: null}, 
+{kind: 1, offset: "animationTimingFunction", len: 0, typ: NTI1208015, name: "animationTimingFunction", sons: null}, 
+{kind: 1, offset: "backdropFilter", len: 0, typ: NTI1208015, name: "backdropFilter", sons: null}, 
+{kind: 1, offset: "backfaceVisibility", len: 0, typ: NTI1208015, name: "backfaceVisibility", sons: null}, 
+{kind: 1, offset: "background", len: 0, typ: NTI1208015, name: "background", sons: null}, 
+{kind: 1, offset: "backgroundAttachment", len: 0, typ: NTI1208015, name: "backgroundAttachment", sons: null}, 
+{kind: 1, offset: "backgroundBlendMode", len: 0, typ: NTI1208015, name: "backgroundBlendMode", sons: null}, 
+{kind: 1, offset: "backgroundClip", len: 0, typ: NTI1208015, name: "backgroundClip", sons: null}, 
+{kind: 1, offset: "backgroundColor", len: 0, typ: NTI1208015, name: "backgroundColor", sons: null}, 
+{kind: 1, offset: "backgroundImage", len: 0, typ: NTI1208015, name: "backgroundImage", sons: null}, 
+{kind: 1, offset: "backgroundOrigin", len: 0, typ: NTI1208015, name: "backgroundOrigin", sons: null}, 
+{kind: 1, offset: "backgroundPosition", len: 0, typ: NTI1208015, name: "backgroundPosition", sons: null}, 
+{kind: 1, offset: "backgroundRepeat", len: 0, typ: NTI1208015, name: "backgroundRepeat", sons: null}, 
+{kind: 1, offset: "backgroundSize", len: 0, typ: NTI1208015, name: "backgroundSize", sons: null}, 
+{kind: 1, offset: "blockSize", len: 0, typ: NTI1208015, name: "blockSize", sons: null}, 
+{kind: 1, offset: "border", len: 0, typ: NTI1208015, name: "border", sons: null}, 
+{kind: 1, offset: "borderBlock", len: 0, typ: NTI1208015, name: "borderBlock", sons: null}, 
+{kind: 1, offset: "borderBlockColor", len: 0, typ: NTI1208015, name: "borderBlockColor", sons: null}, 
+{kind: 1, offset: "borderBlockEnd", len: 0, typ: NTI1208015, name: "borderBlockEnd", sons: null}, 
+{kind: 1, offset: "borderBlockEndColor", len: 0, typ: NTI1208015, name: "borderBlockEndColor", sons: null}, 
+{kind: 1, offset: "borderBlockEndStyle", len: 0, typ: NTI1208015, name: "borderBlockEndStyle", sons: null}, 
+{kind: 1, offset: "borderBlockEndWidth", len: 0, typ: NTI1208015, name: "borderBlockEndWidth", sons: null}, 
+{kind: 1, offset: "borderBlockStart", len: 0, typ: NTI1208015, name: "borderBlockStart", sons: null}, 
+{kind: 1, offset: "borderBlockStartColor", len: 0, typ: NTI1208015, name: "borderBlockStartColor", sons: null}, 
+{kind: 1, offset: "borderBlockStartStyle", len: 0, typ: NTI1208015, name: "borderBlockStartStyle", sons: null}, 
+{kind: 1, offset: "borderBlockStartWidth", len: 0, typ: NTI1208015, name: "borderBlockStartWidth", sons: null}, 
+{kind: 1, offset: "borderBlockStyle", len: 0, typ: NTI1208015, name: "borderBlockStyle", sons: null}, 
+{kind: 1, offset: "borderBlockWidth", len: 0, typ: NTI1208015, name: "borderBlockWidth", sons: null}, 
+{kind: 1, offset: "borderBottom", len: 0, typ: NTI1208015, name: "borderBottom", sons: null}, 
+{kind: 1, offset: "borderBottomColor", len: 0, typ: NTI1208015, name: "borderBottomColor", sons: null}, 
+{kind: 1, offset: "borderBottomLeftRadius", len: 0, typ: NTI1208015, name: "borderBottomLeftRadius", sons: null}, 
+{kind: 1, offset: "borderBottomRightRadius", len: 0, typ: NTI1208015, name: "borderBottomRightRadius", sons: null}, 
+{kind: 1, offset: "borderBottomStyle", len: 0, typ: NTI1208015, name: "borderBottomStyle", sons: null}, 
+{kind: 1, offset: "borderBottomWidth", len: 0, typ: NTI1208015, name: "borderBottomWidth", sons: null}, 
+{kind: 1, offset: "borderCollapse", len: 0, typ: NTI1208015, name: "borderCollapse", sons: null}, 
+{kind: 1, offset: "borderColor", len: 0, typ: NTI1208015, name: "borderColor", sons: null}, 
+{kind: 1, offset: "borderEndEndRadius", len: 0, typ: NTI1208015, name: "borderEndEndRadius", sons: null}, 
+{kind: 1, offset: "borderEndStartRadius", len: 0, typ: NTI1208015, name: "borderEndStartRadius", sons: null}, 
+{kind: 1, offset: "borderImage", len: 0, typ: NTI1208015, name: "borderImage", sons: null}, 
+{kind: 1, offset: "borderImageOutset", len: 0, typ: NTI1208015, name: "borderImageOutset", sons: null}, 
+{kind: 1, offset: "borderImageRepeat", len: 0, typ: NTI1208015, name: "borderImageRepeat", sons: null}, 
+{kind: 1, offset: "borderImageSlice", len: 0, typ: NTI1208015, name: "borderImageSlice", sons: null}, 
+{kind: 1, offset: "borderImageSource", len: 0, typ: NTI1208015, name: "borderImageSource", sons: null}, 
+{kind: 1, offset: "borderImageWidth", len: 0, typ: NTI1208015, name: "borderImageWidth", sons: null}, 
+{kind: 1, offset: "borderInline", len: 0, typ: NTI1208015, name: "borderInline", sons: null}, 
+{kind: 1, offset: "borderInlineColor", len: 0, typ: NTI1208015, name: "borderInlineColor", sons: null}, 
+{kind: 1, offset: "borderInlineEnd", len: 0, typ: NTI1208015, name: "borderInlineEnd", sons: null}, 
+{kind: 1, offset: "borderInlineEndColor", len: 0, typ: NTI1208015, name: "borderInlineEndColor", sons: null}, 
+{kind: 1, offset: "borderInlineEndStyle", len: 0, typ: NTI1208015, name: "borderInlineEndStyle", sons: null}, 
+{kind: 1, offset: "borderInlineEndWidth", len: 0, typ: NTI1208015, name: "borderInlineEndWidth", sons: null}, 
+{kind: 1, offset: "borderInlineStart", len: 0, typ: NTI1208015, name: "borderInlineStart", sons: null}, 
+{kind: 1, offset: "borderInlineStartColor", len: 0, typ: NTI1208015, name: "borderInlineStartColor", sons: null}, 
+{kind: 1, offset: "borderInlineStartStyle", len: 0, typ: NTI1208015, name: "borderInlineStartStyle", sons: null}, 
+{kind: 1, offset: "borderInlineStartWidth", len: 0, typ: NTI1208015, name: "borderInlineStartWidth", sons: null}, 
+{kind: 1, offset: "borderInlineStyle", len: 0, typ: NTI1208015, name: "borderInlineStyle", sons: null}, 
+{kind: 1, offset: "borderInlineWidth", len: 0, typ: NTI1208015, name: "borderInlineWidth", sons: null}, 
+{kind: 1, offset: "borderLeft", len: 0, typ: NTI1208015, name: "borderLeft", sons: null}, 
+{kind: 1, offset: "borderLeftColor", len: 0, typ: NTI1208015, name: "borderLeftColor", sons: null}, 
+{kind: 1, offset: "borderLeftStyle", len: 0, typ: NTI1208015, name: "borderLeftStyle", sons: null}, 
+{kind: 1, offset: "borderLeftWidth", len: 0, typ: NTI1208015, name: "borderLeftWidth", sons: null}, 
+{kind: 1, offset: "borderRadius", len: 0, typ: NTI1208015, name: "borderRadius", sons: null}, 
+{kind: 1, offset: "borderRight", len: 0, typ: NTI1208015, name: "borderRight", sons: null}, 
+{kind: 1, offset: "borderRightColor", len: 0, typ: NTI1208015, name: "borderRightColor", sons: null}, 
+{kind: 1, offset: "borderRightStyle", len: 0, typ: NTI1208015, name: "borderRightStyle", sons: null}, 
+{kind: 1, offset: "borderRightWidth", len: 0, typ: NTI1208015, name: "borderRightWidth", sons: null}, 
+{kind: 1, offset: "borderSpacing", len: 0, typ: NTI1208015, name: "borderSpacing", sons: null}, 
+{kind: 1, offset: "borderStartEndRadius", len: 0, typ: NTI1208015, name: "borderStartEndRadius", sons: null}, 
+{kind: 1, offset: "borderStartStartRadius", len: 0, typ: NTI1208015, name: "borderStartStartRadius", sons: null}, 
+{kind: 1, offset: "borderStyle", len: 0, typ: NTI1208015, name: "borderStyle", sons: null}, 
+{kind: 1, offset: "borderTop", len: 0, typ: NTI1208015, name: "borderTop", sons: null}, 
+{kind: 1, offset: "borderTopColor", len: 0, typ: NTI1208015, name: "borderTopColor", sons: null}, 
+{kind: 1, offset: "borderTopLeftRadius", len: 0, typ: NTI1208015, name: "borderTopLeftRadius", sons: null}, 
+{kind: 1, offset: "borderTopRightRadius", len: 0, typ: NTI1208015, name: "borderTopRightRadius", sons: null}, 
+{kind: 1, offset: "borderTopStyle", len: 0, typ: NTI1208015, name: "borderTopStyle", sons: null}, 
+{kind: 1, offset: "borderTopWidth", len: 0, typ: NTI1208015, name: "borderTopWidth", sons: null}, 
+{kind: 1, offset: "borderWidth", len: 0, typ: NTI1208015, name: "borderWidth", sons: null}, 
+{kind: 1, offset: "bottom", len: 0, typ: NTI1208015, name: "bottom", sons: null}, 
+{kind: 1, offset: "boxDecorationBreak", len: 0, typ: NTI1208015, name: "boxDecorationBreak", sons: null}, 
+{kind: 1, offset: "boxShadow", len: 0, typ: NTI1208015, name: "boxShadow", sons: null}, 
+{kind: 1, offset: "boxSizing", len: 0, typ: NTI1208015, name: "boxSizing", sons: null}, 
+{kind: 1, offset: "breakAfter", len: 0, typ: NTI1208015, name: "breakAfter", sons: null}, 
+{kind: 1, offset: "breakBefore", len: 0, typ: NTI1208015, name: "breakBefore", sons: null}, 
+{kind: 1, offset: "breakInside", len: 0, typ: NTI1208015, name: "breakInside", sons: null}, 
+{kind: 1, offset: "captionSide", len: 0, typ: NTI1208015, name: "captionSide", sons: null}, 
+{kind: 1, offset: "caretColor", len: 0, typ: NTI1208015, name: "caretColor", sons: null}, 
+{kind: 1, offset: "clear", len: 0, typ: NTI1208015, name: "clear", sons: null}, 
+{kind: 1, offset: "clip", len: 0, typ: NTI1208015, name: "clip", sons: null}, 
+{kind: 1, offset: "clipPath", len: 0, typ: NTI1208015, name: "clipPath", sons: null}, 
+{kind: 1, offset: "color", len: 0, typ: NTI1208015, name: "color", sons: null}, 
+{kind: 1, offset: "colorAdjust", len: 0, typ: NTI1208015, name: "colorAdjust", sons: null}, 
+{kind: 1, offset: "columnCount", len: 0, typ: NTI1208015, name: "columnCount", sons: null}, 
+{kind: 1, offset: "columnFill", len: 0, typ: NTI1208015, name: "columnFill", sons: null}, 
+{kind: 1, offset: "columnGap", len: 0, typ: NTI1208015, name: "columnGap", sons: null}, 
+{kind: 1, offset: "columnRule", len: 0, typ: NTI1208015, name: "columnRule", sons: null}, 
+{kind: 1, offset: "columnRuleColor", len: 0, typ: NTI1208015, name: "columnRuleColor", sons: null}, 
+{kind: 1, offset: "columnRuleStyle", len: 0, typ: NTI1208015, name: "columnRuleStyle", sons: null}, 
+{kind: 1, offset: "columnRuleWidth", len: 0, typ: NTI1208015, name: "columnRuleWidth", sons: null}, 
+{kind: 1, offset: "columnSpan", len: 0, typ: NTI1208015, name: "columnSpan", sons: null}, 
+{kind: 1, offset: "columnWidth", len: 0, typ: NTI1208015, name: "columnWidth", sons: null}, 
+{kind: 1, offset: "columns", len: 0, typ: NTI1208015, name: "columns", sons: null}, 
+{kind: 1, offset: "contain", len: 0, typ: NTI1208015, name: "contain", sons: null}, 
+{kind: 1, offset: "content", len: 0, typ: NTI1208015, name: "content", sons: null}, 
+{kind: 1, offset: "counterIncrement", len: 0, typ: NTI1208015, name: "counterIncrement", sons: null}, 
+{kind: 1, offset: "counterReset", len: 0, typ: NTI1208015, name: "counterReset", sons: null}, 
+{kind: 1, offset: "counterSet", len: 0, typ: NTI1208015, name: "counterSet", sons: null}, 
+{kind: 1, offset: "cursor", len: 0, typ: NTI1208015, name: "cursor", sons: null}, 
+{kind: 1, offset: "direction", len: 0, typ: NTI1208015, name: "direction", sons: null}, 
+{kind: 1, offset: "display", len: 0, typ: NTI1208015, name: "display", sons: null}, 
+{kind: 1, offset: "emptyCells", len: 0, typ: NTI1208015, name: "emptyCells", sons: null}, 
+{kind: 1, offset: "filter", len: 0, typ: NTI1208015, name: "filter", sons: null}, 
+{kind: 1, offset: "flex", len: 0, typ: NTI1208015, name: "flex", sons: null}, 
+{kind: 1, offset: "flexBasis", len: 0, typ: NTI1208015, name: "flexBasis", sons: null}, 
+{kind: 1, offset: "flexDirection", len: 0, typ: NTI1208015, name: "flexDirection", sons: null}, 
+{kind: 1, offset: "flexFlow", len: 0, typ: NTI1208015, name: "flexFlow", sons: null}, 
+{kind: 1, offset: "flexGrow", len: 0, typ: NTI1208015, name: "flexGrow", sons: null}, 
+{kind: 1, offset: "flexShrink", len: 0, typ: NTI1208015, name: "flexShrink", sons: null}, 
+{kind: 1, offset: "flexWrap", len: 0, typ: NTI1208015, name: "flexWrap", sons: null}, 
+{kind: 1, offset: "cssFloat", len: 0, typ: NTI1208015, name: "cssFloat", sons: null}, 
+{kind: 1, offset: "font", len: 0, typ: NTI1208015, name: "font", sons: null}, 
+{kind: 1, offset: "fontFamily", len: 0, typ: NTI1208015, name: "fontFamily", sons: null}, 
+{kind: 1, offset: "fontFeatureSettings", len: 0, typ: NTI1208015, name: "fontFeatureSettings", sons: null}, 
+{kind: 1, offset: "fontKerning", len: 0, typ: NTI1208015, name: "fontKerning", sons: null}, 
+{kind: 1, offset: "fontLanguageOverride", len: 0, typ: NTI1208015, name: "fontLanguageOverride", sons: null}, 
+{kind: 1, offset: "fontOpticalSizing", len: 0, typ: NTI1208015, name: "fontOpticalSizing", sons: null}, 
+{kind: 1, offset: "fontSize", len: 0, typ: NTI1208015, name: "fontSize", sons: null}, 
+{kind: 1, offset: "fontSizeAdjust", len: 0, typ: NTI1208015, name: "fontSizeAdjust", sons: null}, 
+{kind: 1, offset: "fontStretch", len: 0, typ: NTI1208015, name: "fontStretch", sons: null}, 
+{kind: 1, offset: "fontStyle", len: 0, typ: NTI1208015, name: "fontStyle", sons: null}, 
+{kind: 1, offset: "fontSynthesis", len: 0, typ: NTI1208015, name: "fontSynthesis", sons: null}, 
+{kind: 1, offset: "fontVariant", len: 0, typ: NTI1208015, name: "fontVariant", sons: null}, 
+{kind: 1, offset: "fontVariantAlternates", len: 0, typ: NTI1208015, name: "fontVariantAlternates", sons: null}, 
+{kind: 1, offset: "fontVariantCaps", len: 0, typ: NTI1208015, name: "fontVariantCaps", sons: null}, 
+{kind: 1, offset: "fontVariantEastAsian", len: 0, typ: NTI1208015, name: "fontVariantEastAsian", sons: null}, 
+{kind: 1, offset: "fontVariantLigatures", len: 0, typ: NTI1208015, name: "fontVariantLigatures", sons: null}, 
+{kind: 1, offset: "fontVariantNumeric", len: 0, typ: NTI1208015, name: "fontVariantNumeric", sons: null}, 
+{kind: 1, offset: "fontVariantPosition", len: 0, typ: NTI1208015, name: "fontVariantPosition", sons: null}, 
+{kind: 1, offset: "fontVariationSettings", len: 0, typ: NTI1208015, name: "fontVariationSettings", sons: null}, 
+{kind: 1, offset: "fontWeight", len: 0, typ: NTI1208015, name: "fontWeight", sons: null}, 
+{kind: 1, offset: "gap", len: 0, typ: NTI1208015, name: "gap", sons: null}, 
+{kind: 1, offset: "grid", len: 0, typ: NTI1208015, name: "grid", sons: null}, 
+{kind: 1, offset: "gridArea", len: 0, typ: NTI1208015, name: "gridArea", sons: null}, 
+{kind: 1, offset: "gridAutoColumns", len: 0, typ: NTI1208015, name: "gridAutoColumns", sons: null}, 
+{kind: 1, offset: "gridAutoFlow", len: 0, typ: NTI1208015, name: "gridAutoFlow", sons: null}, 
+{kind: 1, offset: "gridAutoRows", len: 0, typ: NTI1208015, name: "gridAutoRows", sons: null}, 
+{kind: 1, offset: "gridColumn", len: 0, typ: NTI1208015, name: "gridColumn", sons: null}, 
+{kind: 1, offset: "gridColumnEnd", len: 0, typ: NTI1208015, name: "gridColumnEnd", sons: null}, 
+{kind: 1, offset: "gridColumnStart", len: 0, typ: NTI1208015, name: "gridColumnStart", sons: null}, 
+{kind: 1, offset: "gridRow", len: 0, typ: NTI1208015, name: "gridRow", sons: null}, 
+{kind: 1, offset: "gridRowEnd", len: 0, typ: NTI1208015, name: "gridRowEnd", sons: null}, 
+{kind: 1, offset: "gridRowStart", len: 0, typ: NTI1208015, name: "gridRowStart", sons: null}, 
+{kind: 1, offset: "gridTemplate", len: 0, typ: NTI1208015, name: "gridTemplate", sons: null}, 
+{kind: 1, offset: "gridTemplateAreas", len: 0, typ: NTI1208015, name: "gridTemplateAreas", sons: null}, 
+{kind: 1, offset: "gridTemplateColumns", len: 0, typ: NTI1208015, name: "gridTemplateColumns", sons: null}, 
+{kind: 1, offset: "gridTemplateRows", len: 0, typ: NTI1208015, name: "gridTemplateRows", sons: null}, 
+{kind: 1, offset: "hangingPunctuation", len: 0, typ: NTI1208015, name: "hangingPunctuation", sons: null}, 
+{kind: 1, offset: "height", len: 0, typ: NTI1208015, name: "height", sons: null}, 
+{kind: 1, offset: "hyphens", len: 0, typ: NTI1208015, name: "hyphens", sons: null}, 
+{kind: 1, offset: "imageOrientation", len: 0, typ: NTI1208015, name: "imageOrientation", sons: null}, 
+{kind: 1, offset: "imageRendering", len: 0, typ: NTI1208015, name: "imageRendering", sons: null}, 
+{kind: 1, offset: "inlineSize", len: 0, typ: NTI1208015, name: "inlineSize", sons: null}, 
+{kind: 1, offset: "inset", len: 0, typ: NTI1208015, name: "inset", sons: null}, 
+{kind: 1, offset: "insetBlock", len: 0, typ: NTI1208015, name: "insetBlock", sons: null}, 
+{kind: 1, offset: "insetBlockEnd", len: 0, typ: NTI1208015, name: "insetBlockEnd", sons: null}, 
+{kind: 1, offset: "insetBlockStart", len: 0, typ: NTI1208015, name: "insetBlockStart", sons: null}, 
+{kind: 1, offset: "insetInline", len: 0, typ: NTI1208015, name: "insetInline", sons: null}, 
+{kind: 1, offset: "insetInlineEnd", len: 0, typ: NTI1208015, name: "insetInlineEnd", sons: null}, 
+{kind: 1, offset: "insetInlineStart", len: 0, typ: NTI1208015, name: "insetInlineStart", sons: null}, 
+{kind: 1, offset: "isolation", len: 0, typ: NTI1208015, name: "isolation", sons: null}, 
+{kind: 1, offset: "justifyContent", len: 0, typ: NTI1208015, name: "justifyContent", sons: null}, 
+{kind: 1, offset: "justifyItems", len: 0, typ: NTI1208015, name: "justifyItems", sons: null}, 
+{kind: 1, offset: "justifySelf", len: 0, typ: NTI1208015, name: "justifySelf", sons: null}, 
+{kind: 1, offset: "left", len: 0, typ: NTI1208015, name: "left", sons: null}, 
+{kind: 1, offset: "letterSpacing", len: 0, typ: NTI1208015, name: "letterSpacing", sons: null}, 
+{kind: 1, offset: "lineBreak", len: 0, typ: NTI1208015, name: "lineBreak", sons: null}, 
+{kind: 1, offset: "lineHeight", len: 0, typ: NTI1208015, name: "lineHeight", sons: null}, 
+{kind: 1, offset: "listStyle", len: 0, typ: NTI1208015, name: "listStyle", sons: null}, 
+{kind: 1, offset: "listStyleImage", len: 0, typ: NTI1208015, name: "listStyleImage", sons: null}, 
+{kind: 1, offset: "listStylePosition", len: 0, typ: NTI1208015, name: "listStylePosition", sons: null}, 
+{kind: 1, offset: "listStyleType", len: 0, typ: NTI1208015, name: "listStyleType", sons: null}, 
+{kind: 1, offset: "margin", len: 0, typ: NTI1208015, name: "margin", sons: null}, 
+{kind: 1, offset: "marginBlock", len: 0, typ: NTI1208015, name: "marginBlock", sons: null}, 
+{kind: 1, offset: "marginBlockEnd", len: 0, typ: NTI1208015, name: "marginBlockEnd", sons: null}, 
+{kind: 1, offset: "marginBlockStart", len: 0, typ: NTI1208015, name: "marginBlockStart", sons: null}, 
+{kind: 1, offset: "marginBottom", len: 0, typ: NTI1208015, name: "marginBottom", sons: null}, 
+{kind: 1, offset: "marginInline", len: 0, typ: NTI1208015, name: "marginInline", sons: null}, 
+{kind: 1, offset: "marginInlineEnd", len: 0, typ: NTI1208015, name: "marginInlineEnd", sons: null}, 
+{kind: 1, offset: "marginInlineStart", len: 0, typ: NTI1208015, name: "marginInlineStart", sons: null}, 
+{kind: 1, offset: "marginLeft", len: 0, typ: NTI1208015, name: "marginLeft", sons: null}, 
+{kind: 1, offset: "marginRight", len: 0, typ: NTI1208015, name: "marginRight", sons: null}, 
+{kind: 1, offset: "marginTop", len: 0, typ: NTI1208015, name: "marginTop", sons: null}, 
+{kind: 1, offset: "mask", len: 0, typ: NTI1208015, name: "mask", sons: null}, 
+{kind: 1, offset: "maskBorder", len: 0, typ: NTI1208015, name: "maskBorder", sons: null}, 
+{kind: 1, offset: "maskBorderMode", len: 0, typ: NTI1208015, name: "maskBorderMode", sons: null}, 
+{kind: 1, offset: "maskBorderOutset", len: 0, typ: NTI1208015, name: "maskBorderOutset", sons: null}, 
+{kind: 1, offset: "maskBorderRepeat", len: 0, typ: NTI1208015, name: "maskBorderRepeat", sons: null}, 
+{kind: 1, offset: "maskBorderSlice", len: 0, typ: NTI1208015, name: "maskBorderSlice", sons: null}, 
+{kind: 1, offset: "maskBorderSource", len: 0, typ: NTI1208015, name: "maskBorderSource", sons: null}, 
+{kind: 1, offset: "maskBorderWidth", len: 0, typ: NTI1208015, name: "maskBorderWidth", sons: null}, 
+{kind: 1, offset: "maskClip", len: 0, typ: NTI1208015, name: "maskClip", sons: null}, 
+{kind: 1, offset: "maskComposite", len: 0, typ: NTI1208015, name: "maskComposite", sons: null}, 
+{kind: 1, offset: "maskImage", len: 0, typ: NTI1208015, name: "maskImage", sons: null}, 
+{kind: 1, offset: "maskMode", len: 0, typ: NTI1208015, name: "maskMode", sons: null}, 
+{kind: 1, offset: "maskOrigin", len: 0, typ: NTI1208015, name: "maskOrigin", sons: null}, 
+{kind: 1, offset: "maskPosition", len: 0, typ: NTI1208015, name: "maskPosition", sons: null}, 
+{kind: 1, offset: "maskRepeat", len: 0, typ: NTI1208015, name: "maskRepeat", sons: null}, 
+{kind: 1, offset: "maskSize", len: 0, typ: NTI1208015, name: "maskSize", sons: null}, 
+{kind: 1, offset: "maskType", len: 0, typ: NTI1208015, name: "maskType", sons: null}, 
+{kind: 1, offset: "maxBlockSize", len: 0, typ: NTI1208015, name: "maxBlockSize", sons: null}, 
+{kind: 1, offset: "maxHeight", len: 0, typ: NTI1208015, name: "maxHeight", sons: null}, 
+{kind: 1, offset: "maxInlineSize", len: 0, typ: NTI1208015, name: "maxInlineSize", sons: null}, 
+{kind: 1, offset: "maxWidth", len: 0, typ: NTI1208015, name: "maxWidth", sons: null}, 
+{kind: 1, offset: "minBlockSize", len: 0, typ: NTI1208015, name: "minBlockSize", sons: null}, 
+{kind: 1, offset: "minHeight", len: 0, typ: NTI1208015, name: "minHeight", sons: null}, 
+{kind: 1, offset: "minInlineSize", len: 0, typ: NTI1208015, name: "minInlineSize", sons: null}, 
+{kind: 1, offset: "minWidth", len: 0, typ: NTI1208015, name: "minWidth", sons: null}, 
+{kind: 1, offset: "mixBlendMode", len: 0, typ: NTI1208015, name: "mixBlendMode", sons: null}, 
+{kind: 1, offset: "objectFit", len: 0, typ: NTI1208015, name: "objectFit", sons: null}, 
+{kind: 1, offset: "objectPosition", len: 0, typ: NTI1208015, name: "objectPosition", sons: null}, 
+{kind: 1, offset: "offset", len: 0, typ: NTI1208015, name: "offset", sons: null}, 
+{kind: 1, offset: "offsetAnchor", len: 0, typ: NTI1208015, name: "offsetAnchor", sons: null}, 
+{kind: 1, offset: "offsetDistance", len: 0, typ: NTI1208015, name: "offsetDistance", sons: null}, 
+{kind: 1, offset: "offsetPath", len: 0, typ: NTI1208015, name: "offsetPath", sons: null}, 
+{kind: 1, offset: "offsetRotate", len: 0, typ: NTI1208015, name: "offsetRotate", sons: null}, 
+{kind: 1, offset: "opacity", len: 0, typ: NTI1208015, name: "opacity", sons: null}, 
+{kind: 1, offset: "order", len: 0, typ: NTI1208015, name: "order", sons: null}, 
+{kind: 1, offset: "orphans", len: 0, typ: NTI1208015, name: "orphans", sons: null}, 
+{kind: 1, offset: "outline", len: 0, typ: NTI1208015, name: "outline", sons: null}, 
+{kind: 1, offset: "outlineColor", len: 0, typ: NTI1208015, name: "outlineColor", sons: null}, 
+{kind: 1, offset: "outlineOffset", len: 0, typ: NTI1208015, name: "outlineOffset", sons: null}, 
+{kind: 1, offset: "outlineStyle", len: 0, typ: NTI1208015, name: "outlineStyle", sons: null}, 
+{kind: 1, offset: "outlineWidth", len: 0, typ: NTI1208015, name: "outlineWidth", sons: null}, 
+{kind: 1, offset: "overflow", len: 0, typ: NTI1208015, name: "overflow", sons: null}, 
+{kind: 1, offset: "overflowAnchor", len: 0, typ: NTI1208015, name: "overflowAnchor", sons: null}, 
+{kind: 1, offset: "overflowBlock", len: 0, typ: NTI1208015, name: "overflowBlock", sons: null}, 
+{kind: 1, offset: "overflowInline", len: 0, typ: NTI1208015, name: "overflowInline", sons: null}, 
+{kind: 1, offset: "overflowWrap", len: 0, typ: NTI1208015, name: "overflowWrap", sons: null}, 
+{kind: 1, offset: "overflowX", len: 0, typ: NTI1208015, name: "overflowX", sons: null}, 
+{kind: 1, offset: "overflowY", len: 0, typ: NTI1208015, name: "overflowY", sons: null}, 
+{kind: 1, offset: "overscrollBehavior", len: 0, typ: NTI1208015, name: "overscrollBehavior", sons: null}, 
+{kind: 1, offset: "overscrollBehaviorBlock", len: 0, typ: NTI1208015, name: "overscrollBehaviorBlock", sons: null}, 
+{kind: 1, offset: "overscrollBehaviorInline", len: 0, typ: NTI1208015, name: "overscrollBehaviorInline", sons: null}, 
+{kind: 1, offset: "overscrollBehaviorX", len: 0, typ: NTI1208015, name: "overscrollBehaviorX", sons: null}, 
+{kind: 1, offset: "overscrollBehaviorY", len: 0, typ: NTI1208015, name: "overscrollBehaviorY", sons: null}, 
+{kind: 1, offset: "padding", len: 0, typ: NTI1208015, name: "padding", sons: null}, 
+{kind: 1, offset: "paddingBlock", len: 0, typ: NTI1208015, name: "paddingBlock", sons: null}, 
+{kind: 1, offset: "paddingBlockEnd", len: 0, typ: NTI1208015, name: "paddingBlockEnd", sons: null}, 
+{kind: 1, offset: "paddingBlockStart", len: 0, typ: NTI1208015, name: "paddingBlockStart", sons: null}, 
+{kind: 1, offset: "paddingBottom", len: 0, typ: NTI1208015, name: "paddingBottom", sons: null}, 
+{kind: 1, offset: "paddingInline", len: 0, typ: NTI1208015, name: "paddingInline", sons: null}, 
+{kind: 1, offset: "paddingInlineEnd", len: 0, typ: NTI1208015, name: "paddingInlineEnd", sons: null}, 
+{kind: 1, offset: "paddingInlineStart", len: 0, typ: NTI1208015, name: "paddingInlineStart", sons: null}, 
+{kind: 1, offset: "paddingLeft", len: 0, typ: NTI1208015, name: "paddingLeft", sons: null}, 
+{kind: 1, offset: "paddingRight", len: 0, typ: NTI1208015, name: "paddingRight", sons: null}, 
+{kind: 1, offset: "paddingTop", len: 0, typ: NTI1208015, name: "paddingTop", sons: null}, 
+{kind: 1, offset: "pageBreakAfter", len: 0, typ: NTI1208015, name: "pageBreakAfter", sons: null}, 
+{kind: 1, offset: "pageBreakBefore", len: 0, typ: NTI1208015, name: "pageBreakBefore", sons: null}, 
+{kind: 1, offset: "pageBreakInside", len: 0, typ: NTI1208015, name: "pageBreakInside", sons: null}, 
+{kind: 1, offset: "paintOrder", len: 0, typ: NTI1208015, name: "paintOrder", sons: null}, 
+{kind: 1, offset: "perspective", len: 0, typ: NTI1208015, name: "perspective", sons: null}, 
+{kind: 1, offset: "perspectiveOrigin", len: 0, typ: NTI1208015, name: "perspectiveOrigin", sons: null}, 
+{kind: 1, offset: "placeContent", len: 0, typ: NTI1208015, name: "placeContent", sons: null}, 
+{kind: 1, offset: "placeItems", len: 0, typ: NTI1208015, name: "placeItems", sons: null}, 
+{kind: 1, offset: "placeSelf", len: 0, typ: NTI1208015, name: "placeSelf", sons: null}, 
+{kind: 1, offset: "pointerEvents", len: 0, typ: NTI1208015, name: "pointerEvents", sons: null}, 
+{kind: 1, offset: "position", len: 0, typ: NTI1208015, name: "position", sons: null}, 
+{kind: 1, offset: "quotes", len: 0, typ: NTI1208015, name: "quotes", sons: null}, 
+{kind: 1, offset: "resize", len: 0, typ: NTI1208015, name: "resize", sons: null}, 
+{kind: 1, offset: "right", len: 0, typ: NTI1208015, name: "right", sons: null}, 
+{kind: 1, offset: "rotate", len: 0, typ: NTI1208015, name: "rotate", sons: null}, 
+{kind: 1, offset: "rowGap", len: 0, typ: NTI1208015, name: "rowGap", sons: null}, 
+{kind: 1, offset: "scale", len: 0, typ: NTI1208015, name: "scale", sons: null}, 
+{kind: 1, offset: "scrollBehavior", len: 0, typ: NTI1208015, name: "scrollBehavior", sons: null}, 
+{kind: 1, offset: "scrollMargin", len: 0, typ: NTI1208015, name: "scrollMargin", sons: null}, 
+{kind: 1, offset: "scrollMarginBlock", len: 0, typ: NTI1208015, name: "scrollMarginBlock", sons: null}, 
+{kind: 1, offset: "scrollMarginBlockEnd", len: 0, typ: NTI1208015, name: "scrollMarginBlockEnd", sons: null}, 
+{kind: 1, offset: "scrollMarginBlockStart", len: 0, typ: NTI1208015, name: "scrollMarginBlockStart", sons: null}, 
+{kind: 1, offset: "scrollMarginBottom", len: 0, typ: NTI1208015, name: "scrollMarginBottom", sons: null}, 
+{kind: 1, offset: "scrollMarginInline", len: 0, typ: NTI1208015, name: "scrollMarginInline", sons: null}, 
+{kind: 1, offset: "scrollMarginInlineEnd", len: 0, typ: NTI1208015, name: "scrollMarginInlineEnd", sons: null}, 
+{kind: 1, offset: "scrollMarginInlineStart", len: 0, typ: NTI1208015, name: "scrollMarginInlineStart", sons: null}, 
+{kind: 1, offset: "scrollMarginLeft", len: 0, typ: NTI1208015, name: "scrollMarginLeft", sons: null}, 
+{kind: 1, offset: "scrollMarginRight", len: 0, typ: NTI1208015, name: "scrollMarginRight", sons: null}, 
+{kind: 1, offset: "scrollMarginTop", len: 0, typ: NTI1208015, name: "scrollMarginTop", sons: null}, 
+{kind: 1, offset: "scrollPadding", len: 0, typ: NTI1208015, name: "scrollPadding", sons: null}, 
+{kind: 1, offset: "scrollPaddingBlock", len: 0, typ: NTI1208015, name: "scrollPaddingBlock", sons: null}, 
+{kind: 1, offset: "scrollPaddingBlockEnd", len: 0, typ: NTI1208015, name: "scrollPaddingBlockEnd", sons: null}, 
+{kind: 1, offset: "scrollPaddingBlockStart", len: 0, typ: NTI1208015, name: "scrollPaddingBlockStart", sons: null}, 
+{kind: 1, offset: "scrollPaddingBottom", len: 0, typ: NTI1208015, name: "scrollPaddingBottom", sons: null}, 
+{kind: 1, offset: "scrollPaddingInline", len: 0, typ: NTI1208015, name: "scrollPaddingInline", sons: null}, 
+{kind: 1, offset: "scrollPaddingInlineEnd", len: 0, typ: NTI1208015, name: "scrollPaddingInlineEnd", sons: null}, 
+{kind: 1, offset: "scrollPaddingInlineStart", len: 0, typ: NTI1208015, name: "scrollPaddingInlineStart", sons: null}, 
+{kind: 1, offset: "scrollPaddingLeft", len: 0, typ: NTI1208015, name: "scrollPaddingLeft", sons: null}, 
+{kind: 1, offset: "scrollPaddingRight", len: 0, typ: NTI1208015, name: "scrollPaddingRight", sons: null}, 
+{kind: 1, offset: "scrollPaddingTop", len: 0, typ: NTI1208015, name: "scrollPaddingTop", sons: null}, 
+{kind: 1, offset: "scrollSnapAlign", len: 0, typ: NTI1208015, name: "scrollSnapAlign", sons: null}, 
+{kind: 1, offset: "scrollSnapStop", len: 0, typ: NTI1208015, name: "scrollSnapStop", sons: null}, 
+{kind: 1, offset: "scrollSnapType", len: 0, typ: NTI1208015, name: "scrollSnapType", sons: null}, 
+{kind: 1, offset: "scrollbar3dLightColor", len: 0, typ: NTI1208015, name: "scrollbar3dLightColor", sons: null}, 
+{kind: 1, offset: "scrollbarArrowColor", len: 0, typ: NTI1208015, name: "scrollbarArrowColor", sons: null}, 
+{kind: 1, offset: "scrollbarBaseColor", len: 0, typ: NTI1208015, name: "scrollbarBaseColor", sons: null}, 
+{kind: 1, offset: "scrollbarColor", len: 0, typ: NTI1208015, name: "scrollbarColor", sons: null}, 
+{kind: 1, offset: "scrollbarDarkshadowColor", len: 0, typ: NTI1208015, name: "scrollbarDarkshadowColor", sons: null}, 
+{kind: 1, offset: "scrollbarFaceColor", len: 0, typ: NTI1208015, name: "scrollbarFaceColor", sons: null}, 
+{kind: 1, offset: "scrollbarHighlightColor", len: 0, typ: NTI1208015, name: "scrollbarHighlightColor", sons: null}, 
+{kind: 1, offset: "scrollbarShadowColor", len: 0, typ: NTI1208015, name: "scrollbarShadowColor", sons: null}, 
+{kind: 1, offset: "scrollbarTrackColor", len: 0, typ: NTI1208015, name: "scrollbarTrackColor", sons: null}, 
+{kind: 1, offset: "scrollbarWidth", len: 0, typ: NTI1208015, name: "scrollbarWidth", sons: null}, 
+{kind: 1, offset: "shapeImageThreshold", len: 0, typ: NTI1208015, name: "shapeImageThreshold", sons: null}, 
+{kind: 1, offset: "shapeMargin", len: 0, typ: NTI1208015, name: "shapeMargin", sons: null}, 
+{kind: 1, offset: "shapeOutside", len: 0, typ: NTI1208015, name: "shapeOutside", sons: null}, 
+{kind: 1, offset: "tabSize", len: 0, typ: NTI1208015, name: "tabSize", sons: null}, 
+{kind: 1, offset: "tableLayout", len: 0, typ: NTI1208015, name: "tableLayout", sons: null}, 
+{kind: 1, offset: "textAlign", len: 0, typ: NTI1208015, name: "textAlign", sons: null}, 
+{kind: 1, offset: "textAlignLast", len: 0, typ: NTI1208015, name: "textAlignLast", sons: null}, 
+{kind: 1, offset: "textCombineUpright", len: 0, typ: NTI1208015, name: "textCombineUpright", sons: null}, 
+{kind: 1, offset: "textDecoration", len: 0, typ: NTI1208015, name: "textDecoration", sons: null}, 
+{kind: 1, offset: "textDecorationColor", len: 0, typ: NTI1208015, name: "textDecorationColor", sons: null}, 
+{kind: 1, offset: "textDecorationLine", len: 0, typ: NTI1208015, name: "textDecorationLine", sons: null}, 
+{kind: 1, offset: "textDecorationSkipInk", len: 0, typ: NTI1208015, name: "textDecorationSkipInk", sons: null}, 
+{kind: 1, offset: "textDecorationStyle", len: 0, typ: NTI1208015, name: "textDecorationStyle", sons: null}, 
+{kind: 1, offset: "textDecorationThickness", len: 0, typ: NTI1208015, name: "textDecorationThickness", sons: null}, 
+{kind: 1, offset: "textEmphasis", len: 0, typ: NTI1208015, name: "textEmphasis", sons: null}, 
+{kind: 1, offset: "textEmphasisColor", len: 0, typ: NTI1208015, name: "textEmphasisColor", sons: null}, 
+{kind: 1, offset: "textEmphasisPosition", len: 0, typ: NTI1208015, name: "textEmphasisPosition", sons: null}, 
+{kind: 1, offset: "textEmphasisStyle", len: 0, typ: NTI1208015, name: "textEmphasisStyle", sons: null}, 
+{kind: 1, offset: "textIndent", len: 0, typ: NTI1208015, name: "textIndent", sons: null}, 
+{kind: 1, offset: "textJustify", len: 0, typ: NTI1208015, name: "textJustify", sons: null}, 
+{kind: 1, offset: "textOrientation", len: 0, typ: NTI1208015, name: "textOrientation", sons: null}, 
+{kind: 1, offset: "textOverflow", len: 0, typ: NTI1208015, name: "textOverflow", sons: null}, 
+{kind: 1, offset: "textRendering", len: 0, typ: NTI1208015, name: "textRendering", sons: null}, 
+{kind: 1, offset: "textShadow", len: 0, typ: NTI1208015, name: "textShadow", sons: null}, 
+{kind: 1, offset: "textTransform", len: 0, typ: NTI1208015, name: "textTransform", sons: null}, 
+{kind: 1, offset: "textUnderlineOffset", len: 0, typ: NTI1208015, name: "textUnderlineOffset", sons: null}, 
+{kind: 1, offset: "textUnderlinePosition", len: 0, typ: NTI1208015, name: "textUnderlinePosition", sons: null}, 
+{kind: 1, offset: "top", len: 0, typ: NTI1208015, name: "top", sons: null}, 
+{kind: 1, offset: "touchAction", len: 0, typ: NTI1208015, name: "touchAction", sons: null}, 
+{kind: 1, offset: "transform", len: 0, typ: NTI1208015, name: "transform", sons: null}, 
+{kind: 1, offset: "transformBox", len: 0, typ: NTI1208015, name: "transformBox", sons: null}, 
+{kind: 1, offset: "transformOrigin", len: 0, typ: NTI1208015, name: "transformOrigin", sons: null}, 
+{kind: 1, offset: "transformStyle", len: 0, typ: NTI1208015, name: "transformStyle", sons: null}, 
+{kind: 1, offset: "transition", len: 0, typ: NTI1208015, name: "transition", sons: null}, 
+{kind: 1, offset: "transitionDelay", len: 0, typ: NTI1208015, name: "transitionDelay", sons: null}, 
+{kind: 1, offset: "transitionDuration", len: 0, typ: NTI1208015, name: "transitionDuration", sons: null}, 
+{kind: 1, offset: "transitionProperty", len: 0, typ: NTI1208015, name: "transitionProperty", sons: null}, 
+{kind: 1, offset: "transitionTimingFunction", len: 0, typ: NTI1208015, name: "transitionTimingFunction", sons: null}, 
+{kind: 1, offset: "translate", len: 0, typ: NTI1208015, name: "translate", sons: null}, 
+{kind: 1, offset: "unicodeBidi", len: 0, typ: NTI1208015, name: "unicodeBidi", sons: null}, 
+{kind: 1, offset: "verticalAlign", len: 0, typ: NTI1208015, name: "verticalAlign", sons: null}, 
+{kind: 1, offset: "visibility", len: 0, typ: NTI1208015, name: "visibility", sons: null}, 
+{kind: 1, offset: "whiteSpace", len: 0, typ: NTI1208015, name: "whiteSpace", sons: null}, 
+{kind: 1, offset: "widows", len: 0, typ: NTI1208015, name: "widows", sons: null}, 
+{kind: 1, offset: "width", len: 0, typ: NTI1208015, name: "width", sons: null}, 
+{kind: 1, offset: "willChange", len: 0, typ: NTI1208015, name: "willChange", sons: null}, 
+{kind: 1, offset: "wordBreak", len: 0, typ: NTI1208015, name: "wordBreak", sons: null}, 
+{kind: 1, offset: "wordSpacing", len: 0, typ: NTI1208015, name: "wordSpacing", sons: null}, 
+{kind: 1, offset: "writingMode", len: 0, typ: NTI1208015, name: "writingMode", sons: null}, 
+{kind: 1, offset: "zIndex", len: 0, typ: NTI1208015, name: "zIndex", sons: null}]};
+NTI1872293.node = NNI1872293;
+NTI1872293.base = NTI1214408;
+NTI1872291.base = NTI1872293;
+var NNI1872237 = {kind: 2, len: 22, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "attributes", len: 0, typ: NTI1872610, name: "attributes", sons: null}, 
+{kind: 1, offset: "childNodes", len: 0, typ: NTI1872612, name: "childNodes", sons: null}, 
+{kind: 1, offset: "children", len: 0, typ: NTI1872614, name: "children", sons: null}, 
+{kind: 1, offset: "data", len: 0, typ: NTI1208015, name: "data", sons: null}, 
+{kind: 1, offset: "firstChild", len: 0, typ: NTI1872235, name: "firstChild", sons: null}, 
+{kind: 1, offset: "lastChild", len: 0, typ: NTI1872235, name: "lastChild", sons: null}, 
+{kind: 1, offset: "nextSibling", len: 0, typ: NTI1872235, name: "nextSibling", sons: null}, 
+{kind: 1, offset: "nodeName", len: 0, typ: NTI1208015, name: "nodeName", sons: null}, 
+{kind: 1, offset: "nodeType", len: 0, typ: NTI1872233, name: "nodeType", sons: null}, 
+{kind: 1, offset: "nodeValue", len: 0, typ: NTI1208015, name: "nodeValue", sons: null}, 
+{kind: 1, offset: "parentNode", len: 0, typ: NTI1872235, name: "parentNode", sons: null}, 
+{kind: 1, offset: "content", len: 0, typ: NTI1872235, name: "content", sons: null}, 
+{kind: 1, offset: "previousSibling", len: 0, typ: NTI1872235, name: "previousSibling", sons: null}, 
+{kind: 1, offset: "ownerDocument", len: 0, typ: NTI1872239, name: "ownerDocument", sons: null}, 
+{kind: 1, offset: "innerHTML", len: 0, typ: NTI1208015, name: "innerHTML", sons: null}, 
+{kind: 1, offset: "outerHTML", len: 0, typ: NTI1208015, name: "outerHTML", sons: null}, 
+{kind: 1, offset: "innerText", len: 0, typ: NTI1208015, name: "innerText", sons: null}, 
+{kind: 1, offset: "textContent", len: 0, typ: NTI1208015, name: "textContent", sons: null}, 
+{kind: 1, offset: "style", len: 0, typ: NTI1872291, name: "style", sons: null}, 
+{kind: 1, offset: "baseURI", len: 0, typ: NTI1208015, name: "baseURI", sons: null}, 
+{kind: 1, offset: "parentElement", len: 0, typ: NTI1872243, name: "parentElement", sons: null}, 
+{kind: 1, offset: "isConnected", len: 0, typ: NTI1208064, name: "isConnected", sons: null}]};
+NTI1872237.node = NNI1872237;
+var NNI1872205 = {kind: 2, len: 23, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "onabort", len: 0, typ: NTI1872388, name: "onabort", sons: null}, 
+{kind: 1, offset: "onblur", len: 0, typ: NTI1872392, name: "onblur", sons: null}, 
+{kind: 1, offset: "onchange", len: 0, typ: NTI1872396, name: "onchange", sons: null}, 
+{kind: 1, offset: "onclick", len: 0, typ: NTI1872400, name: "onclick", sons: null}, 
+{kind: 1, offset: "ondblclick", len: 0, typ: NTI1872404, name: "ondblclick", sons: null}, 
+{kind: 1, offset: "onerror", len: 0, typ: NTI1872408, name: "onerror", sons: null}, 
+{kind: 1, offset: "onfocus", len: 0, typ: NTI1872412, name: "onfocus", sons: null}, 
+{kind: 1, offset: "onkeydown", len: 0, typ: NTI1872416, name: "onkeydown", sons: null}, 
+{kind: 1, offset: "onkeypress", len: 0, typ: NTI1872420, name: "onkeypress", sons: null}, 
+{kind: 1, offset: "onkeyup", len: 0, typ: NTI1872424, name: "onkeyup", sons: null}, 
+{kind: 1, offset: "onload", len: 0, typ: NTI1872428, name: "onload", sons: null}, 
+{kind: 1, offset: "onmousedown", len: 0, typ: NTI1872432, name: "onmousedown", sons: null}, 
+{kind: 1, offset: "onmousemove", len: 0, typ: NTI1872436, name: "onmousemove", sons: null}, 
+{kind: 1, offset: "onmouseout", len: 0, typ: NTI1872440, name: "onmouseout", sons: null}, 
+{kind: 1, offset: "onmouseover", len: 0, typ: NTI1872444, name: "onmouseover", sons: null}, 
+{kind: 1, offset: "onmouseup", len: 0, typ: NTI1872448, name: "onmouseup", sons: null}, 
+{kind: 1, offset: "onreset", len: 0, typ: NTI1872452, name: "onreset", sons: null}, 
+{kind: 1, offset: "onselect", len: 0, typ: NTI1872456, name: "onselect", sons: null}, 
+{kind: 1, offset: "onsubmit", len: 0, typ: NTI1872460, name: "onsubmit", sons: null}, 
+{kind: 1, offset: "onunload", len: 0, typ: NTI1872464, name: "onunload", sons: null}, 
+{kind: 1, offset: "onloadstart", len: 0, typ: NTI1872468, name: "onloadstart", sons: null}, 
+{kind: 1, offset: "onprogress", len: 0, typ: NTI1872472, name: "onprogress", sons: null}, 
+{kind: 1, offset: "onloadend", len: 0, typ: NTI1872476, name: "onloadend", sons: null}]};
+NTI1872205.node = NNI1872205;
+NTI1872205.base = NTI1214408;
+NTI1872237.base = NTI1872205;
+NTI1872235.base = NTI1872237;
+NTI1900505.base = NTI1872235;
+NTI10595580.base = NTI1208015;
+var NNI1214653 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
+NTI1214653.node = NNI1214653;
+NTI1214653.base = NTI1214619;
+var NNI10436058 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI1208044, name: "Field0", sons: null}, 
+{kind: 1, offset: "Field1", len: 0, typ: NTI1208064, name: "Field1", sons: null}]};
+NTI10436058.node = NNI10436058;
+function makeNimstrLit(c_1475062) {
+      var ln = c_1475062.length;
+  var result = new Array(ln);
+  for (var i = 0; i < ln; ++i) {
+    result[i] = c_1475062.charCodeAt(i);
   }
   return result;
   
 
   
 }
-function toJSStr(s_33556793) {
+function toJSStr(s_1475096) {
                     var Tmp5;
             var Tmp7;
 
-  var result_33556794 = null;
+  var result_1475097 = null;
 
-    var res_33556828 = newSeq_33556811((s_33556793).length);
-    var i_33556829 = 0;
-    var j_33556830 = 0;
+    var res_1475170 = newSeq_1475128((s_1475096).length);
+    var i_1475172 = 0;
+    var j_1475174 = 0;
     L1: do {
         L2: while (true) {
-        if (!(i_33556829 < (s_33556793).length)) break L2;
-          var c_33556831 = s_33556793[i_33556829];
-          if ((c_33556831 < 128)) {
-          res_33556828[j_33556830] = String.fromCharCode(c_33556831);
-          i_33556829 += 1;
+        if (!(i_1475172 < (s_1475096).length)) break L2;
+          var c_1475175 = s_1475096[i_1475172];
+          if ((c_1475175 < 128)) {
+          res_1475170[j_1475174] = String.fromCharCode(c_1475175);
+          i_1475172 += 1;
           }
           else {
-            var helper_33556843 = newSeq_33556811(0);
+            var helper_1475198 = newSeq_1475128(0);
             L3: do {
                 L4: while (true) {
                 if (!true) break L4;
-                  var code_33556844 = c_33556831.toString(16);
-                  if (((code_33556844).length == 1)) {
-                  helper_33556843.push("%0");;
+                  var code_1475199 = c_1475175.toString(16);
+                  if ((((code_1475199) == null ? 0 : (code_1475199).length) == 1)) {
+                  helper_1475198.push("%0");;
                   }
                   else {
-                  helper_33556843.push("%");;
+                  helper_1475198.push("%");;
                   }
                   
-                  helper_33556843.push(code_33556844);;
-                  i_33556829 += 1;
-                    if (((s_33556793).length <= i_33556829)) Tmp5 = true; else {                      Tmp5 = (s_33556793[i_33556829] < 128);                    }                  if (Tmp5) {
+                  helper_1475198.push(code_1475199);;
+                  i_1475172 += 1;
+                    if (((s_1475096).length <= i_1475172)) Tmp5 = true; else {                      Tmp5 = (s_1475096[i_1475172] < 128);                    }                  if (Tmp5) {
                   break L3;
                   }
                   
-                  c_33556831 = s_33556793[i_33556829];
+                  c_1475175 = s_1475096[i_1475172];
                 }
             } while(false);
 ++excHandler;
             Tmp7 = framePtr;
             try {
-            res_33556828[j_33556830] = decodeURIComponent(helper_33556843.join(""));
+            res_1475170[j_1475174] = decodeURIComponent(helper_1475198.join(""));
 --excHandler;
 } catch (EXC) {
  var prevJSError = lastJSError;
  lastJSError = EXC;
  --excHandler;
             framePtr = Tmp7;
-            res_33556828[j_33556830] = helper_33556843.join("");
+            res_1475170[j_1475174] = helper_1475198.join("");
             lastJSError = prevJSError;
             } finally {
             framePtr = Tmp7;
             }
           }
           
-          j_33556830 += 1;
+          j_1475174 += 1;
         }
     } while(false);
-    if (res_33556828.length < j_33556830) { for (var i=res_33556828.length;i<j_33556830;++i) res_33556828.push(null); }
-               else { res_33556828.length = j_33556830; };
-    result_33556794 = res_33556828.join("");
+    if (res_1475170.length < j_1475174) { for (var i=res_1475170.length;i<j_1475174;++i) res_1475170.push(null); }
+               else { res_1475170.length = j_1475174; };
+    result_1475097 = res_1475170.join("");
 
-  return result_33556794;
+  return result_1475097;
 
 }
-function raiseException(e_33556654, ename_33556655) {
-    e_33556654.name = ename_33556655;
+function raiseException(e_1440218, ename_1440219) {
+    e_1440218.name = ename_1440219;
     if ((excHandler == 0)) {
-    unhandledException(e_33556654);
+    unhandledException(e_1440218);
     }
     
-    throw e_33556654;
+    throw e_1440218;
 
   
 }
-function addInt(a_33556926, b_33556927) {
-        var result = a_33556926 + b_33556927;
+function addInt(a_1480419, b_1480420) {
+        var result = a_1480419 + b_1480420;
     checkOverflowInt(result);
     return result;
   
 
   
 }
-function cstrToNimstr(c_33556790) {
-      var ln = c_33556790.length;
+function cstrToNimstr(c_1475079) {
+      var ln = c_1475079.length;
   var result = new Array(ln);
   var r = 0;
   for (var i = 0; i < ln; ++i) {
-    var ch = c_33556790.charCodeAt(i);
+    var ch = c_1475079.charCodeAt(i);
 
     if (ch < 128) {
       result[r] = ch;
@@ -788,7 +793,7 @@ function cstrToNimstr(c_33556790) {
         }
         else {
             ++i;
-            ch = 65536 + (((ch & 1023) << 10) | (c_33556790.charCodeAt(i) & 1023));
+            ch = 65536 + (((ch & 1023) << 10) | (c_1475079.charCodeAt(i) & 1023));
             result[r] = (ch >> 18) | 240;
             ++r;
             result[r] = ((ch >> 12) & 63) | 128;
@@ -824,104 +829,104 @@ function setConstr() {
   
 }
 var ConstSet1 = setConstr(17, 16, 4, 18, 27, 19, 23, 22, 21);
-function nimCopy(dest_33557120, src_33557121, ti_33557122) {
-  var result_33557131 = null;
+function nimCopy(dest_1490023, src_1490024, ti_1490025) {
+  var result_1495219 = null;
 
-    switch (ti_33557122.kind) {
+    switch (ti_1490025.kind) {
     case 21:
     case 22:
     case 23:
     case 5:
-      if (!(isFatPointer_33557111(ti_33557122))) {
-      result_33557131 = src_33557121;
+      if (!(isFatPointer_1485401(ti_1490025))) {
+      result_1495219 = src_1490024;
       }
       else {
-        result_33557131 = [src_33557121[0], src_33557121[1]];
+        result_1495219 = [src_1490024[0], src_1490024[1]];
       }
       
       break;
     case 19:
-            if (dest_33557120 === null || dest_33557120 === undefined) {
-        dest_33557120 = {};
+            if (dest_1490023 === null || dest_1490023 === undefined) {
+        dest_1490023 = {};
       }
       else {
-        for (var key in dest_33557120) { delete dest_33557120[key]; }
+        for (var key in dest_1490023) { delete dest_1490023[key]; }
       }
-      for (var key in src_33557121) { dest_33557120[key] = src_33557121[key]; }
-      result_33557131 = dest_33557120;
+      for (var key in src_1490024) { dest_1490023[key] = src_1490024[key]; }
+      result_1495219 = dest_1490023;
     
       break;
     case 18:
     case 17:
-      if (!((ti_33557122.base == null))) {
-      result_33557131 = nimCopy(dest_33557120, src_33557121, ti_33557122.base);
+      if (!((ti_1490025.base == null))) {
+      result_1495219 = nimCopy(dest_1490023, src_1490024, ti_1490025.base);
       }
       else {
-      if ((ti_33557122.kind == 17)) {
-      result_33557131 = (dest_33557120 === null || dest_33557120 === undefined) ? {m_type: ti_33557122} : dest_33557120;
+      if ((ti_1490025.kind == 17)) {
+      result_1495219 = (dest_1490023 === null || dest_1490023 === undefined) ? {m_type: ti_1490025} : dest_1490023;
       }
       else {
-        result_33557131 = (dest_33557120 === null || dest_33557120 === undefined) ? {} : dest_33557120;
+        result_1495219 = (dest_1490023 === null || dest_1490023 === undefined) ? {} : dest_1490023;
       }
       }
-      nimCopyAux(result_33557131, src_33557121, ti_33557122.node);
+      nimCopyAux(result_1495219, src_1490024, ti_1490025.node);
       break;
     case 24:
     case 4:
     case 27:
     case 16:
-            if (src_33557121 === null) {
-        result_33557131 = null;
+            if (src_1490024 === null) {
+        result_1495219 = null;
       }
       else {
-        if (dest_33557120 === null || dest_33557120 === undefined) {
-          dest_33557120 = new Array(src_33557121.length);
+        if (dest_1490023 === null || dest_1490023 === undefined) {
+          dest_1490023 = new Array(src_1490024.length);
         }
         else {
-          dest_33557120.length = src_33557121.length;
+          dest_1490023.length = src_1490024.length;
         }
-        result_33557131 = dest_33557120;
-        for (var i = 0; i < src_33557121.length; ++i) {
-          result_33557131[i] = nimCopy(result_33557131[i], src_33557121[i], ti_33557122.base);
+        result_1495219 = dest_1490023;
+        for (var i = 0; i < src_1490024.length; ++i) {
+          result_1495219[i] = nimCopy(result_1495219[i], src_1490024[i], ti_1490025.base);
         }
       }
     
       break;
     case 28:
-            if (src_33557121 !== null) {
-        result_33557131 = src_33557121.slice(0);
+            if (src_1490024 !== null) {
+        result_1495219 = src_1490024.slice(0);
       }
     
       break;
     default: 
-      result_33557131 = src_33557121;
+      result_1495219 = src_1490024;
       break;
     }
 
-  return result_33557131;
+  return result_1495219;
 
 }
-function chckIndx(i_33557164, a_33557165, b_33557166) {
+function chckIndx(i_1500086, a_1500087, b_1500088) {
       var Tmp1;
 
-  var result_33557167 = 0;
+  var result_1500089 = 0;
 
   BeforeRet: do {
-      if (!(a_33557165 <= i_33557164)) Tmp1 = false; else {        Tmp1 = (i_33557164 <= b_33557166);      }    if (Tmp1) {
-    result_33557167 = i_33557164;
+      if (!(a_1500087 <= i_1500086)) Tmp1 = false; else {        Tmp1 = (i_1500086 <= b_1500088);      }    if (Tmp1) {
+    result_1500089 = i_1500086;
     break BeforeRet;
     }
     else {
-    raiseIndexError(i_33557164, a_33557165, b_33557166);
+    raiseIndexError(i_1500086, a_1500087, b_1500088);
     }
     
   } while (false);
 
-  return result_33557167;
+  return result_1500089;
 
 }
-function subInt(a_33556930, b_33556931) {
-        var result = a_33556930 - b_33556931;
+function subInt(a_1480437, b_1480438) {
+        var result = a_1480437 - b_1480438;
     checkOverflowInt(result);
     return result;
   
@@ -929,10 +934,29 @@ function subInt(a_33556930, b_33556931) {
   
 }
 var ConstSet2 = setConstr([65, 90]);
+function chckRange(i_1505016, a_1505017, b_1505018) {
+      var Tmp1;
+
+  var result_1505019 = 0;
+
+  BeforeRet: do {
+      if (!(a_1505017 <= i_1505016)) Tmp1 = false; else {        Tmp1 = (i_1505016 <= b_1505018);      }    if (Tmp1) {
+    result_1505019 = i_1505016;
+    break BeforeRet;
+    }
+    else {
+    raiseRangeError();
+    }
+    
+  } while (false);
+
+  return result_1505019;
+
+}
 var ConstSet3 = setConstr(95, 32, 46);
 var ConstSet4 = setConstr(95, 32, 46);
-function mulInt(a_33556934, b_33556935) {
-        var result = a_33556934 * b_33556935;
+function mulInt(a_1480455, b_1480456) {
+        var result = a_1480455 * b_1480456;
     checkOverflowInt(result);
     return result;
   
@@ -944,48 +968,48 @@ var ConstSet6 = setConstr([65, 90], [97, 122]);
 var ConstSet7 = setConstr([97, 122]);
 var ConstSet8 = setConstr([65, 90]);
 var ConstSet9 = setConstr([65, 90], [97, 122]);
-function nimMax(a_33556987, b_33556988) {
+function nimMax(a_1480821, b_1480822) {
     var Tmp1;
 
-  var result_33556989 = 0;
+  var result_1480823 = 0;
 
   BeforeRet: do {
-    if ((b_33556988 <= a_33556987)) {
-    Tmp1 = a_33556987;
+    if ((b_1480822 <= a_1480821)) {
+    Tmp1 = a_1480821;
     }
     else {
-    Tmp1 = b_33556988;
+    Tmp1 = b_1480822;
     }
     
-    result_33556989 = Tmp1;
+    result_1480823 = Tmp1;
     break BeforeRet;
   } while (false);
 
-  return result_33556989;
+  return result_1480823;
 
 }
-function nimMin(a_33556983, b_33556984) {
+function nimMin(a_1480803, b_1480804) {
     var Tmp1;
 
-  var result_33556985 = 0;
+  var result_1480805 = 0;
 
   BeforeRet: do {
-    if ((a_33556983 <= b_33556984)) {
-    Tmp1 = a_33556983;
+    if ((a_1480803 <= b_1480804)) {
+    Tmp1 = a_1480803;
     }
     else {
-    Tmp1 = b_33556984;
+    Tmp1 = b_1480804;
     }
     
-    result_33556985 = Tmp1;
+    result_1480805 = Tmp1;
     break BeforeRet;
   } while (false);
 
-  return result_33556985;
+  return result_1480805;
 
 }
-function addChar(x_33557235, c_33557236) {
-    x_33557235.push(c_33557236);
+function addChar(x_1525031, c_1525032) {
+    x_1525031.push(c_1525032);
 
   
 }
@@ -997,107 +1021,107 @@ if (!Math.trunc) {
   };
 }
 
-var alternative_385876541 = [null];
-function add_33556409(x_33556410, x_33556410_Idx, y_33556411) {
-          if (x_33556410[x_33556410_Idx] === null) { x_33556410[x_33556410_Idx] = []; }
-      var off = x_33556410[x_33556410_Idx].length;
-      x_33556410[x_33556410_Idx].length += y_33556411.length;
-      for (var i = 0; i < y_33556411.length; ++i) {
-        x_33556410[x_33556410_Idx][off+i] = y_33556411.charCodeAt(i);
+var alternative_10595322 = [null];
+function add_1377211(x_1377214, x_1377214_Idx, y_1377215) {
+          if (x_1377214[x_1377214_Idx] === null) { x_1377214[x_1377214_Idx] = []; }
+      var off = x_1377214[x_1377214_Idx].length;
+      x_1377214[x_1377214_Idx].length += y_1377215.length;
+      for (var i = 0; i < y_1377215.length; ++i) {
+        x_1377214[x_1377214_Idx][off+i] = y_1377215.charCodeAt(i);
       }
     
 
   
 }
-function newSeq_33556811(len_33556813) {
-  var result_33556814 = [];
+function newSeq_1475128(len_1475131) {
+  var result_1475133 = [];
 
-    result_33556814 = new Array(len_33556813); for (var i=0;i<len_33556813;++i) {result_33556814[i]=null;}
-  return result_33556814;
+    result_1475133 = new Array(len_1475131); for (var i=0;i<len_1475131;++i) {result_1475133[i]=null;}
+  return result_1475133;
 
 }
-function unhandledException(e_33556650) {
-    var buf_33556651 = [[]];
-    if (!(((e_33556650.message).length == 0))) {
-    buf_33556651[0].push.apply(buf_33556651[0], makeNimstrLit("Error: unhandled exception: "));;
-    buf_33556651[0].push.apply(buf_33556651[0], e_33556650.message);;
+function unhandledException(e_1435059) {
+    var buf_1435060 = [[]];
+    if (!(((e_1435059.message).length == 0))) {
+    buf_1435060[0].push.apply(buf_1435060[0], makeNimstrLit("Error: unhandled exception: "));;
+    buf_1435060[0].push.apply(buf_1435060[0], e_1435059.message);;
     }
     else {
-    buf_33556651[0].push.apply(buf_33556651[0], makeNimstrLit("Error: unhandled exception"));;
+    buf_1435060[0].push.apply(buf_1435060[0], makeNimstrLit("Error: unhandled exception"));;
     }
     
-    buf_33556651[0].push.apply(buf_33556651[0], makeNimstrLit(" ["));;
-    add_33556409(buf_33556651, 0, e_33556650.name);
-    buf_33556651[0].push.apply(buf_33556651[0], makeNimstrLit("]\x0A"));;
-    var cbuf_33556652 = toJSStr(buf_33556651[0]);
+    buf_1435060[0].push.apply(buf_1435060[0], makeNimstrLit(" ["));;
+    add_1377211(buf_1435060, 0, e_1435059.name);
+    buf_1435060[0].push.apply(buf_1435060[0], makeNimstrLit("]\x0A"));;
+    var cbuf_1440201 = toJSStr(buf_1435060[0]);
     framePtr = null;
       if (typeof(Error) !== "undefined") {
-    throw new Error(cbuf_33556652);
+    throw new Error(cbuf_1440201);
   }
   else {
-    throw cbuf_33556652;
+    throw cbuf_1440201;
   }
   
 
   
 }
 function raiseOverflow() {
-    raiseException({message: makeNimstrLit("over- or underflow"), parent: null, m_type: NTI33555106, name: null, trace: [], up: null}, "OverflowDefect");
+    raiseException({message: makeNimstrLit("over- or underflow"), parent: null, m_type: NTI1214637, name: null, trace: [], up: null}, "OverflowDefect");
 
   
 }
-function checkOverflowInt(a_33556924) {
-        if (a_33556924 > 2147483647 || a_33556924 < -2147483648) raiseOverflow();
+function checkOverflowInt(a_1480403) {
+        if (a_1480403 > 2147483647 || a_1480403 < -2147483648) raiseOverflow();
   
 
   
 }
-function isWhitespace_385876274(text_385876275) {
-         return !/[^\s]/.test(text_385876275);
+function isWhitespace_10570116(text_10570118) {
+         return !/[^\s]/.test(text_10570118);
   
 
   
 }
-function isWhitespace_385876277(x_385876278) {
+function isWhitespace_10570133(x_10570135) {
     var Tmp1;
     var Tmp2;
 
-  var result_385876279 = false;
+  var result_10570136 = false;
 
-    if (!(x_385876278.nodeName == "#text")) Tmp2 = false; else {      Tmp2 = isWhitespace_385876274(x_385876278.textContent);    }    if (Tmp2) Tmp1 = true; else {      Tmp1 = (x_385876278.nodeName == "#comment");    }    result_385876279 = Tmp1;
+    if (!(x_10570135.nodeName == "#text")) Tmp2 = false; else {      Tmp2 = isWhitespace_10570116(x_10570135.textContent);    }    if (Tmp2) Tmp1 = true; else {      Tmp1 = (x_10570135.nodeName == "#comment");    }    result_10570136 = Tmp1;
 
-  return result_385876279;
+  return result_10570136;
 
 }
-function isFatPointer_33557111(ti_33557112) {
-  var result_33557113 = false;
+function isFatPointer_1485401(ti_1485403) {
+  var result_1485404 = false;
 
   BeforeRet: do {
-    result_33557113 = !((ConstSet1[ti_33557112.base.kind] != undefined));
+    result_1485404 = !((ConstSet1[ti_1485403.base.kind] != undefined));
     break BeforeRet;
   } while (false);
 
-  return result_33557113;
+  return result_1485404;
 
 }
-function nimCopyAux(dest_33557124, src_33557125, n_33557126) {
-    switch (n_33557126.kind) {
+function nimCopyAux(dest_1490028, src_1490029, n_1490031) {
+    switch (n_1490031.kind) {
     case 0:
       break;
     case 1:
-            dest_33557124[n_33557126.offset] = nimCopy(dest_33557124[n_33557126.offset], src_33557125[n_33557126.offset], n_33557126.typ);
+            dest_1490028[n_1490031.offset] = nimCopy(dest_1490028[n_1490031.offset], src_1490029[n_1490031.offset], n_1490031.typ);
     
       break;
     case 2:
-          for (var i = 0; i < n_33557126.sons.length; i++) {
-      nimCopyAux(dest_33557124, src_33557125, n_33557126.sons[i]);
+          for (var i = 0; i < n_1490031.sons.length; i++) {
+      nimCopyAux(dest_1490028, src_1490029, n_1490031.sons[i]);
     }
     
       break;
     case 3:
-            dest_33557124[n_33557126.offset] = nimCopy(dest_33557124[n_33557126.offset], src_33557125[n_33557126.offset], n_33557126.typ);
-      for (var i = 0; i < n_33557126.sons.length; ++i) {
-        nimCopyAux(dest_33557124, src_33557125, n_33557126.sons[i][1]);
+            dest_1490028[n_1490031.offset] = nimCopy(dest_1490028[n_1490031.offset], src_1490029[n_1490031.offset], n_1490031.typ);
+      for (var i = 0; i < n_1490031.sons.length; ++i) {
+        nimCopyAux(dest_1490028, src_1490029, n_1490031.sons[i][1]);
       }
     
       break;
@@ -1105,123 +1129,123 @@ function nimCopyAux(dest_33557124, src_33557125, n_33557126) {
 
   
 }
-function raiseIndexError(i_33556741, a_33556742, b_33556743) {
+function raiseIndexError(i_1460047, a_1460048, b_1460049) {
     var Tmp1;
 
-    if ((b_33556743 < a_33556742)) {
+    if ((b_1460049 < a_1460048)) {
     Tmp1 = makeNimstrLit("index out of bounds, the container is empty");
     }
     else {
-    Tmp1 = (makeNimstrLit("index ") || []).concat(cstrToNimstr((i_33556741)+"") || [],makeNimstrLit(" not in ") || [],cstrToNimstr((a_33556742)+"") || [],makeNimstrLit(" .. ") || [],cstrToNimstr((b_33556743)+"") || []);
+    Tmp1 = (makeNimstrLit("index ") || []).concat(cstrToNimstr((i_1460047)+"") || [],makeNimstrLit(" not in ") || [],cstrToNimstr((a_1460048)+"") || [],makeNimstrLit(" .. ") || [],cstrToNimstr((b_1460049)+"") || []);
     }
     
-    raiseException({message: nimCopy(null, Tmp1, NTI33554437), parent: null, m_type: NTI33555112, name: null, trace: [], up: null}, "IndexDefect");
+    raiseException({message: nimCopy(null, Tmp1, NTI1208013), parent: null, m_type: NTI1214649, name: null, trace: [], up: null}, "IndexDefect");
 
   
 }
-function toToc_385876280(x_385876281, father_385876282) {
+function toToc_10570150(x_10570152, father_10570153) {
                 var Tmp5;
             var Tmp6;
             var Tmp7;
             var Tmp8;
       var Tmp15;
 
-    if ((x_385876281.nodeName == "UL")) {
-    var f_385876290 = {heading: null, kids: [], sortId: (father_385876282.kids).length, doSort: false};
-    var i_385876291 = 0;
+    if ((x_10570152.nodeName == "UL")) {
+    var f_10570174 = {heading: null, kids: [], sortId: (father_10570153.kids).length, doSort: false};
+    var i_10570176 = 0;
     L1: do {
         L2: while (true) {
-        if (!(i_385876291 < x_385876281.childNodes.length)) break L2;
-          var nxt_385876292 = addInt(i_385876291, 1);
+        if (!(i_10570176 < x_10570152.childNodes.length)) break L2;
+          var nxt_10570177 = addInt(i_10570176, 1);
           L3: do {
               L4: while (true) {
-                if (!(nxt_385876292 < x_385876281.childNodes.length)) Tmp5 = false; else {                  Tmp5 = isWhitespace_385876277(x_385876281.childNodes[nxt_385876292]);                }              if (!Tmp5) break L4;
-                nxt_385876292 = addInt(nxt_385876292, 1);
+                if (!(nxt_10570177 < x_10570152.childNodes.length)) Tmp5 = false; else {                  Tmp5 = isWhitespace_10570133(x_10570152.childNodes[nxt_10570177]);                }              if (!Tmp5) break L4;
+                nxt_10570177 = addInt(nxt_10570177, 1);
               }
           } while(false);
-            if (!(nxt_385876292 < x_385876281.childNodes.length)) Tmp8 = false; else {              Tmp8 = (x_385876281.childNodes[i_385876291].nodeName == "LI");            }            if (!Tmp8) Tmp7 = false; else {              Tmp7 = (x_385876281.childNodes[i_385876291].childNodes.length == 1);            }            if (!Tmp7) Tmp6 = false; else {              Tmp6 = (x_385876281.childNodes[nxt_385876292].nodeName == "UL");            }          if (Tmp6) {
-          var e_385876304 = {heading: x_385876281.childNodes[i_385876291].childNodes[0], kids: [], sortId: (f_385876290.kids).length, doSort: false};
-          var it_385876305 = x_385876281.childNodes[nxt_385876292];
+            if (!(nxt_10570177 < x_10570152.childNodes.length)) Tmp8 = false; else {              Tmp8 = (x_10570152.childNodes[i_10570176].nodeName == "LI");            }            if (!Tmp8) Tmp7 = false; else {              Tmp7 = (x_10570152.childNodes[i_10570176].childNodes.length == 1);            }            if (!Tmp7) Tmp6 = false; else {              Tmp6 = (x_10570152.childNodes[nxt_10570177].nodeName == "UL");            }          if (Tmp6) {
+          var e_10570204 = {heading: x_10570152.childNodes[i_10570176].childNodes[0], kids: [], sortId: (f_10570174.kids).length, doSort: false};
+          var it_10570205 = x_10570152.childNodes[nxt_10570177];
           L9: do {
-            var j_385876310 = 0;
-            var colontmp__385876570 = 0;
-            colontmp__385876570 = it_385876305.childNodes.length;
-            var i_385876571 = 0;
+            var j_10570213 = 0;
+            var colontmp__10595445 = 0;
+            colontmp__10595445 = it_10570205.childNodes.length;
+            var i_10595446 = 0;
             L10: do {
                 L11: while (true) {
-                if (!(i_385876571 < colontmp__385876570)) break L11;
-                  j_385876310 = i_385876571;
-                  toToc_385876280(it_385876305.childNodes[j_385876310], e_385876304);
-                  i_385876571 = addInt(i_385876571, 1);
+                if (!(i_10595446 < colontmp__10595445)) break L11;
+                  j_10570213 = i_10595446;
+                  toToc_10570150(it_10570205.childNodes[j_10570213], e_10570204);
+                  i_10595446 = addInt(i_10595446, 1);
                 }
             } while(false);
           } while(false);
-          f_385876290.kids.push(e_385876304);;
-          i_385876291 = addInt(nxt_385876292, 1);
+          f_10570174.kids.push(e_10570204);;
+          i_10570176 = addInt(nxt_10570177, 1);
           }
           else {
-            toToc_385876280(x_385876281.childNodes[i_385876291], f_385876290);
-            i_385876291 = addInt(i_385876291, 1);
+            toToc_10570150(x_10570152.childNodes[i_10570176], f_10570174);
+            i_10570176 = addInt(i_10570176, 1);
           }
           
         }
     } while(false);
-    father_385876282.kids.push(f_385876290);;
+    father_10570153.kids.push(f_10570174);;
     }
     else {
-    if (isWhitespace_385876277(x_385876281)) {
+    if (isWhitespace_10570133(x_10570152)) {
     }
     else {
-    if ((x_385876281.nodeName == "LI")) {
-    var idx_385876327 = [];
+    if ((x_10570152.nodeName == "LI")) {
+    var idx_10570252 = [];
     L12: do {
-      var i_385876332 = 0;
-      var colontmp__385876574 = 0;
-      colontmp__385876574 = x_385876281.childNodes.length;
-      var i_385876575 = 0;
+      var i_10570260 = 0;
+      var colontmp__10595449 = 0;
+      colontmp__10595449 = x_10570152.childNodes.length;
+      var i_10595450 = 0;
       L13: do {
           L14: while (true) {
-          if (!(i_385876575 < colontmp__385876574)) break L14;
-            i_385876332 = i_385876575;
-            if (!(isWhitespace_385876277(x_385876281.childNodes[i_385876332]))) {
-            idx_385876327.push(i_385876332);;
+          if (!(i_10595450 < colontmp__10595449)) break L14;
+            i_10570260 = i_10595450;
+            if (!(isWhitespace_10570133(x_10570152.childNodes[i_10570260]))) {
+            idx_10570252.push(i_10570260);;
             }
             
-            i_385876575 = addInt(i_385876575, 1);
+            i_10595450 = addInt(i_10595450, 1);
           }
       } while(false);
     } while(false);
-      if (!((idx_385876327).length == 2)) Tmp15 = false; else {        Tmp15 = (x_385876281.childNodes[idx_385876327[chckIndx(1, 0, (idx_385876327).length-1)]].nodeName == "UL");      }    if (Tmp15) {
-    var e_385876347 = {heading: x_385876281.childNodes[idx_385876327[chckIndx(0, 0, (idx_385876327).length-1)]], kids: [], sortId: (father_385876282.kids).length, doSort: false};
-    var it_385876348 = x_385876281.childNodes[idx_385876327[chckIndx(1, 0, (idx_385876327).length-1)]];
+      if (!((idx_10570252).length == 2)) Tmp15 = false; else {        Tmp15 = (x_10570152.childNodes[idx_10570252[chckIndx(1, 0, (idx_10570252).length-1)]].nodeName == "UL");      }    if (Tmp15) {
+    var e_10570294 = {heading: x_10570152.childNodes[idx_10570252[chckIndx(0, 0, (idx_10570252).length-1)]], kids: [], sortId: (father_10570153.kids).length, doSort: false};
+    var it_10570295 = x_10570152.childNodes[idx_10570252[chckIndx(1, 0, (idx_10570252).length-1)]];
     L16: do {
-      var j_385876353 = 0;
-      var colontmp__385876578 = 0;
-      colontmp__385876578 = it_385876348.childNodes.length;
-      var i_385876579 = 0;
+      var j_10570303 = 0;
+      var colontmp__10595454 = 0;
+      colontmp__10595454 = it_10570295.childNodes.length;
+      var i_10595455 = 0;
       L17: do {
           L18: while (true) {
-          if (!(i_385876579 < colontmp__385876578)) break L18;
-            j_385876353 = i_385876579;
-            toToc_385876280(it_385876348.childNodes[j_385876353], e_385876347);
-            i_385876579 = addInt(i_385876579, 1);
+          if (!(i_10595455 < colontmp__10595454)) break L18;
+            j_10570303 = i_10595455;
+            toToc_10570150(it_10570295.childNodes[j_10570303], e_10570294);
+            i_10595455 = addInt(i_10595455, 1);
           }
       } while(false);
     } while(false);
-    father_385876282.kids.push(e_385876347);;
+    father_10570153.kids.push(e_10570294);;
     }
     else {
       L19: do {
-        var i_385876362 = 0;
-        var colontmp__385876582 = 0;
-        colontmp__385876582 = x_385876281.childNodes.length;
-        var i_385876583 = 0;
+        var i_10570319 = 0;
+        var colontmp__10595458 = 0;
+        colontmp__10595458 = x_10570152.childNodes.length;
+        var i_10595459 = 0;
         L20: do {
             L21: while (true) {
-            if (!(i_385876583 < colontmp__385876582)) break L21;
-              i_385876362 = i_385876583;
-              toToc_385876280(x_385876281.childNodes[i_385876362], father_385876282);
-              i_385876583 = addInt(i_385876583, 1);
+            if (!(i_10595459 < colontmp__10595458)) break L21;
+              i_10570319 = i_10595459;
+              toToc_10570150(x_10570152.childNodes[i_10570319], father_10570153);
+              i_10595459 = addInt(i_10595459, 1);
             }
         } while(false);
       } while(false);
@@ -1229,49 +1253,49 @@ function toToc_385876280(x_385876281, father_385876282) {
     
     }
     else {
-    father_385876282.kids.push({heading: x_385876281, kids: [], sortId: (father_385876282.kids).length, doSort: false});;
+    father_10570153.kids.push({heading: x_10570152, kids: [], sortId: (father_10570153.kids).length, doSort: false});;
     }
     }}
 
   
 }
-function extractItems_385876099(x_385876100, heading_385876101, items_385876102, items_385876102_Idx) {
+function extractItems_10525075(x_10525077, heading_10525078, items_10525081, items_10525081_Idx) {
       var Tmp1;
 
   BeforeRet: do {
-    if ((x_385876100 == null)) {
+    if ((x_10525077 == null)) {
     break BeforeRet;
     }
     
-      if (!!((x_385876100.heading == null))) Tmp1 = false; else {        Tmp1 = (x_385876100.heading.textContent == heading_385876101);      }    if (Tmp1) {
+      if (!!((x_10525077.heading == null))) Tmp1 = false; else {        Tmp1 = (x_10525077.heading.textContent == heading_10525078);      }    if (Tmp1) {
     L2: do {
-      var i_385876118 = 0;
-      var colontmp__385876588 = 0;
-      colontmp__385876588 = (x_385876100.kids).length;
-      var i_385876589 = 0;
+      var i_10530021 = 0;
+      var colontmp__10595475 = 0;
+      colontmp__10595475 = (x_10525077.kids).length;
+      var i_10595476 = 0;
       L3: do {
           L4: while (true) {
-          if (!(i_385876589 < colontmp__385876588)) break L4;
-            i_385876118 = i_385876589;
-            items_385876102[items_385876102_Idx].push(x_385876100.kids[chckIndx(i_385876118, 0, (x_385876100.kids).length-1)].heading);;
-            i_385876589 = addInt(i_385876589, 1);
+          if (!(i_10595476 < colontmp__10595475)) break L4;
+            i_10530021 = i_10595476;
+            items_10525081[items_10525081_Idx].push(x_10525077.kids[chckIndx(i_10530021, 0, (x_10525077.kids).length-1)].heading);;
+            i_10595476 = addInt(i_10595476, 1);
           }
       } while(false);
     } while(false);
     }
     else {
       L5: do {
-        var i_385876130 = 0;
-        var colontmp__385876592 = 0;
-        colontmp__385876592 = (x_385876100.kids).length;
-        var i_385876593 = 0;
+        var i_10530042 = 0;
+        var colontmp__10595479 = 0;
+        colontmp__10595479 = (x_10525077.kids).length;
+        var i_10595480 = 0;
         L6: do {
             L7: while (true) {
-            if (!(i_385876593 < colontmp__385876592)) break L7;
-              i_385876130 = i_385876593;
-              var it_385876131 = x_385876100.kids[chckIndx(i_385876130, 0, (x_385876100.kids).length-1)];
-              extractItems_385876099(it_385876131, heading_385876101, items_385876102, items_385876102_Idx);
-              i_385876593 = addInt(i_385876593, 1);
+            if (!(i_10595480 < colontmp__10595479)) break L7;
+              i_10530042 = i_10595480;
+              var it_10530043 = x_10525077.kids[chckIndx(i_10530042, 0, (x_10525077.kids).length-1)];
+              extractItems_10525075(it_10530043, heading_10525078, items_10525081, items_10525081_Idx);
+              i_10595480 = addInt(i_10595480, 1);
             }
         } while(false);
       } while(false);
@@ -1281,555 +1305,560 @@ function extractItems_385876099(x_385876100, heading_385876101, items_385876102,
 
   
 }
-function tree_385875973(tag_385875974, kids_385875975) {
-  var result_385875976 = null;
+function tree_10516020(tag_10516022, kids_10516024) {
+  var result_10516025 = null;
 
-    result_385875976 = document.createElement(toJSStr(tag_385875974));
+    result_10516025 = document.createElement(toJSStr(tag_10516022));
     L1: do {
-      var k_385875988 = null;
-      var k_385875988_Idx = 0;
-      var i_385876606 = 0;
+      var k_10516058 = null;
+      var k_10516058_Idx = 0;
+      var i_10595496 = 0;
       L2: do {
           L3: while (true) {
-          if (!(i_385876606 < (kids_385875975).length)) break L3;
-            k_385875988 = kids_385875975; k_385875988_Idx = chckIndx(i_385876606, 0, (kids_385875975).length-1);
-            result_385875976.appendChild(k_385875988[k_385875988_Idx]);
-            i_385876606 = addInt(i_385876606, 1);
+          if (!(i_10595496 < (kids_10516024).length)) break L3;
+            k_10516058 = kids_10516024; k_10516058_Idx = chckIndx(i_10595496, 0, (kids_10516024).length-1);
+            result_10516025.appendChild(k_10516058[k_10516058_Idx]);
+            i_10595496 = addInt(i_10595496, 1);
           }
       } while(false);
     } while(false);
 
-  return result_385875976;
+  return result_10516025;
 
 }
-function text_385876026(s_385876027) {
-  var result_385876028 = null;
+function text_10516169(s_10516171) {
+  var result_10516172 = null;
 
-    result_385876028 = document.createTextNode(s_385876027);
+    result_10516172 = document.createTextNode(s_10516171);
 
-  return result_385876028;
+  return result_10516172;
 
 }
-function sysFatal_218103843(message_218103846) {
-    raiseException({message: nimCopy(null, message_218103846, NTI33554437), m_type: NTI33555108, parent: null, name: null, trace: [], up: null}, "AssertionDefect");
+function sysFatal_1325418(message_1325422) {
+    raiseException({message: nimCopy(null, message_1325422, NTI1208013), m_type: NTI1214641, parent: null, name: null, trace: [], up: null}, "AssertionDefect");
 
   
 }
-function raiseAssert_218103841(msg_218103842) {
-    sysFatal_218103843(msg_218103842);
+function raiseAssert_1325414(msg_1325416) {
+    sysFatal_1325418(msg_1325416);
 
   
 }
-function failedAssertImpl_218103865(msg_218103866) {
-    raiseAssert_218103841(msg_218103866);
+function failedAssertImpl_1325480(msg_1325482) {
+    raiseAssert_1325414(msg_1325482);
 
   
 }
-function uncovered_385876410(x_385876411) {
+function uncovered_10575022(x_10575024) {
       var Tmp1;
     var Tmp2;
 
-  var result_385876412 = null;
+  var result_10575025 = null;
 
   BeforeRet: do {
-      if (!((x_385876411.kids).length == 0)) Tmp1 = false; else {        Tmp1 = !((x_385876411.heading == null));      }    if (Tmp1) {
-    if (!(x_385876411.heading.hasOwnProperty('__karaxMarker__'))) {
-    Tmp2 = x_385876411;
+      if (!((x_10575024.kids).length == 0)) Tmp1 = false; else {        Tmp1 = !((x_10575024.heading == null));      }    if (Tmp1) {
+    if (!(x_10575024.heading.hasOwnProperty('__karaxMarker__'))) {
+    Tmp2 = x_10575024;
     }
     else {
     Tmp2 = null;
     }
     
-    result_385876412 = Tmp2;
+    result_10575025 = Tmp2;
     break BeforeRet;
     }
     
-    result_385876412 = {heading: x_385876411.heading, kids: [], sortId: x_385876411.sortId, doSort: x_385876411.doSort};
+    result_10575025 = {heading: x_10575024.heading, kids: [], sortId: x_10575024.sortId, doSort: x_10575024.doSort};
     L3: do {
-      var i_385876431 = 0;
-      var colontmp__385876613 = 0;
-      colontmp__385876613 = (x_385876411.kids).length;
-      var i_385876614 = 0;
+      var i_10580036 = 0;
+      var colontmp__10595507 = 0;
+      colontmp__10595507 = (x_10575024.kids).length;
+      var i_10595508 = 0;
       L4: do {
           L5: while (true) {
-          if (!(i_385876614 < colontmp__385876613)) break L5;
-            i_385876431 = i_385876614;
-            var y_385876432 = uncovered_385876410(x_385876411.kids[chckIndx(i_385876431, 0, (x_385876411.kids).length-1)]);
-            if (!((y_385876432 == null))) {
-            result_385876412.kids.push(y_385876432);;
+          if (!(i_10595508 < colontmp__10595507)) break L5;
+            i_10580036 = i_10595508;
+            var y_10580037 = uncovered_10575022(x_10575024.kids[chckIndx(i_10580036, 0, (x_10575024.kids).length-1)]);
+            if (!((y_10580037 == null))) {
+            result_10575025.kids.push(y_10580037);;
             }
             
-            i_385876614 = addInt(i_385876614, 1);
+            i_10595508 = addInt(i_10595508, 1);
           }
       } while(false);
     } while(false);
-    if (((result_385876412.kids).length == 0)) {
-    result_385876412 = null;
+    if (((result_10575025.kids).length == 0)) {
+    result_10575025 = null;
     }
     
   } while (false);
 
-  return result_385876412;
+  return result_10575025;
 
 }
-function mergeTocs_385876444(orig_385876445, news_385876446) {
-  var result_385876447 = null;
+function mergeTocs_10585035(orig_10585037, news_10585038) {
+  var result_10585039 = null;
 
-    result_385876447 = uncovered_385876410(orig_385876445);
-    if ((result_385876447 == null)) {
-    result_385876447 = news_385876446;
+    result_10585039 = uncovered_10575022(orig_10585037);
+    if ((result_10585039 == null)) {
+    result_10585039 = news_10585038;
     }
     else {
       L1: do {
-        var i_385876459 = 0;
-        var colontmp__385876609 = 0;
-        colontmp__385876609 = (news_385876446.kids).length;
-        var i_385876610 = 0;
+        var i_10585060 = 0;
+        var colontmp__10595502 = 0;
+        colontmp__10595502 = (news_10585038.kids).length;
+        var i_10595503 = 0;
         L2: do {
             L3: while (true) {
-            if (!(i_385876610 < colontmp__385876609)) break L3;
-              i_385876459 = i_385876610;
-              result_385876447.kids.push(news_385876446.kids[chckIndx(i_385876459, 0, (news_385876446.kids).length-1)]);;
-              i_385876610 = addInt(i_385876610, 1);
+            if (!(i_10595503 < colontmp__10595502)) break L3;
+              i_10585060 = i_10595503;
+              result_10585039.kids.push(news_10585038.kids[chckIndx(i_10585060, 0, (news_10585038.kids).length-1)]);;
+              i_10595503 = addInt(i_10595503, 1);
             }
         } while(false);
       } while(false);
     }
     
 
-  return result_385876447;
+  return result_10585039;
 
 }
-function buildToc_385876464(orig_385876465, types_385876466, procs_385876467) {
+function buildToc_10585082(orig_10585084, types_10585086, procs_10585087) {
                       var Tmp7;
 
-  var result_385876468 = null;
+  var result_10585088 = null;
 
-    var newStuff_385876473 = {heading: null, kids: [], doSort: true, sortId: 0};
+    var newStuff_10585104 = {heading: null, kids: [], doSort: true, sortId: 0};
     L1: do {
-      var t_385876496 = null;
-      var t_385876496_Idx = 0;
-      var i_385876601 = 0;
-      var L_385876602 = (types_385876466).length;
+      var t_10595214 = null;
+      var t_10595214_Idx = 0;
+      var i_10595491 = 0;
+      var L_10595492 = (types_10585086).length;
       L2: do {
           L3: while (true) {
-          if (!(i_385876601 < L_385876602)) break L3;
-            t_385876496 = types_385876466; t_385876496_Idx = chckIndx(i_385876601, 0, (types_385876466).length-1);
-            var c_385876501 = {heading: t_385876496[t_385876496_Idx].cloneNode(true), kids: [], doSort: true, sortId: 0};
-            t_385876496[t_385876496_Idx].__karaxMarker__ = true;
+          if (!(i_10595491 < L_10595492)) break L3;
+            t_10595214 = types_10585086; t_10595214_Idx = chckIndx(i_10595491, 0, (types_10585086).length-1);
+            var c_10595230 = {heading: t_10595214[t_10595214_Idx].cloneNode(true), kids: [], doSort: true, sortId: 0};
+            t_10595214[t_10595214_Idx].__karaxMarker__ = true;
             L4: do {
-              var p_385876505 = null;
-              var p_385876505_Idx = 0;
-              var i_385876598 = 0;
-              var L_385876599 = (procs_385876467).length;
+              var p_10595238 = null;
+              var p_10595238_Idx = 0;
+              var i_10595488 = 0;
+              var L_10595489 = (procs_10585087).length;
               L5: do {
                   L6: while (true) {
-                  if (!(i_385876598 < L_385876599)) break L6;
-                    p_385876505 = procs_385876467; p_385876505_Idx = chckIndx(i_385876598, 0, (procs_385876467).length-1);
-                    if (!(p_385876505[p_385876505_Idx].hasOwnProperty('__karaxMarker__'))) {
-                    var xx_385876506 = p_385876505[p_385876505_Idx].parentNode.getElementsByClassName("attachedType");
-                      if (!((xx_385876506).length == 1)) Tmp7 = false; else {                        Tmp7 = (xx_385876506[chckIndx(0, 0, (xx_385876506).length-1)].textContent == t_385876496[t_385876496_Idx].textContent);                      }                    if (Tmp7) {
-                    var q_385876510 = tree_385875973(makeNimstrLit("A"), [text_385876026(p_385876505[p_385876505_Idx].title)]);
-                    q_385876510.setAttribute("href", p_385876505[p_385876505_Idx].getAttribute("href"));
-                    c_385876501.kids.push({heading: q_385876510, kids: [], sortId: 0, doSort: false});;
-                    p_385876505[p_385876505_Idx].__karaxMarker__ = true;
+                  if (!(i_10595488 < L_10595489)) break L6;
+                    p_10595238 = procs_10585087; p_10595238_Idx = chckIndx(i_10595488, 0, (procs_10585087).length-1);
+                    if (!(p_10595238[p_10595238_Idx].hasOwnProperty('__karaxMarker__'))) {
+                    var xx_10595239 = p_10595238[p_10595238_Idx].parentNode.getElementsByClassName("attachedType");
+                      if (!((xx_10595239).length == 1)) Tmp7 = false; else {                        Tmp7 = (xx_10595239[chckIndx(0, 0, (xx_10595239).length-1)].textContent == t_10595214[t_10595214_Idx].textContent);                      }                    if (Tmp7) {
+                    var q_10595247 = tree_10516020(makeNimstrLit("A"), [text_10516169(p_10595238[p_10595238_Idx].title)]);
+                    q_10595247.setAttribute("href", p_10595238[p_10595238_Idx].getAttribute("href"));
+                    c_10595230.kids.push({heading: q_10595247, kids: [], sortId: 0, doSort: false});;
+                    p_10595238[p_10595238_Idx].__karaxMarker__ = true;
                     }
                     
                     }
                     
-                    i_385876598 = addInt(i_385876598, 1);
-                    if (!(((procs_385876467).length == L_385876599))) {
-                    failedAssertImpl_218103865(makeNimstrLit("iterators.nim(204, 11) `len(a) == L` the length of the seq changed while iterating over it"));
+                    i_10595488 = addInt(i_10595488, 1);
+                    if (!(((procs_10585087).length == L_10595489))) {
+                    failedAssertImpl_1325480(makeNimstrLit("iterators.nim(204, 11) `len(a) == L` the length of the seq changed while iterating over it"));
                     }
                     
                   }
               } while(false);
             } while(false);
-            newStuff_385876473.kids.push(c_385876501);;
-            i_385876601 = addInt(i_385876601, 1);
-            if (!(((types_385876466).length == L_385876602))) {
-            failedAssertImpl_218103865(makeNimstrLit("iterators.nim(204, 11) `len(a) == L` the length of the seq changed while iterating over it"));
+            newStuff_10585104.kids.push(c_10595230);;
+            i_10595491 = addInt(i_10595491, 1);
+            if (!(((types_10585086).length == L_10595492))) {
+            failedAssertImpl_1325480(makeNimstrLit("iterators.nim(204, 11) `len(a) == L` the length of the seq changed while iterating over it"));
             }
             
           }
       } while(false);
     } while(false);
-    result_385876468 = mergeTocs_385876444(orig_385876465, newStuff_385876473);
+    result_10585088 = mergeTocs_10585035(orig_10585084, newStuff_10585104);
 
-  return result_385876468;
+  return result_10585088;
 
 }
-function add_385876016(parent_385876017, kid_385876018) {
+function add_10516117(parent_10516119, kid_10516120) {
       var Tmp1;
         var Tmp2;
 
-      if (!(parent_385876017.nodeName == "TR")) Tmp1 = false; else {        if ((kid_385876018.nodeName == "TD")) Tmp2 = true; else {          Tmp2 = (kid_385876018.nodeName == "TH");        }        Tmp1 = Tmp2;      }    if (Tmp1) {
-    var k_385876019 = document.createElement("TD");
-    k_385876019.appendChild(kid_385876018);
-    parent_385876017.appendChild(k_385876019);
+      if (!(parent_10516119.nodeName == "TR")) Tmp1 = false; else {        if ((kid_10516120.nodeName == "TD")) Tmp2 = true; else {          Tmp2 = (kid_10516120.nodeName == "TH");        }        Tmp1 = Tmp2;      }    if (Tmp1) {
+    var k_10516121 = document.createElement("TD");
+    k_10516121.appendChild(kid_10516120);
+    parent_10516119.appendChild(k_10516121);
     }
     else {
-    parent_385876017.appendChild(kid_385876018);
+    parent_10516119.appendChild(kid_10516120);
     }
     
 
   
 }
-function setClass_385876020(e_385876021, value_385876022) {
-    e_385876021.setAttribute("class", toJSStr(value_385876022));
+function setClass_10516135(e_10516137, value_10516138) {
+    e_10516137.setAttribute("class", toJSStr(value_10516138));
 
   
 }
-function toHtml_385876141(x_385876142, isRoot_385876143) {
+function toHtml_10530072(x_10530074, isRoot_10530075) {
       var Tmp1;
-    function HEX3Aanonymous_385876161(a_385876162, b_385876163) {
+    function HEX3Aanonymous_10535015(a_10535017, b_10535018) {
           var Tmp1;
 
-      var result_385876164 = 0;
+      var result_10535019 = 0;
 
       BeforeRet: do {
-          if (!!((a_385876162.heading == null))) Tmp1 = false; else {            Tmp1 = !((b_385876163.heading == null));          }        if (Tmp1) {
-        var x_385876173 = a_385876162.heading.textContent;
-        var y_385876174 = b_385876163.heading.textContent;
-        if ((x_385876173 < y_385876174)) {
-        result_385876164 = -1;
+          if (!!((a_10535017.heading == null))) Tmp1 = false; else {            Tmp1 = !((b_10535018.heading == null));          }        if (Tmp1) {
+        var x_10545009 = a_10535017.heading.textContent;
+        var y_10545010 = b_10535018.heading.textContent;
+        if ((x_10545009 < y_10545010)) {
+        result_10535019 = -1;
         break BeforeRet;
         }
         
-        if ((y_385876174 < x_385876173)) {
-        result_385876164 = 1;
+        if ((y_10545010 < x_10545009)) {
+        result_10535019 = 1;
         break BeforeRet;
         }
         
-        result_385876164 = 0;
+        result_10535019 = 0;
         break BeforeRet;
         }
         else {
-          result_385876164 = subInt(a_385876162.sortId, b_385876163.sortId);
+          result_10535019 = subInt(a_10535017.sortId, b_10535018.sortId);
           break BeforeRet;
         }
         
       } while (false);
 
-      return result_385876164;
+      return result_10535019;
 
     }
 
-  var result_385876144 = null;
+  var result_10530076 = null;
 
   BeforeRet: do {
-    if ((x_385876142 == null)) {
-    result_385876144 = null;
+    if ((x_10530074 == null)) {
+    result_10530076 = null;
     break BeforeRet;
     }
     
-    if (((x_385876142.kids).length == 0)) {
-    if ((x_385876142.heading == null)) {
-    result_385876144 = null;
+    if (((x_10530074.kids).length == 0)) {
+    if ((x_10530074.heading == null)) {
+    result_10530076 = null;
     break BeforeRet;
     }
     
-    result_385876144 = x_385876142.heading.cloneNode(true);
+    result_10530076 = x_10530074.heading.cloneNode(true);
     break BeforeRet;
     }
     
-    result_385876144 = tree_385875973(makeNimstrLit("DIV"), []);
-      if (!!((x_385876142.heading == null))) Tmp1 = false; else {        Tmp1 = !(x_385876142.heading.hasOwnProperty('__karaxMarker__'));      }    if (Tmp1) {
-    add_385876016(result_385876144, x_385876142.heading.cloneNode(true));
+    result_10530076 = tree_10516020(makeNimstrLit("DIV"), []);
+      if (!!((x_10530074.heading == null))) Tmp1 = false; else {        Tmp1 = !(x_10530074.heading.hasOwnProperty('__karaxMarker__'));      }    if (Tmp1) {
+    add_10516117(result_10530076, x_10530074.heading.cloneNode(true));
     }
     
-    var ul_385876160 = tree_385875973(makeNimstrLit("UL"), []);
-    if (isRoot_385876143) {
-    setClass_385876020(ul_385876160, makeNimstrLit("simple simple-toc"));
+    var ul_10535012 = tree_10516020(makeNimstrLit("UL"), []);
+    if (isRoot_10530075) {
+    setClass_10516135(ul_10535012, makeNimstrLit("simple simple-toc"));
     }
     else {
-    setClass_385876020(ul_385876160, makeNimstrLit("simple"));
+    setClass_10516135(ul_10535012, makeNimstrLit("simple"));
     }
     
-    if (x_385876142.doSort) {
-    x_385876142.kids.sort(HEX3Aanonymous_385876161);
+    if (x_10530074.doSort) {
+    x_10530074.kids.sort(HEX3Aanonymous_10535015);
     }
     
     L2: do {
-      var k_385876205 = null;
-      var k_385876205_Idx = 0;
-      var i_385876618 = 0;
-      var L_385876619 = (x_385876142.kids).length;
+      var k_10560214 = null;
+      var k_10560214_Idx = 0;
+      var i_10595514 = 0;
+      var L_10595515 = (x_10530074.kids).length;
       L3: do {
           L4: while (true) {
-          if (!(i_385876618 < L_385876619)) break L4;
-            k_385876205 = x_385876142.kids; k_385876205_Idx = chckIndx(i_385876618, 0, (x_385876142.kids).length-1);
-            var y_385876206 = toHtml_385876141(k_385876205[k_385876205_Idx], false);
-            if (!((y_385876206 == null))) {
-            add_385876016(ul_385876160, tree_385875973(makeNimstrLit("LI"), [y_385876206]));
+          if (!(i_10595514 < L_10595515)) break L4;
+            k_10560214 = x_10530074.kids; k_10560214_Idx = chckIndx(i_10595514, 0, (x_10530074.kids).length-1);
+            var y_10560215 = toHtml_10530072(k_10560214[k_10560214_Idx], false);
+            if (!((y_10560215 == null))) {
+            add_10516117(ul_10535012, tree_10516020(makeNimstrLit("LI"), [y_10560215]));
             }
             
-            i_385876618 = addInt(i_385876618, 1);
-            if (!(((x_385876142.kids).length == L_385876619))) {
-            failedAssertImpl_218103865(makeNimstrLit("iterators.nim(204, 11) `len(a) == L` the length of the seq changed while iterating over it"));
+            i_10595514 = addInt(i_10595514, 1);
+            if (!(((x_10530074.kids).length == L_10595515))) {
+            failedAssertImpl_1325480(makeNimstrLit("iterators.nim(204, 11) `len(a) == L` the length of the seq changed while iterating over it"));
             }
             
           }
       } while(false);
     } while(false);
-    if (!((ul_385876160.childNodes.length == 0))) {
-    add_385876016(result_385876144, ul_385876160);
+    if (!((ul_10535012.childNodes.length == 0))) {
+    add_10516117(result_10530076, ul_10535012);
     }
     
-    if ((result_385876144.childNodes.length == 0)) {
-    result_385876144 = null;
+    if ((result_10530076.childNodes.length == 0)) {
+    result_10530076 = null;
     }
     
   } while (false);
 
-  return result_385876144;
+  return result_10530076;
 
 }
-function replaceById_385876031(id_385876032, newTree_385876033) {
-    var x_385876034 = document.getElementById(id_385876032);
-    x_385876034.parentNode.replaceChild(newTree_385876033, x_385876034);
-    newTree_385876033.id = id_385876032;
+function replaceById_10516189(id_10516191, newTree_10516192) {
+    var x_10516193 = document.getElementById(id_10516191);
+    x_10516193.parentNode.replaceChild(newTree_10516192, x_10516193);
+    newTree_10516192.id = id_10516191;
 
   
 }
-function togglevis_385876542(d_385876543) {
-        if (d_385876543.style.display == 'none')
-      d_385876543.style.display = 'inline';
+function togglevis_10595336(d_10595338) {
+        if (d_10595338.style.display == 'none')
+      d_10595338.style.display = 'inline';
     else
-      d_385876543.style.display = 'none';
+      d_10595338.style.display = 'none';
   
 
   
 }
-function groupBy(value_385876545) {
-    var toc_385876546 = document.getElementById("toc-list");
-    if ((alternative_385876541[0] == null)) {
-    var tt_385876554 = {heading: null, kids: [], sortId: 0, doSort: false};
-    toToc_385876280(toc_385876546, tt_385876554);
-    tt_385876554 = tt_385876554.kids[chckIndx(0, 0, (tt_385876554.kids).length-1)];
-    var types_385876559 = [[]];
-    var procs_385876564 = [[]];
-    extractItems_385876099(tt_385876554, "Types", types_385876559, 0);
-    extractItems_385876099(tt_385876554, "Procs", procs_385876564, 0);
-    extractItems_385876099(tt_385876554, "Converters", procs_385876564, 0);
-    extractItems_385876099(tt_385876554, "Methods", procs_385876564, 0);
-    extractItems_385876099(tt_385876554, "Templates", procs_385876564, 0);
-    extractItems_385876099(tt_385876554, "Macros", procs_385876564, 0);
-    extractItems_385876099(tt_385876554, "Iterators", procs_385876564, 0);
-    var ntoc_385876565 = buildToc_385876464(tt_385876554, types_385876559[0], procs_385876564[0]);
-    var x_385876566 = toHtml_385876141(ntoc_385876565, true);
-    alternative_385876541[0] = tree_385875973(makeNimstrLit("DIV"), [x_385876566]);
+function groupBy(value_10595354) {
+    var toc_10595355 = document.getElementById("toc-list");
+    if ((alternative_10595322[0] == null)) {
+    var tt_10595376 = {heading: null, kids: [], sortId: 0, doSort: false};
+    toToc_10570150(toc_10595355, tt_10595376);
+    tt_10595376 = tt_10595376.kids[chckIndx(0, 0, (tt_10595376.kids).length-1)];
+    var types_10595393 = [[]];
+    var procs_10595410 = [[]];
+    extractItems_10525075(tt_10595376, "Types", types_10595393, 0);
+    extractItems_10525075(tt_10595376, "Procs", procs_10595410, 0);
+    extractItems_10525075(tt_10595376, "Converters", procs_10595410, 0);
+    extractItems_10525075(tt_10595376, "Methods", procs_10595410, 0);
+    extractItems_10525075(tt_10595376, "Templates", procs_10595410, 0);
+    extractItems_10525075(tt_10595376, "Macros", procs_10595410, 0);
+    extractItems_10525075(tt_10595376, "Iterators", procs_10595410, 0);
+    var ntoc_10595418 = buildToc_10585082(tt_10595376, types_10595393[0], procs_10595410[0]);
+    var x_10595419 = toHtml_10530072(ntoc_10595418, true);
+    alternative_10595322[0] = tree_10516020(makeNimstrLit("DIV"), [x_10595419]);
     }
     
-    if ((value_385876545 == "type")) {
-    replaceById_385876031("tocRoot", alternative_385876541[0]);
+    if ((value_10595354 == "type")) {
+    replaceById_10516189("tocRoot", alternative_10595322[0]);
     }
     else {
-    replaceById_385876031("tocRoot", tree_385875973(makeNimstrLit("DIV"), []));
+    replaceById_10516189("tocRoot", tree_10516020(makeNimstrLit("DIV"), []));
     }
     
-    togglevis_385876542(document.getElementById("toc-list"));
+    togglevis_10595336(document.getElementById("toc-list"));
 
   
 }
-var db_385876621 = [[]];
-var contents_385876622 = [[]];
-var oldtoc_385876770 = [null];
-var timer_385876771 = [null];
-function nsuToLowerAsciiChar(c_536870973) {
-  var result_536870974 = 0;
+var db_10595518 = [[]];
+var contents_10595520 = [[]];
+var oldtoc_10605439 = [null];
+var timer_10605440 = [null];
+function raiseRangeError() {
+    raiseException({message: makeNimstrLit("value out of range"), parent: null, m_type: NTI1214653, name: null, trace: [], up: null}, "RangeDefect");
 
-    if ((ConstSet2[c_536870973] != undefined)) {
-    result_536870974 = (c_536870973 ^ 32);
+  
+}
+function nsuToLowerAsciiChar(c_9430023) {
+  var result_9430024 = 0;
+
+    if ((ConstSet2[c_9430023] != undefined)) {
+    result_9430024 = chckRange(addInt(c_9430023, 32), 0, 255);
     }
     else {
-      result_536870974 = c_536870973;
+      result_9430024 = c_9430023;
     }
     
 
-  return result_536870974;
+  return result_9430024;
 
 }
-function fuzzyMatch_520093707(pattern_520093708, str_520093709) {
+function fuzzyMatch_10436054(pattern_10436056, str_10436057) {
               var Tmp4;
               var Tmp5;
                 var Tmp6;
       var Tmp7;
         var Tmp8;
 
-  var result_520093712 = {Field0: 0, Field1: false};
+  var result_10436061 = {Field0: 0, Field1: false};
 
-    var scoreState_520093713 = -100;
-    var headerMatched_520093714 = false;
-    var unmatchedLeadingCharCount_520093715 = 0;
-    var consecutiveMatchCount_520093716 = 0;
-    var strIndex_520093717 = 0;
-    var patIndex_520093718 = 0;
-    var score_520093719 = 0;
+    var scoreState_10436062 = -100;
+    var headerMatched_10436063 = false;
+    var unmatchedLeadingCharCount_10436065 = 0;
+    var consecutiveMatchCount_10436067 = 0;
+    var strIndex_10436069 = 0;
+    var patIndex_10436071 = 0;
+    var score_10436073 = 0;
     L1: do {
         L2: while (true) {
-        if (!((strIndex_520093717 < (str_520093709).length) && (patIndex_520093718 < (pattern_520093708).length))) break L2;
+        if (!((strIndex_10436069 < ((str_10436057) == null ? 0 : (str_10436057).length)) && (patIndex_10436071 < ((pattern_10436056) == null ? 0 : (pattern_10436056).length)))) break L2;
           L3: do {
-            var patternChar_520093722 = nsuToLowerAsciiChar(pattern_520093708.charCodeAt(chckIndx(patIndex_520093718, 0, (pattern_520093708).length-1)));
-            var strChar_520093723 = nsuToLowerAsciiChar(str_520093709.charCodeAt(chckIndx(strIndex_520093717, 0, (str_520093709).length-1)));
-            if ((ConstSet3[patternChar_520093722] != undefined)) {
-            patIndex_520093718 = addInt(patIndex_520093718, 1);
+            var patternChar_10436079 = nsuToLowerAsciiChar(pattern_10436056.charCodeAt(chckIndx(patIndex_10436071, 0, (pattern_10436056).length-1)));
+            var strChar_10436080 = nsuToLowerAsciiChar(str_10436057.charCodeAt(chckIndx(strIndex_10436069, 0, (str_10436057).length-1)));
+            if ((ConstSet3[patternChar_10436079] != undefined)) {
+            patIndex_10436071 = addInt(patIndex_10436071, 1);
             break L3;
             }
             
-            if ((ConstSet4[strChar_520093723] != undefined)) {
-            strIndex_520093717 = addInt(strIndex_520093717, 1);
+            if ((ConstSet4[strChar_10436080] != undefined)) {
+            strIndex_10436069 = addInt(strIndex_10436069, 1);
             break L3;
             }
             
-            if ((!(headerMatched_520093714) && (strChar_520093723 == 58))) {
-            headerMatched_520093714 = true;
-            scoreState_520093713 = -100;
-            score_520093719 = ((Math.floor((5.0000000000000000e-001 * score_520093719)))|0);
-            patIndex_520093718 = 0;
-            strIndex_520093717 = addInt(strIndex_520093717, 1);
+            if ((!(headerMatched_10436063) && (strChar_10436080 == 58))) {
+            headerMatched_10436063 = true;
+            scoreState_10436062 = -100;
+            score_10436073 = ((Math.floor((5.0000000000000000e-001 * score_10436073)))|0);
+            patIndex_10436071 = 0;
+            strIndex_10436069 = addInt(strIndex_10436069, 1);
             break L3;
             }
             
-            if ((strChar_520093723 == patternChar_520093722)) {
-            switch (scoreState_520093713) {
+            if ((strChar_10436080 == patternChar_10436079)) {
+            switch (scoreState_10436062) {
             case -100:
             case 20:
-              scoreState_520093713 = 10;
+              scoreState_10436062 = 10;
               break;
             case 0:
-              scoreState_520093713 = 5;
-              score_520093719 = addInt(score_520093719, scoreState_520093713);
+              scoreState_10436062 = 5;
+              score_10436073 = addInt(score_10436073, scoreState_10436062);
               break;
             case 10:
             case 5:
-              consecutiveMatchCount_520093716 = addInt(consecutiveMatchCount_520093716, 1);
-              scoreState_520093713 = 5;
-              score_520093719 = addInt(score_520093719, mulInt(5, consecutiveMatchCount_520093716));
-              if ((scoreState_520093713 == 10)) {
-              score_520093719 = addInt(score_520093719, 10);
+              consecutiveMatchCount_10436067 = addInt(consecutiveMatchCount_10436067, 1);
+              scoreState_10436062 = 5;
+              score_10436073 = addInt(score_10436073, mulInt(5, consecutiveMatchCount_10436067));
+              if ((scoreState_10436062 == 10)) {
+              score_10436073 = addInt(score_10436073, 10);
               }
               
-              var onBoundary_520093774 = (patIndex_520093718 == ((pattern_520093708).length-1));
-              if ((!(onBoundary_520093774) && (strIndex_520093717 < ((str_520093709).length-1)))) {
-              var nextPatternChar_520093775 = nsuToLowerAsciiChar(pattern_520093708.charCodeAt(chckIndx(addInt(patIndex_520093718, 1), 0, (pattern_520093708).length-1)));
-              var nextStrChar_520093776 = nsuToLowerAsciiChar(str_520093709.charCodeAt(chckIndx(addInt(strIndex_520093717, 1), 0, (str_520093709).length-1)));
-              if (!!((ConstSet5[nextStrChar_520093776] != undefined))) Tmp4 = false; else {                Tmp4 = !((nextStrChar_520093776 == nextPatternChar_520093775));              }              onBoundary_520093774 = Tmp4;
+              var onBoundary_10450042 = (patIndex_10436071 == ((pattern_10436056) == null ? -1 : (pattern_10436056).length - 1));
+              if ((!(onBoundary_10450042) && (strIndex_10436069 < ((str_10436057) == null ? -1 : (str_10436057).length - 1)))) {
+              var nextPatternChar_10450043 = nsuToLowerAsciiChar(pattern_10436056.charCodeAt(chckIndx(addInt(patIndex_10436071, 1), 0, (pattern_10436056).length-1)));
+              var nextStrChar_10450044 = nsuToLowerAsciiChar(str_10436057.charCodeAt(chckIndx(addInt(strIndex_10436069, 1), 0, (str_10436057).length-1)));
+              if (!!((ConstSet5[nextStrChar_10450044] != undefined))) Tmp4 = false; else {                Tmp4 = !((nextStrChar_10450044 == nextPatternChar_10450043));              }              onBoundary_10450042 = Tmp4;
               }
               
-              if (onBoundary_520093774) {
-              scoreState_520093713 = 20;
-              score_520093719 = addInt(score_520093719, scoreState_520093713);
+              if (onBoundary_10450042) {
+              scoreState_10436062 = 20;
+              score_10436073 = addInt(score_10436073, scoreState_10436062);
               }
               
               break;
             case -1:
             case -3:
-              if (!((ConstSet6[str_520093709.charCodeAt(chckIndx(subInt(strIndex_520093717, 1), 0, (str_520093709).length-1))] != undefined))) Tmp5 = true; else {                if (!(ConstSet7[str_520093709.charCodeAt(chckIndx(subInt(strIndex_520093717, 1), 0, (str_520093709).length-1))] != undefined)) Tmp6 = false; else {                  Tmp6 = (ConstSet8[str_520093709.charCodeAt(chckIndx(strIndex_520093717, 0, (str_520093709).length-1))] != undefined);                }                Tmp5 = Tmp6;              }              var isLeadingChar_520093800 = Tmp5;
-              if (isLeadingChar_520093800) {
-              scoreState_520093713 = 10;
+              if (!((ConstSet6[str_10436057.charCodeAt(chckIndx(subInt(strIndex_10436069, 1), 0, (str_10436057).length-1))] != undefined))) Tmp5 = true; else {                if (!(ConstSet7[str_10436057.charCodeAt(chckIndx(subInt(strIndex_10436069, 1), 0, (str_10436057).length-1))] != undefined)) Tmp6 = false; else {                  Tmp6 = (ConstSet8[str_10436057.charCodeAt(chckIndx(strIndex_10436069, 0, (str_10436057).length-1))] != undefined);                }                Tmp5 = Tmp6;              }              var isLeadingChar_10480008 = Tmp5;
+              if (isLeadingChar_10480008) {
+              scoreState_10436062 = 10;
               }
               else {
-                scoreState_520093713 = 0;
-                score_520093719 = addInt(score_520093719, scoreState_520093713);
+                scoreState_10436062 = 0;
+                score_10436073 = addInt(score_10436073, scoreState_10436062);
               }
               
               break;
             }
-            patIndex_520093718 = addInt(patIndex_520093718, 1);
+            patIndex_10436071 = addInt(patIndex_10436071, 1);
             }
             else {
-              switch (scoreState_520093713) {
+              switch (scoreState_10436062) {
               case -100:
-                scoreState_520093713 = -3;
-                score_520093719 = addInt(score_520093719, scoreState_520093713);
+                scoreState_10436062 = -3;
+                score_10436073 = addInt(score_10436073, scoreState_10436062);
                 break;
               case 5:
-                scoreState_520093713 = -1;
-                score_520093719 = addInt(score_520093719, scoreState_520093713);
-                consecutiveMatchCount_520093716 = 0;
+                scoreState_10436062 = -1;
+                score_10436073 = addInt(score_10436073, scoreState_10436062);
+                consecutiveMatchCount_10436067 = 0;
                 break;
               case -3:
-                if ((unmatchedLeadingCharCount_520093715 < 3)) {
-                scoreState_520093713 = -3;
-                score_520093719 = addInt(score_520093719, scoreState_520093713);
+                if ((unmatchedLeadingCharCount_10436065 < 3)) {
+                scoreState_10436062 = -3;
+                score_10436073 = addInt(score_10436073, scoreState_10436062);
                 }
                 
-                unmatchedLeadingCharCount_520093715 = addInt(unmatchedLeadingCharCount_520093715, 1);
+                unmatchedLeadingCharCount_10436065 = addInt(unmatchedLeadingCharCount_10436065, 1);
                 break;
               default: 
-                scoreState_520093713 = -1;
-                score_520093719 = addInt(score_520093719, scoreState_520093713);
+                scoreState_10436062 = -1;
+                score_10436073 = addInt(score_10436073, scoreState_10436062);
                 break;
               }
             }
             
-            strIndex_520093717 = addInt(strIndex_520093717, 1);
+            strIndex_10436069 = addInt(strIndex_10436069, 1);
           } while(false);
         }
     } while(false);
-      if (!(patIndex_520093718 == (pattern_520093708).length)) Tmp7 = false; else {        if ((strIndex_520093717 == (str_520093709).length)) Tmp8 = true; else {          Tmp8 = !((ConstSet9[str_520093709.charCodeAt(chckIndx(strIndex_520093717, 0, (str_520093709).length-1))] != undefined));        }        Tmp7 = Tmp8;      }    if (Tmp7) {
-    score_520093719 = addInt(score_520093719, 10);
+      if (!(patIndex_10436071 == ((pattern_10436056) == null ? 0 : (pattern_10436056).length))) Tmp7 = false; else {        if ((strIndex_10436069 == ((str_10436057) == null ? 0 : (str_10436057).length))) Tmp8 = true; else {          Tmp8 = !((ConstSet9[str_10436057.charCodeAt(chckIndx(strIndex_10436069, 0, (str_10436057).length-1))] != undefined));        }        Tmp7 = Tmp8;      }    if (Tmp7) {
+    score_10436073 = addInt(score_10436073, 10);
     }
     
-    var colontmp__385876831 = nimMax(0, score_520093719);
-    var colontmp__385876832 = (0 < score_520093719);
-    result_520093712 = nimCopy(result_520093712, {Field0: colontmp__385876831, Field1: colontmp__385876832}, NTI520093699);
+    var colontmp__10615075 = nimMax(0, score_10436073);
+    var colontmp__10615076 = (0 < score_10436073);
+    nimCopy(result_10436061, {Field0: colontmp__10615075, Field1: colontmp__10615076}, NTI10436058);
 
-  return result_520093712;
+  return result_10436061;
 
 }
-function escapeCString_385876625(x_385876626, x_385876626_Idx) {
-    var s_385876627 = [];
+function escapeCString_10595537(x_10595540, x_10595540_Idx) {
+    var s_10595541 = [];
     L1: do {
-      var c_385876628 = 0;
-      var i_385876835 = 0;
-      var L_385876836 = (x_385876626[x_385876626_Idx]).length;
+      var c_10595542 = 0;
+      var i_10615080 = 0;
+      var L_10615081 = ((x_10595540[x_10595540_Idx]) == null ? 0 : (x_10595540[x_10595540_Idx]).length);
       L2: do {
           L3: while (true) {
-          if (!(i_385876835 < L_385876836)) break L3;
-            c_385876628 = x_385876626[x_385876626_Idx].charCodeAt(chckIndx(i_385876835, 0, (x_385876626[x_385876626_Idx]).length-1));
-            switch (c_385876628) {
+          if (!(i_10615080 < L_10615081)) break L3;
+            c_10595542 = x_10595540[x_10595540_Idx].charCodeAt(chckIndx(i_10615080, 0, (x_10595540[x_10595540_Idx]).length-1));
+            switch (c_10595542) {
             case 60:
-              s_385876627.push.apply(s_385876627, makeNimstrLit("&lt;"));;
+              s_10595541.push.apply(s_10595541, makeNimstrLit("&lt;"));;
               break;
             case 62:
-              s_385876627.push.apply(s_385876627, makeNimstrLit("&gt;"));;
+              s_10595541.push.apply(s_10595541, makeNimstrLit("&gt;"));;
               break;
             default: 
-              addChar(s_385876627, c_385876628);;
+              addChar(s_10595541, c_10595542);;
               break;
             }
-            i_385876835 = addInt(i_385876835, 1);
+            i_10615080 = addInt(i_10615080, 1);
           }
       } while(false);
     } while(false);
-    x_385876626[x_385876626_Idx] = toJSStr(s_385876627);
+    x_10595540[x_10595540_Idx] = toJSStr(s_10595541);
 
   
 }
-function text_385876023(s_385876024) {
-  var result_385876025 = null;
+function text_10516152(s_10516154) {
+  var result_10516155 = null;
 
-    result_385876025 = document.createTextNode(toJSStr(s_385876024));
+    result_10516155 = document.createTextNode(toJSStr(s_10516154));
 
-  return result_385876025;
+  return result_10516155;
 
 }
-function dosearch_385876629(value_385876630) {
-    function HEX3Aanonymous_385876688(a_385876693, b_385876694) {
-      var result_385876699 = 0;
+function dosearch_10595556(value_10595558) {
+    function HEX3Aanonymous_10605276(a_10605285, b_10605286) {
+      var result_10605292 = 0;
 
-        result_385876699 = subInt(b_385876694["Field1"], a_385876693["Field1"]);
+        result_10605292 = subInt(b_10605286["Field1"], a_10605285["Field1"]);
 
-      return result_385876699;
+      return result_10605292;
 
     }
 
-  var result_385876631 = null;
+  var result_10595559 = null;
 
-    if (((db_385876621[0]).length == 0)) {
-    var stuff_385876635 = null;
+    if (((db_10595518[0]).length == 0)) {
+    var stuff_10595565 = null;
         var request = new XMLHttpRequest();
     request.open("GET", "theindex.html", false);
     request.send(null);
@@ -1840,23 +1869,23 @@ function dosearch_385876629(value_385876630) {
     //parser=new DOMParser();
     //doc=parser.parseFromString("<html></html>", "text/html");
 
-    stuff_385876635 = doc.documentElement;
+    stuff_10595565 = doc.documentElement;
     
-    db_385876621[0] = nimCopy(null, stuff_385876635.getElementsByClassName("reference"), NTI503316899);
-    contents_385876622[0] = nimCopy(null, [], NTI385876518);
+    db_10595518[0] = nimCopy(null, stuff_10595565.getElementsByClassName("reference"), NTI1900505);
+    contents_10595520[0] = nimCopy(null, [], NTI10595580);
     L1: do {
-      var ahref_385876662 = null;
-      var ahref_385876662_Idx = 0;
-      var i_385876816 = 0;
-      var L_385876817 = (db_385876621[0]).length;
+      var ahref_10605214 = null;
+      var ahref_10605214_Idx = 0;
+      var i_10615055 = 0;
+      var L_10615056 = (db_10595518[0]).length;
       L2: do {
           L3: while (true) {
-          if (!(i_385876816 < L_385876817)) break L3;
-            ahref_385876662 = db_385876621[0]; ahref_385876662_Idx = chckIndx(i_385876816, 0, (db_385876621[0]).length-1);
-            contents_385876622[0].push(ahref_385876662[ahref_385876662_Idx].getAttribute("data-doc-search-tag"));;
-            i_385876816 = addInt(i_385876816, 1);
-            if (!(((db_385876621[0]).length == L_385876817))) {
-            failedAssertImpl_218103865(makeNimstrLit("iterators.nim(204, 11) `len(a) == L` the length of the seq changed while iterating over it"));
+          if (!(i_10615055 < L_10615056)) break L3;
+            ahref_10605214 = db_10595518[0]; ahref_10605214_Idx = chckIndx(i_10615055, 0, (db_10595518[0]).length-1);
+            contents_10595520[0].push(ahref_10605214[ahref_10605214_Idx].getAttribute("data-doc-search-tag"));;
+            i_10615055 = addInt(i_10615055, 1);
+            if (!(((db_10595518[0]).length == L_10615056))) {
+            failedAssertImpl_1325480(makeNimstrLit("iterators.nim(204, 11) `len(a) == L` the length of the seq changed while iterating over it"));
             }
             
           }
@@ -1864,92 +1893,92 @@ function dosearch_385876629(value_385876630) {
     } while(false);
     }
     
-    var ul_385876667 = tree_385875973(makeNimstrLit("UL"), []);
-    result_385876631 = tree_385875973(makeNimstrLit("DIV"), []);
-    setClass_385876020(result_385876631, makeNimstrLit("search_results"));
-    var matches_385876672 = [];
+    var ul_10605226 = tree_10516020(makeNimstrLit("UL"), []);
+    result_10595559 = tree_10516020(makeNimstrLit("DIV"), []);
+    setClass_10516135(result_10595559, makeNimstrLit("search_results"));
+    var matches_10605247 = [];
     L4: do {
-      var i_385876680 = 0;
-      var colontmp__385876821 = 0;
-      colontmp__385876821 = (db_385876621[0]).length;
-      var i_385876822 = 0;
+      var i_10605260 = 0;
+      var colontmp__10615062 = 0;
+      colontmp__10615062 = (db_10595518[0]).length;
+      var i_10615063 = 0;
       L5: do {
           L6: while (true) {
-          if (!(i_385876822 < colontmp__385876821)) break L6;
-            i_385876680 = i_385876822;
+          if (!(i_10615063 < colontmp__10615062)) break L6;
+            i_10605260 = i_10615063;
             L7: do {
-              var c_385876681 = contents_385876622[0][chckIndx(i_385876680, 0, (contents_385876622[0]).length-1)];
-              if (((c_385876681 == "Examples") || (c_385876681 == "PEG construction"))) {
+              var c_10605261 = contents_10595520[0][chckIndx(i_10605260, 0, (contents_10595520[0]).length-1)];
+              if (((c_10605261 == "Examples") || (c_10605261 == "PEG construction"))) {
               break L7;
               }
               
-              var colontmp__385876828 = fuzzyMatch_520093707(value_385876630, c_385876681);
-              var score_385876682 = colontmp__385876828["Field0"];
-              var matched_385876683 = colontmp__385876828["Field1"];
-              if (matched_385876683) {
-              matches_385876672.push({Field0: db_385876621[0][chckIndx(i_385876680, 0, (db_385876621[0]).length-1)], Field1: score_385876682});;
+              var colontmp__10615070 = fuzzyMatch_10436054(value_10595558, c_10605261);
+              var score_10605262 = colontmp__10615070["Field0"];
+              var matched_10605263 = colontmp__10615070["Field1"];
+              if (matched_10605263) {
+              matches_10605247.push({Field0: db_10595518[0][chckIndx(i_10605260, 0, (db_10595518[0]).length-1)], Field1: score_10605262});;
               }
               
             } while(false);
-            i_385876822 = addInt(i_385876822, 1);
+            i_10615063 = addInt(i_10615063, 1);
           }
       } while(false);
     } while(false);
-    matches_385876672.sort(HEX3Aanonymous_385876688);
+    matches_10605247.sort(HEX3Aanonymous_10605276);
     L8: do {
-      var i_385876715 = 0;
-      var colontmp__385876825 = 0;
-      colontmp__385876825 = nimMin((matches_385876672).length, 29);
-      var i_385876826 = 0;
+      var i_10605331 = 0;
+      var colontmp__10615067 = 0;
+      colontmp__10615067 = nimMin((matches_10605247).length, 29);
+      var i_10615068 = 0;
       L9: do {
           L10: while (true) {
-          if (!(i_385876826 < colontmp__385876825)) break L10;
-            i_385876715 = i_385876826;
-            matches_385876672[chckIndx(i_385876715, 0, (matches_385876672).length-1)]["Field0"].innerHTML = matches_385876672[chckIndx(i_385876715, 0, (matches_385876672).length-1)]["Field0"].getAttribute("data-doc-search-tag");
-            escapeCString_385876625(matches_385876672[chckIndx(i_385876715, 0, (matches_385876672).length-1)]["Field0"], "innerHTML");
-            add_385876016(ul_385876667, tree_385875973(makeNimstrLit("LI"), [matches_385876672[chckIndx(i_385876715, 0, (matches_385876672).length-1)]["Field0"]]));
-            i_385876826 = addInt(i_385876826, 1);
+          if (!(i_10615068 < colontmp__10615067)) break L10;
+            i_10605331 = i_10615068;
+            matches_10605247[chckIndx(i_10605331, 0, (matches_10605247).length-1)]["Field0"].innerHTML = matches_10605247[chckIndx(i_10605331, 0, (matches_10605247).length-1)]["Field0"].getAttribute("data-doc-search-tag");
+            escapeCString_10595537(matches_10605247[chckIndx(i_10605331, 0, (matches_10605247).length-1)]["Field0"], "innerHTML");
+            add_10516117(ul_10605226, tree_10516020(makeNimstrLit("LI"), [matches_10605247[chckIndx(i_10605331, 0, (matches_10605247).length-1)]["Field0"]]));
+            i_10615068 = addInt(i_10615068, 1);
           }
       } while(false);
     } while(false);
-    if ((ul_385876667.childNodes.length == 0)) {
-    add_385876016(result_385876631, tree_385875973(makeNimstrLit("B"), [text_385876023(makeNimstrLit("no search results"))]));
+    if ((ul_10605226.childNodes.length == 0)) {
+    add_10516117(result_10595559, tree_10516020(makeNimstrLit("B"), [text_10516152(makeNimstrLit("no search results"))]));
     }
     else {
-      add_385876016(result_385876631, tree_385875973(makeNimstrLit("B"), [text_385876023(makeNimstrLit("search results"))]));
-      add_385876016(result_385876631, ul_385876667);
+      add_10516117(result_10595559, tree_10516020(makeNimstrLit("B"), [text_10516152(makeNimstrLit("search results"))]));
+      add_10516117(result_10595559, ul_10605226);
     }
     
 
-  return result_385876631;
+  return result_10595559;
 
 }
 function search() {
-    function wrapper_385876782() {
-        var elem_385876783 = document.getElementById("searchInput");
-        var value_385876784 = elem_385876783.value;
-        if (!(((value_385876784).length == 0))) {
-        if ((oldtoc_385876770[0] == null)) {
-        oldtoc_385876770[0] = document.getElementById("tocRoot");
+    function wrapper_10605471() {
+        var elem_10605473 = document.getElementById("searchInput");
+        var value_10605474 = elem_10605473.value;
+        if (!((((value_10605474) == null ? 0 : (value_10605474).length) == 0))) {
+        if ((oldtoc_10605439[0] == null)) {
+        oldtoc_10605439[0] = document.getElementById("tocRoot");
         }
         
-        var results_385876788 = dosearch_385876629(value_385876784);
-        replaceById_385876031("tocRoot", results_385876788);
+        var results_10610006 = dosearch_10595556(value_10605474);
+        replaceById_10516189("tocRoot", results_10610006);
         }
         else {
-        if (!((oldtoc_385876770[0] == null))) {
-        replaceById_385876031("tocRoot", oldtoc_385876770[0]);
+        if (!((oldtoc_10605439[0] == null))) {
+        replaceById_10516189("tocRoot", oldtoc_10605439[0]);
         }
         }
 
       
     }
 
-    if (!((timer_385876771[0] == null))) {
-    clearTimeout(timer_385876771[0]);
+    if (!((timer_10605440[0] == null))) {
+    clearTimeout(timer_10605440[0]);
     }
     
-    timer_385876771[0] = setTimeout(wrapper_385876782, 400);
+    timer_10605440[0] = setTimeout(wrapper_10605471, 400);
 
   
 }
diff --git a/docs/nimdoc.out.css b/docs/nimdoc.out.css
index 7d4a399..2d9533c 100644
--- a/docs/nimdoc.out.css
+++ b/docs/nimdoc.out.css
@@ -14,9 +14,6 @@ Modified by Boyd Greenfield and narimiran
   --primary-background: #fff;
   --secondary-background: ghostwhite;
   --third-background: #e8e8e8;
-  --info-background: #50c050;
-  --warning-background: #c0a000;
-  --error-background: #e04040;
   --border: #dde;
   --text: #222;
   --anchor: #07b;
@@ -42,9 +39,6 @@ Modified by Boyd Greenfield and narimiran
   --primary-background: #171921;
   --secondary-background: #1e202a;
   --third-background: #2b2e3b;
-  --info-background: #008000;
-  --warning-background: #807000;
-  --error-background: #c03000;
   --border: #0e1014;
   --text: #fff;
   --anchor: #8be9fd;
@@ -615,34 +609,6 @@ table.borderless td, table.borderless th {
      The right padding separates the table cells. */
   padding: 0 0.5em 0 0 !important; }
 
-.admonition {
-    padding: 0.3em;
-    background-color: var(--secondary-background);
-    border-left: 0.4em solid #7f7f84;
-    margin-bottom: 0.5em;
-    -webkit-box-shadow: 0 5px 8px -6px rgba(0,0,0,.2);
-       -moz-box-shadow: 0 5px 8px -6px rgba(0,0,0,.2);
-            box-shadow: 0 5px 8px -6px rgba(0,0,0,.2);
-}
-.admonition-info {
-    border-color: var(--info-background);
-}
-.admonition-info-text {
-    color: var(--info-background);
-}
-.admonition-warning {
-    border-color: var(--warning-background);
-}
-.admonition-warning-text {
-    color: var(--warning-background);
-}
-.admonition-error {
-    border-color: var(--error-background);
-}
-.admonition-error-text {
-    color: var(--error-background);
-}
-
 .first {
   /* Override more specific margin styles with "! important". */
   margin-top: 0 !important; }
diff --git a/docs/pixie.html b/docs/pixie.html
index 7c727a0..11511a2 100644
--- a/docs/pixie.html
+++ b/docs/pixie.html
@@ -56,12 +56,10 @@ function main() {
     }
   }
 }
-
-window.addEventListener('DOMContentLoaded', main);
 </script>
 
 </head>
-<body>
+<body onload="main()">
 <div class="document" id="documentId">
   <div class="container">
     <h1 class="title">pixie</h1>
@@ -241,7 +239,6 @@ window.addEventListener('DOMContentLoaded', main);
 </ul>
 
   </div>
-  
   <div class="nine columns" id="content">
   <div id="tocRoot"></div>
   
@@ -249,7 +246,7 @@ window.addEventListener('DOMContentLoaded', main);
   <div class="section" id="6">
 <h1><a class="toc-backref" href="#6">Imports</a></h1>
 <dl class="item">
-<a class="reference external" href="pixie/blends.html">pixie/blends</a>, <a class="reference external" href="pixie/common.html">pixie/common</a>, <a class="reference external" href="pixie/fileformats/bmp.html">pixie/fileformats/bmp</a>, <a class="reference external" href="pixie/fileformats/jpg.html">pixie/fileformats/jpg</a>, <a class="reference external" href="pixie/fileformats/png.html">pixie/fileformats/png</a>, <a class="reference external" href="pixie/fileformats/svg.html">pixie/fileformats/svg</a>, <a class="reference external" href="pixie/paints.html">pixie/paints</a>, <a class="reference external" href="pixie/images.html">pixie/images</a>, <a class="reference external" href="pixie/masks.html">pixie/masks</a>, <a class="reference external" href="pixie/paths.html">pixie/paths</a>
+<a class="reference external" href="pixie/blends.html">pixie/blends</a>, <a class="reference external" href="pixie/common.html">pixie/common</a>, <a class="reference external" href="pixie/fileformats/bmp.html">pixie/fileformats/bmp</a>, <a class="reference external" href="pixie/fileformats/jpg.html">pixie/fileformats/jpg</a>, <a class="reference external" href="pixie/fileformats/png.html">pixie/fileformats/png</a>, <a class="reference external" href="pixie/fileformats/svg.html">pixie/fileformats/svg</a>, <a class="reference external" href="pixie/images.html">pixie/images</a>, <a class="reference external" href="pixie/masks.html">pixie/masks</a>, <a class="reference external" href="pixie/paints.html">pixie/paints</a>, <a class="reference external" href="pixie/paths.html">pixie/paths</a>
 </dl></div>
 <div class="section" id="7">
 <h1><a class="toc-backref" href="#7">Types</a></h1>
@@ -276,7 +273,7 @@ Loads an image from a memory.
 </dd>
 <a id="readImage,string"></a>
 <dt><pre><span class="Keyword">proc</span> <a href="#readImage%2Cstring"><span class="Identifier">readImage</span></a><span class="Other">(</span><span class="Identifier">filePath</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <a href="pixie/images.html#Image"><span class="Identifier">Image</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">IOError</span><span class="Other">]</span><span class="Other">,</span>
-    <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">WriteIOEffect</span><span class="Other">,</span> <span class="Identifier">ReadIOEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+    <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
 Loads an image from a file.
@@ -307,10 +304,11 @@ Writes an image to a file.
 
 </dd>
 <a id="fillRect,Image,Rect,ColorRGBA"></a>
-<dt><pre><span class="Keyword">proc</span> <a href="#fillRect%2CImage%2CRect%2CColorRGBA"><span class="Identifier">fillRect</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="pixie/images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">rect</span><span class="Other">:</span> <span class="Identifier">Rect</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+<dt><pre><span class="Keyword">proc</span> <a href="#fillRect%2CImage%2CRect%2CColorRGBA"><span class="Identifier">fillRect</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="pixie/images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">rect</span><span class="Other">:</span> <span class="Identifier">Rect</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
+    <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Fill a rectangle.
+Fills a rectangle.
 
 </dd>
 <a id="fillRect,Mask,Rect"></a>
@@ -318,15 +316,15 @@ Fill a rectangle.
                                         <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Fill a rectangle.
+Fills a rectangle.
 
 </dd>
 <a id="strokeRect,Image,Rect,ColorRGBA,float"></a>
 <dt><pre><span class="Keyword">proc</span> <a href="#strokeRect%2CImage%2CRect%2CColorRGBA%2Cfloat"><span class="Identifier">strokeRect</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="pixie/images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">rect</span><span class="Other">:</span> <span class="Identifier">Rect</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">;</span> <span class="Identifier">strokeWidth</span> <span class="Other">=</span> <span class="FloatNumber">1.0</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
-    <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+    <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Stroke a rounded rectangle.
+Strokes a rectangle.
 
 </dd>
 <a id="strokeRect,Mask,Rect,float"></a>
@@ -334,23 +332,24 @@ Stroke a rounded rectangle.
     <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Stroke a rounded rectangle.
+Strokes a rectangle.
 
 </dd>
 <a id="fillRoundedRect,Image,Rect,float32,float32,float32,float32,ColorRGBA"></a>
 <dt><pre><span class="Keyword">proc</span> <a href="#fillRoundedRect%2CImage%2CRect%2Cfloat32%2Cfloat32%2Cfloat32%2Cfloat32%2CColorRGBA"><span class="Identifier">fillRoundedRect</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="pixie/images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">rect</span><span class="Other">:</span> <span class="Identifier">Rect</span><span class="Other">;</span> <span class="Identifier">nw</span><span class="Other">,</span> <span class="Identifier">ne</span><span class="Other">,</span> <span class="Identifier">se</span><span class="Other">,</span> <span class="Identifier">sw</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">;</span>
-                     <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+                     <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span>
+    <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Fill a rounded rectangle.
+Fills a rounded rectangle.
 
 </dd>
 <a id="fillRoundedRect,Image,Rect,float32,ColorRGBA"></a>
 <dt><pre><span class="Keyword">proc</span> <a href="#fillRoundedRect%2CImage%2CRect%2Cfloat32%2CColorRGBA"><span class="Identifier">fillRoundedRect</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="pixie/images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">rect</span><span class="Other">:</span> <span class="Identifier">Rect</span><span class="Other">;</span> <span class="Identifier">radius</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
-    <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+    <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Fill a rounded rectangle.
+Fills a rounded rectangle.
 
 </dd>
 <a id="fillRoundedRect,Mask,Rect,float32,float32,float32,float32"></a>
@@ -358,7 +357,7 @@ Fill a rounded rectangle.
     <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Fill a rounded rectangle.
+Fills a rounded rectangle.
 
 </dd>
 <a id="fillRoundedRect,Mask,Rect,float32"></a>
@@ -366,25 +365,25 @@ Fill a rounded rectangle.
     <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Fill a rounded rectangle.
+Fills a rounded rectangle.
 
 </dd>
 <a id="strokeRoundedRect,Image,Rect,float32,float32,float32,float32,ColorRGBA,float"></a>
 <dt><pre><span class="Keyword">proc</span> <a href="#strokeRoundedRect%2CImage%2CRect%2Cfloat32%2Cfloat32%2Cfloat32%2Cfloat32%2CColorRGBA%2Cfloat"><span class="Identifier">strokeRoundedRect</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="pixie/images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">rect</span><span class="Other">:</span> <span class="Identifier">Rect</span><span class="Other">;</span> <span class="Identifier">nw</span><span class="Other">,</span> <span class="Identifier">ne</span><span class="Other">,</span> <span class="Identifier">se</span><span class="Other">,</span> <span class="Identifier">sw</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">;</span>
-                       <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">;</span> <span class="Identifier">strokeWidth</span> <span class="Other">=</span> <span class="FloatNumber">1.0</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
-    <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+                       <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">;</span> <span class="Identifier">strokeWidth</span> <span class="Other">=</span> <span class="FloatNumber">1.0</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
+    <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Stroke a rounded rectangle.
+Strokes a rounded rectangle.
 
 </dd>
 <a id="strokeRoundedRect,Image,Rect,float32,ColorRGBA,float"></a>
 <dt><pre><span class="Keyword">proc</span> <a href="#strokeRoundedRect%2CImage%2CRect%2Cfloat32%2CColorRGBA%2Cfloat"><span class="Identifier">strokeRoundedRect</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="pixie/images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">rect</span><span class="Other">:</span> <span class="Identifier">Rect</span><span class="Other">;</span> <span class="Identifier">radius</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">;</span>
-                       <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">;</span> <span class="Identifier">strokeWidth</span> <span class="Other">=</span> <span class="FloatNumber">1.0</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
-    <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+                       <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">;</span> <span class="Identifier">strokeWidth</span> <span class="Other">=</span> <span class="FloatNumber">1.0</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
+    <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Stroke a rounded rectangle.
+Strokes a rounded rectangle.
 
 </dd>
 <a id="strokeRoundedRect,Mask,Rect,float32,float32,float32,float32,float"></a>
@@ -393,7 +392,7 @@ Stroke a rounded rectangle.
     <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Stroke a rounded rectangle.
+Strokes a rounded rectangle.
 
 </dd>
 <a id="strokeRoundedRect,Mask,Rect,float32,float"></a>
@@ -402,15 +401,16 @@ Stroke a rounded rectangle.
     <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Stroke a rounded rectangle.
+Strokes a rounded rectangle.
 
 </dd>
 <a id="strokeSegment,Image,Segment,ColorRGBA,float"></a>
 <dt><pre><span class="Keyword">proc</span> <a href="#strokeSegment%2CImage%2CSegment%2CColorRGBA%2Cfloat"><span class="Identifier">strokeSegment</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="pixie/images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">segment</span><span class="Other">:</span> <span class="Identifier">Segment</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">;</span>
-                   <span class="Identifier">strokeWidth</span> <span class="Other">=</span> <span class="FloatNumber">1.0</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+                   <span class="Identifier">strokeWidth</span> <span class="Other">=</span> <span class="FloatNumber">1.0</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span>
+                                        <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Stroke a segment (draws a line from segment.at to segment.to).
+Strokes a segment (draws a line from segment.at to segment.to).
 
 </dd>
 <a id="strokeSegment,Mask,Segment,float32"></a>
@@ -418,15 +418,16 @@ Stroke a segment (draws a line from segment.at to segment.to).
     <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Stroke a segment (draws a line from segment.at to segment.to).
+Strokes a segment (draws a line from segment.at to segment.to).
 
 </dd>
 <a id="fillEllipse,Image,Vec2,float32,float32,ColorRGBA"></a>
 <dt><pre><span class="Keyword">proc</span> <a href="#fillEllipse%2CImage%2CVec2%2Cfloat32%2Cfloat32%2CColorRGBA"><span class="Identifier">fillEllipse</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="pixie/images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">center</span><span class="Other">:</span> <span class="Identifier">Vec2</span><span class="Other">;</span> <span class="Identifier">rx</span><span class="Other">,</span> <span class="Identifier">ry</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">;</span>
-                 <span class="Identifier">blendMode</span> <span class="Other">=</span> <span class="Identifier">bmNormal</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+                 <span class="Identifier">blendMode</span> <span class="Other">=</span> <span class="Identifier">bmNormal</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span>
+    <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Fill an ellipse.
+Fills an ellipse.
 
 </dd>
 <a id="fillEllipse,Mask,Vec2,float32,float32"></a>
@@ -434,15 +435,16 @@ Fill an ellipse.
     <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Fill an ellipse.
+Fills an ellipse.
 
 </dd>
 <a id="strokeEllipse,Image,Vec2,float32,float32,ColorRGBA,float"></a>
 <dt><pre><span class="Keyword">proc</span> <a href="#strokeEllipse%2CImage%2CVec2%2Cfloat32%2Cfloat32%2CColorRGBA%2Cfloat"><span class="Identifier">strokeEllipse</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="pixie/images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">center</span><span class="Other">:</span> <span class="Identifier">Vec2</span><span class="Other">;</span> <span class="Identifier">rx</span><span class="Other">,</span> <span class="Identifier">ry</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">;</span>
-                   <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">;</span> <span class="Identifier">strokeWidth</span> <span class="Other">=</span> <span class="FloatNumber">1.0</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+                   <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">;</span> <span class="Identifier">strokeWidth</span> <span class="Other">=</span> <span class="FloatNumber">1.0</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
+    <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Stroke an ellipse.
+Strokes an ellipse.
 
 </dd>
 <a id="strokeEllipse,Mask,Vec2,float32,float32,float"></a>
@@ -450,12 +452,12 @@ Stroke an ellipse.
     <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Stroke an ellipse.
+Strokes an ellipse.
 
 </dd>
 <a id="fillCircle,Image,Vec2,float32,ColorRGBA"></a>
 <dt><pre><span class="Keyword">proc</span> <a href="#fillCircle%2CImage%2CVec2%2Cfloat32%2CColorRGBA"><span class="Identifier">fillCircle</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="pixie/images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">center</span><span class="Other">:</span> <span class="Identifier">Vec2</span><span class="Other">;</span> <span class="Identifier">radius</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
-    <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+    <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
 Fills a circle.
@@ -471,7 +473,8 @@ Fills a circle.
 </dd>
 <a id="strokeCircle,Image,Vec2,float32,ColorRGBA,float"></a>
 <dt><pre><span class="Keyword">proc</span> <a href="#strokeCircle%2CImage%2CVec2%2Cfloat32%2CColorRGBA%2Cfloat"><span class="Identifier">strokeCircle</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="pixie/images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">center</span><span class="Other">:</span> <span class="Identifier">Vec2</span><span class="Other">;</span> <span class="Identifier">radius</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">;</span>
-                  <span class="Identifier">strokeWidth</span> <span class="Other">=</span> <span class="FloatNumber">1.0</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+                  <span class="Identifier">strokeWidth</span> <span class="Other">=</span> <span class="FloatNumber">1.0</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span>
+                                       <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
 Strokes a circle.
@@ -487,7 +490,8 @@ Strokes a circle.
 </dd>
 <a id="fillPolygon,Image,Vec2,float32,int,ColorRGBA"></a>
 <dt><pre><span class="Keyword">proc</span> <a href="#fillPolygon%2CImage%2CVec2%2Cfloat32%2Cint%2CColorRGBA"><span class="Identifier">fillPolygon</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="pixie/images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">pos</span><span class="Other">:</span> <span class="Identifier">Vec2</span><span class="Other">;</span> <span class="Identifier">size</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">;</span> <span class="Identifier">sides</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">;</span>
-                 <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+                 <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span>
+                                     <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
 Fills a polygon.
@@ -503,7 +507,8 @@ Fills a polygon.
 </dd>
 <a id="strokePolygon,Image,Vec2,float32,int,ColorRGBA,float"></a>
 <dt><pre><span class="Keyword">proc</span> <a href="#strokePolygon%2CImage%2CVec2%2Cfloat32%2Cint%2CColorRGBA%2Cfloat"><span class="Identifier">strokePolygon</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="pixie/images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">pos</span><span class="Other">:</span> <span class="Identifier">Vec2</span><span class="Other">;</span> <span class="Identifier">size</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">;</span> <span class="Identifier">sides</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">;</span>
-                   <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">;</span> <span class="Identifier">strokeWidth</span> <span class="Other">=</span> <span class="FloatNumber">1.0</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+                   <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">;</span> <span class="Identifier">strokeWidth</span> <span class="Other">=</span> <span class="FloatNumber">1.0</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
+    <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
 Strokes a polygon.
@@ -523,7 +528,7 @@ Strokes a polygon.
 <div class="section" id="19">
 <h1><a class="toc-backref" href="#19">Exports</a></h1>
 <dl class="item">
-<a href="pixie/blends.html#unpackAlphaValues,M128i"><span class="Identifier">unpackAlphaValues</span></a>, <a href="pixie/blends.html#Masker"><span class="Identifier">Masker</span></a>, <a href="pixie/blends.html#maskerSimd,BlendMode"><span class="Identifier">maskerSimd</span></a>, <a href="pixie/blends.html#blender,BlendMode"><span class="Identifier">blender</span></a>, <a href="pixie/blends.html#hasSimdBlender,BlendMode"><span class="Identifier">hasSimdBlender</span></a>, <a href="pixie/blends.html#Blender"><span class="Identifier">Blender</span></a>, <a href="pixie/blends.html#BlenderSimd"><span class="Identifier">BlenderSimd</span></a>, <a href="pixie/blends.html#MaskerSimd"><span class="Identifier">MaskerSimd</span></a>, <a href="pixie/blends.html#packAlphaValues,M128i"><span class="Identifier">packAlphaValues</span></a>, <a href="pixie/blends.html#blenderSimd,BlendMode"><span class="Identifier">blenderSimd</span></a>, <a href="pixie/blends.html#hasSimdMasker,BlendMode"><span class="Identifier">hasSimdMasker</span></a>, <a href="pixie/blends.html#masker,BlendMode"><span class="Identifier">masker</span></a>, <a href="pixie/blends.html#BlendMode"><span class="Identifier">BlendMode</span></a>, <a href="pixie/blends.html#blendAlpha,uint8,uint8"><span class="Identifier">blendAlpha</span></a>, <a href="pixie/common.html#toPremultipliedAlpha,ColorRGBA"><span class="Identifier">toPremultipliedAlpha</span></a>, <a href="pixie/common.html#toPremultipliedAlpha,Color"><span class="Identifier">toPremultipliedAlpha</span></a>, <a href="pixie/common.html#toStraightAlpha,Color"><span class="Identifier">toStraightAlpha</span></a>, <a href="pixie/common.html#lerp,ColorRGBA,ColorRGBA,float32"><span class="Identifier">lerp</span></a>, <a href="pixie/common.html#PixieError"><span class="Identifier">PixieError</span></a>, <a href="pixie/common.html#lerp,uint8,uint8,float32"><span class="Identifier">lerp</span></a>, <a href="pixie/common.html#fractional,float32"><span class="Identifier">fractional</span></a>, <a href="pixie/common.html#toStraightAlpha,ColorRGBA"><span class="Identifier">toStraightAlpha</span></a>, <a href="pixie/common.html#lerp,Color,Color,float32"><span class="Identifier">lerp</span></a>, <a href="pixie/paints.html#ColorStop"><span class="Identifier">ColorStop</span></a>, <a href="pixie/paints.html#PaintKind"><span class="Identifier">PaintKind</span></a>, <a href="pixie/paints.html#fillLinearGradient,Image,Vec2,Vec2,seq[ColorStop]"><span class="Identifier">fillLinearGradient</span></a>, <a href="pixie/paints.html#fillImageTiled,Image,Image,Mat3"><span class="Identifier">fillImageTiled</span></a>, <a href="pixie/paints.html#fillRadialGradient,Image,Vec2,Vec2,Vec2,seq[ColorStop]"><span class="Identifier">fillRadialGradient</span></a>, <a href="pixie/paints.html#fillAngularGradient,Image,Vec2,Vec2,Vec2,seq[ColorStop]"><span class="Identifier">fillAngularGradient</span></a>, <a href="pixie/paints.html#Paint"><span class="Identifier">Paint</span></a>, <a href="pixie/paints.html#fillImage,Image,Image,Mat3"><span class="Identifier">fillImage</span></a>, <a href="pixie/images.html#getRgbaUnsafe,Image,int,int"><span class="Identifier">getRgbaUnsafe</span></a>, <a href="pixie/images.html#draw,Image,Mask,Mat3"><span class="Identifier">draw</span></a>, <a href="pixie/images.html#[]=,Image,int,int,ColorRGBA"><span class="Identifier">[]=</span></a>, <a href="pixie/images.html#Image"><span class="Identifier">Image</span></a>, <a href="pixie/images.html#copy,Image"><span class="Identifier">copy</span></a>, <a href="pixie/images.html#wh,Image"><span class="Identifier">wh</span></a>, <a href="pixie/images.html#setRgbaUnsafe,Image,int,int,ColorRGBA"><span class="Identifier">setRgbaUnsafe</span></a>, <a href="pixie/images.html#getRgbaSmooth,Image,float32,float32"><span class="Identifier">getRgbaSmooth</span></a>, <a href="pixie/images.html#invert"><span class="Identifier">invert</span></a>, <a href="pixie/images.html#flipVertical,Image"><span class="Identifier">flipVertical</span></a>, <a href="pixie/images.html#magnifyBy2,Image,int"><span class="Identifier">magnifyBy2</span></a>, <a href="pixie/images.html#draw,Mask,Mask"><span class="Identifier">draw</span></a>, <a href="pixie/images.html#draw,Image,Mask"><span class="Identifier">draw</span></a>, <a href="pixie/images.html#flipHorizontal,Image"><span class="Identifier">flipHorizontal</span></a>, <a href="pixie/images.html#shadow,Image,Vec2,float32,float32,ColorRGBA"><span class="Identifier">shadow</span></a>, <a href="pixie/images.html#subImage,Image,int,int,int,int"><span class="Identifier">subImage</span></a>, <a href="pixie/images.html#inside,Image,int,int"><span class="Identifier">inside</span></a>, <a href="pixie/images.html#$,Image"><span class="Identifier">$</span></a>, <a href="pixie/images.html#draw,Mask,Image,Mat3"><span class="Identifier">draw</span></a>, <a href="pixie/images.html#shift,,Vec2"><span class="Identifier">shift</span></a>, <a href="pixie/images.html#getRgbaSmoothWrapped,Image,float32,float32"><span class="Identifier">getRgbaSmoothWrapped</span></a>, <a href="pixie/images.html#dataIndex,Image,int,int"><span class="Identifier">dataIndex</span></a>, <a href="pixie/images.html#minifyBy2,Image,int"><span class="Identifier">minifyBy2</span></a>, <a href="pixie/images.html#draw,Image,Image"><span class="Identifier">draw</span></a>, <a href="pixie/images.html#draw,Image,Image,Mat3"><span class="Identifier">draw</span></a>, <a href="pixie/images.html#fill,Image,ColorRGBA"><span class="Identifier">fill</span></a>, <a href="pixie/images.html#draw,Mask,Mask,Mat3"><span class="Identifier">draw</span></a>, <a href="pixie/images.html#newMask,Image"><span class="Identifier">newMask</span></a>, <a href="pixie/images.html#blur,,float32,uint32"><span class="Identifier">blur</span></a>, <a href="pixie/images.html#newImage,int,int"><span class="Identifier">newImage</span></a>, <a href="pixie/images.html#toPremultipliedAlpha,Image"><span class="Identifier">toPremultipliedAlpha</span></a>, <a href="pixie/images.html#applyOpacity,,float32"><span class="Identifier">applyOpacity</span></a>, <a href="pixie/images.html#resize,Image,int,int"><span class="Identifier">resize</span></a>, <a href="pixie/images.html#superImage,Image,int,int,int,int"><span class="Identifier">superImage</span></a>, <a href="pixie/images.html#fillUnsafe,seq[ColorRGBA],ColorRGBA,int,int"><span class="Identifier">fillUnsafe</span></a>, <a href="pixie/images.html#draw,Mask,Image"><span class="Identifier">draw</span></a>, <a href="pixie/images.html#toStraightAlpha,Image"><span class="Identifier">toStraightAlpha</span></a>, <a href="pixie/images.html#[],Image,int,int"><span class="Identifier">[]</span></a>, <a href="pixie/masks.html#$,Mask"><span class="Identifier">$</span></a>, <a href="pixie/masks.html#setValueUnsafe,Mask,int,int,uint8"><span class="Identifier">setValueUnsafe</span></a>, <a href="pixie/masks.html#ceil,Mask"><span class="Identifier">ceil</span></a>, <a href="pixie/masks.html#dataIndex,Mask,int,int"><span class="Identifier">dataIndex</span></a>, <a href="pixie/masks.html#[]=,Mask,int,int,uint8"><span class="Identifier">[]=</span></a>, <a href="pixie/masks.html#spread,Mask,float32"><span class="Identifier">spread</span></a>, <a href="pixie/masks.html#copy,Mask"><span class="Identifier">copy</span></a>, <a href="pixie/masks.html#wh,Mask"><span class="Identifier">wh</span></a>, <a href="pixie/masks.html#newMask,int,int"><span class="Identifier">newMask</span></a>, <a href="pixie/masks.html#minifyBy2,Mask,int"><span class="Identifier">minifyBy2</span></a>, <a href="pixie/masks.html#fill,Mask,uint8"><span class="Identifier">fill</span></a>, <a href="pixie/masks.html#Mask"><span class="Identifier">Mask</span></a>, <a href="pixie/masks.html#getValueUnsafe,Mask,int,int"><span class="Identifier">getValueUnsafe</span></a>, <a href="pixie/masks.html#getValueSmooth,Mask,float32,float32"><span class="Identifier">getValueSmooth</span></a>, <a href="pixie/masks.html#fillUnsafe,seq[uint8],uint8,int,int"><span class="Identifier">fillUnsafe</span></a>, <a href="pixie/masks.html#inside,Mask,int,int"><span class="Identifier">inside</span></a>, <a href="pixie/masks.html#[],Mask,int,int"><span class="Identifier">[]</span></a>, <a href="pixie/paths.html#bezierCurveTo,Path,float32,float32,float32,float32,float32,float32"><span class="Identifier">bezierCurveTo</span></a>, <a href="pixie/paths.html#LineCap"><span class="Identifier">LineCap</span></a>, <a href="pixie/paths.html#arcTo,Path,Vec2,Vec2,float32"><span class="Identifier">arcTo</span></a>, <a href="pixie/paths.html#LineJoin"><span class="Identifier">LineJoin</span></a>, <a href="pixie/paths.html#rect,Path,Vec2,Vec2"><span class="Identifier">rect</span></a>, <a href="pixie/paths.html#bezierCurveTo,Path,Vec2,Vec2,Vec2"><span class="Identifier">bezierCurveTo</span></a>, <a href="pixie/paths.html#SomePath"><span class="Identifier">SomePath</span></a>, <a href="pixie/paths.html#strokePath,Mask,SomePath,,float"><span class="Identifier">strokePath</span></a>, <a href="pixie/paths.html#$,Path"><span class="Identifier">$</span></a>, <a href="pixie/paths.html#parsePath,string"><span class="Identifier">parsePath</span></a>, <a href="pixie/paths.html#fillPath,Image,SomePath,Paint"><span class="Identifier">fillPath</span></a>, <a href="pixie/paths.html#lineTo,Path,Vec2"><span class="Identifier">lineTo</span></a>, <a href="pixie/paths.html#polygon,Path,Vec2,float32,int"><span class="Identifier">polygon</span></a>, <a href="pixie/paths.html#roundedRect,Path,float32,float32,float32,float32,float32,float32,float32,float32"><span class="Identifier">roundedRect</span></a>, <a href="pixie/paths.html#quadraticCurveTo,Path,Vec2,Vec2"><span class="Identifier">quadraticCurveTo</span></a>, <a href="pixie/paths.html#fillPath,Image,SomePath,ColorRGBA"><span class="Identifier">fillPath</span></a>, <a href="pixie/paths.html#strokePath,Image,SomePath,ColorRGBA,,float"><span class="Identifier">strokePath</span></a>, <a href="pixie/paths.html#ellipticalArcTo,Path,float32,float32,float32,bool,bool,float32,float32"><span class="Identifier">ellipticalArcTo</span></a>, <a href="pixie/paths.html#Path"><span class="Identifier">Path</span></a>, <a href="pixie/paths.html#lineTo,Path,float32,float32"><span class="Identifier">lineTo</span></a>, <a href="pixie/paths.html#ellipse,Path,Vec2,float32,float32"><span class="Identifier">ellipse</span></a>, <a href="pixie/paths.html#quadraticCurveTo,Path,float32,float32,float32,float32"><span class="Identifier">quadraticCurveTo</span></a>, <a href="pixie/paths.html#arcTo,Path,float32,float32,float32,float32,float32"><span class="Identifier">arcTo</span></a>, <a href="pixie/paths.html#moveTo,Path,float32,float32"><span class="Identifier">moveTo</span></a>, <a href="pixie/paths.html#roundedRect,Path,Rect,float32,float32,float32,float32"><span class="Identifier">roundedRect</span></a>, <a href="pixie/paths.html#PathCommandKind"><span class="Identifier">PathCommandKind</span></a>, <a href="pixie/paths.html#polygon,Path,float32,float32,float32,int"><span class="Identifier">polygon</span></a>, <a href="pixie/paths.html#strokePath,Image,SomePath,ColorRGBA,float"><span class="Identifier">strokePath</span></a>, <a href="pixie/paths.html#transform,Path,Mat3"><span class="Identifier">transform</span></a>, <a href="pixie/paths.html#PathCommand"><span class="Identifier">PathCommand</span></a>, <a href="pixie/paths.html#roundedRect,Path,Vec2,Vec2,float32,float32,float32,float32"><span class="Identifier">roundedRect</span></a>, <a href="pixie/paths.html#rect,Path,Rect"><span class="Identifier">rect</span></a>, <a href="pixie/paths.html#fillPath,Image,SomePath,ColorRGBA,"><span class="Identifier">fillPath</span></a>, <a href="pixie/paths.html#segments.i,seq[Vec2]"><span class="Identifier">segments</span></a>, <a href="pixie/paths.html#closePath,Path"><span class="Identifier">closePath</span></a>, <a href="pixie/paths.html#addPath,Path,Path"><span class="Identifier">addPath</span></a>, <a href="pixie/paths.html#rect,Path,float32,float32,float32,float32"><span class="Identifier">rect</span></a>, <a href="pixie/paths.html#strokePath,Mask,SomePath,float"><span class="Identifier">strokePath</span></a>, <a href="pixie/paths.html#commandsToShapes,Path,float32"><span class="Identifier">commandsToShapes</span></a>, <a href="pixie/paths.html#ellipse,Path,float32,float32,float32,float32"><span class="Identifier">ellipse</span></a>, <a href="pixie/paths.html#WindingRule"><span class="Identifier">WindingRule</span></a>, <a href="pixie/paths.html#fillPath,Mask,SomePath,"><span class="Identifier">fillPath</span></a>, <a href="pixie/paths.html#moveTo,Path,Vec2"><span class="Identifier">moveTo</span></a>, <a href="pixie/paths.html#fillPath,Mask,SomePath"><span class="Identifier">fillPath</span></a>
+<a href="pixie/blends.html#unpackAlphaValues,M128i"><span class="Identifier">unpackAlphaValues</span></a>, <a href="pixie/blends.html#Masker"><span class="Identifier">Masker</span></a>, <a href="pixie/blends.html#maskerSimd,BlendMode"><span class="Identifier">maskerSimd</span></a>, <a href="pixie/blends.html#blender,BlendMode"><span class="Identifier">blender</span></a>, <a href="pixie/blends.html#hasSimdBlender,BlendMode"><span class="Identifier">hasSimdBlender</span></a>, <a href="pixie/blends.html#Blender"><span class="Identifier">Blender</span></a>, <a href="pixie/blends.html#BlenderSimd"><span class="Identifier">BlenderSimd</span></a>, <a href="pixie/blends.html#MaskerSimd"><span class="Identifier">MaskerSimd</span></a>, <a href="pixie/blends.html#packAlphaValues,M128i"><span class="Identifier">packAlphaValues</span></a>, <a href="pixie/blends.html#blenderSimd,BlendMode"><span class="Identifier">blenderSimd</span></a>, <a href="pixie/blends.html#hasSimdMasker,BlendMode"><span class="Identifier">hasSimdMasker</span></a>, <a href="pixie/blends.html#masker,BlendMode"><span class="Identifier">masker</span></a>, <a href="pixie/blends.html#BlendMode"><span class="Identifier">BlendMode</span></a>, <a href="pixie/blends.html#blendAlpha,uint8,uint8"><span class="Identifier">blendAlpha</span></a>, <a href="pixie/common.html#toPremultipliedAlpha,ColorRGBA"><span class="Identifier">toPremultipliedAlpha</span></a>, <a href="pixie/common.html#toPremultipliedAlpha,Color"><span class="Identifier">toPremultipliedAlpha</span></a>, <a href="pixie/common.html#toStraightAlpha,Color"><span class="Identifier">toStraightAlpha</span></a>, <a href="pixie/common.html#PixieError"><span class="Identifier">PixieError</span></a>, <a href="pixie/common.html#lerp,Color,Color,float32"><span class="Identifier">lerp</span></a>, <a href="pixie/common.html#lerp,uint8,uint8,float32"><span class="Identifier">lerp</span></a>, <a href="pixie/common.html#fractional,float32"><span class="Identifier">fractional</span></a>, <a href="pixie/common.html#toStraightAlpha,ColorRGBA"><span class="Identifier">toStraightAlpha</span></a>, <a href="pixie/common.html#lerp,ColorRGBA,ColorRGBA,float32"><span class="Identifier">lerp</span></a>, <a href="pixie/images.html#getRgbaUnsafe,Image,int,int"><span class="Identifier">getRgbaUnsafe</span></a>, <a href="pixie/images.html#draw,Image,Mask,Mat3"><span class="Identifier">draw</span></a>, <a href="pixie/images.html#[]=,Image,int,int,ColorRGBA"><span class="Identifier">[]=</span></a>, <a href="pixie/images.html#Image"><span class="Identifier">Image</span></a>, <a href="pixie/images.html#copy,Image"><span class="Identifier">copy</span></a>, <a href="pixie/images.html#wh,Image"><span class="Identifier">wh</span></a>, <a href="pixie/images.html#setRgbaUnsafe,Image,int,int,ColorRGBA"><span class="Identifier">setRgbaUnsafe</span></a>, <a href="pixie/images.html#getRgbaSmooth,Image,float32,float32"><span class="Identifier">getRgbaSmooth</span></a>, <a href="pixie/images.html#invert"><span class="Identifier">invert</span></a>, <a href="pixie/images.html#flipVertical,Image"><span class="Identifier">flipVertical</span></a>, <a href="pixie/images.html#magnifyBy2,Image,int"><span class="Identifier">magnifyBy2</span></a>, <a href="pixie/images.html#draw,Mask,Mask"><span class="Identifier">draw</span></a>, <a href="pixie/images.html#draw,Image,Mask"><span class="Identifier">draw</span></a>, <a href="pixie/images.html#flipHorizontal,Image"><span class="Identifier">flipHorizontal</span></a>, <a href="pixie/images.html#shadow,Image,Vec2,float32,float32,ColorRGBA"><span class="Identifier">shadow</span></a>, <a href="pixie/images.html#subImage,Image,int,int,int,int"><span class="Identifier">subImage</span></a>, <a href="pixie/images.html#inside,Image,int,int"><span class="Identifier">inside</span></a>, <a href="pixie/images.html#$,Image"><span class="Identifier">$</span></a>, <a href="pixie/images.html#draw,Mask,Image,Mat3"><span class="Identifier">draw</span></a>, <a href="pixie/images.html#shift,,Vec2"><span class="Identifier">shift</span></a>, <a href="pixie/images.html#dataIndex,Image,int,int"><span class="Identifier">dataIndex</span></a>, <a href="pixie/images.html#minifyBy2,Image,int"><span class="Identifier">minifyBy2</span></a>, <a href="pixie/images.html#draw,Image,Image"><span class="Identifier">draw</span></a>, <a href="pixie/images.html#draw,Image,Image,Mat3"><span class="Identifier">draw</span></a>, <a href="pixie/images.html#fill,Image,ColorRGBA"><span class="Identifier">fill</span></a>, <a href="pixie/images.html#draw,Mask,Mask,Mat3"><span class="Identifier">draw</span></a>, <a href="pixie/images.html#newMask,Image"><span class="Identifier">newMask</span></a>, <a href="pixie/images.html#blur,,float32,uint32"><span class="Identifier">blur</span></a>, <a href="pixie/images.html#newImage,int,int"><span class="Identifier">newImage</span></a>, <a href="pixie/images.html#toPremultipliedAlpha,Image"><span class="Identifier">toPremultipliedAlpha</span></a>, <a href="pixie/images.html#drawTiled,Image,Image,Mat3"><span class="Identifier">drawTiled</span></a>, <a href="pixie/images.html#applyOpacity,,float32"><span class="Identifier">applyOpacity</span></a>, <a href="pixie/images.html#resize,Image,int,int"><span class="Identifier">resize</span></a>, <a href="pixie/images.html#superImage,Image,int,int,int,int"><span class="Identifier">superImage</span></a>, <a href="pixie/images.html#fillUnsafe,seq[ColorRGBA],ColorRGBA,int,int"><span class="Identifier">fillUnsafe</span></a>, <a href="pixie/images.html#draw,Mask,Image"><span class="Identifier">draw</span></a>, <a href="pixie/images.html#toStraightAlpha,Image"><span class="Identifier">toStraightAlpha</span></a>, <a href="pixie/images.html#[],Image,int,int"><span class="Identifier">[]</span></a>, <a href="pixie/masks.html#$,Mask"><span class="Identifier">$</span></a>, <a href="pixie/masks.html#setValueUnsafe,Mask,int,int,uint8"><span class="Identifier">setValueUnsafe</span></a>, <a href="pixie/masks.html#ceil,Mask"><span class="Identifier">ceil</span></a>, <a href="pixie/masks.html#dataIndex,Mask,int,int"><span class="Identifier">dataIndex</span></a>, <a href="pixie/masks.html#[]=,Mask,int,int,uint8"><span class="Identifier">[]=</span></a>, <a href="pixie/masks.html#spread,Mask,float32"><span class="Identifier">spread</span></a>, <a href="pixie/masks.html#copy,Mask"><span class="Identifier">copy</span></a>, <a href="pixie/masks.html#wh,Mask"><span class="Identifier">wh</span></a>, <a href="pixie/masks.html#newMask,int,int"><span class="Identifier">newMask</span></a>, <a href="pixie/masks.html#minifyBy2,Mask,int"><span class="Identifier">minifyBy2</span></a>, <a href="pixie/masks.html#fill,Mask,uint8"><span class="Identifier">fill</span></a>, <a href="pixie/masks.html#Mask"><span class="Identifier">Mask</span></a>, <a href="pixie/masks.html#getValueUnsafe,Mask,int,int"><span class="Identifier">getValueUnsafe</span></a>, <a href="pixie/masks.html#getValueSmooth,Mask,float32,float32"><span class="Identifier">getValueSmooth</span></a>, <a href="pixie/masks.html#fillUnsafe,seq[uint8],uint8,int,int"><span class="Identifier">fillUnsafe</span></a>, <a href="pixie/masks.html#inside,Mask,int,int"><span class="Identifier">inside</span></a>, <a href="pixie/masks.html#[],Mask,int,int"><span class="Identifier">[]</span></a>, <a href="pixie/paints.html#ColorStop"><span class="Identifier">ColorStop</span></a>, <a href="pixie/paints.html#PaintKind"><span class="Identifier">PaintKind</span></a>, <a href="pixie/paints.html#fillLinearGradient,Image,Vec2,Vec2,seq[ColorStop]"><span class="Identifier">fillLinearGradient</span></a>, <a href="pixie/paints.html#fillRadialGradient,Image,Vec2,Vec2,Vec2,seq[ColorStop]"><span class="Identifier">fillRadialGradient</span></a>, <a href="pixie/paints.html#fillAngularGradient,Image,Vec2,Vec2,Vec2,seq[ColorStop]"><span class="Identifier">fillAngularGradient</span></a>, <a href="pixie/paints.html#Paint"><span class="Identifier">Paint</span></a>, <a href="pixie/paths.html#bezierCurveTo,Path,float32,float32,float32,float32,float32,float32"><span class="Identifier">bezierCurveTo</span></a>, <a href="pixie/paths.html#LineCap"><span class="Identifier">LineCap</span></a>, <a href="pixie/paths.html#arcTo,Path,Vec2,Vec2,float32"><span class="Identifier">arcTo</span></a>, <a href="pixie/paths.html#LineJoin"><span class="Identifier">LineJoin</span></a>, <a href="pixie/paths.html#rect,Path,Vec2,Vec2"><span class="Identifier">rect</span></a>, <a href="pixie/paths.html#bezierCurveTo,Path,Vec2,Vec2,Vec2"><span class="Identifier">bezierCurveTo</span></a>, <a href="pixie/paths.html#SomePath"><span class="Identifier">SomePath</span></a>, <a href="pixie/paths.html#strokePath,Mask,SomePath,,float"><span class="Identifier">strokePath</span></a>, <a href="pixie/paths.html#$,Path"><span class="Identifier">$</span></a>, <a href="pixie/paths.html#parsePath,string"><span class="Identifier">parsePath</span></a>, <a href="pixie/paths.html#fillPath,Image,SomePath,Paint"><span class="Identifier">fillPath</span></a>, <a href="pixie/paths.html#lineTo,Path,float32,float32"><span class="Identifier">lineTo</span></a>, <a href="pixie/paths.html#polygon,Path,Vec2,float32,int"><span class="Identifier">polygon</span></a>, <a href="pixie/paths.html#roundedRect,Path,float32,float32,float32,float32,float32,float32,float32,float32"><span class="Identifier">roundedRect</span></a>, <a href="pixie/paths.html#quadraticCurveTo,Path,Vec2,Vec2"><span class="Identifier">quadraticCurveTo</span></a>, <a href="pixie/paths.html#fillPath,Image,SomePath,ColorRGBA"><span class="Identifier">fillPath</span></a>, <a href="pixie/paths.html#strokePath,Image,SomePath,ColorRGBA,,float"><span class="Identifier">strokePath</span></a>, <a href="pixie/paths.html#ellipticalArcTo,Path,float32,float32,float32,bool,bool,float32,float32"><span class="Identifier">ellipticalArcTo</span></a>, <a href="pixie/paths.html#Path"><span class="Identifier">Path</span></a>, <a href="pixie/paths.html#lineTo,Path,Vec2"><span class="Identifier">lineTo</span></a>, <a href="pixie/paths.html#ellipse,Path,Vec2,float32,float32"><span class="Identifier">ellipse</span></a>, <a href="pixie/paths.html#quadraticCurveTo,Path,float32,float32,float32,float32"><span class="Identifier">quadraticCurveTo</span></a>, <a href="pixie/paths.html#arcTo,Path,float32,float32,float32,float32,float32"><span class="Identifier">arcTo</span></a>, <a href="pixie/paths.html#moveTo,Path,float32,float32"><span class="Identifier">moveTo</span></a>, <a href="pixie/paths.html#roundedRect,Path,Rect,float32,float32,float32,float32"><span class="Identifier">roundedRect</span></a>, <a href="pixie/paths.html#PathCommandKind"><span class="Identifier">PathCommandKind</span></a>, <a href="pixie/paths.html#polygon,Path,float32,float32,float32,int"><span class="Identifier">polygon</span></a>, <a href="pixie/paths.html#strokePath,Image,SomePath,ColorRGBA,float"><span class="Identifier">strokePath</span></a>, <a href="pixie/paths.html#transform,Path,Mat3"><span class="Identifier">transform</span></a>, <a href="pixie/paths.html#PathCommand"><span class="Identifier">PathCommand</span></a>, <a href="pixie/paths.html#roundedRect,Path,Vec2,Vec2,float32,float32,float32,float32"><span class="Identifier">roundedRect</span></a>, <a href="pixie/paths.html#rect,Path,Rect"><span class="Identifier">rect</span></a>, <a href="pixie/paths.html#fillPath,Image,SomePath,ColorRGBA,"><span class="Identifier">fillPath</span></a>, <a href="pixie/paths.html#segments.i,seq[Vec2]"><span class="Identifier">segments</span></a>, <a href="pixie/paths.html#closePath,Path"><span class="Identifier">closePath</span></a>, <a href="pixie/paths.html#addPath,Path,Path"><span class="Identifier">addPath</span></a>, <a href="pixie/paths.html#rect,Path,float32,float32,float32,float32"><span class="Identifier">rect</span></a>, <a href="pixie/paths.html#strokePath,Mask,SomePath,float"><span class="Identifier">strokePath</span></a>, <a href="pixie/paths.html#commandsToShapes,Path,float32"><span class="Identifier">commandsToShapes</span></a>, <a href="pixie/paths.html#ellipse,Path,float32,float32,float32,float32"><span class="Identifier">ellipse</span></a>, <a href="pixie/paths.html#WindingRule"><span class="Identifier">WindingRule</span></a>, <a href="pixie/paths.html#fillPath,Mask,SomePath,"><span class="Identifier">fillPath</span></a>, <a href="pixie/paths.html#moveTo,Path,Vec2"><span class="Identifier">moveTo</span></a>, <a href="pixie/paths.html#fillPath,Mask,SomePath"><span class="Identifier">fillPath</span></a>
 </dl></div>
 
   </div>
@@ -533,7 +538,7 @@ Strokes a polygon.
       <div class="twelve-columns footer">
         <span class="nim-sprite"></span>
         <br/>
-        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 15:26:22 UTC</small>
+        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:09 UTC</small>
       </div>
     </div>
   </div>
diff --git a/docs/pixie/blends.html b/docs/pixie/blends.html
index 7bdba09..df6f9f5 100644
--- a/docs/pixie/blends.html
+++ b/docs/pixie/blends.html
@@ -56,12 +56,10 @@ function main() {
     }
   }
 }
-
-window.addEventListener('DOMContentLoaded', main);
 </script>
 
 </head>
-<body>
+<body onload="main()">
 <div class="document" id="documentId">
   <div class="container">
     <h1 class="title">pixie/blends</h1>
@@ -176,7 +174,6 @@ window.addEventListener('DOMContentLoaded', main);
 </ul>
 
   </div>
-  
   <div class="nine columns" id="content">
   <div id="tocRoot"></div>
   
@@ -310,7 +307,7 @@ Is there a blend masking function with SIMD support?
       <div class="twelve-columns footer">
         <span class="nim-sprite"></span>
         <br/>
-        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 15:26:20 UTC</small>
+        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:08 UTC</small>
       </div>
     </div>
   </div>
diff --git a/docs/pixie/common.html b/docs/pixie/common.html
index 4bc716b..eca7409 100644
--- a/docs/pixie/common.html
+++ b/docs/pixie/common.html
@@ -56,12 +56,10 @@ function main() {
     }
   }
 }
-
-window.addEventListener('DOMContentLoaded', main);
 </script>
 
 </head>
-<body>
+<body onload="main()">
 <div class="document" id="documentId">
   <div class="container">
     <h1 class="title">pixie/common</h1>
@@ -109,8 +107,6 @@ window.addEventListener('DOMContentLoaded', main);
     title="lerp(a, b: uint8; t: float32): uint8">lerp,<wbr>uint8,<wbr>uint8,<wbr>float32</a></li>
   <li><a class="reference" href="#lerp%2CColorRGBA%2CColorRGBA%2Cfloat32"
     title="lerp(a, b: ColorRGBA; t: float32): ColorRGBA">lerp,<wbr>ColorRGBA,<wbr>ColorRGBA,<wbr>float32</a></li>
-  <li><a class="reference" href="#lerp%2CColor%2CColor%2Cfloat32"
-    title="lerp(a, b: Color; v: float32): Color">lerp,<wbr>Color,<wbr>Color,<wbr>float32</a></li>
 
   </ul>
   <ul class="simple nested-toc-section">toPremultipliedAlpha
@@ -135,11 +131,21 @@ window.addEventListener('DOMContentLoaded', main);
 
   </ul>
 </li>
+<li>
+  <a class="reference reference-toplevel" href="#13" id="63">Funcs</a>
+  <ul class="simple simple-toc-section">
+      <ul class="simple nested-toc-section">lerp
+      <li><a class="reference" href="#lerp%2CColor%2CColor%2Cfloat32"
+    title="lerp(a, b: Color; v: float32): Color">lerp,<wbr>Color,<wbr>Color,<wbr>float32</a></li>
+
+  </ul>
+
+  </ul>
+</li>
 
 </ul>
 
   </div>
-  
   <div class="nine columns" id="content">
   <div id="tocRoot"></div>
   
@@ -181,13 +187,6 @@ Linearly interpolate between a and b using t.
 
 Linearly interpolate between a and b using t.
 
-</dd>
-<a id="lerp,Color,Color,float32"></a>
-<dt><pre><span class="Keyword">func</span> <a href="#lerp%2CColor%2CColor%2Cfloat32"><span class="Identifier">lerp</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <span class="Identifier">Color</span><span class="Other">;</span> <span class="Identifier">v</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">Color</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
-<dd>
-
-Linearly interpolate between a and b using t.
-
 </dd>
 <a id="toPremultipliedAlpha,ColorRGBA"></a>
 <dt><pre><span class="Keyword">proc</span> <a href="#toPremultipliedAlpha%2CColorRGBA"><span class="Identifier">toPremultipliedAlpha</span></a><span class="Other">(</span><span class="Identifier">c</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
@@ -219,6 +218,18 @@ Converts a color from premultiplied alpha to straight alpha.
 
 </dd>
 
+</dl></div>
+<div class="section" id="13">
+<h1><a class="toc-backref" href="#13">Funcs</a></h1>
+<dl class="item">
+<a id="lerp,Color,Color,float32"></a>
+<dt><pre><span class="Keyword">func</span> <a href="#lerp%2CColor%2CColor%2Cfloat32"><span class="Identifier">lerp</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <span class="Identifier">Color</span><span class="Other">;</span> <span class="Identifier">v</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">Color</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+<dd>
+
+Linearly interpolate between a and b using t.
+
+</dd>
+
 </dl></div>
 
   </div>
@@ -228,7 +239,7 @@ Converts a color from premultiplied alpha to straight alpha.
       <div class="twelve-columns footer">
         <span class="nim-sprite"></span>
         <br/>
-        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 15:26:20 UTC</small>
+        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:08 UTC</small>
       </div>
     </div>
   </div>
diff --git a/docs/pixie/fileformats/bmp.html b/docs/pixie/fileformats/bmp.html
index 173d801..2e1862b 100644
--- a/docs/pixie/fileformats/bmp.html
+++ b/docs/pixie/fileformats/bmp.html
@@ -56,12 +56,10 @@ function main() {
     }
   }
 }
-
-window.addEventListener('DOMContentLoaded', main);
 </script>
 
 </head>
-<body>
+<body onload="main()">
 <div class="document" id="documentId">
   <div class="container">
     <h1 class="title">pixie/fileformats/bmp</h1>
@@ -129,7 +127,6 @@ window.addEventListener('DOMContentLoaded', main);
 </ul>
 
   </div>
-  
   <div class="nine columns" id="content">
   <div id="tocRoot"></div>
   
@@ -185,7 +182,7 @@ Encodes an image into the BMP file format.
       <div class="twelve-columns footer">
         <span class="nim-sprite"></span>
         <br/>
-        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 15:26:21 UTC</small>
+        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:08 UTC</small>
       </div>
     </div>
   </div>
diff --git a/docs/pixie/fileformats/jpg.html b/docs/pixie/fileformats/jpg.html
index f701f58..963880a 100644
--- a/docs/pixie/fileformats/jpg.html
+++ b/docs/pixie/fileformats/jpg.html
@@ -56,12 +56,10 @@ function main() {
     }
   }
 }
-
-window.addEventListener('DOMContentLoaded', main);
 </script>
 
 </head>
-<body>
+<body onload="main()">
 <div class="document" id="documentId">
   <div class="container">
     <h1 class="title">pixie/fileformats/jpg</h1>
@@ -129,7 +127,6 @@ window.addEventListener('DOMContentLoaded', main);
 </ul>
 
   </div>
-  
   <div class="nine columns" id="content">
   <div id="tocRoot"></div>
   
@@ -185,7 +182,7 @@ Encodes Image into a JPEG data string.
       <div class="twelve-columns footer">
         <span class="nim-sprite"></span>
         <br/>
-        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 15:26:21 UTC</small>
+        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:08 UTC</small>
       </div>
     </div>
   </div>
diff --git a/docs/pixie/fileformats/png.html b/docs/pixie/fileformats/png.html
index 70001c9..82165e6 100644
--- a/docs/pixie/fileformats/png.html
+++ b/docs/pixie/fileformats/png.html
@@ -56,12 +56,10 @@ function main() {
     }
   }
 }
-
-window.addEventListener('DOMContentLoaded', main);
 </script>
 
 </head>
-<body>
+<body onload="main()">
 <div class="document" id="documentId">
   <div class="container">
     <h1 class="title">pixie/fileformats/png</h1>
@@ -133,7 +131,6 @@ window.addEventListener('DOMContentLoaded', main);
 </ul>
 
   </div>
-  
   <div class="nine columns" id="content">
   <div id="tocRoot"></div>
   
@@ -204,7 +201,7 @@ Encodes the mask data into the PNG file format.
       <div class="twelve-columns footer">
         <span class="nim-sprite"></span>
         <br/>
-        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 15:26:21 UTC</small>
+        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:08 UTC</small>
       </div>
     </div>
   </div>
diff --git a/docs/pixie/fileformats/svg.html b/docs/pixie/fileformats/svg.html
index dda48fd..9cdb4df 100644
--- a/docs/pixie/fileformats/svg.html
+++ b/docs/pixie/fileformats/svg.html
@@ -56,12 +56,10 @@ function main() {
     }
   }
 }
-
-window.addEventListener('DOMContentLoaded', main);
 </script>
 
 </head>
-<body>
+<body onload="main()">
 <div class="document" id="documentId">
   <div class="container">
     <h1 class="title">pixie/fileformats/svg</h1>
@@ -124,7 +122,6 @@ window.addEventListener('DOMContentLoaded', main);
 </ul>
 
   </div>
-  
   <div class="nine columns" id="content">
   <div id="tocRoot"></div>
   
@@ -158,10 +155,10 @@ window.addEventListener('DOMContentLoaded', main);
 <dl class="item">
 <a id="decodeSvg,string,int,int"></a>
 <dt><pre><span class="Keyword">proc</span> <a href="#decodeSvg%2Cstring%2Cint%2Cint"><span class="Identifier">decodeSvg</span></a><span class="Other">(</span><span class="Identifier">data</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">;</span> <span class="Identifier">width</span> <span class="Other">=</span> <span class="DecNumber">0</span><span class="Other">;</span> <span class="Identifier">height</span> <span class="Other">=</span> <span class="DecNumber">0</span><span class="Other">)</span><span class="Other">:</span> <a href="../images.html#Image"><span class="Identifier">Image</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
-    <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">WriteIOEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+    <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">ReadIOEffect</span><span class="Other">,</span> <span class="Identifier">RootEffect</span><span class="Other">,</span> <span class="Identifier">WriteIOEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Render SVG file and return the image.
+Render SVG file and return the image. Defaults to the SVG's view box size.
 
 </dd>
 
@@ -174,7 +171,7 @@ Render SVG file and return the image.
       <div class="twelve-columns footer">
         <span class="nim-sprite"></span>
         <br/>
-        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 15:26:22 UTC</small>
+        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:09 UTC</small>
       </div>
     </div>
   </div>
diff --git a/docs/pixie/images.html b/docs/pixie/images.html
index 4cf08d4..50efb5f 100644
--- a/docs/pixie/images.html
+++ b/docs/pixie/images.html
@@ -56,12 +56,10 @@ function main() {
     }
   }
 }
-
-window.addEventListener('DOMContentLoaded', main);
 </script>
 
 </head>
-<body>
+<body onload="main()">
 <div class="document" id="documentId">
   <div class="container">
     <h1 class="title">pixie/images</h1>
@@ -155,11 +153,6 @@ window.addEventListener('DOMContentLoaded', main);
       <li><a class="reference" href="#shift%2C%2CVec2"
     title="shift(target: Image | Mask; offset: Vec2)">shift,<wbr>,<wbr>Vec2</a></li>
 
-  </ul>
-  <ul class="simple nested-toc-section">getRgbaSmoothWrapped
-      <li><a class="reference" href="#getRgbaSmoothWrapped%2CImage%2Cfloat32%2Cfloat32"
-    title="getRgbaSmoothWrapped(image: Image; x, y: float32): ColorRGBA">getRgbaSmoothWrapped,<wbr>Image,<wbr>float32,<wbr>float32</a></li>
-
   </ul>
   <ul class="simple nested-toc-section">[]=
       <li><a class="reference" href="#%5B%5D%3D%2CImage%2Cint%2Cint%2CColorRGBA"
@@ -205,6 +198,11 @@ window.addEventListener('DOMContentLoaded', main);
       <li><a class="reference" href="#magnifyBy2%2CImage%2Cint"
     title="magnifyBy2(image: Image; power = 1): Image">magnifyBy2,<wbr>Image,<wbr>int</a></li>
 
+  </ul>
+  <ul class="simple nested-toc-section">shadow
+      <li><a class="reference" href="#shadow%2CImage%2CVec2%2Cfloat32%2Cfloat32%2CColorRGBA"
+    title="shadow(image: Image; offset: Vec2; spread, blur: float32; color: ColorRGBA): Image">shadow,<wbr>Image,<wbr>Vec2,<wbr>float32,<wbr>float32,<wbr>ColorRGBA</a></li>
+
   </ul>
   <ul class="simple nested-toc-section">newMask
       <li><a class="reference" href="#newMask%2CImage"
@@ -225,6 +223,11 @@ window.addEventListener('DOMContentLoaded', main);
       <li><a class="reference" href="#minifyBy2%2CImage%2Cint"
     title="minifyBy2(image: Image; power = 1): Image">minifyBy2,<wbr>Image,<wbr>int</a></li>
 
+  </ul>
+  <ul class="simple nested-toc-section">drawTiled
+      <li><a class="reference" href="#drawTiled%2CImage%2CImage%2CMat3"
+    title="drawTiled(dest, src: Image; mat: Mat3; blendMode = bmNormal)">drawTiled,<wbr>Image,<wbr>Image,<wbr>Mat3</a></li>
+
   </ul>
   <ul class="simple nested-toc-section">subImage
       <li><a class="reference" href="#subImage%2CImage%2Cint%2Cint%2Cint%2Cint"
@@ -235,6 +238,11 @@ window.addEventListener('DOMContentLoaded', main);
       <li><a class="reference" href="#blur%2C%2Cfloat32%2Cuint32"
     title="blur(target: Image | Mask; radius: float32; offBounds: uint32 = 0)">blur,<wbr>,<wbr>float32,<wbr>uint32</a></li>
 
+  </ul>
+  <ul class="simple nested-toc-section">toStraightAlpha
+      <li><a class="reference" href="#toStraightAlpha%2CImage"
+    title="toStraightAlpha(image: Image)">toStraightAlpha,<wbr>Image</a></li>
+
   </ul>
   <ul class="simple nested-toc-section">dataIndex
       <li><a class="reference" href="#dataIndex%2CImage%2Cint%2Cint"
@@ -243,7 +251,7 @@ window.addEventListener('DOMContentLoaded', main);
   </ul>
   <ul class="simple nested-toc-section">getRgbaSmooth
       <li><a class="reference" href="#getRgbaSmooth%2CImage%2Cfloat32%2Cfloat32"
-    title="getRgbaSmooth(image: Image; x, y: float32): ColorRGBA">getRgbaSmooth,<wbr>Image,<wbr>float32,<wbr>float32</a></li>
+    title="getRgbaSmooth(image: Image; x, y: float32; wrapped = false): ColorRGBA">getRgbaSmooth,<wbr>Image,<wbr>float32,<wbr>float32</a></li>
 
   </ul>
   <ul class="simple nested-toc-section">inside
@@ -273,7 +281,6 @@ window.addEventListener('DOMContentLoaded', main);
 </ul>
 
   </div>
-  
   <div class="nine columns" id="content">
   <div id="tocRoot"></div>
   
@@ -436,7 +443,7 @@ Scales the image down by an integer scale.
 <dt><pre><span class="Keyword">proc</span> <a href="#magnifyBy2%2CImage%2Cint"><span class="Identifier">magnifyBy2</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">power</span> <span class="Other">=</span> <span class="DecNumber">1</span><span class="Other">)</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Scales image image up by 2 ^ power.
+Scales image up by 2 ^ power.
 
 </dd>
 <a id="toPremultipliedAlpha,Image"></a>
@@ -445,6 +452,13 @@ Scales image image up by 2 ^ power.
 
 Converts an image to premultiplied alpha from straight alpha.
 
+</dd>
+<a id="toStraightAlpha,Image"></a>
+<dt><pre><span class="Keyword">proc</span> <a href="#toStraightAlpha%2CImage"><span class="Identifier">toStraightAlpha</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+<dd>
+
+Converts an image from premultiplied alpha to straight alpha. This is expensive for large images.
+
 </dd>
 <a id="applyOpacity,,float32"></a>
 <dt><pre><span class="Keyword">proc</span> <a href="#applyOpacity%2C%2Cfloat32"><span class="Identifier">applyOpacity</span></a><span class="Other">(</span><span class="Identifier">target</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a> <span class="Operator">|</span> <a href="masks.html#Mask"><span class="Identifier">Mask</span></a><span class="Other">;</span> <span class="Identifier">opacity</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">)</span></pre></dt>
@@ -475,20 +489,12 @@ Returns a new mask using the alpha values of the parameter image.
 
 </dd>
 <a id="getRgbaSmooth,Image,float32,float32"></a>
-<dt><pre><span class="Keyword">proc</span> <a href="#getRgbaSmooth%2CImage%2Cfloat32%2Cfloat32"><span class="Identifier">getRgbaSmooth</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
-    <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+<dt><pre><span class="Keyword">proc</span> <a href="#getRgbaSmooth%2CImage%2Cfloat32%2Cfloat32"><span class="Identifier">getRgbaSmooth</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">;</span> <span class="Identifier">wrapped</span> <span class="Other">=</span> <span class="Identifier">false</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
+    <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
 Gets a interpolated color with float point coordinates. Pixes outside the image are transparent.
 
-</dd>
-<a id="getRgbaSmoothWrapped,Image,float32,float32"></a>
-<dt><pre><span class="Keyword">proc</span> <a href="#getRgbaSmoothWrapped%2CImage%2Cfloat32%2Cfloat32"><span class="Identifier">getRgbaSmoothWrapped</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">x</span><span class="Other">,</span> <span class="Identifier">y</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
-    <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
-<dd>
-
-Gets a interpolated color with float point coordinates. Pixes outside the image are repeated.
-
 </dd>
 <a id="draw,Image,Image,Mat3"></a>
 <dt><pre><span class="Keyword">proc</span> <a href="#draw%2CImage%2CImage%2CMat3"><span class="Identifier">draw</span></a><span class="Other">(</span><span class="Identifier">a</span><span class="Other">,</span> <span class="Identifier">b</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">mat</span><span class="Other">:</span> <span class="Identifier">Mat3</span><span class="Other">;</span> <span class="Identifier">blendMode</span> <span class="Other">=</span> <span class="Identifier">bmNormal</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span>
@@ -553,6 +559,14 @@ Draws a image onto a mask using a matrix with color blending.
 
 Draws a image onto a mask using a position offset with color blending.
 
+</dd>
+<a id="drawTiled,Image,Image,Mat3"></a>
+<dt><pre><span class="Keyword">proc</span> <a href="#drawTiled%2CImage%2CImage%2CMat3"><span class="Identifier">drawTiled</span></a><span class="Other">(</span><span class="Identifier">dest</span><span class="Other">,</span> <span class="Identifier">src</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">mat</span><span class="Other">:</span> <span class="Identifier">Mat3</span><span class="Other">;</span> <span class="Identifier">blendMode</span> <span class="Other">=</span> <span class="Identifier">bmNormal</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
+    <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+<dd>
+
+
+
 </dd>
 <a id="resize,Image,int,int"></a>
 <dt><pre><span class="Keyword">proc</span> <a href="#resize%2CImage%2Cint%2Cint"><span class="Identifier">resize</span></a><span class="Other">(</span><span class="Identifier">srcImage</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">width</span><span class="Other">,</span> <span class="Identifier">height</span><span class="Other">:</span> <span class="Identifier">int</span><span class="Other">)</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
@@ -568,6 +582,14 @@ Resize an image to a given hight and width.
 
 Shifts the target by offset.
 
+</dd>
+<a id="shadow,Image,Vec2,float32,float32,ColorRGBA"></a>
+<dt><pre><span class="Keyword">proc</span> <a href="#shadow%2CImage%2CVec2%2Cfloat32%2Cfloat32%2CColorRGBA"><span class="Identifier">shadow</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">offset</span><span class="Other">:</span> <span class="Identifier">Vec2</span><span class="Other">;</span> <span class="Identifier">spread</span><span class="Other">,</span> <span class="Identifier">blur</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">;</span> <span class="Identifier">color</span><span class="Other">:</span> <span class="Identifier">ColorRGBA</span><span class="Other">)</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
+    <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+<dd>
+
+Create a shadow of the image with the offset, spread and blur.
+
 </dd>
 
 </dl></div>
@@ -579,7 +601,7 @@ Shifts the target by offset.
       <div class="twelve-columns footer">
         <span class="nim-sprite"></span>
         <br/>
-        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 15:26:21 UTC</small>
+        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:08 UTC</small>
       </div>
     </div>
   </div>
diff --git a/docs/pixie/images.idx b/docs/pixie/images.idx
index b89e90d..bfa9e82 100644
--- a/docs/pixie/images.idx
+++ b/docs/pixie/images.idx
@@ -18,12 +18,12 @@ superImage	pixie/images.html#superImage,Image,int,int,int,int	images: superImage
 minifyBy2	pixie/images.html#minifyBy2,Image,int	images: minifyBy2(image: Image; power = 1): Image	
 magnifyBy2	pixie/images.html#magnifyBy2,Image,int	images: magnifyBy2(image: Image; power = 1): Image	
 toPremultipliedAlpha	pixie/images.html#toPremultipliedAlpha,Image	images: toPremultipliedAlpha(image: Image)	
+toStraightAlpha	pixie/images.html#toStraightAlpha,Image	images: toStraightAlpha(image: Image)	
 applyOpacity	pixie/images.html#applyOpacity,,float32	images: applyOpacity(target: Image | Mask; opacity: float32)	
 invert	pixie/images.html#invert	images: invert(target: Image | Mask)	
 blur	pixie/images.html#blur,,float32,uint32	images: blur(target: Image | Mask; radius: float32; offBounds: uint32 = 0)	
 newMask	pixie/images.html#newMask,Image	images: newMask(image: Image): Mask	
-getRgbaSmooth	pixie/images.html#getRgbaSmooth,Image,float32,float32	images: getRgbaSmooth(image: Image; x, y: float32): ColorRGBA	
-getRgbaSmoothWrapped	pixie/images.html#getRgbaSmoothWrapped,Image,float32,float32	images: getRgbaSmoothWrapped(image: Image; x, y: float32): ColorRGBA	
+getRgbaSmooth	pixie/images.html#getRgbaSmooth,Image,float32,float32	images: getRgbaSmooth(image: Image; x, y: float32; wrapped = false): ColorRGBA	
 draw	pixie/images.html#draw,Image,Image,Mat3	images: draw(a, b: Image; mat: Mat3; blendMode = bmNormal)	
 draw	pixie/images.html#draw,Image,Image	images: draw(a, b: Image; pos = vec2(0, 0); blendMode = bmNormal)	
 draw	pixie/images.html#draw,Image,Mask,Mat3	images: draw(image: Image; mask: Mask; mat: Mat3; blendMode = bmMask)	
@@ -32,5 +32,7 @@ draw	pixie/images.html#draw,Mask,Mask,Mat3	images: draw(a, b: Mask; mat: Mat3; b
 draw	pixie/images.html#draw,Mask,Mask	images: draw(a, b: Mask; pos = vec2(0, 0); blendMode = bmMask)	
 draw	pixie/images.html#draw,Mask,Image,Mat3	images: draw(mask: Mask; image: Image; mat: Mat3; blendMode = bmMask)	
 draw	pixie/images.html#draw,Mask,Image	images: draw(mask: Mask; image: Image; pos = vec2(0, 0); blendMode = bmMask)	
+drawTiled	pixie/images.html#drawTiled,Image,Image,Mat3	images: drawTiled(dest, src: Image; mat: Mat3; blendMode = bmNormal)	
 resize	pixie/images.html#resize,Image,int,int	images: resize(srcImage: Image; width, height: int): Image	
 shift	pixie/images.html#shift,,Vec2	images: shift(target: Image | Mask; offset: Vec2)	
+shadow	pixie/images.html#shadow,Image,Vec2,float32,float32,ColorRGBA	images: shadow(image: Image; offset: Vec2; spread, blur: float32; color: ColorRGBA): Image	
diff --git a/docs/pixie/masks.html b/docs/pixie/masks.html
index 13ef1a4..8a2546f 100644
--- a/docs/pixie/masks.html
+++ b/docs/pixie/masks.html
@@ -56,12 +56,10 @@ function main() {
     }
   }
 }
-
-window.addEventListener('DOMContentLoaded', main);
 </script>
 
 </head>
-<body>
+<body onload="main()">
 <div class="document" id="documentId">
   <div class="container">
     <h1 class="title">pixie/masks</h1>
@@ -199,7 +197,6 @@ window.addEventListener('DOMContentLoaded', main);
 </ul>
 
   </div>
-  
   <div class="nine columns" id="content">
   <div id="tocRoot"></div>
   
@@ -357,7 +354,7 @@ A value of 0 stays 0. Anything else turns into 255.
       <div class="twelve-columns footer">
         <span class="nim-sprite"></span>
         <br/>
-        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 15:26:20 UTC</small>
+        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:08 UTC</small>
       </div>
     </div>
   </div>
diff --git a/docs/pixie/paints.html b/docs/pixie/paints.html
index b5156f2..dca9d0b 100644
--- a/docs/pixie/paints.html
+++ b/docs/pixie/paints.html
@@ -56,12 +56,10 @@ function main() {
     }
   }
 }
-
-window.addEventListener('DOMContentLoaded', main);
 </script>
 
 </head>
-<body>
+<body onload="main()">
 <div class="document" id="documentId">
   <div class="container">
     <h1 class="title">pixie/paints</h1>
@@ -131,12 +129,7 @@ window.addEventListener('DOMContentLoaded', main);
 <li>
   <a class="reference reference-toplevel" href="#12" id="62">Procs</a>
   <ul class="simple simple-toc-section">
-      <ul class="simple nested-toc-section">fillImage
-      <li><a class="reference" href="#fillImage%2CImage%2CImage%2CMat3"
-    title="fillImage(dest: Image; src: Image; mat: Mat3)">fillImage,<wbr>Image,<wbr>Image,<wbr>Mat3</a></li>
-
-  </ul>
-  <ul class="simple nested-toc-section">fillAngularGradient
+      <ul class="simple nested-toc-section">fillAngularGradient
       <li><a class="reference" href="#fillAngularGradient%2CImage%2CVec2%2CVec2%2CVec2%2Cseq%5BColorStop%5D"
     title="fillAngularGradient(image: Image; center, edge, skew: Vec2;
                     stops: seq[ColorStop])">fillAngularGradient,<wbr>Image,<wbr>Vec2,<wbr>Vec2,<wbr>Vec2,<wbr>seq[ColorStop]</a></li>
@@ -151,11 +144,6 @@ window.addEventListener('DOMContentLoaded', main);
       <li><a class="reference" href="#fillRadialGradient%2CImage%2CVec2%2CVec2%2CVec2%2Cseq%5BColorStop%5D"
     title="fillRadialGradient(image: Image; center, edge, skew: Vec2; stops: seq[ColorStop])">fillRadialGradient,<wbr>Image,<wbr>Vec2,<wbr>Vec2,<wbr>Vec2,<wbr>seq[ColorStop]</a></li>
 
-  </ul>
-  <ul class="simple nested-toc-section">fillImageTiled
-      <li><a class="reference" href="#fillImageTiled%2CImage%2CImage%2CMat3"
-    title="fillImageTiled(dest: Image; src: Image; mat: Mat3)">fillImageTiled,<wbr>Image,<wbr>Image,<wbr>Mat3</a></li>
-
   </ul>
 
   </ul>
@@ -164,7 +152,6 @@ window.addEventListener('DOMContentLoaded', main);
 </ul>
 
   </div>
-  
   <div class="nine columns" id="content">
   <div id="tocRoot"></div>
   
@@ -172,7 +159,7 @@ window.addEventListener('DOMContentLoaded', main);
   <div class="section" id="6">
 <h1><a class="toc-backref" href="#6">Imports</a></h1>
 <dl class="item">
-<a class="reference external" href="common.html">common</a>, <a class="reference external" href="images.html">images</a>, <a class="reference external" href="blends.html">blends</a>
+<a class="reference external" href="blends.html">blends</a>, <a class="reference external" href="common.html">common</a>, <a class="reference external" href="images.html">images</a>
 </dl></div>
 <div class="section" id="7">
 <h1><a class="toc-backref" href="#7">Types</a></h1>
@@ -222,22 +209,6 @@ Color stop on a gradient curve.
 <div class="section" id="12">
 <h1><a class="toc-backref" href="#12">Procs</a></h1>
 <dl class="item">
-<a id="fillImage,Image,Image,Mat3"></a>
-<dt><pre><span class="Keyword">proc</span> <a href="#fillImage%2CImage%2CImage%2CMat3"><span class="Identifier">fillImage</span></a><span class="Other">(</span><span class="Identifier">dest</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">src</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">mat</span><span class="Other">:</span> <span class="Identifier">Mat3</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
-    <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">,</span> <span class="Identifier">Exception</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">RootEffect</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
-<dd>
-
-Draws and basic image fill.
-
-</dd>
-<a id="fillImageTiled,Image,Image,Mat3"></a>
-<dt><pre><span class="Keyword">proc</span> <a href="#fillImageTiled%2CImage%2CImage%2CMat3"><span class="Identifier">fillImageTiled</span></a><span class="Other">(</span><span class="Identifier">dest</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">src</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">mat</span><span class="Other">:</span> <span class="Identifier">Mat3</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">]</span><span class="Other">,</span>
-    <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
-<dd>
-
-Draws a tiled image fill.
-
-</dd>
 <a id="fillLinearGradient,Image,Vec2,Vec2,seq[ColorStop]"></a>
 <dt><pre><span class="Keyword">proc</span> <a href="#fillLinearGradient%2CImage%2CVec2%2CVec2%2Cseq%5BColorStop%5D"><span class="Identifier">fillLinearGradient</span></a><span class="Other">(</span><span class="Identifier">image</span><span class="Other">:</span> <a href="images.html#Image"><span class="Identifier">Image</span></a><span class="Other">;</span> <span class="Identifier">at</span><span class="Other">,</span> <span class="Identifier">to</span><span class="Other">:</span> <span class="Identifier">Vec2</span><span class="Other">;</span> <span class="Identifier">stops</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><a href="paints.html#ColorStop"><span class="Identifier">ColorStop</span></a><span class="Other">]</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
     <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
@@ -272,7 +243,7 @@ Angular gradient.
       <div class="twelve-columns footer">
         <span class="nim-sprite"></span>
         <br/>
-        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 15:26:21 UTC</small>
+        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:09 UTC</small>
       </div>
     </div>
   </div>
diff --git a/docs/pixie/paints.idx b/docs/pixie/paints.idx
index cf70437..22c8c6f 100644
--- a/docs/pixie/paints.idx
+++ b/docs/pixie/paints.idx
@@ -7,8 +7,6 @@ pkGradientAngular	pixie/paints.html#pkGradientAngular	PaintKind.pkGradientAngula
 PaintKind	pixie/paints.html#PaintKind	paints: PaintKind	
 Paint	pixie/paints.html#Paint	paints: Paint	
 ColorStop	pixie/paints.html#ColorStop	paints: ColorStop	
-fillImage	pixie/paints.html#fillImage,Image,Image,Mat3	paints: fillImage(dest: Image; src: Image; mat: Mat3)	
-fillImageTiled	pixie/paints.html#fillImageTiled,Image,Image,Mat3	paints: fillImageTiled(dest: Image; src: Image; mat: Mat3)	
 fillLinearGradient	pixie/paints.html#fillLinearGradient,Image,Vec2,Vec2,seq[ColorStop]	paints: fillLinearGradient(image: Image; at, to: Vec2; stops: seq[ColorStop])	
 fillRadialGradient	pixie/paints.html#fillRadialGradient,Image,Vec2,Vec2,Vec2,seq[ColorStop]	paints: fillRadialGradient(image: Image; center, edge, skew: Vec2; stops: seq[ColorStop])	
 fillAngularGradient	pixie/paints.html#fillAngularGradient,Image,Vec2,Vec2,Vec2,seq[ColorStop]	paints: fillAngularGradient(image: Image; center, edge, skew: Vec2;\n                    stops: seq[ColorStop])	
diff --git a/docs/pixie/paths.html b/docs/pixie/paths.html
index 34613d4..b1685f3 100644
--- a/docs/pixie/paths.html
+++ b/docs/pixie/paths.html
@@ -56,12 +56,10 @@ function main() {
     }
   }
 }
-
-window.addEventListener('DOMContentLoaded', main);
 </script>
 
 </head>
-<body>
+<body onload="main()">
 <div class="document" id="documentId">
   <div class="container">
     <h1 class="title">pixie/paths</h1>
@@ -137,11 +135,21 @@ window.addEventListener('DOMContentLoaded', main);
   <li><a class="reference" href="#bezierCurveTo%2CPath%2CVec2%2CVec2%2CVec2"
     title="bezierCurveTo(path: var Path; ctrl1, ctrl2, to: Vec2)">bezierCurveTo,<wbr>Path,<wbr>Vec2,<wbr>Vec2,<wbr>Vec2</a></li>
 
+  </ul>
+  <ul class="simple nested-toc-section">transform
+      <li><a class="reference" href="#transform%2CPath%2CMat3"
+    title="transform(path: var Path; mat: Mat3)">transform,<wbr>Path,<wbr>Mat3</a></li>
+
   </ul>
   <ul class="simple nested-toc-section">addPath
       <li><a class="reference" href="#addPath%2CPath%2CPath"
     title="addPath(path: var Path; other: Path)">addPath,<wbr>Path,<wbr>Path</a></li>
 
+  </ul>
+  <ul class="simple nested-toc-section">$
+      <li><a class="reference" href="#%24%2CPath"
+    title="`$`(path: Path): string">$,<wbr>Path</a></li>
+
   </ul>
   <ul class="simple nested-toc-section">strokePath
       <li><a class="reference" href="#strokePath%2CImage%2CSomePath%2CColorRGBA%2Cfloat"
@@ -214,6 +222,11 @@ window.addEventListener('DOMContentLoaded', main);
   <li><a class="reference" href="#arcTo%2CPath%2Cfloat32%2Cfloat32%2Cfloat32%2Cfloat32%2Cfloat32"
     title="arcTo(path: var Path; x1, y1, x2, y2, radius: float32)">arcTo,<wbr>Path,<wbr>float32,<wbr>float32,<wbr>float32,<wbr>float32,<wbr>float32</a></li>
 
+  </ul>
+  <ul class="simple nested-toc-section">commandsToShapes
+      <li><a class="reference" href="#commandsToShapes%2CPath%2Cfloat32"
+    title="commandsToShapes(path: Path; pixelScale: float32 = 1.0): seq[seq[Vec2]]">commandsToShapes,<wbr>Path,<wbr>float32</a></li>
+
   </ul>
   <ul class="simple nested-toc-section">rect
       <li><a class="reference" href="#rect%2CPath%2Cfloat32%2Cfloat32%2Cfloat32%2Cfloat32"
@@ -269,7 +282,6 @@ window.addEventListener('DOMContentLoaded', main);
 </ul>
 
   </div>
-  
   <div class="nine columns" id="content">
   <div id="tocRoot"></div>
   
@@ -347,11 +359,25 @@ Used to hold paths and create paths.
 <div class="section" id="12">
 <h1><a class="toc-backref" href="#12">Procs</a></h1>
 <dl class="item">
+<a id="$,Path"></a>
+<dt><pre><span class="Keyword">proc</span> <a href="#%24%2CPath"><span class="Identifier">`$`</span></a><span class="Other">(</span><span class="Identifier">path</span><span class="Other">:</span> <a href="paths.html#Path"><span class="Identifier">Path</span></a><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">string</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+<dd>
+
+Turn path int into a string.
+
+</dd>
 <a id="parsePath,string"></a>
 <dt><pre><span class="Keyword">proc</span> <a href="#parsePath%2Cstring"><span class="Identifier">parsePath</span></a><span class="Other">(</span><span class="Identifier">path</span><span class="Other">:</span> <span class="Identifier">string</span><span class="Other">)</span><span class="Other">:</span> <a href="paths.html#Path"><span class="Identifier">Path</span></a> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Converts a SVG style path into seq of commands.
+Converts a SVG style path string into seq of commands.
+
+</dd>
+<a id="transform,Path,Mat3"></a>
+<dt><pre><span class="Keyword">proc</span> <a href="#transform%2CPath%2CMat3"><span class="Identifier">transform</span></a><span class="Other">(</span><span class="Identifier">path</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="paths.html#Path"><span class="Identifier">Path</span></a><span class="Other">;</span> <span class="Identifier">mat</span><span class="Other">:</span> <span class="Identifier">Mat3</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+<dd>
+
+Apply a matrix transform to a path.
 
 </dd>
 <a id="addPath,Path,Path"></a>
@@ -437,11 +463,11 @@ Adds a circular arc to the current sub-path, using the given control points and
 
 </dd>
 <a id="arcTo,Path,float32,float32,float32,float32,float32"></a>
-<dt><pre><span class="Keyword">proc</span> <a href="#arcTo%2CPath%2Cfloat32%2Cfloat32%2Cfloat32%2Cfloat32%2Cfloat32"><span class="Identifier">arcTo</span></a><span class="Other">(</span><span class="Identifier">path</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="paths.html#Path"><span class="Identifier">Path</span></a><span class="Other">;</span> <span class="Identifier">x1</span><span class="Other">,</span> <span class="Identifier">y1</span><span class="Other">,</span> <span class="Identifier">x2</span><span class="Other">,</span> <span class="Identifier">y2</span><span class="Other">,</span> <span class="Identifier">radius</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span>
-    <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+<dt><pre><span class="Keyword">proc</span> <a href="#arcTo%2CPath%2Cfloat32%2Cfloat32%2Cfloat32%2Cfloat32%2Cfloat32"><span class="Identifier">arcTo</span></a><span class="Other">(</span><span class="Identifier">path</span><span class="Other">:</span> <span class="Keyword">var</span> <a href="paths.html#Path"><span class="Identifier">Path</span></a><span class="Other">;</span> <span class="Identifier">x1</span><span class="Other">,</span> <span class="Identifier">y1</span><span class="Other">,</span> <span class="Identifier">x2</span><span class="Other">,</span> <span class="Identifier">y2</span><span class="Other">,</span> <span class="Identifier">radius</span><span class="Other">:</span> <span class="Identifier">float32</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span>
+    <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-
+Adds a circular arc to the current sub-path, using the given control points and radius.
 
 </dd>
 <a id="ellipticalArcTo,Path,float32,float32,float32,bool,bool,float32,float32"></a>
@@ -458,7 +484,7 @@ Adds an elliptical arc to the current sub-path, using the given radius ratios, s
     <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-
+Adds a rectangle. Clockwise param can be used to subtract a rect from a path when using even-odd winding rule.
 
 </dd>
 <a id="rect,Path,Vec2,Vec2"></a>
@@ -466,7 +492,7 @@ Adds an elliptical arc to the current sub-path, using the given radius ratios, s
     <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Adds a rectangle. Clockwise param can be used to subtract a rect from a path using even-odd.
+Adds a rectangle. Clockwise param can be used to subtract a rect from a path when using even-odd winding rule.
 
 </dd>
 <a id="rect,Path,Rect"></a>
@@ -474,7 +500,7 @@ Adds a rectangle. Clockwise param can be used to subtract a rect from a path usi
     <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Adds a rectangle. Clockwise param can be used to subtract a rect from a path using even-odd.
+Adds a rectangle. Clockwise param can be used to subtract a rect from a path when using even-odd winding rule.
 
 </dd>
 <a id="roundedRect,Path,float32,float32,float32,float32,float32,float32,float32,float32"></a>
@@ -482,7 +508,7 @@ Adds a rectangle. Clockwise param can be used to subtract a rect from a path usi
                  <span class="Identifier">clockwise</span> <span class="Other">=</span> <span class="Identifier">true</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Adds a rounded rectangle. Clockwise param can be used to subtract a rect from a path using even-odd.
+Adds a rounded rectangle. Clockwise param can be used to subtract a rect from a path when using even-odd winding rule.
 
 </dd>
 <a id="roundedRect,Path,Vec2,Vec2,float32,float32,float32,float32"></a>
@@ -490,7 +516,7 @@ Adds a rounded rectangle. Clockwise param can be used to subtract a rect from a
                  <span class="Identifier">clockwise</span> <span class="Other">=</span> <span class="Identifier">true</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Adds a rounded rectangle. Clockwise param can be used to subtract a rect from a path using even-odd.
+Adds a rounded rectangle. Clockwise param can be used to subtract a rect from a path when using even-odd winding rule.
 
 </dd>
 <a id="roundedRect,Path,Rect,float32,float32,float32,float32"></a>
@@ -498,7 +524,7 @@ Adds a rounded rectangle. Clockwise param can be used to subtract a rect from a
                  <span class="Identifier">clockwise</span> <span class="Other">=</span> <span class="Identifier">true</span><span class="Other">)</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma"><span class="Identifier">inline</span><span class="Other">,</span> <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Adds a rounded rectangle. Clockwise param can be used to subtract a rect from a path using even-odd.
+Adds a rounded rectangle. Clockwise param can be used to subtract a rect from a path when using even-odd winding rule.
 
 </dd>
 <a id="ellipse,Path,float32,float32,float32,float32"></a>
@@ -521,7 +547,7 @@ Adds a ellipse.
     <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Draws a n-sided regular polygon at (x, y) with a size.
+Draws an n-sided regular polygon at (x, y) with the parameter size.
 
 </dd>
 <a id="polygon,Path,Vec2,float32,int"></a>
@@ -529,7 +555,15 @@ Draws a n-sided regular polygon at (x, y) with a size.
     <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
 <dd>
 
-Draws a n-sided regular polygon at (x, y) with a size.
+Draws a n-sided regular polygon at (x, y) with the parameter size.
+
+</dd>
+<a id="commandsToShapes,Path,float32"></a>
+<dt><pre><span class="Keyword">proc</span> <a href="#commandsToShapes%2CPath%2Cfloat32"><span class="Identifier">commandsToShapes</span></a><span class="Other">(</span><span class="Identifier">path</span><span class="Other">:</span> <a href="paths.html#Path"><span class="Identifier">Path</span></a><span class="Other">;</span> <span class="Identifier">pixelScale</span><span class="Other">:</span> <span class="Identifier">float32</span> <span class="Other">=</span> <span class="FloatNumber">1.0</span><span class="Other">)</span><span class="Other">:</span> <span class="Identifier">seq</span><span class="Other">[</span><span class="Identifier">seq</span><span class="Other">[</span><span class="Identifier">Vec2</span><span class="Other">]</span><span class="Other">]</span> <span><span class="Other">{</span><span class="Other pragmadots">...</span><span class="Other">}</span></span><span class="pragmawrap"><span class="Other">{.</span><span class="pragma">
+    <span class="Identifier">raises</span><span class="Other">:</span> <span class="Other">[</span><span class="Identifier">PixieError</span><span class="Other">]</span><span class="Other">,</span> <span class="Identifier">tags</span><span class="Other">:</span> <span class="Other">[</span><span class="Other">]</span></span><span class="Other">.}</span></span></pre></dt>
+<dd>
+
+Converts SVG-like commands to line segments.
 
 </dd>
 <a id="fillPath,Image,SomePath,ColorRGBA"></a>
@@ -628,7 +662,7 @@ Return elements in pairs: (1st, 2nd), (2nd, 3rd) ... (n - 1, last).
       <div class="twelve-columns footer">
         <span class="nim-sprite"></span>
         <br/>
-        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 15:26:22 UTC</small>
+        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:09 UTC</small>
       </div>
     </div>
   </div>
diff --git a/docs/pixie/paths.idx b/docs/pixie/paths.idx
index d06e2e9..355372a 100644
--- a/docs/pixie/paths.idx
+++ b/docs/pixie/paths.idx
@@ -32,7 +32,9 @@ PathCommandKind	pixie/paths.html#PathCommandKind	paths: PathCommandKind
 PathCommand	pixie/paths.html#PathCommand	paths: PathCommand	
 Path	pixie/paths.html#Path	paths: Path	
 SomePath	pixie/paths.html#SomePath	paths: SomePath	
+`$`	pixie/paths.html#$,Path	paths: `$`(path: Path): string	
 parsePath	pixie/paths.html#parsePath,string	paths: parsePath(path: string): Path	
+transform	pixie/paths.html#transform,Path,Mat3	paths: transform(path: var Path; mat: Mat3)	
 addPath	pixie/paths.html#addPath,Path,Path	paths: addPath(path: var Path; other: Path)	
 closePath	pixie/paths.html#closePath,Path	paths: closePath(path: var Path)	
 moveTo	pixie/paths.html#moveTo,Path,float32,float32	paths: moveTo(path: var Path; x, y: float32)	
@@ -56,6 +58,7 @@ ellipse	pixie/paths.html#ellipse,Path,float32,float32,float32,float32	paths: ell
 ellipse	pixie/paths.html#ellipse,Path,Vec2,float32,float32	paths: ellipse(path: var Path; center: Vec2; rx, ry: float32)	
 polygon	pixie/paths.html#polygon,Path,float32,float32,float32,int	paths: polygon(path: var Path; x, y, size: float32; sides: int)	
 polygon	pixie/paths.html#polygon,Path,Vec2,float32,int	paths: polygon(path: var Path; pos: Vec2; size: float32; sides: int)	
+commandsToShapes	pixie/paths.html#commandsToShapes,Path,float32	paths: commandsToShapes(path: Path; pixelScale: float32 = 1.0): seq[seq[Vec2]]	
 segments	pixie/paths.html#segments.i,seq[Vec2]	paths: segments(s: seq[Vec2]): Segment	
 fillPath	pixie/paths.html#fillPath,Image,SomePath,ColorRGBA	paths: fillPath(image: Image; path: SomePath; color: ColorRGBA;\n         windingRule = wrNonZero; blendMode = bmNormal)	
 fillPath	pixie/paths.html#fillPath,Image,SomePath,ColorRGBA,	paths: fillPath(image: Image; path: SomePath; color: ColorRGBA; transform: Vec2 | Mat3;\n         windingRule = wrNonZero; blendMode = bmNormal)	
diff --git a/docs/theindex.html b/docs/theindex.html
index 94898ad..2bfc9bf 100644
--- a/docs/theindex.html
+++ b/docs/theindex.html
@@ -56,12 +56,10 @@ function main() {
     }
   }
 }
-
-window.addEventListener('DOMContentLoaded', main);
 </script>
 
 </head>
-<body>
+<body onload="main()">
 <div class="document" id="documentId">
   <div class="container">
     <h1 class="title">Index</h1>
@@ -71,6 +69,8 @@ window.addEventListener('DOMContentLoaded', main);
           data-doc-search-tag="images: `$`(image: Image): string" href="pixie/images.html#%24%2CImage">images: `$`(image: Image): string</a></li>
           <li><a class="reference external"
           data-doc-search-tag="masks: `$`(mask: Mask): string" href="pixie/masks.html#%24%2CMask">masks: `$`(mask: Mask): string</a></li>
+          <li><a class="reference external"
+          data-doc-search-tag="paths: `$`(path: Path): string" href="pixie/paths.html#%24%2CPath">paths: `$`(path: Path): string</a></li>
           </ul></dd>
 <dt><a name="%60%5B%5D%3D%60" href="#%60%5B%5D%3D%60"><span>`[]=`:</span></a></dt><dd><ul class="simple">
 <li><a class="reference external"
@@ -240,6 +240,10 @@ window.addEventListener('DOMContentLoaded', main);
 <li><a class="reference external"
           data-doc-search-tag="paints: ColorStop" href="pixie/paints.html#ColorStop">paints: ColorStop</a></li>
           </ul></dd>
+<dt><a name="commandsToShapes" href="#commandsToShapes"><span>commandsToShapes:</span></a></dt><dd><ul class="simple">
+<li><a class="reference external"
+          data-doc-search-tag="paths: commandsToShapes(path: Path; pixelScale: float32 = 1.0): seq[seq[Vec2]]" href="pixie/paths.html#commandsToShapes%2CPath%2Cfloat32">paths: commandsToShapes(path: Path; pixelScale: float32 = 1.0): seq[seq[Vec2]]</a></li>
+          </ul></dd>
 <dt><a name="copy" href="#copy"><span>copy:</span></a></dt><dd><ul class="simple">
 <li><a class="reference external"
           data-doc-search-tag="images: copy(image: Image): Image" href="pixie/images.html#copy%2CImage">images: copy(image: Image): Image</a></li>
@@ -300,6 +304,10 @@ window.addEventListener('DOMContentLoaded', main);
           <li><a class="reference external"
           data-doc-search-tag="images: draw(a, b: Mask; mat: Mat3; blendMode = bmMask)" href="pixie/images.html#draw%2CMask%2CMask%2CMat3">images: draw(a, b: Mask; mat: Mat3; blendMode = bmMask)</a></li>
           </ul></dd>
+<dt><a name="drawTiled" href="#drawTiled"><span>drawTiled:</span></a></dt><dd><ul class="simple">
+<li><a class="reference external"
+          data-doc-search-tag="images: drawTiled(dest, src: Image; mat: Mat3; blendMode = bmNormal)" href="pixie/images.html#drawTiled%2CImage%2CImage%2CMat3">images: drawTiled(dest, src: Image; mat: Mat3; blendMode = bmNormal)</a></li>
+          </ul></dd>
 <dt><a name="ellipse" href="#ellipse"><span>ellipse:</span></a></dt><dd><ul class="simple">
 <li><a class="reference external"
           data-doc-search-tag="paths: ellipse(path: var Path; cx, cy, rx, ry: float32)" href="pixie/paths.html#ellipse%2CPath%2Cfloat32%2Cfloat32%2Cfloat32%2Cfloat32">paths: ellipse(path: var Path; cx, cy, rx, ry: float32)</a></li>
@@ -374,14 +382,6 @@ window.addEventListener('DOMContentLoaded', main);
           <li><a class="reference external"
           data-doc-search-tag="pixie: fillEllipse(mask: Mask; center: Vec2; rx, ry: float32)" href="pixie.html#fillEllipse%2CMask%2CVec2%2Cfloat32%2Cfloat32">pixie: fillEllipse(mask: Mask; center: Vec2; rx, ry: float32)</a></li>
           </ul></dd>
-<dt><a name="fillImage" href="#fillImage"><span>fillImage:</span></a></dt><dd><ul class="simple">
-<li><a class="reference external"
-          data-doc-search-tag="paints: fillImage(dest: Image; src: Image; mat: Mat3)" href="pixie/paints.html#fillImage%2CImage%2CImage%2CMat3">paints: fillImage(dest: Image; src: Image; mat: Mat3)</a></li>
-          </ul></dd>
-<dt><a name="fillImageTiled" href="#fillImageTiled"><span>fillImageTiled:</span></a></dt><dd><ul class="simple">
-<li><a class="reference external"
-          data-doc-search-tag="paints: fillImageTiled(dest: Image; src: Image; mat: Mat3)" href="pixie/paints.html#fillImageTiled%2CImage%2CImage%2CMat3">paints: fillImageTiled(dest: Image; src: Image; mat: Mat3)</a></li>
-          </ul></dd>
 <dt><a name="fillLinearGradient" href="#fillLinearGradient"><span>fillLinearGradient:</span></a></dt><dd><ul class="simple">
 <li><a class="reference external"
           data-doc-search-tag="paints: fillLinearGradient(image: Image; at, to: Vec2; stops: seq[ColorStop])" href="pixie/paints.html#fillLinearGradient%2CImage%2CVec2%2CVec2%2Cseq%5BColorStop%5D">paints: fillLinearGradient(image: Image; at, to: Vec2; stops: seq[ColorStop])</a></li>
@@ -452,11 +452,7 @@ window.addEventListener('DOMContentLoaded', main);
           </ul></dd>
 <dt><a name="getRgbaSmooth" href="#getRgbaSmooth"><span>getRgbaSmooth:</span></a></dt><dd><ul class="simple">
 <li><a class="reference external"
-          data-doc-search-tag="images: getRgbaSmooth(image: Image; x, y: float32): ColorRGBA" href="pixie/images.html#getRgbaSmooth%2CImage%2Cfloat32%2Cfloat32">images: getRgbaSmooth(image: Image; x, y: float32): ColorRGBA</a></li>
-          </ul></dd>
-<dt><a name="getRgbaSmoothWrapped" href="#getRgbaSmoothWrapped"><span>getRgbaSmoothWrapped:</span></a></dt><dd><ul class="simple">
-<li><a class="reference external"
-          data-doc-search-tag="images: getRgbaSmoothWrapped(image: Image; x, y: float32): ColorRGBA" href="pixie/images.html#getRgbaSmoothWrapped%2CImage%2Cfloat32%2Cfloat32">images: getRgbaSmoothWrapped(image: Image; x, y: float32): ColorRGBA</a></li>
+          data-doc-search-tag="images: getRgbaSmooth(image: Image; x, y: float32; wrapped = false): ColorRGBA" href="pixie/images.html#getRgbaSmooth%2CImage%2Cfloat32%2Cfloat32">images: getRgbaSmooth(image: Image; x, y: float32; wrapped = false): ColorRGBA</a></li>
           </ul></dd>
 <dt><a name="getRgbaUnsafe" href="#getRgbaUnsafe"><span>getRgbaUnsafe:</span></a></dt><dd><ul class="simple">
 <li><a class="reference external"
@@ -758,6 +754,10 @@ window.addEventListener('DOMContentLoaded', main);
 <li><a class="reference external"
           data-doc-search-tag="masks: setValueUnsafe(mask: Mask; x, y: int; value: uint8)" href="pixie/masks.html#setValueUnsafe%2CMask%2Cint%2Cint%2Cuint8">masks: setValueUnsafe(mask: Mask; x, y: int; value: uint8)</a></li>
           </ul></dd>
+<dt><a name="shadow" href="#shadow"><span>shadow:</span></a></dt><dd><ul class="simple">
+<li><a class="reference external"
+          data-doc-search-tag="images: shadow(image: Image; offset: Vec2; spread, blur: float32; color: ColorRGBA): Image" href="pixie/images.html#shadow%2CImage%2CVec2%2Cfloat32%2Cfloat32%2CColorRGBA">images: shadow(image: Image; offset: Vec2; spread, blur: float32; color: ColorRGBA): Image</a></li>
+          </ul></dd>
 <dt><a name="shift" href="#shift"><span>shift:</span></a></dt><dd><ul class="simple">
 <li><a class="reference external"
           data-doc-search-tag="images: shift(target: Image | Mask; offset: Vec2)" href="pixie/images.html#shift%2C%2CVec2">images: shift(target: Image | Mask; offset: Vec2)</a></li>
@@ -871,11 +871,17 @@ window.addEventListener('DOMContentLoaded', main);
           data-doc-search-tag="common: toStraightAlpha(c: Color): Color" href="pixie/common.html#toStraightAlpha%2CColor">common: toStraightAlpha(c: Color): Color</a></li>
           <li><a class="reference external"
           data-doc-search-tag="common: toStraightAlpha(c: ColorRGBA): ColorRGBA" href="pixie/common.html#toStraightAlpha%2CColorRGBA">common: toStraightAlpha(c: ColorRGBA): ColorRGBA</a></li>
+          <li><a class="reference external"
+          data-doc-search-tag="images: toStraightAlpha(image: Image)" href="pixie/images.html#toStraightAlpha%2CImage">images: toStraightAlpha(image: Image)</a></li>
           </ul></dd>
 <dt><a name="TQuad" href="#TQuad"><span>TQuad:</span></a></dt><dd><ul class="simple">
 <li><a class="reference external"
           data-doc-search-tag="PathCommandKind.TQuad" href="pixie/paths.html#TQuad">PathCommandKind.TQuad</a></li>
           </ul></dd>
+<dt><a name="transform" href="#transform"><span>transform:</span></a></dt><dd><ul class="simple">
+<li><a class="reference external"
+          data-doc-search-tag="paths: transform(path: var Path; mat: Mat3)" href="pixie/paths.html#transform%2CPath%2CMat3">paths: transform(path: var Path; mat: Mat3)</a></li>
+          </ul></dd>
 <dt><a name="unpackAlphaValues" href="#unpackAlphaValues"><span>unpackAlphaValues:</span></a></dt><dd><ul class="simple">
 <li><a class="reference external"
           data-doc-search-tag="blends: unpackAlphaValues(v: M128i): M128i" href="pixie/blends.html#unpackAlphaValues%2CM128i">blends: unpackAlphaValues(v: M128i): M128i</a></li>
@@ -917,7 +923,7 @@ window.addEventListener('DOMContentLoaded', main);
       <div class="twelve-columns footer">
         <span class="nim-sprite"></span>
         <br/>
-        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 15:26:22 UTC</small>
+        <small style="color: var(--hint);">Made with Nim. Generated: 2021-02-25 17:48:09 UTC</small>
       </div>
     </div>
   </div>

From 29479a7c6afe38fa882a164c0c85b4072b7a30a6 Mon Sep 17 00:00:00 2001
From: Ryan Oldenburg <guzba8@gmail.com>
Date: Thu, 25 Feb 2021 12:05:46 -0600
Subject: [PATCH 4/4] nimpretty bandaid

---
 README.md                |  30 ++++++++++++++++--------------
 examples/gradient.nim    |  31 ++++++++++++++++---------------
 examples/heart.nim       |   4 +---
 examples/image_tiled.nim |   4 +---
 examples/image_tiled.png | Bin 40653 -> 40628 bytes
 5 files changed, 34 insertions(+), 35 deletions(-)

diff --git a/README.md b/README.md
index 1379491..0fd8c29 100644
--- a/README.md
+++ b/README.md
@@ -168,6 +168,19 @@ image.draw(lines)
 ### Gradient
 [examples/gradient.nim](examples/gradient.nim)
 ```nim
+let paint = Paint(
+  kind: pkGradientRadial,
+  gradientHandlePositions: @[
+    vec2(100, 100),
+    vec2(200, 100),
+    vec2(100, 200)
+  ],
+  gradientStops: @[
+    ColorStop(color: rgba(255, 0, 0, 255).color, position: 0),
+    ColorStop(color: rgba(255, 0, 0, 40).color, position: 1.0),
+  ]
+)
+
 image.fillPath(
   """
     M 20 60
@@ -177,18 +190,7 @@ image.fillPath(
     Q 20 120 20 60
     z
   """,
-  Paint(
-    kind:pkGradientRadial,
-    gradientHandlePositions: @[
-      vec2(100, 100),
-      vec2(200, 100),
-      vec2(100, 200)
-    ],
-    gradientStops: @[
-      ColorStop(color:rgba(255, 0, 0, 255).color, position: 0),
-      ColorStop(color:rgba(255, 0, 0, 40).color, position: 1.0),
-    ]
-  )
+  paint
 )
 ```
 ![example output](examples/gradient.png)
@@ -205,9 +207,9 @@ path.polygon(
 image.fillPath(
   path,
   Paint(
-    kind:pkImageTiled,
+    kind: pkImageTiled,
     image: readImage("tests/images/png/baboon.png"),
-    imageMat:scale(vec2(0.08, 0.08))
+    imageMat: scale(vec2(0.08, 0.08))
   )
 )
 ```
diff --git a/examples/gradient.nim b/examples/gradient.nim
index 3c0fc0c..9a93ef2 100644
--- a/examples/gradient.nim
+++ b/examples/gradient.nim
@@ -1,9 +1,21 @@
 import pixie
 
-let
-  image = newImage(200, 200)
-
+let image = newImage(200, 200)
 image.fill(rgba(255, 255, 255, 255))
+
+let paint = Paint(
+  kind: pkGradientRadial,
+  gradientHandlePositions: @[
+    vec2(100, 100),
+    vec2(200, 100),
+    vec2(100, 200)
+  ],
+  gradientStops: @[
+    ColorStop(color: rgba(255, 0, 0, 255).color, position: 0),
+    ColorStop(color: rgba(255, 0, 0, 40).color, position: 1.0),
+  ]
+)
+
 image.fillPath(
   """
     M 20 60
@@ -13,18 +25,7 @@ image.fillPath(
     Q 20 120 20 60
     z
   """,
-  Paint(
-    kind: pkGradientRadial,
-    gradientHandlePositions: @[
-      vec2(100, 100),
-      vec2(200, 100),
-      vec2(100, 200)
-  ],
-  gradientStops: @[
-    ColorStop(color: rgba(255, 0, 0, 255).color, position: 0),
-    ColorStop(color: rgba(255, 0, 0, 40).color, position: 1.0),
-  ]
-)
+  paint
 )
 
 image.writeFile("examples/paint.png")
diff --git a/examples/heart.nim b/examples/heart.nim
index 690e364..ebff8d8 100644
--- a/examples/heart.nim
+++ b/examples/heart.nim
@@ -1,8 +1,6 @@
 import pixie
 
-let
-  image = newImage(200, 200)
-
+let image = newImage(200, 200)
 image.fill(rgba(255, 255, 255, 255))
 
 image.fillPath(
diff --git a/examples/image_tiled.nim b/examples/image_tiled.nim
index cac5af5..c7e8ade 100644
--- a/examples/image_tiled.nim
+++ b/examples/image_tiled.nim
@@ -1,8 +1,6 @@
 import pixie
 
-let
-  image = newImage(200, 200)
-
+let image = newImage(200, 200)
 image.fill(rgba(255, 255, 255, 255))
 
 var path: Path
diff --git a/examples/image_tiled.png b/examples/image_tiled.png
index 75363de154fa115b12a250cc5d8bf93fbd10cbca..a892e15b72b7170f11b8006c5d0ac18e8cc7ade0 100644
GIT binary patch
literal 40628
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
S*6aW9n>tiSrB=x*;(q|0ZDeTx

literal 40653
zcmd3t<y%x=*zbRI*HA;lFu>3ZB_PcZgMbVr-Ccr|QVNp8&|LyUcZVR|A<~T~AuWv{
z0*B{3=Z`oq_S!GjwXg5B;@az8-}`e%Yip^J5YiL=_uqdca5b3D(|hE99(>%Vw%V}f
z(|`YcN`b=^^xk3|=h{`dI#5UC9SaK#AGgn^wov)``K4oH68y!&e1H1m_wV2C{G?Z_
zhyMR^&X#LzPfSF$b6PyUk7{rhehX||<Z`Kg?Z&M+duhk8G8OTFE;>SpHx-cFE4u+l
zBE-GfSA-Hs-1bzOtXQA=V;%eDpL!XlBSKsqm7bwVu$HGH++hs34Fx3YQR2k5N(}83
z|KEMMMx26;f!BSn|L<im@!_jT1rcr43j8E*k^H;Ig@}-~Fl0KdNB5~R?#Z3RU$So1
z*FXI)AEeLp(?$M$U&K#)HC19y9y6GoaQ<k*fcu7WFUzHN%Ovj>@XN$P!SjTA<o;a>
zctGA-dsV9<zJNauCR?w5p874>{0{?6S0&?nAm!A<dzXIshZpB&F+q#wUt7B_D78r2
z8FMY<ec6W;8P?6^HDprqBgu_2I+ZW$@XGO`BkR1QZUQVU9|dcyx(y1TD=^*pN5Ji4
zt2pttT-AIr*1vP!*H$Nj-9!G*Sn&Y~)I%kubOx1REF$jI=|CbjxMQWRqvr=^KDKa~
z0U;1yT!TPH;8(_-B3jQuvAffN!@YKea?@XO|0o}7o2^(MF_a62&wF2=$DDNM<^}!P
zs^Vvo=Zz~o<b+Bo4J*v*5$<44&VegKL-bc+wV!cT`6!DB>J9p5d6xV?Qht@JS^Gk1
zx9ZDDFUAQo+`qg%U+n4)tc-+2&$&<+#VX%-n=#;?zn-(4+B~T29`un5z>B$i-!s(!
zF9ISG2nq>9xbn+DYWe95hSeNn#f1L#irum*tuy&@t>Fs`xm9kfUk{dO(o{?KUruOe
zX5<@H0>~n(mIZ29XRpm%1ud<9vU1VZ4Aa->2#o_(&Ngl;AG-f%ROlq|&x+1~+xgeQ
zeXnc&lE(1HK&-O0^stn;JOKYjIHHE}16+WqQuc5qZ6vHbbe2U&El7R%rO>-eV<cAk
zLB5iaPWc22+SO6-nAxedzk+PM+D9sFd~`>Q$Hs<gE=)&~BbJHg<v*mw!)EqT$8UNV
z+`-!wpg{gGXmRt%@3aN}^q7PDky-A`k!s*xGRrP)_xBjfs2c?&qX{c_+lpwMAUnnE
z!BShCvPLNPpJ`rd(L${PZJ2@BTEUAM3k9YY$fcIfQEkY&Qk0CTk-d*k2!~NWx7gnG
zT~s*8c|G4Wfnr@h$%AQ8O3N=O^`{Ve-h5}V`vFJpe%UT8dSY(`KdYoy?vL){|6S#L
zQpUE3m+z0T0(T-eHpeXP30L3j2@2|bmySHaQ9~kYW36s^tm$n!gbT>GBn5)We@c?3
zB30_k*Z}NA0RQqRQ@%uJVXYv>*WNh>M-*{iH(fYKZy@zXAOIl6IlSC$78OesU5y3I
zQmyTb+PT4wT4Kh=c>58*8ahVZeZ#Tw@bE|S%@1-LFOfNQyBoas7mtlk8~P-{jqLWj
zUw2Q(_j~oO^Hjlxx;7Z7h&Vtgr#C^!1L49xKp_!4(US^?rCPPd97eR&gzt9T)F>U{
zNCd^GPmfwq#?Zr$5~DB?1?qa`TWlcIWJ1~t{1T+004t5yC8i!PxB3??M&i1FS9KEI
z8t;WHgUglt+&<94B(&61kVWX8{AUA9#1g?r_;)5|HS66hAz}8N(V+47!?oSY$oJ_*
z>77S*f_HvFOOIJJ1`9WnFM~&RyRPVH7Sg#Fd0kg!zD}UjtLdhJ&m`PhqiOw|%r0!C
zh!$rd0#-bD(Ri;E+fnIF)8kU=pXF^1wa^Em7X@Qo27P`0*@N!sA1mEzB;SM`{z|{O
zie^7L_WNAYI-&6L*IT~R>|1KmDj&&)g`ZisG>f118eiAPxaGXaKb9~5s>76L<?a4_
z)=R{7RqX3TlX^47G*D!@S(i&KpsD5-N)#Ea)Zruf>iAwd_Zn0@11Z+QdRTn;@;>=#
z%D+)5Lth=q_3U;(+H_r1TGapP(Z}xBR}@sxaP#KpfZM<juoUc^pa01bIOUpJ`M>&D
zPmqkC`0Fi+AdL_qH91H7F-D^4Ab}_v79oW0Sm{4lHk65k&=ANFwQdZPxne#8aVQID
zYO}ol6^|DjX2eh^F05R<Ca)uEYgV#o0%}-+nWLgU)^H3sp}_Dc#ZVU#uc664p4pBp
zR9rT;Cn~+==B&1BDDf663awZu9s*W>zW{pNcsh+3n!Y<-EY}7mE_VIA3cOpj_;H$8
z>BzDX+1!F$cTr-bcpId+fnH%8giveSCG3D+#JJpUr6S|X=;yNaSD3P`%aL|?ITCFe
zd#X)~5ldJ^7$H4>&RiLk=j)^n9i2ZWF6V0emP!|@qsv|Hzd2%_gZvn&?S2t(hVNVe
zdw&IXQ6-%<U;FlVj7@6zkBF&B|Gp1v^qGjtw-Rw-BtmFf4?{uJ(Ab#*hi2!TduT{4
z)?gK_Q{LFtFwxp|Cf4<*uy%^!uLepJAw=}7Y2vZ<;e=$Hw!01G_hr}Z%bi*6u+#&|
z*aIeSC-C(YSF{Y~B3rDy2;m%O>GV~Ge<!|GC`-xZkpMg?zgQrvfHhib#~8yX$-~T1
zaP`s{`kQsY+-1ve<?>g&NQPYW;^EKQYKo<xsw?HS2cF!)LTumk=B-x^!8gVR*N>R3
zjYvoZe!q|XcA=<|Lw!0q>D_>2;R`^BJ5BjZEp!E2vp)eEdpMp>B4|cb0nRuPiURL<
zKmFkx`HgH*_i2OFa-BKf-v2H<S`QE#RE*xw{QT%bblWYO&|CM7w)=tZ`@fZRFOLVQ
z;OmRZw?Eu$?RQ8`2$|-pcc+`FRGw*45DBNAd8+U5ByWl7X@ZCqtpjbR3mX}g4w42i
zvYfPQGqJlO(Wwb~$zZDest5^R^$fM5_K?E}*F0X2;d4xV?jnRhBhLbU4)gtv9rm(n
zWeNd%B(kjTzRHYIZhEtzm6|Ty{|Mqk-eMZI<0NW749CtqxWO*g$viuw&tjvzV}r_8
zFisi8sZrw1;OjptTO@p2^AVkzD4Hxm?pTZ4rllUHfj(fA^2oSlmqTB5`dNRb__}{w
zmPPvL@az1&9qXc*7tTrWH<z~;s}^HB=|S1`>WRty%nRo{F1};O&jbO499^D4(aZcI
zsMpJJyBvBh?7$L@YG?8xB_s}pGVQ)M+a(@Y9kpkqmPCjSb2s3oBC%cmpr<M*N*<$(
ztz^GT7vP~pWQ2U%a|88_Q^`4{Hw|!1{VbDRZ$P7lO@_m=L0|XIIq6m*^5;3dncU8G
zcDlz5;YQnn?f9gm%CDB60R*YWl<NuQ3*P7@v>}zYceKHCPQnPVdf2v66k3IckV@T$
zSXWh_SdF;J8mmBCUR2CCw>h$4RrQtbZ$uZs>L=cpKe`(~hhH&T`nyM{bl$$V;e5Qn
z-Fzn?*YyuC@MiX8SLq}WYkcuO$-mdOL{{+?FNhG7dPZlgbo20lix+x4@q0<7&|r7(
zK?#BkLn~Gr4+&B8=;y*jr%66a)J5A6Y&0W6G0-*IQ+n70RAy{-ir7%jDC`NvTs83o
zBF+j%j~iIJMRkVhe7WZidf>Xz*D`H<phl^eVTO-7(<yG+K+_gpA}uxOZ1Lj`FN=||
zwej5_--=>k)juq-S$$iM;^{KW48nP&3Lh0zBUi#B%9>)M9?{2^B%nLzqr;{=Zx{Gn
zg<LVzu#ayp$_{H(RJ-_t(y)|iz3~sEZ)_!v!jw(0|IWAD@9A=}jCdNazen)#{u4AA
zf2<1OtL48)JqZer5BfW6+FduGzi1J;XzpN~zAP&|W@r^Qx#znOU^Yabe3Y>|@H=-^
z^7W#7PH=qTxSO}8{4;Mov;G81)Ef*yUa0xN86URMhmrnh%D>gjx*}qL0{PG8AZpPs
zLTCg2nZs2zbR3Y&P)i;Zg?dF)wl(XxB{Jc@qUGrtQOLC$eP=dA6_Q(6h@u{HjCCzu
zKY>Dp2PZ#k9<9{pdinkCJ7|*ZT2Nh-pA~Cj0AA^Yh@L@!%B~Lh0Q~xRra|IWtP+Pq
z7*(0LdJ#H~GHlLeFb6?J5+*UpM6|3XVJ--Y*DQEBA>8^7@9zj$H9oIM?tO}l+&vA~
z`zsktK}Ck#B0b2zmn)->DIs8ZUu{iS=(EnN*uZmLi_JZ2vS<81hdBIQUK}koQLi6(
z{JP}Sz-0uM7#buduFBy0{Kmvxp$dqfXcX%HU@pK)iB`wN2krP1D9{M$(JfE0!V@_#
zT=q62p}$w?i*+clDdfmMkQ?dM{{vQAZc1U)kQ8w*Oxf(;2&?Pie%1mnc!H99SA?HG
zb5mw+k_fP;j1aPYWF7RaM6Lav9%<Yand1EXdy0UDHeHAZrwA;cs;q-R>j<)qf!aZZ
zd-P68tS>MZdIrgC{w+uiT4N|sovl&L;2SN}eF4skdQ|`SjhZ|u<!6uG*^RKV4$fy4
z$bzTh$De<NJDvphYCMMq!1t7|&eC3+O}?(N$d_!5oo)zW#s61pIR1zV`FD=AI6ZjQ
zl_eN-G0rHprm}kf-<Y32Rbhu<{%5D>W22Rl)wblHmcH2rg(12J>sirlw}Aqk+n^cI
zVqSdg9qvtcvhLQ11piy(0(0JiG60f_l^X<SEOa8M{+%#&7KNWc84orn*CUy89aBO<
zAmGFgdt70%O$}J{4f`bROKB0FLm#;}_NP%tQt{K8t3OT!B|D9K<ht^fRX+MpZPo4S
ztOi5V*AAp-u-ilB4YN28nh5;)v3r%0tly|8!)UN<^+C~!-b@S6u|SJlfWYk~t~h;X
zF-oJ<#Hd7$RLFna|82Z*G-3Ykp;o&wSWi6R#jJHpO2%cwn7yjr@c3r3D!o4b#Kxsi
zg}-U(H3>W`KwH(J?VlP0f+mBH;gM4OT+WJhdE~66wKFG3HI6)r#MwbM>fn~viuhM%
z^`4$y$h1rMWM*{ak$~qX^C3n7-SW8JK{8cQO+a%f7mZr3z|bBaw=i-q>E?dz1;-en
za|`n{cAtduqFoNFq99m83)S)4W>45UD<O;xz^y=)#3}sg*oFiXv-F#Khbly@Jnvq6
zY&R!nS#H!+zZArQGQaSd<b-*oOKw1{h+lEPQl$_KhM*Cw(-m#j7;DT!H=Ie>dZS!t
zfAPz+MeHN0oG}$JO9ZU$C@Ls+CvpA0_KVtviE<LK+p-OkDa}aO5CgA+0xO4&{p2C>
zGZH5hDc>YWyxQc43^{EtvufX@C4A`a3s)hScScl+B?|Z({&E;f=RG<OTeB~@k%K1v
zdkGv7d-aI2FuiwC{2bA+!>sXp4XFnaLDXswIKaX`A9jt?Sa1H8)-N1&48$x##GQ2U
z4!)ttOlh&BOtGf`;}pCHLaDh^UZ|-=E7pgZ^K1nOs1)=~X(j9=SpJw{A%)|b^=X4r
zu_w@QMuMWGxLpGLfhLonlui5sJ*8Do3(giTHrh&!xr&rir!fMP>)>ojz~%$Mr?A&?
zQetRy-LF(zfVBi_wmL~iVHftD4U8zz=J|yx)}gC5?DJcf4&7*_gpG35N&9zV?ANK1
z!&zTsD1YpsCD*4MW+O72alS&lD8$yGw)uudm&c^Q{|s20!cBxh!fk!nykV`S78Ow`
z8Y^XUMnFECv5^d=p-4(d?fU9iJpfba8jJ@$QsSQ9=LN<N#%Wrrj(l}P9WQ;PlE`Qe
z)lyT6b2NWs&-&<tTIv(!-MgkoOZFF3r)zUFECp+n&7T%x&ohAHTsfTc^7Z&Evv`nY
z){Yb<HE06v#M!<^#w5KV&%1&C3|BpF8a)_Xg-S=G5SBCWHc{QqoBr7}!O?$qu3THI
zzU&bK%4Q0hO7!S&dslKLvaU8m;w1=`)&+_fFG-u`A{#qhv1%>yh`lbHuhrmV8>$%P
ziBKenXHOkAt&PBm%JB&tXV+9_e6429;g|*M)uT|RQwT#Ffl%zBuu^H^@azNZw0J2`
z`YjVbP#Cka<|N%=dH+%u3&Q7biZ$LWAKJuiV1|?Qbw`*n+-6UyXwk_8gH|i^$-vO9
zTsPX`wRjZu%$SPdoNhG>LkQ?5f~XY06tFo7%fsG0Yf^(LwFG5Ks3XMzrRn=$_vINN
zQe)X_q$1hpxt?fiM<y7Rt_r;mmA(ok$ADhXRiHd8XYZBLTF;Q#AGOUWa1_D61R-)y
zzHG&EbyVoCN|*vnFjHy67b9FJI*B}A{Y{Ip0+CD$(?9ON9wbWS+QRWVOPo_&%TH2}
zY>>N_U}6}C&Lr@A&j`1QvPv>o4O?39KNuQ3bj7~b(`)7jPtK4~8~GG3tg>2SSVK`P
z{E3pnpDm~b{aPko@v|EAYT7mvpMt$^DfpDOY=Nf)%tl0Sy)?8~D)IJL5H~$0vlJ9`
zs1)DGNkm0O;ePOO+hU4882fhlTlbhxz@Nr0VKBtC)N|-|*;By?lRNtSyL7CL@9z#`
zn>vjob!|rFdK$QOv<<B^PyyqaepLT|N{RI_EI}0h7PF@V%co-<o^)<1y}!BodeYK@
zgY<???JnMtOzMe>_4!+oQeGxQYKc>qm?h<ugUq?UYA*92zLS!!T|O8*ADnAV1*T&o
zUiy5(<=9URP{3&nkv0XJ=&^L4h7=*A@_1kc@iimF%2;wpf-M2~32VWYHO-4#$Hmuz
zg(b2I37dwbF1gfy4bnHDxb?jy)iwjsVeV8@B(acdr`8~27aGK|M#b|#tlR(&sIvNI
z4&vO*_vn#3t6335Z#k!3#ep{59SA35O@oD^pr=#RIIrfG^t<g|Ho8ya0wOT-{;qYf
zQSX!Sqt9MAxvszx6yX$8(L%P-5?aeaKk$GqcWQH-2v5MEWCYi<jP9$CX8;N%jp$8$
z#PmKF2>yd|KnZ=NG^fgAXh5s`f;>S%hhP@}*=a&kLddZdE}=pW`CC#%Qo;~4wOxyR
zoH&9FSuuM^1}{C4ck@U7mzad<PhT(!a01rf^~6sZ<3-OS(0xFp7nLg0?)D&A&r6sn
zlw(pwT>l&0tPpF|-+{x(a#3{&Ul!eX3hYchz33VIXC4&I9}1qtcob5|-wGgd<mnOR
zbfrK%wk-FVeNwB7^)f9KIiWBIhw?WaJzF~H>5|Xsa9J+<zzVQlGIW!%ccvtxd+z~T
ztxQo7Fqluz*zmJOmoN!(D(JoWto&)3-rRRtcx+DzdP=AF<E=sherG<`FIzX+JMO(v
zRMzqc4V$gG#V|g>4|aO~Fejk5E0M_RvA2fzv*>9_`e<Pw1-m^%$M%r<<(O^{91zdf
zH<Blv#iDlAc5H)6?e_v9<m^vI$0`ogYN=J*Ct6X#!P8BxSVxJ5-F5iqNFv6V)1M-7
zV|KdBGFnkl?oqlRLEAq*a`J~P{k$h&;0AIthZR6YntSn|G#IG}V^x>j>S6wc>R%AU
zj(L@==|`UmK#1R~>n@mJ6%CXuo=}jptAVV>74!hO>ul|8Ry5vPHN@ox&T2YgcFT;<
zf98Mk6g-F(p3YZo%tynac9LvOX1>Rr#6BLFwe67}uD@|razE~_vB;$gMdNcw?z)rx
zMWv9Gyl7oRY}2^0vfS>i)&-@97cvPEs)?ivNv*IRH<cTB6TU%m4_tmp5g{{;Sdl^M
z%QBV9Dm(2QNUL}bN|F_plnfvg`N}UbLk3zBzhdSV%CWoV$}7X5B(`*+5EwZYZrTfA
zB)0np$cQUHRWvp}8W@uBUAx3Q{lY0Gzl@LhFw{sPtBcyE&}VZ&>IxacT}l;}Q9$YW
zw|5-j&jmD??5jj+n|4Nk4cazyBB%6p`yd>nz@U*C4-R&lFQ_t^c+kj5dmJe5%{rlu
z+WWojFCh%SzSr=FgRBUH#dQF)bZRIRq-jMqitq(jdyzfUyT6!2sukESm7*><#N5T;
zfhB{UPfBtMzrTr;<tk}cJ&C1B%zr*V!V^K;If*$<E?wzh58JcutvTy-!&O7xE4LbA
zNxt3lm%R&*uYYTuDs<{pi#O+Mnlmgs<V+ZPqANz-a2dxJWW77T0b}C(k^1LH{G_(|
z0|}edoxocNwd94U0)m>ZjZIUxBt44n{)p0c7P%ZPT*D&IID6uICWGfN#R<0t7>)l4
zTjFPciy4|9iR?+><MQztN1+F1M#a#mdg|$=Ac8JOAp=ALI-!A^eUL!$N8{GY37VMp
zjHi@Rd<ar&3TMqYl6&m6m1$!srqWC7q7*XL-UHWpFGnUOXY8NNa1Vh?R-KYHuX2K)
zZ+NGQsN)>9#FRN#@ssUUnW*7}P;$M53J6wF-pb}`jg2^^ZxYdOQ4?@Sa~}ZIlUOCi
zP5wOm_pS|PBAHxgT>8bIy3260=a#GpJ#bV1ArrbHOGzDTqt(Z0m1<x8P|H~QEYrOn
z_q;y7GxZ*ibSK7S<HFFyi%#Z|8K3*zN$C)VCVy`<b`s=g)A;vzpg-~9E=B5i3T?15
z#GvgV6fYl)(ayv6-ysu2xnbXRkU`BYZn!nZ>M@#uJL~D10CoTMJ(e<XI0S4rbs&t;
zqp<xbT0gB03c)LqeYXPt@$*i$(uFjcc0(|J;ANa%V&MmbOm7_aDVFc!B~}z-r0yMt
z=XCy;Qy0w7lUKVNWZa}sQEoYHDVa#V=Sy!G4QlRr!r$Nw9~bPyC(G0cu6rU<0(A}O
zxrkTII0@;|MHIuNDn@<Z{NDuz$}#*k4V1I=S-1N&gGUj;Hd|;nAXHSqag+GLa`ou%
zG9KIAm+2TapTwCN>YFiqJb^Yr7)A+aV#ySfgk>6VMJerRY^|~<2HU5tLhB%sfrh_d
zu9yTlPAR1-v0(a>>(x#+WG24ussQXU9gQc~6rre~o_RN4ide%qWT)NKa7RNQMWj2&
zzBm4k;VIcml7GKf;6%t&4(nL8fBS<WN(Why3G3>wTkqYM3{&`Ez4taabhjPfy6>|I
zQ3|gzatG5B^y{->a2lK;+WWO-6BCQoCgU&huledA9JYx+*<dRT1pbqtLxN29{B(@x
zaH->`HpX$rt)9$3FaVA>fm9Ify0%laveddy#9dcJnHr=*VSAO>gz2bDi4l7wB7_B8
z3JeePYRO9B<#>`q@coLpL_y;?+7FcmCO$s%PS_Q&cDBaWOq@>spqFsY?FjYEy!+}v
z5fq<V|Ke<D7$|vd6R|@_`pMG|rqGj6Fz+culG}``?;Lwz=}HgS*pYRt@Ffx<bI-(m
zvqNpMi?py9`WKC151;hy-+U{ZC^0sXNxS`f9m>Ip5enoHM*Y5{Yd;opJYp*sFRNk6
zfAz`g=jEz3J^>Qjj0<ff<}@r-Ib36Bck(9z26=Wcl6fdbNKQhxc$WBr12jBH1_B9g
zE|g|RfgI7Q)g`(D@TOH7BCZG^M>Kdc)Q34ydUE1ZV}cr8q7p!1#E;WpC*`a&z3?x_
z{m{O4xsKWD%gWEGgEHwk)>OKGwKO`NXTAc-EJhEySlC9NZr@CjtA`YkQ4uL3>cxP9
z;~#fyiSLmJa(UVyXR+8fMz%pgBYmT6DhePt%yp5&pfqDNv>Gk1dpR1M!BC=CoHE)e
zr$_+sXLkUlsLw6bIM^L|8~B<hFnC;d{9R_wLc#^74JA*B(*8U~B_<-ST{jw^QZ`P-
zPJODff2C?xTh*xcqp;h4mxo)CJBj*Pgz*$lq+v%W#Z%~li2+$ITo8d14lRu&aB+(V
z9arl{uH`WE7s%*E5;1fzT_dfXbp6&sL?Rf+xLkev7QZ0(YbJi@e-sqo&Jw{mP?Mw%
z=3On$jED&1DgZX=aJpICrz1*LdJx;EYyc4<!d0l@&OlAE&lPSf;X%hA6=pRya?Uo<
z{1N6v!A4ppU_N;!^M`%uORiAkwP-<6XznreWT`3sp3&teeUlEqg<MpD(sfo2l={q+
zjQa%~jssfU{ZdZVuZ<v_58Re$+1o}rRk0Vbb)^Fcgb~)l!7DfkLlddkeB(9)<k8l^
z?2X9pvg#>m<XDj_GcP6l7nDvNS`vz!WP_^cteH!V+)bL|P2)Ph#Mc~p<~?7>Vr!f-
zNpSbntqQk!bsEDG99pbTwm61j2c2&Ivm`0Z7@8z1-zSVH5k7i861AkD=+-tg@-y!T
zy-0>aq~asCs#Z5y^_Zb}!i*1=sPa#bd=S9vCf&lmtsx2_3LV#<3xzM8Bpu&f%h1ZK
zqHH_x%j5Yt*3O7Y^cOsth`tecMqtsTOG`iR^HJ(!<%oF+b4p_H)Te*|={r9u(VVri
zmtCcov)prhg2wFET3ypVh2i)6X<4^JH8qrI7amn<I=GtTWsIO@Z8e&fm~hAVQv?gi
zU!V%bhTjE$Pjo8OKH~hj3dwNGX)gI4uF6KVM=lDgFjAr`@AYj^Z!oN(eEPUuvXD}#
zQ|9IIKx*4BMrA(=o3@FrMiyAD_Ba#3jH_o#jPyAO3HCU3$m@4&CJ2ubxy~6K7+K;U
zk#-N!t+IH3;+A7-%xV(*$BiHWn4hXXvO}oASU|%?xABGJj|xYw_*Z*6!Lah=?gHWW
zObSl8(|QTV%;URj$(45m&GxDNi!30z%;NRmHt%E)?}DQXkZR>03J&op!pzC6r@X0+
zQsBucJy#bJ!|xiU;N)y77%eutHFmJQRm>J@bm}-{hcGzfY*MJ+hgXS<)xFs<POm{s
zN<{U&!n^(dg5QxE(I(`ujqh$`ANoU^RZ<J_;>ktr_nQ2P|9x0^u&}HU*5R?-lTySF
zS^cOduWM(EVDsYKM(GT^Ys8IaVOPdTbDRA$8>poJ4RbMWikEs@J=~SH#9)2kGOe0;
zJ%O(|xX5UTOy?KrW7y^x#lJC5Dt;Aj*EGR4vO8SpyniO8YTTAV>3*~S<;M@#4;I#C
z0G$?Q@Xi9Q=>R{xwTxn5zxMQ_;1|M1J<CT#yzjGO!}6I7Mvku~QgC@H73~cb=_3SR
z<}Jjg0@I}SALrF~PxKgZ1(0=sl-H(XnN|(Iee~}pDEM7YQL|R*EW4*cRQoV|Hbdfy
z+&c43aRe*&fP2cHrX)UA+g10%u+?KIg-xcyVu{Og#tvwa<;}hcX84=bU)vCP7ND5T
zlNjzpgy??p*|@I}Q-j<7aDJmiDub(H0==oQ*&ymkj~A3^IPX+l^@Cb9+JxUfm$bZ5
zBSS=GpgcZ<CxusE4GSQMtDrb$?H!^?Un*Icpmr%m6Er*oq5kaK9kYX^;wc4gfjPAL
zr8&52+&TArxKoKS1q%}1x_170u2;p;H^$jC7cpmJb)XS<11f;b8o&OTNz!*M)#)2K
zV9a@t%c{wqwm{Q%;r81*hKJibMmQmyR~Ejup8hhoW@&>95i?K_Q^k<NYZnS*omVXr
zFC9H9nsFp2@jtTcso|B2ryne`ryM-_MRaTBEF`_9BUSB_av&Pw26g4P@i9QyW<nY+
zV6yPJgyat+`{WXA4TzCL+tDK1(TMgM&qFr>cm``JH;!h>VsqR15Ar#Hr(+>K=b)=q
zo=6<RN#mDG;mV$xd6$Dj(_~y_H!7(JJcM7dp`rouPpQ-D$hexfn_Cg>60==0?{yYr
z=Oy%X)#VdA52esKqLgCl+YpI>;6sv7HFhXcctV2RUwihKl``80{WPJ*AVSwU#gI^^
zUkHz0V5ttv_~ASKY!bk*efslnEiT=0NhL)_S<&gxp{8)2$=^hVMyB$W-!|>Sg``}b
z*npIr=>o%=-NAigqaUc*$+kgaP%97%zWHGu>oqJ!$shtZ&4HD=67_ncFYW7W8B*na
zhE9bz90$khf!rpf|MMB3wd>zUN3C>2fe+tdtcn0kWQdYfYa|Cz4(q^vjinDBgb;t4
z98P@dKb}%Sf*b_Ew-awDkRWz2w-Z&q3r`ZrvzIx61EaA3&Ay9LdZ}7I2i#~$<<BlX
z_nGMlwJs)2LN<9sP51nie*Y;Z_}ogg^<@<m{7OoZo{d0uaEkrY_t7^)dw6Y~K2_gO
zfc#X@zT;Z$8nJUJ1NdGN?lkvMinMrvi*OR?B4DTlnKo8sZ1nt~tXYb3wYA}$dlDZ>
za6+tqG0zD7SRdPvV){j=jp=FQ%Y6SJ>t>A#F>?GwoIIU9O08qdK^hNfvf7Q_gDZqS
z2AXZz<x4O9j&ZVk_i*lOujgQRyE1T;e@H%pS8m|=k$m)pWW)CKC`$hIn|-&}N`*$_
zv}3Aqe5^DKdktfSE8Rcc9|%`zY7`p{qU~b!c$1M*ItQ%bq{faS!RPe8O@A5%^bJ!F
z-%$fL_IG+k;jc1*xr(X%fkkDaSx=c{;9GD#(MSqI>{_zVgD;-)3vCU$={U*uqiJfY
z?LJ_-ssCXP^m%?9v&oq5ybodvT5aJ;`#!Z=a*N)R#!+vawPGatBh`vy!Ql32<??sQ
zo-7>)%^DCs^wT;Q+!TBq4^$3+QwYzn14X{K<eNYI-0}C{@oy3oVG{Kl+rd)yioG4U
zK>N1!K`aj#Lp5HIJ^c`vG_<w&elYioow%TBtbOfn?gY0Aj-+n_h=KoxX^YJug<@ex
zr;DzqF`y_k9=(r>*V;Z-%Mq589ooJbhzR-jyxD*KIXRlTZ{frIr-4y(MX#bU4R#eO
zP3z{~l|Dd{`A<|c``Y5livtn~Zb(@2E{N(`B9a;~$SQsSR*AieuJ(pI6)^|2ziNbt
z?T_L%U}n`6;$v8)pi?WObYQMzLRZ3}U`j56_VR*C98t3$RR}zI5~3)oZr-7o*9)C3
zBy4U~LBp=D3@RRa5^ONvI-18?8}ItG{Rg$nMr9A*A%xQ$i!(@Wt=t&+XYTS|EzN(9
zz_CMhRTV;<nBVG#eSlO}7}l_kP(;fVS?XOVQbIFL7UdTS9kY6t3(Y@0)JC!O`sbx~
zjh$&tEWHgMbw(AX5EKi$5RF6ZKVGC=zwvWmNtD|zDx+{XcGOB9(+42f1Vk@dOqn(&
zST%ug(-yzloiOom4hL=tg7yklii82h-x{O9yTeM;H$OQZC;PYLN=yduH?QJnWiKg;
z@;~Oo87)wCNmPZ}Xq_5uzIX~1axftGij-E8X_9o|T+WC>v+Lc>qAQP!b`BeG9SIH~
z#>M;mcYr?oQVORvoX&XZ`omT%cU4vC<?09=S%RN2&tq()G<NMz_6nX1MATRUIV*S&
zW%NgM1c^maC<@J=H`Z!2lH4ggDKF@@APBx6T%b;aNRw5!N&E!_Av**;=@)O_TY}Wm
z$>MN!S4cDS@4P=Ua}=r6hqSv9_Oe=-=DBJJF;*q1$P__T^n0rGr^i*qz4}@BcAZ2*
z^%NF;=J-0=oa+L>@=1L;h$*T#0qi!ke7R|XX_XG-*#&+FEs?Dq%H5%LiK!XUaD~ew
zCml@fMV;IxtU9-b;#>9(xRa<`vQy#LJzb%?mt|VCD~D=zx1thA6AOVx?IHEnLUqq`
zTAUbm-t5TvT0VAo#|R}9D_MYnN6M#IAl`AERKtTIl(_z-r~=XqP~SU6>hTv#MLJ!k
zAUr>|0JxP?uxHp$O+2dTN2``YW4&nivH-Shp?c+t&lh(<c{I!WE_Xe}70O#sLSbK?
zQJTh(6jgqBla?$fai!R@@?U?-k}#k!O6e3+kvIQ2xzRosO3bc_Z(7hdD*P|^Q11um
zqRlH?wmnM7FNpv!&bV<eIlrjirzLaMqq`$0QOXw@<m<!;(#Ti>Qb%R)20{*stRgf4
zoeg*GM(XjUh$z;^SQ5DyDk(0-9wls|+Mq~+CEV@jh}RSVs=QCBZ}+ZXV$Y6JG4B{Z
zCIkL4^|i&&3BsHQIz&ROO)4`s|NCmj+On8{OVOe6F=<idihpxtCqZ_QO?jAHu>q{9
zsdHY9r!rLLl(GDf4zb;B$$hNZx{)i%?hJX`HC%rvi=`DmfklO*C>wtqfg?JooDLe}
zphT9kjVgaph@2{`n`hA>iGWP1oBtkyS!*xDDq_*CX+l@_pMVe?0iBgW<zHN}W_&~3
zPC3U8f}j<eE#1PD3c{--Bw|4uoGU?bx-O7qgf<jp<)!z!qUvqDK!8Xa2c6WP@u0^A
zvZ%DnQwr)B;5<JrpAUr7n{+;qpvFf$KZHc-FKZ-0TV6dyf}hTKzxOys)2A=`)d9F9
zZR!m}%;W1vDR`Q7QT}ixisqbtujhN=fWfMa7Ib}inm)Vd#qK8g47tB2otf_xN1l4K
zg7H!~ICH6!)TzAJw^enJCBKaq0uTE{XgFUDHl{3Wd{9M^>daWNQh)x^mD&smSt{14
z?zfb;sZwYz`E{HDy_O1^T=9`=$hj?e-POL#Fp_##(_?avQx2lwl`5ARXtbd+V@**{
z5yk1_so?+&0%ikzEyFR&8KBJVz=cshC^pBDlC6!g3($%dfXBv*1^e~sO44|BP>^0^
zpaNBqp5ZdL^x5Y5@NT@2uuMz=Y!6N(X=KwT^>U8`Qi9CE=@m`o?o{O&A9ypgG~5hm
z3RPoGgX|NQzZz=fK*Oy4|B(Lu6tg{yiX{EZ0xhYJS+?lI4@hWx$Du0e6IGbd-)#1;
zLRP6t4QL;pX`E`-;kSeOx}TXdt!At?%F{oO1Cmpo1X2?`1*GEb;LJPY8Hy_AmQ-u|
z%wfqwl_RP%rf8wGjOE7M8k<5~0-KOn_iv9~OtS<1M*^0xb!k$?qaCeqiMS<;jlt9_
zCy>zqpI&B--cm~tFBeUm$hj&i>;<@BU}9n+yVhq70NT&H`~C{ZEfuDiDtZX-l!dp%
zrcu2tv-~EgT^5T@;ezW%14E|woxb?TPBkO~=)N{m%%sFgMbmTb{S?+&QbGYjXCx{^
zN1rixjm$RcRf@GNh+=<p2>v1b*(RXN!Gv`6mWuz(_-%B=p}q2U1J*Y%jhKBlH)3dS
zRqgu+*eK08cZlBbDBW=4_*TLg7(KFdN$gv#F4{yfi<%y-6!2{-UrVhH=lvJrnWA4m
z(wgm6CL%KD;v=4J2avO@KM}6C3HbDrH=Li?Q-0I$LY;@MuxhNdVq%<LM3c>7fCcnd
zNk<>F`i?=3Bqv;%FxIoE4;WhZt2jhhrBbIW1fh7fu8TUL@;CS@YpP7x;EN(a+VH_S
zx)yVk@-mB;9UICafB+0$gPxl>x4q?kwosag6zH{~;jw4$yVh@U{n^#-3+y9_l*2b?
z-`<be&Vu7+z8E&KxV$S`Qh)Kz_$guLI0zS2;)07Y$|+9jjK1LfehKD%6CG?rv_53-
z+K9{>3Uj7@`P$M+OiSGUv-7ytoZD)q>s&?x+v<0JkDuV3L`2vC*EtROM?17tq{6pe
z9~*!ImOfrFjB%h8*bgRav*Yld85pJ+GYpC`jG9(|f`%1P5y!V>6*;wTU&`SI;A90a
zk<P^GC6#E_=;$V?Pv-qI^o%T-I|uyFr(4}@&<Gn-Y}#lgBCc{R)Q-&CBmNJqYOYuN
zK9Oy~idlB7mAK`m|72{^j9DT`6|9qB%yD`gF_i;~q2~0e^CU?yyS=x2?O6`k61tRC
zNY0N#_Wm}j^;ZCeU%wZ!Z~RjWzW>-8F`aaDT_3Y8oXkkDWcR$m9dd2b`l5VF6U86n
z-tnUJwTMV#jDP3nCszj5b=`l`Fn6FWOaz8rVqw4~nolp-!wt0(U^sFRz*|5A2&6_}
zT;5yPtT7F-q!~Bd!M#_HeK@k0GVyEZa-%)8$u@G*f@b8PrNvbm&AAT94E@Zi4D%Uo
zi;|)^@kE_*X23mvu)fIWzg8|%G|0#&UJjI__8M|^n;{GT^3UN%WLUihh$AYqP=t^2
z2887Kb^Edum=4KQMp<WC6~nvr3Z7Wu$py2fmJ@3?Z%W?6Sz@k|a#ZY0**yLomVq1I
ztAxEUW^Pc{k!~gM-L+fGy9pvNu7Mg4xadu$s24*iXopYzQ;xH${`J`xiCR}c3|*lb
zxqfsYTb{Um_~$E~Tq~Do>q$c^L#6@?$m~W__;t&ADNyy7AzgNVRt{Q9O0m<J<LJtW
z-WVIH^6Xp<2Sfj|OrNB|wuNtToQyicAd2NS$7d*f&D5unN#XBD*}VIiR|KIM>h&6m
zQQ5b5$!xiGgc0x`;IR6SEU`cQ7KM1IQArU+uSWdeF1``6j-RQgM6q<Hy%|QYxF8I?
zE4WB?7Q`xi^NKnrD+KG-j0?p)3=LoFGP9KCgHw2N=#|%~rN3D%)t?4&uLi{=#Daif
z4<|sZFKY7fciw2J&~i!%?%<TGr7i4Sy9sp}2dd^bvV@XY3?gUTOfr+((=L!JS7*Ay
zGHsc62@NGW_3Z<lq~ij7t&4kx%v|Y<WvG|hdX&i26xTo2+k9L8?vubUVb6?TC~n*k
zS_F40ym9VMO+NN-(-tned~224e2*L&y=Y!!_!^zA2P>90_&!WW%w5D>TsWK|6(~0N
z$qPvlz4EUhkjap)DGC=WEjJ@oE9Mh}$K^I4HJU)(S+PE6oBjRJo^7u7Dk#d<AU(Zp
zZ}T~NL*wP7SEE=0i`jz>DdU<dU^FFLKa}qqcf&<PevNo6C1k{D!hd{>Y%Kv>>BvTJ
zyiA2@R`lZH@v~C;+qMYTW@rExH>t^w%TZ~*8otIaEj>x-trXQg5`I|Y2T7eGTeYZO
zp88hg>%9ENmI)7X00(y$3%eS9s418bD~T_$-iQrfH)RPE{(Nxng>5DJswMW2I9g3;
zhuKK`rI>Rm(1+>uUIOvLOXxK%gxI)9D=qbK3qm-47{fOz<vz5;vYp+0Y0oCe$@P|Z
z;DO$JsI6<v1Gs~td%;r?^-jPrf%ZK_Z0vSRJtvn&p?|itzA-U9!(g$O`TD~8ElzQ~
zdHK`n&sw>{J@k`a$Kckp?j~SJFG>sALSvNT{qGz<*PX0bNBQ-EUgLS;B%x<rghOso
zV@s%=U5AWrA31;uWu5D0;{GY-D!Vvjz;hyC<IWei6XSkIxni|t(?0vXXsR}YL&kCB
z6FvpAhW9kPq9MI4e9q0FK}Cbl(h2|=>J83kJryCnoFVY{C2)0BD`Vc^B2iQ_C3sLh
zn8vUgVdsBGT*!{I`BT<=-e$_IAWvV20>;PEpsDOGS0XJo&bqq$Bl0qxrp$F6mB+uP
zPh!E)fBurXp~WmyP2<cpoi*xoZQ`n2m&ZQ4695kT0w~hq2`R9AR&qMbX%sJwK9j`!
z3L60uaVUbC{KNN;XHh$-JE(V_c|df*F(s>20Jp+_-&x1#?kW#&y=z;W<b4iH0{yIh
zO`kUt@V!(}XXkr0`N!o(OZ@o!Tz4Y%g>dm3Xyw*hEE}B9PmLGud)Ft}ol?`a@0Cwj
zG#t<<4=HhM7M@)#0kZH?T$3e0eHV7?*AnDMfXNI%N*)m}#_s_#e(ken7b18YYu=5b
z3B0urBpWwFi|6?kDXEzJi_svA#hAV4n9*g>qbm<Lmf=yFBGMYSUGrS4j+dW*{Ne~~
zU<&k1!P(PMY=r4mY}ye77K#+@05S*_N9Bd|pMZ9C3Y{jEZJ+w~R}D`<d+mlpaDk>n
zbNmy~?yGKKEb_vP<vPMvp&NzZe&(ebnk<4GK#$ce4*Fm+I(#_ncpH~2veL<BH#=sL
z+$lh6W)0;K9fJ+>xM%$jIiG@*Waq%D&qq`1@D#hs4f7-}4j-6~{u{OP|A=uB!z5KH
z^F^qyr7^|l>?N>&M73P>!YO@A<&rTPmO|$p(Cu)ENxR__b<g+186n<?csbe_(D<Ka
zORS72FKm#|Jt?W#X3`O&JwriAACb9z3{iEtH43TzP0g2Mihc%cIDJ0EI@H3ZjswtH
zc(st3`N_)PJ}o=@e-ZqS&kFaKuUM4$SB}2x_q_D4vbeB`;JtICN)y^q0x#&}^HFdz
zT{gs-&N#WR!cDX7*rt~^;D)9yA{+aj9?f6pRpUI?M>&Fn{;>w!$<!QH*L_o$py{KI
zIXtpBeq-DDRgB23CY!~>^4*8(JSE2?m6{3d?41AM?2|>FID46|M<|sb(E_Nu$I2&6
z^R+^sV>@Dl>*@c?`NOL!S<N`rp6^K(!o5}n`VK^i>W3bD|CjQQ$KvI$kq!KRlz;!x
zvCrp{jsb;N+lJV$_^RsPH}@yblP+$flt}qVJSHyiuX0D`8Gz4@EuDR{+&W4!GN;Sp
z2j+$~d{1TwX5_5-_z~Kqp<ev(2ABs{p|QZ!QcHH7@aU+vjRo(oZR6}g^E@oxLsOp{
z{D9r`o3Eqnri+IjJ^|7FA$|3buXJQp-V#j<KUcy@7uS3C(gna%ErtK$JTJ6Lc1xDq
zy|Oat!i_~r#O<veX*&GO{k@)3y$;5m*{?a>%6m_$OjG|i2$RkJen6OV)mcM>Itu5h
zFn~!A04218!3$QI$<_2tE!dG9_>}D~K@rCoS{oeHdV!05$7BTT={+$DR0tOllt%0p
z=~IFpRxhg+<cfUrISx`8RWXv^ttjD2;SWvvVYx?MN`VPVBKCd%Aupmyt48Q^=j4)Y
z2ryA)5|U5LgO7%_im+1gN`wSs*=RUa57&td(7i2!U`uX&V0{zy4~R|BEUx7B2K!mS
z+DnKyrxrBr06!_TX#6r@Jj~!JiSWdqM9+{bkW&;>1qiXSq8sbRw&QRMDLJ8_t7&?7
zKI;rSY&d$BKF4{u2OI~(XK$|z!ac_LEySv6hxx6KiTDgF8=^K6oUM~v0{uR)e-*6=
z5#uV0)zT4|mruCxJ^GUtRYjUe%T6eOBg2VO0>f3vtqo}6>s@vSsR&cEQxn&YR1z%A
zuiPTciQrV)wz;XP2EiVS2U2Kf?Q;FSYqJT(#NMghr3Vf)Ye}<k&u=n#GWLd-CqI$0
zKArDE!XSWM<ax%LkAUa4F2hFO-lf)D&(4%!x3a^TP=nKqne602qEgkjlfuq7QP*dO
zbT!r1e>!e^0XJCao`Mxe>nG6MNIs1?E!`ySA;Ebbrsv}v%adE9S*|xq7tdnId1+%@
z`B6@&U7*XY(2>W$fkc@{M7ZPQXs!b#j=<IEF-r49{@RuF{(RM&CZ3gnbA89Aidhoo
z63kM)^Rej(@N8>A&YrNr*t#8D<MOj{D?qGBdfss+bPrkwdhY8g>e3`7KJOg+(6hDO
zOC9*Es6%$(fJ|)`Th7Lt(blMMzgas)nBA)bxDm{0WjUL%GJ12V1@;^HX<>&_O(f3!
zJ%cbHWhv@x%UhViSmC<1X<irsMzbr{z646lslK*M!6Da^%4IG+?(%plzRL>j*=n!|
z%z{Lz0rm`olEA%GrndSj0KKth5c<DQyfbEA`^~yX!5=!mKl%B4f;pCLZBZL1KdY-L
zC6$h@3EllNCpQtMF0ogX|64ync2D2hjAV7hH;DXtfEY5eDNp}Fh6|2<`J=ta3Te(a
zosp%WtN4V*4A?U9$vDUZRQEz7(eS8HtzvU|0L=AyamT^bVUa}Ve*vAEQ^!*l61^T)
z6x|!cCMN9OxJ$=&Ip2kI!`a{Z#ylz32cOa#kUbFAcEqtdMj2%D|3#=6+7zS%NFxWL
zhfjd9*5N~QqE8mCquvNmMy}w*s0fZqYj=!@0^2ibV!#3Q5!|_U*}+_F4yG=7&clP0
z#JjX-e`P|iXhLLqoNIr0r;VWITc6vaT<~f+Z7u_t<dy3em#rBcz(%_;TI*pD(iHUV
z>*_S$tI-t%z}2~#M-j7y0ZQzeMicLOXtGXZWbm-Uc5bow)fxM<?}p$~z`Y;=<ujIu
zyGp3jCV3=={pdtMH<$p?1ZXf|jRQ-$VALc7hCo2hPb~F53qNY+aVm5MY^w(XbvUA#
zq+(*C-h419Cm&|EgIg`WEA{$!BSrS5dZKE^TDKswVMqFJ+}KSToi!EDR&vTX_0X_$
zSp;kkFD&{a_?>sUb<!M1tkPwuLbWqMSr%!oVn8%d0CN!Q@nl1B2$4t&TJNS|`tb>B
zCo2v)Q>V@FAS|a%%vDm9n$$BT&da!^OunrQp4qraUtR;YtkaK+nO(c^pUnZ6Md2t7
zA8Vv_`M`}M&boF~V4jfYbV|acj#|=Ef{J5=LbWj~zNubkXi?@sfttho@D-~fXxhh=
zYxB}f+1*B9CPj(9nVvU=;3>jNrN-ufRi;F-r$^We`~4-=Vl>*J@FOo1vGgleZM)S$
z!%AgkR6r2D;Zg|A3shVhR3jCFk57rG8M`N-dJ`OPTs$;!S@YP=_D^iRig=rM<DNX!
zwt&`F$_!)UII)62f(Bj2%0r0MDbg0zw#8zb7gE>UR;1I&%yl?o>){{_WEKxX$!y6E
zA4$FXZDHsB$9}Du!&+LDyQdY;^%LXn+uDyEEt8w9KjTc&&$us|U5H#)WXJc`!~+Ej
zj9t*#faWYMa#Bbt_GPGIM=k(2NJs4H?*4W6yu!S9qU2cvDNwRdkB^Ot$~W(wl$Hco
zlbu=ECq-rp1Fsr)k;&L@_V?E%ULtU4BoFq@^#{$_<ea^hx<%tEN%*8AhkloD^JI%z
zw&R2=hfUR7)?Ngxxq?!Kt}x2JqN-YTp!dHyU~fG+HVGJ`P+MuyM|AMR98B;T1rg3b
z=%kZF-ek`{8<LwWS88H%Iw9yI?p=I!qthRnh;bs;+vN&whn(z8`>xK2<^?n@c+KgM
zFt==Uu{LF?*@0+&R5MILz4`luYMr_=JBnZ34r5)<$ebwpqt)b+iR{o|y7Xx+Q|+VA
zx+}4*lg}qCu3$JQ<MxX*sacZV$RcIKhLW%zv9fZC!ZR^bUil;&Q#ob9xo9wxH<MC~
z<mb8FVIt+=&hI}e^kdC-j|;T9DcecyHqb_V!mGf-Vk&K_)Rk?{_L>PYQgKPD-<B6O
z$9m(`alhrFD%929C|2wA@|De1NJVSQ&+BcDa6~IhFREPQjg*8IRN(6%?aSU8L_r4M
z1|t)pWAu*n?et!O1;a0CU;L}k-(Arca}ZVM04)}5lR424O~h%`aXL9>Y1vuFr4^oj
z{8-2s+tPU4#6<NKQ}qwiQ{fDlyX1SBb%ygKP*;AII%$MG4o7-eg){<EqM<Mg5652D
z_Nc~3AWyM`Cg>6Nb6Ln57-R0qSz|G%+pyB>zP<0$g>NB^`fXGBksV4|JXW(F1Ocjq
z%q$VRD21~y((f2H<eEABmS6OaW0Huna*ndr@G1(%Dpb*cI!FxS*Vt?|zpS(Q#-Ybk
z_~>JE^P+tjII{EV;e){)7^g7msUQX^&-nK(T;1Vw|A0oSo+$S`4>(kvd@$t&=Y2s;
z$`ulUIt<4qK&5ySCeQ9|=}t_z_qu9%26|$2&)TcgE<=TfqNekow|{Kb%C-+ex;1(o
zt+j`Xw7A+W9eM;d$JE5^wa1mXWT=Ol&#+y4sjN1V+a`*hd!oa>8>f%%8@vD5@t1VC
z?2me?>wNzM6iwf4L;U2B^<-pB)`~QmOdoDBK9_tcya(m%ubGCbOyC|*A6NNxpu{<s
zWuFhnRhvlIT+rYi({Pz!T~7S+CedFM+QF_aOXg(8DGb{orT}AX{`VXSZ2GJ5buLP%
zT>Qz3i(m-LvGyicW<ui+6Tr!V+zjs+XgKXNGS?$?n11d>zXJ!TDXA@qNsXylr7VmX
z7_T#LvFp0#tq#QTn@9xBGOjm^(FBOM6IN6d(9uUw6;g|-1))&W%-hV$Y}a(y6uy4)
zo#l-|s~qq5-`>|A+FP-<xLkbA3ue+x)%NCpjSa`Fe7)uHerbh1RUPUVfQu2O2>X@k
zS%}@~xM?U`!!Dn+xg`5y_!ap-Q1lwBfeQWr?)pyh(f0-{yQyEOOiijVj5~j5oUYwJ
zt$5Y!j{n9p>>fw;(|*xTkK^jl=fg3}A&Bzy1U))4L;?v31_nIrCke{jC0D0Bqr+Q9
zP?=RR%_oOdg`ZwRNzRY22p;No`+wNF>%XS{H*Vk`2?@zjBP9lm5E<RV7-K`iF+fHM
zqf;6|^dr5&=<e>2kPd@R=?<kOL?lEo?tSj>{p0-?ydOJ{v-3XZeO=GjC7wS7d|2Wg
z_K2syT<2f=JXP}+f%ADqR|h)uo3<X#t!ur3lPlBNr89O8=_BQyvG1G29>hNFae{gh
zu{#(Moh0pW3|9ZTt2!44(dg7_FjZ%;=aQEWq11vjgaP|!ec&5R$SpG0{hed5R%#cw
z&%hg9A_OgWUxH6t?c}uUWhC`ptl@Yw?T#+vHFDL`L)6B5Y-4I9YOT}s`WCg(WG@FZ
z6fI;hTJy$zNBsRXH*^|6#ve*oR_Q(;JB6c@^iWUD*2HPHA20kO{Omtu*hvA!q2|K<
z2l>ATLxW2e1!84&>}h+A5+i^BDn3T!QHBD*iPoa4P;cYFMp<xd=BvR49lfpFM{*g*
z)`Hxw=ryg_t8I<4L)t8>>|~U#*CDw@aP=87IXsS+fq4+u$=$Wi5&B8M5uNVBC@5_O
zQ8&C&wJlc$eJ3rFQIA$hf|XiK1o_B1G8^J$SdqEmU}h)!95kVqCk|caIZs--{^v8{
zSS@~PX&k5ha`+2N*thMMa&w2XU220Q`PXqV?caViAvaUvzzi${c%{RuZdT%INJz5_
zBZf6m>n?@`QN*BUaOO|w7N_16&{p#*F|6ePR}sYR;QWcOOmj(dgVHxq5=1~WupeYh
zy{8gBa?Fz?9XIX~`a9jrp*H+E_U_7|v1mxY&4PpPM|Xw4IWzdplsaApmO(1>>Z`D?
zCo2tRVuc72qBhtkp23hV-xGT}sBrVT_?2V=klkHMvHh^DnXc^%EeHuv`<Y6gT%r~&
z#3V?SCA1aJSjDrY0QqC~s&04)tHTwJbJj`e>q~@glb=(lCC)gO&h@f!%zo^;n|ep$
zJ#a$$@q9%EfAPZ0uqLLv!<O4z-B7PK-BKmE_o+aFZZfR)6O~fs+CawQ?V{*V&CMSS
zo{7vXT8WQj@sj$Je(b`y$uZy{{&b#{#uCoYhvzSm;Tr*JW=_%r&x1)iKe}`p@WxIm
z9EKQ8bpK;3`O!kFn7@=Ll4K`@NS<c;TuAMDMtJ+BoNq?)aR}i}-uM4g9;VhDCc}af
zj9)zDD_a*4jub6);n&#ZS+Ey>0F^BYHu6~r*45NN*iI7?K~GP>Dm$5+zN$o!<nkX#
zno;?|XEdS0<kR-9tSawkJ+OPXI!CatWL=64Xn+1$so#w0b5WFl(`~#-zm}$FClK9<
zD8iu$FJN84;b>!aEjFsn6g1&hBkRr~?^B|EvcKJ}HPQKLJ+S_)Y*tS#^hnkFRW-d;
z6sitz8}m>7$Rr+>3Viy>dWrS4Ah{DEZQ!xXt%Jq8{W*$)e%(0nqZo>C;2}3@T~Dse
zT}h-##+#+`-zpXzv-)8vR|-Ks&8wQS1F30<#(D=YSc21HhCsgJ6mL~x5=eTBaa7DB
z_I6Fs22<$$RH|V5CR2N-!68G0<oP~51t^Ti29%^j;_#j~8kRt-V(<!7w9=dyqes#Z
z+H=^W>yfP?^-y<SA0oFCuJ`=yxJ6dNIa?(sEqpVXH`WXLV-1{g2j{H2;7>Kulu#zA
zKnRBw8jY|&ECrY~=zeO?a7gXR<&9P=Jf1qdKt}!U;znaWi0@zZAa-{zxDd&_jz*)!
zS6K41a|$Un`AEYWDU=8rK$2zHm*)DmKPQ2Ke!&SS3*SmE*;F`t{uN$m0YgB8;tU>T
zjz^m9--WZXP?z$17eXs7;L<U64V=Y~N*@sZi65ff_w4}9zmiP)#vebP9e{dmu%2@1
zHN!b1|MHqNNRvYI4#bFE4~IXJTYtx|Z^!jieKFqqsrK;DY6VAhO3{~yn!mkN##OfH
z#l*aF$WUx8!F?l)ODQ9Z$fqphfbD;@Wv*TK8*=|bBAX-aCOn@V_8X1dPP@zG?Dq={
zzr)p+=nl)>N}(1itK^MwnaFrirlY(4#xqJk@8#!bnwvJ^bx7tr#O7swq)3MqNFUn;
zE0>bOGabS_!j&4s8frTeq3NM@1!a7GQ;tX1chOB|84bzh|L)H#8G1=L)}+!zzVwcU
z&_MX<IhM>m0sFCxO$7zGrE7r_>xv=8Ev25FBoH9ZG0_x~C2A-+w;`Pc$4kahLcp>@
zo`Bp*I@Dl*bc;O&bRRWomm*V=r$jipfv}Woi}+985u~Y(HO<-@YKf^#^^H`6nbB^X
zNhT+h^sp!miZDOSz$jBwX8|6GIw6p-qdF#2HKh3FZMj8}D$z%hvPBA?-pqLP>N)et
zf1#W{xM(|Cc1>WRvP@z$g#3W<;Xot`FL7H-SMK>>^LG(ch54muMEi==*^V&ynLZ+|
zbC$MzGQfh!u}~}m%o<}pttkrDEB|q<$5V{~l;nK{S_SbwzcKU$*l4?%P%^y2d4djY
z4jAOl4P#(}bH)Zw<Ut&)^X@u~ZX8L(-TidMY9*Gvp$*c2CXfSOP%X4T9?EVSO|Wa;
zFJk*x=-w%Lf*OUs619(N#Bl_<J-9-je-@48Eug#&C0Z#VMbFFMBJ7(d?8%bq;tmA0
zH*~x>k>U$@&y}nldm|<*|6&Z_m9>4mzy2<x4`Ts(|APejq|c9wx|G9)|FaTb50jL&
z*mcX9ND4JG`mSEu+3LNu)<v&<Hm7-xNDyB+2X=N~rd+{y{x^7^geU0F@)#$4KCb7^
zaTpG()3mN`Ea;07ihW1_LFKVnwu$3kzk&U_o1a6;;Ud+eXF1RR<U+<a^&AA`D?@^J
z1~+yO4qq3WRAO0WBD-a2xVVIE7Vl1fsh#5X1xJXM7RBwkx-H9vfQN^wkd-A&!aT?N
zx~_f*(^dU5!kGp_WRwKU#WzgtoKo+zVGj&rNiqtZ1|N7r@~gPte&Z{kY^&4(Tm!2<
zJd*lWgadOkwEoyMqf7NBZz_=5uPOMv8Hk)%{8~5N+>ye6!E9U66u9#2s~7qWNknLx
z_VLOwZaz!PXi3xdBc}bPIY&AY*BHuh`)D;laoO`;03+Is=qC_>h%GiXa6aqL$|TNj
zC&1reKHVVD8Yx*^wgD+Ex_HA1uBRHx`<`R5CLrz0it32G<n6@wyT@CB<`qG=dX3KZ
z|E)frv1-L1I-*wEDNu|e4|#=96T~(I<;&m9b7q2!wBXsHWk{T?{^~(UUlJ@q6c!Sd
zxAPvaWRt}ZesB7-4gW%~xSarA=XEnK$ASCFE~E+LdSBY}I>j~?t09b_c3V=@0aCdw
zc@O-}4<Yj!TY2!CQFNR-%!UH3JhxSfDHdY1+81!)OWU#`qqa#4-(L)0`XEm!vd{=O
z0@7&OVTxDo0%D)&*v@ciP-~I<^7|tB<Cy%pulNR*FF-EI6$<zxuHIB_g}~vkZ-85x
zy0}eB4I&&P!Jja~NQ;_DXSEMa{n^klj0p(ASa9sA6#TaVJL#Yh0y`~fJ4?wF@rM_N
z@>5#7^<|8^Qr`f;YnXyQ7yqr9^nKw(>6^ft`CC}O@G-QYvbNW(m%i2cKfhq=OiY{L
zNKW9)J7LP_ebrGFGSv$D4;(>fx_Ay0$LHHTp{&+RFW2MP%?E&RDrYX#1p7`7YDRDQ
z_?BA_XDXf%s!;|awq3|g<9h}t!XChnx%lP>aN{Vu8_6`e@nQ3|2Y>ad5)xpLFSLYk
zzMc(!%mbZDs}J2FD8x=MH#^hkYl%<}YsFh|-YsFT2_OuzHqXyy>3tuD>Oc~<g*Y`{
z`upbH{q?OWVTdp*+Na?^R8rG=ug?k5x-pD?LyiJ{u|r)@t~4eZGd5Y*FE@y=hz&u*
zj}^F7r?r+|7`QMAl!WofqBYZ*M7=|qKso;7Kc<4Tzdcm`CLB<tG>9h)3ENYnyq^k=
zX6)ewP>X6l$JJ$<9v^;VtAnW*VkDBuCHhkyV2}RfLB6(?Ky!X9R{6UycC9voQ(cCz
z;qEJ34?GHU{Nq)|RlfZA|Clp=;6~{G%vs*qtFc=;8aPTA{?Q|L)36+`wwJQ+r{@Cs
z9lH%j&gL66E9ZE4h2*+lvOS1p03}u&^CFh^-HN~P!!;aj+%w8cA7aC0-zYSED$IFl
zz!57&?C_O#B#4Ys6&^Rbp4eA}F+H184KHqzmptH7*!vS+Npz>+;c)1D;KdYyq&HQJ
z(&VxT$I<Mas6aCecxGO!W_Yko(2#>LkrnyxLUh^B@A+Et`(W6_Y<2ZK{`{3n`0;Y@
zriQDN&N$_fpKAR5a2p)&Z5r-$$!N+|2FA?eQmI5RLpYx^V5(KH${4S|qBZ5W8}I)P
z%s*~1w(k`7W~Rsl@||ay85?9Zl1U+<dCb#al@o`~E_)N~_x0~vA}vEbMi+tk(u{(7
z)DM(~96}}<@)=w9P~=qolZp0}jX&Q4w;6v)(owBaA`_NO!~y&X_X;9pij-3-7VMV~
zd6LQ+pVd$}kUJlk5aQ<XE3UI*Lgb32ynQsexEXq@xM}70^+Bvw_9>g+WkL8cmOYh}
zvMc~x1Ya_JfhPN?Aw%sOX91tJgfZFKS!$-eizfj=O5{B$ixMVd5*{s@i87Uair^z5
zR=PQ;5AVt6L+|D8C$b(4q1hyr%mghgi!t}DbwsrI23klixvr_a|IK^(+u|2Ab#tV-
zuW}&O@j(XTJ)yRchOJUuUW|2yZ``kpw$9Kry;#|MPqpt;CX^&teS9Aeg+3VJ<};7h
z`X$qU7OKL#%HvSjcWW>I-}JxtNq=4k^ys+$1o<ShtiIF6X%h3adR(_ImHWJ4qK63Y
zThGU#k7&{wEqyiVXH#}$ImseQnOxfso4a?>8-A`9@2!jKLQc>S793N!g2RIG6K!ts
z&D6_J@w#ZM_E3i0-)t%=ja*xUkBqdg^${~EXU_AR1`pyG+Qta!o=prdxu!k_*)6<3
zZpCk*(NstoFEhE&nuZQ3>q(#Cvi+EctVJdD&%ARde>l}@%lxp27CX?LmFbf#a2vsS
zh3?-Rb?vSU_1brRcMiXRj8s1cP?FQ-{QcBLLBDy<OjM6%llwyT=Uemw{fx=B{l5wX
zV)y-4uJXc^_Y>?O^h@eVx~plVjU(4tTCeQ|SjhAxXc9pYrOB@0JqDe*l0gIR-wb1i
zvve<)v@D@W0BFTwW&MQDy!u(HG)~lS#P#v#7<=M+>Y_Tj36vSph>c6&{lhoK;iaQ$
zp*aJ(1m;uHyGb~Y@{8vKGNYr9bwQ}X!yvnE`%e2kSGnel{)f@47ZX2z68{R~%9~le
zHw`s%SyUZq{8W&<<DIjkcjJItO}`3xY_(X7#gc^NszeyBM4XSd+C;F-pKjD#tLcjO
zHb@ym8WKfaxFm}N6%y3}f=543Zx{vQZMK4obTYsHx_`#~^7;K||9ArmsttMmI{DS8
zoXvk%A=)>gQXTeDk3GgGmU^f@;NXZw`4^D^u<enQ)$GvpN^&1mEc(iW8kq)_P~T^|
zttM7Yly+<K2J)G}$^zIe+n`Wxs?3K`YY%?@gJqWDYENjZKwDk0gjnodpPfVjqcW;s
zNzm3kUgj7Y?x?xL9yl@4&R=OC9$f}<l3IMh$w0{!r9jQz5=3D0W1a)Wi4z*1MMEyU
zEN_wAzx)32yoH0r3kDQWQq>SnqnTwE%1K2TH(r<jujGmEZCkeF1OC!dv2Ur2bQYdZ
zrX>pskeGbf(@#lRTDQ~sm)D;fR?T_l&}HQ%^|#58=k%nOcVD&SQoN$TD5vRy6h{#)
zU?V95>#<^<Q#-k*>!*M1d1q|5g14fckYa}AXJ}U3bLuod{Tzyn+Z(*fqlbQoP}Ysk
z9BnY<Wwc|!{sP}@kt?~9f{cePUwge^Gxz^G6#JULpUgQ;H)9)J+y3Om?f&B#7mHW2
z-I)WwK6+h<F60N^HG*iRhyOB=rHO4ZDp_;4;l2v`3N?-;N!*ik3#h-L!x)GizO_B~
z9yn`dPZ1@OJ?K|%K%=bQegZj7=V3XJdob#>DPu(?MikE+A^C)IP(v3*lX-LDnD8RI
zdAHWH+`)<GFO`W6fz)x82?LlE+`r_e(R8#FC)O5ij&GET#CO*#avJ8|^C-Y<a3#)x
z%0YSYyr7)7s<z@g1TTJQOBt1Ak!i^S$8O>?S0{mSi+8iz;H(<!l3RFQ#t5p?S=+Dj
z`C2r=^YHucvoq|r7vq5`j*7n5YYbYqG$TzG24rYW`uW!;sOSGY<rM`)I{*UZOsZp4
zJ@LgrB>G#I_|{M6t-uwUkvXY|BqTGH-QS<d`R7H!u3z;Ev)vLUkbv4tj)!ZqFpcr&
zn5hJ>rlVEw%ptGSFx+BH+xEHJ5A$fDw%KZ>okm2ft<R=uK2*_1tW2TD02C+XGf$2{
zj#U7X|FNOTtoHW(`*F%W>ZPr`b0xgl59eVYSvvDHOacT3oabaX%oT7S)^K-6?sRWx
z1JEO}N{to2L#8ehn*65nAr2IU5^b|Cw^JKo)w0{$r?(t16TKvHdyJz@V@Hadi7AYV
zAQrM;;8M|Y!pU!{Dz-`29J+qM+(lT8d}~wJ-X@xW)!9H+Jl5-Im>4PCsBb*cMkEo#
zhP2aUrorkmAe9wuiN`oDiVb@FZ}c%GRpdVEHD{o5T^$`p0rE~<=jW|2Z9EN1{bLg|
z-${E!t^-?YvmrVn$<O~K06@Ol6EI0Vm%|$j&x5eJ+`YZq;)&Bg097nuFN+$w{_fTA
zbgBHUA)pd{llE`J2el=PDUUZG0~SH>M44EKV7}SfCt~u8ym@QxN4?VQF?A_Dg8ui2
z*Z(q-h|$wUybK2;uIi$A!MLScUxRX#8ErXkM`QX=x#R9Fay<b8qLe}zHWjHVYZzgo
zv6ijSWa}1jNnjfx6VQ`CX{xN@{L^f65u}Gch)MUt4ysZH9KDYPG(MP5KywY-wcE~Q
z{*~=zdR&y|0>Y?^#e5e!6@fR37!8009Hha6TV2Cs(&j_iEEXSkhiD1N90>fGhmLqv
zc;fq^uXoPu2HKMlZ%-sm62A4OB<}QPR8!yp()otQZ1?vTorzxXO|Indv<6^=!?ftV
z_e#-=Bge&<=TkZt!O=+&YW8BbU5y3wF?a{ljiK56RY}|*P{Yy{^!aZT+U;_&pso;<
z5aABtSn)0&K0_>qhJx601(R&4r+@LA5@o1P&0Y2I!OqYUy<o<=Zc^FLjv5;rO*p{|
zaX4hJFiJ5s;+N$1`?S;Fw^wC9YaBqP0YjjnANN9?C4IS<z&q>1%BvTc3<nWq3lG3r
z$!$YXX2sy|WbOfomdEDuF;_h?Wrv`aJNPK^^3~72ELzjw$-5jWp3Nteval`Cc^)V5
zA`)SOKZ0dj^7A{NHH&{*2uL7j6w|GsU2x+0Lsh33#_kKb7FP6Let{8-<)xHzU(rMx
z$6aOG3~>GFPiL>Yw-Z56z_QQDP~KSj7JEidO(MAHiMML&13k?|BbC9C;;A}SJFnsQ
zO#+R~zrc4mk_BxCWCAP^da07WvOhNM82?ocH~SZV-SA{H%O~Rx$AEQ6n4`)o|H3$s
zj<4HYy*Y(V9UOF|@JTS^^B1(^vyg`@cAA1*=V#*&H4=^=EFj(QKOGdm*a;xSxhHZL
z)VVj*?|)Kew@rxm#+dgx>-hZ8`dMKjW7J{!gV~ns;!>qK`SB*J9LhI+GHUeb!C{Cm
z!9|VM#oVd~eOjN)@`ge2s_Elrf2E&a;Y}6-*@jy4l1~SD?|`%5f1cc_3?MCz;}=oT
zj5!^aRy_Old;=7Ds!Y7@NtFfJzs~pGg1$d5K}OeA4mIke-3Quf)-!vr6Ervm5U7kF
z!Nh~`v3Z&noNYt}F$c6XG{1C&tsJ=0C`+$Igo?2a5#rKz*L|-m$4&&ndIGFQcAXzb
z6n}g=cnN(`GVr;Z0tw&yj}EHl&xbtOTL)4>PW&PeL+r>#y%6fglHIO<C%_JbxLgBi
z5T?YHs?9&#Or;+fe#^``^0aoPKKE5c^TZHB)-gx%yYxs51(j&i5XOt#acJb{kIjyk
z&|1{a{(FJ&aZE=o&x;2IKHnbO-3bt3IkS39fI(kVR3-#4G?pavQ59yF9&6|1H`_Ao
z96Kq>kv`Bc1a)Y7!)uL3R;JD@&kuykT0DBaH8=fZ9GajEWn<hOgw2Eh;Y1BzZj+C1
z<%u}48UBB9;;h5|>mU0+)z&oM4j6$-j6Tfzg(E<oos_tWs!)EBJ{0T|Ihe>Hr8%4#
z1O{%ETYe`#AlQfKQnC^9?IDC%!nfSJ!FQ4K4E?yp*zbIglgPp+`Qp$X|7PJc5H!!_
zR7VHEtZjdA+N~53hMCu}WSO(0a#UWE;A{)P`~`JC$&y7^L9|=<ch1>sVcdvx1$NiO
z-;{l={}1B!TtRbJ_!F-2*s7T?Ngb}?-CHHdmQIORh!Ug9L_IC+1GRqe9m@B2Ap?N0
zIK2n9;w<f#1*7j+A&t>sCV{}xGz1QBixA7k-BuNy1LScVCSY5LjU!d_Dkyt87B)UF
z497-q;UoSuS+nZuXAaU2te+p#Rd(tus%m7xLE)4Quu8*QP{4zU8Oz3HOENlV=z1Jf
zeEP)noSUN7bUW*}T$-3o+Nd4DD@oC^cy)>)eUI|mGFnjjzPS;?qQ&wz_sFG`jXjfD
zmR_vtuJFfCPT);}X{)DOhq52^W2`#$u&)7^`gvGg(mtayqq=RL9yH;*2>ijrUn>2G
zl>X%CoaYOUd&j}(10i_^6vNs6N$T65kdR{mcCBy)s6LYs2D%_4vE;Bf>?$QfZpoLe
zWa(94P{fMlzdJ6Dsx>wsuRKRp2}s)oBATZdKUk$(o-g|CustdYpLHs-d%ik@v#GJo
z_fuYWJ*<eu1P@~CTX1Wm2S#{UqF&{+Iy3Y3*i{Z)2siJS2sEL@i5Ou?3^HSul+E;5
z*c>6n@P!hlwC<;gJQfZ2(y59^yX!OFhFsviKD>-yn-W#7`y-{3lmyf>dK;TDaGp#u
zk(u7u(nXlh=xvRpF&kaXwci%UOSXWGvv8p~C$DIZ=?Z<K6T#{l>Zy(XMrZ!IVKN&b
zPF3DK?r#qgA_`IwQUiv9A8F#IYpzEW<_5@m?k3K?)^W>Loj|r&{-E6^GxQ<rcNHk3
z;vQ*xE`bfSx%I-1X}x~1zB_u(42H7X?BdQ2?7*dv$xFf!a6SXAVfH3}BV&p6gYBJ=
z7OQWRRmqO)DJ_YILh=c^=;WE;J?#y??<BKhxhbF$uUBb$t<3m4my~u|%Y=@|xS{EH
z@91c^v9Xnw%8QMGO0P?2IYBAadWNu+{$5>W)rm6$&nbfkp}Uv39e&`rTa5;P0rMgy
zlewwCeGO4f)?hDggT2!V9Qk7SJf3EH*CH!TM>3Omp^5h4;=GLHP94#pzmVe4G#znz
znw&}XN|}t+Oo%=oUh21vPNkWE2HaBRL(0ld@DDKCpCj9f^;f1MNe8jP=;Uw%5nrUX
ze8cAO;>%Yn=A+e$f8rqVqvs|Svz*L#mO{QJlR+AD`u)OJ5sjO)N&G(Vc|4p3(FCzx
zG{L1dv2|;=y|QcYt9d3<t&S*oAEO-fLZY7DYyIPch)sIj9CfA1M{P8Fyx}K6{6xd1
z*kWGP!c*HHH+Ig4P`5(LTVJhHbzX#H`3@ze2E?Nzd;;vA?`q2E4YS`L1G1!!r+58>
zT3__e7BlBsu^Ia{&2RH5u}{KI)2lWPM49t;O#=l;2@T&a<+Aj4cKjW;{%O9oJ;kh>
zATGqEs1pCk&3Z^F9&@7@KyB`3wf-<Ik9$<9(nN^GxMWs~+I@D&-tAP$|Fu<rhpCO0
zJAX7)-ik1dJ50|$D4132dx93;#U~sbeOB-!3&M}CllOUQK2aeQILGiGtMraW$!WK5
z&$I0jNcgnlBz7wg%CO(sn)7|4>c`7=x+~_D8n8)KJHhhBIg8~$&2)Uf>tb`zJy*k6
z<I*_Zl4tt)3jU0;5tXOx-)mcnbW4{&(fl7K|Ek(n&Z`3qCpNzB9^URZN~lQ?5aV&z
z(7I2&LHb*Z%*2v~)QHRNi2Nn*|Acpau+{Qjsp;W!)G?s}QDsMv@^%x@qI21nZ1<$?
zoUgOTI5(CVF(5sUd8pJHt01y!vEtW5?6$=kK!+Kde9-Bi{kQt<)}7ifE?bPszNXye
zlyCN66+o1Q*7?jCFYphGqLPwI-Ce8jg)up@n@OdbU_;m<NBweY#!0yhTvS&c3u{m>
zk~Ot7g-%!JH2dS8uiPNI)U=sGJU6-eMoa(=I#n642-GGtY;Fo;hJ;z-mS*0@u{6LR
z%QY<ucGMN(`D_vjQpIrIx^6!t-x%h3+%3oCD&2FO_4~|REWYt>(YC!>a^oR8d$pu-
zEMqBugN3cT4b@VG_t%k^Uq2rST;5i+mGP3mI!og%1X6vAJ}in1B(f`c>1q-d=T=6G
zR!i=44(TKrJdhsX)t%H~w}rXUN}hYG0YIS%&p-Rl!4}9SIL0quKLleD_3O6n<=&0?
zl5!>vjQ{}=d;ZF?<quL-n7z=_!?x<C{7Fu4P%2*dqn7wY;*j68xOrO!M2?6qW@2r#
zuzhjseq+^JG%VbhxG7_DV;Ud&OfykF2f`%-`n9@fC}=n2<I&rBZ+JXjIzIwSu#4)~
ztILiJnXUG#TfULL{>@rs)Gs+6?4ws`V*SzS6*v;1!HIgT(7<dXi0rwlO%r1lBNk2r
z(_9^!`?d7bn?n6&KTv9wjy<OTlXOpzy--0<vV~iVOLG6~&H<Bq3)`TG!o9J{4=og2
zoS6fS^SIw~hABnWBo4JNtD?Ik80jAKjniG}OjI}nBC>|_{v+9pVRE5`URX$<P^oFv
zqlw+iR7jBmrzUfdtGk4sQV#2zM={0BJNz38zg$~VSf;1NKkv`yG%WO_b;qc-IK1t3
zM^WCUaf?Y7NT#8vE<w>laKqDb)E7$de%Lfw=x1-WDn1i^?%)pHLYM91D`oi9q(Teu
z6E#VxPO5i<PJ>jE_S_4*>qASAr>#reeyA8*X2Gx%p5L_QBOFNkI8VDf(UZk19g(CD
zHCr<DsJ|*{y)_v0!?@^Ap4<~CVKoHqg)HVYxbRmp(4;YFG4^@qbr*0_M?_C3nhOKh
zE{3vKC0~{kuehDm7+}Hb1xsi}K_)y;Dk+xN9L{g|9{P>sgH0MztYJ2mof9=xL@DBr
z=)0{c_KusbqEq7e2fk3b$clLHG8ZhSdOs=bYYuOVG9v7iY6L(lfW5!<yY&vEZPE)f
z_Iu-1wdEC|8GFtwBU+7{?m<2OESyGRmfNBoTmoI%Z4mO3bnov_QQXQ68S=hwQ^Qwm
z&)Lc!gK)B5;+wEW%=j&FV+vvgIEr(GTo-$deTU&b`hb;tB{pL`GbO}I$d#P)zUNSe
z-CHyDLE(pKW78T&&@pc+tvN|8M$MU1@hG>$*H*KMjZ+f|i&@PAq@KlH+$*YysV_%N
zEujyweVz!IK)`WF*sbEa-nhvLcEJ}ZmPx@?+*)_W)im5{i%siCXGIjMD|+;}+PP%P
z6v2l;Xv^~{?PO+O5w-pbaK=)_>2o-(fTQk|UZ(jI@26uUWk;TEn0*I(UV&J~y0$+`
zT-C8Itl)WFJ7dQ>x==^PQf!NaQ1-@oF-i2M4T3LK2R}>XkZh;5YK2w~G4ds>=cpW(
z?ZsZ0ooSxX99(i)3}~hrk3ob)rTBY2YU^r`>392@(gqB=)$hli%~fiIsz@~&`(9~n
z-Qp<X`Mmu{&Hs4k9NGI;eA1X01x)038?NlxzBi)OOhDFuducdtPC!b`?c%n)q=dkr
zni7e>bDEJm)_2}}poS(6=s@6(ESj*7<*tDtd47pG+}K2t!iC`A$1DeeEX5@|T7V+T
z;MVLD&ilktwMSJSLtD6_tq#WrUXfxEiO3^#U2M|9ih=zfx}d%YrIl44<F`>se#F%E
zJZgnhML=`Nl>2YS;+T{-UmgldxVqWjBQOHuy_@6gFtgg6MpXxQff3^M*@D6TQ_+Id
zb0p+VeaBC4B>QTDcgJD!Vx+_0n~o;D;<(ia*eXOcuBJ*i^92ASl;~^dh;!|)h*T#^
zOcznS`8%If6^LihN4g_0?<IBsde`Tf%6<9baMkId{;^ARlqEtuyiZ%dTSb1~$yWYt
zg<i4?b+nn?nQ55&N~_O#A0OON&PJ5atT8UBPTC?@_}es^P?d7>L!rNdVbmo}C&pHA
zpZxSTJa$p;RC>VFF6g6vWRJGVZEuxx$w*-j>!ZCnt+78+@WqhXNRavj^)qcq6i4Sz
zJ-=vJ>QpRsHiw`8(RzR4RunKdw>LrH+>ZM{VcG)wRJwiVI{~$jA$QZqUR=Uws_G`z
z4~`*&;)}|dXnjN7emH<2FP7<omMZB#q%^#Px9Ss1B}nMlI!U1NruxwyQGV*T^)zHx
zyP!eQ;Wj3j)y7L*FT@7*d2HPLSvBJ(ll`{sVm~iWSNh8^OAVZT?8!LJ_P91P{kJAN
zHN>t;exU7F`NrrEx6v%*rQ?Kb)8u0oD8(>mf~cV!?vvsBy!>*beDzA*guv8L1sk`Z
z$O2SvD>pF-^~{otZ217B!%9W}n4$L;bUrL~0Fy)=+^HBPC97F$;^=y8R5cp>5$m$2
z->BHd<tGV?S#<p@tc1x#BU#V7PuaKJn2HFH`ou223IIm?B*ysYXL4XaL#av}Z^h5c
z&!?G~9C3eJWy({L0ddvtV*R2rh*?`SFc*9N&{llJ{y(spomq%^-PF#{q$F{NeXEYU
z0<%_M5z9w|?4q+O+9fn*<-QvjYi*s7i^xHJi^46vF-$$1nq)gvh`I9<|8#p3TvTGO
zECbBX?XOFra%1C5Ly?{^7t7)EU=^R2X^%5Lr4MALi~aJnOM?z95@jd|u*fs2nLajG
z>q?}s9~db5tk~|Gc&#yDMyZoISO0p@7g=X4*?2ZhjZdiSHVxr_3i!HnrT{RaS41d^
zH!ONL5Ywze?OIx@a-ouneKSo~Rh9@+vP#*O&}(u6jOjMiq<tagYtJl(qKBqYP?F}z
z*YfqVN`u)=7ESiT*Dc4ovWJ8_RQjS`o}bAshViS$9PMY6e*jYjdT;kWDKI*l(3{Ti
zo&CD{EHWTDY#^S@{>bF+0;}laix?x_spzeWEd3nrHk+2``tQWqzLl4onoyr>w@h)b
zMcSt5ACt^xKQrTg_}a(UPQp=!2t^xFwgfV<M1?n=p^2H!o8nm~L@BCnck#tPD$p6#
zR|Bro5KaH?Q)hRa5y_|V=~MYq4+EQa)s9yxY-}P#Dzb<Jh7a9}2-F>^Vg6Pogh{(|
zE;Z0_tPq6fJ*Og|RJzlod3e_Pn$7(US36RN;khXONO?)Q@^Yj=_Tm#>KLY@Ub<Lk%
zzDXWQ+HZZ9Hq$=-la1IKyA{x}#EuZsGHwgn=;>N`XqecD;f=FqpdP}i1Ifr5pyKue
zyqiC@pa$@H5E%r1PxcJgR>_e<EtrF4sWvTp(3JTf=WIPGk?p{zPC4h`k)q>57d7%H
zKQMk4HNb0R3q2I}n1rJls&+vY`j0#V`ywOK<d2a=vO~8!u|MR@@IsSO>->z;H)RNf
zO^Ubbc_MT!m_k62)Xo;XZ9$-<zyFhOS!I){b=_pX@3x}%{6@k|z^8^Vu^DGzI1a34
z>9Wda86D6nx=Ue~Unim#tCLpB#dxLW!3*(}8VJupjlsjw1TS$(N@8ih_aX@`BFJuQ
zf_zW`Am0>$E85oV%@l+>7>cJfjAp*iI^UBTP<_+r?>5mWB^M>HhOC_`FcaDGyAii9
zcTSeQ##HH3cWk4oGXm%R(-ICMbS5$!j5&6sess)q16|iuEINsggVGQg&aGeH*&g(t
zHR*<@csD>r!!ysw@9|9I8_8eePx{Cj9x}v#_Dh3|rUoa9eqk|ef92S@-=O_vA2JYc
zrB|w2Fpnt(xf;cvloyE@)kt_b=Gq%rw>QI|e`>5>FH(XaHR8Yym3nxCqgrCXzscZ-
zAA(5=VjHO}%W{;z!@V1HMaiBezGD6H1$H6+lyd|5jXyns>enT|LusCLv>E$0iGEsZ
z>Qzb{m;LwsxfEs1gEixkB`Qb#qw=ER6bkO5m+4x<_NCqW3v>z%Z=mkpNkssZxMqvA
zr2k{jr`9x3MS~Z^6BJ3*L_~^~uqW_Yk?Aa!a}&Q~xj*WAHg(B+QMbw(G_1q!yWm_*
zEIJb$=d&u)rS-Xcq74^{(jaAk=46VB3aOnxK`#fYwUn{VGesxbT#5|{cbDiS4is20
z;db9wsklR|pIazGh|W-Shmps3gF=9sWOYnpdi+$pHS=GUl{f!>o4l3usB9LTT>56T
zFt(uL*)@$v!VZsM&1>_vyyS%^)BQXSf)Djxqa|sW*WPg|f&4kACJa~iAjjgvPZP8W
z_b?8X%|l7pPsZBANi<DNYs`ZqDZaO+o(TGyQ0652&Zn`TYc{@M?;%=JrBEZ#NYLq{
zvek<1pHI9~^k|!NrcO(`O1=cG3^d<_mt+{S6<cV?R+nG4*%3%@eh?h~z14e=pzy+w
z?}H&TtNAFAl4|&+tXt!VsVP7)lpGmZK<1?7`&NT#t0y)JxW*1IGNR-au$!5c<i*?T
zTzKatRuea~xYq`@#IKkGg~eV8R2Fu`^4yzcuEN^kxrJ2v(aG}E0hT6>xN#;Th-J4+
zshA@8BhKQL!(tOx<^gIWJ;s-VPUHDlE_h~gyd*+nw(U3fN&jW-iibm)myY~H(%}^2
z&o|c#Z*`sq<}J6>w$-ISk0J3R6bkR)gIfd`9%7W*^_T}2HDh#|)f;#nQwtdwB^#GJ
z`T?PZTLj(Dv3k>SMBK?9S_2r_CQA{$%DmHru@5=~3Fw76JyXp(g6!9Bm!e2vZu!65
z^w)XIWE95>=J>xsgGTQdwRj8!Xo8G;(S!BDR1kbUH=amIxzc%QPPyW}wTe?NCZVAj
z4g|pzEENr{qaDY;Zb>EphS-mQeIe|CsW=nBRz_6UJ=gAyGk~^E8~q|ESMWMb+r)qH
zawhm=kNg<Walf{X@#<E0DS4H-{0{mpny_WsLr4iXje}*lA9x3M)$nB8MM)r2Mzl&c
zAZa7S$1jKI#J>2SMTKJ-{=5u<N3?yzNHFu+M%BWot~<M<Z;ATiMtWz5axMAoI0Ibx
zvE!UDy2}RY=fFhY`B!tQN$NyibIpww<XZpx`RlE#hF-*uk{2i;Fzz}|o&SL5xvIs=
z;P7fsPps=wiN;XDT)E*JJb5Z2fvWfDCDe(TDu!iMAtX^G$&j(JN|>CRhP*c6kwiG|
zGj-w0`vZ&q&0kV$?_Wjq(;cVsyaaA7E{UY|ca`kbJAOXD2@D}^UmaUOE^W4)-~#>n
za;B*2b8lIF+J4_jm^z>nVH4*!;z#ij(Fc36l~R93-((KI2&;$nEQ2n~+!&Cw&r@~-
z4LP#t|1d1rK^lW5SpEVJv=FakpozbX?HGV!3#?uzgYRV?q$RQ~pzn<xVS<*>v$aj|
z|5${*#5d~TiIu=Utd3I()g8fA1tIQCArV$$0B1pHWl=U{Cp4b94xsQNGFJ?f@uWz;
z-qhk?(&{U5Tto{kirO*HPa@qaSoza#V4~G!BXN?`F8;Ppc9zBSZ-;N{+G#rdUcqgs
z&}w88b3{FQ$MOwPkIu3$^~AKvjbdFq3$h#Q=N)=x_9k^=s_D3GPJT(fRr62i?v_~a
zOJ8#A=c4^omC8zCqQqr&=sAu}?>>{Gc<jz~rc(5QXM05EVi+^9>o2J&-G8|@Gd6J`
zGgttz@x0FCe>q+J;yAv+jKYaIT{2aZ@~dpg7b!l=|Lm#^aH)r=ImfZs`nS1KZ`U0v
z<v+cfR(gC_ElK*%ZeL-}Y1RaQf-A(<=7aG=ce<K4ie1+f1DaxTR-c25K1igDFkcY7
zX7tM(h<m+jG@2lC0ZCTvqz!#zaMLkbKmTI}Y)_zI>^?+n3i21mSj|6*CeK>=!C+LD
z5$}81%A{Y{j5(rLsP7svj*9pE{Y&a`j>?!{H{Ih_R>h-HE?PjHnTwZo`*<M{tV&!i
zc3S&*&hdkvAWBZui59)hUU<f5#%)D${HSK&#n+#nqC1J%hkVb@<Py9C!(HhuCQe`6
zu&)@}V>@63gl$bE8`Zu8JJN8!g@V`$D?Ewkrz#4cFw57dj!~vzuxHv}-@Lf@VNsY`
zJ;9!^%L*?a^tu=GF1Aue*qLB}mY8FJv1>5y)0<FH9FkcP_&b2NVMsC&MB}^q6=4Rf
zneb!ahM|3MBSIWEt6lw!ai6^yJatS%6;AC@!PE~3hvd$w^_tKxP^(K(uJV0-$B$Df
zVt`@ZJ9*gHdD8?a@SdYb1d?S23?OAi;T1aP&&9%fSwq<PVtC3DUj*Y`;lQOd&q<+>
zBGtDeSMy4?OypRNg87=w0g?_BJOQM1Y_lF`<pj{iUh*k!70mTE*^;3IJnyZB=rOeS
zCB7<g+8-a65r%tSzu2S{6_}YFECaJugDP<a)aM;Ur<y$(lL(6sO*9mrYg-ef?_T22
zF3Y~4OcJ57t?N3Vm^~Cqa(Gmk`h`|y42yrcv9*8k@TaTUsOphbJ}B;+8|OyjBO~(a
zrpSza8ApG~hBLP$g@WlE8#@=}B;p-?zej^;MUx7rtQ5u$K8Mxhcje80*H99^w5hH8
zL~~7P^Xh~iubJ*r9D<rn1TkvOn_4<E1!=nYF`=X@=EQuT)0KJ)I;ylh#e;FqwU_ll
zFQ&mCeB6Qu;i$PBln!lHlk$If(`y^Wooj37tsFYH^X>jyq~j@NQr+*ohE!>u0-xXq
zz0EAE8h48l-rWUINX$8qb{7;6krY)lc1#OUN6xwk6&0bM&N~HgSIvob=Z)gS#K=5S
z0>n*TYiBhV+cGK8C5dAL77}5}iA$CQ57k((Z)NOL8(*v#%?j7`oCq9+_8Cakq;R@t
zVc_cg?}Sq`@sx{?nzH-W(#=WGp0=c%RQm66dGoa+T01x2$m*A8<P2CcqpDZ{iAdbN
z=_fyczV8pN6l&=-UO#;5#p4>t{+dWMT^ZY1^&M%;n-I@GQxXq~=YP%B-0jG^5P1Bl
z#oSJ{*vW6vgU1$XYF|k4#}kosn=J1kpbxksI{rnGd8v4+1}Y916tP_3!$Wnav`w_g
zWU6BM`6ap3pN^Mqkar$#)dWyJw+v$6ng&?C&X<n-%Fx*q6zz3Nx$c>J`AfEjyDhr8
z_wD=R7Dh7KC6A_JPXfe5af%5i9;0xo*q>pY<|<R}m`IilZ%UKC*3jJuKyEQ`(;Krf
zlKo~b22Y*{o|{-+ubtBq!Z?9!>EHd&&2u?{3-!upM9I5pes5X$wZp}`RK?<r!`-)*
zUJFYol?kVgfzvv~rV^~-;r4S7yKS?Ej|;0FUHjkeyhw2odGoCy-zIqmEt4;o^ZPWr
zBI&e-Q08tz4GZ2De_0iOSQ@^RQt)Vq9><-n`_&}3oWFlePKPUAl=s?~EuCS9q1J+5
zU(+ReBJNCo>uSoF=b3UUCNNjg=T+B^%I&&=?Mpov*hpANBz1%kZ!)PDF?n`c%-6U-
zV;+rTijtv%P~V=@2?0?(l7@F@7#J^$spZ{g7~oedzU#Am$sYh7N29T22P~|c)X0Nr
zb2GRRbk-ZMK;^Vg-jdTDv!!kFZ0Oits6@^@hIBEQ(W*qc$3BuWVtJdn6r0#EB?Z?I
zI9K^K1VsxdJ-p@RCcsdXd7Isq*?z!KW1dJ$)rqw9j1S5$tE(cvTeBu8A<ODi#aDcx
z^w2p|!FT`uYhF=Cmv%%B86iW<!C+(Jv{y`JGmih_&EUlMSDt63eU<NrR>>fub9fP*
z2oeDSdkK{jxuaEox+RTgKJ(-2>QZwq#lL=)Khc<G22~;otqVkzuvO@aIN}TzO0Cp2
z$K1I5j%RhF0*>)M^Cg2JHeuD5uj`52vFkz*8|*76R8QfSmGjB8Gh*YbXBVf>-f{Ia
zXvF;|?u~v6LRn4bR9zV^wRo$9iaDBJ1={W6DDYuTvtdy|R6%LUB?IaaBMTMgo^6(r
zqJYB$m}L|v7&|ke#-z+eY<-N+Q5?x+Qd_v-v<PsLb@Vl1Ly+CIjHW!|%PuQdSU2l+
z4>08zSPi_P4tq24xbD$X;4-VrOg2^5HgmBEs@9pzCf|F)slJPYF^ZH-_0|fB3>ijU
z+GW2ZvW^4CELmNQivSo7ZxehzmhAcBXTr6|c|N~6eO0YQOUGkwdzN?4RP0WP;VaQd
z#jVvb8sUY<Ud!(Dx#68(ElOEpzo$Owb#`<sR#DStE-^aPlhG_OGj3lw=0P+(8ve7M
z-R!|gY;%xT@IFev@~21M>Yerc-XB2N8gPQAJ~BcYk)sVTrtIH-CkwvpSl(Xt%bk%>
zxzl7cwl_2Pt_TB`T;X!mlbVtVyFO>VT{u8bAMdHK`o2X~8O)}`wf65nTB!{E8N}ke
zP1XOvrind~P$J*?xP$(EW%x+ajzvS~Y(dEc2eKznbp(<Yi`zJfoQ=MC>DxGFFrQ_y
zF|BZH;#kBI6CS76e|K7(HG?zP4)aKoKr&Z3?n|0`my2i1v@4gWdEZUa#C=u9m5Cs*
zy4|RLNh25ITpUT2Xks4^lBUj8fLt>rR99mP8BW&wpV-uh_UvX}Q|JedVke$q8$QPG
zJ+x?9-nQ1>IluE!UG5I-GNDS|uEf-C=1L|84=Xe+lWM@XRG)?QZsj0a8upGX!Hpjp
zep8(N)#WWxG_*ZiWtC96xm*SO7d@!kVN?J28%xR|3zj()Txco@T;@rt&|u!WVSJfk
zC~qu^o?#vk&dgg6H)G$rng(dJ_LfLA`q&W|yWs(D!eYm)vDY%@j=PI3&P<(UjzHh#
z9Jh-pKPt<GNncttax$6&q*jLN^S%c%=8q-Gkt}Row)d`rivx`~Qgf#01){Z*3sWIg
zc6nkS<0&^&Ix10FIb{lv{@HVf6vO1LvzU_JTg6gGJe=h=v-^Z&>)JJ&63B%%0ex<E
zkF`UtL!!W$qpEI);Gz-MS4?~vUDkwQMi%b+1Enoaq!ld%1`3wNlPN_#fGE*Snkb&6
zlH^FnIyU=pWN`s1C!<UT(tm!=+GiMRdloYkr$wZgs&epNw`rcWfuPRO{UI51hdts?
zlU5cM-mj@^RPmgWy=9D=(xugmYu|GJ`X1p<IQqA{{gBm`_hOm(vDMFe;-gy3{Gg?G
z@#r^2A!`ArDv2On&zx5~Okyzo5Cjk3v=DC2OX-fbqWg`0-&ZBaF^?j!*^&FrGpppv
zPBli`uPQYkxT4ZJYQ!aqSY%52v{T8X0$fTHYo8nW8WTmL9f|}S+0FNoi|NgRNNNl&
zDRc{@SS+6X%q!I8z?Ag9BcT^KNNq|SYP`*gPet+j<vjA3wp1ASvJ#NwZ=xV(o8ngI
z`txdv3>^@tay=Gk8iAp^_XdNpfZun<HAIQxd54V-?4>lPi0JL{@apJN6?U=tTX9DH
zN|C8}LVLWs7?c-2N8M&az`B^K#=lF)6#-YiW0V@8o9XyeMt=9CM>R9%Djzae{2A)*
z`&^dkF$+c=&cEQdi5yl|rE}l45ci1;J3FkoS6jg5*SDyJh8ZFqur4{zS1(`UiYVm+
z4nH~YQ2eyT7r_`7-zaM*^rwJG81WT%6U+FId%~38u$#WfDbOc==b$=|!!i_(gW(Qx
zg&&{vd!Pj^6^7iJHP$R0AraG;=3bxM9T|nGGVc!DColx8JnNPv<5LG{Hfq%pO-NCE
z38>G@-@4y7h!shUiBdC^TZ=Z*5oFPOjOt5~(PsoC4n-rG5=}PVbDEvks(C0tztr5I
z|66j^N1|BTXNX8Codt8B{oyrtkrlN{PxeB*Sg2JzshPoT{YM)!iu-b9e_7o@(fACQ
zHNO&%3FLyApf|zL8N+4E7!ZN-lu<LE&|oq3NQPb3R#!@y4S94FK=p=#?yEK8-^Ib0
z0g?P4ye_Tn512YX+5`u&p1#}3u@d?8@x;-w87czwo(*7EKK9RfF`)lJp)>|zEr(wg
zyZSAMosTnwH5+axok`dq9>qQQ<N9>Iqo2T=DVhp-c`<Weor_eY=U<oW$>V1*kNh2f
z`X^4)3R~+&5?!>B&F|chr8SfU%NxH5eHB<hNK-6z|7Y(%fm8kQ>M}Hd+R*%}l6j7S
za~?9JHu4_!ZG3n#MIW=)2z?DWZc3JFCH_$?_(xIT;jKssd$j_U2|gjl%71!<cOelT
zD}ug3HNMwZo0Q{CUp05SVk9Ha#?p*Oupbs>pX|BufiBV%2Ek}x-J?1J<C9;Wpkno^
zR4*p-Bi8GqFT99~P|c%@gi{8V3+7@8ramg-yf*vynyO>nPU~4w&Y}qC90O#(3_m09
z5PSn%GUH8k#8bU?t58MbEawKTcxXZR%%3gFp~XK?_mg@L2f@D`3xu=Vw&^#_gWC5$
zQ+6P$j6Ds>r`&DF@{m~|aM8n~3sm1L?bW|XU<cLG-Jm;@_eRuxyNAAyK;{=7BL#CM
znZM_GOZq0<(F-1NS~=;Ttvg0k4cOJ{guFuOS^J*^ET#07bdy)X!{EM2Mm$@Kamwf#
z=ERwdxGg55U0xc7$U$Cxu!-nU1P77CbsGs$2aiEhL%0PV@=Z+^%kL-CJclL1_^C3=
z;0!vH(MSf$KGcx)J|A1Q9bw?>jdZ&^9a28C=CKH1(#TNG@`wBGbjF*vu(gUA+%B@z
zOaG|rPJ}m~d`I3PQ_3DflitRYnU6)pWMrtHqu-FK+m!!Yl{$jsw+#V&1#2;Qy&%wh
z9au)34v|65@-aQ3nIw<Gi+P)%;|zK__<@}si#;QYM%i_lm4U8gN;2*(yo_PTCVl46
zD~6xl9!Tyy(J3@~rBHAZakYc_W(njO*S^NKk6|3wqs{YurtZBH|5IR|5@I*~hChnl
zGOj8E1bfz?@8=t8Q;|r<yC5&!;ZCo!jdh|{;`0;1+MUE#{CGUYL@{22U35k4(nPgb
z={CDr|AZu(^xhFTS5OBo=}#-_S6X9%fW`_Nr(2Oi#8OXUXQZ+x4o$wm37~HjiG@{W
zw4-R51+~z3`jEN_94Xmbi;4P2!eD_F;93W#qA$dcT$Z*nM$LBNZ${PJ2VD!9CW1|^
z0Lz~DK+v!?umont{eVVNTGPct*!`|x%)dam9J$dHbAD(YuP|}3=%?+(X<dgHkO`rR
zn)!}sksI%*NTdmfAb@>evIy)&(qQG`+#CIiyWEtC+8W8IX<X2OWW&i|O0Gm{pQh|X
zpb2NC!r*6jHuU{3G$h2=de!t$O0O4U&^=%T7EiJEMPH`+;^=8t|30fD@7w|KLFX@u
zb0t?NhgfEE`NN-U3Hk~VJ!eU)rRI!8f5^)U+6MpU4|mb5v1FMf*u@VE14{vyq!k(b
z5=vD3Ui$)R2a6i&9WVc(WOtTHlx3GbgA9I(SYkF1V$pJwe|LKO>X`TLIR68_bJF0)
zeLuJe*jP|1QPWfH3uaHYZit?^KZN3hqG332$lztzgI-{rH81ZShlzb>CN71WKPfbf
z^ts~sytJCc0h=W0AX{cE{9ruz+EG*#nF0u3+Jp*qHg~@o!*#dhzs}#}75w%h`0)t)
zxM40>nqT-`Q}Fc%x$|STN8*{xGyfPTedkgbC;G#0Y)+S=Wnh6)4(ROr86idA%iof+
zw+ti^#F41@!bgLrZb_FK@G3zb-za51N|M!3iB<(tMzUKdfT^jH&U+&~Q@XxzVYde(
zYrv$+mI{EcG-rpmpD(F~*wENn_ZM<)t@yxnW}339Sv?8CMZ|+8jjystK!x#zRWxMW
z527h&ZXs`iR0a!;z`G5x8c%8O`FV9`XuLLPZPjsHEas|Y{$80nv6_Zr5H#w3RVZdx
z$(rl0+iA~aayhx^BZMFkWbXrwb?ZQZ^@rD^kD{tUPLG@l==ShTsZ9UR59)F~v&(x!
zfS5amBjeu$yn5#a87IMT*-ct%Aypb>l0RD`Iy<2suSsozU&h?I1+}2k#L#bDR?O2@
zQl)#ugi+RJ?oLML#H1AdwRhl~{{SJ`oY}B8*BD1uvwF&YPTL$QUP@c%|1@{jZ&AGO
z-<A*wS-L@XVd?IaTsou?31wM85Ku}arDIuOSr(*Wmqv0CkQ5~a>28!#!lK?1@{FJF
zKk>}(Gxt5m+%t0=*Zn%LQ<(0Ytz<xBB5{gQ-OG1eW_LlY=?^o4y&@o425o$Dt~l>-
z#HEEG>!sD1{1y<>m(f}#rJ#onu3(%<nkW;!pVhG6lO{EHmR`vV+x9?Q2-c~7xa6bx
zU_yFZYLsO?8b5sxM!znAx)nQe@fao7P@q<x>-q~>3O^kjeBm5f8FxQ5;k(G<Mzp(q
ztbrE24tAJ5sd9=twlY`q^=v|$ig`gURHGDH@zo=i-*vGI(gAXcpHtJXNuy^HKp*lh
z?2!scgxrV_E_O$mUjhKkPYV2<$zh^uUO9)L#H#*MI~sA1zP=Yx3B_c8^eb+$x#SA?
z#~bXpQVC@SPI0gXcJ(ZUaC_{pR-qIqZsuU}iz}q6p}b^wRA?OImz1<>(im8D{dJA<
zcD8E2zxwlWA}$u13VEtW^Z^Y$_&KAplKbf@%xGE+2q;=_4mI)~UvMF$+#WA-s?X^G
z<lf$<2}bi(ZWV5Xf=TH;1-)s<&c)*{-v7!DUofbc6>J6%pGEoKfknd1Q9o~{14P{e
zl7Qa62k)4lein|kDz_8brCJm{Z(M7n#Y6rfbrf{a^f&t$bUzKJl?hBC(58bqPK(K4
zh&3TUJIL&Gr2y~-zg;hLnwThsx*vC;SLd&8)V{o3-<kX<Kn58aeIE@F!6fAAl5vUP
z{j!^x?;DC_K=XAU9=0=6#DxH@Z{6OJJvfADc}@NZ`bD4v?+Y%0^eN_gG^YWdSF;$h
zUl<OwyL{%Sq@i?pN0wt-wUJ==3FtpA^-magCAGIf>a;EUA)Sr!OfkK<@%rF`fp@#W
zLhvJL^oK_i+A>u6PJ6!lT&<k*-?{ghJ-|7hvt;X+11yuqF@Qaev?Nk7oNjcI%%j4j
z7H)>MG=`M#mgNU;NY8vXuNh`rNbwj>woQi-+vZ<LdU_f%@&VxgJWG#%`lo;PIKI8H
z5=v=g9podiro3k&QB0I}HVhVl0`ze}+W?|@8Zh-Yd-{{yPv^NY_}8Lb`<l3D*+2*{
zppQFMPC*)InhKFiX#;JZVqTRTn@ZLcrr2|py$O&r5cThGqbb9c$C?}FN`(mFe?Zu8
zD(giUuh?rbFd<BIvU+I3p+cqWtrTC-qO(p~ZlP^jXaq`4i+z&A5G9M4oAW|gyM2Qd
zy)n}(R4$sFWdFP*%zHu{kF{Wgdx<<6#}$FkcE8P!_e)p{ia#{U_jCvzi(#9DM+@?0
zS}FTPGrlO!Q$@IEhE%~$->pssB+H=<%ifQ_yplO}>QX<;eq&3r*C9U2LSUfg3M)cZ
zZPh)1q%H<-&zmI}y(n8H9TftgHClMXb##J7mdhopVYU7^=y5LP73|S30d75V&hkOS
z7tV>aIu#*^!2zy-M0}!^6dJ}=;ks*?dD0B&?M^7}{X&R?z7{QX;Qe`b=?P?X+9x?-
z0O6=dPBL7MViid29v^%CF3GDFaMsbz=?T?48h{y<p8bsx95E=wTbKb{UXQ+JSzf8=
z-~W0MPij9-YK>*<m|b+47IN=^I{tBhc}gYo&-Gz^52;R6Ko|-EmIS5EsgHrg<0Y#|
zw!8b!UnG4%IO?Eyk?pbhQ2mzCmi_J+uiDSnrUKP7LiG>hBy1F){UxbF7!)T(RwW*b
z75yR<hTizm9D14M#`11nY)(Vk_3oy`%X5+s6Yj44ZU>zmz?Pv4uk{<nM^?$cJW)`?
z1^>khTHZ9xP2w+xNdVPG(NFn5s*UqeCA|k_ZC%`bQRm=0BJ<%He$B%ZKF+K{?ODb8
z6m{F_P$AqtCYI>xMBIgsYgUk6kNJUlk3T`FJ8ct@+7Kyu`@U0SPW#vHwgh*)on{j8
zzzM6$Fb|Tb<K;O~pCDY)Pvi^UH2AYEsb9hV_&aWR%PuS<(emplXDmD&ci7N=wvXL6
z5v@q^LDX%Nnh=Mg!y7d=+S}ZH0A-zxtpA`Uqa7<B-Mqn&--xNyd93-+@9N%zG8!Hv
zak<`bqH}iIZ67FDQNAPM^nK?v8_H3unhKj$*JGQ@`F5i_*q%`?Nib?{f=@2lLAgZA
zakA;%K691*n<!(GaX`BlhE}wH;U>gA%jLD&Eb~wRTgIxM`TMd4gOR@2AIB+%KS()h
zbZeQ)zE-Mp+CG>05hGmo7^CrY1D?z7-3a`r#(wrF(8iLE3epFIdY|9w*rg@YEKJ+}
zBUQM|OD@#9gtHW863V24R>fwQz19;qhfdgYZ>bzQ%nNWS#hBR3<B-HUkYSb&Ik;E-
ziER&GGB38;Jzb*=3Q65b8fm25<W$@&9KuA3YgX(&Vh)(=<0%+p@4b4chwZn#6)~`|
zw>3Z)2f>sBnU<KajK!O5E@k?S`Tg#tszyrgD4p{|2)-Il<K0(vlwHWKoxy~X1=B<E
zk~q}h0aKCo|46ifyj-_`B$}1mKN1ZM`$wV;mYd143i93Q?1&Xzlm1=z7Xz3>c}AqQ
zJ4WPeo#Hkx`lbYB+*c`ul2|Qenm)EvP+37)SFfo8mT~JVByrN2r_Sw}c3I<Z8MTeg
zU|-uQc&#%`@l7FHo>}!5YM5*@5BYSRyW=aFx7h~$(nqY}^ZjSqaP==38AEb-w0JwP
zbC5~sTUv@_7$jp9Htgp9@JkgQ9Gx>gt_gLuqA+N3Qj14or6aEHnRi7x9R-j!X#kMg
zNjg`}K^r+RWGuG()l_BfF?~vA%sc0kb8d)%P^KG$-PFhDAU9OqHpI5NFE#nc%|6Y(
z+HpZ*fFPTE%!(BOd=w-*X*7aZ1U@of%Df_bF;ICiwU<t4{|2nntG*2@-F7C81>;ow
znDKSy-du>_OXIoc1qqO-?DE@}SkHdM;Qb^=lgxJk8><!p$?|Ap7Z=O0FD~4CnR3zk
zCEZ8SVMr-U`mbk>1IBdY_a4`9Rba&gc?-P6t?l2U7*xJ%HiRqqWN+Q75#syDU=8AB
zu0`Sn>b1mXhcH(b>(NmD;}12A#NGQ4a(ejA#{ku_JY&h*T#J>D7UdI65qBVY(6Mrs
zf0j5SVP}LSVLuE3ac+T5?W>@eV4ae#h;NcR!x8ue4SnD(dF6lb=Hm0yC0$nSTqsuV
zH|x+p=<Bj#!DzlDa}Vka(4?v4UEq6~zZ?}LR=^0ZxP8AhE2J~)kZw+ttMAW+$T;g=
zvVj}pMoBt3lH!sr7pk$cZgry4Lraa|FA4vLeo2}mz&fDW{-S69)g;gxKjksCAi&1j
z#V2|<OqVGc34hka?zg@msj{lR+_8P<?BNk7iL898lBR2}mzB9vkVE~$25mOtmjJqE
zoX>wx-p+azoSGl;&?cE0W?p_b;3%9)?=D+ZY_IyY^xV1O_qy3+SF2v|LD1weF_3sa
zq%+{;hD+RAe0$}=jx7D6q8+Bt=g-Of%1c#+$A~M<1(KY`zz0d;VlkU%BBYpJ6~^T1
zY>`yDD%~H9h<h^Te7?^bqXR1ZbK`+7lL5xV{!Vqd@65;3%nHuGe_lOX+TXemHOvfK
zVgX$sexXEvR<J933}nC6r>|h`7d?8E%@H#2wjrA-E%Dg_*d2yGItEmC_U5)XDRT|$
zckw_~ab{Vds-Tmy^=%Hm1EuEhxo454wALEUmoqn^BNITXy*nl5>hm6eC77Rra|o(M
z+*iL@5Es%jUl>dBTH$R(2CsFxfEM4*=l@AmeR`;8ma8dRIb>Qi+w^0=`U-olpVAvj
zL!0J}pWc%W2v<&c8G}n4O3ZGLVx@|Wpn(usTbsFN%8oSonU?hxsXx)6-M%BU-103{
zioi47Na~=XB}Mf(6A-^0CKWk*?aO-&3OGG1k+K+NbEmn+{+=R=9u~zwc$Bnl#yf7!
zpE7uk3J;!g4{+y{bgY&A2nnFMCbLZci=8~wv{~aBQO#;zNoHz?5Ey;`qD<Kb+7!l~
zdyz%N)(8hAY$($i;$k1vehCo|31rByZ*>WUm_I4dT}u_p1N}|>vS$uB-w<N|uquhS
z0`oL*&lE}l5cgo!xL<+^*(Q_NMX1l@d66V~anY{(>gtE&vv`;@>Fg-<G*WA_uQ{AD
zcc?|=ovF9vJ*yneUhPCq8{MF1U>gIbl(}Kb?nUt7^REHQr4f0RK^Q27K`gD7V3r8E
z7Hm%-G7(Be9+fe=0IVP~Em5h*G;E5X2aP?=x4g(&5}gFMh(3i;@*qOxz(V76)aTgO
ze5wM)f;wIu=k|bU4ZkNE0)#9HvMmX{=~~zn@DnlB65T29=_f%w_5z>SNa(d<^@p0=
znppJ)vfYB;NYg5!DOY^bl4z4|FOkF-#&|Nf?S*hGXGkJ-2;e820;TX=74|PvvYPdJ
zEt`_J>5)kzEl;{l7M=KNd_L$CJSqk+``9?CTsy6br}v6&IaH4?8&$==X4PF&kkIL*
zf2$HY{l1(ghOJ5+!&rknP-%3>?FR-b2c5r@1$~J_NR+-p%IIuLKNp7HnzOZ?)Ky@3
zE5EuOoWG__5TuRM9-d7P8^x7Uq)$T{!hwpFO^l(brY$1CdK2T#Y=<f4PtMNOs(<3!
zA4OEjN04=CawxHRO@~NI-65S#7a~?KSCUKTj;)9j@p^YIGGs@YxTf(-#cmJU)z^3T
zqNPSu%o*hkX&^hEXZBSd(YM%fWH+lz-9|~%;igB~n!r5HXaO%zzk$jflt*^42z@+$
z!jt;#|4~buky_2BWe&shD%lxUdi+Q5fRrRD{AcuZ!KPQ+Y2Ke7rYFGmQ2K;H@_+6Q
zAEqu<UGjqb>Sgwf<tSSNmWNK%oxwS7<>kR&uef^(YnuX=y~*Ys`}v;~P!;q760<a1
z2noDQzdB{BpQKc_nDu^QijWOYfitah>nq<|B#cTrhFl1t_lIJZRdPa1Bc&et^e{m}
zBD$0|;c+gqRNtW?FKixXZaHa@-X9gk!cjTPFVhj!=z1g@4W8mIXB3gcSoJul4f8)q
zp{gaxKRdct{6ZUEW?ZfC^wF`<E%_P#`&5DPPLb1&y&qYb&<q?p2G2r9tT;@NY%cP-
zm#I?Q_t?&!Asg$8%jk__yp{<`54fG5pNY$R=YC>23#USEdpa>Sz6r=4eV$BpaiO^T
zsz{SU6y9uDJx@pQdOK6Xsc2=Yo^0<JB2V)+VEP*6i#RWmLK{beC1s?BxyIJ}9mki4
zbG{32&I8J8N1iNdi)O4|N7;-H(raeO#cMmn^x=Pe``G()x^y}}^EJD>Y$q7q1QZ|?
zAOhITJC)Wow1cEb)|V*9&n5O#bMRkN7CQqpl{B8oKdj&Nt~EM^PQ3d>$Lh6Ctn9|b
z=bN!w1$dh+3Xxa-9xLu{CpW5Bd2A?^crmDa#dq%c_uEsavm!=wtz30R^C>r$!aoe@
zm@&CU3?^b_;@`QT9QA=185suc_ZP%sH_FP?=RDMCohApsKq>yOlf^%^GFLPX;(C)4
z`<3}>hcax$cQFkk$4i=49pTj(=7xyHVI<jk!FSC+Y~wC_(M@a~j7QfSFAc6O$$k%7
zjJTp?#xy#XyL<tdA3a0Cl?f99I{PIV@z%%!Pf6R8(BrcoG8ZfDU4{-VGuG}!<5gW9
z#In+{*oi&-h}|SfCMi+LqhcYlc8H(bv^K_-5d!u+v)daI1>uw)!0{OHFdrPyrd`q#
z%r`r?yH-Y(G!Cd2xcT}R+<9$U=tNBDKY~R~=wIpHuS;pX6F1`;<=7iuqaWCgOcL$S
zZbym_l4|D5AU(AZCz4nmJMYh4?~u-GJ(bD%v&S#TSzAIx1DTj_Nh;gGJM+OJOgwFU
zdjPAmxM7oQ>+im+;bar|5{oe|Ofg$SzTFn3q=_Jpb5~>8j$Q_1U%y;AzP3Csl0&Z>
zU|msdcF5K?^21N7v2pw!`+`@^PZnAyT=YCRr#+m>wBuX)CwCaLx=at6X-gO#iJENm
zB)$#B8++Af3_$SrbrnWCPpxpC4eqiU7~;}mlHB2>vP5Uh7S#pd9l@z;F*kzH-)fuN
z`VI*KUL}kJm6fjDL0gnNNW1NR3j7Yg70&4CAv>t{zLyBf?AbEoC6VLuXP7_nlefB@
zr?fGwa_%*_S0)G(D8UwDq9M53$Y!14Kd{PcM_-b*6{KOS)WQnSun>P$#VC@!t=r8v
zuZMrP_PND0!O{5)pxa%Y_n|6<zoEi3oiuypcBDch-hbEUt~;YH8@IgD&I@a^SstS5
zY!{~v%^cJ*<F6^aQ&}?{>R(L~zGd7%f_Vnj$~@UjrYChIWtrB0({3F&u(D&oTNJ_e
zy1a~{779>Kvg3H3k*?TZ@zL}NL+LtDS>I09aYCgMD3pgvvq(c$cY$|*VU9BQONoj=
z(jlmtS|zXm-xbZdREisM_D7O<5^)vDrcCnP<f9O@5vi<3LZWe=|FtB8Jy><9*@#xr
z3(D-gGT;*)z<xH(V)v~AC5M<%)S^s)X)(+v`zDa&){PYEvTZuwD>*&bZTK^GrctM`
zk;ZZI(&5^c?6*o%b$rW3z?;xj7T;x`*!PrkzbRj(9k>Y@(pqpkiaa7!<K5(C6cKL5
zXyIyjj64h3xnEp`-Fx2X#sdh$G8M-!M_cOn?bbrE(#A+ZLK@_j)e~Omk`1g)W8*eC
zAWZ8bYA#NIOF#tFbcHt<1q?EkLt5kNY|`<xQoqp{agvW4gdLDgi6tsdi*2^i!&Fwt
z)_RZcW>YB-g|yvw?2pq4N<K;jNgv?^+7}9v<w_NqS>~=Z+P|u11`K9UlZgFKq(LDo
zo7urjP3F%JVP>=Ia_iTbe<i55()dhGc~?KH=?8_=k~G0O)WMpr%YEebE#A97e_f$Q
zeFn_5-XN&uyrmrMq0bnwHL<C}5D#I?ok$oUnY?+RmYP}21S7`5%%>@CQEH+KIAD)L
z#>H!TcquFfc)49(pu7g#=uZtW<Sq?Jx)w;94Czpk5p$8^#7gf|;f&JU=<-*K%2S^*
zWN5fn#}^Lxjg>yJW#;?-xyKfm;?Z<3|0WIJ&G&oG_CmULeHB0)yr;e)aQDy3H&E;5
z9LqX#;Bkh!&+BWwt96c{AK2Oa)fN|y){bMI=c6W%T9+JN!qdMwc9=I^(VBB;2PCe_
zM^tZyEJg%T*vTdFrR0=rz-|(Ad~DLVn|XR@`Tl{Tfd_)JRuzOdq$NX*kA0qf{i5zx
zWAqMSmxSpRz#uwQbF?KyTBJ_F`N3r$XmocZ%PWAQ`htV?&v^NxL!xOwN!GzyhB9wR
zTmePkzqrXYTCqvJzHy|7idKgmdlO2V1&y%zZ_(4^-83xg7edCPK4X?X@&Se%WWU{q
zqf<}ZGN#9rGNw(J4YpKj#2k(G#u!fRk3+><xG+d%L|5Gd{@>dCdHe>f45YvS8GUzJ
z%=+)#)+DP{Os)3pONwWy&@as{<N18dnCzMKeF4;7vfMaIznI!H!TNqS_x6dho}Rq#
z>RbV1tB-57or`P|TOUsXv#DgaD}y<+`mY^`3+M6I=VF`!WacEZQ0rt^L?5CFZ43KF
z@=Cv2s(o8NKVp!@Z%&7%RI2T6y;B=beKtO7B@uZu!#hvG_mqvrOmNO4$o`lNq^-hF
z2S*!~25*DX3FctrO)^{}Pe?FU^<i3~ke2X9FdtrH*yxDd4{75yVP7yla%}a9r_S#E
z9Cf^m{a2r56Zb*!2csTy1Ma^D2dm~i|11{go2G5!;zSZ}PYK?8ILTBL(hoJzjt2Ko
zLE}vavLhY3aYL|y$M9@w`NM9JU59hnK<gTFiCITF^TGrm1LeZ-DXCA-+PSY6e*7q=
z*fKu+TROU!m<(5BCT^`CC%LYG>nB+<CwVXX^N>`+FR9;PWiG66%$ZRR+7+FhN#E>n
z+*cCtpP;2)UFpglv!@c4y5-Nq)UB<{XP(lXhKeduygm#J@fk|$XW9eu6Pai@-^d1y
zey6p=`rzJuQfHe1!O?N!xJM14BcSho9ih+Gf`bqUguHs|X8hk4`P*CER<&xwi@Phx
zWQlHGB)s7bA<|s{yXP7W)=c%b&>5U}f2JxWvD&iM@~lS9ITvoob?kQ&h=P9&Db)P|
z@`Be>J(sxWJD-0iNd-*jLRLMj6&lC42(C$)YVyJw#!bO;FrerT<40nfDgqw$^^#u`
zV0ICBZcE`bzl-Jd3_bNNh(p*~FxIH`^7!cb-;9c|<=?!P+f$a;&s%1Ul<S}kb9-Q6
z_CjUkp%J-n;vo_SNAA9jU2Id}l&HT^lqtv*=T(xGXfBRp95Iu8Mu3ep8Z2qSumw2=
z3hCtnbcU`xkO42N>?PGP{a!HpfsVQA`6^$Cc3REjyu-3jqxnD>^-A#0$=8a8@a5AK
zowIkv)Fgjc_z-|4UM9cGg{7nAd(U$hP{9E$lqbfCW**dVs8;vm%LDmXx|lIEMhUFN
z_d1A)Og<gGvCogQ`;e+VH30Q}50*k$XcK9F6#2*!$O5_lKB(jNlC9KBc#h9He)gBr
zE=uKhtUzaE$LdMcpNK2e;Xq&f-}3*H*<9q+FHNkM;XMdX_T_#2zq8Gp1jb*9d}|w=
z7*Y1qbVm%{`7kVNl+F3I=h8E;>@WJt=!rx4Psw=+@uR%WgoR~qf0NLt80P;)au1&Y
zk=)P!BDp7R5g)gI<|aSvjBFfj{e0&vjPYLh)KS|{o7M`4y5B+XeZKyf0v7Epr~zdL
zgG$@a&Wna87r~_-pVCVbo=x%iJf=<HiKRH4Rf}ns@6H2z=!AtPsx(k!L@Hv?vIQUh
zGu5pa_!+N_zai{0jWQYY{noa7)T6Q*6}omx@5axc&d2tb<lXkQBk<+nwkexIjGt1y
zJ-Hdg=c@{Gcu751oCYMvl;x4tkD7tPa@@ct&_GLpDg7<%K7;IFEBe?*>G<gBgq^CE
ze*jjc(4Q==>#R%Z`gpoB)9BjyoZ6dp=%qn!c~j`%x0N%WGgpFz^T|)m)PpY2(=L;(
zCB@ai{8QC`;*1#UrQ~@+`?cW%y}B<buFx0f8AZJ^+}DhzKzmHb`D>#YjwMNSo<@^@
zUfcfN?;|naLnYisDB@ek=<Ic9wcCwG5)EPD@aT(`&8W_;{`xOOG+|J{iKjsHEgo3F
z{8*<N!qv*M-><uO#va$k7gJ)H(gp5r+jVX%N^Ih(#LMoBuExgxZ;U9Yf!pr)yDPs=
zgErNGt1Pz`WvRE|@|-xx2srB1METnYZH{(2;MU^h19*X1QG0*Yed7$~Sei(A+^Zq~
v2FEcOALaE}TLDi^vN#d%1N;B-#ILP4<Ur|^5&7S50EdB&DXdQGQS|=<!Nw6T