@sayknow-cli/tui 0.6.9 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,19 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.7.2] - 2026-09-29
6
+
7
+ ### Removed
8
+
9
+ - The launch-card-only `prepareSayoPlaceholderImages` API and its kitty Unicode-placeholder implementation. Composer pet image rendering remains.
10
+
11
+ ## [0.7.0] - 2026-09-29
12
+
13
+ ### Added
14
+
15
+ - `renderSayoPose` / `decodePng` (sayo-sprite): Sayo mascot poses and tints rendered from an embedded image; `prepareSayoPlaceholderImages` (sayo-placeholder): kitty Unicode-placeholder images for text lines.
16
+ - Pet skin `orange` (Sayo), now first in `PET_SKIN_IDS`; kitty pet frames draw the Sayo image and are sent with `o=z`.
17
+
5
18
  ## [0.6.9] - 2026-09-29
6
19
 
7
20
  ### Changed
@@ -1,53 +1,9 @@
1
- /**
2
- * ┌─ SAYKNOW PET SPRITE SPEC ────────────────────────────────────────────────┐
3
- * The pet is a 16×16 pixel octopus drawn beside the composer. Everything here
4
- * is data: no PNGs, no assets — each frame is 16 strings of 16 chars, encoded
5
- * to a sixel or kitty escape at runtime. Author a new frame by drawing a grid.
6
- *
7
- * GRID RULES
8
- * - Exactly 16 rows × 16 columns. Only PALETTE keys below are valid chars.
9
- * - `.` = transparent. Keep the outer columns transparent so the sprite sits
10
- * snug beside the input box (the widget reserves +1 column of slack).
11
- *
12
- * PALETTE (char → role) — see PALETTE for exact RGB:
13
- * .=transparent K=dark outline R=mantle body r=body highlight
14
- * W=eye white V=pupil G=eye sparkle b=underside
15
- * w=tear H h A=reserved (unused by the octopus art)
16
- *
17
- * FRAME CATALOG (SayknowPixelFrameName → PIXEL_GRIDS):
18
- * base idle rest; also the dance "drop/settle" beat
19
- * gazeL eyes glance left ┐ idle loop (see sayknow-pet-widget IDLE_LOOP)
20
- * gazeR eyes glance right │
21
- * flicker eyes blink ┘
22
- * flex sparkly "yay" eyes; dance accent + random idle flex burst
23
- * danceL tentacles sway left ┐ work loop (PARA_PARA_STEPS)
24
- * danceR tentacles sway right ┘
25
- * cry1..3 a tear trails from the outer eye corners (BlueOcto sob)
26
- *
27
- * RENDERING: buildSayknowPixelFrames({ protocol, cellWidthPx, cellHeightPx,
28
- * targetRows: 2 }) scales the art to 2 terminal rows and encodes each frame
29
- * once. Kitty uses a native `Y=` sub-cell drop (set by the widget) to sit on the
30
- * composer border; sixel uses transparent top padding.
31
- *
32
- * BEHAVIOR (timing, positioning, on/off) lives in
33
- * packages/coding-agent/src/modes/components/sayknow-pet-widget.ts.
34
- *
35
- * ADD A FRAME: draw the grid → add its name to SayknowPixelFrameName → register it in
36
- * PIXEL_GRIDS → reference it from an idle/work loop or a skin burst.
37
- *
38
- * ADD A PET (skin): append one entry to PET_SKINS below — { id, label, description,
39
- * palette, burst }. The id flows into PetSkinId/PetMode automatically, the settings
40
- * enum, `/pet` command and both selectors derive their options from PET_SKINS, and the
41
- * widget reads `burst` to animate — no other file needs editing. Recolor with a palette
42
- * spread (see BLUE_PALETTE); add frames only for poses the catalog lacks.
43
- * └────────────────────────────────────────────────────────────────────────┘
44
- */
45
1
  type Rgb = readonly [number, number, number];
46
2
  export type Palette = Record<string, Rgb | null>;
47
- export declare const PET_SKIN_IDS: readonly ["red", "blue"];
3
+ export declare const PET_SKIN_IDS: readonly ["orange", "red", "blue"];
48
4
  export type PetSkinId = (typeof PET_SKIN_IDS)[number];
49
5
  /** Every pet mode: "off" plus each skin id, in menu order. */
50
- export declare const PET_MODE_IDS: readonly ["off", "red", "blue"];
6
+ export declare const PET_MODE_IDS: readonly ["off", "orange", "red", "blue"];
51
7
  export type PetMode = (typeof PET_MODE_IDS)[number];
52
8
  /** Narrow an arbitrary string to a PetMode. */
53
9
  export declare function isPetMode(value: string): value is PetMode;
@@ -93,6 +49,12 @@ export declare const __sayknowPetTestHooks: {
93
49
  };
94
50
  /** Encode a grid as a transparent SIXEL image, optionally bottom-aligned by top padding. */
95
51
  export declare function encodeGridSixel(grid: string[], scale: number, topPaddingPx?: number, palette?: Palette): string;
52
+ /**
53
+ * Kitty escape for a straight-RGBA canvas already laid out to the placement box: delete
54
+ * the previous image with this id, then transmit and display the new one in `cols`×`rows`
55
+ * cells. `Y=` drops it by sub-cell pixels; `C=1` keeps the cursor where it was.
56
+ */
57
+ export declare function encodeRgbaKitty(rgba: Uint8Array, w: number, h: number, imageId: number, cols: number, rows: number, cellYOffsetPx?: number): string;
96
58
  /** Encode a bottom-aligned grid as kitty raw RGBA at `scale`. */
97
59
  export declare function encodeGridKitty(grid: string[], scale: number, imageId: number, cols: number, rows: number, topPaddingPx?: number, cellYOffsetPx?: number, leftPaddingPx?: number, rightPaddingPx?: number, palette?: Palette): string;
98
60
  export interface SayknowPixelFrames {
@@ -122,7 +84,7 @@ export declare function buildSayknowPixelFrames(options: {
122
84
  /** Native sub-cell `Y=` pixel offset that drops the kitty sprite within its first cell. */
123
85
  kittyCellYOffsetPx?: number;
124
86
  kittyImageId?: number;
125
- /** Color skin for the sprite palette (default "red"). */
87
+ /** Color skin (default "orange", Sayo). */
126
88
  skin?: PetSkinId;
127
89
  }): SayknowPixelFrames;
128
90
  /**
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Sayo, the Sayknow octopus mascot (Sayknow Kit `public/sayo-logo.png`), as a 200×200
3
+ * RGBA PNG. Embedded as text so single-file builds carry it; decoded once at runtime by
4
+ * sayo-sprite.ts, which draws every pose and color from it.
5
+ */
6
+ export declare const SAYO_SOURCE_PNG_BASE64: string;
@@ -0,0 +1,13 @@
1
+ export type SayoPose = "base" | "gazeL" | "gazeR" | "flicker" | "flex" | "danceL" | "danceR" | "cry1" | "cry2" | "cry3";
2
+ export type SayoTint = "orange" | "red" | "blue";
3
+ /** Straight (non-premultiplied) RGBA pixels. */
4
+ export interface RgbaImage {
5
+ width: number;
6
+ height: number;
7
+ data: Uint8Array;
8
+ }
9
+ export declare function decodePng(bytes: Uint8Array): RgbaImage;
10
+ /** Render one pose, tinted, into a `size`×`size` straight-RGBA image. */
11
+ export declare function renderSayoPose(pose: SayoPose, tint: SayoTint, size: number): RgbaImage;
12
+ /** Every pose the pet state machine names. */
13
+ export declare const SAYO_POSES: SayoPose[];
@@ -8,6 +8,7 @@ export * from "./components/input";
8
8
  export * from "./components/loader";
9
9
  export * from "./components/markdown";
10
10
  export * from "./components/sayknow-pet";
11
+ export * from "./components/sayo-sprite";
11
12
  export * from "./components/secret-input";
12
13
  export * from "./components/select-list";
13
14
  export * from "./components/settings-list";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@sayknow-cli/tui",
4
- "version": "0.6.9",
4
+ "version": "0.7.2",
5
5
  "description": "Terminal User Interface library with differential rendering for efficient text-based applications",
6
6
  "homepage": "https://sayknow-cli.com",
7
7
  "author": "jaybeyond",
@@ -38,8 +38,8 @@
38
38
  "fmt": "biome format --write ."
39
39
  },
40
40
  "dependencies": {
41
- "@sayknow-cli/natives": "0.6.9",
42
- "@sayknow-cli/utils": "0.6.9",
41
+ "@sayknow-cli/natives": "0.7.2",
42
+ "@sayknow-cli/utils": "0.7.2",
43
43
  "lru-cache": "11.3.6",
44
44
  "marked": "^18.0.3"
45
45
  },
@@ -1,8 +1,10 @@
1
1
  /**
2
2
  * ┌─ SAYKNOW PET SPRITE SPEC ────────────────────────────────────────────────┐
3
- * The pet is a 16×16 pixel octopus drawn beside the composer. Everything here
4
- * is data: no PNGs, no assets — each frame is 16 strings of 16 chars, encoded
5
- * to a sixel or kitty escape at runtime. Author a new frame by drawing a grid.
3
+ * The pet is Sayo, the Sayknow octopus, beside the composer. Kitty-graphics terminals
4
+ * (Ghostty, kitty, WezTerm) draw the Sayo image itself, one transformed image per pose
5
+ * (sayo-sprite.ts). Sixel terminals and the half-block text fallback draw the 16×16
6
+ * pixel octopus below instead: each frame is 16 strings of 16 chars, encoded at runtime.
7
+ * A new pose needs both: a grid here and a transform in sayo-sprite.ts POSES.
6
8
  *
7
9
  * GRID RULES
8
10
  * - Exactly 16 rows × 16 columns. Only PALETTE keys below are valid chars.
@@ -42,10 +44,13 @@
42
44
  * spread (see BLUE_PALETTE); add frames only for poses the catalog lacks.
43
45
  * └────────────────────────────────────────────────────────────────────────┘
44
46
  */
47
+ import { deflateSync } from "node:zlib";
48
+ import { renderSayoPose } from "./sayo-sprite";
49
+
45
50
  type Rgb = readonly [number, number, number];
46
51
 
47
52
  export type Palette = Record<string, Rgb | null>;
48
- export const PET_SKIN_IDS = ["red", "blue"] as const;
53
+ export const PET_SKIN_IDS = ["orange", "red", "blue"] as const;
49
54
  export type PetSkinId = (typeof PET_SKIN_IDS)[number];
50
55
  /** Every pet mode: "off" plus each skin id, in menu order. */
51
56
  export const PET_MODE_IDS = ["off", ...PET_SKIN_IDS] as const;
@@ -69,6 +74,16 @@ const RED_PALETTE: Palette = {
69
74
  A: [196, 60, 30], // reserved
70
75
  w: [200, 230, 255], // tear (BlueOcto sob)
71
76
  };
77
+ // Sayo's orange for the dot fallback (sixel and text terminals); kitty terminals draw
78
+ // the Sayo image itself (sayo-sprite.ts).
79
+ const ORANGE_PALETTE: Palette = {
80
+ ...RED_PALETTE,
81
+ K: [120, 40, 10], // outline
82
+ R: [255, 122, 30], // mantle body
83
+ r: [255, 176, 100], // highlight
84
+ b: [232, 70, 40], // underside
85
+ A: [214, 80, 20], // reserved
86
+ };
72
87
  // BlueOcto recolors the octopus for the blue-octopus theme: ocean outline, a bright
73
88
  // mantle, azure highlight and foam tears. Reserved hat keys are shared but unused.
74
89
  const BLUE_PALETTE: Palette = {
@@ -194,6 +209,16 @@ export interface PetSkin {
194
209
 
195
210
  /** Skin registry — the single source for palettes, behavior and selector/command copy. */
196
211
  export const PET_SKINS: Record<PetSkinId, PetSkin> = {
212
+ orange: {
213
+ id: "orange",
214
+ label: "Sayo",
215
+ description: "Sayo, the orange Sayknow octopus.",
216
+ palette: ORANGE_PALETTE,
217
+ burst: {
218
+ intro: PARA_PARA_STEPS,
219
+ tail: { frames: ["flex", "base"], stepMs: 220, ms: 880 },
220
+ },
221
+ },
197
222
  red: {
198
223
  id: "red",
199
224
  label: "RedOctopus",
@@ -306,6 +331,35 @@ export function encodeGridSixel(
306
331
  return `${out}\x1b\\`;
307
332
  }
308
333
 
334
+ /**
335
+ * Kitty escape for a straight-RGBA canvas already laid out to the placement box: delete
336
+ * the previous image with this id, then transmit and display the new one in `cols`×`rows`
337
+ * cells. `Y=` drops it by sub-cell pixels; `C=1` keeps the cursor where it was.
338
+ */
339
+ export function encodeRgbaKitty(
340
+ rgba: Uint8Array,
341
+ w: number,
342
+ h: number,
343
+ imageId: number,
344
+ cols: number,
345
+ rows: number,
346
+ cellYOffsetPx = 0,
347
+ ): string {
348
+ // zlib-compressed (`o=z`): a mostly transparent sprite shrinks several-fold.
349
+ const data = deflateSync(rgba).toString("base64");
350
+ const CHUNK = 4000;
351
+ const yParam = cellYOffsetPx > 0 ? `,Y=${Math.round(cellYOffsetPx)}` : "";
352
+ let out = `\x1b_Ga=d,d=I,i=${imageId},q=2\x1b\\`;
353
+ for (let off = 0, first = true; off < data.length; off += CHUNK, first = false) {
354
+ const chunk = data.slice(off, off + CHUNK);
355
+ const more = off + CHUNK < data.length ? 1 : 0;
356
+ out += first
357
+ ? `\x1b_Ga=T,f=32,o=z,s=${w},v=${h},c=${cols},r=${rows},i=${imageId},q=2,C=1${yParam},m=${more};${chunk}\x1b\\`
358
+ : `\x1b_Gm=${more};${chunk}\x1b\\`;
359
+ }
360
+ return out;
361
+ }
362
+
309
363
  /** Encode a bottom-aligned grid as kitty raw RGBA at `scale`. */
310
364
  export function encodeGridKitty(
311
365
  grid: string[],
@@ -345,21 +399,36 @@ export function encodeGridKitty(
345
399
  rgba[o + 3] = 255;
346
400
  }
347
401
  }
348
- const data = Buffer.from(rgba).toString("base64");
349
- const CHUNK = 4000;
350
- // `Y=` offsets the sprite down by sub-cell pixels within the first cell — the
351
- // kitty analogue of the sixel top-padding drop. `C=1` keeps the placement
352
- // cursor-neutral so the overlay never nudges the composer's real cursor.
353
- const yParam = cellYOffsetPx > 0 ? `,Y=${Math.round(cellYOffsetPx)}` : "";
354
- let out = `\x1b_Ga=d,d=I,i=${imageId},q=2\x1b\\`;
355
- for (let off = 0, first = true; off < data.length; off += CHUNK, first = false) {
356
- const chunk = data.slice(off, off + CHUNK);
357
- const more = off + CHUNK < data.length ? 1 : 0;
358
- out += first
359
- ? `\x1b_Ga=T,f=32,s=${w},v=${h},c=${cols},r=${rows},i=${imageId},q=2,C=1${yParam},m=${more};${chunk}\x1b\\`
360
- : `\x1b_Gm=${more};${chunk}\x1b\\`;
402
+ return encodeRgbaKitty(rgba, w, h, imageId, cols, rows, cellYOffsetPx);
403
+ }
404
+
405
+ /**
406
+ * Sayo for kitty: the pose rendered at the sprite size and placed in the padded box the
407
+ * grid frames use, so placement, the sub-cell drop and cleanup are unchanged.
408
+ */
409
+ function encodeSayoKitty(
410
+ pose: SayknowPixelFrameName,
411
+ skin: PetSkinId,
412
+ spritePx: number,
413
+ imageId: number,
414
+ cols: number,
415
+ rows: number,
416
+ topPaddingPx: number,
417
+ cellYOffsetPx: number,
418
+ leftPaddingPx: number,
419
+ rightPaddingPx: number,
420
+ ): string {
421
+ const sprite = renderSayoPose(pose, skin, spritePx);
422
+ const w = spritePx + leftPaddingPx + rightPaddingPx;
423
+ const h = spritePx + topPaddingPx;
424
+ const rgba = new Uint8Array(w * h * 4);
425
+ for (let y = 0; y < spritePx; y++) {
426
+ rgba.set(
427
+ sprite.data.subarray(y * spritePx * 4, (y + 1) * spritePx * 4),
428
+ ((y + topPaddingPx) * w + leftPaddingPx) * 4,
429
+ );
361
430
  }
362
- return out;
431
+ return encodeRgbaKitty(rgba, w, h, imageId, cols, rows, cellYOffsetPx);
363
432
  }
364
433
 
365
434
  export interface SayknowPixelFrames {
@@ -390,7 +459,7 @@ export function buildSayknowPixelFrames(options: {
390
459
  /** Native sub-cell `Y=` pixel offset that drops the kitty sprite within its first cell. */
391
460
  kittyCellYOffsetPx?: number;
392
461
  kittyImageId?: number;
393
- /** Color skin for the sprite palette (default "red"). */
462
+ /** Color skin (default "orange", Sayo). */
394
463
  skin?: PetSkinId;
395
464
  }): SayknowPixelFrames {
396
465
  const targetRows = options.targetRows ?? 2;
@@ -411,15 +480,16 @@ export function buildSayknowPixelFrames(options: {
411
480
  const leftPaddingPx = Math.floor(horizontalPaddingPx / 2);
412
481
  const rightPaddingPx = horizontalPaddingPx - leftPaddingPx;
413
482
  const imageId = options.kittyImageId ?? 0xc0de;
414
- const palette = PET_SKINS[options.skin ?? "red"].palette;
483
+ const palette = PET_SKINS[options.skin ?? "orange"].palette;
415
484
  const frames = {} as Record<SayknowPixelFrameName, string>;
416
485
  for (const name of Object.keys(PIXEL_GRIDS) as SayknowPixelFrameName[]) {
417
486
  frames[name] =
418
487
  options.protocol === "sixel"
419
488
  ? encodeGridSixel(PIXEL_GRIDS[name], scale, topPaddingPx, palette)
420
- : encodeGridKitty(
421
- PIXEL_GRIDS[name],
422
- scale,
489
+ : encodeSayoKitty(
490
+ name,
491
+ options.skin ?? "orange",
492
+ widthPx,
423
493
  imageId,
424
494
  columns,
425
495
  rows,
@@ -427,7 +497,6 @@ export function buildSayknowPixelFrames(options: {
427
497
  options.kittyCellYOffsetPx ?? 0,
428
498
  leftPaddingPx,
429
499
  rightPaddingPx,
430
- palette,
431
500
  );
432
501
  }
433
502
 
@@ -485,7 +554,7 @@ const COMPACT_PET_ROWS = 5;
485
554
  */
486
555
  export function renderPetHalfBlocks(
487
556
  frame: SayknowPixelFrameName,
488
- skin: PetSkinId = "red",
557
+ skin: PetSkinId = "orange",
489
558
  colorMode: "truecolor" | "256color" = "truecolor",
490
559
  options: { scale?: "full" | "compact" } = {},
491
560
  ): string[] {
@@ -0,0 +1,459 @@
1
+ /**
2
+ * Sayo, the Sayknow octopus mascot (Sayknow Kit `public/sayo-logo.png`), as a 200×200
3
+ * RGBA PNG. Embedded as text so single-file builds carry it; decoded once at runtime by
4
+ * sayo-sprite.ts, which draws every pose and color from it.
5
+ */
6
+ // biome-ignore format: long base64 literal
7
+ export const SAYO_SOURCE_PNG_BASE64 = [
8
+ "iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAgAElEQVR4nOy9CZRdV3UmvM+5976hXg2qUpWkkkrzPNqWLc82NjYGQwwYQkISEoY0JGEFkj8N",
9
+ "TabuZGWRdCcr/XeazEl3fvKTeaIbCCEECATH4AHb2JIsS7I1jzUPb7rDOf/a071X7qz+Q4ckJbvucrlKVe/dd+97Z5+9v29/e2+ApWPpWDqWjqVj6Vg6lo6l",
10
+ "Y+lYOpaOpWPpWDqWjqVj6Vg6lo6lY+lYOpaOpWPpWDqWjqVj6Vg6lo6lY+n4Rx3mH/ewpeOfehh8pz1+N2CsoZ/xf46+44/+H/hkDH2j59JPHhw+Qc71omcs",
11
+ "Hf8Mx5KB/DMdZAjyDuNPznvw3sv7jUsef6aV/v/zGdBj2BaMwe98ImvBkIngl6FH+Bcb2dLxTz6WDOSb+EZaa9kQxC48gAU2Ct/bV3cmafvlw2thzfo6pFMO",
12
+ "THIZnjnvoWMisEkLIE2AXEpgwYQRpGEdlpsObFvbAyn0QxC04YUj49Dq8ZA0nW1nuXGppfjA4kuiZ1oylm/GsWQg/5Q3T7yDbOv4g7UAxgFkI9U+v304hdXX",
13
+ "D0F0bABWvu5GGJo92DucbVyx8cY1y+NL0+vs3Ilo5y2vXVexNnQXnvUwPw7QTAEG+gEGRiBcu8dOXzzVPHbwkfPh0KaFoG/o5OFHHp9MVtnpI19biCc782CG",
14
+ "TsJzh6pwedbD9PRMgJ7Le++twcsQq1kylv/jY8lA/g+OwHLQ48Aa8C6oWvB9UZStXTsK1+ww0OgZhfUDa4cHovbuvdtGrt8yMrh9MPLb2+On11WrsKKSpg0A",
15
+ "9BYxQLcJ4DJ0PwA2ADyl+CMAnwIEEUAQAAQhQLXPtX044VxtEkbGjrxw5vyR+Xr/0ycmFp45/bWp42eCk92jJ5rw3LMTcGlq0ibGWPCQockg7lkKw77xY8lA",
16
+ "voHD4u7MiCDAn8b6KtnW4Rrs2bcL1ob1ZZs2rbpm947RVy23rduWR/EeszAxDHEbstYM2CQGYx1kaQIpuRvnwXo0A8co3LHVKXZBQzGBgPLMgkHfFNogrPLf",
17
+ "8dd9ywDCGkB9WTLvgudn7bIvHZ2P/vbZw889/Mjx1tlzh4/6Y60unJ+ctZnPEPfgidDb/S+cwNLxDx9LBvKPAdtoGM4Zb8HWfOj2bPV+x/qNcNvW/UM7diy7",
18
+ "Y1tf/cFhmH9V2Jkcte1549uzkHa74I1HC8gsOGMhBcgS63BlWzwjRkBeIDh+RzvBpYuGUYIWFMehdwn5NybAX3ow1jt8go0M/jKIqmArVYDGACThsvl4cO1X",
19
+ "H//ayb84ND33yaPn/bmHn3oMjp1vw0yzHdDNGPBoLNmSpfxvjyUD+d8cuInjBm6NDaIQ3J7lA/6V+3fb22/afNPW/uQdW5dV3xDOX1jpmzPed9om85kHk2bG",
20
+ "p4a3fEdLnuOxFBAW0L/pXc9wQ5dPwec2QRu7CRji448YdtEf8JkchqF5UThGXgXtIySD8WCd89aGQWAhrHg7OGxSaMycz+pfmJ4JPvaVifCvP/XI37Qfe/I8",
21
+ "TM5mQeYywipooEt28g8fSwbyD70pulg9BLVK6F9//ytdzcbRq5a5N77uti3vH8wWboXZcZsuTGOI78Bn3kJiAcMYlwB4jpo84gqfgXFoGE4WvcQ2iKHFc3hy",
22
+ "CErYWvCM/vnvhE0oECODwH/j3z0ZB/oAvmB6DgTgkRGzgffWOof2GlaDsNoAGBiGbmXo2NcvNv/fvz9+5reOXB66/OW//Jx5LnbWdbsusNY7us6lo3wsGcg/",
23
+ "8GYg0VqvVf2eXnD3bF1X+dZ3f+u7dian39fTndjlF+Yhbc978JkLTGZ9FhsC2cYBRlQeQyllXQVvo4GgcfDiI3Kp+LulLIn8Xa8APQSGdvyzt/ydTofoB70H",
24
+ "ujZiedmLoBHx8y0Yg4bCvzcYitkocz60YdRjbKPfdKuDk+fs6Mcevhj90icf/ttTX/jcU3ZiFjGKc0Q7LFlJfiwZiBzWEmymPPdQ5LLveuA2c99o48EbN/T9",
25
+ "5AjMXufnp30at7w1CLGzwKOX8BomOUDAjQYCPiFvQR5EFjUZCaMPAeJFppzShUiLCUhnDCIfDp4EGSz8vWbgyZFYhBFkIPQaBOjRs1gwkn8k3ATIioUcmuHf",
26
+ "gshlYH0Q1qyt9RlYvmHm6+cXPvI3z47/0t8d6kz/zcOP2E7s0NYcWokv1snL9njZG4hGM7jE+0OA+7eucG+4547r7t3V+59G4qn7/NwkJO35zPrYmKxrDWSU",
27
+ "hFOQDeQxcLHyFxoCeQOKl2RBE4xwQlJhyMS4I4/l1GDI2CxTuwrQlVNGYxBPoWEVnxBfyBbGpquajE68ChqHCem12bOEPjOhA1MzUe9y26kOnjwYj/zsX/ze",
28
+ "Zz/6x189nr7QTQKTIbNgKOx6OR8vawPBzDeude+dfcWt12b3ror7H9y1+ed2rYreA9OXo6S9kFnXNcYn1mddsC4hvEDMLJ1BPAjt8GI0uvjxP9rZVW6i3gEN",
29
+ "gEMoNgKRjKBh4YF/p5MQO8CeQXE9PRdxSAg+SxmzUGpSPAp5EPFUzBXLOdE1BjnIB0BGjM7jM1txQVC1dmDEXE4aD524VH3/z//lw0/+9UNHg5YBHxjriOl6",
30
+ "maJ4oUhenjkN571dFlrzwHVj7t++7bX3f+vGgU+usTP3JRMXjI+bLsw6AWRdA1kXjENPgcbAHoPANRoHLr4AY30B4eSOGINg6EMbthK6tN7lFxgaYfiEoRMa",
31
+ "jHgH8h70c8j/9niOkMMn8hr4OpDTvsRqWXwOegjSmuQhFj5PRZLFAsfFnns8Y6236JzSTsf1ms6GtZuG375l5ZDprfiHJ+KebHx6JrA2B1Avu+NlZyC8Dkkz",
32
+ "FezZd617153r6993964P31xr/nIwdXYobbXTwMcW0g55Dcx2G2SmkKZFA8lDK8UeuBAl1FHmiYwF17Z4DAqzAtnUZQHjz+QNSqAdFzpdIz/GIzonsM7sFS3y",
33
+ "gI2FaV40DHk2ZeElX0LGw2CdcyjyMeP10KUhRkIjFwM3COUzm2VJ5uZmgrEVffdcs3fr3SuHRr98eWp68uJ8N8zSzLHHfXlZysvKQHgHBhOFYXjdYCP7sXfd",
34
+ "v+VtN6z/1Ho/+5Z48jIqAMEmzcBkHWM8GkYMhjxGRoBcFz4aBObo9AtKYQ0bi2bCxRLUKIiOFeqW/sZhkTJRXnZ88ihkIeJR0NPgb8IKGwL+LYgoR0LGFIQ5",
35
+ "HWyCCpigJrmUQLyUVUPg682Vxopf+B4sOIu2mHXbrtfFG/asq719895rj2XV6NDBw6dCJ8nFl5OJBC+nkAqNwxiwb3/g5uyHX3XD618z5j5Vnzi9OZ6ZSqOs",
36
+ "FZikYyHpgHFdBt9oHC6TXRNDKg1vQIImxR4S5+cuCv+qiQ0B1nmugj0CLTJc7ETV4gLnhcxeJmTvkScEWYtl8MuExe/wQANAw0KtlqnIa6GxoKFIDoWMCEMx",
37
+ "eRzdB7FaAvbFG7IRY2RoXRZn0OnWtow2vn3H0GBgasu/cD6xZnZqymDO5OXiSYKXC4XLAg9vvuvaNe4H33bfB28czn47GL/QyLpNF8QLAXSbBsMpizStT8Gg",
38
+ "9Jwwh4BvEsfmqnKtWRIiStkkyVbkWT+D8imJgvAK8O32IrNC0MxgngyGDMBe6e3EW5B3IE+CBoKYpSpGwsyUiUIA1GgFFfodhVgUlkWMUcQ4eFEXOAeV+EwU",
39
+ "y2InwoHUwAj2rTEZZK22W9nn77r++n3bB4b7P/3UUwfj+Y63gTUvCxsJXhb5Deft2pEReOerb3Y/dN/237zGNH/UXzrjTNwEk8XWJ22AtEM4A70GhVUYNhGe",
40
+ "YDkI5jgQL4gTkIKoIiFIC5UeaPKMOEdPsoMLVrAhYwWiZNELEIaxYOln8SqatyCgHYjxVNgzhJEYAIZZIWbK2TDCKodU+JGiARBw55ALwop4mgqHZXSOiHMo",
41
+ "+LroUYhVQ+/C9y54yhiT2iyJ035o79s3uuzu+rLln33qhYuz862YwPtL3UiCl4NxrFxTcR/6ke/qee81m/9gQ3zhu+P5mQyxBnRb1sdtAuFI1EAmYJyiG8wH",
42
+ "ZowpaMvXEETwhRyapFMuVo2DATMv8BwDEFgPCWtoQSEucAbWzFyREVBOIwQIqvJ8DbMYd5DnQAPER0Y1lsIHiE/EePCcaDxRnXENMV1VMJUaGQfCc/p3iIBf",
43
+ "vFROKLBokj2LI9rYQmqTuJtWLay/Zv3IffWK++RTx+Zm5+OXvpG8ZA0EK+vQOFatrLsf+64H6u+5Zu2fDUw8+4Z0fjoN0nbo08RAGoNJu7L4M/YgTsA4oCfB",
44
+ "Og2hcFXuIRIQSQGyF5EC2jyrRItYVMCECQSjoPegjVlzH/h/wR9kOKy58rjDY1iEuQtd4HJexhfyhZ4B5e5hjTRYDNT5dxSG0Xc1mgqYqEpGxPSvejYG+Wwk",
45
+ "yJIFRV4FCoYNjSTL0jQybtW12za/tpYEf/n0+fPT8x3/kjaS4KWc4xgdq7sf+/776+/ZNvbntQsn7k+bE0no0sinqXgKDxAGTOOi9yAcgXF4IguYd346TFkf",
46
+ "pXiDKgn5n0LHKs4otFiy0wcWPLJQFN+jQZSoV/QMFB4h6A8ES4h0hUItXMQYQomUBBd91AMQ1sHjYwE9RABQaRCDRV4JFzmB8gig2stfJgIf1MFEDQnz0BPJ",
47
+ "dSvWUUqYDl/aDNBIHFHBFWNWXLtr5atq/fCJp0/OzM630pcsJnnJGYjkOMzOnVv9h/7tdzTesXrFn9cuH7s/a82mNutGkGWiY3JE43o0CPQi6D1oUbIsnQ4K",
48
+ "p2SRqMCWFg0vXBYRFnrBHDfQcyXeCkMKUzQzTqwwnReNQh9PsVbuITjrLliCM94clsnPEFWldh2xBYZTEZiwTgZDv0N8oYnGsA4m7KHfs7YrYiYL8QjiF/Rq",
49
+ "El6xP+T7s4RzoCAlKLGIXtXZLI2zyAYrr9287b7GyMpPPXV2YnZuto1VLi85E3lJGUgujvUAH3jtPfDuA5v+sOfCkddn7fnUpnFIMlWHhpEi2Q8+jQFSTABy",
50
+ "SOWJ0kXcoQ1ESrVLtLKZJ4awSPYpBuGH6/pQ5gktSHIYpEZHo0LDQAzCi44WssrYCSsgu6UsFi52AfK6sEM2JAyp8FwWw6ioh0Iqxj4hAGIN9DD4OzQyDMUQ",
51
+ "a0g4RkAfjQkNDa8TLNgIjSsCg+8BYR4FXOhRVUjJCMtYa12WpBXrV+3euvnmjRvW/eGxI+fjS/Mto1WXL5XjJWMgSrtGJrBvO7DVf89Na35jTfvCd6edVhr4",
52
+ "FGMNlkllMUDSFUCeSXYcjQPDLo672WA03yG6KY0fOJMnyTUxGGljwsk+1T+JdkrBOib/iFbF0AaZI8wDIhZQEM8LlVklfRnc9RGDiGq3nANB48GEIGILNAAy",
53
+ "LOyGwl4FDYjAeoRhVwU8GhIaRbVHGC5c6Oyh6GBajT2bGrtn/VhOSeSbAL1H1mUuDbPO+n2bd+7pG1nxR5949OukyHkpCfxeOgYSWKh6H/7MG+7KfvB7H/jg",
54
+ "9srkj2Xzc1lg0DhYzYphlE86hDEYDSuty0VNxN4QQ8W6Ki5OUom6JgJLFYAiQuSfS1orNSr6Eg0V/g4l5Lozh1TYxIudFqcak2bKGZwrqGb5iIJ1TAIiGJe/",
55
+ "EchGyrdCOIQMgLwR08DFOaReBJ+L7BeFfRyiYZiJYR29T3iIOsBgrYuKFUWYye9dhiyh9d6lJp7bBcsa1ay29vOHnzkaJC8hJ/KSMJAwCMBlLnjwlr3ZB99w",
56
+ "72tW+AsfDWamaJP0JsCImqv6soS+MLQx6EEyNJBMPInWdHCHEfYM2uFKayxyPE74I+94mMtJSl1JhD6l3IQaiOqs8CAYI+EU0cGCGWQBs7dAEC2BTX5+NAgM",
57
+ "tzingddPTBmFUpIT0V2fjACNEJ+KzJh4DHot9oIYVuJr+Uqd3xfFSoJLPOWGuGQ4lxWzBFq8mkF2y61eMXLndeu3P3368cOHD862gsAQxXDVH1e9gQRYoeGc",
58
+ "vefWa91733zHlh29c5+qzU83aJsPq5boTmORgQHotsCnXcIflBiEREA5LlxZHArMtbQul5Vo/k6YrMKF5PE6U70auysLJmuKEnXKXGkYJgwSMVPo4VgiX3gx",
59
+ "AdW00hifENtFmEIWuV4Phk9q1EhEED0sRkf6LPYqnCMRQyHjle+SUOTrKbwmZBhuamGYsHOESVDoKNIZLBFrLZiolt69cutNf/7Is6emxucX7EuB/r2qDYR6",
60
+ "g3hvBgeG/Pe+7tbo23cO/FltZnyXc+j/w8BQ3B3SLuhROhI3AeIWeQ+fxQW7REJErXlQjZW8iDyG17TWcVgArPemf+uiF2BdwJGiDy+FYQjES315NZRSTZWo",
61
+ "gVEtSC9bKnTS+nXyFKLYzYunSKZSk9AOLxfZLaRzRZpCQB3Pwb8nChiBvhoTbSDUGIUxCTVwQI8qMhgUanLqspClULjFBky/85nxLstqBvqq/X27sp7s975y",
62
+ "6DQkiQghr+LjKjcQ+gCCn371Hf6db331T/VdPPx2l/nU1HpDCi+QpUGc0VoASBbApCgpiblhm0PvIQyNaK5yAykvdPq9tv8pNY3WJtLqAchuhLGSTDppq1Db",
63
+ "JOpdyn5rLQg+RyXq+Dg6n1C8Iiqk5Sfntrjo0ViqPUIFs6Fowo8y9HgviKVIe8XGQwaJ3gE9ARpAnhTkzD2FUFprgl4ryyj0JK8VCm6j+2VDyevm6X1TJhgr",
64
+ "KY1NM5ct6+3Zsnb39dPHZhe++tzR81d9EjG4qgWI3gc37hnL3vfeb7l90+Rz/49vLYCpVK2t9xmKx/EDR4PozoNBvRXulN0FAPQeahQEuMWDlME3JhHxUHBO",
65
+ "LyorQoyD43T+k+IE9iraJbEwGJawK7NVBjNsGEUhupwnr0fX+hCWrdDPBPZF5k7i4Yxl7UQ0yK5N4SHrrijfgYYmi5rZN0kO0rVFbFyIy2jTwAchThNmDzcT",
66
+ "MSTyLlQfwyGXbiXsT63J2m0z1NO4ecOqHR9//OvHJi7ONS2qRK9WG7kqDUT6z5r+gV73M299TXTnEPxetDC9HoKKh3q/RWqTmhygzqq7AKS3QtyBDBbK2anG",
67
+ "g3n9gnBRRSv/L9/pi0RIvvBJuJj/vsDx/HZKAwYKPYheY6m8ZMq5aAkZovIYBHwqgm+hebVUF2lhvFfCD5JFp/LeQBgwdH6MoWgXJwfocl0WSksoB0KFUYwt",
68
+ "EJRTayI1JDK4hEmLnLDg+/MExtFIkPVDaCbhKJ6PwD2/V2Rc2sbLBlnWafasX79hbbh51x9/+uGvGBeXd5mr67gqDUTWVfDv3niXf+31mz800r38TpdmKTSW",
69
+ "B6ZnAHy1ASbpsrdozYDpYud0BOZt4CpBDq0oxBKpuhU5uxZBMUOjr1gC49LEgAwwj7dKqXbNyLCqsag7J4/HF15k29FoxIvQgpd1hLu+YpFUWDU0DHpt8S7U",
70
+ "gKH0mnRuBufkSUihG1DOh6haMoSMDQHEsKh9EIdU7EHQO+DmQa8MbDDoSdDjiiFQhWWa/5uYL7on9iEei67Qf7l058pNqw62z184/PjzU8HVKkUpChCuKp0V",
71
+ "2O3LK9k929Zs3liPP+g7bWR2AlPFRFgfu/xMGkOnKCfBkCMGh4sDM+eyEHg3xQXiGNzKJ8hUv3QmyXukK7PDxsDykILVyplcAdSMM6RzIokQcQFK8o1CHVxG",
72
+ "nLknYWIZ/KbplcELLVoJj/C+sGaFhJaCoeQ+fMr0Ne76vtvkLwwt0UhikfTjmAX8N14wEhe4ceC1Ys8jAt7YmTTj98rLfRKQZwUx7alKEyM9fEV4mFL45bM2",
73
+ "BJ3LMHzuzH/YsvzaxsBQf5Y5lM5ffW7kqvMgUhhov/uO7f7B19z4i42Js7f6oJKZxjILvSMMcDuzAO158G3GHqjYdehNushg4eKTriS4O0qopVlxZo9K4ZZ4",
74
+ "jlxfJdJ1bfNGnkHk7vljyvEEhSqyy9JT81iEM9/4N2q0oHUa2KBR4n98bsTNqsl7UKETPlvk9WJAigHUeeECxxAM6eCccEDv4UtGhs+gBKEYieIc/BuFVELh",
75
+ "Ejsm+ASND41V6uPzDQC9Bxm7ekVrnLdZtVEZre7ecOHMxMyjR45fDK7GSsSryoNQNO/Bvmm1yV6zZe8tvc2p78GdD6p9FnqGhOHBDTZhw4ib4JHaRfZKwioW",
76
+ "Ckq3whwCIHMkbXGEtZJf80K6otUg5gYYH+QIhryPYlsJO+j8HD5pMSIblNR7YJ0FN2xn5oikLrg4EVOIhJ60Y1luKKQyVuNN8LGyQOl1WXSpIY/HRY6YC8NL",
77
+ "DDdRmJk0wWDuB9kpNIr2LCdL8cDOLWmHrovWMHpZ0LCKNxBHzJvourTHFknxWZ0slC+HYVnXpHMTcE1P+v733XlX//bIZJnDJt5X13HVeBAhIaEehubH3/ut",
78
+ "/s79636zf/7idhdUM9M3Yk1jiFkezHM0p8EvTIJpTYOBGBwuHhw/gGEVhkS42+nyRm9ATkO9CGeuqQ91icbPP1kCydp0QUtsNT8ikvj8miW00scLNqFkn8rn",
79
+ "KbcRFJ7Dc7M3/jvmJdDDiG4KL5QMKI/n2BORQQqtrJiHNgQ0oBItiwlEvCpCCWiQYoBk9KxP41ZGDNwBATmGawLg8/tCkoEMh1kuDg8lzKO3lFwlJdl9Jx1e",
80
+ "fcPK8WOTx7/6+JFmYIOrC4tcNQZNHypAcP2+Xrdy5cpXDsWzr03jxEOlHkD/coDGMoAkAd+cAYdgHLEHhgtI81IjhoS9BsndFZgKztDYHz9g3e1psZXmR2FL",
81
+ "D/qb9MgVz8BRelExhb9zuMhxbA16Bk3eKZ5B3KADc+icyGgxw8RGKteGz/VXAuk8RCIMQWcmnEH3SJ5AsuD0fC7+IgYN/40eB5+H3qQ9DxDHUmaM3xGfoIHI",
82
+ "gkdWS+87xU0FxZAobeGaeF7hWq5LIxPpHon1wvcZb5QU0x0TxjOQnT77nluuu7FvWQWyLEPDgavmuGoMBPEtLqm3vvF7Yd+q/h+B2XEw1Zojw6j08I6XtQHi",
83
+ "DpiFGQhISuKJ4sUhNtiIgYEyLlBdsFI1J3MFdfdn2CE0rOiS8o7v9D/JM6ht5UbABpfjDDIaTNqVqGJaRALScRm6kBarT2THFwCMC9NgYZcozgkrEJukWCER",
84
+ "yb5giKQJgIAcy4cxL6KqYtz5ibBoSU0HGxuFX4o3SN1M80v4d905oLZHlqUy1qcs1UGWjOhdlfOz9IXDR+1Ej+8hs1w4DyWN57LeuLPj+tENb3vFxg30Ll81",
85
+ "i+5qMRAsn8U61Ru3b/CblplbB5vjr0u99VAbCMzACg4JOi1eDLgYky645hx7EUp0lcIJ7WGluEG+NFRSQQUeKueQ9EOOSTAUYgNhEIPehb8XNRO50WnfK/kb",
86
+ "SV/w791YchO444pui8SHXK9iESdgMRMN9pRkHXk5fjxG82gcRbZf7lNDImLsuuBx8YvHcvhv3DAoZMK/x+xNEDPgvdIGM8dGhAbUmcvzI1QrQ/fAyUK+TVYI",
87
+ "U1hK0nkZqCLhHRkTzkhpTcLaSvdt737TjTCEJWvFOJRFf1wVBqJL7fbbVsHdOxrvMrNTYKs1R6I93Gkp59EEP30ZYGGK68xxZyRhYpFI4+4dUgxF4bqK8WT1",
88
+ "y8Z+ZdiFuKCU0FND0lCD8gSYwZbHyAKhECnNZLFiXK/teDmLTeaCYY+EKrTj4gIkzCJZbwyDJFeDRumIZMA8h+ewKgio2QQm7ijMoVJiBy5NGKTn6lzEDWg8",
89
+ "SD2LB8NzUT5D3pu0Q62ODF5T3CUMBgjU6Vo5FKSSADIMxkM+xX9Ih0dlt8kp43Px2jHMSmzWafrebPrW3XdtuWPPDeJFSo0vFvNhr4q8h/PmutGB7Lbte8ey",
90
+ "o2ffSDFHULUGQysMDVpzYJDSxd2xNS80JstMtL2mdizheEA+TWWplJGSsIt2xDx2wjUqbXBoh5TvuUfBtcKycd45xWh0yA3JQvRE1Ekn90xsfCphcSU6Fqv6",
91
+ "RMhBfaqkFQ+dhunfHF9glxJsGEdejUWZFhc2Ps8VxkBJQh3X4GTjoEE/nsJS15ohpTPdD20cCdXOIPtFIRoNFBXBZT6THa8t4CZ3eMFCqpHxE4bC10ZDjTPT",
92
+ "uQyNOfju60a3yWvAVXEsegMRX2y39vfB9sHBNzeCzvI0g8yHFUPdP/BDoJzHHPi4RYsJQysnwJVoS9xZkaaknQ13zhyCSuWEZqm5oEk/PKk0FeCri1xjskI7",
93
+ "lcvD1XBkwI3iGGZmeRemgxYrF00RG0Rlv9oWFNcwJtxw/GDEG0Aqsg69Fz0v3WNSjEcgMC8hkZQTO/SunQUJi9CrYpIR3xemln0HATuC9JQpcfQqxHhJCNjF",
94
+ "RCOCeTE0TCRSqXAhlefbK80o0bCPkrEpWJ8FWbcJw+nlB25cF46M9UGGKuyrIc5a9AaSOQ81A9m6B/bBYJi8BRZmeeGgwA4XCxoHsjCtGfogyVBa0xyrZ5gR",
95
+ "5vBEPULuJaS9D4UtuPi1I7uwQyr4I+Iol6wz9csULC8ComY18agZdnxN1UXRgUagnRqF9qWiLWSpZMKUNo4QeQctcsJLQs/G+HcaPM1iQW2iHbdkMXuwlIuQ",
96
+ "jo2IPfB9QTyGHgU3CyQrEMgTW4WgnAE7sn4UYlHYhN6CexJbwjv4O8E/9J5IIz3No0oX+VxagwwebUCcmefitNhAnDjXObPqdWtvufPe/q14Cm1mtKgPu9g7",
97
+ "lOC3Lds2wu71u/augtaBDEOJqGqpToJ2vTZAZwGg05TdsMkZagozGEyzR1AaSha+tLvh7LkcArR5Ny5dCNG+UhpLSl4Nv4qKbY7WiqSaSjGIW0YQzzM9xYMJ",
98
+ "g4aMG2XIcVfG19S8iRGjQE9SLCIyDCkR5vvAYT6SG3Ep0IxB/DtJ4bUYi7EDS9pRaIlGKHX52IOYlMPsFejcxFOjmFEMgNojsVKY3m80IC0fJnqX25Uyh475",
99
+ "mGIEBDfBkE0IUm/mp6B3RfLg8PUr6H6uhgm7UoC8SA9+A+3OVaNuy/zM/SHwmHwAACAASURBVADzFQc2NZkLiebEvyZdyNpNMBgGICNDGWZpHUq6LRmHVrTT",
100
+ "lCw3LibJXUh2misIi7Fp5e2Dla2FBIWfo4rXolKC/k9hleQ0cqkvykqkawq7H87oY16E1LoqOJQRB4QfUsYrErZRp0fqPY2LmC+FQzjEWSGRBVzJqA3qBFjj",
101
+ "yye4SLlOhEImNBakmLGIisI/mX9CE7OQe8LnCuFAUn2ewchvoSZV9TOSZKvR3A+SIRhqSdiK3jrAIV0ZBLWzd/euWjHUD2ZqTu5uMZvJovUghEO9h0Z/T7Z+",
102
+ "oAc2L6u9Gqlc6j6O4DRNwInHCNIWxeMU8hCbgxljlwNnxB45ntC6DH/lB5233szLTcUtkCxFdkzxHvo8rjoszQmk7iUafzNYp8dS6IXXhDZQokmlAyNKYwDz",
103
+ "IJRERO8hzBt5EiEWKLSzxDDReWUTUOUx3SvmH5TixddF/JEDc/SonOfgGjEE4RhydbgMmSTsIk/BRY7PTfD5zGwRu4VJRTQUkbrnuY9ctKnKAOniQvIdbfLg",
104
+ "cJ6bh4Xx1W88sPu6Pcv78c2jifGL+VjEBsKqvB3rh/wrH9i/bjCI97suqVAti/xQkYuZ5JZw+wgksWMJLi6kV0VTpGxLqbKJPjLau0reIpeeyKav6Jw8hDxR",
105
+ "oigmpUTFKwZHz6bSVgXv+lw1JsmWK/EgFLJm0MmwMayiMAaxgcg2yLOIxB51W2j4uFj1+dR4ghc8P4d3bU4WiqyEWDs2OmLUxMjJsImKFUMig3SccSdVcCIF",
106
+ "VIhXYsZ8VJFZNHDIu74Q0ycN8JD6Fc43Z9HQe+IFNmdgaHl0775rrpH3CRb1ES5uA/FmZG0frF6+fH/t5AvLEpdm1mUBLQqLHgPDFWRKEub+EUzih610Lh5U",
107
+ "S4E7rvTfVewgQFsLjTRDXixgaQFE/ate9Dnmo9Yk+06xOD4PFxl6BQ5HCLPimhE5PTE/lJugk+QhWh6y5bXhEqrhYgwtgW9s+kC7MTWgUNwkeIeqJfHv+H7g",
108
+ "Nbe4LoSqDNEzoJiQAXg+TY1YtF5wSOOSIBO9UMwjEchY5BpzTyuhmk7YpaFCxQBTKivOis6RXPnImIjxSQo2SA1uZAPT524fXj0HPX3gWvPswRdrnLVoPYij",
109
+ "eBrMQmcDDPrgDsBwyoaYis7HIKMw0XfQg3RELiE7L22uyv8LJ4/nk4RfTt0q/VpOBOYwg4G6VJ+WBIdlaYmAbWLBVH0rbUmpi4mMUsNFSV6BwTIaATsWCeso",
110
+ "qahGjbu1hDEEjNEbpkRCkCQFX1K9ilQm5sVNOiwU7xnfj26Ts+eyYaB8hChkmZ9IGjUB3nlCExkxUi7wndKoH71vqjkRDyIhJyuduXQ3N3gC8BJe4mOI5SNJ",
111
+ "vEXauREs7LzpzpvW9Fdrwo0vXjeyaA2E4YLNbugJoHLm6WtlWxfHIkkxFCd22gDdDgvypNaDvUKBA7TxAn6gKl5FfKM2gqEx/lsVuvqjFk5pMRMn+CRZqLIT",
112
+ "3TFLOZUC8Cj1qe1JxeJoZ5W8Bl4QdV1kr2VFtqKFVegVCVNJxp4z1foSrMmif9PsNBZg5kVUWgGJu3giIVKmeRAnHkMelwpVjAN/EHeQZCUmQ6POJhSKIVum",
113
+ "SVPxJmIURCAoEaJpdblfFmRSrsngrMMgmV5eD1ft2rn3AJ9lEauzFuWVyRtm1m9c77cd2LN8ZT3Yk2JdufeWFgxiji4qdjG8EkmD01keuENr1R7nEegD1FiZ",
114
+ "aEdZ2PnuV5ovjoeoU/VnyqXkFYeleKDMD5e8CuMXoYqF4jUhYhQdginYhyhaHYdWjFKgcEuFlUTPMg6ieyAGS5svMFOHO7SV0Q3MIglDRoVXGVgE3qRLk+vH",
115
+ "9yrm2hESIZL8XwxJVcJUH5JwDQriu3zkdVbqI0Z8l3zpqDql/9SKBD+5Unlmdx5WtC9dc+HYUfqc8wTqIjwWpYFo4iJYmIFNPa0tJm2O8EwNed8p5JgDaE6x",
116
+ "J0FpuhQeUSijnf80DMkXfKmLOXkTD1niBCurrKMkI6H1roihjBnksXStJTlKOYdCC7nI0AuFlXs1bczAGy7PIaEFj7s2NXnQsE5aAuHujRgL75cUydRqR/AL",
117
+ "XyF5EVzE5ClEtUv9tFC/xVl2TgSKqBILpAiMC+bA1ydlMYsXTVBQ2eSBCM+IlF5zIHlyVYvBivCML06HB4muDW+m24KVw707d99+Cz2avPciPRYnSBe1+I6W",
118
+ "hdG+FVsgPs3bnoOAu5J40Q3hYmBwjjukw/iZRHbSjLoo6mNMrTs8NWkoRUHk/hm3WJp5XpJqSRsed0V3d9VkSclr3saHE3NFmjkXaxU9r+T+KH6Xro2YICRc",
119
+ "hUaeYNZbdlsF2bLQ8tJeZRKUIKDyXOx0orKZpNRa1Mv58LEqhETcLJiKNFmSHyEDddITWJgoyt1wRxU2BM6Os/6Ku+LnKkXxZlwNaQsdHHlwldonBip1SMef",
120
+ "37J27hl8isirF+dhF/NV1W7cDtncC9s4fk689tbNNUcIRCl8QBk3gvRShVyOJwrNVE6n6r/zUc5FHoQ3eK0zV3GheBClbMl4ch5Jzi+vV/DGkoQUFkin5erC",
121
+ "VE2X1HaTp5FLzx+n9fG48FH+jg3giFKVEdWEuYSEoNwIU7tE7+JCRnEhhk1YdkvtgGRctHZ10WvXXsUkKUHPgs/pMMbDMEw6lhT1NLLY6Tx4Avw90s/subB5",
122
+ "BJ02r3wUr8nqYpN1O7B6sG/sutfeVq/29IhiZXEC9cVpILq1Tz4MQWd6TD4Uk8tH5MPEDxDZLkdYRGs0xDhknBnLL/CkrKKVmp78ZThtUOiscpZLkxZELKHQ",
123
+ "USXtwvmrhEWmwir4ptwMu49SaKXeR41OpBiUGBRjoIWJRiT0cy5u5BoSiv3Ja2rYw+EYNXfQhtbE2OEmwo26uQBLJS94HxgeiWoYjUtq2PFxJO5Eeb1m1LH+",
124
+ "JEXNlyQ8xcAVixUtiJk5zDurkBKgyAMxda0JWHovmPjqzK6C1rLRtaPDdDlLBvKPPCgUMgA18P51N9wMG7dtWQ0LC9ISF3EGZ4pZyCchgjIrOuhFWvmozITZ",
125
+ "Jh3VXOQQUEpPQYEsctYjlcKg0uLWnT03nvyCS9hEZCU54M+TjYVWC42cFpQwbblxCVNA64pifC5OYWykNSbdouujZvYp046bgBSDEZ0tdeVkKBKqiS6LDEd3",
126
+ "fvS4mHQUtbO+n8yASftUagGEmEjYPPWAuRdR76BgSMC74ivVq9GbIs/Be0vatfrZw8N+frr0Xi2+Y3F6EAdQq1f9+XgYgsuXR6jRAgbBJNZTObhU0GkIQ2FJ",
127
+ "4Ro4sLVX4Iwi6aUFheIlaO0i66M9r7ROqWhFyg0GJR+gYVtei82Amr9LQRUtHKGJWRQgG6gsJmTG1J1ReCLaMFp8WNOOuz8+z3Ceh9gjpnI5pwO5yJD6Y1Ho",
128
+ "ib/EmSAyC4TyFqxqpvwGeV3JhaAMHd+/mGlknXPCQFwLo0DIBsnJ0OKXvAmVAGtvY5W4SyUheXgNv/B2NYHJb55BCsyn9vpbX71q/URTbnJxGsjiA+mq+MMx",
129
+ "3gPZoE/TYdnxDUvGmVbkrLHsnCKIU5kFPxz7PmmjBTUEPjntzZILKUOCcpademdpYlFyjJIcLqoHNcOuxkY7Li+YnPrVExAgLhgfLkpC+YeAYSfJtnLaTIye",
130
+ "RIZoaEQTC6tGNyCZe7J4qg0AY9FD6L5H86ykaQMKHUOweA4KO9ngeEwcrlc8P3d4J69jpTOjNtompk2vS/2w1OATeSUhIXkTkbtrI3D17sxZoQGRqzx38nht",
131
+ "gIvRFu3IncXnQfSNws/5zIyBtEVLJMcX2n1cpkApI8RycQ2B5ERa4aeRkizMMh7Mk4ES4vCGWXyw7JzyKnVJBZTCLnkpem3BO0wv4x+kPiTPsEsohuFKJCxT",
132
+ "LPXyOo+EYviicXWBObCyUmcicmKQDF1bhco4a1ThksfI+2ZxpxHtjMKsleAdwhylsE/CNR75JoCcakQk7FJvUkqGkimQNyk6R17xceZJ2lIVJ4V3KfS42QHY",
133
+ "f4B3kUUK0hepBzFgky7sGR7qqfXUG9msAE498A1GBSx9gAyKWc4uzRKUciXBonYQkRBCwbNqkvRFJTxilkvr03ljI/qUqOWi3ahKzjEBmLfgFU/Cow3EUOgJ",
134
+ "0mhaqgx5NBv3j2J/VnSKp+dLl3i6lpi7iHAvLqFLEQWLOJDrMXi+ueZq8m4oanCo70KDJLUBdivh9qG0EWDOg0YtcLM5alCNTerwyNCgxGMJJU1gHg+qKNQu",
135
+ "LbixMB7hmYuMN/JwkupzcEgpe376hNIUwuWr15reCfkIFqcga9EZCK3rzJodt2S+ct+eZcHE5FA3TSDkImteKMSa4OeH8TA3HuDKAgHZOTbWMEcZKImtc1zA",
136
+ "E51IDi+KC9rcZM3ZgOUluGjCci2JRAy0pmlgTZE4lHRm8QClBWhOCP9LYwqS0SMDRcaFgj9Z4lrHLoYuPCgXM2GtCO3UGGrq3BG0GS7P5RagEh6SQclIBsRY",
137
+ "0tjB+a6MS0CHgLXmMiIhiLj6EDpkRE5jnxQLs1DwqOl89fQa4vL1l9gJvs20aJrN5IX8XdseNSecT04Vz1mEx6IzEE3AwSEAf66bQT3BFmy45XnvEkNhAUVP",
138
+ "3IaGR3UwU0LVdRodEyWcr0dhUNTla36hYE+SzEOaeajg77oeZlEb6AAaUQb1ugGoGPChh4ASZjIrnfryImWq4xBExkG9doWB0owk0cSyu2J4gwsG2/po+yE6",
139
+ "J2fOHYJmMSbuNUUd73jmKNG33JOKDD0U4SbWjlOXRX6eJvo4V4LuLAYcvBWidKTdBt/mTcGiJ6oGAMt6IKtUAVIZ+IM9gQOVjAhbpmuYwj8J5fBnTBYqxqPq",
140
+ "RvXsHF7mBQE54yGPpbepDYv5WHwGgm8evudTAMn5roGtKakTvE8N13iwwjVvwa8NF3J9lCxG5WkJROqsjkJDompdirYFsMdNDw+f9fDVKYDjnQBmMgO9gYfR",
141
+ "ioMD/Q7u32Kgb8BAO/ZQjSxtqDrMksCwiAYp9Ip4TFs+d5AGYvor5BhFZxDpgsJiK6F/qVcPeygq2pIyYjIunForrB2pgPEuhEnSHBCJEVVVi562A5GLYfJC",
142
+ "Cp85CvD5iwZazsBItQKrKgm8as083Li1A34gggyNg64zyt8rqkxkNChiTXkvsVCNNgv2FFwUKRuFSk3KXlHpYqqrzxYlDF7cBlI6AszIUi2FqBHy0KmI2zkf",
143
+ "JaWeUgjETZclvFHJOzkNHcCpSUKslMa4GqA94+A3jln42EwDJiCEsBJCWOM69J56A74IAXz8yXPwA2uacNMGC7jv1SM2QnISVEHH1825i2KQCb0+SliwpkNx",
144
+ "iBYn5ROlcN1xb97c61D+gg2H2wOxLosaXmvhk2A2qmtXjY6CYskPGZNCuNCCj33dwM8/3wvnoQdqjTr0LxuAtWPr4FyjAf/j6adg79Hn4CevTWDTDs9NXKIi",
145
+ "q0qMoCx0Ln7iBt2EifI8iIxQ0OZ89GZIVp0+OwwjRZdVbkqxiI/FaSD67jaw/oMDWmyoj/0ElT6kTYyiJgwrpM9uvvvqeVTVWyTYr6BnucYNLl1y8J+e74GH",
146
+ "esbADMUw2GnTqwRhAFEUQV9vA1aMroZLyVr4qTMn4QPHXoD7t3uuQwqYXSJyCU9KWi5Z/PLLXKahQ3eU+lR2K7Alhop3AW6UgDuzeELMnlLTEOkFghsHfsdz",
147
+ "EQaSUc2Kx0ihiyphB2auCR/4AsBvXuqH3oFeWNXbgOXLh2FkxQoYGxuDjZs2wYUtm+Dxg8/BDx/5GvzswknYe4OFNKqxTksSgzqQVMNWrnlXckOxiAwbpbSJ",
148
+ "1riwLL5cT0OG3rvKGLseAM7CYj0Wn3/jiWUAtwEEe3osJIgKKOFFK7HIH/BC0MIcXXPcqaSY06e9qZD/F6xKWRTOTwD4poOfO9kDj6zcBdXQQNLtQiaN5JiZ",
149
+ "tdDpdqGnVoN3vumN8Io3fxv8/MJG+LtjSIsCpCQtKTwS5hMKWXmuZeEwSb1KLhhkUSAtHizXVfCdV/OxKFLbC1FCr9Qomsp+8e8Y5qAkXfRV+j5gSBOkTfj3",
150
+ "X87gV8/1wmB/DbvjUzIxzTJIkhi63S4cP34MtqxfD9/z+tdAdPPd8JPnxuDcs00Ik4VcfMleOh+1Rt6YgjpuPCPkAndswVBQajOL+9A3nxrNBQZ7gmVHnn7B",
151
+ "P3GIT3jFiInFcyw6D8KlAc4ffRpg/uuHZ9KhymRgzTCuRO8djYPE9psqWOTW//gBMkDNZ1oQQ4X/5wQd7sQ69AaPzHjoMQ4+djqAw+sOQF9nHi7MzQlbxAVU",
152
+ "yF7FcQyjq0fhV//rL8LY+s1w6fw5OH1hHH7lbybg+lVz0BgKJJ8mYwe07iRnr/TGuIaCdlMtsCr395VJU2y+In2XyU85tSxzORQQE2OVU8LSkV5wF/YTi4IO",
153
+ "fOapDvza8V4YGR6g31lvsMU6dDpdaHe6cHl8Au571T3w7nd/L6TYkS/L4NdOnIBffHYGfn5kAewYUsA1anLHnoAZKMZe2lMMvYeMR1D5DNO5TGXn7ZIkHKR7",
154
+ "CMGt39+F1ueXEoXf0CFgI00iOPb1c51OEncYHGrmlvf/ch4jV9oKpNRiQq3NKGc8+DEGgsDC8UsAn4p2Ql9PHSbGJ8gjYd8tpH2pCMgY6HQ7sGXzFhgbXQ7z",
155
+ "c5OwcvUa+JZX3g5zm66Hv7+AmjEDCJVoh81rqnR+IINn/luptalW2uHFYHgkkRXnDUqlqlKPortxrm3SOYlkUCKdlzCIm+UlgCRtvNCF/3IwgurAIOupnIMs",
156
+ "S/krTaHT6cDs3CzcfsuNtClEUQXuuOsuWLdyGL4ytBMeOe4hpKE6YvA5U6VKgIIIyWtptIpTNgVtl6TfUY6CxQN4nlqSzp3m7vCL030syhBLD4y1l6/KIIpS",
157
+ "TZhruFIsmSJ3wTYjAEM7jssXx8j8IPygMDIOnYdPXAxgvG8FTF88AwktLK2KE0m79xCFFTh27ChcvjwOff2DtIjPnDoFtf4++JPLVWh2JIFSlKzzgYUOWpOe",
158
+ "Z9OlbBZpYS3lVRySN5zTGeqyKdB1s2dgsWRRRkzMEr2WslWsjXImBFsP4fNnAJ5caEDFOuii8hkbW1MLVgdJmkDcjaE5vwDHXzgpwYSDubkp6ImqUBkdhb+e",
159
+ "7QOYxwIuLZAq92ItydnLsnZ2d0UoJglGQiH8gXmDbsWG7olnH5mYWV7nByxl0r+hAzOtxphoxvb0j3uXbcjLYPNkoHxgKuHgHjzSNUQoUGn6RydUypdb4kLa",
160
+ "zOCpdIReqrnQymXxxfgjBPAOKpUIXnjhJHz/+z8Eb/vOt8DXnz4IX37oKziPHQ7Hdbg014VNA5qhL0pByBB0/agcTLC2JtTYZpWKFoZNEuUs48BDqiLz9j/K",
161
+ "bKnGS2reKV8iOz3iGd+FvzzhIA6qEJE0R+6KvEhG4VS704FKFMFv/tZ/h4X5ORgZ7IW/+NTnYGZuBjpzc/B3zQZcmpiHFctiyGxE6uc8jZHXd6DHFa+ouI48",
162
+ "ojbbVpUCZtJ582LAHnVh964J85WzABMLS5n0f7xl8Cqbz1JzZv5rfnzhlefWh+GBtNMleUI+s08aARTPEBpR5R0SiuWYQIt+UEofGji1APBCUoW4NQ8x7q45",
163
+ "HVnMT8dQK44x9IjgkUcehUcf/xr01OswNDgIttOBSajA8VmALWsNxJKd1x0zVzHmpb4B+BAZKFk4lEWXclqVmEibUcJVOnJde0yJt0BWiuo7KKrEgih912RS",
164
+ "L1gIIIOkk8AzEwaqVZyTnnCdP12OI+OwNoVuh4H9+Pg4fORXfwvqPbibew6/mgswmYZwdsHCSkxoEgaRJhM6SkJnPsKVrpw9PuMxKp5SA6bIyniDQKg+cMGM",
165
+ "xxfPnSW5+6Id7rnoQDoeWMGGObHxU+MwtXvq8vpKHbxvgqXYHh9RFOPQsqYciOilSNHKqTsyChkrUGAUvulzTYDJroeg3aYdNc+16C4o14IhSZIkUK1WoVLB",
166
+ "ibMepqem6POe7SRwocNzbhJU416hxBU6mYxZOGmM2YUKzlkuqZ9gh1BM2KXFL43l8rBLW3xSE7iwoLNpP+Aui9gQL6hEMNFOYD4JwUa4rxQNFaxHShnBOMeE",
167
+ "1DU3y6BWq0PcQaIwgzhJIYu70HQGxlsSJlIhlo6PkBCKdgNs/FAqOcgTtiILUhxCGAk1EcaHtR64ODlz9onPfrXVXpjn218ykG/kYLrDVm8AO7rrGIx/WZdc",
168
+ "SbaOu6cAwLwlqCpNC/GiqnXpWYJHcME1E971I+o1pUVSpThfr4TCG0tsFgJdzjB7qEQ8Wo3UGPmXyLwFRJN8jEaLI+MkXg8XO4pn0IjLamFMxKmBEbgvBvrw",
169
+ "DqxJR/E22GxBhn/qPJJcKRAamE8dLKCIN8DWqyXjR0O2joyCNwBH94VG1A1QDh9AmiWQxB1InIMWujIkA/JmiiWpiNZ/0InknvO9qOg1phKa3FXiRrFq1/MX",
170
+ "V5+hYFhS6ovyWJQeRBH1xccfhdN3bn36mn4MEwzKoHKJRq7g1abP2HDhRdWAeYksHkjBoppUNu9UcijkPTS0krCNd2v+LLl2hOlMfAyGKnjeDKl8ZH4C/Xjz",
171
+ "i8szkqpu4bBPFol4lhfda7ExkzoAvQrnR8gI8o0Z5SY8JQs9G5ESRYGJzA3hAUGIn7qUlxBWrEiNkpHQkCqistHI0EgyyCyPY6AyZmp84aCKwl4q+cWEofT0",
172
+ "UkMWUaf2HctJBhooJJsShXbc7ojeT9whojrMLfgjFx+bJ/Y7wPdzyYN8Awfviv7iljUwPbbqeehOt4y92GN86F3WZbegnQy13oBUqzpaTIWIBejGDxHl3ZSr",
173
+ "cgB92FAdmSuavVdiZ/IKWA11ZCHI7ow7Ls5MpFKKuAN9VY6vi4ofJQyEecobyuXtVPMFXUyLldcm40W+h7ucKHXKqQ+tFeHxbSR0FHWuKpXzDpAZQF+9Cr1h",
174
+ "FxayFzFPKrfBgigJf9BD2gDBtmIg3nxqgYEhhiVFia2ovpTtK0qSJRzUMLLcq1e61nOja2ug3g+X4+CJyf5euaTFKXVftDSvLGo/N9OG5Y2J03Np+EJYqeEH",
175
+ "SW9mjnsVjyjTQ78XQIhsuypK80fxkzBTvn5ZAINBCumLdtnCd+CRcz/0d+4Sj4bmoBN3oeFS2LECASw3gyh/yPmPMkyH70gWTbn5W65FktwHqZA5+UZ8j3ZJ",
176
+ "zBeoYCwtWFIqmbqeYFKPZwcuXzYIwz2Mn+hVqGZD6WCu18fNIf/KHGRE/6aQ4hegkBFg3TK8tDBvQq1dUXjmIXptvnY1fvbE0rlekrfk2bh60YcmtN00uPjU",
177
+ "yXNPXzhNEhOXy4EW4bGoDeTSxfHgo585lDSH1z9GSWIrPKa23tF6WTUSrUcgIyrhjhyG4EIOsEkJrBoIYE3QpTg7p+A1TBHDuxI4SghGQ2vQQFLY25vC5uEQ",
178
+ "Et1hS3ojPZ2qhrXJAp+j6ONLJlkSNSptfUV9q/YZVoGmvg7tvCydVz4ZFxsu8Ep/A64biyBpY+vQK0M5HvvB9CzeS+YySHHSlJIVLoNOZmB7TxfWrKhBimkL",
179
+ "HS0t3RzVe6BYMR8UqhIaTWyqXJ5aJ3Gn8AwJjw07Dj47kVyemMNq0Re9zYvsWJQGggeGMfi+NY87mIPGQ1Tlhp3NqY1Ngdh53WvjZPnchBLV3Uwpeo6hPSRx",
180
+ "BvX+EG5dlkHciSHCWm0xNt5hNTPOte7YsY4SbPSFmNtDFqfwwBhAFOHPyOSIF8EXSqWbiHZbKcETbrtTaghNHqXACHQfOij0igRzucOJEhMyE1BCGN65sZjf",
181
+ "0ByRezZXaKaHkhDkBUt5JDIQxB7yhUaCvw+sgSTJ4FUjTYChPj4fhnRSwajeqwhJUaclVHo+2Uq6Pmq1Dt278VFvLxw81f671jw1a7D5PPdFeizaq1Mv8uyZ",
182
+ "43DixOmHYXBF1/DkSFFxSOihU6Ikr0BCQ/rsOGwiNQSeSTvVkESC52l85+4KrIhbkFkcp6xSkSIMoUWEp6I5h9LSFJuipymss2148xYDLsW+uKwH4028wBh8",
183
+ "KEXLYD8fw4yH5EGKcE5idfUahB+EoZL6dhUq6ndMCmr9F7dN5QXuZtvwmr3L4baV2NAko9+pQkBZrfxnCRsx/0HgPKzCvr4M3rQvAjA1CGhasF6bDN9Rj6YT",
184
+ "ufBApk4LvMiYlEXUXLoNoWcEDrbnvvD44a/RM67cBBbfsXgNRMjDufY0PHbm1JEp6H8mjAgAe6rME22H0qE5BU9qWWxoIApT2YdzfEI7vYVWK4EN6yrwQ9sD",
185
+ "aC20IJTm0Sr8y2sVVHoiOZHApzA/14YP7PawZmWEk83AUj2ujJImqYtGFpIbyZUXKtRjJkyUY1JYJdl/atejDRMkjNHn5Y0hpPoQF52EaVewSegNWk2IGgPw",
186
+ "U9+xBWBhPm88wWJMSaTm8x1K77t30G7H8IHrurB84xjEHc595B6RboOZqZx21t5X+G/q+6BMoISB3CXSRdbCfDh88OyCe2xibopfbjHHV4vaQGS9TDUheO7S",
187
+ "CzBeHfhMgEDdcO/C8u5F9KErf4iy0+VjCeRLsAsnrw0krQX4gTsa8PpGCy7PdaBSCSDEdp150zMxFGKuDFSsh/HpNrxzLIH3HKgCFgOzXLDIt5QXIV0bMmfC",
188
+ "tuX5Acml5K5NblhpW+7QUoINik80hJHuLWqWeaeWXKqcQuAzSC5OwB07BuDf3b8CZmZmIcT6Fszmy7VxGMoCRnyv67UqdKEH3r5mEt58Qy95nhAHfeZUnqoR",
189
+ "UNKjI+Z0vIRgqty4VXqPNDLm9gMP1QYcto2/OvSlr8fjlwAZhcVuH/L5LtJDJtCaSjf1r7j5xuYamPs3bmE2MBkWXXAfHJ5zIQtGaV1ZoDm7eSXWll2dufkw",
190
+ "iOHV2/pg/EILHptIIQsrUMGpTrKZU2iWeWjHGcTtLrx/awr/+VUVAqAO5woWvRnyBc8VgkVandW23IuyAAAAIABJREFU5Rcvdxzh0Ckn5PgUmgslRYA2beOM",
191
+ "eaHd0j7ZvEkwHVzGM3iNWbMFd92yCVbUe+FLXz8HCxlAtRoRxsNuLZT38AbiDGeTePjhAxl8+M0b2BM0Z3jxUx283qMkZHXuijZj0M726jlkijBJ9LGvl6lY",
192
+ "P7LBTc4MffDzn3n07KF2DAEVLyzuY1EbCB3GwORcAnvbF8/v27Pt/nDu0hhFHVlqOH4uLZw8l6CsUUkiRB+YltyquhcHaKZQbTh4/f5+2FeJYWKmAzNtD1Ot",
193
+ "BFoYXqQZ9LkYDgwl8J9vAXj/LRWuZehiPQpnwK9Ib+D/0ECIwdFEOHsWarOjYUc5sab3Sjm+gsPmSVriXTC9gXinrH6UJKJ6Fm2cLaJZ8aAOsnYHbrptF7xy",
194
+ "10qYuTwNly7OwuxcC5rtDqVDRqoe9g+l8DP39MD33bcevAvBLExK8wW+MCrWIqkJU9dFUZrWm0vGn/IsfF1cvIa6sciF1T4zNzjy5T89Nfvhjz5xGroocluk",
195
+ "Ct7Fn0mXAz8bfKtjgODzE0F2bdb3p3fUem6Ku4lHUE3z9pDSzRlWzpHk9RGazS7RuPR5UwEVCukMZOgmZnCEWwoP3NwDr92bwdELCTw96eFSy8NIw8DelXXY",
196
+ "scpCmMYQz8kccRUnloRb/G+mXnkkGbs11JAl2CIl8ZCIEDGIpJUQivmwM4kYDIdLshtr0g08JB0HQeohMY5r5bFenAxHUvDYxCIM88bZxA5RO1IMnywkzz4F",
197
+ "16/dCL//E/fC4ecm4fFj4xRWruwH2L9tBWwb7YXIzUF6/gwYnDtP8xR93ic4JxYw/4GtinSkgjRsYPWyul3RwpHCgCZo+azagMSM/iE8+j9hdmE+DI1JMZO/",
198
+ "2I9Fb8Lam2y0N/D/4YH9a961Z/gpd+bIMLjUu27bYHEQ8/oMJikhhpqpfDZHqbGCDObULoo0C0QatRGLGToIIgshtvnprSCHy43TWgmkzZjpXOm3JaPJC6Ee",
199
+ "lvUWTG3hJfD1QgvtmRiOn/KwvOKh1m+h3mMgirAUuLjMK3AE/ojNGaSTSDKXwpPHHGwYMbBi1IKpYmcTBcHyJMxjoPWRByt188QXiWqcG7IWopWjAMtGAGoN",
200
+ "gIUZgLk5cPNzkHVmwJLxa/gEBZ1L06pE30bz0AvtVUGxCwFAGwMO7SG5jPdh3YSbbjj/Cbfjmvf+zH+bODcxjv15Fz1AX/QeBA9SVxjjLyxkwdTkyLlm79qP",
201
+ "9/ade3e6MO88CpVEu4TMFOmqSvXpuR5Is+8afcnwGpZd8K6Noy0sTTt2ELcNmNku2Eja/5enR2kzOGkskodvuURFXYmcG/FMXy9ANYIH/+gCvGudhR/a4WEe",
202
+ "AHobHioykwQP9IioC8wyqYenmR4GqjaDv3ge4ENfs/C3r3QQhKxdoroPbX6dJxe5vp1k6Wp9uPt321zPEVhILp4FuHxRmnujZ8OhRAzUacsgEkEmQmkZitw7",
203
+ "BYmp0NpCHuRar9xdC/dDKZ4oi3r7w/PTjd/5zF/95cS56XHUMmdXg3FcHRiEp83TnpSFFX/74NCZ/t7mO0y3WwEaqoPS2FKxDoXNaiQ61UmBrYoCS8N1Slo/",
204
+ "+vBlhgjthNgZEBeDfvDalSTv2ihPFiUtS6lw91YFK65RbDhXgerockhaXfixp7pQ8xZuXYaDaQw6JxwqJQlCzm9g1JWk3Fernmbwx88G8PZHAH7hWg937wwh",
205
+ "jbAOno2Bv7NymFTDyMKVB6DwH3MRIROuHmyWgHUZd3inS9UO0gK6lTJ2orPCXJBo2vJ71plZWhSVd7TnYjUEXzasBvGyDfOfvmzf+5FP/v3UQsIT6uEqOa4K",
206
+ "A9H96eT0hD2wcd+F/Xu27jWTz+9xWeZ8lloC6zLwUlkrFQlyYzntWsihAFfGlWcM6kLXb9zEmqdLaTOIQhFCT9M2PcQWKVCXhKWGJsKW4egBFydw+93XwAbX",
207
+ "gQ8/tgBPdBvQ18mgN/FQcw56jIeKM5C1DFjEGx0Hj54D+KEnIvjv5yL47VtTeNstVXD1qhisNDklda20IM3boJa1XtKbVwG9arp0wq5ov/hepBOiqpozAefa",
208
+ "cEHTIJrNV/k7XYcYCtHteYbdhY1Be7Rn7L/+xpee+pNHT0wF1hiyEGTQylUFZY0ORgNFf/x/3WPRh1h6MK3p4bcf/TQcePAdv7K9b9VbfOektBRJpL2m1oXQ",
209
+ "M7S9XL6A8PnqU0TVlTc5IzwixW+4g+eZcQHKOt8wJ1VlH1RJFDX2kN2ZCCT0HNTPOQPSxHe7kJx4Ht7xpmvgzr0T8EO//wy85ckMNgUAN6+owLV9GTRCBxNt",
210
+ "AxfaAZxMLRzqWtja24W/eY2HPXuGIe06sJjVxlsl2bsMuZEMOjejy66YR5iLBymDr8NC6cb5grXXlRadlYSUPpeKiHdE3VfsC1KBpC2iv6LZ7iVaHQvPTRi0",
211
+ "g+XjM7PtXz54bAZPSTEbfQzO2wpq66yMHSY9lzUo/EqcQyvCx9Igh3xs3r/CsehB+pWHAVvxwYdvujt7932rfrfv4mPfkzQXMoi7AQr0cpUqgXTFlzpZijdW",
212
+ "jPMZ22p1ntKhRUacai1w7UkrXQWeagx5ikPePTQu/YwLr4KhDocqRPli9/VKCFmlF8KxDWCSDjxyaBw+c2QejjUBTk40YXI2hd66gXXDEVy7wsAbN1dh75oe",
213
+ "TuYRQUAdu2U4jfhIPDeNqRZqV8NI6vqi+ICTdWQgkuHney6aWVzR/ELCJiOJRG7szVl8TVKWEjXijbgOn/vHYSfJehYMjgUTK2784K/+9Rd/8Wc+fyrClEu/",
214
+ "Dd3mgapfNWBh+967IeqZBD9/PjQuNr5vU2KfnoSjFQOXFlrw9PkTZh572hgqlPS0Sf2Lr7ir6MANxjlv79iy0/3H971u94GZrz3cPXm8H5KOd1lqspRnFnLd",
215
+ "Oj5Dxb/8AerKRrEhU8Sys+bsU9GalBe7h4CaQ8sGR6GUttiUp+DiotY9BUgVhyVeSHplEZuFdekhyctN7wCEazcA9DQA4gWA6Ulw8zNU0Qf9Pbz4mm1sfQu+",
216
+ "04UAh5Xm2fnsykYUOdnE9SLMEueDHsTSuY9WXqOCv8PaElEfMOt3pRoZD23XU27xU4DykgpTlMgotUf9elAbtO3Ra5/4wyfO3fojnzuSVHqG4NY9m9wtURru",
217
+ "umXvtaO98V0bNq7eH86dX+XB9tMEMe+mzeDY5ZOT3Scvd2tf/OozH3/yiw/F6RPHLtj5LMNAkef//gsC/KvKQEpGErzn1bdk/+WBG38cjnz2Z93cVOaTOEiS",
218
+ "tJg0la8aVfWqpygm2+JBokf5h3QHJUNAA+I8QznBWKwhDjn4PNxIXUteVX8lkFc6O1LuLAfvPNfdV2ulWRzIxGEtB5fI0q6OEhDMYuvkKgoHJf8h9KsoUIoR",
219
+ "cIrYtGmeJBHp72JYpQwRv47WvktXen7TVM1YqhbUzkuSIMxZK6kz0RGEWWZ8MLTFnNxw4DUf+p2P/fXhznr73rfeXb+x0fqea4bD76u1L+w2WTOEzixAJZTu",
220
+ "8JgPwiq2KkClATCw2s35/icfe27+lx8698Qf/dlXJ7qHDk4Hxhi6iX8pI7kqQHr5UNHhweNnYGzD5sf2rh14XTh5erVz3nmH/RJLanId4ZwnKISqxR/zdSDy",
221
+ "iByTlPMRLNvW8Imept3Kc7GXdkZUmZW+ljSaLuU28vEZ8jvCEzh/ELuLtNs0ehkny9pOm/9GryuDNWmxynnx+dRfS05WFm5pHTvdS9GXmHOWip2EuiaRpPQM",
222
+ "Lo2hy5+elqZGvUi2kydcJexxRCbie2XTSs9IMLHlul/76NNPf+RcCvChe6+9760r3MfXzxx+e3D50Mps5nmbtSecMx3v0iaS7HRxLmk652KXdmd91rxsa25m",
223
+ "dPO6vgf3b9v/mjUrqofDdufUpVYYLLTbBOT/Jajiq8JAaBqtBv/UA8HgW2rjC+eT2+689fBQd/q7k1aTyqkc1o3m/bJ4BiFTj+JVFHCoKFCz72X2knbowgi0",
224
+ "NkQ9A/fZLeJ3+r8+XwWUyvwojs0XmAgpCcEjn0ucbgn0C0impFwxmprYKn053bl14eLOrzu9egzFKHLvGuZRrUrOPhW1KKKeystj85Apk9qaYlCXGBgyfTJ8",
225
+ "SKRiWIMVRcuC8YEtz37xlHnb5Klznffs3/XTd8HF3zLnnhpJOxOZgXksWbEmCq0JQmuiujWVhjFB1UDYY03PoLWVmrUR1jI7ly1M+np3Ymz36tXvvOHAgXTH",
226
+ "0DVf+vKjj9hmQf+/PA2E1zAZBn5i2I+hoAFF+XdirhNMOXty7+jKdDSdvLeTucxCZhFMUpgiNRIs3ZDetfmSZpYpV8JKw+pioeD6KKjIQnuoCTNNfxT5kHL6",
227
+ "QXMnujCp5kLFhTmleuVj6dCBM3nepQSnZN6I3gSGgkz3ikHTRUh9fMFNSKRVCpF0r9AVX5INc4Nqlqt7NYaSd+VevNjYQXIvjmRxgqCr1o3t6r7QWfvguaMT",
228
+ "x2/bt/YPbmgf+8H25AuZDboQWBdAaA2pAMI6Zfeh0gtQ6QMIewFrRUx9EExjGHxtEEzUa00YWt+dd27+nO+vp/det++a4TtWDXz6T4+dst1mrHnbl5eBaOcQ",
229
+ "430QGuM39g/70Uaf7+nrg/nWgqXKaGs8trM+Pz5jt61b/eWRocH9/QsXdqY2yiBLLLX/1/aemprId0AtjCr63ebeRZKHeUWhMv15dvxFoYgC+rzvQEl8SHEU",
230
+ "OzRuP1pOkekOLZalbowScvw8XuAySiHPhYrRaAGUxnBS0acJRy7llVfSAgH3Iv1OPqVWe4qhTKfkJXxxGzqmztOgYWmQTYVkjAcyH7qoMWafWX3j+w7Pzv2P",
231
+ "PaujX97fff575y+fSKIQQkptRAYMTrPCsQo4pIfq6KsAYQNMtY/HyCH+qA+CbawCU1uGRsJ9T1zL+OZkZtJLN4/cdPvQyrHdf/WZLz1ms39mamvRGQhHON6E",
232
+ "xpi3bFnhXn3rzujBm/asuWfL8PIDt+8NNwadpmklfjxLLDb0aHdj/9jZ83DTDbd9fvtI7+u654+v9NaiddhCduJpjakui/qm5xLcIp+BB9eQF3UduYKCqf0S",
233
+ "5hDgr+WxpefroE6FAEWOuliUOiRUgwTuLVe0R81xk9Sz8wmEESMWSoxO6kyISdNEX27PRU/gErLINwSVkBT4pmTsYsBGokH6J+UXpZqRwThg5UHigrS3f214",
234
+ "ev0NHznS8h/e21N5//bzB39qbvx4Wq+aKAy8iHq5dJeqIG1IMxENfrfSOZ7CQ/xdBFAbBKgNsOwlrGHKzlhIrWtNZ2Fr4pbexvLx3r7k0YeePh8YDK7/mfBI",
235
+ "sBjrP7bv3ec/ePOByne96doPvGV3/6/fuGz2x/esSH/wmj73b/ZvHL1n28qhdPXY0JGZJMguT80FC+3UTkx0Fpbd8trP7YXx7+zMXGpAEGbUCUtKSvUNLOON",
236
+ "3HGUNFUK/IoKRMXiSA1LxyGdK6hlrhTvMJbRGgs+b5G5L48j091Y75lPpKpk8Ry6ytVAlB1TTK6Za8URavBX1Bgr66TyevGMLNAtIqwUc0fl4RB8DiebCpXO",
237
+ "indBr4GPTXEyHk6bznxaCxrhiWDNJz57sf32nUN295pTp/6gefFgNQwCE1UwmkLPIewdsYIooUP2qgh5cZS0zlX3OMI6bbGx0HMq9ByfdMFmbePak2blypV3",
238
+ "ramt/dTjTzx78WwzflFi/iVqIHjUwwr83Hu+PXznt2z84/UXnnyfPfXM8mzyfDWbvhTZiTONgWR289bRnrfs37Dh3rUb+59x1ezsuUtd8+zFi+HxZ782vm77",
239
+ "zod3VYM3deNmDxVQpEivSBktvoB+6PizMFqKKfLuMxq2iAqYa8FL4w0EGeRiWhE+cjKbf182QumvwMVJWhdPfyxh7XyTZwPT69F+wuWm2uw1JKwS4WVesSjG",
240
+ "Rh5OZP053hGAXjBSIsPhm+baew3PKNwDUrdzgSBP49LWvC41EPsgjXwUhgfe8Ohja/d9W5DNtbfXBn+78vzf73NZnFUia5G5DSo4F97SuAYcQ4eeAz0IWxi/",
241
+ "gMligKQLHvM9+Pv2LEC3yTUltMnprPeOMa6d+fnz1erIxu1j19R//5MPnXBx8s8jTlk0BoLMFKa5vmPDqP+BA2M/2Gvm/i83eSk2Cxetwd2k26LaBpfGLpud",
242
+ "8z3tifW7R1e9fef2vdnAmh0PHX3+WHb0crP6zPnLJzauW//w3kr6pmZrvu5tlBmX0TBXOkr7TM5elkGpUMHsNTTxkUdndOR5RTkJN1wr2gXp/3OPoI8urXEZ",
243
+ "zFTMFRHZfX5d5dAnp4nFOATLcK16QTGhZ1AWrjA4KfvFL/xHPncEf8fhpBqUhLc5kHfUK1x0aUKsIeOMz4udT4PMhD3XvvbR362MPvAnf/jnE7sHNtywZ/rQ",
244
+ "L0xdOGt7qtZWax6iGoo/MUkqQko0Dkr5pTSjHfAr7rJxdFsAcYdqUEhd7DpgXEKegx6PIZhLcJqW9Wk367HJZjew4tCJualDzz0/FyAu/Wa7kUVhIPjBIBFZ",
245
+ "D8C9+1u29d24YcWvVxs9K+DCUeNbMxbSBO9c4AT2rsSR9Cbz7Waw2sb3Xr955BX9q9c8Uu/4S09NdKPHz1w4sXLD5q9eP1h7sD03Xk9MkFnnSamhrRl0yGfe",
246
+ "FqjEFrHEiBc2M8Y6eLO45tzblClTAfeS5+M/a4Y9xxKCGVQNK54pp3npNaVYik5QyjXIwFEN33IGhx5f0L4qbs7DI3ltDc90wRfXIFIVego3nkNvkUn6BcNB",
247
+ "VLckOAUvM9B1kPZEvWFt//2P/XF34wM//Uu/M75hOoY3XDf2ff75Z+5O425WicDWewCiigEbYbCLOCmS4iqUy7BkxmBjO/w5Tuhnzv+w9J7vrQOWYkK8ZqpH",
248
+ "4OIwkum3Tf/QxrE1pwd/59PPXHBNwB5g5qVnIOw9fHDvxlX+Qzfd+Z6BAfN2153JzOSZAOI2dxaXhmb05mA+GYewYMOzTtvVW1Obbtyy8h1bN66PNu3b9fil",
249
+ "Vjs+/8Kxk8E1931h58qBe4OJk0NdtCnnjDZEKLLCCtKlsXPRYD1X/7JmSWeyC3Usfy9F7QLDSxMPNDCWX7IGEHMzLC7XGD8H5nKiK+aJK2BWdkkm+HJYJUau",
250
+ "wF+8CYdskj1XA9SXUvyjTR6pcpF/r4JLFfw6CqsQiOeew3cTl/U2BsL5sf2f/Z9Dtz34Hz/y6xNnFubCt776VnfXgPnpmeOHNiAqr1bARhVRJSB7hd6ROj9S",
251
+ "VhE85n9QltJ14GIHadezEBIVBTTOLRMBJDasw3sp7WR0gYnJ0q6rRrDuVLD+8Reeevro850Ye2t8U53IojAQao8DAP/+1lfA/ltv/r9t8+Q60532fnrC4nxv",
252
+ "n8ZCleKHSgMBdTEQBABjMjc7WRmrtl+5f0XvW/dtGm3UV45dOtfpPH3kbPTRvnpt90gyuyNxmc+8NQhNpOUUh0baYE7rQ9ilFQqLPOzRmXsCJmmWYRF+Kdmk",
253
+ "Tejo7LJyOWFd4Jg8MlJyQvIwHD7Jbi/XAepVys0dZLY744YSfS1StLJ8hgE3XVnBnmGCVLyEgnc0Fv0dKlwcyu/Fm2D3rzR1fnhoOJxcvudjH/ni0e/4b08c",
254
+ "XnjhwoVgoGKyV2waGlg/e+lHs+nJZZUKQLXG7YNRWmZDqdEn3MRJXJd66LY8dNse5ucdzM95aDblTUTRMRoGqkpQQYz4g3AcM2CoKiaRWtZxAc5xGF4WXRrt",
255
+ "+dOHnrhkHLIILyW5Ozfi8GYngN/eW1kd1KNd7rnTEFQ7OGaliDBQIy0z+Sj61so1rP+OW4EJur473sqC2bkN142s/tndmwZ+3AysPfjIC5f/trFm96G+2X13",
256
+ "Nf/2E31ubpZasWFsrRtT7jbwG9YPSemELk6yG/k7DqKmEvBc/l50P9GptPSYgpnl8WMq8pN5OKpOz7PfQqfmNC6pADTLz4oAWvzima5YB0gMqI0griBpezFG",
257
+ "Lg/FhA3Fe8/pajQIzZOogVHnHjY8MhowqfUu7B9a4Y6sv+EnfvPhkz/3u89dtCkqOQHc2PY9sO0N7xqqffKXV852AXp6ccdiap1U+TG+4+hBUunsaCCL0SAy",
258
+ "mBr3EM/WIHAVQKJrprcDQW8MQ8Me6oDSfrSyLkDUBp/wmDjWtwW4EdmsNQ9rV7lbdvf3DlaTeLpdTkm9FAxEaE4Trhr1Z2rVVTedvzjYnOtAuKxlqKsHd+Qj",
259
+ "Ze2VOqtC00SxKUI/awL02cnkKWenbI+NTt5028joTX52lnj15fe8CS5++QvGXzpFQzxxd6SXR2ORYZrFLFwZIU0XWSx2zkoLTsF3T4f4qNwcSx2oe4kYBYbP",
260
+ "2goLH5Zc0T+u1PldjEbLgQla6EYg4jyZd5gzwPnYBS6d14ONWyv9pGhMsunkITS0g7LHkc0IG1lI9aDHAMd5X7E+7L/2ttMPXV7xrl/5s89+/osTcYBIIET9",
261
+ "FICdm7zk65ePZO2FdoqXofhFvTSVmsQZSkzovGnC7VrPnTbQvVCH/koN6lFI8+h76kMw6xdg+vxxCKMMKmGH348KjrpmFkJL4bCFYOa6Ppo+N7Z25e3X79z3",
262
+ "/OeeePoo2Q024n5JGIgchuQhcXcUZmbAtSo+q01gyxHawTiJpHooXm2kas3bytCUGqnRxqMKENW9rzRc1ky86RkAA9Wg1qjA2K13wsyhJ6F95jg41y0qB7Gj",
263
+ "tbz5/J+W3vLCJzyh9UbqTRCzyAwRugnNl+STpcRL5c3qJJQDS4sF9TM5BazsE70ZSiDwMuXqWqWk81GEueUqG2denMPIW40WG0verVVqpPT5qqmixS3VkiF4",
264
+ "MzzUb9vr7vjYn44PfOB3Hn3i8t+faoa4AGm6GiJ3AD99+TI88fDfjW/uGzhTjWAXMcbcOovwN+G3DCCUisvQe3/unDfHnjXQV02gkyTQVwkgpQbZACu37YBm",
265
+ "/06YP/EpGKymYCsJGBx0FMVSThCCz2LCptSkqzUVbtrUf8OuqenPPUF7zDcvylosBqK9lAxgy5mk12dtb4I6hiTYfqbCM8GJwpEZ2waTSJyJ1RWG89NN2AAf",
266
+ "VMBEPcZEfcZW6mCiBq2edOYyuKlx6F8+AJFZBzNnT0Pc6RJYRDCqdCeHLOwmKNyiWgqJomjchST+MJaGF2EXwSUKtHW2E+ufVCbC5+a/CYhWUaWi6ZKsnuUo",
267
+ "OMdD8ijo8Ygi5r2UxxroG1nKq2imPd9MMfbnayIPxY5Xciay45N4GDU+YKKxTccf2Xj7j378k1/6i0+9MG1Pt+exZDYtxtUxgltIfXDm4Ey7e8/2h6JTT+9q",
268
+ "dY1rgEdCig5S0QceTOyhUjUuaTnz8CGABRw76VMIKgZiA9DuxtBqtiA68Rz03/ZK8Lu+DRaO/wH09Up+RqT/XN9TTPjFN6579uDmnv2jAGfHv6lZ9X91A9Fb",
269
+ "iZMFiLvzLeji5PGKSacisKuQE+ewhes8NGknfJFlfp8AIGZbgzp9p+0ZPQx+QnECvt2iBJRrzkHanIOkOU/GVmvUwWIBU5pAZz6GlDYkXnhEh1BYx4k/lqdw",
270
+ "yITj/ZAGDoMiBGJlMD9Oyi/yiVecW9QZhpztzjsH63BRTUAqq6WJcrQlMR7t0oInot1fxrEVRAI/IVeWEGOn04GZ2WKMIV1T5L1ncC5VhMa7xpoVtv+am078",
271
+ "xKOde+YPz5z5g6NnK91uloaBzbCbSnn5UVMVD/7U9DRM92/+jQ3Do++4fOFCJa0EKJMKMM3hEKiDcZ2Wg56uNefnV8wuLFxchqUgJfUOLXocx52mDrqHvg6N",
272
+ "2++B5vg+yKaehqCnwfkRNBDaoKQojqLZFPsirfGXaCDoN3XYSLBY5CUjgw1/156t1b0Ovj9ut4NkuuNdNMmklchFVFjHDZyxK0gguy6+02zrzEghaR+Djzn5",
273
+ "5BamIZ2dgHhmEuL5WUg7Hei2OhA3W9BpWxhcvQq6szPQaReME+c/sL2OlltIiFMKWXT3z5msF+VT9Hd58j1P5Mu55HFcU15a7EpM6GiQEhuVKwC0G1FZJ6XJ",
274
+ "TPk9yUIwxJHhwIwvOIzK71EbfzsDaeahZ9Mms2r/Jl/trQzetn/jzXH/0ON+ZvL8hXNTtoX+1NMQNRE45k7PH09je+zI8QurBvoubGm413t8Y433qfMU8mQd",
275
+ "7+sQ2mdayz/e3HbXL4w0p77VT8/73qo1NQtQC7A3WQDVKIRqFFEfYYsqx03X/X/tvQmQZdlZHvidu74198zKrH3fe2/Uau0SaAEsMYAEkgNjM7I9Yc/YEUNM",
276
+ "hE3MeBhjhvCwBBOIYVgc1mCBEVgbAkFrRahbUndL3epWq7qruqprr8ysXF++9e5n4vvPuS9TGIftcC9VTZ6IF5lZWZn57r3nP//2fd+P7MqT8EYzE01YxcnS",
277
+ "0zLCcl1ftfTowsPPfPv/e3JeKpuvHgMpSywVv4F75vZ4p5v+T2GjVVc6RB5HyhlhOY8nHD0Ih9cYWueQT12e4NLVYn2dCiKJeIx80EM+6IjHSPp9JL2uGEcS",
278
+ "JyL1P2gnUI1JzBw7JTs57fcQRTlSbqQtRiL9ADHQLYMph32FLbykctdvKaN813FmO9RbV8l1Mie7aewNMVD2dDeeYHPzl9PWhpPjbBgm77c0hrL5t6XXUzYx",
279
+ "y+oS8wMiPQYpMEiAoKYwtu8gQm+gdHtBV/rre+6arfzEiWPH0kZDPd6vtLJkUFW9KBZupMEfmJIxI9Er8cD9zvX1J+6+721f23di39FQJzuyNHd8tw41tXfp",
280
+ "zNzrf/2R6+1/uHvM2Y3W6k/017t6xFdEoSBwHVR8D5UgRBj48IMAru/C3X/CFFN6z0NVGR0YWSNz2dLAKVy/4rTS8NIjz1373SfmX1wE/CsfYtknvLK2jMWL",
281
+ "FxcH++65WHfUNELofGNSRatdhM0UqcwZcER02SpjCEM5J/RABDA25/rJTHIZY5EhT3NkSSoGkdKrFIRnAXmcI5jZjbmTpwW7CK4iAAAgAElEQVTK4DfG0Jzp",
282
+ "Q7vraG+k4HwXnrRVMkB9ZSY3SyxtN6JLsWcz5dZOJTPlWOkvmNCp1G3bwvUyX/NllVNMUcDU6oZsx7K6V8JWrGCLjSqtkuNmX6X0LJYlbKWOtm4TkxdRf4v/",
283
+ "Ts8yiCFzFjnCtNZwMN4EmrUCQXQduToBJ2mrPFsrdO+btTt2H/qlXe84/YH7F5o//3z/8EOP/NlDg+c2cty8uah6pBCmmiokmvnguTzzfu7s1c+/PTrwFw84",
284
+ "d5y4/MxXq8Vopqfv3vvC+tjEmt49idFK8A/WBqvwx5Xu9YEGhVJc+2zl2k25UNGCOyvwpk5AX/gyFAfDWazZJlNmyxiGl2B/vvIeRJJWqr3APXp4p37TvXed",
285
+ "qFy78mCSZIVTKCdtaWRhGwg5LcmWNMtxzfQqMkpscwAM49c8SZAP+kijGCmNI82QJPweFdoLRD2NxqET2HXPvXDTAeKNVUTrK+h1OsizRH5/JornQJ9pTELl",
286
+ "ns3Gm0VeDTcje78mzNrc4PLRloWHoUyZO0lBwZ7yQ2jIJrRF/o7dCEL1kDCqrEhtCm8b6HzJ6is5HlZA+rsanPSINAyFJANaPSBKeUs1xkYVJsY9jI5W2L9A",
287
+ "4A/gkCPe2MkwVY6abGOpqPWXdx6vjrz/3l2NHz1+es/IybGZ9WP7q60iLLLXHruvUKuLesxJ9fSORtFeXMXic88WixpL2fE7bszMLM3Xj4wXk7t2Pvh9Jw//",
288
+ "fPPylffH6/OYqRXO6CgQdRRqQYDA9+VVqVXgVypwqhWgEgD1SRTLL8Cpt4U3QuELg3wwk3hdJ1Atb8e1h5+78uEnb+SvLg/CVWovPduJsVy4D024wU8XaSz8",
289
+ "/KAygXQjQKauk5EmAN2yR7GJTLXzCctcQe4dvYaZ3Mqvs7RAEmmgOY4dr7kfEzvGkbXWkHXXkfY2kA66ApTjTAw221xHU1dBhBa4qW60gIkGMN6wo5YlByBR",
290
+ "yAi2WQqIhW+UQglbIOUChTdwlnIklOmu22spp0lbgyk1hJk/8HfIDF8LiZE43DY4TZRZGmZZMDBGZXo7RqmRP0ujWG4BQaAw0tSoVxyMNF3URmuoTEzCCal7",
291
+ "tQLki3DcOvSOfdDra0olHbfo9Iusc07765eO3z86/gv33DHzL2Pv1Ln3ntr3ZO43njm7o30u1jpxRuoLbkf7vYX16enXnhzds292f35z7NiRfdOvG/GrR698",
292
+ "7mtq9fw39Iibq1qgMDdb4Aqf0RpzEE8MxGH+USGRKoDu9oBGBlXdA+Q3rRq+wcJI4UYKanIStZBSDYb1sBfPmdwSBmJGibnF008/hz87ftfDx+d2n8Hat0/l",
293
+ "rlu4vnb8Ygy96z3Eo/NwKwwzmCtKXWl4NEtvoUyApZ5fiFFQGp5xNupNjN5zEpPHjiFEhmR1CXmvI8k7cxRkA1OUtad2udnLhHmQaVxd58g+jUqFOLtNhQ+D",
294
+ "d7INRtusoL0yfJH43B5porlrS8Hmuo0RbFJ1hw06EGVRwuYlcixn6FAk25aiGclJB8hI7g7znxIpzCobW0NCpso1rs5rRJlCswrUK0CjoVCpeQjqFbhVH6iN",
295
+ "QakakK8BRQsqdYGxKegNAO3UcRlwFP0i7a1p5S34tSA8fTrwTgN13HXfNHtPQKeVwIWDB/d76CwDS9cB1UX6wgQu3Qx0unwxr7mpy/dVrzoIGg52H/Cw0tII",
296
+ "Aw8+DYQz4tnrIJmKlxV1obwxKEcevo1nDYBR7jSvO2jeVGOnATzyoqIVvVcapGjmlmvl6kL1Af/CE1+JXnjPW3/3wOjYL3YJ0JHQqAffHYFq+0izJehKH4qQ",
297
+ "ChF5NppOUvajrq1BTpsJB5UQlZ07MbHvIMZ2ziEMHWTtFpLuOopBH3m/hSKLUKSxhGemvGvxU2xsOZxYoCiKKEnweh+4uqZx/zEPmcskiSXJVAyxnDFuwH8m",
298
+ "IJYKtUyCNblKWZkqG55mHPymxykn4m6yaE2/gxV/+SeWS0t+lhFxF+MIfWMMNASK37mi0WvlsHyWo4GFKxwdpzA+BgSSFCtUQoWg4sANuBMc6CCEUxsHnHFg",
299
+ "MA8d3QTcDTij+6BHD0EvL0K3Fx1Rp3I6Okv6xFZr5fU01pcdJnc6SwIUMfMIjUqzQKWh+2lDrS92lV6+7IRZzyWByne1SIL5QYFsyocKXASBDy9w4fCCTOZk",
300
+ "abm8Lz6QUkLVaHkNmZj84DrY0GMvRE/+Bf/p9jeQ8gpyrdmxUJVKkB8+ekoP1pfSb++6if/3hec+9PNjB/8OVtfvSPqDoigyh/KhjvLhLs9goFcQuW0Jf7hJ",
301
+ "OKWAMzMKVYEzUkOlPoba7Cyas9OojIzCLRIUvRbS9Q3oNEXeayGP+ihiIoUTAcXJIB7b1LKpgzFAm/wluUI70XxGGJ8aRzcLkJHQExfgM5RlT3aZrGR5IgZi",
302
+ "XoIhDWxcjEk2v0HllmGgJPMyxNfocgkSVozCGBONwOdMdrluB0FIMpJgkuAE3FRsrHqgixNRa5fvgRDyLiKfU2wVKj7ge+Zv828QziHX7xTQtSp0YwQKNWjF",
303
+ "QZ1sziXQ/UtQ4SSwYwcwMYuitQJs3FRMHhxRYYmFEbgZJLrQ1boq0HSTYg5xL4bXeQ6e4tyRHHyr1Yqi7cCtulCVcWSqI6GqFwZwmW/61nuUnHknGA5TJXqC",
304
+ "FU1RaymUQx771euLz5wfC4ANsnSZc+nb00DEa9hRnCd3Nos3H5zB7NxM9eQDb94XdS4dnTr52gM7s27krl5dqHoTdzCxNgLSpIWmcrNqeg5pPkAaRggbdQSV",
305
+ "CtwghBd68FkNCXzxKMWgBb20hJScA6JD0xjFoAMdDaCpRyV1zkQwEaLgafsQHOgpvTmhlnJTG8QvPdXePSHc6gj8iLFbAccvGXmlFJsWgxGVd3vNZY4wRNaW",
306
+ "TTv5MVtVE5iRRkBiESVrSd+W+SEGpUhcoBuYEidPWBqEooUYKxHBAy1kJHK8FbTkH6zhtqD7EWYOAKNnc2RxhrxiPJqBvnBTszYcw2Fcl8XiSVCbgVYBEK8B",
307
+ "cRvF4CbQX4XjT8AZG4cemxbIOpuwRRIRJmQ8Gy2YSAe4yPsDZEtn4SUdeG4KHVIcjzZMz6XhVDRQr0kPiwM+Pc9y1ElD9D1zbbxFrJKYGdc2uRoyPjVrZ6hN",
308
+ "9Soze8/MDx6X//5i4t1fVgPhSZhrrWbGpvC+Y4eLNxwJ3/C6t9/9UxN5+0115/IeNZKEuPFJEVBj8oujdvq4xOyMf+10VlHTHIXS4+Zr7jA+xO5AcNoFIek2",
309
+ "P5HBOhxtLOIFmTUM1jeJ5TGJnuCdbPhiZscaeVKuciYldd32zQEnD+9Apqrw3BgO0akWcGhUUgy8mxtAdKXtjBDjlspxaTZW4kFBFUXJZaimaGR9OJ+XXqEU",
310
+ "bZDfIUIHtBjiP8hEGgUqVeiwagzDo6FUoIIKHJmTzkXj70CpGAWaaI4n2HlnhBtfTdFs2o46G4lpAU+6iTmYM+ikD9THoap1OFQa0ZlAXJy4A01UQrwIFS0D",
311
+ "BTdvFZSXdpUDylqBB1E+MKDIQQdO1IXDYkmRi2MjRM6EfqTgWiOuN6GXElQ9H0GzDof/sXSnPAR4uAz6RlSvZsXiCDmRHNHTru+rdjF+7rHnLl1d21iWR/Zi",
312
+ "WsjLZiDSH9Ba3b97l/7b9+6b/PF3Hf+1nc3sb2PlGejBOlKZxc1xBsyuE84edzcDewsSEgCg7RQTSieSnFarVtrFbF1RQLmcI172D8pjmxUqw0rjQ2R4MEQV",
313
+ "CXREofC0sEBpoPIjjH810NcF3vXACOojOzDobsAp2FfONqGK1hjkhJf9b6im5EJIHCUWyAfMcIhBP99yjiImYMlshIyd/1TDo6fwXRNr02hDk7CK5VZqcurq",
314
+ "gJpSRDy5UNSXohcJa/K1SWCIW2IY0oRCLF7kwKkC6xfNfMU4cRAmpunKsBNxF1D8GQ3Vz8rRaZDfRwiPvGVT6TMHzABIV4wUPlEfIpRligsSPsruysQg/HJO",
315
+ "vAU9yKNkYlRltWAUxepNVP0mnCCUAwAhjd/oEytp+7OJM4DW7IOUsGj+s6OdkRFc6OCzzyxcKzqxdl/E6OrlMxCp72utpkcD/WNvOjD999+4/0tNt3M6W1jM",
316
+ "FSsmSUe5xEHowlGak2M2tTxlzHD5S4YCOvy2K8+zzHxlhoUg7gxjTfZtOWzSsuykT8DSIFGjtpHn2hKoPF+GVoIbN72V3D6MwaDAffe6OLxvF5I0hoc+4XGC",
317
+ "1ZLUWkKqLbNBSifBZJmjD0pmokv4BLOuQMIhchrcfteMZyhyeFQrIpm4BCr6hFZYkW16JYYcTKZLsyYXRubA8X1yk7cNxVfIRrz2xJa4mJ+5qFU8HH+LiwsP",
318
+ "9VGJNJJAocpmK6HolPNkSMYSHU+dQS5VLZ7oEu/7NQv5MSQmw8GnZzSK76YiYa5bgIUseBDebkk9hvPP92KboAyhRsZRkHZwM0fAjJ1IlkoFqtEwBsTCiTRE",
319
+ "OcSITA8ebqUaig0rvGnoxvSnL15+Ru5IWVa/rQzE8LI1/uf3H8E/et3J36p5tdNxeyX1+mu+ytZll3LTWqlDc4pZ/rTMxSslCGWTG5LUcJKRFUAT/K0VcDLK",
320
+ "gmYy1FBowYocSC/C3kM6Jp7ynsy7IIknEyKPSaKNbM5GC5g95uKtbzmMLK1D5ctQRVeGcGqGCiK2YMWp7ShmA560M9oYxsnogwCaHFSvZqD6PPmJNKZH6LVF",
321
+ "uECFgVyDSeoLGZewVVC6oAFywxdkWTL0YmJuhQ/Kw0TEoC17UBVDBLQKQ+SpwtRujc5rfbQe20CtxrElfO8FfJWIccJpA5UQKmNJ1QVnm5sEOTUKiDLa2Tcq",
322
+ "JA5/xhgkcXGSkwxllkoGIDe6fQglyYtZOsPB5gii66tAuwF/oirGqWigDCUdBptUHkigYx6SfaiKiGwanIzraVcFqt8cfezrz3798fPXzVN+sVUbvJcptHJP",
323
+ "jo3lB+Idb22sXvzhVDUKL+34nI2nCyZgRGm6cmPK7p+ELoIksDgOsRHeqLIOys8tAEmW5Wlb0pPpWNNj8OdMPdTIx5gTLLOJnqCJLK+DX2eZJgAYaaGQDDRq",
324
+ "Uxpvf+duuNWd0PkykHckZKFRyzwRbQQJhvI65SYuN7Y8TN8YB09IXp0fwuGJLMhUui/2HiSus9KhWwBa1IbimALJYeyEXcL5NQlEfdms3KRyHYzfS3UrUpVZ",
325
+ "nZJ4nSEbN7qHPB5g/10BrmYhBk8tSvIviTP5KYTzDHpDhUb025LDybOhEgmps2zeGXdrJ1eRm5FatHNmw90tOrEG1mwMnvdFyo4V6KAB3V9D/J0BwvpeuI2Q",
326
+ "pS12MY2RUa+Y3pd5Y5TCqfUEMi/VRqkQetoZHcf6fPhvv/Zwu9jo4kUPr14WAymF0fac3oPdR+dOoPM0itjTDhUodGROfcPQsUQoWxqFP4TJUurF0uCkdCkl",
327
+ "RZ5M/L5h5AyVPyQeltHIjNutbpRsHsLfhVs9VDQUryM6symyxCTMwsMugH5PI29ovONHDqE5cQxpZx4OY26HmHhWY7YQMGy3Tsq7Fl8lkR03LnMFCYOYg3AX",
328
+ "elBBDag0TD7EcCisQqUD6c1o4lts2jLkN/JzYS9uGesW8PexxBYD1LkVrSkaRmKjUxqcHeHM+0nj4ebyjVjCntfVcDWbw+D5BXiceUivrXOSmaDdyDZAc8PB",
329
+ "kGtg/8GiaPkLpQMpcSAUY10m80MIf6lwtwl1NqEun1+Iwq3AUSniS2043d0IphpSkdMMu2y4KfeOZXjmPHzfIwMTMbAg43ha5Z6b7rnjyuWH6x/7sydXGWzJ",
330
+ "MK8Xe73kBiIcZAB7xlIcKRqn0+UBVNVDkfbgKKrnEcZs5fw5MNOOdpKTSoyApz7VxwwXWTZ3llocVi7hgZwqw1qpuF95cCaOMgZoGtwcYEOjMEml5COMwdNM",
331
+ "aKBJbDBL9Bypr/H6Hz6EiX13Imt3obI2NONgGgbLqEO9X8vp4Okq4YcJxMWHiTeRoeimCueF0EHN5CHlqZwONjmvnHgrSakSEpHlE1uehyWFGFkQCV2E8Ko5",
332
+ "iNMk1zIXveTrW4U3EUmyhQuRypHQBVD9FHveMIp530P37DXJ6aT3wsRes9PKTqmp9pm/aQfuCIFtU5jY1E5slS6XJo5tdFoqpRBGLI1RbIVFyQz5ygbyK9Oo",
333
+ "Ts0A9dBeo7sZntEDDiIpICgnhqpFdL2lWmThjU+6X31u7Rd+4+uPrG1g1XUKmW91+xkID49QqXz8Enz/jsqDuXME+erXlM841EnIw9w8dZiUsY5P/DOrUhb3",
334
+ "TyVww/SzxB/G3vw53pKy7OcZ4KLQYsv7VGLWzVyETXKGUSMwRpZaqilz3FSh1ymQecDrf3A/pvaeQN5Zh+rdIMRiEwdk0Q2scA3JPhZIvHmyGoMxJV5OuiXG",
335
+ "KLAVJ3o3m4OwWtXuWuUOYwzi8YYTeMsCQ+lWWJ3LgLhjvRIfIbWl0rLQZ8IyYd3ZnJWHgc17ylxFehZxhF0PNHAt34Xe8zckF+P3/Zw4NOZwZXm8ADVEGSZK",
336
+ "3lOyreT3GfLJUKqI1UV+JjPbt1QshsN/MqDbQfz8KHx3J1QjNLKidiqwzmIo9lTkwKPckwNd74ERB7IQBB452neTicNnzl6qfOTTZy4LNvqlmhXy8pR5tYaf",
337
+ "pm7eWw78wQQGCyEw15FQwSkV2C1kWbxJqSgoMSuZ0TZEKBsJ8pwtOduSrA3KnWVfQ4aW3oh4L6lBWk62IUIIyC2nCDy5HxpZopAVCv1ugbwW4p7v34fxvceR",
338
+ "diOo/oLE+pIMM6Z3S3K3DDwcds4Fz1HyQOg17Mkq5VnmDBRgLo3Dr0KxjOl50CmrWIYEVKQ58iiXPkh5HnCZgkWZe3HjWJYgp1OJ3HrJjbE6O0M0ccmvZ9hk",
339
+ "8oVCZrrxWrQM/iNUeffrJ7BY89A5cxW6bjW12Jys0jOaQ4ZNPoGfc4zc8DkY7VzFZm6p02VFt8w0q5JwL1cBh14hiRFfmYCrDsMdrQy9BkNtGoaKTFde/oZi",
340
+ "JdGHV1/ZrFYyAqjO4pJz8Gc/+60vDLr6pck9Xk4DkR2V79wV5Y4znyxeOVnJDulo5RzURB9u7sBl3ZzNPFZR+MwpNCY5hww9t+1n00cQ5W9uJuEo82SU9q2p",
341
+ "mQ9HzW6Z220/Djnt4jUIZMyRJhpxpJDQc7QKqLEK7n73STTG5pD1e1AR6/w0DiblNnyTyMGihyU5twJtkoewLGtCJ3oI2cRS4bIFCIZF4kUMlILVJ6KOGecL",
342
+ "JTjNRERN1HSGwtRb53TY6+D7kPHSJhcTVcUSWSmHi433edrLezVVIWPMNKJg8/AQ3kWCna+dwM2Gj42vXhTNKpZAwqKAEyo4qR355vPeWcKSbHr+fX/Y1ytD",
343
+ "vhIuIIZZJug6RdZJkN6YgOcfhzvT3ASa0vDixOSWdhir0RxzoesdOJWu2LT2iszVNa97+I6PfOIbn/74Jx++wLtO4ZWXbPO6L0cVK4P2sjgu3rBv7r65zsZr",
344
+ "C8fRfjzuRLqDIoiE5C2hC+Nkcdc2DNpkTRsEa8l3tQMpRQbGQl0N4ciGE7zRhlZn4l+58YaGy3nlJEtl7AMkStiDnfUCaucojv+tu1BvTiHvd6EIsUhMxYrz",
345
+ "rEQdii0M+WO2IlMqV5fVGdNGFwOQk1XwUIRMNICwYTxI2ISq1M3mFQlO4rlawKCLrB0jH2j4oWMqZCW1VMKZMqYvk17eF8OLMbnZcBiIndHIEM+WtGkgBvT1",
346
+ "XR19gcPYPotOc4zsaaKYGEH7YhsqYZOPh47Z7MKv59+Suenc8Nbzl55ariU13+fXsSjPmVArS5GuFsgW98IPjsEdbRgjojGwRD1gg9TCgYgqsJOhc+3Bm7wB",
347
+ "r0b1GafQOnS9w6879weX0vd/6ONf66+0jETpS2ceL0cVy3zQ4xsdRFO7H3NIa725iEZYRdg5jE70HWTjCYrcReBTv88MsOdwRxUYFy2nsdT8TdVE5EdF8oW/",
348
+ "OTBVoy0jksW9C4hq82vCJPg5JS6TWCPNHDmABxsF6qd3YO+bT8MtqsgGfahkzcLfGYow0bX6VZLc2Di7FFKQRNxSDaXbzXi6rObQYChBxFcNqjQU5h78YSqZ",
349
+ "E7mqmGjHYrj0aj6LFYUjf07qbdI/kPIcQOUp/g0bihpvZsMvMQIaDFGwcmSYA0JqHWXp2/y7Cf+MgUi+wgJYL8bUwVFUJk9i9QsXUKx1kY0QJKpRSTXcIJeC",
350
+ "nOvmAIsIdtCRPGBTebeT70x3PSeNmdKirQY8dQTh5Jw5kq1hyDMhF0GKCKY8zHciGsTiPbpwaxvQ2teOU3XyqUODhZH7PviJj/3p8vlrmetSRGKoSv7SrJe+",
351
+ "imUeU/FUHmN+0P9iK6wselCzg35Xh46r6tFhdPIXgHFieHx4rGrRY4jspJG6MXI7gSRy0h1mNYgPgaeVE5mHbVVMJBm1FS7BBvEh5Axd+FxoHHwmDqJugShV",
352
+ "GL9/B2buOQ6dEYKxDhWzadc3ZVJ5GTi96cEIktFcmFSIbMmVf5/xOHMKG2KZvkEoHoPNQalkmS6ihDTIeWoOoPtt6HgAl4oeEWmxRmFECg5sBspY59I7Gg9g",
353
+ "NH8t/KaUgxRvUT5OS04vccmmi2nyNNG6tbAVqWrZapiopxcSWjYaPsJ3zuHGwwvone+i0SSqWSFgLYRldsJOIsLrOevL9H6Ir+LbTFkzIeq5TQhLBYGzGxV3",
354
+ "Fqpegc45rFQgoeIxdGIYgYKZs0mX0dkmozNHpTEvbztLfe1Up9SXF/X/+K8+9mtffeTZRdH9e6mN42Wj3PJZdPLCPXDhWvfeB75nX9haeiDuxTw2nEq1jkDt",
355
+ "QC/qonA5mtE000rdKZ5G4tLLkEnUBxlGGS9hNhu1ZXgim66yuGsbTjF0ICCP3oKz9Dj4pd8qkFVDzL71CCaO7EPRpyERjEdNrj4ZOhIzm4aXSTqN9OiWPoB4",
356
+ "FFPClRxDknGr0+X6KNwQqtKEw7CKjTGfVFEK1tJQmBwPTDI6WBGj1J0BWotGn4rNZCp6kFlnqlK2ZGyFsiR8s7nZpoBQCcFh+GMnOfFzKTGXrEdWsghuJJTc",
357
+ "5kcS0pb5HcNCM8CGAMTRoyOIKhWsnu9DU8xCK1F4570Uzo0VtU7iQvpG3ZbGoOUA0RgUDqMWHkFQnZJqWBENjAQTcw0R1Ugk56KBUAWRs+NNNFcgLTy4o2vw",
358
+ "R1c53Tuvju53106962f+76+e+/VPP/aC57pu/pJl5a8gJ11djwf6/r21C8dGpn6y22pVmV45qlBhrYrAnUN3vYtY9QTgJzq15TxwW1Vk6GVwP6bnITlIOYRF",
359
+ "iBYMpTKpYGnCulOiVZnLmgcbRxr9joa3bxJzbzuF2sQssj5HL3fNaZ4P4LBDTW6ESPDbkq6c3Nj0AGWXXHIO2+cojYRehGNcOVvPDqoUo6GhVEcsh0FUI6D7",
360
+ "64AY5QDoDIR8x2YcG8pehd1v5g6bswaH8ohWcHuIUSvFpawipAyp2WrM4omZDwWmcigoAuv1yl8tsBCT3PMcl/5VRpWTGoK9VSy+EGP9ClUQNQiu7fWAft9B",
361
+ "1HcxaAUoBiPwshnUnV2oNfYirI5KL6NI+iioECGDcvhsCOdJUWSZDFrli6GYYN9ID2aDuJ6gOn29yLWvKyO7vcXv+fF/+evfWPj533voMXcQRy9BO/CWMBCl",
362
+ "N6Ddw/uwsnvu1NxIe+OBLOXxrh1yCTxkqPmziAc+BlkLhcAk2NSzlSiGHcT0cPPbJLEgkpRoVH6PnfCY3kJLJUiQGyydp/QaDvrtAqnjoXn/QczcewyOqqJg",
363
+ "EyrdgGZPgQYBlhdZGSsZa5b/zjBHehwGzmG4FrabLCGGZ7yDPaHZKZfwSgykLvmT8qtwwhEDXGQslXAo0AZU1IKTdJC3csxfNTXLmlSDtfEgUj42XJQSSmPR",
364
+ "n3acWVk44P/bRA5LXiEASpsn8D1YgJtgpLxgi0iwmfpUjrceApwderoctVEX4ycbcOIA4WIDjWAMoW6g5oyj4dMoJjBSm0I1qBOFLVpkebcrHlzCXWEacvhR",
365
+ "Zip1WS5egy+aI70BoT98AkXFRTj5Qq5d5VQbe9XS97z/n/3So8/9wod++/edThRLZfolLFq9cgZSViGfm+9juqG+9bq5PT+edjbG8yQtsiRVWZxIfNusz8DN",
366
+ "p9FpddDnRhJECbkT1hDKQZL8mpKhpLvKjD3ClErKrYGsp+xvxCwQFcDsGGbeegea+w6h4BwKciVyeo8edDaweLCymWji8RIyYTaprUhZkevyNCaaVlHNkdAW",
367
+ "ZrCc3kqcFae1Ev8kP1OVPoip+jAZigRerhIaZxtOMkBnucD5F4ARImyplOoQDWvxVSWS2U6+lbdGI7BhkjGgsrVvva6yxlzq4UgeYkGMdhy2ZNw0HNKHxVDK",
368
+ "6bgGRQyrJcT77imF8dM1BLMB+ucjFJ0cPgspoiaTIo0jZFSToXdgj4kegcZQvkhPplHkpXGwSsVcw9QdcmJFyCacvJRX/NRtHnyw94VO7e/94ePzv/07f/6X",
369
+ "Xm8QFy/ZIMJbRfaHbMJukrt7+0Xn4N13XR9trbwvjhKt01TJsE3J8gYIXRd1b4YavaLVGlGKRyQ1zfyMcn6FzLCwYRRfrOYKtSF2kGRK5H0Sx0PjnjnMfM9x",
370
+ "eLUpFIQvJC2opA2d9qHpZgS2boTppOA+VD+wiFlJsC1wUrSAubFsV9yKC2h6C4/GwY9k+DHvqEPRUPjvhiTCmRZwiFBNOkDUArWInTRGd0njsTPAeIWKI6YK",
371
+ "LD8iEBYTZomdyHugcRiMlXgkMdTNpLtUICwbpOJjpDxuu/vlOCnxgMF3lYSl6ia/v1QwNM1JwRBQKmhawz1QYHUpQ7LA/hBVU+TpIBOOfiaCGRI+CaiQ99V4",
372
+ "CUozmfItDUMjp9eg3jALBbV64U5cKqamPHcwfuo7n+nOvvtXHvrWF37/8W97KTWbSmE+vIoNxPDrlX6i3XVnTxz4zg8++PpG99xzr88Y/SiweCgNvKciOJoA",
373
+ "AB4LSURBVCyOpK/BnkQt3I28H2LQjxEJO01zsqqUQwXHJuV3I6zAF5NwhrvdjQLe7Ahmv/comgeOQuuaGARiqnV0BTJuutDE+piTUrF8XDL+5O4MFeNtEluC",
374
+ "DsuSrohkS5WKnXFB6NJopGpVFeOgERl4hm2iJex7rJtiwKAFRcWOKMXSFYVrl11UfY3xUWtj5KdYJcGhgyiNwQIXjQqLhdlbL8NV8uJlMe8QYQiWoHkYsHFJ",
375
+ "wyirYrzb1rvIPCJbgfMqJSncGlGBIsoRVh1M3D+NzHXQem4DWZJJH5cySyl1yUoDEfAnhcGNRxEpVyKKGFaRXerROHydVypFOH7BmZprOlcn3vbh37uu3/er",
376
+ "/+Ghq08udaVLXvZJX4n1CgjHmQd4camtUs/94umZsXvDXvdElGVpnucuxYvlxvImc3gjRaadCqpqAl4+jrjvodvW6A8KJGmB3oB9Jg2KtDMX7HS00GPH757G",
377
+ "7rfdgWBkTmZRqLwHJNyYHUjNVxiINAhWccrOeIkdMmFIWXEyfA96Eos2ZTNQTlqTW8hLoCT8GMr3FI2EBiSnsSVzxT1DauqvARG53kzQI+hOhueedtDveJis",
378
+ "KTRGmCdQJ0qAqwburjYrWkax0datSu9SVtmGGvIWRGinSRmPaBiNhrAUGC8kXkJc1fD9MnzUwo91jHe1/8eMaWZeSINz0DziQ01rrJztIyNMh0Zih4USupOJ",
379
+ "xyiQ8VCjj2HTWF4ERjgovFqeezFm5m663qG7L31leecHf+fxZ/6vj3zjYnal3eVlFy9ll/yWVVbk49rodtU3nz1bqEx99s6D+94UdDv7IvHPhQzbpL8xSogx",
380
+ "spg5Qg7f8VF1GqhhBBVnHL4eRRFXEHcDFFkFbqeCFCF2fv8u7LzvOKCbyJMBnLQFpIz5uyZzF8/Bju+mcYgYW4mrkn1lSU+2/GlKrba/IWGUNRD2ZGgMhH2z",
381
+ "CSj4JIIpg81TXCpCTMw70GkPGKxBDwxJihCbrAVcPBtgaZBhwgvhV3PjQZi+WAMRQ7NCC1LeLYULyu663DITGpo57TYUK0cjiMfzBNlgwkRzEJj3yM8p+sBQ",
382
+ "0MpPiBdNzaxy/nuJ8ZIqGH8mRd5P0dhRQeN0iMXLMfqLGTxOYrUid4a7yRzDEY9BAylcV+eOl7PUXGm03R3H/M6j+sCvPNSKf/K3/vKpp/78/E23E/WF6fzi",
383
+ "DlO7zaRH+aAGUM63llb6heN/6v6De94UdDp7o5zTKdj60IquOhVVE1aicsRUZeeYYMa17MYSO1c4ZHQj6xTImwGO/J19mDi0D3nCxtRATmyWcRn7S9IipBB+",
384
+ "NN1pCS8k0eUGNJBu+SjkJnqLcJiHcLyCdMPZ/iSgz24e5h8OK1dsChIXJkZiN6IIakeSa6iCbm7dzP9OBsJ3oGp0sjqO1nwFl3pdhNpBzeUYs5zcobLnaMbP",
385
+ "lcLNQ0+3heYruLRN/o2AJEuZxhJAWRqrCCPYTvuwVmwrZWKFpqKlbDFCBOHEbRnvU+KuJG/LKD7nYvx0iLUVIJ6PwVlq9CDy3AQaprTyvSJ3XJ0XSjVGPHf0",
386
+ "SCXZOHrkjz4ezX7gEw+f/dgfPvl8enYjoqsUrNHL1Oa4dQ1EDjVF5oFyvr203K+M1j5+99FTx8JB59SA0yJ5AvEui0yQiW1pLDSULE0RpxkGUYxByqErEeJR",
387
+ "4NAHdqK58xCoXcYQhg04QeKKcTBcI67KzFGWjeU6Rp5za0gyhKsbTyGcbFEeCOHY5FzyDH/EeAxJ1F0hPRkQIJHHkkCYUIdlNIZS9CAM76L25tcWozS4vgNr",
388
+ "Kz1cHsQgvnXUCxA2Mg7CNGgVoSDbUGkYMlkHMqz8bpFkEWya7YtYJXRpLso3hmOzjMFZ1LDpnRDSQ1Zf1ZaDlVANjMcxg4vK0NIcDjwIChRxhCAMMXP/NFaW",
389
+ "CgxuUIHE1Sk7Pp6vC9dVjqtUtVF3Jk/uWe/edfDfPVI7/D988mLvNz780FfWH19Ydru50q4u1clunfWKilcbIyF5FM5TN1aiydN3fezE/n1huLH2xiTqq0w5",
390
+ "9MyqKHLFeJZlQlJAY6mjGzhCNMjQq7s49ff2YGxmD7LUh0rXzUlNPBV/e0GWnXQe7e4xHWOTj9vJVEJysvwTSc45kEf4B4a7ITE6Qye+avJ9nqxiDNIYtBzu",
391
+ "kvJKGETaR0F+A1VUxDg2oFi9SnrSTWb1Km1NoHs1wDNLy1jJgVFXY8/YBFSg4IWRKTTJ4V1y38sKleXty0a24ZUd1SZGWqJ3y5ttwY0GGmKsyJSoTRXMhIs0",
392
+ "bPLiqfhiSthGAtRU5UyuVTVGxLDS4uNoJCy98w5O3bcDrZsa/YWe8gLlNBqhE0xNJuP33f/oys7JX/zUevI//fIT5z762Uefvfn5J592W2zUSpxrFOhvtfWK",
393
+ "q7uXRhJprc5euaKuDLLP146c+NrBevhmPxmM95OEmUJRFAVDLsExEu8TM/zKcyRa48j79mD60FFkWR3OYMn0GNK2MOMUE/IhVKSUZt8UspXNLwm44TZIH4Gb",
394
+ "npRYge8aqqyQmKS3wXzD8DzK+YiysezmEqg74RtiBH0pBDjstcjXTMp7BjMWx8jbBXT3FOL1Ab61uI5VKIx7DvaPVuF6VRROjyPLjC5ViTQRXof1BkPJ6s2E",
395
+ "3YwOMHwUk6KUu24TkTD8WFauSoSveEsieEtmp2+67eJZQygKOPBQEHUSCrxRgIKfh1aELqNqox45MqK6y97qemXmkfzeB3/7DxaWf/rbN9q/9Jnr33z833/9",
396
+ "XPfstVV3pdPmCFAzCeUWNIxbxkC4TAig0I5jnFlecp9fWb2wPDL5u7Nj48V0o3pf0e2EfZYKHacgKo70HFZCet0cUw+O48hbTyJTO6GSVajOoi3h0jisHCar",
397
+ "VdJkM3G2SUBtAm67zARDCg7MjnDjZnDIxS53GhuAzD+4QSS82JKol5RTK0LHyhsNQmV9KJZzaRiEtUuYRT2pBIgSpEvTwPo4WmvLuEza70gDoS4woVNUwjoy",
398
+ "VotCZmpGWIEQeJEmknDHyiFtclzN37YC8kNhHC4zeXRTBX5LN91AVojNsjg3mdvMrG5LRU8gNKYgAfLpeTjQ0xChzJfMjKRiNcvAkfbTdTVz353PPl8ffcev",
399
+ "Pfy5v/zTpxZW//L6JTy9MPAoAs7Wh1JUIMEtv24JAymXVFi01gvttntmfiG62ml9ofLgg/9hbu/BymieHnXiqDKI+04k4i5OjhFfnX73ARWGE9Dsb/TXTFec",
400
+ "YYxOhwSpYWNMTs4S4WqYfiIxw1OSSatg2LlZjDGZcpbZGBJ7l/0AaQhWLN89lY0hKiKURpUueWkMPSPRk9BrRDbUiqAGA+QtMvHuQry0hjOLK8VStVo0R2o6",
401
+ "zQrtrPcwUvGV5zaR6j6CigmjRJHQ6vlawp19j6XnKCFZZdOk9CqbYEbzb6bXIXBkO7TGQHqseEbJG4FlMNrmaMk7kRJ2ZUz6JJKj0KuSOEX4TNJTRZrmHnq7",
402
+ "p/efWrl6rffYnz932Sc8m6EUH92m77v11y1lIOWNc5XScZbhfLvnPr+0vroyseNPnkvz33enppb3HTg06WXxbGej506frKn9p2aRRylU9ybQa0FzIzL34OQp",
403
+ "K58jhid/oExODbtPHjY73uR3CDqjBPmJhIjZhDwpOWKa4YYkulws5LOKxvZ9bGRwGDaxrMav+bmEUgPomEDISKpWYNWKMO+NFPn6QTjpCFpLC3rRrzjq4D6n",
404
+ "3qw5zZ07HK/bVWGW6FqlqnTBKhl1uCys3G52CWlko28BGNvYqfx0WMGS0NFO8JV7YPsl8qURYRAFwxKhLP+vnBENe4CUA9/LRqkN8yTkBFTUNkLgxLQVhLJ3",
405
+ "VTC6f+7KQvd3Pv/spSwWnaXvHgB6O6xbykD+ashFQ1lutZxnzp9XZxbnW1fnrz0yOn3ww9fqY388d/jg/NHj6v5q2g2KZKBVf0OJcRCHXWptWeadVb60FZyy",
406
+ "mWY2huCnhkNwyC03cHUjkGa66MMNacXQpIzKv1PSb4VpF4thsqwsXXKpVrWByJR0hWNCEeZehLSzG646iXT+ql5aaev5O+78WLFv95eyav1cvmf3F3O/Mqhe",
407
+ "uXLQ8x1dD0cUOSKq0pf+w1bPIKjcIQp+68TQUq7VeEwTVm0luJdJvZVyLcGOw7BMJg5BPpWch+xHSzdgVc7KCQ3FGtjs7K+KjJNIhKYD6qjC1elssu/Y5772",
408
+ "nSeu3VzTnLB2W4RVt9wAnb9uCX5H9rRTcLbgapqohwHnyw99Jjs50nzi537o9Rea4+FP5SvrDZ7mBTelJOFGzr/cMEYl1oYSEkKV8jMGravzvomtRWnExtaE",
409
+ "zlsEr4RaIr9peNVCwGKIxZxFtH6toghDOjYhBy2jW8tFYCLzH56o5K4kMbIVakKdBPqdYtDvO6vjM9/4JvCBR7/0F3nWjZ3K1FjxfeHU7qnpHU/E7ZWZvF7X",
410
+ "NWdWRZ0Ujts2Xk4qUFailJ5BuuslHqsUvLDGW3rCLXJHwkbkPSEmx/tuGD3DUkUVWP6dwoI3ubN5gFh2pHge4snk3rDky9tuytmaaAFO6oq6uReuul43mj2w",
411
+ "BDy9NSe6jdYtayDlIqaHS8b6cecXhRO6wNSRmabu3WwUg54hNfEBSeLKeN0qE1pYuMy/oAiv1ZdiZUYMYEufrBwfzbBJqlil9pmII9jeiUzatTMqBAreBSIC",
412
+ "wqzYm2waA8UXrjXDPP5OQVAmSJfJerwHqttCd3VZtyt11I7d/4uXv/Gt/MsXlgPXUXm+2A6mpxev3/Wmt/1G/s3H/49+kuWBn3heNo2Bk8Cd5gluq1S2xCul",
413
+ "WktJEdE88kj4/kgHGI7Htb2frVU8KX1v6rBK01TCLgc6DAVUCRG4NiOYRUU+NR15oQ5b5DMPBh0RlUx0QE88iqLxESrUTxQ4ocpSlG+3dUuGWP+pVbrnfpZj",
414
+ "Z1HE98/oD/hRZ0eexlqTLmjF0oZkojKpYW3Y8h5K7d4y/DL9AMNiFE9QnppCWS2n3hjFDfEQcd+EULEt41KWX9MwuCFMKCVhHg2NH1OWfFOZaqaz10FFHuLV",
415
+ "xbzbG7itXYc+9YffPvuzHzl3TqVK5Q4TWMcp+r0MxysjT042G+9Be23WdVURup5yszFkzgBuhTNNLMDQDhL9rmsu1U0sp904li3lXnufjBp7KXMqnVmrJMMS",
416
+ "iBV/4PwU5lT0LDQobvqsLwQzEb2zEB5yanTEHg//LeZwdMepzmRXp974yx9+9NsLy72BksoVbq91y3uQv2Zp7XkKkyfitN/e8PWi5MsMixzq5Qo8wmwYmeDE",
417
+ "RqDM/GO4xZakUSSXsVSsFQv4jpB3W6Gx4xQo8iYMOMVk35ywYgT0HpKgs3RsuRWcrywTV+kxiL1nmMJwjMl7jmyVuc0b4ega0vVLuteL3JvV8eUnNtKf/vzz",
418
+ "z6PvOMopjHImP14E3H9/8WKn+cPv+ef3Ppv8SW9tWTKJWqUO3d2Nfn4N4dgArnZlTBylusqJu9J5tyOyjSCiFXyWu2DJeEPxfKslzDnkMmXKtcLUGQoR7vOM",
419
+ "wbDSRy9BjyJNyFIz2cjzCNnMFicMoc3yXtam1s60shcGFcJz1srOJm6ndVt5EC4+mzjP3Z3xQB8d33fXXOi+NkqX2EV0RMwkl6HMdlOXjbSy/mlCLHPaWvl4",
420
+ "qUCVInNGVE5gHYLZMhOoJHwTai8NgDlFZis2ljorIQXFpA36WCRUiUruZYiWyDR8AF5WQ7Eyj9ZGV8cI1MV7pv/Bv/j60w8/20+I1R1CLMrG6dUocvcW+tyh",
421
+ "PXvHwvmrD3KQmucox/cDOMkY+gztKolJ3MuJtyU1uRShFCUTm4PINZeyI1Zswibowj4UxXwL9x960dyGiPZgEBKOqVSxXG2YkcSTcW4I75PRMdNJUvjJUeea",
422
+ "PvX1jzz29O888p1nVC713dvLOG5LAzHjn7UK6nX91vecXpy9Uvz3USvz82JDF24ue1ZCY+E72zBD8gvLujNISEnERbCghIYIV9waDIXcRBnFhkn0BsLhtR6C",
423
+ "IQfj8tJoGE7Re9Aw5JUh28iRrk/DCx+E08+QrS6gN0ioe+CdmZj6xd88s/irj99Y5iCr/1ibw5alL3a7uPuue7+8Y3ryNc78tSOF7+c6SxzPdRFiEjEBml5P",
424
+ "EDDl+OvN6zYv+dweFKUUqdHuNYeIoH3LITXk+YthGANREnLZ4Th8DQk4RgNLDg96Uh4O9KKDHvKNFEV0p047u53aHXf9zP/zqU+deaHdc1mRvP3M4zY0EMv1",
425
+ "0/O9rlv1goU3nTw9Hl5cfHDQrWc6S10dGFlNqg0aAUSzUQQ7bY1DDKEcuiO/lCek3Rj8d26MmB7B5CFUYR+qOFovYgTp7M9JH8FoBee9FP0VhSI6ibBxF5zu",
426
+ "BtLWOjr9OI2yzF8/eecffXZ28h//wcNPIU4oWThES33X4ibuJYnzjbPnMmf/wS+dDtx3ZRutHaRZOEUh4N6KM4qsW0Wf5eUwNaMm7GwTOa1FldGCFYfzVTa7",
427
+ "dMY4ZFyXHRxqJsjy2pxSHUXbmS3Cn6EX4QFgJZVEXcYYSz5IkGb7gey+zJnPvcqRQ3/60bML/9tvffVRlRIBcVuax21oIBiegBrXlnqIAvXwEZW9pRJF+5FN",
428
+ "ZLrtO2mRI3Mo5mzGM5dTZCmAJsYipyp/Eze2UXSUjS7Cc1aLVk5QqxdVjl4QaSEOA7XjGLhZBOKlZYMk6wXi3k54wWsQeBPQqwvIul0WFbIky/3O0eNf/b0b",
429
+ "G+//1U99Keol0X82ImdS28kz9+KVa+2J5thDJ+cm34dedxTKIVrTYU5UDevw8wnEPYWcGmEcbyAFKsfMeSyHKNBw7B80PUT2dSwVt5wuaiWV5LrknuRWRNp6",
430
+ "xnKSlH0VSYKklyHeGIEu7oFXuyvXNxa9ge9df3Tnnh/5P//4ofaVdlsK7LenedymBsLFBLwbDZzraxvpG37yA58/7Lrv7s9fntKqkbm9upO1fSRJjozTbqkP",
431
+ "W4q622KXecj8uhwNYIUgmFgbkqfpLssMPiuxyQEz3CyShPJnc+SDDP2VAkl3Gm7j9aiNnobXbSNdmkfSi3QnTnKdZ17/+OmHf+384nv+zdcf3eiB+gP/ZSEH",
432
+ "N1e3yN3Hby6vpbWRLzw4Un973NmYSuBmRI6R8+17DqpqFLpfR9IvkCGB9sw0WDP/RBmmXyktZiNJk3bZEdXlvRCvQp4/S9VWJMMKZJQaY/Egw6CjkfQmgP4B",
433
+ "BMkBOJGbZwuXXH9ystf/3ve+53/5xKfPfOW5s67nOAU56Lfrum0NRDyCo/R6P3JeiNY3dr3xHQ/tGsTvzFYXplmUraiK8rMxpaJR5JGHJM2Z3CMR2LwREZAc",
434
+ "24qfMYIwTsI2xcpNYUul3BhZxA2SG6E0KjO2K8j7u+CpU6iE++FRbmjxKtKNFvkrxQaVOALf6xw8+fu/e339R3/7scd7nBRuMUn/Zddpk/YY2r2+vLLYnNv7",
435
+ "x3cc3P9G1VreHWud+ZwpkqUqL1IZoxwUo3AGvOaAIRx4RLAHJFLVwhE3c9lFSizRtilOQhpTCkopMdXSQznjnPcrK9DvF+h1NPobIdLONIL0ACrYCz/1dNxt",
436
+ "5Umv63URLF275y0/8qFHv/nI733xS66jVH47GwfXXx8A30aLVZyiKJz7X/NA8aN+Ov3fNcOPjvd7b9vo9fKq5yIAVSqJHaJGdoJEdZF7XWgvgudlcH2WKi1g",
437
+ "1/krxDvDtDU6dTJ5mPyHGrTmbIsdqAaj8Mm7TgbIe20kg4QDeISBkmWJG05M4Fl/5F99fmTH//6bf/wptRrHylEkS/7XbxrbZ3N3NRr53/+BH6i+afnabx7s",
438
+ "r/1kq7Wmg7BShHAcz2WZy4XveAgcHzlZmEUXmd9HEfThBDQzQzEWOJVl7IoKkIlazYFQjlHJ6YFcOEUFXtFE6IzDcxrweM1ZgjTPijjPtOd6br7/wPk/PH/p",
439
+ "vZ+60fn2wyvLbhq9vAJvL9W67Q2kDLfYB24URfEP3/YW90d3Tv/sgZtX/tfOyoqTa50HSpEF6gauD5e8bPYENcP4GLmTolApcsU5e4VBTshgSoomuPBIDipC",
440
+ "uG4NYaUKl/Id7BtQDTClFlQkpWWZy5QVRZxkim2NZHLy4rf2Hv9Hn/jslz/3mdUVtxdFBT3Bf4sIgRnBoZy65+HH7r6reM/p4z9x4vKFX0FrfibLdOEqRwsM",
441
+ "U3BsBh3tCvDSkT5KTh65vVbNGe+cKSjDgAoRrJOGaU5BBhpZCEcH8FUIz/XhCGnMzJWP87wYFFrneeY0x8fV6syuP/hTf+Qf/8pHP9qaH6T8+7e953hVGchW",
442
+ "TzI6MqbevH8m//7du1739mbll8Mrlx/s9nqCRQ05dkHB8V2lOJWVYBNq0Locxyxq6MaVuJ4nLy4zsNImAyllMyMZhsciqeTzeS495lQXyvEcx22OZsu7Dv6b",
443
+ "jy+1f+aPnnyqdaXVcpMksfwH/aLNm69W6s6Jw9P5j90xO3t60fm5/YPVv+u2O0GmlfZct/Ckb10ImJ0/Q6wWUVy8VgIYBcQoskL0EsZ1EE1o0DmWbusY8fGU",
444
+ "jUOR7aGKK7Ff2qlWQuXuO3j+Uaf5z/78+vInP/PEE+paa10x5yDz89WyXjUGwlUKEBKheGjnRP53f+AH3dPd1o8d7Xf/RXXhxok0Hsj0WmK6pANtwA8ON4Zo",
445
+ "UEl1bFMjThJYW4bl90Rx3ahzSHEsyXNHZ7k4HG9qIr7p1j55dmz8X38lLp7+1Je+5ix3N8iULfgzL2aTbFOYAc7cWKAPOKP6g4cP3H1sdvyfT1298ENIokqS",
446
+ "ZeTTa095FHAlikXRtfE6pXwrF2qIWGbsioHgDCG35iboQjkFJ9Rkee6yQx9WAqVm91x4tl791bNjO//dx774le6jly44WZrp/1YPeSuuV5WBcJkuuEjou6Mj",
447
+ "TX1scqJ47fRY+K7X3v3OA+vdD4YLV9+BTquSkvLKDU/Po1XOuNv3HO3JiWobCAw2jGICUirSGbCTy5DK9RxdaTZU0hiZX9+19+PfWen+2yeWWk99+cYNde7a",
448
+ "VXLoX9INUxKjBK6oC5yam9Nvmdmhgyw69f2njnxwduXGD1XaGwezKEISc2SEDNHhf9ee42jO5yk05z8ZjokEjUrZaRMUkabeq5k7HFYDOM3xopia+dqV2QMf",
449
+ "fnz963/0yIWz3cfO1J2V1hKPGerBmREGr7L1qjOQcsmJrwUp5Iz7frH/9CG9uwjwt+658+D+PH7r2KD9zrG4f3/Q3titB7HPvkfS7xloeym4zN/huiBXqdKg",
450
+ "YK5CXqmk8dj4C52g/uizefZnzw/0F25eOL/+hVYbC2tth9B8JuJ4mTaMbG7Dg5IsYtJ18zffex/2NWvVPchef2ez8u5ZH2/wFhePqDhuUrCbM0AM4sTIdAvN",
451
+ "xPcltOJw1bBWg+d4OqlWVtIdO88sae8vrgXun3zhzJWnn442ivnrV9TNlb742LJcfTvCSP5GGwhXqeFEjS0R+HccfXBurnC6PTx4YD8md842xgLvwPGR2ono",
452
+ "W0/uO/bAaw6oleVmmiZTfqUylkVJVzlqsZicjp5/4onztXvuubSa4mxno/f85ctX4oeR4sb8IlqttsvTlyoE/JuvxEm6qV4iSnCqWa/nM9MzuKNWx7Gxplud",
453
+ "qe86OjZ5In7q6RN7Dh/cU8+SmSyKdyhH1WXmY6+/0Ni3v7+6vn5zfmnpQvi933du4dzlMyud3vKZ+UW80FvG89dXVBTHBNVTVvdVbRh/IwykXIYCwVDKDuom",
454
+ "TtXziprjFG6tjr3T08D55/G6f/JP0Vxfxc1nvqMaczswWL+pp4/cidb4GL76oQ/BPXQEN9fXZBjMar8vWsI8RZnJ4BbZLOUDNQ5COTzfG36Qu0WK4+NT6K8s",
455
+ "4873vhd7HQedhRewkfiq2vBR7cW68n3vwrXPfQ5PP/EosjuPY+W5q8hVodYHkR1myKyf9nfbIkf+q9ffCAPZuiQJlbkUlkdnykuSubM8Kl9SX8i2BBSTEKNI",
456
+ "LjGb5BV2LDp/3616ipa5WAm9slQpo2FNpXB529KSsSMVWZxmfbaQNojt8xeaeYnNeV6uqU630vobZyBbVwmDN7m3EV3+K98e7gjR/ihlc25Ro/hPrSGKmddq",
457
+ "r7PEK275b6VGiuXx2+FFt6HQwvbaXttre22v7bW9ttf22l7ba3ttr+21vbbX9tpe22t7ba/ttb221/baXttre22v7bW9ttf22l7ba3ttr+21vbbX9tpe22t7",
458
+ "ba/ttb221/baXttre22v7bW9ttf22l7ba3ttr+21vbbX9tpe22t74ZZd/z+WQfgl7hYT4AAAAABJRU5ErkJggg==",
459
+ ].join("");
@@ -0,0 +1,389 @@
1
+ /**
2
+ * Sayo sprite: the pet drawn from the Sayo mascot image instead of the 16×16 pixel grid,
3
+ * for terminals with the kitty graphics protocol (Ghostty, kitty, WezTerm).
4
+ *
5
+ * Every pose is one image transformed: a tilt about the tentacle line (dance, glance),
6
+ * squash and stretch (the "yay" beat), eyelids painted over the eyes (blink) and tears
7
+ * below them (the sob). Colors are hue shifts of the orange original, so red and blue
8
+ * keep the same shading. Nothing here touches the network or the file system; the source
9
+ * PNG is embedded and decoded once.
10
+ */
11
+ import { inflateSync } from "node:zlib";
12
+ import { SAYO_SOURCE_PNG_BASE64 } from "./sayo-sprite-source";
13
+
14
+ export type SayoPose = "base" | "gazeL" | "gazeR" | "flicker" | "flex" | "danceL" | "danceR" | "cry1" | "cry2" | "cry3";
15
+
16
+ export type SayoTint = "orange" | "red" | "blue";
17
+
18
+ /** Straight (non-premultiplied) RGBA pixels. */
19
+ export interface RgbaImage {
20
+ width: number;
21
+ height: number;
22
+ data: Uint8Array;
23
+ }
24
+
25
+ // ── PNG decoding (8-bit RGB/RGBA, non-interlaced: what Bun.Image writes) ──────────────
26
+
27
+ function paeth(a: number, b: number, c: number): number {
28
+ const p = a + b - c;
29
+ const pa = Math.abs(p - a);
30
+ const pb = Math.abs(p - b);
31
+ const pc = Math.abs(p - c);
32
+ return pa <= pb && pa <= pc ? a : pb <= pc ? b : c;
33
+ }
34
+
35
+ export function decodePng(bytes: Uint8Array): RgbaImage {
36
+ const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
37
+ let offset = 8;
38
+ let width = 0;
39
+ let height = 0;
40
+ let colorType = 0;
41
+ const idat: Uint8Array[] = [];
42
+ while (offset < bytes.length) {
43
+ const length = view.getUint32(offset);
44
+ const type = String.fromCharCode(...bytes.subarray(offset + 4, offset + 8));
45
+ const body = bytes.subarray(offset + 8, offset + 8 + length);
46
+ if (type === "IHDR") {
47
+ width = view.getUint32(offset + 8);
48
+ height = view.getUint32(offset + 12);
49
+ const depth = body[8];
50
+ colorType = body[9]!;
51
+ if (depth !== 8 || (colorType !== 6 && colorType !== 2) || body[12] !== 0) {
52
+ throw new Error(`Unsupported PNG (depth ${depth}, color type ${colorType}, interlace ${body[12]})`);
53
+ }
54
+ } else if (type === "IDAT") idat.push(body);
55
+ else if (type === "IEND") break;
56
+ offset += 12 + length;
57
+ }
58
+ const raw = inflateSync(Buffer.concat(idat));
59
+ const channels = colorType === 6 ? 4 : 3;
60
+ const stride = width * channels;
61
+ const pixels = new Uint8Array(width * height * channels);
62
+ for (let y = 0; y < height; y++) {
63
+ const filter = raw[y * (stride + 1)]!;
64
+ const src = y * (stride + 1) + 1;
65
+ const dst = y * stride;
66
+ for (let x = 0; x < stride; x++) {
67
+ const value = raw[src + x]!;
68
+ const left = x >= channels ? pixels[dst + x - channels]! : 0;
69
+ const up = y > 0 ? pixels[dst - stride + x]! : 0;
70
+ const upLeft = y > 0 && x >= channels ? pixels[dst - stride + x - channels]! : 0;
71
+ pixels[dst + x] =
72
+ (filter === 0
73
+ ? value
74
+ : filter === 1
75
+ ? value + left
76
+ : filter === 2
77
+ ? value + up
78
+ : filter === 3
79
+ ? value + ((left + up) >> 1)
80
+ : value + paeth(left, up, upLeft)) & 0xff;
81
+ }
82
+ }
83
+ if (channels === 4) return { width, height, data: pixels };
84
+ const data = new Uint8Array(width * height * 4);
85
+ for (let i = 0, j = 0; i < pixels.length; i += 3, j += 4) {
86
+ data[j] = pixels[i]!;
87
+ data[j + 1] = pixels[i + 1]!;
88
+ data[j + 2] = pixels[i + 2]!;
89
+ data[j + 3] = 255;
90
+ }
91
+ return { width, height, data };
92
+ }
93
+
94
+ // ── Source: decoded once, cropped to the octopus ─────────────────────────────────────
95
+
96
+ interface SayoSource {
97
+ /** Premultiplied RGBA floats of the cropped octopus. */
98
+ pixels: Float32Array;
99
+ width: number;
100
+ height: number;
101
+ }
102
+
103
+ let cachedSource: SayoSource | undefined;
104
+
105
+ function sayoSource(): SayoSource {
106
+ if (cachedSource) return cachedSource;
107
+ const image = decodePng(Buffer.from(SAYO_SOURCE_PNG_BASE64, "base64"));
108
+ let minX = image.width;
109
+ let minY = image.height;
110
+ let maxX = -1;
111
+ let maxY = -1;
112
+ for (let y = 0; y < image.height; y++) {
113
+ for (let x = 0; x < image.width; x++) {
114
+ if (image.data[(y * image.width + x) * 4 + 3]! < 24) continue;
115
+ if (x < minX) minX = x;
116
+ if (x > maxX) maxX = x;
117
+ if (y < minY) minY = y;
118
+ if (y > maxY) maxY = y;
119
+ }
120
+ }
121
+ // Square crop around the octopus, so every pose shares one box.
122
+ const side = Math.max(maxX - minX + 1, maxY - minY + 1);
123
+ const originX = Math.round((minX + maxX + 1 - side) / 2);
124
+ const originY = Math.round((minY + maxY + 1 - side) / 2);
125
+ const pixels = new Float32Array(side * side * 4);
126
+ for (let y = 0; y < side; y++) {
127
+ for (let x = 0; x < side; x++) {
128
+ const sx = originX + x;
129
+ const sy = originY + y;
130
+ if (sx < 0 || sy < 0 || sx >= image.width || sy >= image.height) continue;
131
+ const i = (sy * image.width + sx) * 4;
132
+ const alpha = image.data[i + 3]! / 255;
133
+ const o = (y * side + x) * 4;
134
+ pixels[o] = (image.data[i]! / 255) * alpha;
135
+ pixels[o + 1] = (image.data[i + 1]! / 255) * alpha;
136
+ pixels[o + 2] = (image.data[i + 2]! / 255) * alpha;
137
+ pixels[o + 3] = alpha;
138
+ }
139
+ }
140
+ cachedSource = { pixels, width: side, height: side };
141
+ return cachedSource;
142
+ }
143
+
144
+ /** Area-average downscale (premultiplied), so small sizes stay smooth instead of aliased. */
145
+ function downscale(source: SayoSource, size: number): SayoSource {
146
+ const out = new Float32Array(size * size * 4);
147
+ const ratio = source.width / size;
148
+ for (let y = 0; y < size; y++) {
149
+ const y0 = y * ratio;
150
+ const y1 = (y + 1) * ratio;
151
+ for (let x = 0; x < size; x++) {
152
+ const x0 = x * ratio;
153
+ const x1 = (x + 1) * ratio;
154
+ let r = 0;
155
+ let g = 0;
156
+ let b = 0;
157
+ let a = 0;
158
+ let weight = 0;
159
+ for (let sy = Math.floor(y0); sy < Math.ceil(y1); sy++) {
160
+ const wy = Math.min(y1, sy + 1) - Math.max(y0, sy);
161
+ for (let sx = Math.floor(x0); sx < Math.ceil(x1); sx++) {
162
+ const w = wy * (Math.min(x1, sx + 1) - Math.max(x0, sx));
163
+ const i = (sy * source.width + sx) * 4;
164
+ r += source.pixels[i]! * w;
165
+ g += source.pixels[i + 1]! * w;
166
+ b += source.pixels[i + 2]! * w;
167
+ a += source.pixels[i + 3]! * w;
168
+ weight += w;
169
+ }
170
+ }
171
+ const o = (y * size + x) * 4;
172
+ out[o] = r / weight;
173
+ out[o + 1] = g / weight;
174
+ out[o + 2] = b / weight;
175
+ out[o + 3] = a / weight;
176
+ }
177
+ }
178
+ return { pixels: out, width: size, height: size };
179
+ }
180
+
181
+ function sampleBilinear(source: SayoSource, x: number, y: number, out: Float32Array): void {
182
+ const fx = x - 0.5;
183
+ const fy = y - 0.5;
184
+ const x0 = Math.floor(fx);
185
+ const y0 = Math.floor(fy);
186
+ const tx = fx - x0;
187
+ const ty = fy - y0;
188
+ out.fill(0);
189
+ for (const [dx, dy, w] of [
190
+ [0, 0, (1 - tx) * (1 - ty)],
191
+ [1, 0, tx * (1 - ty)],
192
+ [0, 1, (1 - tx) * ty],
193
+ [1, 1, tx * ty],
194
+ ] as const) {
195
+ const sx = x0 + dx;
196
+ const sy = y0 + dy;
197
+ if (w === 0 || sx < 0 || sy < 0 || sx >= source.width || sy >= source.height) continue;
198
+ const i = (sy * source.width + sx) * 4;
199
+ out[0] += source.pixels[i]! * w;
200
+ out[1] += source.pixels[i + 1]! * w;
201
+ out[2] += source.pixels[i + 2]! * w;
202
+ out[3] += source.pixels[i + 3]! * w;
203
+ }
204
+ }
205
+
206
+ // ── Poses ────────────────────────────────────────────────────────────────────────────
207
+
208
+ /**
209
+ * Eye centers and radius in the cropped source, as fractions of its side (measured on
210
+ * sayo-logo.png: glossy black eyes either side of the smile).
211
+ */
212
+ const EYES = [
213
+ { x: 0.297, y: 0.438 },
214
+ { x: 0.644, y: 0.441 },
215
+ ] as const;
216
+ /** Half the measured eye height (0.13 of the side), so a lid covers the whole glossy eye. */
217
+ const EYE_RADIUS = 0.066;
218
+
219
+ interface PoseTransform {
220
+ /** Tilt in degrees about the tentacle line (positive leans right). */
221
+ tilt: number;
222
+ scaleX: number;
223
+ scaleY: number;
224
+ /** Horizontal shift as a fraction of the box. */
225
+ shiftX: number;
226
+ blink: boolean;
227
+ /** Pupil glance: -1 left, +1 right. */
228
+ glance: number;
229
+ /** Tear progress 1..3, 0 for none. */
230
+ tear: number;
231
+ }
232
+
233
+ const POSES: Record<SayoPose, PoseTransform> = {
234
+ base: { tilt: 0, scaleX: 1, scaleY: 1, shiftX: 0, blink: false, glance: 0, tear: 0 },
235
+ gazeL: { tilt: -3, scaleX: 1, scaleY: 1, shiftX: 0, blink: false, glance: -1, tear: 0 },
236
+ gazeR: { tilt: 3, scaleX: 1, scaleY: 1, shiftX: 0, blink: false, glance: 1, tear: 0 },
237
+ flicker: { tilt: 0, scaleX: 1, scaleY: 1, shiftX: 0, blink: true, glance: 0, tear: 0 },
238
+ flex: { tilt: 0, scaleX: 1.07, scaleY: 0.92, shiftX: 0, blink: false, glance: 0, tear: 0 },
239
+ danceL: { tilt: -9, scaleX: 1, scaleY: 1.02, shiftX: -0.04, blink: false, glance: 0, tear: 0 },
240
+ danceR: { tilt: 9, scaleX: 1, scaleY: 1.02, shiftX: 0.04, blink: false, glance: 0, tear: 0 },
241
+ cry1: { tilt: 0, scaleX: 1, scaleY: 1, shiftX: 0, blink: true, glance: 0, tear: 1 },
242
+ cry2: { tilt: 0, scaleX: 1, scaleY: 1, shiftX: 0, blink: true, glance: 0, tear: 2 },
243
+ cry3: { tilt: 0, scaleX: 1, scaleY: 1, shiftX: 0, blink: true, glance: 0, tear: 3 },
244
+ };
245
+
246
+ /** The box keeps a margin so tilted and squashed poses are not clipped. */
247
+ const POSE_MARGIN = 0.07;
248
+ /** Pivot for tilt and squash: the tentacle line, near the bottom of the octopus. */
249
+ const PIVOT_Y = 0.86;
250
+
251
+ const TEAR_RGB = [0.72, 0.9, 1] as const;
252
+ const LID_DARK = [0.13, 0.08, 0.07] as const;
253
+
254
+ /**
255
+ * Map a pixel of the pose into source coordinates (fractions of the source side).
256
+ * Returns the inverse of: shift ∘ tilt ∘ squash, all about the pivot.
257
+ */
258
+ function inversePose(pose: PoseTransform, u: number, v: number): [number, number] {
259
+ // Box → unmargined sprite space.
260
+ let x = (u - POSE_MARGIN) / (1 - 2 * POSE_MARGIN) - pose.shiftX;
261
+ let y = (v - POSE_MARGIN) / (1 - 2 * POSE_MARGIN);
262
+ const px = 0.5;
263
+ const py = PIVOT_Y;
264
+ const angle = (-pose.tilt * Math.PI) / 180;
265
+ const cos = Math.cos(angle);
266
+ const sin = Math.sin(angle);
267
+ const rx = (x - px) * cos - (y - py) * sin;
268
+ const ry = (x - px) * sin + (y - py) * cos;
269
+ x = px + rx / pose.scaleX;
270
+ y = py + ry / pose.scaleY;
271
+ return [x, y];
272
+ }
273
+
274
+ /** Render one pose, tinted, into a `size`×`size` straight-RGBA image. */
275
+ export function renderSayoPose(pose: SayoPose, tint: SayoTint, size: number): RgbaImage {
276
+ const transform = POSES[pose];
277
+ // Work at up to 3× and area-average down: smooth edges, crisp eyes. Past the source's
278
+ // own resolution supersampling adds nothing but time.
279
+ const sourceSide = sayoSource().width;
280
+ const work = Math.max(8, Math.min(size * 3, Math.max(size, Math.ceil(sourceSide / (1 - 2 * POSE_MARGIN)))));
281
+ const source = downscale(sayoSource(), Math.min(sourceSide, Math.round(work * (1 - 2 * POSE_MARGIN))));
282
+ const side = source.width;
283
+ const sample = new Float32Array(4);
284
+ const bodyAbove = new Float32Array(4);
285
+ const canvas = new Float32Array(work * work * 4);
286
+ for (let y = 0; y < work; y++) {
287
+ for (let x = 0; x < work; x++) {
288
+ const [su, sv] = inversePose(transform, (x + 0.5) / work, (y + 0.5) / work);
289
+ let lx = su;
290
+ const ly = sv;
291
+ let eyeDistance = Number.POSITIVE_INFINITY;
292
+ let eyeIndex = -1;
293
+ for (let e = 0; e < EYES.length; e++) {
294
+ const d = Math.hypot((su - EYES[e]!.x) / EYE_RADIUS, (sv - EYES[e]!.y) / EYE_RADIUS);
295
+ if (d < eyeDistance) {
296
+ eyeDistance = d;
297
+ eyeIndex = e;
298
+ }
299
+ }
300
+ const eye = EYES[eyeIndex]!;
301
+ const inEye = eyeDistance <= 1.25;
302
+ if (inEye && transform.glance !== 0 && !transform.blink) lx = su - transform.glance * EYE_RADIUS * 0.3;
303
+ sampleBilinear(source, lx * side, ly * side, sample);
304
+ if (
305
+ inEye &&
306
+ (transform.blink ||
307
+ (transform.glance !== 0 && Math.hypot((lx - eye.x) / EYE_RADIUS, (ly - eye.y) / EYE_RADIUS) > 1.25))
308
+ ) {
309
+ // Skin from just above the eye covers it; a blink adds a closed-lid line.
310
+ sampleBilinear(source, su * side, (eye.y - EYE_RADIUS * 2.1) * side, bodyAbove);
311
+ sample.set(bodyAbove);
312
+ const lid =
313
+ transform.blink && Math.abs((sv - eye.y - EYE_RADIUS * 0.15) / EYE_RADIUS) < 0.22 && eyeDistance <= 1.05;
314
+ if (lid) {
315
+ sample[0] = LID_DARK[0] * sample[3]!;
316
+ sample[1] = LID_DARK[1] * sample[3]!;
317
+ sample[2] = LID_DARK[2] * sample[3]!;
318
+ }
319
+ }
320
+ if (transform.tear > 0) {
321
+ const outer = eyeIndex === 0 ? -1 : 1;
322
+ const tx = eye.x + outer * EYE_RADIUS * 0.9;
323
+ const ty = eye.y + EYE_RADIUS * (1.2 + transform.tear * 0.8);
324
+ const t = Math.hypot((su - tx) / (EYE_RADIUS * 0.45), (sv - ty) / (EYE_RADIUS * 0.6));
325
+ if (t <= 1 && sample[3]! > 0.5) {
326
+ sample[0] = TEAR_RGB[0];
327
+ sample[1] = TEAR_RGB[1];
328
+ sample[2] = TEAR_RGB[2];
329
+ sample[3] = 1;
330
+ }
331
+ }
332
+ canvas.set(sample, (y * work + x) * 4);
333
+ }
334
+ }
335
+ const scaled = downscale({ pixels: canvas, width: work, height: work }, size);
336
+ const data = new Uint8Array(size * size * 4);
337
+ for (let i = 0; i < size * size; i++) {
338
+ const a = scaled.pixels[i * 4 + 3]!;
339
+ if (a <= 0.002) continue;
340
+ const [r, g, b] = tintRgb(
341
+ scaled.pixels[i * 4]! / a,
342
+ scaled.pixels[i * 4 + 1]! / a,
343
+ scaled.pixels[i * 4 + 2]! / a,
344
+ tint,
345
+ );
346
+ data[i * 4] = Math.round(Math.min(1, r) * 255);
347
+ data[i * 4 + 1] = Math.round(Math.min(1, g) * 255);
348
+ data[i * 4 + 2] = Math.round(Math.min(1, b) * 255);
349
+ data[i * 4 + 3] = Math.round(Math.min(1, a) * 255);
350
+ }
351
+ return { width: size, height: size, data };
352
+ }
353
+
354
+ // ── Tint ─────────────────────────────────────────────────────────────────────────────
355
+
356
+ /** Hue shift in degrees from Sayo's orange; neutral pixels (eyes, highlights) are unaffected. */
357
+ const TINT_HUE: Record<SayoTint, number> = { orange: 0, red: -16, blue: 184 };
358
+ const TINT_SATURATION: Record<SayoTint, number> = { orange: 1, red: 1.05, blue: 0.95 };
359
+
360
+ function tintRgb(r: number, g: number, b: number, tint: SayoTint): [number, number, number] {
361
+ if (tint === "orange") return [r, g, b];
362
+ const max = Math.max(r, g, b);
363
+ const min = Math.min(r, g, b);
364
+ const delta = max - min;
365
+ if (delta < 0.05) return [r, g, b];
366
+ let hue = max === r ? ((g - b) / delta) % 6 : max === g ? (b - r) / delta + 2 : (r - g) / delta + 4;
367
+ hue = (hue * 60 + TINT_HUE[tint] + 360) % 360;
368
+ const saturation = Math.min(1, (delta / max) * TINT_SATURATION[tint]);
369
+ const value = max;
370
+ const c = value * saturation;
371
+ const x = c * (1 - Math.abs(((hue / 60) % 2) - 1));
372
+ const m = value - c;
373
+ const [r1, g1, b1] =
374
+ hue < 60
375
+ ? [c, x, 0]
376
+ : hue < 120
377
+ ? [x, c, 0]
378
+ : hue < 180
379
+ ? [0, c, x]
380
+ : hue < 240
381
+ ? [0, x, c]
382
+ : hue < 300
383
+ ? [x, 0, c]
384
+ : [c, 0, x];
385
+ return [r1 + m, g1 + m, b1 + m];
386
+ }
387
+
388
+ /** Every pose the pet state machine names. */
389
+ export const SAYO_POSES = Object.keys(POSES) as SayoPose[];
package/src/index.ts CHANGED
@@ -12,6 +12,7 @@ export * from "./components/input";
12
12
  export * from "./components/loader";
13
13
  export * from "./components/markdown";
14
14
  export * from "./components/sayknow-pet";
15
+ export * from "./components/sayo-sprite";
15
16
  export * from "./components/secret-input";
16
17
  export * from "./components/select-list";
17
18
  export * from "./components/settings-list";