rip-lang 2.5.1 → 2.7.1

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.
@@ -1,184 +1,3 @@
1
- // src/tags.js
2
- var HTML_TAGS = new Set([
3
- "html",
4
- "head",
5
- "title",
6
- "base",
7
- "link",
8
- "meta",
9
- "style",
10
- "body",
11
- "address",
12
- "article",
13
- "aside",
14
- "footer",
15
- "header",
16
- "h1",
17
- "h2",
18
- "h3",
19
- "h4",
20
- "h5",
21
- "h6",
22
- "main",
23
- "nav",
24
- "section",
25
- "blockquote",
26
- "dd",
27
- "div",
28
- "dl",
29
- "dt",
30
- "figcaption",
31
- "figure",
32
- "hr",
33
- "li",
34
- "ol",
35
- "p",
36
- "pre",
37
- "ul",
38
- "a",
39
- "abbr",
40
- "b",
41
- "bdi",
42
- "bdo",
43
- "br",
44
- "cite",
45
- "code",
46
- "data",
47
- "dfn",
48
- "em",
49
- "i",
50
- "kbd",
51
- "mark",
52
- "q",
53
- "rp",
54
- "rt",
55
- "ruby",
56
- "s",
57
- "samp",
58
- "small",
59
- "span",
60
- "strong",
61
- "sub",
62
- "sup",
63
- "time",
64
- "u",
65
- "var",
66
- "wbr",
67
- "area",
68
- "audio",
69
- "img",
70
- "map",
71
- "track",
72
- "video",
73
- "embed",
74
- "iframe",
75
- "object",
76
- "param",
77
- "picture",
78
- "portal",
79
- "source",
80
- "svg",
81
- "math",
82
- "canvas",
83
- "noscript",
84
- "script",
85
- "del",
86
- "ins",
87
- "caption",
88
- "col",
89
- "colgroup",
90
- "table",
91
- "tbody",
92
- "td",
93
- "tfoot",
94
- "th",
95
- "thead",
96
- "tr",
97
- "button",
98
- "datalist",
99
- "fieldset",
100
- "form",
101
- "input",
102
- "label",
103
- "legend",
104
- "meter",
105
- "optgroup",
106
- "option",
107
- "output",
108
- "progress",
109
- "select",
110
- "textarea",
111
- "details",
112
- "dialog",
113
- "menu",
114
- "summary",
115
- "slot",
116
- "template"
117
- ]);
118
- var SVG_TAGS = new Set([
119
- "svg",
120
- "g",
121
- "defs",
122
- "symbol",
123
- "use",
124
- "marker",
125
- "clipPath",
126
- "mask",
127
- "pattern",
128
- "circle",
129
- "ellipse",
130
- "line",
131
- "path",
132
- "polygon",
133
- "polyline",
134
- "rect",
135
- "text",
136
- "textPath",
137
- "tspan",
138
- "linearGradient",
139
- "radialGradient",
140
- "stop",
141
- "filter",
142
- "feBlend",
143
- "feColorMatrix",
144
- "feComponentTransfer",
145
- "feComposite",
146
- "feConvolveMatrix",
147
- "feDiffuseLighting",
148
- "feDisplacementMap",
149
- "feDistantLight",
150
- "feDropShadow",
151
- "feFlood",
152
- "feFuncA",
153
- "feFuncB",
154
- "feFuncG",
155
- "feFuncR",
156
- "feGaussianBlur",
157
- "feImage",
158
- "feMerge",
159
- "feMergeNode",
160
- "feMorphology",
161
- "feOffset",
162
- "fePointLight",
163
- "feSpecularLighting",
164
- "feSpotLight",
165
- "feTile",
166
- "feTurbulence",
167
- "animate",
168
- "animateMotion",
169
- "animateTransform",
170
- "set",
171
- "mpath",
172
- "desc",
173
- "foreignObject",
174
- "image",
175
- "metadata",
176
- "switch",
177
- "title",
178
- "view"
179
- ]);
180
- var TEMPLATE_TAGS = new Set([...HTML_TAGS, ...SVG_TAGS]);
181
-
182
1
  // src/lexer.js
183
2
  var BALANCED_PAIRS;
184
3
  var BOM;
@@ -416,8 +235,6 @@ var Lexer = class Lexer2 {
416
235
  this.seenExport = false;
417
236
  this.importSpecifierList = false;
418
237
  this.exportSpecifierList = false;
419
- this.inRender = false;
420
- this.renderIndent = 0;
421
238
  this.chunkLine = opts.line || 0;
422
239
  this.chunkColumn = opts.column || 0;
423
240
  this.chunkOffset = opts.offset || 0;
@@ -521,8 +338,7 @@ ${code}`;
521
338
  return sup.length + 3;
522
339
  }
523
340
  prev = this.prev();
524
- const isHashProperty = this.inRender && prev != null && prev[0] === "#" && !prev.spaced;
525
- tag = colon || prev != null && ((ref5 = prev[0]) === "." || ref5 === "?." || ref5 === "::" || ref5 === "?::" || !prev.spaced && prev[0] === "@") || isHashProperty ? "PROPERTY" : "IDENTIFIER";
341
+ tag = colon || prev != null && ((ref5 = prev[0]) === "." || ref5 === "?." || ref5 === "::" || ref5 === "?::" || !prev.spaced && prev[0] === "@") ? "PROPERTY" : "IDENTIFIER";
526
342
  tokenData = {};
527
343
  if (tag === "IDENTIFIER" && (indexOf.call(JS_KEYWORDS, id) >= 0 || indexOf.call(RIP_KEYWORDS, id) >= 0) && !(this.exportSpecifierList && indexOf.call(RIP_KEYWORDS, id) >= 0)) {
528
344
  tag = id.toUpperCase();
@@ -536,9 +352,6 @@ ${code}`;
536
352
  this.seenImport = true;
537
353
  } else if (tag === "EXPORT") {
538
354
  this.seenExport = true;
539
- } else if (tag === "RENDER") {
540
- this.inRender = true;
541
- this.renderIndent = this.indent;
542
355
  } else if (indexOf.call(UNARY, tag) >= 0) {
543
356
  tag = "UNARY";
544
357
  } else if (indexOf.call(RELATION, tag) >= 0) {
@@ -640,9 +453,6 @@ ${code}`;
640
453
  }
641
454
  commentToken(chunk = this.chunk, { heregex, returnCommentTokens = false, offsetInChunk = 0 } = {}) {
642
455
  var commentAttachment, commentAttachments, commentWithSurroundingWhitespace, content, contents, getIndentSize, hasSeenFirstCommentLine, hereComment, hereLeadingWhitespace, hereTrailingWhitespace, i, indentSize, leadingNewline, leadingNewlineOffset, leadingNewlines, leadingWhitespace, length, lineComment, match, matchIllegal, noIndent, nonInitial, placeholderToken, precededByBlankLine, precedingNonCommentLines, prev;
643
- if (this.inRender && chunk[0] === "#" && /^#[a-zA-Z_$]/.test(chunk)) {
644
- return 0;
645
- }
646
456
  if (!(match = chunk.match(COMMENT))) {
647
457
  return 0;
648
458
  }
@@ -1224,9 +1034,11 @@ ${line}`;
1224
1034
  } else if (value === "<=>") {
1225
1035
  tag = "BIND";
1226
1036
  } else if (value === "~=") {
1227
- tag = "DERIVED_ASSIGN";
1037
+ tag = "COMPUTED_ASSIGN";
1228
1038
  } else if (value === ":=") {
1229
1039
  tag = "REACTIVE_ASSIGN";
1040
+ } else if (value === "~>") {
1041
+ tag = "REACT_ASSIGN";
1230
1042
  } else if (value === "=!") {
1231
1043
  tag = "READONLY_ASSIGN";
1232
1044
  } else if (indexOf.call(MATH, value) >= 0) {
@@ -1700,12 +1512,6 @@ ${line}`;
1700
1512
  }
1701
1513
  unfinished() {
1702
1514
  var ref;
1703
- if (this.tag() === "RENDER") {
1704
- return false;
1705
- }
1706
- if (this.inRender && /^\s*\./.test(this.chunk)) {
1707
- return false;
1708
- }
1709
1515
  return LINE_CONTINUER.test(this.chunk) || (ref = this.tag(), indexOf.call(UNFINISHED, ref) >= 0);
1710
1516
  }
1711
1517
  validateUnicodeCodePointEscapes(str, options) {
@@ -1777,7 +1583,7 @@ addTokenData = function(token, data) {
1777
1583
  return Object.assign(token.data != null ? token.data : token.data = {}, data);
1778
1584
  };
1779
1585
  JS_KEYWORDS = ["true", "false", "null", "this", "new", "delete", "typeof", "in", "instanceof", "return", "throw", "break", "continue", "debugger", "yield", "await", "if", "else", "switch", "for", "while", "do", "try", "catch", "finally", "class", "extends", "super", "import", "export", "default"];
1780
- RIP_KEYWORDS = ["undefined", "Infinity", "NaN", "then", "unless", "until", "loop", "of", "by", "when", "def", "effect", "component", "render", "style", "mounted", "unmounted", "updated"];
1586
+ RIP_KEYWORDS = ["undefined", "Infinity", "NaN", "then", "unless", "until", "loop", "of", "by", "when", "def"];
1781
1587
  RIP_ALIAS_MAP = {
1782
1588
  and: "&&",
1783
1589
  or: "||",
@@ -1804,7 +1610,7 @@ var JS_FORBIDDEN = JS_KEYWORDS.concat(RESERVED).concat(STRICT_PROSCRIBED);
1804
1610
  BOM = 65279;
1805
1611
  IDENTIFIER = /^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+!?)([^\n\S]*:(?![=:]))?/;
1806
1612
  NUMBER = /^0b[01](?:_?[01])*n?|^0o[0-7](?:_?[0-7])*n?|^0x[\da-f](?:_?[\da-f])*n?|^\d+(?:_\d+)*n|^(?:\d+(?:_\d+)*)?\.?\d+(?:_\d+)*(?:e[+-]?\d+(?:_\d+)*)?/i;
1807
- OPERATOR = /^(?:<=>|[-=]>|~=|:=|=!|===|!==|!\?|\?\?|=~|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/;
1613
+ OPERATOR = /^(?:<=>|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/;
1808
1614
  WHITESPACE = /^[^\n\S]+/;
1809
1615
  COMMENT = /^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/;
1810
1616
  CODE = /^[-=]>/;
@@ -1902,7 +1708,6 @@ Rewriter = function() {
1902
1708
  this.closeOpenCalls();
1903
1709
  this.closeOpenIndexes();
1904
1710
  this.normalizeLines();
1905
- this.processTemplateTokens();
1906
1711
  this.convertLegacyExistential();
1907
1712
  this.convertPostfixSpreadRest();
1908
1713
  this.tagPostfixConditionals();
@@ -2230,7 +2035,7 @@ Rewriter = function() {
2230
2035
  startImplicitCall(i + 1);
2231
2036
  return forward(2);
2232
2037
  }
2233
- if (indexOf.call(IMPLICIT_FUNC, tag) >= 0 && this.indexOfTag(i + 1, "INDENT") > -1 && this.looksObjectish(i + 2) && !this.findTagsBackwards(i, ["CLASS", "COMPONENT", "EXTENDS", "IF", "CATCH", "SWITCH", "LEADING_WHEN", "FOR", "WHILE", "UNTIL"]) && !(((ref1 = s = (ref2 = stackTop()) != null ? ref2[0] : undefined) === "{" || ref1 === "[") && !isImplicit(stackTop()) && this.findTagsBackwards(i, s))) {
2038
+ if (indexOf.call(IMPLICIT_FUNC, tag) >= 0 && this.indexOfTag(i + 1, "INDENT") > -1 && this.looksObjectish(i + 2) && !this.findTagsBackwards(i, ["CLASS", "EXTENDS", "IF", "CATCH", "SWITCH", "LEADING_WHEN", "FOR", "WHILE", "UNTIL"]) && !(((ref1 = s = (ref2 = stackTop()) != null ? ref2[0] : undefined) === "{" || ref1 === "[") && !isImplicit(stackTop()) && this.findTagsBackwards(i, s))) {
2234
2039
  startImplicitCall(i + 1);
2235
2040
  stack.push(["INDENT", i + 2]);
2236
2041
  return forward(3);
@@ -2648,197 +2453,6 @@ Rewriter = function() {
2648
2453
  return 1;
2649
2454
  });
2650
2455
  }
2651
- processTemplateTokens() {
2652
- let inRender = false;
2653
- let renderIndentLevel = 0;
2654
- let currentIndent = 0;
2655
- let pendingCallEnds = [];
2656
- const isHtmlTag = (name) => {
2657
- const tagPart = name.split("#")[0];
2658
- return TEMPLATE_TAGS.has(tagPart);
2659
- };
2660
- const isComponent = (name) => {
2661
- if (!name || typeof name !== "string")
2662
- return false;
2663
- return /^[A-Z]/.test(name);
2664
- };
2665
- const isTemplateTag = (name) => {
2666
- return isHtmlTag(name) || isComponent(name);
2667
- };
2668
- const startsWithHtmlTag = (tokens, i) => {
2669
- let j = i;
2670
- while (j > 0) {
2671
- const pt = tokens[j - 1][0];
2672
- if (pt === "INDENT" || pt === "OUTDENT" || pt === "TERMINATOR" || pt === "RENDER" || pt === "CALL_END" || pt === ")") {
2673
- break;
2674
- }
2675
- j--;
2676
- }
2677
- return tokens[j] && tokens[j][0] === "IDENTIFIER" && isHtmlTag(tokens[j][1]);
2678
- };
2679
- return this.scanTokens(function(token, i, tokens) {
2680
- const tag = token[0];
2681
- const nextToken = i < tokens.length - 1 ? tokens[i + 1] : null;
2682
- if (tag === "RENDER") {
2683
- inRender = true;
2684
- renderIndentLevel = currentIndent + 1;
2685
- return 1;
2686
- }
2687
- if (tag === "INDENT") {
2688
- currentIndent++;
2689
- return 1;
2690
- }
2691
- if (tag === "OUTDENT") {
2692
- currentIndent--;
2693
- let inserted = 0;
2694
- while (pendingCallEnds.length > 0 && pendingCallEnds[pendingCallEnds.length - 1] > currentIndent) {
2695
- const callEndToken = ["CALL_END", ")", token[2]];
2696
- callEndToken.generated = true;
2697
- tokens.splice(i + 1 + inserted, 0, callEndToken);
2698
- pendingCallEnds.pop();
2699
- inserted++;
2700
- }
2701
- if (inRender && currentIndent < renderIndentLevel) {
2702
- inRender = false;
2703
- }
2704
- return 1 + inserted;
2705
- }
2706
- if (!inRender)
2707
- return 1;
2708
- if (tag === "IDENTIFIER" && !token.spaced) {
2709
- let parts = [token[1]];
2710
- let j = i + 1;
2711
- while (j + 1 < tokens.length) {
2712
- const hyphen = tokens[j];
2713
- const nextPart = tokens[j + 1];
2714
- if (hyphen[0] === "-" && !hyphen.spaced && (nextPart[0] === "IDENTIFIER" || nextPart[0] === "PROPERTY")) {
2715
- parts.push(nextPart[1]);
2716
- j += 2;
2717
- if (nextPart[0] === "PROPERTY")
2718
- break;
2719
- } else {
2720
- break;
2721
- }
2722
- }
2723
- if (parts.length > 1 && j > i + 1 && tokens[j - 1][0] === "PROPERTY") {
2724
- token[0] = "STRING";
2725
- token[1] = `"${parts.join("-")}"`;
2726
- tokens.splice(i + 1, j - i - 1);
2727
- return 1;
2728
- }
2729
- }
2730
- if (tag === ".") {
2731
- const prevToken = i > 0 ? tokens[i - 1] : null;
2732
- const prevTag = prevToken ? prevToken[0] : null;
2733
- if (prevTag === "INDENT" || prevTag === "TERMINATOR") {
2734
- if (nextToken && nextToken[0] === "PROPERTY") {
2735
- const divToken = ["IDENTIFIER", "div", token[2]];
2736
- divToken.generated = true;
2737
- tokens.splice(i, 0, divToken);
2738
- return 2;
2739
- }
2740
- }
2741
- }
2742
- if (tag === "IDENTIFIER" || tag === "PROPERTY") {
2743
- const next = tokens[i + 1];
2744
- const nextNext = tokens[i + 2];
2745
- if (next && next[0] === "#" && nextNext && nextNext[0] === "PROPERTY") {
2746
- token[1] = token[1] + "#" + nextNext[1];
2747
- if (nextNext.spaced)
2748
- token.spaced = true;
2749
- tokens.splice(i + 1, 2);
2750
- return 1;
2751
- }
2752
- }
2753
- if (tag === "BIND") {
2754
- const prevToken = i > 0 ? tokens[i - 1] : null;
2755
- const nextBindToken = tokens[i + 1];
2756
- if (prevToken && (prevToken[0] === "IDENTIFIER" || prevToken[0] === "PROPERTY") && nextBindToken && nextBindToken[0] === "IDENTIFIER") {
2757
- prevToken[1] = `__bind_${prevToken[1]}__`;
2758
- token[0] = ":";
2759
- token[1] = ":";
2760
- return 1;
2761
- }
2762
- }
2763
- if (tag === "@") {
2764
- let j = i + 1;
2765
- if (j < tokens.length && tokens[j][0] === "PROPERTY") {
2766
- j++;
2767
- while (j + 1 < tokens.length && tokens[j][0] === "." && tokens[j + 1][0] === "PROPERTY") {
2768
- j += 2;
2769
- }
2770
- if (j > i + 2 && j < tokens.length && tokens[j][0] === ":") {
2771
- const openBracket = ["[", "[", token[2]];
2772
- openBracket.generated = true;
2773
- tokens.splice(i, 0, openBracket);
2774
- const closeBracket = ["]", "]", tokens[j + 1][2]];
2775
- closeBracket.generated = true;
2776
- tokens.splice(j + 1, 0, closeBracket);
2777
- return 2;
2778
- }
2779
- }
2780
- }
2781
- if (tag === "." && nextToken && nextToken[0] === "(") {
2782
- const prevToken = i > 0 ? tokens[i - 1] : null;
2783
- const prevTag = prevToken ? prevToken[0] : null;
2784
- const atLineStart = prevTag === "INDENT" || prevTag === "TERMINATOR";
2785
- const cxToken = ["PROPERTY", "__cx__", token[2]];
2786
- cxToken.generated = true;
2787
- nextToken[0] = "CALL_START";
2788
- let depth = 1;
2789
- for (let j = i + 2;j < tokens.length && depth > 0; j++) {
2790
- if (tokens[j][0] === "(" || tokens[j][0] === "CALL_START")
2791
- depth++;
2792
- else if (tokens[j][0] === ")") {
2793
- depth--;
2794
- if (depth === 0)
2795
- tokens[j][0] = "CALL_END";
2796
- } else if (tokens[j][0] === "CALL_END")
2797
- depth--;
2798
- }
2799
- if (atLineStart) {
2800
- const divToken = ["IDENTIFIER", "div", token[2]];
2801
- divToken.generated = true;
2802
- tokens.splice(i, 0, divToken);
2803
- tokens.splice(i + 2, 0, cxToken);
2804
- return 3;
2805
- } else {
2806
- tokens.splice(i + 1, 0, cxToken);
2807
- return 2;
2808
- }
2809
- }
2810
- if (nextToken && nextToken[0] === "INDENT") {
2811
- if (tag === "->" || tag === "=>" || tag === "CALL_START" || tag === "(") {
2812
- return 1;
2813
- }
2814
- let isTemplateElement = false;
2815
- if (tag === "IDENTIFIER" && isTemplateTag(token[1])) {
2816
- isTemplateElement = true;
2817
- } else if (tag === "PROPERTY" || tag === "STRING" || tag === "CALL_END" || tag === ")") {
2818
- isTemplateElement = startsWithHtmlTag(tokens, i);
2819
- } else if (tag === "IDENTIFIER" && i > 1 && tokens[i - 1][0] === "...") {
2820
- if (startsWithHtmlTag(tokens, i)) {
2821
- const commaToken = [",", ",", token[2]];
2822
- commaToken.generated = true;
2823
- const arrowToken = ["->", "->", token[2]];
2824
- arrowToken.newLine = true;
2825
- tokens.splice(i + 1, 0, commaToken, arrowToken);
2826
- return 3;
2827
- }
2828
- }
2829
- if (isTemplateElement) {
2830
- const callStartToken = ["CALL_START", "(", token[2]];
2831
- callStartToken.generated = true;
2832
- const arrowToken = ["->", "->", token[2]];
2833
- arrowToken.newLine = true;
2834
- tokens.splice(i + 1, 0, callStartToken, arrowToken);
2835
- pendingCallEnds.push(currentIndent + 1);
2836
- return 3;
2837
- }
2838
- }
2839
- return 1;
2840
- });
2841
- }
2842
2456
  convertLegacyExistential() {
2843
2457
  return this.scanTokens(function(token, i, tokens) {
2844
2458
  var colonFound, j, nestLevel, ref, tag;
@@ -2993,15 +2607,15 @@ SINGLE_LINERS = ["ELSE", "->", "=>", "TRY", "FINALLY", "THEN"];
2993
2607
  SINGLE_CLOSERS = ["TERMINATOR", "CATCH", "FINALLY", "ELSE", "OUTDENT", "LEADING_WHEN"];
2994
2608
  LINEBREAKS = ["TERMINATOR", "INDENT", "OUTDENT"];
2995
2609
  CALL_CLOSERS = [".", "?.", "::", "?::"];
2996
- CONTROL_IN_IMPLICIT = ["IF", "TRY", "FINALLY", "CATCH", "CLASS", "COMPONENT", "SWITCH"];
2610
+ CONTROL_IN_IMPLICIT = ["IF", "TRY", "FINALLY", "CATCH", "CLASS", "SWITCH"];
2997
2611
  DISCARDED = ["(", ")", "[", "]", "{", "}", ":", ".", "..", "...", ",", "=", "++", "--", "?", "AS", "AWAIT", "CALL_START", "CALL_END", "DEFAULT", "DO", "DO_IIFE", "ELSE", "EXTENDS", "EXPORT", "FORIN", "FOROF", "FORFROM", "IMPORT", "INDENT", "INDEX_SOAK", "INTERPOLATION_START", "INTERPOLATION_END", "LEADING_WHEN", "OUTDENT", "PARAM_END", "REGEX_START", "REGEX_END", "RETURN", "STRING_END", "THROW", "UNARY", "YIELD"].concat(IMPLICIT_UNSPACED_CALL.concat(IMPLICIT_END.concat(CALL_CLOSERS.concat(CONTROL_IN_IMPLICIT))));
2998
2612
  UNFINISHED = ["\\", ".", "?.", "?::", "UNARY", "DO", "DO_IIFE", "MATH", "UNARY_MATH", "+", "-", "**", "SHIFT", "RELATION", "COMPARE", "&", "^", "|", "&&", "||", "SPACE?", "EXTENDS"];
2999
2613
  // src/parser.js
3000
2614
  var parserInstance = {
3001
- symbolIds: { $accept: 0, $end: 1, error: 2, Root: 3, Body: 4, Line: 5, TERMINATOR: 6, Expression: 7, ExpressionLine: 8, Statement: 9, Return: 10, STATEMENT: 11, Import: 12, Export: 13, Value: 14, Code: 15, Operation: 16, Assign: 17, ReactiveAssign: 18, DerivedAssign: 19, ReadonlyAssign: 20, EffectBlock: 21, RenderBlock: 22, StyleBlock: 23, Component: 24, If: 25, Try: 26, While: 27, For: 28, Switch: 29, Class: 30, Throw: 31, Yield: 32, Def: 33, DEF: 34, Identifier: 35, CALL_START: 36, ParamList: 37, CALL_END: 38, Block: 39, Assignable: 40, REACTIVE_ASSIGN: 41, INDENT: 42, OUTDENT: 43, DERIVED_ASSIGN: 44, READONLY_ASSIGN: 45, EFFECT: 46, FuncGlyph: 47, RENDER: 48, STYLE: 49, COMPONENT: 50, ComponentBody: 51, ComponentLine: 52, PropDecl: 53, "@": 54, PROPERTY: 55, "?": 56, "=": 57, "...": 58, IDENTIFIER: 59, CodeLine: 60, OperationLine: 61, YIELD: 62, Object: 63, FROM: 64, Property: 65, AlphaNumeric: 66, NUMBER: 67, String: 68, STRING: 69, STRING_START: 70, Interpolations: 71, STRING_END: 72, InterpolationChunk: 73, INTERPOLATION_START: 74, INTERPOLATION_END: 75, Regex: 76, REGEX: 77, REGEX_START: 78, Invocation: 79, REGEX_END: 80, RegexWithIndex: 81, ",": 82, Literal: 83, JS: 84, UNDEFINED: 85, NULL: 86, BOOL: 87, INFINITY: 88, NAN: 89, AssignObj: 90, ObjAssignable: 91, ObjRestValue: 92, ":": 93, SimpleObjAssignable: 94, ThisProperty: 95, "[": 96, "]": 97, ObjSpreadExpr: 98, Parenthetical: 99, Super: 100, This: 101, SUPER: 102, OptFuncExist: 103, Arguments: 104, DYNAMIC_IMPORT: 105, ".": 106, "?.": 107, "::": 108, "?::": 109, INDEX_START: 110, INDEX_END: 111, INDEX_SOAK: 112, RETURN: 113, PARAM_START: 114, PARAM_END: 115, "->": 116, "=>": 117, OptComma: 118, Param: 119, ParamVar: 120, Array: 121, Splat: 122, SimpleAssignable: 123, Slice: 124, ES6_OPTIONAL_INDEX: 125, Range: 126, DoIife: 127, MetaProperty: 128, NEW_TARGET: 129, IMPORT_META: 130, "{": 131, FOR: 132, ForVariables: 133, FOROF: 134, "}": 135, WHEN: 136, OWN: 137, AssignList: 138, CLASS: 139, EXTENDS: 140, IMPORT: 141, ImportDefaultSpecifier: 142, ImportNamespaceSpecifier: 143, ImportSpecifierList: 144, ImportSpecifier: 145, AS: 146, DEFAULT: 147, IMPORT_ALL: 148, EXPORT: 149, ExportSpecifierList: 150, EXPORT_ALL: 151, ExportSpecifier: 152, ES6_OPTIONAL_CALL: 153, FUNC_EXIST: 154, ArgList: 155, THIS: 156, Elisions: 157, ArgElisionList: 158, OptElisions: 159, RangeDots: 160, "..": 161, Arg: 162, ArgElision: 163, Elision: 164, SimpleArgs: 165, TRY: 166, Catch: 167, FINALLY: 168, CATCH: 169, THROW: 170, "(": 171, ")": 172, WhileSource: 173, WHILE: 174, UNTIL: 175, Loop: 176, LOOP: 177, FORIN: 178, BY: 179, FORFROM: 180, AWAIT: 181, ForValue: 182, SWITCH: 183, Whens: 184, ELSE: 185, When: 186, LEADING_WHEN: 187, IfBlock: 188, IF: 189, UnlessBlock: 190, UNLESS: 191, POST_IF: 192, POST_UNLESS: 193, UNARY: 194, DO: 195, DO_IIFE: 196, UNARY_MATH: 197, "-": 198, "+": 199, "--": 200, "++": 201, MATH: 202, "**": 203, SHIFT: 204, COMPARE: 205, "&": 206, "^": 207, "|": 208, "&&": 209, "||": 210, "??": 211, "!?": 212, RELATION: 213, "SPACE?": 214, COMPOUND_ASSIGN: 215 },
3002
- tokenNames: { 2: "error", 6: "TERMINATOR", 11: "STATEMENT", 34: "DEF", 36: "CALL_START", 38: "CALL_END", 41: "REACTIVE_ASSIGN", 42: "INDENT", 43: "OUTDENT", 44: "DERIVED_ASSIGN", 45: "READONLY_ASSIGN", 46: "EFFECT", 48: "RENDER", 49: "STYLE", 50: "COMPONENT", 54: "@", 55: "PROPERTY", 56: "?", 57: "=", 58: "...", 59: "IDENTIFIER", 62: "YIELD", 64: "FROM", 67: "NUMBER", 69: "STRING", 70: "STRING_START", 72: "STRING_END", 74: "INTERPOLATION_START", 75: "INTERPOLATION_END", 77: "REGEX", 78: "REGEX_START", 80: "REGEX_END", 82: ",", 84: "JS", 85: "UNDEFINED", 86: "NULL", 87: "BOOL", 88: "INFINITY", 89: "NAN", 93: ":", 96: "[", 97: "]", 102: "SUPER", 105: "DYNAMIC_IMPORT", 106: ".", 107: "?.", 108: "::", 109: "?::", 110: "INDEX_START", 111: "INDEX_END", 112: "INDEX_SOAK", 113: "RETURN", 114: "PARAM_START", 115: "PARAM_END", 116: "->", 117: "=>", 125: "ES6_OPTIONAL_INDEX", 129: "NEW_TARGET", 130: "IMPORT_META", 131: "{", 132: "FOR", 134: "FOROF", 135: "}", 136: "WHEN", 137: "OWN", 139: "CLASS", 140: "EXTENDS", 141: "IMPORT", 146: "AS", 147: "DEFAULT", 148: "IMPORT_ALL", 149: "EXPORT", 151: "EXPORT_ALL", 153: "ES6_OPTIONAL_CALL", 154: "FUNC_EXIST", 156: "THIS", 161: "..", 166: "TRY", 168: "FINALLY", 169: "CATCH", 170: "THROW", 171: "(", 172: ")", 174: "WHILE", 175: "UNTIL", 177: "LOOP", 178: "FORIN", 179: "BY", 180: "FORFROM", 181: "AWAIT", 183: "SWITCH", 185: "ELSE", 187: "LEADING_WHEN", 189: "IF", 191: "UNLESS", 192: "POST_IF", 193: "POST_UNLESS", 194: "UNARY", 195: "DO", 196: "DO_IIFE", 197: "UNARY_MATH", 198: "-", 199: "+", 200: "--", 201: "++", 202: "MATH", 203: "**", 204: "SHIFT", 205: "COMPARE", 206: "&", 207: "^", 208: "|", 209: "&&", 210: "||", 211: "??", 212: "!?", 213: "RELATION", 214: "SPACE?", 215: "COMPOUND_ASSIGN" },
2615
+ symbolIds: { $accept: 0, $end: 1, error: 2, Root: 3, Body: 4, Line: 5, TERMINATOR: 6, Expression: 7, ExpressionLine: 8, Statement: 9, Return: 10, STATEMENT: 11, Import: 12, Export: 13, Value: 14, Code: 15, Operation: 16, Assign: 17, ReactiveAssign: 18, ComputedAssign: 19, ReadonlyAssign: 20, ReactAssign: 21, If: 22, Try: 23, While: 24, For: 25, Switch: 26, Class: 27, Throw: 28, Yield: 29, Def: 30, DEF: 31, Identifier: 32, CALL_START: 33, ParamList: 34, CALL_END: 35, Block: 36, Assignable: 37, REACTIVE_ASSIGN: 38, INDENT: 39, OUTDENT: 40, COMPUTED_ASSIGN: 41, READONLY_ASSIGN: 42, REACT_ASSIGN: 43, CodeLine: 44, OperationLine: 45, YIELD: 46, Object: 47, FROM: 48, IDENTIFIER: 49, Property: 50, PROPERTY: 51, AlphaNumeric: 52, NUMBER: 53, String: 54, STRING: 55, STRING_START: 56, Interpolations: 57, STRING_END: 58, InterpolationChunk: 59, INTERPOLATION_START: 60, INTERPOLATION_END: 61, Regex: 62, REGEX: 63, REGEX_START: 64, Invocation: 65, REGEX_END: 66, RegexWithIndex: 67, ",": 68, Literal: 69, JS: 70, UNDEFINED: 71, NULL: 72, BOOL: 73, INFINITY: 74, NAN: 75, "=": 76, AssignObj: 77, ObjAssignable: 78, ObjRestValue: 79, ":": 80, SimpleObjAssignable: 81, ThisProperty: 82, "[": 83, "]": 84, "@": 85, "...": 86, ObjSpreadExpr: 87, Parenthetical: 88, Super: 89, This: 90, SUPER: 91, OptFuncExist: 92, Arguments: 93, DYNAMIC_IMPORT: 94, ".": 95, "?.": 96, "::": 97, "?::": 98, INDEX_START: 99, INDEX_END: 100, INDEX_SOAK: 101, RETURN: 102, PARAM_START: 103, PARAM_END: 104, FuncGlyph: 105, "->": 106, "=>": 107, OptComma: 108, Param: 109, ParamVar: 110, Array: 111, Splat: 112, SimpleAssignable: 113, Slice: 114, ES6_OPTIONAL_INDEX: 115, Range: 116, DoIife: 117, MetaProperty: 118, NEW_TARGET: 119, IMPORT_META: 120, "{": 121, FOR: 122, ForVariables: 123, FOROF: 124, "}": 125, WHEN: 126, OWN: 127, AssignList: 128, CLASS: 129, EXTENDS: 130, IMPORT: 131, ImportDefaultSpecifier: 132, ImportNamespaceSpecifier: 133, ImportSpecifierList: 134, ImportSpecifier: 135, AS: 136, DEFAULT: 137, IMPORT_ALL: 138, EXPORT: 139, ExportSpecifierList: 140, EXPORT_ALL: 141, ExportSpecifier: 142, ES6_OPTIONAL_CALL: 143, FUNC_EXIST: 144, ArgList: 145, THIS: 146, Elisions: 147, ArgElisionList: 148, OptElisions: 149, RangeDots: 150, "..": 151, Arg: 152, ArgElision: 153, Elision: 154, SimpleArgs: 155, TRY: 156, Catch: 157, FINALLY: 158, CATCH: 159, THROW: 160, "(": 161, ")": 162, WhileSource: 163, WHILE: 164, UNTIL: 165, Loop: 166, LOOP: 167, FORIN: 168, BY: 169, FORFROM: 170, AWAIT: 171, ForValue: 172, SWITCH: 173, Whens: 174, ELSE: 175, When: 176, LEADING_WHEN: 177, IfBlock: 178, IF: 179, UnlessBlock: 180, UNLESS: 181, POST_IF: 182, POST_UNLESS: 183, UNARY: 184, DO: 185, DO_IIFE: 186, UNARY_MATH: 187, "-": 188, "+": 189, "--": 190, "++": 191, "?": 192, MATH: 193, "**": 194, SHIFT: 195, COMPARE: 196, "&": 197, "^": 198, "|": 199, "&&": 200, "||": 201, "??": 202, "!?": 203, RELATION: 204, "SPACE?": 205, COMPOUND_ASSIGN: 206 },
2616
+ tokenNames: { 2: "error", 6: "TERMINATOR", 11: "STATEMENT", 31: "DEF", 33: "CALL_START", 35: "CALL_END", 38: "REACTIVE_ASSIGN", 39: "INDENT", 40: "OUTDENT", 41: "COMPUTED_ASSIGN", 42: "READONLY_ASSIGN", 43: "REACT_ASSIGN", 46: "YIELD", 48: "FROM", 49: "IDENTIFIER", 51: "PROPERTY", 53: "NUMBER", 55: "STRING", 56: "STRING_START", 58: "STRING_END", 60: "INTERPOLATION_START", 61: "INTERPOLATION_END", 63: "REGEX", 64: "REGEX_START", 66: "REGEX_END", 68: ",", 70: "JS", 71: "UNDEFINED", 72: "NULL", 73: "BOOL", 74: "INFINITY", 75: "NAN", 76: "=", 80: ":", 83: "[", 84: "]", 85: "@", 86: "...", 91: "SUPER", 94: "DYNAMIC_IMPORT", 95: ".", 96: "?.", 97: "::", 98: "?::", 99: "INDEX_START", 100: "INDEX_END", 101: "INDEX_SOAK", 102: "RETURN", 103: "PARAM_START", 104: "PARAM_END", 106: "->", 107: "=>", 115: "ES6_OPTIONAL_INDEX", 119: "NEW_TARGET", 120: "IMPORT_META", 121: "{", 122: "FOR", 124: "FOROF", 125: "}", 126: "WHEN", 127: "OWN", 129: "CLASS", 130: "EXTENDS", 131: "IMPORT", 136: "AS", 137: "DEFAULT", 138: "IMPORT_ALL", 139: "EXPORT", 141: "EXPORT_ALL", 143: "ES6_OPTIONAL_CALL", 144: "FUNC_EXIST", 146: "THIS", 151: "..", 156: "TRY", 158: "FINALLY", 159: "CATCH", 160: "THROW", 161: "(", 162: ")", 164: "WHILE", 165: "UNTIL", 167: "LOOP", 168: "FORIN", 169: "BY", 170: "FORFROM", 171: "AWAIT", 173: "SWITCH", 175: "ELSE", 177: "LEADING_WHEN", 179: "IF", 181: "UNLESS", 182: "POST_IF", 183: "POST_UNLESS", 184: "UNARY", 185: "DO", 186: "DO_IIFE", 187: "UNARY_MATH", 188: "-", 189: "+", 190: "--", 191: "++", 192: "?", 193: "MATH", 194: "**", 195: "SHIFT", 196: "COMPARE", 197: "&", 198: "^", 199: "|", 200: "&&", 201: "||", 202: "??", 203: "!?", 204: "RELATION", 205: "SPACE?", 206: "COMPOUND_ASSIGN" },
3003
2617
  parseTable: (() => {
3004
- let d = [107, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -1, 1, 2, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 1, 1, 0, 2, 1, 5, -2, 107, 5, 1, 5, 37, 32, 97, -3, -3, -3, -3, -3, 31, 1, 5, 32, 4, 1, 13, 19, 7, 15, 35, 40, 1, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -6, -6, -6, -6, -6, 108, -6, -6, -6, 127, -6, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 9, 1, 5, 32, 4, 1, 32, 7, 15, 75, -7, -7, -7, -7, -7, -7, -7, -7, -7, 14, 1, 5, 32, 4, 1, 32, 7, 15, 75, 1, 1, 1, 17, 1, -8, -8, -8, -8, -8, -8, -8, -8, -8, 130, 96, 97, 128, 129, 54, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 6, 3, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -13, -13, -263, -13, -13, -13, -13, -13, -263, -263, -13, -13, -13, -13, 131, 133, 134, 135, 136, 137, -13, 138, -13, 139, -13, -13, -13, -13, 132, 140, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 47, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, 141, 142, 143, 144, 145, -14, 146, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, 9, 1, 5, 32, 4, 1, 32, 7, 15, 75, -60, -60, -60, -60, -60, -60, -60, -60, -60, 9, 1, 5, 32, 4, 1, 32, 7, 15, 75, -61, -61, -61, -61, -61, -61, -61, -61, -61, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -186, -186, -186, -186, 148, -186, -186, 149, 150, -186, 147, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, -192, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, -193, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, 18, 6, 29, 2, 1, 4, 1, 11, 4, 1, 4, 19, 13, 1, 19, 4, 1, 1, 10, -140, 155, 151, -140, -140, -140, 159, 154, 104, 158, -140, 156, 160, -140, 152, 153, 157, 99, 106, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 2, 4, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 162, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 161, 33, 163, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 103, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 164, 165, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 103, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 167, 168, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 169, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 175, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 176, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 177, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 178, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 45, 14, 1, 20, 5, 7, 7, 5, 4, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 9, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 25, 15, 25, 180, 181, 92, 182, 171, 87, 104, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 170, 90, 91, 72, 179, 36, 38, 41, 88, 89, 99, 86, 82, 174, 45, 14, 1, 20, 5, 7, 7, 5, 4, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 9, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 25, 15, 25, 180, 181, 92, 182, 171, 87, 104, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 170, 90, 91, 72, 183, 36, 38, 41, 88, 89, 99, 86, 82, 174, 60, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, 184, 185, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, 186, 5, 39, 3, 5, 69, 1, 188, 163, 187, 90, 91, 2, 39, 3, 189, 163, 2, 39, 3, 190, 163, 2, 35, 24, 191, 104, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 5, 7, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, 192, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, 2, 39, 3, 193, 163, 2, 39, 3, 194, 163, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, 14, 35, 19, 5, 4, 32, 1, 24, 1, 5, 5, 2, 4, 44, 1, 155, 159, 104, 158, 156, 83, 200, 157, 198, 99, 195, 196, 197, 199, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 201, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 202, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 88, 1, 5, 8, 1, 20, 3, 1, 1, 2, 1, 4, 7, 2, 2, 1, 4, 3, 1, 1, 1, 1, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 4, 2, 1, 1, 2, 1, 1, 1, 3, 6, 3, 1, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 2, 1, 1, 4, 16, 5, 10, 1, 2, 1, 3, 1, 1, 12, 1, 3, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -210, -210, 180, 181, 92, -210, 203, 182, 163, -210, 171, 87, -210, -210, 104, 73, 74, 100, 101, 105, 106, -210, 76, 102, 103, 37, -210, 34, 75, 77, 78, 79, 80, 81, -210, 93, 83, -210, 35, 40, 39, 84, 85, -210, 170, -210, 90, 91, 72, 205, 36, 38, 41, 88, 89, 99, -210, -210, -210, -210, 204, 86, -210, 82, -210, -210, -210, -210, -210, -210, -210, -210, 174, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 206, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 207, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 137, 1, 5, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 1, 3, 1, 1, 1, 1, 4, 2, 2, 1, 3, 1, 1, 2, 1, 1, 1, 1, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 4, 2, 1, 1, 2, 1, 1, 1, 3, 6, 2, 1, 1, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 2, 1, 1, 3, 2, 8, 7, 5, 5, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -62, -62, 208, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, -62, 33, 209, -62, 53, 171, 54, 55, 56, 87, -62, -62, 104, 66, 73, 210, 74, 100, 101, 105, 106, -62, 76, 102, 103, 37, -62, 34, 75, 77, 78, 79, 80, 81, -62, 93, 83, -62, 35, 40, 39, 84, 85, -62, 69, 170, -62, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, -62, -62, -62, -62, 64, 70, 71, 86, -62, 59, 65, 82, -62, 60, -62, -62, 61, 98, -62, -62, -62, 49, 63, 57, 94, 58, 95, -62, -62, 172, 173, 174, 46, 47, 48, 50, 51, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, 2, 35, 24, 211, 104, 6, 15, 32, 13, 54, 2, 1, 213, 43, 212, 42, 90, 91, 111, 1, 5, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 1, 3, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 1, 1, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -131, -131, 214, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, -131, 33, 215, -131, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, -131, 76, 102, 103, 37, -131, 34, 75, 77, 78, 79, 80, 81, 93, 83, -131, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, -131, 60, -131, -131, 61, 98, 49, 63, 57, 94, 58, 95, -131, -131, 172, 173, 174, 46, 47, 48, 50, 51, 9, 35, 24, 9, 1, 1, 61, 11, 1, 5, 220, 104, 216, 105, 106, 219, 217, 218, 221, 9, 30, 3, 1, 1, 24, 72, 8, 8, 4, 223, 224, 67, 225, 104, 222, 64, 226, 227, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, -85, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, -87, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, -91, 106, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 228, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 229, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 113, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 1, 1, 4, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 230, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 236, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 237, 34, 75, 77, 78, 79, 80, 81, 93, 83, 231, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 232, 233, 238, 235, 234, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 4, 36, 68, 2, 4, 245, 242, 243, 244, 2, 36, 68, 245, 246, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, -267, 55, 1, 5, 30, 2, 4, 1, 12, 1, 2, 7, 4, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -268, -268, -268, -268, -268, -268, 248, -268, -268, 247, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, 1, 106, 249, 1, 106, 250, 54, 11, 23, 8, 4, 2, 1, 1, 4, 5, 3, 5, 2, 1, 7, 1, 6, 1, 1, 1, 1, 1, 7, 6, 3, 8, 1, 2, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, 54, 11, 23, 8, 4, 2, 1, 1, 4, 5, 3, 5, 2, 1, 7, 1, 6, 1, 1, 1, 1, 1, 7, 6, 3, 8, 1, 2, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 251, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 252, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 253, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 254, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 102, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 256, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 255, 33, 163, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 23, 6, 29, 7, 1, 11, 1, 3, 1, 6, 1, 1, 1, 1, 1, 12, 8, 1, 1, 2, 1, 1, 39, 3, -205, 264, -205, -205, 261, 248, 268, 104, 265, 262, 100, 101, 105, 106, -205, 263, 257, 267, 259, 266, 260, -205, 258, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, -70, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, 45, 14, 1, 20, 5, 7, 7, 5, 4, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 9, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 25, 15, 25, 180, 181, 92, 182, 171, 87, 104, 73, 74, 100, 101, 105, 106, 76, 102, 103, 269, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 170, 90, 91, 72, 270, 36, 38, 41, 88, 89, 99, 86, 82, 174, 63, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 6, 5, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 6, 7, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, 56, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 2, 2, 1, 5, 2, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, 6, 68, 1, 1, 1, 2, 1, 274, 105, 106, 271, 272, 273, 109, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 5, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 1, 1, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -5, 275, -5, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, -5, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, -5, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, -5, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 276, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 277, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 278, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 279, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 280, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 281, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 282, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 283, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 284, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 285, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 286, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 287, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 288, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 289, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 290, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 291, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 292, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, 14, 35, 19, 5, 4, 32, 1, 24, 1, 5, 5, 2, 4, 44, 1, 155, 159, 104, 158, 156, 83, 200, 157, 296, 99, 293, 294, 295, 199, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 297, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 298, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, 5, 36, 32, 1, 1, 34, 245, 299, 105, 106, 300, 2, 36, 68, 245, 301, 2, 55, 10, 248, 302, 2, 55, 10, 248, 303, 63, 1, 5, 30, 2, 3, 1, 1, 1, 1, 10, 1, 1, 1, 7, 4, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -160, -160, -160, -160, -160, -160, -160, -160, -160, 248, -160, -160, -160, 304, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, 63, 1, 5, 30, 2, 3, 1, 1, 1, 1, 10, 1, 1, 1, 7, 4, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -161, -161, -161, -161, -161, -161, -161, -161, -161, 248, -161, -161, -161, 305, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, 106, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 4, 1, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 1, 2, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 4, 1, 5, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 306, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 307, 53, 171, 54, 55, 56, 87, 313, 104, 66, 73, 74, 100, 101, 105, 106, 311, 102, 103, 37, 309, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 308, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 310, 312, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 110, 314, 1, 110, 315, 3, 36, 33, 1, -264, -264, -264, 2, 55, 10, 248, 316, 2, 55, 10, 248, 317, 63, 1, 5, 30, 2, 3, 1, 1, 1, 1, 10, 1, 1, 1, 7, 4, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -177, -177, -177, -177, -177, -177, -177, -177, -177, 248, -177, -177, -177, 318, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, 63, 1, 5, 30, 2, 3, 1, 1, 1, 1, 10, 1, 1, 1, 7, 4, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -178, -178, -178, -178, -178, -178, -178, -178, -178, 248, -178, -178, -178, 319, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 320, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 321, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 110, 322, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 324, 323, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 325, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 327, 326, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 328, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 330, 329, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 331, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 333, 332, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 334, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 9, 6, 32, 4, 1, 39, 15, 18, 3, 17, -138, -138, -138, -138, 336, -138, 335, 337, -138, 6, 6, 32, 4, 1, 39, 33, -141, -141, -141, -141, -141, -141, 7, 6, 32, 4, 1, 14, 25, 33, -145, -145, -145, -145, 338, -145, -145, 15, 6, 29, 3, 4, 1, 11, 5, 4, 19, 13, 1, 19, 5, 1, 10, -148, 155, -148, -148, -148, 159, 104, 158, -148, 156, 160, -148, 339, 157, 99, 10, 6, 32, 4, 1, 14, 25, 33, 19, 44, 2, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, 10, 6, 32, 4, 1, 14, 25, 33, 19, 44, 2, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, 10, 6, 32, 4, 1, 14, 25, 33, 19, 44, 2, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, 10, 6, 32, 4, 1, 14, 25, 33, 19, 44, 2, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, 2, 55, 10, 248, 247, 113, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 1, 1, 4, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 236, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 237, 34, 75, 77, 78, 79, 80, 81, 93, 83, 231, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 232, 233, 238, 235, 234, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, -133, 9, 1, 5, 32, 4, 1, 32, 7, 15, 75, -135, -135, -135, -135, -135, -135, -135, -135, -135, 106, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 342, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 341, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -381, -381, -381, -381, -381, 108, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, 126, -381, -381, -381, -381, -381, -381, 125, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, 120, 121, -381, -381, 9, 1, 5, 32, 4, 1, 32, 7, 15, 75, -378, -378, -378, -378, -378, -378, -378, -378, -378, 5, 173, 1, 1, 17, 1, 130, 96, 97, 128, 129, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -382, -382, -382, -382, -382, 108, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, 126, -382, -382, -382, -382, -382, -382, 125, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, 120, 121, -382, -382, 9, 1, 5, 32, 4, 1, 32, 7, 15, 75, -379, -379, -379, -379, -379, -379, -379, -379, -379, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -383, -383, -383, -383, -383, 108, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, 126, -383, -383, -383, -383, -383, -383, 125, -383, -383, -383, 112, -383, -383, -383, -383, -383, -383, -383, 120, 121, -383, -383, 18, 6, 29, 2, 1, 4, 1, 11, 4, 1, 4, 19, 13, 1, 19, 4, 1, 1, 10, -140, 155, 343, -140, -140, -140, 159, 154, 104, 158, -140, 156, 160, -140, 152, 153, 157, 99, 2, 39, 3, 161, 163, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 164, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 167, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 5, 15, 32, 67, 2, 1, 213, 171, 170, 90, 91, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -384, -384, -384, -384, -384, 108, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, 126, -384, -384, -384, -384, -384, -384, 125, -384, -384, -384, 112, -384, -384, -384, -384, -384, -384, -384, 120, 121, -384, -384, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -385, -385, -385, -385, -385, 108, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, 126, -385, -385, -385, -385, -385, -385, 125, -385, -385, -385, 112, -385, -385, -385, -385, -385, -385, -385, 120, 121, -385, -385, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -386, -386, -386, -386, -386, 108, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, 126, -386, -386, -386, -386, -386, -386, 125, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, 120, 121, -386, -386, 2, 63, 68, 344, 99, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -388, -388, -183, -388, -183, -388, -388, -183, -183, -388, -183, -388, -183, -183, -388, -388, -388, -388, -183, -183, -183, -183, -183, -388, -183, -388, -183, -388, -388, -388, -388, -183, -183, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, 13, 36, 33, 1, 33, 3, 1, 1, 1, 1, 2, 13, 28, 1, -263, -263, -263, 131, 133, 134, 135, 136, 137, 138, 139, 132, 140, 6, 106, 1, 1, 1, 1, 2, 141, 142, 143, 144, 145, 146, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -389, -389, -183, -389, -183, -389, -389, -183, -183, -389, -183, -389, -183, -183, -389, -389, -389, -389, -183, -183, -183, -183, -183, -389, -183, -389, -183, -389, -389, -389, -389, -183, -183, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 347, 345, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 346, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 2, 39, 3, 348, 163, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, 1, 42, 349, 3, 39, 3, 147, 350, 163, 351, 44, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 6, 1, 1, 3, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, 352, 353, 354, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, 3, 134, 44, 2, 356, 355, 357, 11, 35, 19, 5, 4, 32, 1, 24, 1, 10, 2, 49, 155, 159, 104, 158, 156, 160, 200, 157, 99, 358, 199, 11, 35, 19, 5, 4, 32, 1, 24, 1, 10, 2, 49, 155, 159, 104, 158, 156, 160, 200, 157, 99, 359, 199, 3, 39, 3, 137, 360, 163, 361, 4, 82, 52, 44, 2, 362, -357, -357, -357, 5, 57, 25, 52, 44, 2, 363, -355, -355, -355, -355, 23, 42, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 364, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 3, 184, 2, 1, 365, 366, 367, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 368, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 59, 1, 5, 30, 2, 1, 2, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -214, -214, -183, -214, 369, -183, 163, -214, -183, -183, -214, -183, -214, -183, -183, -214, -214, -214, -214, -183, -183, -183, -183, -183, -214, -183, -214, -183, -214, -214, -214, -214, 370, -183, -183, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -311, -311, -311, -311, -311, 108, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, 126, -311, -311, -311, -311, -311, -311, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 63, 68, 371, 99, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -63, -63, -63, -63, -63, 108, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, 126, -63, -63, -63, -63, -63, -63, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 63, 68, 372, 99, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 373, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 3, 36, 3, 3, 374, 375, 163, 9, 1, 5, 32, 4, 1, 32, 7, 15, 75, -380, -380, -380, -380, -380, -380, -380, -380, -380, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, -411, 31, 1, 5, 32, 4, 1, 13, 19, 7, 15, 35, 40, 1, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -129, -129, -129, -129, -129, 108, -129, -129, -129, 127, -129, 126, -129, -129, -129, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 63, 68, 376, 99, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, -218, 2, 64, 18, 377, 378, 1, 64, 379, 7, 35, 7, 17, 76, 9, 1, 2, 384, 383, 104, 380, 381, 382, 385, 2, 64, 18, -234, -234, 1, 146, 386, 7, 35, 7, 17, 76, 12, 3, 2, 391, 390, 104, 387, 392, 388, 389, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, 1, 57, 393, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 394, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 395, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 64, 396, 2, 6, 166, 107, 397, 105, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 398, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 31, 6, 32, 4, 1, 13, 2, 24, 15, 35, 28, 1, 12, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -285, -285, -285, -285, 108, 313, -285, -285, 127, 399, 312, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, -270, 109, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 6, 2, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 237, 34, 75, 77, 78, 79, 80, 81, 93, 83, 400, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 402, 401, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 9, 6, 32, 4, 1, 39, 15, 21, 17, 24, -138, -138, -138, -138, 404, -138, 405, -138, 403, 59, 6, 5, 23, 8, 1, 3, 2, 1, 1, 4, 4, 1, 3, 5, 2, 1, 7, 1, 4, 2, 1, 1, 1, 1, 1, 7, 1, 5, 3, 8, 1, 2, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, 406, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, 5, 6, 36, 1, 39, 15, -289, -289, -289, -289, -289, 112, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 1, 1, 4, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 236, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 237, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 408, 407, 238, 235, 234, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 59, 6, 5, 23, 8, 1, 3, 2, 1, 1, 4, 4, 1, 3, 5, 2, 1, 7, 1, 4, 2, 1, 1, 1, 1, 1, 7, 1, 5, 3, 8, 1, 2, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, 5, 6, 36, 1, 39, 15, -294, -294, -294, -294, -294, 6, 6, 32, 4, 1, 39, 15, -286, -286, -286, -286, -286, -286, 6, 6, 32, 4, 1, 39, 15, -287, -287, -287, -287, -287, -287, 106, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 1, 3, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -288, 409, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, -288, 33, -288, -288, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, -288, 34, 75, 77, 78, 79, 80, 81, 93, 83, -288, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 54, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 5, 2, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, 2, 55, 10, 248, 410, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 411, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 412, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 109, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 4, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 6, 1, 6, 4, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 413, 33, 416, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 414, 86, 415, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 54, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 5, 2, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, -269, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, 2, 55, 10, 248, 417, 2, 55, 10, 248, 418, 24, 39, 3, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 419, 163, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 39, 3, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 420, 163, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -315, -315, -315, -315, -315, 108, -315, -315, -315, -315, -315, -315, -315, 127, -315, -315, 421, -315, -315, 126, 96, 97, -315, -315, -315, -315, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -317, -317, -317, -317, -317, 108, -317, -317, -317, -317, -317, -317, -317, 127, -317, -317, 422, -317, -317, 126, 96, 97, -317, -317, -317, -317, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -324, -324, -324, -324, -324, 108, -324, -324, -324, -324, -324, -324, -324, 127, -324, -324, -324, -324, -324, 126, 96, 97, -324, -324, -324, -324, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 6, 6, 36, 1, 39, 11, 42, -95, -95, -95, -95, 423, -95, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 425, -138, 424, -138, 7, 6, 36, 1, 14, 25, 11, 42, -104, -104, -104, 426, -104, -104, -104, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 427, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 3, 55, 10, 31, 248, 247, 428, 6, 6, 36, 1, 39, 11, 42, -107, -107, -107, -107, -107, -107, 5, 6, 36, 1, 39, 53, -206, -206, -206, -206, -206, 15, 6, 30, 6, 1, 14, 25, 11, 13, 1, 1, 1, 1, 2, 23, 19, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, 15, 6, 30, 6, 1, 14, 25, 11, 13, 1, 1, 1, 1, 2, 23, 19, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, 15, 6, 30, 6, 1, 14, 25, 11, 13, 1, 1, 1, 1, 2, 23, 19, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, 5, 6, 36, 1, 39, 53, -96, -96, -96, -96, -96, 17, 35, 19, 1, 4, 4, 2, 29, 1, 3, 1, 1, 1, 1, 3, 26, 25, 15, 264, 87, 248, 104, 431, 265, 429, 266, 430, 432, 433, 434, 435, 436, 99, 86, 82, 54, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 5, 2, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, 437, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, 6, 68, 1, 1, 2, 1, 1, 274, 105, 106, 438, 439, 273, 4, 69, 1, 2, 2, -74, -74, -74, -74, 107, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 5, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 440, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 441, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 442, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 4, 69, 1, 2, 2, -79, -79, -79, -79, 5, 1, 5, 37, 32, 97, -4, -4, -4, -4, -4, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -393, -393, -393, -393, -393, 108, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, 126, -393, -393, -393, -393, -393, -393, 125, -393, -393, 111, 112, -393, -393, -393, -393, -393, -393, -393, 120, 121, -393, -393, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -394, -394, -394, -394, -394, 108, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, 126, -394, -394, -394, -394, -394, -394, 125, -394, -394, 111, 112, -394, -394, -394, -394, -394, -394, -394, 120, 121, -394, -394, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -395, -395, -395, -395, -395, 108, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, 126, -395, -395, -395, -395, -395, -395, 125, -395, -395, -395, 112, -395, -395, -395, -395, -395, -395, -395, 120, 121, -395, -395, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -396, -396, -396, -396, -396, 108, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, 126, -396, -396, -396, -396, -396, -396, 125, -396, -396, -396, 112, -396, -396, -396, -396, -396, -396, -396, 120, 121, -396, -396, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -397, -397, -397, -397, -397, 108, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, 126, -397, -397, -397, -397, -397, -397, 125, 110, 109, 111, 112, -397, -397, -397, -397, -397, -397, -397, 120, 121, -397, -397, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -398, -398, -398, -398, -398, 108, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, 126, -398, -398, -398, -398, -398, -398, 125, 110, 109, 111, 112, 113, -398, -398, -398, -398, -398, -398, 120, 121, 122, -398, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -399, -399, -399, -399, -399, 108, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, 126, -399, -399, -399, -399, -399, -399, 125, 110, 109, 111, 112, 113, 114, -399, -399, -399, -399, -399, 120, 121, 122, -399, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -400, -400, -400, -400, -400, 108, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, 126, -400, -400, -400, -400, -400, -400, 125, 110, 109, 111, 112, 113, 114, 115, -400, -400, -400, -400, 120, 121, 122, -400, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -401, -401, -401, -401, -401, 108, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, 126, -401, -401, -401, -401, -401, -401, 125, 110, 109, 111, 112, 113, 114, 115, 116, -401, -401, -401, 120, 121, 122, -401, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -402, -402, -402, -402, -402, 108, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, 126, -402, -402, -402, -402, -402, -402, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, -402, -402, 120, 121, 122, -402, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -403, -403, -403, -403, -403, 108, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, 126, -403, -403, -403, -403, -403, -403, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, -403, 120, 121, 122, -403, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -404, -404, -404, -404, -404, 108, -404, -404, -404, -404, -404, -404, -404, 127, -404, -404, -404, -404, -404, 126, 96, 97, -404, -404, -404, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -405, -405, -405, -405, -405, 108, -405, -405, -405, -405, -405, -405, -405, 127, -405, -405, -405, -405, -405, 126, 96, 97, -405, -405, -405, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -406, -406, -406, -406, -406, 108, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, 126, -406, -406, -406, -406, -406, -406, 125, 110, 109, 111, 112, 113, -406, -406, -406, -406, -406, -406, 120, 121, -406, -406, 23, 56, 37, 39, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 443, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -375, -375, -375, -375, -375, 108, -375, -375, -375, -375, -375, -375, -375, 127, -375, -375, -375, -375, -375, 126, 96, 97, -375, -375, -375, -375, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -377, -377, -377, -377, -377, 108, -377, -377, -377, -377, -377, -377, -377, 127, -377, -377, -377, -377, -377, 126, 96, 97, -377, -377, -377, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 3, 134, 44, 2, 445, 444, 446, 11, 35, 19, 5, 4, 32, 1, 24, 1, 10, 2, 49, 155, 159, 104, 158, 156, 160, 200, 157, 99, 447, 199, 11, 35, 19, 5, 4, 32, 1, 24, 1, 10, 2, 49, 155, 159, 104, 158, 156, 160, 200, 157, 99, 448, 199, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, 449, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -374, -374, -374, -374, -374, 108, -374, -374, -374, -374, -374, -374, -374, 127, -374, -374, -374, -374, -374, 126, 96, 97, -374, -374, -374, -374, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -376, -376, -376, -376, -376, 108, -376, -376, -376, -376, -376, -376, -376, 127, -376, -376, -376, -376, -376, 126, 96, 97, -376, -376, -376, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 54, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 5, 2, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, 54, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 5, 2, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, 54, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 5, 2, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, 26, 56, 2, 53, 21, 28, 1, 12, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 313, 450, 127, 451, 312, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 104, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 4, 1, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 1, 2, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 4, 1, 5, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 452, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 313, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 453, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 310, 312, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 111, 454, 1, 111, 455, 102, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 6, 2, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 456, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, -279, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, -279, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, 457, -86, -86, -86, -86, -86, -86, -86, -83, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, 55, 11, 23, 9, 3, 2, 1, 1, 4, 5, 3, 5, 2, 1, 7, 1, 6, 1, 1, 1, 1, 1, 7, 6, 3, 6, 2, 1, 2, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, -273, 55, 11, 23, 9, 3, 2, 1, 1, 4, 5, 3, 5, 2, 1, 7, 1, 6, 1, 1, 1, 1, 1, 7, 6, 3, 6, 2, 1, 2, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, -274, 105, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 4, 1, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 1, 2, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 4, 1, 5, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 458, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 459, 53, 171, 54, 55, 56, 87, 313, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 460, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 310, 312, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 461, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 462, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, 23, 56, 55, 21, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 463, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 464, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 465, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 466, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -92, -92, -92, -92, -92, 108, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, 126, -92, -92, -92, -92, -92, -92, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 467, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 468, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -35, -35, -35, -35, -35, 108, -35, -35, -35, -35, -35, -35, -35, 127, -35, -35, -35, -35, -35, 126, 96, 97, -35, -35, -35, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 469, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 470, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -38, -38, -38, -38, -38, 108, -38, -38, -38, -38, -38, -38, -38, 127, -38, -38, -38, -38, -38, 126, 96, 97, -38, -38, -38, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 471, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 472, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -41, -41, -41, -41, -41, 108, -41, -41, -41, -41, -41, -41, -41, 127, -41, -41, -41, -41, -41, 126, 96, 97, -41, -41, -41, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 473, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 474, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 3, 47, 69, 1, 475, 90, 91, 17, 6, 29, 3, 4, 1, 11, 4, 1, 4, 32, 1, 1, 22, 1, 1, 10, 4, -139, 155, -139, -139, -139, 159, 154, 104, 158, 156, 160, -139, 476, 153, 157, 99, -139, 2, 6, 36, 477, 478, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 479, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 6, 6, 32, 4, 1, 39, 33, -147, -147, -147, -147, -147, -147, 28, 6, 32, 4, 1, 13, 26, 15, 35, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -285, -285, -285, -285, 108, -285, -285, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 57, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 7, 1, 3, 2, 1, 3, 1, 1, 5, 2, 5, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, -66, 2, 6, 37, 107, 480, 9, 6, 32, 4, 1, 39, 15, 18, 3, 17, -138, -138, -138, -138, 336, -138, 481, 337, -138, 1, 43, 482, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -408, -408, -408, -408, -408, 108, -408, -408, -408, -408, -408, -408, -408, -408, -408, -408, -408, -408, -408, 126, -408, -408, -408, -408, -408, -408, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 483, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 484, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, 106, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 487, 488, 489, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 43, 54, 55, 56, 485, 486, 490, 491, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 492, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 7, 4, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, 493, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, 2, 39, 3, 494, 163, 6, 35, 4, 3, 17, 4, 68, 495, 497, 163, 104, 496, 99, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 498, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 499, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 500, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 134, 501, 1, 180, 502, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 503, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 10, 35, 19, 5, 4, 32, 1, 24, 1, 10, 51, 155, 159, 104, 158, 156, 160, 200, 157, 99, 504, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 505, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 3, 184, 2, 1, 506, 366, 367, 4, 43, 142, 1, 1, 507, 508, 509, 367, 3, 43, 142, 2, -363, -363, -363, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 9, 1, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 511, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 510, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 43, 1, 5, 32, 1, 3, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -212, -212, -212, 512, 163, -212, 108, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, 126, -212, -212, -212, -212, -212, -212, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 513, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 43, 514, 1, 43, 515, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -65, -65, -65, -65, -65, 108, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, 126, -65, -65, -65, -65, -65, -65, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 18, 6, 29, 2, 1, 4, 1, 11, 4, 1, 4, 19, 13, 1, 19, 4, 1, 1, 10, -140, 155, 516, -140, -140, -140, 159, 154, 104, 158, -140, 156, 160, -140, 152, 153, 157, 99, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, 1, 43, 517, 3, 68, 1, 1, 518, 105, 106, 3, 131, 12, 5, 520, 519, 221, 3, 68, 1, 1, 521, 105, 106, 1, 64, 522, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 524, -138, 523, -138, 5, 6, 36, 1, 39, 53, -225, -225, -225, -225, -225, 6, 35, 7, 17, 85, 1, 2, 384, 383, 104, 525, 382, 385, 6, 6, 36, 1, 39, 53, 11, -230, -230, -230, -230, -230, 526, 6, 6, 36, 1, 39, 53, 11, -232, -232, -232, -232, -232, 527, 2, 35, 24, 528, 104, 14, 1, 5, 32, 4, 1, 21, 11, 7, 15, 75, 2, 1, 17, 1, -236, -236, -236, -236, -236, 529, -236, -236, -236, -236, -236, -236, -236, -236, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 531, -138, 530, -138, 5, 6, 36, 1, 39, 53, -248, -248, -248, -248, -248, 6, 35, 7, 17, 88, 3, 2, 391, 390, 104, 392, 532, 389, 6, 6, 36, 1, 39, 53, 11, -253, -253, -253, -253, -253, 533, 6, 6, 36, 1, 39, 53, 11, -256, -256, -256, -256, -256, 534, 102, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 536, 535, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 537, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 31, 1, 5, 32, 4, 1, 13, 19, 7, 15, 35, 40, 1, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -243, -243, -243, -243, -243, 108, -243, -243, -243, 127, -243, 126, 96, 97, -243, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 63, 68, 538, 99, 3, 68, 1, 1, 539, 105, 106, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, 2, 6, 37, 107, 540, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 541, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, 59, 6, 5, 23, 8, 1, 3, 2, 1, 1, 4, 4, 1, 3, 5, 2, 1, 7, 1, 4, 2, 1, 1, 1, 1, 1, 7, 1, 5, 3, 8, 1, 2, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, 406, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, 5, 6, 36, 1, 39, 15, -295, -295, -295, -295, -295, 2, 42, 55, 543, 542, 116, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 1, 3, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 4, 2, 8, 7, 1, 5, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -139, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, -139, 33, -139, -139, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 237, 34, 75, 77, 78, 79, 80, 81, 93, 83, -139, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, -139, 64, 70, 71, 86, 545, 238, 544, 234, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 4, 6, 36, 1, 54, 546, -296, -296, -296, 59, 6, 5, 23, 8, 1, 3, 2, 1, 1, 4, 4, 1, 3, 5, 2, 1, 7, 1, 4, 2, 1, 1, 1, 1, 1, 7, 1, 5, 3, 8, 1, 2, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, 9, 6, 32, 4, 1, 39, 15, 21, 17, 24, -138, -138, -138, -138, 404, -138, 405, -138, 547, 108, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 6, 2, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 237, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 402, 401, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 28, 6, 32, 4, 1, 13, 26, 15, 35, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -153, -153, -153, -153, 108, -153, -153, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, -195, 23, 56, 55, 21, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 548, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 549, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 54, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 5, 2, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, -265, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 551, -138, 550, -138, 5, 6, 32, 4, 1, 39, -280, -280, -280, -280, -280, 108, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 6, 1, 6, 4, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 416, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 552, 86, 415, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 5, 7, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, -367, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 5, 7, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, 553, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 554, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 555, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 556, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 557, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 3, 6, 36, 93, 559, 560, 558, 23, 6, 29, 3, 4, 1, 11, 1, 3, 1, 6, 1, 1, 1, 1, 1, 20, 1, 1, 2, 1, 1, 1, 38, -139, 264, -139, -139, -139, 261, 248, 268, 104, 265, 262, 100, 101, 105, 106, 561, 562, 267, 259, 266, 260, -139, -139, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 563, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 564, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 23, 56, 41, 35, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 565, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 566, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 16, 6, 30, 6, 1, 26, 1, 12, 21, 3, 1, 1, 1, 1, 2, 23, 19, -108, -110, -108, -108, -263, -263, -108, 567, -110, -110, -110, -110, -110, -110, -108, 140, 16, 6, 30, 6, 1, 26, 1, 12, 21, 3, 1, 1, 1, 1, 2, 23, 19, -109, -263, -109, -109, -263, -263, -109, 568, 569, 570, 571, 572, 573, 574, -109, 140, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, 7, 36, 33, 1, 33, 3, 4, 44, -263, -263, -263, 575, 243, 244, 140, 2, 36, 68, 245, 576, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, 56, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 2, 2, 1, 5, 2, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, 4, 69, 1, 2, 2, -75, -75, -75, -75, 2, 6, 69, 107, 577, 105, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 578, 3, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 4, 69, 1, 2, 2, -78, -78, -78, -78, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 579, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 580, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 581, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 582, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 134, 583, 1, 180, 584, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 585, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, 102, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 6, 2, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 586, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, -277, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, -277, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 26, 43, 13, 2, 74, 28, 1, 12, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 587, 108, 313, 127, 451, 312, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 1, 43, 588, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, 24, 43, 13, 55, 21, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -278, 108, -278, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 589, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 26, 56, 2, 53, 21, 28, 1, 12, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 313, 590, 127, 451, 312, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 104, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 4, 1, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 1, 2, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 4, 1, 5, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 591, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 313, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 592, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 310, 312, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 111, 593, 23, 56, 55, 21, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 594, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 595, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 596, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 56, 55, 21, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 597, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 598, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -93, -93, -93, -93, -93, 108, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, 126, -93, -93, -93, -93, -93, -93, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 599, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -36, -36, -36, -36, -36, 108, -36, -36, -36, -36, -36, -36, -36, 127, -36, -36, -36, -36, -36, 126, 96, 97, -36, -36, -36, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 600, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -39, -39, -39, -39, -39, 108, -39, -39, -39, -39, -39, -39, -39, 127, -39, -39, -39, -39, -39, 126, 96, 97, -39, -39, -39, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 601, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -42, -42, -42, -42, -42, 108, -42, -42, -42, -42, -42, -42, -42, 127, -42, -42, -42, -42, -42, 126, 96, 97, -42, -42, -42, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 602, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 106, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 2, 4, 1, 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 604, 4, 5, 6, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 603, 33, 163, 53, 43, 54, 55, 56, 87, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 6, 6, 32, 4, 1, 39, 33, -142, -142, -142, -142, -142, -142, 11, 35, 19, 4, 1, 4, 32, 1, 23, 1, 1, 10, 155, 159, 154, 104, 158, 156, 160, 605, 153, 157, 99, 18, 6, 29, 2, 1, 4, 1, 11, 4, 1, 4, 19, 13, 1, 19, 4, 1, 1, 10, -140, 155, 606, -140, -140, -140, 159, 154, 104, 158, -140, 156, 160, -140, 152, 153, 157, 99, 28, 6, 32, 4, 1, 13, 26, 33, 17, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -146, -146, -146, -146, 108, -146, -146, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 57, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 7, 1, 3, 2, 1, 3, 1, 1, 5, 2, 5, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, 3, 47, 69, 1, 607, 90, 91, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 608, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -410, -410, -410, -410, -410, 108, -410, -410, -410, -410, -410, -410, -410, -410, -410, -410, -410, -410, -410, 126, -410, -410, -410, -410, -410, -410, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 6, 37, 610, 609, 2, 6, 37, -49, -49, 24, 6, 37, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -52, -52, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 6, 37, -53, -53, 7, 6, 37, 130, 1, 1, 17, 1, -54, -54, 130, 96, 97, 128, 129, 2, 6, 37, -55, -55, 55, 1, 5, 30, 2, 4, 1, 12, 1, 2, 7, 4, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -268, -268, -268, -268, -268, -268, 611, -268, 612, 247, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, -268, 24, 39, 3, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 613, 163, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 39, 3, 614, 163, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, 2, 39, 3, 615, 163, 2, 39, 3, 616, 163, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 7, 4, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, 26, 39, 3, 14, 76, 4, 37, 1, 1, 4, 13, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 617, 163, 108, 127, 618, 126, 96, 97, 619, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 25, 39, 3, 14, 76, 4, 37, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 620, 163, 108, 127, 621, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 25, 39, 3, 14, 76, 4, 37, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 622, 163, 108, 127, 623, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 624, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 625, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 24, 39, 3, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 626, 163, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 3, 134, 44, 2, -358, -358, -358, 26, 56, 26, 50, 2, 39, 1, 1, 3, 2, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, -356, 127, -356, 126, 96, 97, -356, -356, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 4, 43, 142, 1, 1, 627, 628, 509, 367, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, 2, 39, 3, 629, 163, 3, 43, 142, 2, -364, -364, -364, 3, 39, 3, 40, 630, 163, 631, 24, 42, 14, 26, 50, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -302, 108, -302, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, 43, 1, 5, 32, 1, 3, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -216, -216, -216, 632, 163, -216, 108, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, 126, -216, -216, -216, -216, -216, -216, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, 633, -138, -138, 336, -138, 337, -138, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, -130, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, 1, 64, 634, 6, 35, 7, 17, 85, 1, 2, 384, 383, 104, 635, 382, 385, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, 3, 68, 1, 1, 636, 105, 106, 3, 6, 36, 93, 638, 639, 637, 10, 6, 29, 3, 4, 1, 16, 38, 38, 10, 2, -139, 384, -139, -139, -139, 104, -139, -139, 640, 385, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 524, -138, 641, -138, 2, 35, 24, 642, 104, 2, 35, 24, 643, 104, 1, 64, -235, 3, 68, 1, 1, 644, 105, 106, 3, 6, 36, 93, 646, 647, 645, 10, 6, 29, 3, 4, 1, 16, 38, 38, 12, 5, -139, 391, -139, -139, -139, 104, -139, -139, 392, 648, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 531, -138, 649, -138, 3, 35, 24, 88, 650, 104, 651, 2, 35, 24, 652, 104, 31, 1, 5, 32, 4, 1, 13, 19, 7, 15, 35, 40, 1, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -240, -240, -240, -240, -240, 108, -240, -240, -240, 127, -240, 126, -240, -240, -240, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 653, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 654, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 43, 655, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, 1, 172, 656, 23, 56, 41, 35, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 657, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, -272, 112, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 1, 1, 4, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 236, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 237, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 408, 658, 238, 235, 234, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 5, 6, 36, 1, 39, 15, -290, -290, -290, -290, -290, 111, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 1, 3, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 6, 2, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, -297, -297, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 237, 34, 75, 77, 78, 79, 80, 81, 93, 83, -297, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 402, 401, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 110, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 1, 5, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 237, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 408, 238, 659, 234, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 2, 42, 1, 543, 660, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, -196, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 661, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 3, 6, 32, 4, 663, 662, 664, 112, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 1, 3, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 4, 2, 8, 7, 6, 4, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -139, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, -139, 33, -139, -139, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, -139, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, -139, 64, 70, 71, 86, 665, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 551, -138, 666, -138, 2, 39, 3, 667, 163, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -316, -316, -316, -316, -316, 108, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, 126, -316, -316, -316, -316, -316, -316, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -318, -318, -318, -318, -318, 108, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, 126, -318, -318, -318, -318, -318, -318, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 27, 6, 36, 1, 13, 26, 50, 3, 38, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -97, -97, -97, 108, -97, 668, -97, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 669, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, 17, 35, 19, 1, 3, 1, 6, 1, 1, 1, 1, 1, 20, 1, 1, 2, 1, 1, 264, 261, 248, 268, 104, 265, 262, 100, 101, 105, 106, 670, 562, 267, 259, 266, 260, 23, 6, 29, 7, 1, 11, 1, 3, 1, 6, 1, 1, 1, 1, 1, 12, 8, 1, 1, 2, 1, 1, 39, 3, -205, 264, -205, -205, 261, 248, 268, 104, 265, 262, 100, 101, 105, 106, -205, 263, 562, 267, 259, 266, 260, -205, 671, 5, 6, 36, 1, 39, 53, -207, -207, -207, -207, -207, 6, 6, 36, 1, 39, 11, 42, -95, -95, -95, -95, 672, -95, 27, 6, 36, 1, 13, 26, 50, 3, 38, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -99, -99, -99, 108, -99, 127, -99, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 673, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 6, 6, 36, 1, 39, 11, 42, -105, -105, -105, -105, -105, -105, 23, 56, 41, 35, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 674, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 36, 68, 245, 675, 2, 36, 68, 245, 676, 2, 55, 10, 248, 677, 2, 55, 10, 248, 678, 15, 6, 30, 6, 1, 12, 10, 17, 24, 1, 1, 1, 1, 2, 23, 19, -123, -123, -123, -123, 248, 679, -123, -123, -123, -123, -123, -123, -123, -123, -123, 15, 6, 30, 6, 1, 12, 10, 17, 24, 1, 1, 1, 1, 2, 23, 19, -124, -124, -124, -124, 248, 680, -124, -124, -124, -124, -124, -124, -124, -124, -124, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 681, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 682, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 110, 683, 2, 36, 68, 245, 684, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, 4, 69, 1, 2, 2, -76, -76, -76, -76, 2, 6, 37, 107, 685, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -407, -407, -407, -407, -407, 108, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, 126, -407, -407, -407, -407, -407, -407, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -340, -340, -340, -340, -340, 108, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, 686, -340, -340, 126, -340, -340, -340, 687, -340, -340, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -345, -345, -345, -345, -345, 108, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 688, -345, -345, 126, -345, -345, -345, -345, -345, -345, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -349, -349, -349, -349, -349, 108, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, 689, -349, -349, 126, -349, -349, -349, -349, -349, -349, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 690, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 691, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -354, -354, -354, -354, -354, 108, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, 126, -354, -354, -354, -354, -354, -354, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 43, 13, 55, 21, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -276, 108, -276, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 1, 111, 692, 1, 111, 693, 23, 56, 55, 21, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, -82, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, 26, 43, 13, 2, 74, 28, 1, 12, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 694, 108, 313, 127, 451, 312, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 1, 43, 695, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 696, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 1, 111, 697, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 698, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, -132, 9, 1, 5, 32, 4, 1, 32, 7, 15, 75, -134, -134, -134, -134, -134, -134, -134, -134, -134, 6, 6, 32, 4, 1, 39, 33, -143, -143, -143, -143, -143, -143, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 336, -138, 699, -138, 2, 39, 3, 603, 163, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, -409, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, 107, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 1, 1, 1, 1, 2, 1, 1, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -51, 487, 488, 489, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, -51, 53, 43, 54, 55, 56, 700, 490, 491, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -69, -56, -69, -69, -69, -69, -56, -69, -69, 701, 702, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, -69, 1, 59, 703, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 5, 7, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 7, 4, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 7, 4, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 704, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 705, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 706, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 707, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 25, 39, 3, 14, 76, 4, 37, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 708, 163, 108, 127, 709, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 25, 39, 3, 14, 76, 4, 37, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 710, 163, 108, 127, 711, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, 2, 39, 3, 712, 163, 1, 43, 713, 4, 6, 37, 142, 2, 714, -365, -365, -365, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 715, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, 2, 39, 3, 716, 163, 3, 68, 1, 1, 717, 105, 106, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 524, -138, 718, -138, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, 1, 64, 719, 4, 35, 24, 86, 2, 384, 104, 720, 385, 6, 35, 7, 17, 85, 1, 2, 384, 383, 104, 721, 382, 385, 5, 6, 36, 1, 39, 53, -226, -226, -226, -226, -226, 3, 6, 36, 1, 638, 639, 722, 5, 6, 36, 1, 39, 53, -231, -231, -231, -231, -231, 5, 6, 36, 1, 39, 53, -233, -233, -233, -233, -233, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, 14, 1, 5, 32, 4, 1, 21, 11, 7, 15, 75, 2, 1, 17, 1, -237, -237, -237, -237, -237, 723, -237, -237, -237, -237, -237, -237, -237, -237, 4, 35, 24, 88, 5, 391, 104, 392, 724, 6, 35, 7, 17, 88, 3, 2, 391, 390, 104, 392, 725, 389, 5, 6, 36, 1, 39, 53, -249, -249, -249, -249, -249, 3, 6, 36, 1, 646, 647, 726, 5, 6, 36, 1, 39, 53, -254, -254, -254, -254, -254, 5, 6, 36, 1, 39, 53, -255, -255, -255, -255, -255, 5, 6, 36, 1, 39, 53, -257, -257, -257, -257, -257, 31, 1, 5, 32, 4, 1, 13, 19, 7, 15, 35, 40, 1, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -241, -241, -241, -241, -241, 108, -241, -241, -241, 127, -241, 126, -241, -241, -241, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 727, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, -275, 9, 6, 32, 4, 1, 39, 15, 21, 17, 24, -138, -138, -138, -138, 404, -138, 405, -138, 728, 5, 6, 36, 1, 39, 15, -291, -291, -291, -291, -291, 5, 6, 36, 1, 39, 15, -292, -292, -292, -292, -292, 1, 111, 729, 54, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 5, 2, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, -266, 106, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 6, 4, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 730, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 108, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 6, 1, 6, 4, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 340, 239, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 416, 53, 43, 54, 55, 56, 87, 241, 104, 27, 28, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 42, 90, 91, 72, 240, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 731, 86, 415, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 44, 45, 68, 46, 47, 48, 50, 51, 5, 6, 32, 4, 1, 39, -281, -281, -281, -281, -281, 3, 6, 36, 1, 663, 664, 732, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, 14, 35, 19, 5, 4, 32, 1, 24, 1, 5, 5, 2, 4, 44, 1, 155, 159, 104, 158, 156, 83, 200, 157, 296, 99, 733, 734, 295, 199, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 735, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 5, 6, 36, 1, 39, 53, -208, -208, -208, -208, -208, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 425, -138, 736, -138, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 737, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 557, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 738, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 6, 6, 36, 1, 39, 11, 42, -106, -106, -106, -106, -106, -106, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -118, -118, -118, -118, -118, -118, -118, -118, -118, -118, -118, -118, -118, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, 23, 56, 55, 21, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 739, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 740, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 101, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 741, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 742, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, 1, 75, 743, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 744, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 745, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 746, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 747, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -347, -347, -347, -347, -347, 108, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, 748, -347, -347, 126, -347, -347, -347, -347, -347, -347, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -351, -351, -351, -351, -351, 108, -351, -351, -351, -351, -351, -351, -351, -351, -351, -351, 749, -351, -351, 126, -351, -351, -351, -351, -351, -351, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, 1, 111, 750, 1, 111, 751, 1, 111, 752, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, 1, 111, 753, 3, 6, 36, 1, 477, 478, 754, 2, 6, 37, -50, -50, 2, 6, 37, -57, -57, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 755, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 2, 6, 37, -59, -59, 25, 39, 3, 14, 76, 41, 1, 1, 4, 13, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 756, 163, 108, 127, 126, 96, 97, 757, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 25, 39, 3, 14, 76, 4, 37, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 758, 163, 108, 127, 759, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 39, 3, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 760, 163, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 39, 3, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 761, 163, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 762, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 763, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 43, 764, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, 3, 43, 142, 2, -366, -366, -366, 24, 42, 14, 26, 50, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -303, 108, -303, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, 3, 6, 36, 93, 638, 639, 765, 3, 68, 1, 1, 766, 105, 106, 5, 6, 36, 1, 39, 53, -227, -227, -227, -227, -227, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 524, -138, 767, -138, 5, 6, 36, 1, 39, 53, -228, -228, -228, -228, -228, 3, 68, 1, 1, 768, 105, 106, 5, 6, 36, 1, 39, 53, -250, -250, -250, -250, -250, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 531, -138, 769, -138, 5, 6, 36, 1, 39, 53, -251, -251, -251, -251, -251, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, 2, 42, 1, 543, 770, 53, 1, 5, 30, 2, 4, 1, 13, 2, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, 5, 6, 32, 4, 1, 39, -282, -282, -282, -282, -282, 8, 6, 32, 4, 1, 39, 15, 21, 17, -138, -138, -138, -138, 551, -138, 771, -138, 5, 6, 32, 4, 1, 39, -283, -283, -283, -283, -283, 3, 134, 44, 2, 772, 444, 446, 11, 35, 19, 5, 4, 32, 1, 24, 1, 10, 2, 49, 155, 159, 104, 158, 156, 160, 200, 157, 99, 773, 199, 5, 6, 36, 1, 39, 53, -98, -98, -98, -98, -98, 3, 6, 36, 1, 559, 560, 774, 27, 6, 36, 1, 13, 26, 50, 3, 38, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -97, -97, -97, 108, -97, 127, -97, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 5, 6, 36, 1, 39, 53, -100, -100, -100, -100, -100, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, -125, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 775, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 56, 55, 21, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 108, 776, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 777, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 4, 69, 1, 2, 2, -77, -77, -77, -77, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -341, -341, -341, -341, -341, 108, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, 126, -341, -341, -341, 778, -341, -341, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -342, -342, -342, -342, -342, 108, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, 779, -342, -342, 126, -342, -342, -342, -342, -342, -342, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -346, -346, -346, -346, -346, 108, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, 126, -346, -346, -346, -346, -346, -346, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -350, -350, -350, -350, -350, 108, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, 126, -350, -350, -350, -350, -350, -350, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 780, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 781, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, 61, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, 6, 6, 32, 4, 1, 39, 33, -144, -144, -144, -144, -144, -144, 24, 6, 37, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -58, -58, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 782, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 783, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, 24, 39, 3, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 784, 163, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 39, 3, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 785, 163, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, 1, 64, 786, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, 3, 6, 36, 1, 638, 639, 787, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, 3, 6, 36, 1, 646, 647, 788, 5, 6, 36, 1, 39, 15, -293, -293, -293, -293, -293, 3, 6, 36, 1, 663, 664, 789, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 790, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 134, 791, 5, 6, 36, 1, 39, 53, -209, -209, -209, -209, -209, 1, 111, 792, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, -127, 23, 43, 13, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 793, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 794, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 795, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -348, -348, -348, -348, -348, 108, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, 126, -348, -348, -348, -348, -348, -348, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -352, -352, -352, -352, -352, 108, -352, -352, -352, -352, -352, -352, -352, -352, -352, -352, -352, -352, -352, 126, -352, -352, -352, -352, -352, -352, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 39, 3, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 796, 163, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 39, 3, 14, 76, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 797, 163, 108, 127, 126, 96, 97, 124, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, 3, 68, 1, 1, 798, 105, 106, 5, 6, 36, 1, 39, 53, -229, -229, -229, -229, -229, 5, 6, 36, 1, 39, 53, -252, -252, -252, -252, -252, 5, 6, 32, 4, 1, 39, -284, -284, -284, -284, -284, 43, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 3, 14, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -345, -345, -345, -345, -345, 108, -345, -345, 801, -345, -345, -345, -345, 799, -345, -345, -345, 800, -345, -345, 126, -345, -345, -345, -345, -345, -345, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 802, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, -126, 1, 111, 803, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -343, -343, -343, -343, -343, 108, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, 126, -343, -343, -343, -343, -343, -343, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 42, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -344, -344, -344, -344, -344, 108, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, 126, -344, -344, -344, -344, -344, -344, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, 41, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 17, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, 13, 1, 5, 32, 4, 1, 32, 7, 15, 75, 2, 1, 17, 1, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, 1, 135, 804, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 805, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 6, 6, 32, 4, 1, 54, 38, -139, -139, -139, -139, -139, -139, 43, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 3, 14, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -347, -347, -347, -347, -347, 108, -347, -347, 801, -347, -347, -347, -347, 806, -347, -347, -347, 807, -347, -347, 126, -347, -347, -347, -347, -347, -347, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 13, 6, 30, 6, 1, 39, 24, 1, 1, 1, 1, 2, 23, 19, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, -128, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, 43, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 3, 14, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -346, -346, -346, -346, -346, 108, -346, -346, 801, -346, -346, -346, -346, 808, -346, -346, -346, -346, -346, -346, 126, -346, -346, -346, -346, -346, -346, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 1, 135, 809, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 4, 5, 3, 1, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 6, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 810, 166, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 67, 92, 33, 53, 171, 54, 55, 56, 87, 104, 66, 73, 74, 100, 101, 105, 106, 76, 102, 103, 37, 34, 75, 77, 78, 79, 80, 81, 93, 83, 35, 40, 39, 84, 85, 69, 170, 90, 91, 72, 52, 36, 38, 41, 88, 89, 99, 62, 64, 70, 71, 86, 59, 65, 82, 60, 96, 97, 61, 98, 49, 63, 57, 94, 58, 95, 172, 173, 174, 46, 47, 48, 50, 51, 1, 135, 811, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, 43, 1, 5, 32, 4, 1, 13, 2, 17, 7, 11, 4, 14, 4, 3, 14, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -348, -348, -348, -348, -348, 108, -348, -348, 801, -348, -348, -348, -348, 812, -348, -348, -348, -348, -348, -348, 126, -348, -348, -348, -348, -348, -348, 125, 110, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, 1, 135, 813, 57, 1, 5, 30, 2, 3, 1, 1, 1, 1, 11, 1, 1, 11, 1, 5, 7, 11, 4, 9, 1, 1, 1, 1, 1, 1, 3, 10, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203], t = [], p = 0, n, o, k2, a;
2618
+ let d = [101, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -1, 1, 2, 3, 4, 5, 6, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 1, 1, 0, 2, 1, 5, -2, 101, 5, 1, 5, 34, 21, 101, -3, -3, -3, -3, -3, 31, 1, 5, 29, 4, 1, 21, 7, 16, 38, 40, 1, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -6, -6, -6, -6, -6, -6, -6, -6, 121, -6, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 9, 1, 5, 29, 4, 1, 21, 7, 16, 78, -7, -7, -7, -7, -7, -7, -7, -7, -7, 14, 1, 5, 29, 4, 1, 21, 7, 16, 78, 1, 1, 1, 17, 1, -8, -8, -8, -8, -8, -8, -8, -8, -8, 124, 90, 91, 122, 123, 54, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 6, 3, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -13, -13, -250, -13, -13, -13, -250, -250, -13, -13, -13, -13, -13, 125, 127, 128, 129, 130, 131, -13, 132, -13, 133, -13, -13, -13, -13, 126, 134, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 47, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, 135, 136, 137, 138, 139, -14, 140, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, -14, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, -15, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, -17, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, -18, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, -19, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, -20, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, -21, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, -22, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, -23, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, -25, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, -26, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, -27, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, -28, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, 9, 1, 5, 29, 4, 1, 21, 7, 16, 78, -47, -47, -47, -47, -47, -47, -47, -47, -47, 9, 1, 5, 29, 4, 1, 21, 7, 16, 78, -48, -48, -48, -48, -48, -48, -48, -48, -48, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -173, -173, -173, -173, 142, -173, -173, 143, 144, 145, -173, -173, -173, -173, 141, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, -174, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, -175, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, -176, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, -178, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, -179, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, -180, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, -181, 18, 6, 26, 2, 1, 4, 1, 7, 2, 19, 14, 1, 2, 1, 18, 5, 1, 1, 10, -127, 150, 146, -127, -127, -127, 153, 98, -127, 151, 155, 154, 149, -127, 147, 148, 152, 93, 100, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 157, 4, 5, 6, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 156, 30, 158, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 97, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 159, 160, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 97, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 162, 163, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 164, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 170, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 171, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 172, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 173, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 45, 14, 1, 17, 5, 10, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 9, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 25, 15, 25, 175, 176, 86, 177, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 165, 166, 84, 85, 66, 174, 33, 35, 38, 82, 83, 93, 80, 76, 169, 45, 14, 1, 17, 5, 10, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 9, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 25, 15, 25, 175, 176, 86, 177, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 165, 166, 84, 85, 66, 178, 33, 35, 38, 82, 83, 93, 80, 76, 169, 61, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, 179, 180, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, 181, 96, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 183, 182, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 184, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 5, 7, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, 185, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, -358, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, -360, 2, 36, 3, 186, 158, 2, 36, 3, 187, 158, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, 14, 32, 15, 2, 33, 1, 2, 25, 1, 5, 5, 2, 4, 44, 1, 150, 153, 98, 151, 77, 154, 193, 152, 191, 93, 188, 189, 190, 192, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 194, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 195, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 88, 1, 5, 8, 1, 17, 3, 1, 1, 2, 1, 7, 2, 3, 1, 1, 1, 1, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 5, 2, 1, 1, 1, 1, 2, 1, 1, 1, 3, 6, 3, 1, 1, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 2, 1, 1, 4, 16, 5, 10, 1, 2, 1, 3, 1, 1, 12, 1, 3, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -197, -197, 175, 176, 86, -197, 196, 177, 158, -197, 67, 98, 68, 94, 95, 99, 100, -197, 70, 96, 97, 34, -197, 31, 69, 71, 72, 73, 74, 75, -197, 87, 77, -197, 81, -197, 32, 37, 36, 78, 79, -197, 165, -197, 166, 84, 85, 66, 198, 33, 35, 38, 82, 83, 93, -197, -197, -197, -197, 197, 80, -197, 76, -197, -197, -197, -197, -197, -197, -197, -197, 169, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, -197, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 199, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 200, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 131, 1, 5, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 1, 3, 3, 1, 1, 1, 3, 1, 1, 1, 1, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 5, 2, 1, 1, 1, 1, 2, 1, 1, 1, 3, 6, 2, 1, 1, 1, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 2, 1, 1, 3, 2, 8, 7, 5, 5, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -49, -49, 201, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, -49, 30, 202, -49, 50, 60, 67, 203, 98, 68, 94, 95, 99, 100, -49, 70, 96, 97, 34, -49, 31, 69, 71, 72, 73, 74, 75, -49, 87, 77, -49, 81, -49, 32, 37, 36, 78, 79, -49, 63, 165, -49, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, -49, -49, -49, -49, 58, 64, 65, 80, -49, 53, 59, 76, -49, 54, -49, -49, 55, 92, -49, -49, -49, 46, 57, 51, 88, 52, 89, -49, -49, 167, 168, 169, 43, 44, 45, 47, 48, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, 2, 32, 17, 204, 98, 6, 15, 29, 59, 2, 1, 1, 206, 205, 39, 40, 84, 85, 105, 1, 5, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 1, 3, 3, 1, 2, 3, 1, 1, 1, 1, 5, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 1, 1, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -118, -118, 207, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, -118, 30, 208, -118, 50, 60, 67, 98, 68, 94, 95, 99, 100, -118, 70, 96, 97, 34, -118, 31, 69, 71, 72, 73, 74, 75, 87, 77, -118, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, -118, 54, -118, -118, 55, 92, 46, 57, 51, 88, 52, 89, -118, -118, 167, 168, 169, 43, 44, 45, 47, 48, 9, 32, 17, 5, 1, 1, 65, 11, 1, 5, 213, 98, 209, 99, 100, 212, 210, 211, 214, 9, 27, 3, 1, 1, 17, 72, 8, 8, 4, 216, 217, 61, 218, 98, 215, 58, 219, 220, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, -172, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, 100, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 221, 3, 4, 5, 6, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 222, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 107, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 1, 1, 4, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 223, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 229, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 230, 31, 69, 71, 72, 73, 74, 75, 87, 77, 224, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 225, 226, 231, 228, 227, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 4, 33, 60, 2, 4, 238, 235, 236, 237, 2, 33, 60, 238, 239, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, 55, 1, 5, 27, 2, 4, 1, 10, 1, 4, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -255, -255, -255, -255, -255, -255, 240, 241, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, 1, 95, 242, 1, 95, 243, 51, 11, 20, 8, 4, 3, 3, 4, 2, 1, 7, 1, 6, 1, 1, 1, 1, 1, 8, 2, 6, 3, 8, 1, 3, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, -123, 51, 11, 20, 8, 4, 3, 3, 4, 2, 1, 7, 1, 6, 1, 1, 1, 1, 1, 8, 2, 6, 3, 8, 1, 3, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, -124, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, -141, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, -142, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 244, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 245, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 246, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 247, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 96, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 249, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 248, 30, 158, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 23, 6, 26, 7, 1, 9, 1, 1, 1, 1, 1, 1, 1, 12, 9, 1, 1, 2, 1, 1, 2, 1, 39, 3, -192, 257, -192, -192, 98, 258, 241, 255, 94, 95, 99, 100, -192, 256, 250, 260, 252, 259, 253, 254, 261, -192, 251, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, -57, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, -67, 45, 14, 1, 17, 5, 10, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 9, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 25, 15, 25, 175, 176, 86, 177, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 262, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 165, 166, 84, 85, 66, 263, 33, 35, 38, 82, 83, 93, 80, 76, 169, 64, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 5, 7, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 6, 7, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, -55, 56, 1, 5, 27, 2, 4, 1, 15, 1, 2, 2, 1, 5, 2, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, -59, 6, 54, 1, 1, 1, 2, 1, 267, 99, 100, 264, 265, 266, 103, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 5, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 1, 1, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -5, 268, -5, 4, 5, 6, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, -5, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, -5, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, -5, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 269, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 270, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 271, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 272, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 273, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 274, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 275, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 276, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 277, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 278, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 279, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 280, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 281, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 282, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 283, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 284, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 285, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, 14, 32, 15, 2, 33, 1, 2, 25, 1, 5, 5, 2, 4, 44, 1, 150, 153, 98, 151, 77, 154, 193, 152, 289, 93, 286, 287, 288, 192, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 290, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 291, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, 5, 33, 21, 1, 1, 37, 238, 292, 99, 100, 293, 2, 33, 60, 238, 294, 2, 50, 1, 295, 241, 2, 50, 1, 296, 241, 64, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 7, 1, 4, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, 297, 241, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, -147, 64, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 7, 1, 4, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, 298, 241, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, -148, 100, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 1, 2, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 4, 1, 5, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 299, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 300, 50, 60, 67, 98, 68, 94, 95, 99, 100, 304, 96, 97, 34, 302, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 306, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 301, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 303, 305, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 99, 307, 1, 99, 308, 3, 33, 22, 1, -251, -251, -251, 2, 50, 1, 309, 241, 2, 50, 1, 310, 241, 64, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 7, 1, 4, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, 311, 241, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, -164, 64, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 7, 1, 4, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, 312, 241, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, -165, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 313, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 314, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 99, 315, 96, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 317, 316, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 318, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 96, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 320, 319, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 321, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 96, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 323, 322, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 324, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 96, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 326, 325, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 327, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 96, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 329, 328, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 330, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 9, 6, 29, 4, 1, 28, 16, 20, 4, 17, -125, -125, -125, -125, 332, -125, 331, 333, -125, 6, 6, 29, 4, 1, 28, 36, -128, -128, -128, -128, -128, -128, 7, 6, 29, 4, 1, 28, 8, 28, -132, -132, -132, -132, -132, 334, -132, 15, 6, 26, 3, 4, 1, 7, 2, 19, 14, 1, 2, 19, 6, 1, 10, -135, 150, -135, -135, -135, 153, 98, -135, 151, 155, 154, -135, 335, 152, 93, 10, 6, 29, 4, 1, 28, 8, 28, 20, 44, 2, -136, -136, -136, -136, -136, -136, -136, -136, -136, -136, 10, 6, 29, 4, 1, 28, 8, 28, 20, 44, 2, -137, -137, -137, -137, -137, -137, -137, -137, -137, -137, 10, 6, 29, 4, 1, 28, 8, 28, 20, 44, 2, -138, -138, -138, -138, -138, -138, -138, -138, -138, -138, 10, 6, 29, 4, 1, 28, 8, 28, 20, 44, 2, -139, -139, -139, -139, -139, -139, -139, -139, -139, -139, 2, 50, 1, 240, 241, 107, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 1, 1, 4, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 229, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 230, 31, 69, 71, 72, 73, 74, 75, 87, 77, 224, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 225, 226, 231, 228, 227, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, 9, 1, 5, 29, 4, 1, 21, 7, 16, 78, -122, -122, -122, -122, -122, -122, -122, -122, -122, 100, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 338, 3, 4, 5, 6, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 337, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, -368, 120, -368, -368, -368, -368, -368, -368, 119, -368, -368, 102, -368, -368, -368, -368, -368, -368, -368, -368, -368, 114, 115, -368, -368, 9, 1, 5, 29, 4, 1, 21, 7, 16, 78, -365, -365, -365, -365, -365, -365, -365, -365, -365, 5, 163, 1, 1, 17, 1, 124, 90, 91, 122, 123, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, 120, -369, -369, -369, -369, -369, -369, 119, -369, -369, 102, -369, -369, -369, -369, -369, -369, -369, -369, -369, 114, 115, -369, -369, 9, 1, 5, 29, 4, 1, 21, 7, 16, 78, -366, -366, -366, -366, -366, -366, -366, -366, -366, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, 120, -370, -370, -370, -370, -370, -370, 119, -370, -370, 102, -370, 106, -370, -370, -370, -370, -370, -370, -370, 114, 115, -370, -370, 18, 6, 26, 2, 1, 4, 1, 7, 2, 19, 14, 1, 2, 1, 18, 5, 1, 1, 10, -127, 150, 339, -127, -127, -127, 153, 98, -127, 151, 155, 154, 149, -127, 147, 148, 152, 93, 2, 36, 3, 156, 158, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 159, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 162, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 5, 15, 88, 2, 1, 1, 206, 165, 166, 84, 85, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, 120, -371, -371, -371, -371, -371, -371, 119, -371, -371, 102, -371, 106, -371, -371, -371, -371, -371, -371, -371, 114, 115, -371, -371, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, 120, -372, -372, -372, -372, -372, -372, 119, -372, -372, 102, -372, 106, -372, -372, -372, -372, -372, -372, -372, 114, 115, -372, -372, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, 120, -373, -373, -373, -373, -373, -373, 119, -373, -373, 102, -373, -373, -373, -373, -373, -373, -373, -373, -373, 114, 115, -373, -373, 2, 47, 74, 340, 93, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -375, -375, -170, -375, -170, -375, -375, -170, -170, -170, -170, -170, -375, -375, -170, -375, -375, -375, -170, -170, -170, -170, -170, -375, -170, -375, -170, -375, -375, -375, -375, -170, -170, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, 13, 33, 22, 1, 36, 3, 1, 1, 1, 1, 2, 14, 28, 1, -250, -250, -250, 125, 127, 128, 129, 130, 131, 132, 133, 126, 134, 6, 95, 1, 1, 1, 1, 2, 135, 136, 137, 138, 139, 140, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, -173, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -376, -376, -170, -376, -170, -376, -376, -170, -170, -170, -170, -170, -376, -376, -170, -376, -376, -376, -170, -170, -170, -170, -170, -376, -170, -376, -170, -376, -376, -376, -376, -170, -170, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, -377, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, 96, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 343, 341, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 342, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, -44, 121, -44, -44, -44, -44, -44, 120, 90, 91, -44, -44, -44, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 344, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 345, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 3, 36, 3, 140, 346, 158, 347, 44, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 6, 1, 1, 3, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, 348, 349, 350, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, 3, 124, 44, 2, 352, 351, 353, 11, 32, 15, 2, 33, 1, 2, 25, 1, 10, 2, 49, 150, 153, 98, 151, 155, 154, 193, 152, 93, 354, 192, 11, 32, 15, 2, 33, 1, 2, 25, 1, 10, 2, 49, 150, 153, 98, 151, 155, 154, 193, 152, 93, 355, 192, 3, 36, 3, 130, 356, 158, 357, 4, 68, 56, 44, 2, 358, -344, -344, -344, 5, 68, 8, 48, 44, 2, -342, 359, -342, -342, -342, 23, 39, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 360, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 3, 174, 2, 1, 361, 362, 363, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, -198, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 364, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 60, 1, 5, 27, 2, 1, 2, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -201, -201, -170, -201, 365, -170, 158, -201, -170, -170, -170, -170, -170, -201, -201, -170, -201, -201, -201, -170, -170, -170, -170, -170, -201, -170, -201, -170, -201, -201, -201, -201, 366, -170, -170, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, -201, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, 120, -298, -298, -298, -298, -298, -298, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 2, 47, 74, 367, 93, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, 120, -50, -50, -50, -50, -50, -50, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 2, 47, 74, 368, 93, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 369, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 3, 33, 3, 3, 370, 371, 158, 9, 1, 5, 29, 4, 1, 21, 7, 16, 78, -367, -367, -367, -367, -367, -367, -367, -367, -367, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, -398, 31, 1, 5, 29, 4, 1, 21, 7, 16, 38, 40, 1, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -116, -116, -116, -116, -116, -116, -116, -116, 121, -116, 120, -116, -116, -116, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 2, 47, 74, 372, 93, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, 2, 48, 20, 373, 374, 1, 48, 375, 7, 32, 7, 10, 76, 9, 1, 2, 380, 379, 98, 376, 377, 378, 381, 2, 48, 20, -221, -221, 1, 136, 382, 7, 32, 7, 10, 76, 12, 3, 2, 387, 386, 98, 383, 388, 384, 385, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, 1, 76, 389, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 390, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 391, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 48, 392, 2, 6, 156, 101, 393, 99, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 394, 3, 4, 5, 6, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 31, 6, 29, 4, 1, 28, 16, 2, 36, 28, 1, 12, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -272, -272, -272, -272, -272, -272, 306, 121, 395, 305, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, -257, 103, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 6, 2, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 230, 31, 69, 71, 72, 73, 74, 75, 87, 77, 396, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 398, 397, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 9, 6, 29, 4, 1, 28, 16, 24, 17, 24, -125, -125, -125, -125, 400, -125, 401, -125, 399, 56, 6, 5, 20, 8, 1, 3, 3, 3, 4, 2, 1, 7, 1, 4, 2, 1, 1, 1, 1, 1, 8, 1, 1, 1, 5, 3, 8, 1, 3, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, 402, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, 5, 6, 33, 1, 28, 16, -276, -276, -276, -276, -276, 106, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 1, 1, 4, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 229, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 230, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 404, 403, 231, 228, 227, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 56, 6, 5, 20, 8, 1, 3, 3, 3, 4, 2, 1, 7, 1, 4, 2, 1, 1, 1, 1, 1, 8, 1, 1, 1, 5, 3, 8, 1, 3, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, 5, 6, 33, 1, 28, 16, -281, -281, -281, -281, -281, 6, 6, 29, 4, 1, 28, 16, -273, -273, -273, -273, -273, -273, 6, 6, 29, 4, 1, 28, 16, -274, -274, -274, -274, -274, -274, 100, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 1, 3, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -275, 405, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, -275, 30, -275, -275, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, -275, 31, 69, 71, 72, 73, 74, 75, 87, 77, -275, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 54, 1, 5, 27, 2, 4, 1, 15, 1, 5, 5, 2, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, 2, 50, 1, 406, 241, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 407, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 408, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 103, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 6, 1, 6, 4, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 409, 30, 412, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 410, 80, 411, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 54, 1, 5, 27, 2, 4, 1, 15, 1, 5, 5, 2, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, -249, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, -56, 2, 50, 1, 413, 241, 2, 50, 1, 414, 241, 24, 36, 3, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 415, 158, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 24, 36, 3, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 416, 158, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 121, -302, -302, 417, -302, -302, 120, 90, 91, -302, -302, -302, -302, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, 121, -304, -304, 418, -304, -304, 120, 90, 91, -304, -304, -304, -304, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, 121, -311, -311, -311, -311, -311, 120, 90, 91, -311, -311, -311, -311, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 6, 6, 33, 1, 28, 12, 45, -82, -82, -82, -82, 419, -82, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 421, -125, 420, -125, 7, 6, 33, 1, 28, 8, 4, 45, -91, -91, -91, -91, 422, -91, -91, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 423, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 3, 50, 1, 32, 240, 241, 424, 6, 6, 33, 1, 28, 12, 45, -94, -94, -94, -94, -94, -94, 5, 6, 33, 1, 28, 57, -193, -193, -193, -193, -193, 15, 6, 27, 6, 1, 28, 8, 4, 15, 1, 1, 1, 1, 2, 24, 19, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, -88, 15, 6, 27, 6, 1, 28, 8, 4, 15, 1, 1, 1, 1, 2, 24, 19, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, -89, 15, 6, 27, 6, 1, 28, 8, 4, 15, 1, 1, 1, 1, 2, 24, 19, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, -90, 5, 6, 33, 1, 28, 57, -83, -83, -83, -83, -83, 17, 32, 15, 2, 1, 1, 30, 1, 3, 2, 1, 1, 1, 1, 3, 27, 25, 15, 257, 427, 98, 258, 241, 425, 259, 81, 426, 428, 429, 430, 431, 432, 93, 80, 76, 54, 1, 5, 27, 2, 4, 1, 15, 1, 5, 5, 2, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -177, -177, -177, -177, -177, -177, -177, -177, -177, 433, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, -177, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, -170, 6, 54, 1, 1, 2, 1, 1, 267, 99, 100, 434, 435, 266, 4, 55, 1, 2, 2, -61, -61, -61, -61, 101, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 5, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 436, 3, 4, 5, 6, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 437, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 438, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 4, 55, 1, 2, 2, -66, -66, -66, -66, 5, 1, 5, 34, 21, 101, -4, -4, -4, -4, -4, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, 120, -380, -380, -380, -380, -380, -380, 119, -380, -380, 102, 105, 106, -380, -380, -380, -380, -380, -380, -380, 114, 115, -380, -380, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, 120, -381, -381, -381, -381, -381, -381, 119, -381, -381, 102, 105, 106, -381, -381, -381, -381, -381, -381, -381, 114, 115, -381, -381, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, -382, 120, -382, -382, -382, -382, -382, -382, 119, -382, -382, 102, -382, 106, -382, -382, -382, -382, -382, -382, -382, 114, 115, -382, -382, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, -383, 120, -383, -383, -383, -383, -383, -383, 119, -383, -383, 102, -383, 106, -383, -383, -383, -383, -383, -383, -383, 114, 115, -383, -383, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, -384, 120, -384, -384, -384, -384, -384, -384, 119, 104, 103, 102, 105, 106, -384, -384, -384, -384, -384, -384, -384, 114, 115, -384, -384, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, 120, -385, -385, -385, -385, -385, -385, 119, 104, 103, 102, 105, 106, 107, -385, -385, -385, -385, -385, -385, 114, 115, 116, -385, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, 120, -386, -386, -386, -386, -386, -386, 119, 104, 103, 102, 105, 106, 107, 108, -386, -386, -386, -386, -386, 114, 115, 116, -386, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, -387, 120, -387, -387, -387, -387, -387, -387, 119, 104, 103, 102, 105, 106, 107, 108, 109, -387, -387, -387, -387, 114, 115, 116, -387, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, 120, -388, -388, -388, -388, -388, -388, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, -388, -388, -388, 114, 115, 116, -388, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, -389, 120, -389, -389, -389, -389, -389, -389, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, -389, -389, 114, 115, 116, -389, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, -390, 120, -390, -390, -390, -390, -390, -390, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, -390, 114, 115, 116, -390, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, 121, -391, -391, -391, -391, -391, 120, 90, 91, -391, -391, -391, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, -392, 121, -392, -392, -392, -392, -392, 120, 90, 91, -392, -392, -392, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, 120, -393, -393, -393, -393, -393, -393, 119, 104, 103, 102, 105, 106, 107, -393, -393, -393, -393, -393, -393, 114, 115, -393, -393, 23, 80, 42, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 439, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, -362, 121, -362, -362, -362, -362, -362, 120, 90, 91, -362, -362, -362, -362, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, 121, -364, -364, -364, -364, -364, 120, 90, 91, -364, -364, -364, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 3, 124, 44, 2, 441, 440, 442, 11, 32, 15, 2, 33, 1, 2, 25, 1, 10, 2, 49, 150, 153, 98, 151, 155, 154, 193, 152, 93, 443, 192, 11, 32, 15, 2, 33, 1, 2, 25, 1, 10, 2, 49, 150, 153, 98, 151, 155, 154, 193, 152, 93, 444, 192, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, 445, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, -361, 121, -361, -361, -361, -361, -361, 120, 90, 91, -361, -361, -361, -361, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -363, -363, -363, -363, -363, -363, -363, -363, -363, -363, -363, -363, 121, -363, -363, -363, -363, -363, 120, 90, 91, -363, -363, -363, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 54, 1, 5, 27, 2, 4, 1, 15, 1, 5, 5, 2, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, -245, 54, 1, 5, 27, 2, 4, 1, 15, 1, 5, 5, 2, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, 54, 1, 5, 27, 2, 4, 1, 15, 1, 5, 5, 2, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, -247, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, -143, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, -144, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, -145, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, -146, 26, 86, 14, 22, 28, 1, 12, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 306, 446, 121, 447, 305, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 98, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 1, 2, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 4, 1, 5, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 448, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 306, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 449, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 303, 305, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 100, 450, 1, 100, 451, 96, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 6, 2, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 452, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, -266, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, -266, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -73, -73, -73, -73, -73, -73, -73, -73, -73, 453, -73, -73, -73, -73, -73, -73, -73, -73, -70, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, -73, 52, 11, 20, 9, 3, 3, 3, 4, 2, 1, 7, 1, 6, 1, 1, 1, 1, 1, 8, 2, 6, 3, 6, 2, 1, 3, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, -260, 52, 11, 20, 9, 3, 3, 3, 4, 2, 1, 7, 1, 6, 1, 1, 1, 1, 1, 8, 2, 6, 3, 6, 2, 1, 3, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, -261, 99, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 1, 2, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 4, 1, 5, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 454, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 455, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 306, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 456, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 303, 305, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 457, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 458, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, -160, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, -161, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, -162, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, 23, 100, 22, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 459, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 460, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 461, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 462, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, 120, -79, -79, -79, -79, -79, -79, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 463, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 464, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, 121, -32, -32, -32, -32, -32, 120, 90, 91, -32, -32, -32, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 465, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 466, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 121, -35, -35, -35, -35, -35, 120, 90, 91, -35, -35, -35, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 467, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 468, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, 121, -38, -38, -38, -38, -38, 120, 90, 91, -38, -38, -38, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 469, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 470, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, 121, -41, -41, -41, -41, -41, 120, 90, 91, -41, -41, -41, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 471, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 472, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 3, 105, 1, 1, 473, 84, 85, 17, 6, 26, 3, 4, 1, 7, 2, 33, 1, 1, 1, 1, 23, 1, 1, 10, 4, -126, 150, -126, -126, -126, 153, 98, 151, 155, -126, 154, 149, 474, 148, 152, 93, -126, 2, 6, 33, 475, 476, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 477, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 6, 6, 29, 4, 1, 28, 36, -134, -134, -134, -134, -134, -134, 28, 6, 29, 4, 1, 28, 16, 38, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -272, -272, -272, -272, -272, -272, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 57, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 7, 1, 3, 2, 1, 3, 1, 1, 5, 2, 5, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, -53, 2, 6, 34, 101, 478, 9, 6, 29, 4, 1, 28, 16, 20, 4, 17, -125, -125, -125, -125, 332, -125, 479, 333, -125, 1, 40, 480, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, 120, -395, -395, -395, -395, -395, -395, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 481, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 482, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, -45, 121, -45, -45, -45, -45, -45, 120, 90, 91, -45, -45, -45, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 483, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 484, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 7, 4, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, 485, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, 2, 36, 3, 486, 158, 6, 32, 4, 3, 8, 2, 72, 487, 489, 158, 488, 98, 93, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 490, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 491, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 492, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 124, 493, 1, 170, 494, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 495, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 10, 32, 15, 2, 33, 1, 2, 25, 1, 10, 51, 150, 153, 98, 151, 155, 154, 193, 152, 93, 496, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 497, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 3, 174, 2, 1, 498, 362, 363, 4, 40, 135, 1, 1, 499, 500, 501, 363, 3, 40, 135, 2, -350, -350, -350, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 9, 1, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 503, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 502, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 43, 1, 5, 29, 1, 3, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -199, -199, -199, 504, 158, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, -199, 120, -199, -199, -199, -199, -199, -199, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, -202, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 505, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 40, 506, 1, 40, 507, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, 120, -52, -52, -52, -52, -52, -52, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 18, 6, 26, 2, 1, 4, 1, 7, 2, 19, 14, 1, 2, 1, 18, 5, 1, 1, 10, -127, 150, 508, -127, -127, -127, 153, 98, -127, 151, 155, 154, 149, -127, 147, 148, 152, 93, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, -31, 1, 40, 509, 3, 54, 1, 1, 510, 99, 100, 3, 121, 12, 5, 512, 511, 214, 3, 54, 1, 1, 513, 99, 100, 1, 48, 514, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 516, -125, 515, -125, 5, 6, 33, 1, 28, 57, -212, -212, -212, -212, -212, 6, 32, 7, 10, 85, 1, 2, 380, 379, 98, 517, 378, 381, 6, 6, 33, 1, 28, 57, 11, -217, -217, -217, -217, -217, 518, 6, 6, 33, 1, 28, 57, 11, -219, -219, -219, -219, -219, 519, 2, 32, 17, 520, 98, 14, 1, 5, 29, 4, 1, 8, 13, 7, 16, 78, 2, 1, 17, 1, -223, -223, -223, -223, -223, 521, -223, -223, -223, -223, -223, -223, -223, -223, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 523, -125, 522, -125, 5, 6, 33, 1, 28, 57, -235, -235, -235, -235, -235, 6, 32, 7, 10, 88, 3, 2, 387, 386, 98, 388, 524, 385, 6, 6, 33, 1, 28, 57, 11, -240, -240, -240, -240, -240, 525, 6, 6, 33, 1, 28, 57, 11, -243, -243, -243, -243, -243, 526, 96, 6, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 528, 527, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 529, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 31, 1, 5, 29, 4, 1, 21, 7, 16, 38, 40, 1, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -230, -230, -230, -230, -230, -230, -230, -230, 121, -230, 120, 90, 91, -230, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 2, 47, 74, 530, 93, 3, 54, 1, 1, 531, 99, 100, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, -300, 2, 6, 34, 101, 532, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 533, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, 56, 6, 5, 20, 8, 1, 3, 3, 3, 4, 2, 1, 7, 1, 4, 2, 1, 1, 1, 1, 1, 8, 1, 1, 1, 5, 3, 8, 1, 3, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, 402, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, 5, 6, 33, 1, 28, 16, -282, -282, -282, -282, -282, 2, 39, 45, 535, 534, 110, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 1, 3, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 4, 2, 8, 7, 1, 5, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -126, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, -126, 30, -126, -126, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 230, 31, 69, 71, 72, 73, 74, 75, 87, 77, -126, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, -126, 58, 64, 65, 80, 537, 231, 536, 227, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 4, 6, 33, 1, 44, 538, -283, -283, -283, 56, 6, 5, 20, 8, 1, 3, 3, 3, 4, 2, 1, 7, 1, 4, 2, 1, 1, 1, 1, 1, 8, 1, 1, 1, 5, 3, 8, 1, 3, 1, 12, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 3, 1, 2, 4, 2, 6, 2, 3, 1, 1, 1, 1, 1, 1, 1, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, 9, 6, 29, 4, 1, 28, 16, 24, 17, 24, -125, -125, -125, -125, 400, -125, 401, -125, 539, 102, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 6, 2, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 230, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 398, 397, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 28, 6, 29, 4, 1, 28, 16, 38, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -140, -140, -140, -140, -140, -140, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, 23, 100, 22, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 540, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 541, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 54, 1, 5, 27, 2, 4, 1, 15, 1, 5, 5, 2, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, -252, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 543, -125, 542, -125, 5, 6, 29, 4, 1, 28, -267, -267, -267, -267, -267, 102, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 6, 1, 6, 4, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 412, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 544, 80, 411, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 5, 7, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 5, 7, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, 545, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 546, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 547, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 548, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 549, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 3, 6, 33, 86, 551, 552, 550, 23, 6, 26, 3, 4, 1, 9, 1, 1, 1, 1, 1, 1, 1, 21, 1, 1, 2, 1, 1, 1, 1, 1, 39, -126, 257, -126, -126, -126, 98, 258, 241, 255, 94, 95, 99, 100, 553, 554, 260, 252, 259, 253, -126, 254, 261, -126, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 555, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 556, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 23, 84, 38, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 557, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 558, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 16, 6, 27, 6, 1, 15, 1, 12, 24, 3, 1, 1, 1, 1, 2, 24, 19, -95, -97, -95, -95, -250, -250, -95, 559, -97, -97, -97, -97, -97, -97, -95, 134, 16, 6, 27, 6, 1, 15, 1, 12, 24, 3, 1, 1, 1, 1, 2, 24, 19, -96, -250, -96, -96, -250, -250, -96, 560, 561, 562, 563, 564, 565, 566, -96, 134, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, 7, 33, 22, 1, 36, 3, 4, 45, -250, -250, -250, 567, 236, 237, 134, 2, 33, 60, 238, 568, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, -68, 56, 1, 5, 27, 2, 4, 1, 15, 1, 2, 2, 1, 5, 2, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, -60, 4, 55, 1, 2, 2, -62, -62, -62, -62, 2, 6, 55, 101, 569, 99, 4, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 570, 3, 4, 5, 6, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 4, 55, 1, 2, 2, -65, -65, -65, -65, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 571, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 572, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 573, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 574, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 124, 575, 1, 170, 576, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 577, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, -149, 96, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 6, 2, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 578, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, -264, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, -264, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 26, 40, 46, 36, 28, 1, 12, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 579, 306, 121, 447, 305, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 1, 40, 580, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, -151, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, -153, 24, 40, 60, 22, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -265, -265, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 581, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 26, 86, 14, 22, 28, 1, 12, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 306, 582, 121, 447, 305, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 98, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 1, 2, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 4, 1, 5, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 583, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 306, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 584, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 303, 305, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 100, 585, 23, 100, 22, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 586, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 587, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, -166, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 588, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 23, 100, 22, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 589, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 590, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, 120, -80, -80, -80, -80, -80, -80, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 591, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, -33, 121, -33, -33, -33, -33, -33, 120, 90, 91, -33, -33, -33, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 592, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, 121, -36, -36, -36, -36, -36, 120, 90, 91, -36, -36, -36, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 593, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, 121, -39, -39, -39, -39, -39, 120, 90, 91, -39, -39, -39, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 594, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, 121, -42, -42, -42, -42, -42, 120, 90, 91, -42, -42, -42, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 595, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 100, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 597, 4, 5, 6, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 596, 30, 158, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 6, 6, 29, 4, 1, 28, 36, -129, -129, -129, -129, -129, -129, 11, 32, 15, 2, 33, 1, 2, 1, 23, 1, 1, 10, 150, 153, 98, 151, 155, 154, 149, 598, 148, 152, 93, 18, 6, 26, 2, 1, 4, 1, 7, 2, 19, 14, 1, 2, 1, 18, 5, 1, 1, 10, -127, 150, 599, -127, -127, -127, 153, 98, -127, 151, 155, 154, 149, -127, 147, 148, 152, 93, 28, 6, 29, 4, 1, 28, 36, 18, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -133, -133, -133, -133, -133, -133, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 57, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 7, 1, 3, 2, 1, 3, 1, 1, 5, 2, 5, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, -54, 3, 105, 1, 1, 600, 84, 85, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, -374, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 601, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, -397, 120, -397, -397, -397, -397, -397, -397, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, 24, 36, 3, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 602, 158, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 2, 36, 3, 603, 158, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, -293, 2, 36, 3, 604, 158, 2, 36, 3, 605, 158, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 7, 4, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, -297, 26, 36, 3, 83, 4, 37, 1, 1, 4, 13, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 606, 158, 121, 607, 120, 90, 91, 608, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 25, 36, 3, 83, 4, 37, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 609, 158, 121, 610, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 25, 36, 3, 83, 4, 37, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 611, 158, 121, 612, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 613, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 614, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 24, 36, 3, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 615, 158, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 3, 124, 44, 2, -345, -345, -345, 26, 68, 54, 2, 39, 1, 1, 3, 2, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -343, 121, -343, 120, 90, 91, -343, -343, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 4, 40, 135, 1, 1, 616, 617, 501, 363, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, 2, 36, 3, 618, 158, 3, 40, 135, 2, -351, -351, -351, 3, 36, 3, 29, 619, 158, 620, 24, 39, 29, 54, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -289, -289, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, -200, 43, 1, 5, 29, 1, 3, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -203, -203, -203, 621, 158, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, -203, 120, -203, -203, -203, -203, -203, -203, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, -299, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, 622, -125, -125, 332, -125, 333, -125, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, -117, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, 1, 48, 623, 6, 32, 7, 10, 85, 1, 2, 380, 379, 98, 624, 378, 381, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, 3, 54, 1, 1, 625, 99, 100, 3, 6, 33, 86, 627, 628, 626, 10, 6, 26, 3, 4, 1, 9, 35, 41, 10, 2, -126, 380, -126, -126, -126, 98, -126, -126, 629, 381, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 516, -125, 630, -125, 2, 32, 17, 631, 98, 2, 32, 17, 632, 98, 1, 48, -222, 3, 54, 1, 1, 633, 99, 100, 3, 6, 33, 86, 635, 636, 634, 10, 6, 26, 3, 4, 1, 9, 35, 41, 12, 5, -126, 387, -126, -126, -126, 98, -126, -126, 388, 637, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 523, -125, 638, -125, 3, 32, 17, 88, 639, 98, 640, 2, 32, 17, 641, 98, 31, 1, 5, 29, 4, 1, 21, 7, 16, 38, 40, 1, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -227, -227, -227, -227, -227, -227, -227, -227, 121, -227, 120, -227, -227, -227, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 642, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 643, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 40, 644, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, 1, 162, 645, 23, 84, 38, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 646, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, -259, 106, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 1, 1, 4, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 229, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 230, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 404, 647, 231, 228, 227, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 5, 6, 33, 1, 28, 16, -277, -277, -277, -277, -277, 105, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 1, 3, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 6, 2, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, -284, -284, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 230, 31, 69, 71, 72, 73, 74, 75, 87, 77, -284, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 398, 397, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 104, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 1, 5, 1, 1, 2, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 230, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 404, 231, 648, 227, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 2, 39, 1, 535, 649, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 650, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 3, 6, 29, 4, 652, 651, 653, 106, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 2, 1, 3, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 4, 2, 8, 7, 6, 4, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, -126, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, -126, 30, -126, -126, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, -126, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, -126, 58, 64, 65, 80, 654, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 543, -125, 655, -125, 2, 36, 3, 656, 158, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, 120, -303, -303, -303, -303, -303, -303, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, 120, -305, -305, -305, -305, -305, -305, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 27, 6, 33, 1, 28, 54, 3, 38, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -84, -84, -84, -84, 657, -84, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 658, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, -191, 17, 32, 17, 1, 1, 1, 1, 1, 1, 1, 21, 1, 1, 2, 1, 1, 2, 1, 257, 98, 258, 241, 255, 94, 95, 99, 100, 659, 554, 260, 252, 259, 253, 254, 261, 23, 6, 26, 7, 1, 9, 1, 1, 1, 1, 1, 1, 1, 12, 9, 1, 1, 2, 1, 1, 2, 1, 39, 3, -192, 257, -192, -192, 98, 258, 241, 255, 94, 95, 99, 100, -192, 256, 554, 260, 252, 259, 253, 254, 261, -192, 660, 5, 6, 33, 1, 28, 57, -194, -194, -194, -194, -194, 6, 6, 33, 1, 28, 12, 45, -82, -82, -82, -82, 661, -82, 27, 6, 33, 1, 28, 54, 3, 38, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -86, -86, -86, -86, 121, -86, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 662, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 6, 6, 33, 1, 28, 12, 45, -92, -92, -92, -92, -92, -92, 23, 84, 38, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 663, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 2, 33, 60, 238, 664, 2, 33, 60, 238, 665, 2, 50, 1, 666, 241, 2, 50, 1, 667, 241, 15, 6, 27, 6, 1, 10, 1, 17, 27, 1, 1, 1, 1, 2, 24, 19, -110, -110, -110, -110, 668, 241, -110, -110, -110, -110, -110, -110, -110, -110, -110, 15, 6, 27, 6, 1, 10, 1, 17, 27, 1, 1, 1, 1, 2, 24, 19, -111, -111, -111, -111, 669, 241, -111, -111, -111, -111, -111, -111, -111, -111, -111, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 670, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 671, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 99, 672, 2, 33, 60, 238, 673, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, 4, 55, 1, 2, 2, -63, -63, -63, -63, 2, 6, 34, 101, 674, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, 120, -394, -394, -394, -394, -394, -394, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, 675, -327, -327, 120, -327, -327, -327, 676, -327, -327, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, 677, -332, -332, 120, -332, -332, -332, -332, -332, -332, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, 678, -336, -336, 120, -336, -336, -336, -336, -336, -336, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 679, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 680, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, 120, -341, -341, -341, -341, -341, -341, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 24, 40, 60, 22, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -263, -263, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 1, 100, 681, 1, 100, 682, 23, 100, 22, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -69, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, -154, 26, 40, 46, 36, 28, 1, 12, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 683, 306, 121, 447, 305, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 1, 40, 684, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, -156, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, -158, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 685, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 1, 100, 686, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, -168, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 687, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, -34, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, -119, 9, 1, 5, 29, 4, 1, 21, 7, 16, 78, -121, -121, -121, -121, -121, -121, -121, -121, -121, 6, 6, 29, 4, 1, 28, 36, -130, -130, -130, -130, -130, -130, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 332, -125, 688, -125, 2, 36, 3, 596, 158, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, -396, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 5, 7, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 7, 4, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, -295, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 7, 4, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, -312, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 689, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 690, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, -317, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 691, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 692, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 25, 36, 3, 83, 4, 37, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 693, 158, 121, 694, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 25, 36, 3, 83, 4, 37, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 695, 158, 121, 696, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, -346, 2, 36, 3, 697, 158, 1, 40, 698, 4, 6, 34, 135, 2, 699, -352, -352, -352, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 700, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, -204, 2, 36, 3, 701, 158, 3, 54, 1, 1, 702, 99, 100, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 516, -125, 703, -125, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, 1, 48, 704, 4, 32, 17, 86, 2, 380, 98, 705, 381, 6, 32, 7, 10, 85, 1, 2, 380, 379, 98, 706, 378, 381, 5, 6, 33, 1, 28, 57, -213, -213, -213, -213, -213, 3, 6, 33, 1, 627, 628, 707, 5, 6, 33, 1, 28, 57, -218, -218, -218, -218, -218, 5, 6, 33, 1, 28, 57, -220, -220, -220, -220, -220, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, 14, 1, 5, 29, 4, 1, 8, 13, 7, 16, 78, 2, 1, 17, 1, -224, -224, -224, -224, -224, 708, -224, -224, -224, -224, -224, -224, -224, -224, 4, 32, 17, 88, 5, 387, 98, 388, 709, 6, 32, 7, 10, 88, 3, 2, 387, 386, 98, 388, 710, 385, 5, 6, 33, 1, 28, 57, -236, -236, -236, -236, -236, 3, 6, 33, 1, 635, 636, 711, 5, 6, 33, 1, 28, 57, -241, -241, -241, -241, -241, 5, 6, 33, 1, 28, 57, -242, -242, -242, -242, -242, 5, 6, 33, 1, 28, 57, -244, -244, -244, -244, -244, 31, 1, 5, 29, 4, 1, 21, 7, 16, 38, 40, 1, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -228, -228, -228, -228, -228, -228, -228, -228, 121, -228, 120, -228, -228, -228, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 712, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, -301, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, -262, 9, 6, 29, 4, 1, 28, 16, 24, 17, 24, -125, -125, -125, -125, 400, -125, 401, -125, 713, 5, 6, 33, 1, 28, 16, -278, -278, -278, -278, -278, 5, 6, 33, 1, 28, 16, -279, -279, -279, -279, -279, 1, 100, 714, 54, 1, 5, 27, 2, 4, 1, 15, 1, 5, 5, 2, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, -253, 100, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 6, 4, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 715, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 102, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 1, 1, 1, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 1, 2, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 1, 1, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 6, 1, 6, 4, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 336, 232, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 412, 50, 24, 25, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 234, 32, 37, 36, 78, 79, 63, 39, 40, 84, 85, 66, 233, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 716, 80, 411, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 41, 42, 62, 43, 44, 45, 47, 48, 5, 6, 29, 4, 1, 28, -268, -268, -268, -268, -268, 3, 6, 33, 1, 652, 653, 717, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, -357, 14, 32, 15, 2, 33, 1, 2, 25, 1, 5, 5, 2, 4, 44, 1, 150, 153, 98, 151, 77, 154, 193, 152, 289, 93, 718, 719, 288, 192, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 720, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 5, 6, 33, 1, 28, 57, -195, -195, -195, -195, -195, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 421, -125, 721, -125, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 722, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 549, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 723, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 6, 6, 33, 1, 28, 12, 45, -93, -93, -93, -93, -93, -93, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -109, -109, -109, -109, -109, -109, -109, -109, -109, -109, -109, -109, -109, 23, 100, 22, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 724, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 725, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 95, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 2, 4, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 726, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 727, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, 1, 61, 728, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 729, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 730, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 731, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 732, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, -334, 733, -334, -334, 120, -334, -334, -334, -334, -334, -334, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, -338, 734, -338, -338, 120, -338, -338, -338, -338, -338, -338, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, -150, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, -152, 1, 100, 735, 1, 100, 736, 1, 100, 737, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, -167, 1, 100, 738, 3, 6, 33, 1, 475, 476, 739, 25, 36, 3, 83, 41, 1, 1, 4, 13, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 740, 158, 121, 120, 90, 91, 741, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 25, 36, 3, 83, 4, 37, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 742, 158, 121, 743, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 24, 36, 3, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 744, 158, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 24, 36, 3, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 745, 158, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 746, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 747, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 40, 748, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, 3, 40, 135, 2, -353, -353, -353, 24, 39, 29, 54, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -290, -290, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, -30, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, 3, 6, 33, 86, 627, 628, 749, 3, 54, 1, 1, 750, 99, 100, 5, 6, 33, 1, 28, 57, -214, -214, -214, -214, -214, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 516, -125, 751, -125, 5, 6, 33, 1, 28, 57, -215, -215, -215, -215, -215, 3, 54, 1, 1, 752, 99, 100, 5, 6, 33, 1, 28, 57, -237, -237, -237, -237, -237, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 523, -125, 753, -125, 5, 6, 33, 1, 28, 57, -238, -238, -238, -238, -238, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, 2, 39, 1, 535, 754, 53, 1, 5, 27, 2, 4, 1, 15, 1, 5, 7, 12, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, 5, 6, 29, 4, 1, 28, -269, -269, -269, -269, -269, 8, 6, 29, 4, 1, 28, 16, 24, 17, -125, -125, -125, -125, 543, -125, 755, -125, 5, 6, 29, 4, 1, 28, -270, -270, -270, -270, -270, 3, 124, 44, 2, 756, 440, 442, 11, 32, 15, 2, 33, 1, 2, 25, 1, 10, 2, 49, 150, 153, 98, 151, 155, 154, 193, 152, 93, 757, 192, 5, 6, 33, 1, 28, 57, -85, -85, -85, -85, -85, 3, 6, 33, 1, 551, 552, 758, 27, 6, 33, 1, 28, 54, 3, 38, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -84, -84, -84, -84, 121, -84, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 5, 6, 33, 1, 28, 57, -87, -87, -87, -87, -87, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, -112, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 759, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 23, 100, 22, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 760, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 761, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 4, 55, 1, 2, 2, -64, -64, -64, -64, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, -328, 120, -328, -328, -328, 762, -328, -328, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, -329, 763, -329, -329, 120, -329, -329, -329, -329, -329, -329, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, 120, -333, -333, -333, -333, -333, -333, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, -337, 120, -337, -337, -337, -337, -337, -337, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 764, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 765, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, -155, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, -159, 62, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 4, 13, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, 6, 6, 29, 4, 1, 28, 36, -131, -131, -131, -131, -131, -131, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, -313, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 766, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, -314, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 767, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, -318, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, 24, 36, 3, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 768, 158, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 24, 36, 3, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 769, 158, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, 1, 48, 770, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, 3, 6, 33, 1, 627, 628, 771, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, 3, 6, 33, 1, 635, 636, 772, 5, 6, 33, 1, 28, 16, -280, -280, -280, -280, -280, 3, 6, 33, 1, 652, 653, 773, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 774, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 124, 775, 5, 6, 33, 1, 28, 57, -196, -196, -196, -196, -196, 1, 100, 776, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, 23, 40, 82, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 777, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 778, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 779, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, -335, 120, -335, -335, -335, -335, -335, -335, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, 120, -339, -339, -339, -339, -339, -339, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 24, 36, 3, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 780, 158, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 24, 36, 3, 83, 41, 1, 1, 17, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 781, 158, 121, 120, 90, 91, 118, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, 3, 54, 1, 1, 782, 99, 100, 5, 6, 33, 1, 28, 57, -216, -216, -216, -216, -216, 5, 6, 33, 1, 28, 57, -239, -239, -239, -239, -239, 5, 6, 29, 4, 1, 28, -271, -271, -271, -271, -271, 43, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 4, 14, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -332, -332, -332, -332, -332, -332, 785, -332, -332, -332, -332, -332, 783, -332, -332, -332, 784, -332, -332, 120, -332, -332, -332, -332, -332, -332, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 786, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, -113, 1, 100, 787, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, -330, 120, -330, -330, -330, -330, -330, -330, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 42, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, 120, -331, -331, -331, -331, -331, -331, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, -315, 41, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 18, 2, 1, 1, 25, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, -316, 13, 1, 5, 29, 4, 1, 21, 7, 16, 78, 2, 1, 17, 1, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, 1, 125, 788, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 789, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 6, 6, 29, 4, 1, 44, 41, -126, -126, -126, -126, -126, -126, 43, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 4, 14, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -334, -334, -334, -334, -334, -334, 785, -334, -334, -334, -334, -334, 790, -334, -334, -334, 791, -334, -334, 120, -334, -334, -334, -334, -334, -334, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 13, 6, 27, 6, 1, 28, 27, 1, 1, 1, 1, 2, 24, 19, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, -115, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, -187, 43, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 4, 14, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -333, -333, -333, -333, -333, -333, 785, -333, -333, -333, -333, -333, 792, -333, -333, -333, -333, -333, -333, 120, -333, -333, -333, -333, -333, -333, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 1, 125, 793, 94, 7, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 3, 1, 2, 3, 1, 1, 1, 1, 6, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 7, 1, 2, 3, 1, 1, 1, 3, 8, 1, 2, 1, 1, 4, 2, 3, 1, 1, 1, 1, 1, 1, 7, 2, 8, 7, 10, 4, 1, 2, 1, 1, 1, 1, 4, 2, 5, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 794, 161, 26, 27, 28, 29, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 61, 86, 30, 50, 60, 67, 98, 68, 94, 95, 99, 100, 70, 96, 97, 34, 31, 69, 71, 72, 73, 74, 75, 87, 77, 81, 32, 37, 36, 78, 79, 63, 165, 166, 84, 85, 66, 49, 33, 35, 38, 82, 83, 93, 56, 58, 64, 65, 80, 53, 59, 76, 54, 90, 91, 55, 92, 46, 57, 51, 88, 52, 89, 167, 168, 169, 43, 44, 45, 47, 48, 1, 125, 795, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, -189, 43, 1, 5, 29, 4, 1, 21, 7, 12, 4, 2, 14, 4, 4, 14, 2, 1, 1, 25, 11, 1, 1, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -335, -335, -335, -335, -335, -335, 785, -335, -335, -335, -335, -335, 796, -335, -335, -335, -335, -335, -335, 120, -335, -335, -335, -335, -335, -335, 119, 104, 103, 102, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, -188, 1, 125, 797, 58, 1, 5, 27, 2, 3, 1, 1, 1, 1, 1, 12, 1, 5, 7, 8, 4, 4, 2, 9, 1, 1, 1, 1, 1, 1, 3, 11, 7, 2, 1, 1, 17, 1, 7, 11, 2, 1, 3, 1, 1, 12, 1, 5, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190, -190], t = [], p = 0, n, o, k2, a;
3005
2619
  while (p < d.length) {
3006
2620
  n = d[p++];
3007
2621
  o = {};
@@ -3015,7 +2629,7 @@ var parserInstance = {
3015
2629
  }
3016
2630
  return t;
3017
2631
  })(),
3018
- ruleTable: [0, 0, 3, 0, 3, 1, 4, 1, 4, 3, 4, 2, 5, 1, 5, 1, 5, 1, 9, 1, 9, 1, 9, 1, 9, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 33, 6, 33, 3, 18, 3, 18, 4, 18, 5, 19, 3, 19, 4, 19, 5, 20, 3, 20, 4, 20, 5, 21, 3, 21, 2, 22, 2, 23, 2, 24, 5, 51, 1, 51, 3, 51, 2, 52, 1, 52, 1, 52, 1, 52, 1, 53, 2, 53, 3, 53, 4, 53, 3, 8, 1, 8, 1, 32, 1, 32, 2, 32, 4, 32, 3, 39, 2, 39, 3, 35, 1, 65, 1, 66, 1, 66, 1, 68, 1, 68, 3, 71, 1, 71, 2, 73, 3, 73, 5, 73, 2, 73, 1, 76, 1, 76, 3, 81, 3, 81, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 17, 3, 17, 4, 17, 5, 90, 1, 90, 1, 90, 3, 90, 5, 90, 3, 90, 5, 94, 1, 94, 1, 94, 1, 91, 1, 91, 3, 91, 4, 91, 1, 92, 2, 92, 2, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 3, 98, 2, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 2, 98, 2, 98, 4, 98, 6, 98, 5, 98, 7, 10, 2, 10, 4, 10, 1, 15, 5, 15, 2, 60, 5, 60, 2, 47, 1, 47, 1, 118, 0, 118, 1, 37, 0, 37, 1, 37, 3, 37, 4, 37, 6, 119, 1, 119, 3, 119, 2, 119, 1, 120, 1, 120, 1, 120, 1, 120, 1, 122, 2, 123, 1, 123, 1, 123, 3, 123, 3, 123, 3, 123, 3, 123, 2, 123, 2, 123, 4, 123, 6, 123, 4, 123, 6, 123, 4, 123, 5, 123, 7, 123, 5, 123, 7, 123, 5, 123, 7, 123, 3, 123, 3, 123, 3, 123, 3, 123, 2, 123, 2, 123, 4, 123, 6, 123, 5, 123, 7, 40, 1, 40, 1, 40, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 100, 3, 100, 4, 100, 6, 128, 3, 128, 3, 63, 10, 63, 12, 63, 11, 63, 13, 63, 4, 138, 0, 138, 1, 138, 3, 138, 4, 138, 6, 30, 1, 30, 2, 30, 3, 30, 4, 30, 2, 30, 3, 30, 4, 30, 5, 12, 2, 12, 4, 12, 4, 12, 5, 12, 7, 12, 6, 12, 9, 144, 1, 144, 3, 144, 4, 144, 4, 144, 6, 145, 1, 145, 3, 145, 1, 145, 3, 142, 1, 143, 3, 13, 3, 13, 5, 13, 2, 13, 2, 13, 4, 13, 5, 13, 6, 13, 3, 13, 5, 13, 4, 13, 5, 13, 7, 150, 1, 150, 3, 150, 4, 150, 4, 150, 6, 152, 1, 152, 3, 152, 3, 152, 1, 152, 3, 79, 3, 79, 3, 79, 3, 79, 2, 79, 2, 103, 0, 103, 1, 104, 2, 104, 4, 101, 1, 101, 1, 95, 2, 121, 2, 121, 3, 121, 4, 160, 1, 160, 1, 126, 5, 124, 3, 124, 2, 124, 2, 124, 1, 155, 1, 155, 3, 155, 4, 155, 4, 155, 6, 162, 1, 162, 1, 162, 1, 162, 1, 158, 1, 158, 3, 158, 4, 158, 4, 158, 6, 163, 1, 163, 2, 159, 1, 159, 2, 157, 1, 157, 2, 164, 1, 164, 2, 165, 1, 165, 3, 26, 2, 26, 3, 26, 4, 26, 5, 167, 3, 167, 3, 167, 2, 31, 2, 31, 4, 99, 3, 99, 5, 173, 2, 173, 4, 173, 2, 173, 4, 27, 2, 27, 2, 27, 2, 27, 1, 176, 2, 176, 2, 28, 5, 28, 7, 28, 7, 28, 9, 28, 9, 28, 5, 28, 7, 28, 6, 28, 8, 28, 5, 28, 7, 28, 6, 28, 8, 28, 3, 28, 5, 28, 5, 28, 7, 28, 7, 28, 9, 28, 9, 28, 5, 28, 7, 28, 6, 28, 8, 28, 5, 28, 7, 28, 6, 28, 8, 28, 3, 28, 5, 182, 1, 182, 3, 133, 1, 133, 3, 29, 5, 29, 7, 29, 4, 29, 6, 184, 1, 184, 2, 186, 3, 186, 4, 188, 3, 188, 5, 190, 3, 190, 5, 25, 1, 25, 3, 25, 1, 25, 3, 25, 3, 25, 3, 25, 3, 61, 2, 61, 2, 61, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 4, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 3, 16, 5, 16, 4, 127, 2],
2632
+ ruleTable: [0, 0, 3, 0, 3, 1, 4, 1, 4, 3, 4, 2, 5, 1, 5, 1, 5, 1, 9, 1, 9, 1, 9, 1, 9, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 30, 6, 30, 3, 18, 3, 18, 4, 18, 5, 19, 3, 19, 4, 19, 5, 20, 3, 20, 4, 20, 5, 21, 3, 21, 4, 21, 5, 21, 2, 21, 3, 21, 4, 8, 1, 8, 1, 29, 1, 29, 2, 29, 4, 29, 3, 36, 2, 36, 3, 32, 1, 50, 1, 52, 1, 52, 1, 54, 1, 54, 3, 57, 1, 57, 2, 59, 3, 59, 5, 59, 2, 59, 1, 62, 1, 62, 3, 67, 3, 67, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, 17, 3, 17, 4, 17, 5, 77, 1, 77, 1, 77, 3, 77, 5, 77, 3, 77, 5, 81, 1, 81, 1, 81, 1, 78, 1, 78, 3, 78, 4, 78, 1, 79, 2, 79, 2, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 3, 87, 2, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 2, 87, 2, 87, 4, 87, 6, 87, 5, 87, 7, 10, 2, 10, 4, 10, 1, 15, 5, 15, 2, 44, 5, 44, 2, 105, 1, 105, 1, 108, 0, 108, 1, 34, 0, 34, 1, 34, 3, 34, 4, 34, 6, 109, 1, 109, 3, 109, 2, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 112, 2, 113, 1, 113, 1, 113, 3, 113, 3, 113, 3, 113, 3, 113, 2, 113, 2, 113, 4, 113, 6, 113, 4, 113, 6, 113, 4, 113, 5, 113, 7, 113, 5, 113, 7, 113, 5, 113, 7, 113, 3, 113, 3, 113, 3, 113, 3, 113, 2, 113, 2, 113, 4, 113, 6, 113, 5, 113, 7, 37, 1, 37, 1, 37, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 89, 3, 89, 4, 89, 6, 118, 3, 118, 3, 47, 10, 47, 12, 47, 11, 47, 13, 47, 4, 128, 0, 128, 1, 128, 3, 128, 4, 128, 6, 27, 1, 27, 2, 27, 3, 27, 4, 27, 2, 27, 3, 27, 4, 27, 5, 12, 2, 12, 4, 12, 4, 12, 5, 12, 7, 12, 6, 12, 9, 134, 1, 134, 3, 134, 4, 134, 4, 134, 6, 135, 1, 135, 3, 135, 1, 135, 3, 132, 1, 133, 3, 13, 3, 13, 5, 13, 2, 13, 2, 13, 4, 13, 5, 13, 6, 13, 3, 13, 5, 13, 4, 13, 5, 13, 7, 140, 1, 140, 3, 140, 4, 140, 4, 140, 6, 142, 1, 142, 3, 142, 3, 142, 1, 142, 3, 65, 3, 65, 3, 65, 3, 65, 2, 65, 2, 92, 0, 92, 1, 93, 2, 93, 4, 90, 1, 90, 1, 82, 2, 111, 2, 111, 3, 111, 4, 150, 1, 150, 1, 116, 5, 114, 3, 114, 2, 114, 2, 114, 1, 145, 1, 145, 3, 145, 4, 145, 4, 145, 6, 152, 1, 152, 1, 152, 1, 152, 1, 148, 1, 148, 3, 148, 4, 148, 4, 148, 6, 153, 1, 153, 2, 149, 1, 149, 2, 147, 1, 147, 2, 154, 1, 154, 2, 155, 1, 155, 3, 23, 2, 23, 3, 23, 4, 23, 5, 157, 3, 157, 3, 157, 2, 28, 2, 28, 4, 88, 3, 88, 5, 163, 2, 163, 4, 163, 2, 163, 4, 24, 2, 24, 2, 24, 2, 24, 1, 166, 2, 166, 2, 25, 5, 25, 7, 25, 7, 25, 9, 25, 9, 25, 5, 25, 7, 25, 6, 25, 8, 25, 5, 25, 7, 25, 6, 25, 8, 25, 3, 25, 5, 25, 5, 25, 7, 25, 7, 25, 9, 25, 9, 25, 5, 25, 7, 25, 6, 25, 8, 25, 5, 25, 7, 25, 6, 25, 8, 25, 3, 25, 5, 172, 1, 172, 3, 123, 1, 123, 3, 26, 5, 26, 7, 26, 4, 26, 6, 174, 1, 174, 2, 176, 3, 176, 4, 178, 3, 178, 5, 180, 3, 180, 5, 22, 1, 22, 3, 22, 1, 22, 3, 22, 3, 22, 3, 22, 3, 45, 2, 45, 2, 45, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 4, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 3, 16, 5, 16, 4, 117, 2],
3019
2633
  ruleActions: (rule, vals, locs, shared) => {
3020
2634
  const $ = vals;
3021
2635
  const $0 = vals.length - 1;
@@ -3025,30 +2639,27 @@ var parserInstance = {
3025
2639
  case 2:
3026
2640
  return ["program", ...$[$0]];
3027
2641
  case 3:
3028
- case 49:
3029
- case 74:
3030
- case 141:
3031
- case 206:
3032
- case 225:
3033
- case 248:
3034
- case 280:
3035
- case 294:
3036
- case 298:
3037
- case 357:
3038
- case 363:
2642
+ case 61:
2643
+ case 128:
2644
+ case 193:
2645
+ case 212:
2646
+ case 235:
2647
+ case 267:
2648
+ case 281:
2649
+ case 285:
2650
+ case 344:
2651
+ case 350:
3039
2652
  return [$[$0]];
3040
2653
  case 4:
3041
- case 50:
3042
- case 142:
3043
- case 207:
3044
- case 226:
3045
- case 249:
3046
- case 281:
2654
+ case 129:
2655
+ case 194:
2656
+ case 213:
2657
+ case 236:
2658
+ case 268:
3047
2659
  return [...$[$0 - 2], $[$0]];
3048
2660
  case 5:
3049
- case 51:
3050
- case 76:
3051
- case 301:
2661
+ case 63:
2662
+ case 288:
3052
2663
  return $[$0 - 1];
3053
2664
  case 6:
3054
2665
  case 7:
@@ -3074,583 +2685,570 @@ var parserInstance = {
3074
2685
  case 27:
3075
2686
  case 28:
3076
2687
  case 29:
3077
- case 30:
3078
- case 31:
3079
- case 32:
3080
- case 52:
3081
- case 53:
3082
- case 54:
2688
+ case 47:
2689
+ case 48:
3083
2690
  case 55:
3084
- case 60:
3085
- case 61:
3086
- case 68:
3087
- case 69:
3088
- case 70:
2691
+ case 56:
2692
+ case 57:
2693
+ case 58:
2694
+ case 59:
2695
+ case 66:
2696
+ case 67:
3089
2697
  case 71:
3090
2698
  case 72:
3091
- case 79:
3092
- case 80:
3093
- case 84:
3094
- case 85:
3095
- case 86:
2699
+ case 73:
2700
+ case 76:
2701
+ case 77:
2702
+ case 78:
2703
+ case 83:
2704
+ case 88:
3096
2705
  case 89:
3097
2706
  case 90:
3098
2707
  case 91:
3099
- case 96:
2708
+ case 94:
2709
+ case 97:
2710
+ case 98:
2711
+ case 99:
2712
+ case 100:
3100
2713
  case 101:
3101
- case 102:
3102
- case 103:
3103
- case 104:
3104
- case 107:
3105
- case 110:
3106
- case 111:
3107
- case 112:
3108
- case 113:
3109
- case 114:
2714
+ case 123:
2715
+ case 124:
2716
+ case 125:
2717
+ case 126:
2718
+ case 132:
3110
2719
  case 136:
3111
2720
  case 137:
3112
2721
  case 138:
3113
2722
  case 139:
3114
- case 145:
3115
- case 149:
3116
- case 150:
3117
- case 151:
3118
- case 152:
3119
- case 154:
3120
- case 155:
3121
- case 183:
3122
- case 184:
3123
- case 185:
3124
- case 186:
3125
- case 187:
3126
- case 188:
3127
- case 189:
3128
- case 190:
3129
- case 191:
3130
- case 192:
3131
- case 193:
3132
- case 194:
3133
- case 230:
3134
- case 232:
3135
- case 234:
3136
- case 253:
3137
- case 256:
3138
- case 285:
3139
- case 286:
3140
- case 287:
2723
+ case 141:
2724
+ case 142:
2725
+ case 170:
2726
+ case 171:
2727
+ case 172:
2728
+ case 173:
2729
+ case 174:
2730
+ case 175:
2731
+ case 176:
2732
+ case 177:
2733
+ case 178:
2734
+ case 179:
2735
+ case 180:
2736
+ case 181:
2737
+ case 217:
2738
+ case 219:
2739
+ case 221:
2740
+ case 240:
2741
+ case 243:
2742
+ case 272:
2743
+ case 273:
2744
+ case 274:
2745
+ case 276:
3141
2746
  case 289:
3142
- case 302:
3143
- case 322:
3144
- case 355:
3145
- case 371:
3146
- case 373:
2747
+ case 309:
2748
+ case 342:
2749
+ case 358:
2750
+ case 360:
3147
2751
  return $[$0];
3148
- case 33:
2752
+ case 30:
3149
2753
  return ["def", $[$0 - 4], $[$0 - 2], $[$0]];
3150
- case 34:
2754
+ case 31:
3151
2755
  return ["def", $[$0 - 1], [], $[$0]];
2756
+ case 32:
2757
+ return ["state", $[$0 - 2], $[$0]];
2758
+ case 33:
2759
+ return ["state", $[$0 - 3], $[$0]];
2760
+ case 34:
2761
+ return ["state", $[$0 - 4], $[$0 - 1]];
3152
2762
  case 35:
3153
- return ["signal", $[$0 - 2], $[$0]];
2763
+ return ["computed", $[$0 - 2], $[$0]];
3154
2764
  case 36:
3155
- return ["signal", $[$0 - 3], $[$0]];
2765
+ return ["computed", $[$0 - 3], $[$0]];
3156
2766
  case 37:
3157
- return ["signal", $[$0 - 4], $[$0 - 1]];
2767
+ return ["computed", $[$0 - 4], $[$0 - 1]];
3158
2768
  case 38:
3159
- return ["derived", $[$0 - 2], $[$0]];
2769
+ return ["readonly", $[$0 - 2], $[$0]];
3160
2770
  case 39:
3161
- return ["derived", $[$0 - 3], $[$0]];
2771
+ return ["readonly", $[$0 - 3], $[$0]];
3162
2772
  case 40:
3163
- return ["derived", $[$0 - 4], $[$0 - 1]];
2773
+ return ["readonly", $[$0 - 4], $[$0 - 1]];
3164
2774
  case 41:
3165
- return ["readonly", $[$0 - 2], $[$0]];
2775
+ return ["effect", $[$0 - 2], $[$0]];
3166
2776
  case 42:
3167
- return ["readonly", $[$0 - 3], $[$0]];
2777
+ return ["effect", $[$0 - 3], $[$0]];
3168
2778
  case 43:
3169
- return ["readonly", $[$0 - 4], $[$0 - 1]];
2779
+ return ["effect", $[$0 - 4], $[$0 - 1]];
3170
2780
  case 44:
3171
2781
  case 45:
3172
- return ["effect", $[$0]];
2782
+ return ["effect", null, $[$0]];
3173
2783
  case 46:
3174
- return ["render", $[$0]];
3175
- case 47:
3176
- return ["style", $[$0]];
3177
- case 48:
3178
- return ["component", $[$0 - 3], ["block", ...$[$0 - 1]]];
3179
- case 56:
3180
- return ["prop", $[$0]];
3181
- case 57:
3182
- return ["prop", $[$0 - 1], "optional"];
3183
- case 58:
3184
- return ["prop", $[$0 - 2], $[$0]];
3185
- case 59:
3186
- return ["prop-rest", $[$0]];
3187
- case 62:
2784
+ return ["effect", null, $[$0 - 1]];
2785
+ case 49:
3188
2786
  return ["yield"];
3189
- case 63:
2787
+ case 50:
3190
2788
  return ["yield", $[$0]];
3191
- case 64:
2789
+ case 51:
3192
2790
  return ["yield", $[$0 - 1]];
3193
- case 65:
2791
+ case 52:
3194
2792
  return ["yield-from", $[$0]];
3195
- case 66:
2793
+ case 53:
3196
2794
  return ["block"];
3197
- case 67:
2795
+ case 54:
3198
2796
  return ["block", ...$[$0 - 1]];
3199
- case 73:
2797
+ case 60:
3200
2798
  return ["str", ...$[$0 - 1]];
3201
- case 75:
3202
- case 295:
3203
- case 299:
3204
- case 364:
2799
+ case 62:
2800
+ case 282:
2801
+ case 286:
2802
+ case 351:
3205
2803
  return [...$[$0 - 1], $[$0]];
3206
- case 77:
3207
- case 228:
3208
- case 251:
3209
- case 266:
3210
- case 283:
3211
- return $[$0 - 2];
3212
- case 78:
3213
- return "";
3214
- case 81:
2804
+ case 64:
2805
+ case 215:
2806
+ case 238:
2807
+ case 253:
2808
+ case 270:
2809
+ return $[$0 - 2];
2810
+ case 65:
2811
+ return "";
2812
+ case 68:
3215
2813
  return ["regex", $[$0 - 1]];
3216
- case 82:
2814
+ case 69:
3217
2815
  return ["regex-index", $[$0 - 2], $[$0]];
3218
- case 83:
2816
+ case 70:
3219
2817
  return ["regex-index", $[$0], null];
3220
- case 87:
2818
+ case 74:
3221
2819
  return "undefined";
3222
- case 88:
2820
+ case 75:
3223
2821
  return "null";
3224
- case 92:
2822
+ case 79:
3225
2823
  return ["=", $[$0 - 2], $[$0]];
3226
- case 93:
2824
+ case 80:
3227
2825
  return ["=", $[$0 - 3], $[$0]];
3228
- case 94:
2826
+ case 81:
3229
2827
  return ["=", $[$0 - 4], $[$0 - 1]];
3230
- case 95:
2828
+ case 82:
3231
2829
  return [$[$0], $[$0], null];
3232
- case 97:
2830
+ case 84:
3233
2831
  return [$[$0 - 2], $[$0], ":"];
3234
- case 98:
2832
+ case 85:
3235
2833
  return [$[$0 - 4], $[$0 - 1], ":"];
3236
- case 99:
2834
+ case 86:
3237
2835
  return [$[$0 - 2], $[$0], "="];
3238
- case 100:
2836
+ case 87:
3239
2837
  return [$[$0 - 4], $[$0 - 1], "="];
3240
- case 105:
3241
- return ["computed", $[$0 - 1]];
3242
- case 106:
2838
+ case 92:
2839
+ return ["dynamicKey", $[$0 - 1]];
2840
+ case 93:
3243
2841
  return ["[]", "this", $[$0 - 1]];
3244
- case 108:
3245
- case 109:
3246
- case 153:
2842
+ case 95:
2843
+ case 96:
2844
+ case 140:
3247
2845
  return ["...", $[$0]];
3248
- case 115:
3249
- case 261:
2846
+ case 102:
2847
+ case 248:
3250
2848
  return ["super", ...$[$0]];
3251
- case 116:
3252
- case 262:
2849
+ case 103:
2850
+ case 249:
3253
2851
  return ["import", ...$[$0]];
3254
- case 117:
3255
- case 118:
2852
+ case 104:
2853
+ case 105:
3256
2854
  return [$[$0 - 2], ...$[$0]];
3257
- case 119:
3258
- case 156:
3259
- case 173:
2855
+ case 106:
2856
+ case 143:
2857
+ case 160:
3260
2858
  return [".", $[$0 - 2], $[$0]];
3261
- case 120:
3262
- case 157:
3263
- case 174:
2859
+ case 107:
2860
+ case 144:
2861
+ case 161:
3264
2862
  return ["?.", $[$0 - 2], $[$0]];
3265
- case 121:
3266
- case 158:
3267
- case 175:
2863
+ case 108:
2864
+ case 145:
2865
+ case 162:
3268
2866
  return ["::", $[$0 - 2], $[$0]];
3269
- case 122:
3270
- case 159:
3271
- case 176:
2867
+ case 109:
2868
+ case 146:
2869
+ case 163:
3272
2870
  return ["?::", $[$0 - 2], $[$0]];
3273
- case 123:
3274
- case 160:
3275
- case 177:
2871
+ case 110:
2872
+ case 147:
2873
+ case 164:
3276
2874
  return ["::", $[$0 - 1], "prototype"];
3277
- case 124:
3278
- case 161:
3279
- case 178:
2875
+ case 111:
2876
+ case 148:
2877
+ case 165:
3280
2878
  return ["?::", $[$0 - 1], "prototype"];
3281
- case 125:
3282
- case 162:
3283
- case 164:
3284
- case 179:
2879
+ case 112:
2880
+ case 149:
2881
+ case 151:
2882
+ case 166:
3285
2883
  return ["[]", $[$0 - 3], $[$0 - 1]];
3286
- case 126:
3287
- case 163:
3288
- case 165:
3289
- case 180:
3290
- return ["[]", $[$0 - 5], $[$0 - 2]];
3291
- case 127:
2884
+ case 113:
2885
+ case 150:
2886
+ case 152:
3292
2887
  case 167:
3293
- case 169:
3294
- case 181:
3295
- return ["?[]", $[$0 - 4], $[$0 - 1]];
3296
- case 128:
2888
+ return ["[]", $[$0 - 5], $[$0 - 2]];
2889
+ case 114:
2890
+ case 154:
2891
+ case 156:
3297
2892
  case 168:
3298
- case 170:
3299
- case 182:
2893
+ return ["?[]", $[$0 - 4], $[$0 - 1]];
2894
+ case 115:
2895
+ case 155:
2896
+ case 157:
2897
+ case 169:
3300
2898
  return ["?[]", $[$0 - 6], $[$0 - 2]];
3301
- case 129:
2899
+ case 116:
3302
2900
  return ["return", $[$0]];
3303
- case 130:
2901
+ case 117:
3304
2902
  return ["return", $[$0 - 1]];
3305
- case 131:
2903
+ case 118:
3306
2904
  return ["return"];
3307
- case 132:
3308
- case 134:
2905
+ case 119:
2906
+ case 121:
3309
2907
  return [$[$0 - 1], $[$0 - 3], $[$0]];
3310
- case 133:
3311
- case 135:
2908
+ case 120:
2909
+ case 122:
3312
2910
  return [$[$0 - 1], [], $[$0]];
3313
- case 140:
3314
- case 205:
3315
- case 265:
3316
- case 296:
2911
+ case 127:
2912
+ case 192:
2913
+ case 252:
2914
+ case 283:
3317
2915
  return [];
3318
- case 143:
3319
- case 208:
3320
- case 227:
3321
- case 250:
3322
- case 282:
2916
+ case 130:
2917
+ case 195:
2918
+ case 214:
2919
+ case 237:
2920
+ case 269:
3323
2921
  return [...$[$0 - 3], $[$0]];
3324
- case 144:
3325
- case 209:
3326
- case 229:
3327
- case 252:
3328
- case 284:
2922
+ case 131:
2923
+ case 196:
2924
+ case 216:
2925
+ case 239:
2926
+ case 271:
3329
2927
  return [...$[$0 - 5], ...$[$0 - 2]];
3330
- case 146:
3331
- case 356:
2928
+ case 133:
2929
+ case 343:
3332
2930
  return ["default", $[$0 - 2], $[$0]];
3333
- case 147:
2931
+ case 134:
3334
2932
  return ["rest", $[$0]];
3335
- case 148:
2933
+ case 135:
3336
2934
  return ["expansion"];
3337
- case 166:
2935
+ case 153:
3338
2936
  return [$[$0 - 1][0], $[$0 - 3], ...$[$0 - 1].slice(1)];
3339
- case 171:
2937
+ case 158:
3340
2938
  return ["optindex", $[$0 - 4], $[$0 - 1]];
3341
- case 172:
2939
+ case 159:
3342
2940
  return ["optindex", $[$0 - 6], $[$0 - 2]];
3343
- case 195:
2941
+ case 182:
3344
2942
  return [".", "super", $[$0]];
3345
- case 196:
2943
+ case 183:
3346
2944
  return ["[]", "super", $[$0 - 1]];
3347
- case 197:
2945
+ case 184:
3348
2946
  return ["[]", "super", $[$0 - 2]];
3349
- case 198:
2947
+ case 185:
3350
2948
  return [".", "new", $[$0]];
3351
- case 199:
2949
+ case 186:
3352
2950
  return [".", "import", $[$0]];
3353
- case 200:
2951
+ case 187:
3354
2952
  return ["object-comprehension", $[$0 - 8], $[$0 - 6], [["for-of", $[$0 - 4], $[$0 - 2], false]], []];
3355
- case 201:
2953
+ case 188:
3356
2954
  return ["object-comprehension", $[$0 - 10], $[$0 - 8], [["for-of", $[$0 - 6], $[$0 - 4], false]], [$[$0 - 2]]];
3357
- case 202:
2955
+ case 189:
3358
2956
  return ["object-comprehension", $[$0 - 9], $[$0 - 7], [["for-of", $[$0 - 4], $[$0 - 2], true]], []];
3359
- case 203:
2957
+ case 190:
3360
2958
  return ["object-comprehension", $[$0 - 11], $[$0 - 9], [["for-of", $[$0 - 6], $[$0 - 4], true]], [$[$0 - 2]]];
3361
- case 204:
2959
+ case 191:
3362
2960
  return ["object", ...$[$0 - 2]];
3363
- case 210:
2961
+ case 197:
3364
2962
  return ["class", null, null];
3365
- case 211:
2963
+ case 198:
3366
2964
  return ["class", null, null, $[$0]];
3367
- case 212:
2965
+ case 199:
3368
2966
  return ["class", null, $[$0]];
3369
- case 213:
2967
+ case 200:
3370
2968
  return ["class", null, $[$0 - 1], $[$0]];
3371
- case 214:
2969
+ case 201:
3372
2970
  return ["class", $[$0], null];
3373
- case 215:
2971
+ case 202:
3374
2972
  return ["class", $[$0 - 1], null, $[$0]];
3375
- case 216:
2973
+ case 203:
3376
2974
  return ["class", $[$0 - 2], $[$0]];
3377
- case 217:
2975
+ case 204:
3378
2976
  return ["class", $[$0 - 3], $[$0 - 1], $[$0]];
3379
- case 218:
3380
- case 221:
2977
+ case 205:
2978
+ case 208:
3381
2979
  return ["import", "{}", $[$0]];
3382
- case 219:
3383
- case 220:
2980
+ case 206:
2981
+ case 207:
3384
2982
  return ["import", $[$0 - 2], $[$0]];
3385
- case 222:
2983
+ case 209:
3386
2984
  return ["import", $[$0 - 4], $[$0]];
3387
- case 223:
2985
+ case 210:
3388
2986
  return ["import", [$[$0 - 4], $[$0 - 2]], $[$0]];
3389
- case 224:
2987
+ case 211:
3390
2988
  return ["import", [$[$0 - 7], $[$0 - 4]], $[$0]];
3391
- case 231:
3392
- case 233:
3393
- case 254:
3394
- case 255:
3395
- case 257:
3396
- case 358:
2989
+ case 218:
2990
+ case 220:
2991
+ case 241:
2992
+ case 242:
2993
+ case 244:
2994
+ case 345:
3397
2995
  return [$[$0 - 2], $[$0]];
3398
- case 235:
2996
+ case 222:
3399
2997
  return ["*", $[$0]];
3400
- case 236:
2998
+ case 223:
3401
2999
  return ["export", "{}"];
3402
- case 237:
3000
+ case 224:
3403
3001
  return ["export", $[$0 - 2]];
3404
- case 238:
3405
- case 239:
3002
+ case 225:
3003
+ case 226:
3406
3004
  return ["export", $[$0]];
3407
- case 240:
3005
+ case 227:
3408
3006
  return ["export", ["=", $[$0 - 2], $[$0]]];
3409
- case 241:
3007
+ case 228:
3410
3008
  return ["export", ["=", $[$0 - 3], $[$0]]];
3411
- case 242:
3009
+ case 229:
3412
3010
  return ["export", ["=", $[$0 - 4], $[$0 - 1]]];
3413
- case 243:
3011
+ case 230:
3414
3012
  return ["export-default", $[$0]];
3415
- case 244:
3013
+ case 231:
3416
3014
  return ["export-default", $[$0 - 1]];
3417
- case 245:
3015
+ case 232:
3418
3016
  return ["export-all", $[$0]];
3419
- case 246:
3017
+ case 233:
3420
3018
  return ["export-from", "{}", $[$0]];
3421
- case 247:
3019
+ case 234:
3422
3020
  return ["export-from", $[$0 - 4], $[$0]];
3423
- case 258:
3021
+ case 245:
3424
3022
  return ["tagged-template", $[$0 - 2], $[$0]];
3425
- case 259:
3023
+ case 246:
3426
3024
  return $[$0 - 1] ? ["?call", $[$0 - 2], ...$[$0]] : [$[$0 - 2], ...$[$0]];
3427
- case 260:
3025
+ case 247:
3428
3026
  return ["optcall", $[$0 - 2], ...$[$0]];
3429
- case 263:
3430
- case 300:
3027
+ case 250:
3028
+ case 287:
3431
3029
  return null;
3432
- case 264:
3030
+ case 251:
3433
3031
  return true;
3434
- case 267:
3435
- case 268:
3032
+ case 254:
3033
+ case 255:
3436
3034
  return "this";
3437
- case 269:
3035
+ case 256:
3438
3036
  return [".", "this", $[$0]];
3439
- case 270:
3037
+ case 257:
3440
3038
  return ["array"];
3441
- case 271:
3039
+ case 258:
3442
3040
  return ["array", ...$[$0 - 1]];
3443
- case 272:
3041
+ case 259:
3444
3042
  return ["array", ...$[$0 - 2], ...$[$0 - 1]];
3445
- case 273:
3043
+ case 260:
3446
3044
  return "..";
3447
- case 274:
3448
- case 288:
3449
- return "...";
3045
+ case 261:
3450
3046
  case 275:
3047
+ return "...";
3048
+ case 262:
3451
3049
  return [$[$0 - 2], $[$0 - 3], $[$0 - 1]];
3452
- case 276:
3050
+ case 263:
3051
+ case 382:
3052
+ case 384:
3053
+ case 385:
3054
+ case 393:
3453
3055
  case 395:
3454
- case 397:
3455
- case 398:
3456
- case 406:
3457
- case 408:
3458
3056
  return [$[$0 - 1], $[$0 - 2], $[$0]];
3459
- case 277:
3057
+ case 264:
3460
3058
  return [$[$0], $[$0 - 1], null];
3461
- case 278:
3059
+ case 265:
3462
3060
  return [$[$0 - 1], null, $[$0]];
3463
- case 279:
3061
+ case 266:
3464
3062
  return [$[$0], null, null];
3465
- case 290:
3063
+ case 277:
3466
3064
  return [...$[$0 - 2], ...$[$0]];
3467
- case 291:
3065
+ case 278:
3468
3066
  return [...$[$0 - 3], ...$[$0]];
3469
- case 292:
3067
+ case 279:
3470
3068
  return [...$[$0 - 2], ...$[$0 - 1]];
3471
- case 293:
3069
+ case 280:
3472
3070
  return [...$[$0 - 5], ...$[$0 - 4], ...$[$0 - 2], ...$[$0 - 1]];
3473
- case 297:
3071
+ case 284:
3474
3072
  return [...$[$0]];
3475
- case 303:
3073
+ case 290:
3476
3074
  return Array.isArray($[$0 - 2]) ? [...$[$0 - 2], $[$0]] : [$[$0 - 2], $[$0]];
3477
- case 304:
3075
+ case 291:
3478
3076
  return ["try", $[$0]];
3479
- case 305:
3077
+ case 292:
3480
3078
  return ["try", $[$0 - 1], $[$0]];
3481
- case 306:
3079
+ case 293:
3482
3080
  return ["try", $[$0 - 2], $[$0]];
3483
- case 307:
3081
+ case 294:
3484
3082
  return ["try", $[$0 - 3], $[$0 - 2], $[$0]];
3485
- case 308:
3486
- case 309:
3487
- case 378:
3488
- case 381:
3489
- case 383:
3083
+ case 295:
3084
+ case 296:
3085
+ case 365:
3086
+ case 368:
3087
+ case 370:
3490
3088
  return [$[$0 - 1], $[$0]];
3491
- case 310:
3089
+ case 297:
3492
3090
  return [null, $[$0]];
3493
- case 311:
3091
+ case 298:
3494
3092
  return ["throw", $[$0]];
3495
- case 312:
3093
+ case 299:
3496
3094
  return ["throw", $[$0 - 1]];
3497
- case 313:
3095
+ case 300:
3498
3096
  return $[$0 - 1].length === 1 ? $[$0 - 1][0] : $[$0 - 1];
3499
- case 314:
3097
+ case 301:
3500
3098
  return $[$0 - 2].length === 1 ? $[$0 - 2][0] : $[$0 - 2];
3501
- case 315:
3099
+ case 302:
3502
3100
  return ["while", $[$0]];
3503
- case 316:
3101
+ case 303:
3504
3102
  return ["while", $[$0 - 2], $[$0]];
3505
- case 317:
3103
+ case 304:
3506
3104
  return ["until", $[$0]];
3507
- case 318:
3105
+ case 305:
3508
3106
  return ["until", $[$0 - 2], $[$0]];
3509
- case 319:
3107
+ case 306:
3510
3108
  return $[$0 - 1].length === 2 ? [$[$0 - 1][0], $[$0 - 1][1], $[$0]] : [$[$0 - 1][0], $[$0 - 1][1], $[$0 - 1][2], $[$0]];
3511
- case 320:
3512
- case 321:
3109
+ case 307:
3110
+ case 308:
3513
3111
  return $[$0].length === 2 ? [$[$0][0], $[$0][1], [$[$0 - 1]]] : [$[$0][0], $[$0][1], $[$0][2], [$[$0 - 1]]];
3514
- case 323:
3112
+ case 310:
3515
3113
  return ["loop", $[$0]];
3516
- case 324:
3114
+ case 311:
3517
3115
  return ["loop", [$[$0]]];
3518
- case 325:
3116
+ case 312:
3519
3117
  return ["for-in", $[$0 - 3], $[$0 - 1], null, null, $[$0]];
3520
- case 326:
3118
+ case 313:
3521
3119
  return ["for-in", $[$0 - 5], $[$0 - 3], null, $[$0 - 1], $[$0]];
3522
- case 327:
3120
+ case 314:
3523
3121
  return ["for-in", $[$0 - 5], $[$0 - 3], $[$0 - 1], null, $[$0]];
3524
- case 328:
3122
+ case 315:
3525
3123
  return ["for-in", $[$0 - 7], $[$0 - 5], $[$0 - 1], $[$0 - 3], $[$0]];
3526
- case 329:
3124
+ case 316:
3527
3125
  return ["for-in", $[$0 - 7], $[$0 - 5], $[$0 - 3], $[$0 - 1], $[$0]];
3528
- case 330:
3126
+ case 317:
3529
3127
  return ["for-of", $[$0 - 3], $[$0 - 1], false, null, $[$0]];
3530
- case 331:
3128
+ case 318:
3531
3129
  return ["for-of", $[$0 - 5], $[$0 - 3], false, $[$0 - 1], $[$0]];
3532
- case 332:
3130
+ case 319:
3533
3131
  return ["for-of", $[$0 - 3], $[$0 - 1], true, null, $[$0]];
3534
- case 333:
3132
+ case 320:
3535
3133
  return ["for-of", $[$0 - 5], $[$0 - 3], true, $[$0 - 1], $[$0]];
3536
- case 334:
3134
+ case 321:
3537
3135
  return ["for-from", $[$0 - 3], $[$0 - 1], false, null, $[$0]];
3538
- case 335:
3136
+ case 322:
3539
3137
  return ["for-from", $[$0 - 5], $[$0 - 3], false, $[$0 - 1], $[$0]];
3540
- case 336:
3138
+ case 323:
3541
3139
  return ["for-from", $[$0 - 3], $[$0 - 1], true, null, $[$0]];
3542
- case 337:
3140
+ case 324:
3543
3141
  return ["for-from", $[$0 - 5], $[$0 - 3], true, $[$0 - 1], $[$0]];
3544
- case 338:
3142
+ case 325:
3545
3143
  return ["for-in", [], $[$0 - 1], null, null, $[$0]];
3546
- case 339:
3144
+ case 326:
3547
3145
  return ["for-in", [], $[$0 - 3], $[$0 - 1], null, $[$0]];
3548
- case 340:
3146
+ case 327:
3549
3147
  return ["comprehension", $[$0 - 4], [["for-in", $[$0 - 2], $[$0], null]], []];
3550
- case 341:
3148
+ case 328:
3551
3149
  return ["comprehension", $[$0 - 6], [["for-in", $[$0 - 4], $[$0 - 2], null]], [$[$0]]];
3552
- case 342:
3150
+ case 329:
3553
3151
  return ["comprehension", $[$0 - 6], [["for-in", $[$0 - 4], $[$0 - 2], $[$0]]], []];
3554
- case 343:
3152
+ case 330:
3555
3153
  return ["comprehension", $[$0 - 8], [["for-in", $[$0 - 6], $[$0 - 4], $[$0]]], [$[$0 - 2]]];
3556
- case 344:
3154
+ case 331:
3557
3155
  return ["comprehension", $[$0 - 8], [["for-in", $[$0 - 6], $[$0 - 4], $[$0 - 2]]], [$[$0]]];
3558
- case 345:
3156
+ case 332:
3559
3157
  return ["comprehension", $[$0 - 4], [["for-of", $[$0 - 2], $[$0], false]], []];
3560
- case 346:
3158
+ case 333:
3561
3159
  return ["comprehension", $[$0 - 6], [["for-of", $[$0 - 4], $[$0 - 2], false]], [$[$0]]];
3562
- case 347:
3160
+ case 334:
3563
3161
  return ["comprehension", $[$0 - 5], [["for-of", $[$0 - 2], $[$0], true]], []];
3564
- case 348:
3162
+ case 335:
3565
3163
  return ["comprehension", $[$0 - 7], [["for-of", $[$0 - 4], $[$0 - 2], true]], [$[$0]]];
3566
- case 349:
3164
+ case 336:
3567
3165
  return ["comprehension", $[$0 - 4], [["for-from", $[$0 - 2], $[$0], false, null]], []];
3568
- case 350:
3166
+ case 337:
3569
3167
  return ["comprehension", $[$0 - 6], [["for-from", $[$0 - 4], $[$0 - 2], false, null]], [$[$0]]];
3570
- case 351:
3168
+ case 338:
3571
3169
  return ["comprehension", $[$0 - 5], [["for-from", $[$0 - 2], $[$0], true, null]], []];
3572
- case 352:
3170
+ case 339:
3573
3171
  return ["comprehension", $[$0 - 7], [["for-from", $[$0 - 4], $[$0 - 2], true, null]], [$[$0]]];
3574
- case 353:
3172
+ case 340:
3575
3173
  return ["comprehension", $[$0 - 2], [["for-in", [], $[$0], null]], []];
3576
- case 354:
3174
+ case 341:
3577
3175
  return ["comprehension", $[$0 - 4], [["for-in", [], $[$0 - 2], $[$0]]], []];
3578
- case 359:
3176
+ case 346:
3579
3177
  return ["switch", $[$0 - 3], $[$0 - 1], null];
3580
- case 360:
3178
+ case 347:
3581
3179
  return ["switch", $[$0 - 5], $[$0 - 3], $[$0 - 1]];
3582
- case 361:
3180
+ case 348:
3583
3181
  return ["switch", null, $[$0 - 1], null];
3584
- case 362:
3182
+ case 349:
3585
3183
  return ["switch", null, $[$0 - 3], $[$0 - 1]];
3586
- case 365:
3184
+ case 352:
3587
3185
  return ["when", $[$0 - 1], $[$0]];
3588
- case 366:
3186
+ case 353:
3589
3187
  return ["when", $[$0 - 2], $[$0 - 1]];
3590
- case 367:
3188
+ case 354:
3591
3189
  return ["if", $[$0 - 1], $[$0]];
3592
- case 368:
3190
+ case 355:
3593
3191
  return $[$0 - 4].length === 3 ? ["if", $[$0 - 4][1], $[$0 - 4][2], ["if", $[$0 - 1], $[$0]]] : [...$[$0 - 4], ["if", $[$0 - 1], $[$0]]];
3594
- case 369:
3192
+ case 356:
3595
3193
  return ["unless", $[$0 - 1], $[$0]];
3596
- case 370:
3194
+ case 357:
3597
3195
  return ["if", ["!", $[$0 - 3]], $[$0 - 2], $[$0]];
3598
- case 372:
3196
+ case 359:
3599
3197
  return $[$0 - 2].length === 3 ? ["if", $[$0 - 2][1], $[$0 - 2][2], $[$0]] : [...$[$0 - 2], $[$0]];
3600
- case 374:
3601
- case 375:
3198
+ case 361:
3199
+ case 362:
3602
3200
  return ["if", $[$0], [$[$0 - 2]]];
3603
- case 376:
3604
- case 377:
3201
+ case 363:
3202
+ case 364:
3605
3203
  return ["unless", $[$0], [$[$0 - 2]]];
3606
- case 379:
3607
- case 380:
3608
- case 382:
3609
- case 411:
3204
+ case 366:
3205
+ case 367:
3206
+ case 369:
3207
+ case 398:
3610
3208
  return ["do-iife", $[$0]];
3611
- case 384:
3209
+ case 371:
3612
3210
  return ["-", $[$0]];
3613
- case 385:
3211
+ case 372:
3614
3212
  return ["+", $[$0]];
3615
- case 386:
3213
+ case 373:
3616
3214
  return ["await", $[$0]];
3617
- case 387:
3215
+ case 374:
3618
3216
  return ["await", $[$0 - 1]];
3619
- case 388:
3217
+ case 375:
3620
3218
  return ["--", $[$0], false];
3621
- case 389:
3219
+ case 376:
3622
3220
  return ["++", $[$0], false];
3623
- case 390:
3221
+ case 377:
3624
3222
  return ["--", $[$0 - 1], true];
3625
- case 391:
3223
+ case 378:
3626
3224
  return ["++", $[$0 - 1], true];
3627
- case 392:
3225
+ case 379:
3628
3226
  return ["?", $[$0 - 1]];
3629
- case 393:
3227
+ case 380:
3630
3228
  return ["+", $[$0 - 2], $[$0]];
3631
- case 394:
3229
+ case 381:
3632
3230
  return ["-", $[$0 - 2], $[$0]];
3633
- case 396:
3231
+ case 383:
3634
3232
  return ["**", $[$0 - 2], $[$0]];
3635
- case 399:
3233
+ case 386:
3636
3234
  return ["&", $[$0 - 2], $[$0]];
3637
- case 400:
3235
+ case 387:
3638
3236
  return ["^", $[$0 - 2], $[$0]];
3639
- case 401:
3237
+ case 388:
3640
3238
  return ["|", $[$0 - 2], $[$0]];
3641
- case 402:
3239
+ case 389:
3642
3240
  return ["&&", $[$0 - 2], $[$0]];
3643
- case 403:
3241
+ case 390:
3644
3242
  return ["||", $[$0 - 2], $[$0]];
3645
- case 404:
3243
+ case 391:
3646
3244
  return ["??", $[$0 - 2], $[$0]];
3647
- case 405:
3245
+ case 392:
3648
3246
  return ["!?", $[$0 - 2], $[$0]];
3649
- case 407:
3247
+ case 394:
3650
3248
  return ["?:", $[$0 - 4], $[$0 - 2], $[$0]];
3651
- case 409:
3249
+ case 396:
3652
3250
  return [$[$0 - 3], $[$0 - 4], $[$0 - 1]];
3653
- case 410:
3251
+ case 397:
3654
3252
  return [$[$0 - 2], $[$0 - 3], $[$0]];
3655
3253
  }
3656
3254
  },
@@ -4019,13 +3617,10 @@ class CodeGenerator {
4019
3617
  "->": "generateThinArrow",
4020
3618
  "=>": "generateFatArrow",
4021
3619
  return: "generateReturn",
4022
- signal: "generateSignal",
4023
- derived: "generateDerived",
3620
+ state: "generateState",
3621
+ computed: "generateComputed",
4024
3622
  readonly: "generateReadonly",
4025
3623
  effect: "generateEffect",
4026
- render: "generateRender",
4027
- style: "generateStyle",
4028
- component: "generateComponent",
4029
3624
  break: "generateBreak",
4030
3625
  "break-if": "generateBreakIf",
4031
3626
  continue: "generateContinue",
@@ -4100,7 +3695,7 @@ class CodeGenerator {
4100
3695
  if (head === "export" || head === "export-default" || head === "export-all" || head === "export-from") {
4101
3696
  return;
4102
3697
  }
4103
- if (head === "signal" || head === "derived" || head === "readonly") {
3698
+ if (head === "state" || head === "computed" || head === "readonly") {
4104
3699
  const [target] = rest;
4105
3700
  const varName = typeof target === "string" ? target : target.valueOf();
4106
3701
  if (!this.reactiveVars)
@@ -4126,9 +3721,6 @@ class CodeGenerator {
4126
3721
  if (head === "def" || head === "->" || head === "=>") {
4127
3722
  return;
4128
3723
  }
4129
- if (head === "component") {
4130
- return;
4131
- }
4132
3724
  if (head === "if") {
4133
3725
  const [condition, thenBranch, elseBranch] = rest;
4134
3726
  this.collectProgramVariables(condition);
@@ -4737,1589 +4329,216 @@ function _setDataSection() {
4737
4329
  }
4738
4330
  generatePrototype(head, rest, context, sexpr) {
4739
4331
  const [obj, prop] = rest;
4740
- const objCode = this.generate(obj, "value");
4741
- if (prop === "prototype") {
4742
- return `${objCode}.prototype`;
4743
- }
4744
- const cleanProp = prop instanceof String ? prop.valueOf() : prop;
4745
- return `${objCode}.prototype.${cleanProp}`;
4746
- }
4747
- generateOptionalPrototype(head, rest, context, sexpr) {
4748
- const [obj, prop] = rest;
4749
- const objCode = this.generate(obj, "value");
4750
- if (prop === "prototype") {
4751
- return `(${objCode} != null ? ${objCode}.prototype : undefined)`;
4752
- }
4753
- return `(${objCode} != null ? ${objCode}.prototype.${prop} : undefined)`;
4754
- }
4755
- generateRegexIndex(head, rest, context, sexpr) {
4756
- const [value, regex, captureIndex] = rest;
4757
- this.helpers.add("toSearchable");
4758
- this.programVars.add("_");
4759
- const valueCode = this.generate(value, "value");
4760
- const regexCode = this.generate(regex, "value");
4761
- const indexCode = captureIndex !== null ? this.generate(captureIndex, "value") : "0";
4762
- const hasMultilineFlag = regexCode.includes("/m");
4763
- const allowNewlines = hasMultilineFlag ? ", true" : "";
4764
- return `(_ = toSearchable(${valueCode}${allowNewlines}).match(${regexCode})) && _[${indexCode}]`;
4765
- }
4766
- generateIndexAccess(head, rest, context, sexpr) {
4767
- const [arr, index] = rest;
4768
- if (Array.isArray(index) && (index[0] === ".." || index[0] === "...")) {
4769
- const isInclusive = index[0] === "..";
4770
- const arrCode = this.generate(arr, "value");
4771
- const [start, end] = index.slice(1);
4772
- if (start === null && end === null) {
4773
- return `${arrCode}.slice()`;
4774
- } else if (start === null) {
4775
- if (isInclusive && this.isNegativeOneLiteral(end)) {
4776
- return `${arrCode}.slice(0)`;
4777
- }
4778
- const endCode = this.generate(end, "value");
4779
- if (isInclusive) {
4780
- return `${arrCode}.slice(0, +${endCode} + 1 || 9e9)`;
4781
- } else {
4782
- return `${arrCode}.slice(0, ${endCode})`;
4783
- }
4784
- } else if (end === null) {
4785
- const startCode = this.generate(start, "value");
4786
- return `${arrCode}.slice(${startCode})`;
4787
- } else {
4788
- const startCode = this.generate(start, "value");
4789
- if (isInclusive && this.isNegativeOneLiteral(end)) {
4790
- return `${arrCode}.slice(${startCode})`;
4791
- }
4792
- const endCode = this.generate(end, "value");
4793
- if (isInclusive) {
4794
- return `${arrCode}.slice(${startCode}, +${endCode} + 1 || 9e9)`;
4795
- } else {
4796
- return `${arrCode}.slice(${startCode}, ${endCode})`;
4797
- }
4798
- }
4799
- }
4800
- const indexCode = this.unwrap(this.generate(index, "value"));
4801
- return `${this.generate(arr, "value")}[${indexCode}]`;
4802
- }
4803
- generateSoakIndex(head, rest, context, sexpr) {
4804
- const [arr, index] = rest;
4805
- const arrCode = this.generate(arr, "value");
4806
- const indexCode = this.generate(index, "value");
4807
- return `(${arrCode} != null ? ${arrCode}[${indexCode}] : undefined)`;
4808
- }
4809
- generateOptIndex(head, rest, context, sexpr) {
4810
- const [arr, index] = rest;
4811
- const arrCode = this.generate(arr, "value");
4812
- const indexCode = this.generate(index, "value");
4813
- return `${arrCode}?.[${indexCode}]`;
4814
- }
4815
- generateOptCall(head, rest, context, sexpr) {
4816
- const [fn, ...args] = rest;
4817
- const fnCode = this.generate(fn, "value");
4818
- const argsCode = args.map((arg) => this.generate(arg, "value")).join(", ");
4819
- return `${fnCode}?.(${argsCode})`;
4820
- }
4821
- generateDef(head, rest, context, sexpr) {
4822
- const [name, params, body] = rest;
4823
- const sideEffectOnly = name instanceof String && name.await === true;
4824
- const cleanName = name instanceof String ? name.valueOf() : name;
4825
- const paramList = this.generateParamList(params);
4826
- const bodyCode = this.generateFunctionBody(body, params, sideEffectOnly);
4827
- const isAsync = this.containsAwait(body);
4828
- const isGenerator = this.containsYield(body);
4829
- const asyncPrefix = isAsync ? "async " : "";
4830
- const generatorSuffix = isGenerator ? "*" : "";
4831
- return `${asyncPrefix}function${generatorSuffix} ${cleanName}(${paramList}) ${bodyCode}`;
4832
- }
4833
- generateThinArrow(head, rest, context, sexpr) {
4834
- const [params, body] = rest;
4835
- const sideEffectOnly = this.nextFunctionIsVoid || false;
4836
- this.nextFunctionIsVoid = false;
4837
- const paramList = this.generateParamList(params);
4838
- const bodyCode = this.generateFunctionBody(body, params, sideEffectOnly);
4839
- const isAsync = this.containsAwait(body);
4840
- const isGenerator = this.containsYield(body);
4841
- const asyncPrefix = isAsync ? "async " : "";
4842
- const generatorSuffix = isGenerator ? "*" : "";
4843
- const fnCode = `${asyncPrefix}function${generatorSuffix}(${paramList}) ${bodyCode}`;
4844
- return context === "value" ? `(${fnCode})` : fnCode;
4845
- }
4846
- generateFatArrow(head, rest, context, sexpr) {
4847
- const [params, body] = rest;
4848
- const sideEffectOnly = this.nextFunctionIsVoid || false;
4849
- this.nextFunctionIsVoid = false;
4850
- const paramList = this.generateParamList(params);
4851
- const isSingleSimpleParam = params.length === 1 && typeof params[0] === "string" && !paramList.includes("=") && !paramList.includes("...") && !paramList.includes("[") && !paramList.includes("{");
4852
- const paramSyntax = isSingleSimpleParam ? paramList : `(${paramList})`;
4853
- const isAsync = this.containsAwait(body);
4854
- const asyncPrefix = isAsync ? "async " : "";
4855
- if (!sideEffectOnly) {
4856
- if (Array.isArray(body) && body[0] === "block" && body.length === 2) {
4857
- const expr = body[1];
4858
- if (!Array.isArray(expr) || expr[0] !== "return") {
4859
- return `${asyncPrefix}${paramSyntax} => ${this.generate(expr, "value")}`;
4860
- }
4861
- }
4862
- if (!Array.isArray(body) || body[0] !== "block") {
4863
- return `${asyncPrefix}${paramSyntax} => ${this.generate(body, "value")}`;
4864
- }
4865
- }
4866
- const bodyCode = this.generateFunctionBody(body, params, sideEffectOnly);
4867
- return `${asyncPrefix}${paramSyntax} => ${bodyCode}`;
4868
- }
4869
- generateReturn(head, rest, context, sexpr) {
4870
- if (rest.length === 0) {
4871
- return "return";
4872
- }
4873
- let [expr] = rest;
4874
- if (this.sideEffectOnly) {
4875
- return "return";
4876
- }
4877
- if (Array.isArray(expr) && expr[0] === "unless") {
4878
- const [, condition, body] = expr;
4879
- const value = Array.isArray(body) && body.length === 1 ? body[0] : body;
4880
- return `if (!${this.generate(condition, "value")}) return ${this.generate(value, "value")}`;
4881
- }
4882
- if (Array.isArray(expr) && expr[0] === "if") {
4883
- const [, condition, body, ...elseParts] = expr;
4884
- if (elseParts.length === 0) {
4885
- const value = Array.isArray(body) && body.length === 1 ? body[0] : body;
4886
- return `if (${this.generate(condition, "value")}) return ${this.generate(value, "value")}`;
4887
- }
4888
- }
4889
- if (Array.isArray(expr) && expr[0] === "new" && Array.isArray(expr[1]) && expr[1][0] === "unless") {
4890
- const [, unlessNode] = expr;
4891
- const [, condition, body] = unlessNode;
4892
- const value = Array.isArray(body) && body.length === 1 ? body[0] : body;
4893
- return `if (!${this.generate(condition, "value")}) return ${this.generate(["new", value], "value")}`;
4894
- }
4895
- return `return ${this.generate(expr, "value")}`;
4896
- }
4897
- generateSignal(head, rest, context, sexpr) {
4898
- const [name, expr] = rest;
4899
- this.usesReactivity = true;
4900
- const varName = typeof name === "string" ? name : name.valueOf();
4901
- const exprCode = this.generate(expr, "value");
4902
- if (!this.reactiveVars)
4903
- this.reactiveVars = new Set;
4904
- this.reactiveVars.add(varName);
4905
- return `const ${varName} = __signal(${exprCode})`;
4906
- }
4907
- generateDerived(head, rest, context, sexpr) {
4908
- const [name, expr] = rest;
4909
- this.usesReactivity = true;
4910
- if (!this.reactiveVars)
4911
- this.reactiveVars = new Set;
4912
- const varName = typeof name === "string" ? name : name.valueOf();
4913
- this.reactiveVars.add(varName);
4914
- const exprCode = this.generate(expr, "value");
4915
- return `const ${varName} = __computed(() => ${exprCode})`;
4916
- }
4917
- generateReadonly(head, rest, context, sexpr) {
4918
- const [name, expr] = rest;
4919
- const varName = typeof name === "string" ? name : name.valueOf();
4920
- const exprCode = this.generate(expr, "value");
4921
- return `const ${varName} = ${exprCode}`;
4922
- }
4923
- generateEffect(head, rest, context, sexpr) {
4924
- const [body] = rest;
4925
- this.usesReactivity = true;
4926
- let bodyCode;
4927
- if (Array.isArray(body) && body[0] === "block") {
4928
- const statements = body.slice(1);
4929
- const stmts = this.withIndent(() => this.formatStatements(statements));
4930
- bodyCode = `{
4931
- ${stmts.join(`
4932
- `)}
4933
- ${this.indent()}}`;
4934
- } else if (Array.isArray(body) && (body[0] === "->" || body[0] === "=>")) {
4935
- const fnCode = this.generate(body, "value");
4936
- return `__effect(${fnCode})`;
4937
- } else {
4938
- bodyCode = `{ ${this.generate(body, "value")}; }`;
4939
- }
4940
- return `__effect(() => ${bodyCode})`;
4941
- }
4942
- isHtmlTag(name) {
4943
- const tagPart = name.split("#")[0];
4944
- return HTML_TAGS.has(tagPart.toLowerCase());
4945
- }
4946
- isComponent(name) {
4947
- if (!name || typeof name !== "string")
4948
- return false;
4949
- return /^[A-Z]/.test(name);
4950
- }
4951
- parseEventHandler(key2, value) {
4952
- if (Array.isArray(key2) && key2[0] === "." && key2[1] === "this" && typeof key2[2] === "string") {
4953
- return { eventName: key2[2], modifiers: [], handler: this.generate(value, "value") };
4954
- }
4955
- if (Array.isArray(key2) && key2[0] === "computed") {
4956
- const { eventName, modifiers } = this.extractEventChain(key2[1]);
4957
- if (eventName) {
4958
- return { eventName, modifiers, handler: this.generate(value, "value") };
4959
- }
4960
- }
4961
- return null;
4962
- }
4963
- extractEventChain(chain) {
4964
- const modifiers = [];
4965
- let current = chain;
4966
- while (Array.isArray(current) && current[0] === ".") {
4967
- const [, inner, prop] = current;
4968
- if (Array.isArray(inner) && inner[0] === "." && inner[1] === "this") {
4969
- modifiers.unshift(prop);
4970
- return { eventName: inner[2], modifiers };
4971
- }
4972
- if (typeof prop === "string")
4973
- modifiers.unshift(prop);
4974
- current = inner;
4975
- }
4976
- if (Array.isArray(current) && current[0] === "." && current[1] === "this") {
4977
- return { eventName: current[2], modifiers };
4978
- }
4979
- return { eventName: null, modifiers: [] };
4980
- }
4981
- wrapEventHandler(handler, modifiers) {
4982
- if (modifiers.length === 0)
4983
- return handler;
4984
- const checks = [];
4985
- const actions = [];
4986
- for (const mod of modifiers) {
4987
- switch (mod) {
4988
- case "prevent":
4989
- actions.push("e.preventDefault()");
4990
- break;
4991
- case "stop":
4992
- actions.push("e.stopPropagation()");
4993
- break;
4994
- case "self":
4995
- checks.push("if (e.target !== e.currentTarget) return");
4996
- break;
4997
- case "enter":
4998
- checks.push("if (e.key !== 'Enter') return");
4999
- break;
5000
- case "escape":
5001
- case "esc":
5002
- checks.push("if (e.key !== 'Escape') return");
5003
- break;
5004
- case "tab":
5005
- checks.push("if (e.key !== 'Tab') return");
5006
- break;
5007
- case "space":
5008
- checks.push("if (e.key !== ' ') return");
5009
- break;
5010
- case "up":
5011
- checks.push("if (e.key !== 'ArrowUp') return");
5012
- break;
5013
- case "down":
5014
- checks.push("if (e.key !== 'ArrowDown') return");
5015
- break;
5016
- case "left":
5017
- checks.push("if (e.key !== 'ArrowLeft') return");
5018
- break;
5019
- case "right":
5020
- checks.push("if (e.key !== 'ArrowRight') return");
5021
- break;
5022
- case "ctrl":
5023
- checks.push("if (!e.ctrlKey) return");
5024
- break;
5025
- case "alt":
5026
- checks.push("if (!e.altKey) return");
5027
- break;
5028
- case "shift":
5029
- checks.push("if (!e.shiftKey) return");
5030
- break;
5031
- case "meta":
5032
- checks.push("if (!e.metaKey) return");
5033
- break;
5034
- }
5035
- }
5036
- const body = [...checks, ...actions, `(${handler})(e)`].join("; ");
5037
- return `(e) => { ${body}; }`;
5038
- }
5039
- static BIND_PREFIX = "__bind_";
5040
- static BIND_SUFFIX = "__";
5041
- static extractInputType(pairs) {
5042
- for (const pair of pairs) {
5043
- if (!Array.isArray(pair))
5044
- continue;
5045
- const key2 = pair[0] instanceof String ? pair[0].valueOf() : pair[0];
5046
- const val = pair[1] instanceof String ? pair[1].valueOf() : pair[1];
5047
- if (key2 === "type" && typeof val === "string") {
5048
- return val.replace(/^["']|["']$/g, "");
5049
- }
5050
- }
5051
- return null;
5052
- }
5053
- parseBindingDirective(key2, value, tag, inputType) {
5054
- let prop;
5055
- if (typeof key2 === "string" && key2.startsWith(CodeGenerator.BIND_PREFIX) && key2.endsWith(CodeGenerator.BIND_SUFFIX)) {
5056
- prop = key2.slice(CodeGenerator.BIND_PREFIX.length, -CodeGenerator.BIND_SUFFIX.length);
5057
- } else if (Array.isArray(key2) && key2[0] === "computed") {
5058
- const chain = key2[1];
5059
- if (!Array.isArray(chain) || chain[0] !== ".")
5060
- return null;
5061
- const [, inner, propName] = chain;
5062
- if (!Array.isArray(inner) || inner[0] !== "." || inner[1] !== "this" || inner[2] !== "bind") {
5063
- return null;
5064
- }
5065
- prop = typeof propName === "string" ? propName : String(propName);
5066
- } else {
5067
- return null;
5068
- }
5069
- const varName = this.generate(value, "value");
5070
- let event, valueAccessor;
5071
- if (prop === "checked") {
5072
- event = "onchange";
5073
- valueAccessor = "e.target.checked";
5074
- } else if (prop === "value") {
5075
- if (tag === "select") {
5076
- event = "onchange";
5077
- } else {
5078
- event = "oninput";
5079
- }
5080
- if (inputType === "number" || inputType === "range") {
5081
- valueAccessor = "e.target.valueAsNumber";
5082
- } else {
5083
- valueAccessor = "e.target.value";
5084
- }
5085
- } else {
5086
- event = "oninput";
5087
- valueAccessor = `e.target.${prop}`;
5088
- }
5089
- return {
5090
- prop,
5091
- event,
5092
- valueExpr: varName,
5093
- handler: `(e) => ${varName} = ${valueAccessor}`
5094
- };
5095
- }
5096
- generateRender(head, rest, context, sexpr) {
5097
- const [body] = rest;
5098
- this.usesTemplates = true;
5099
- if (!Array.isArray(body) || body[0] !== "block") {
5100
- return this.generateTemplateElement(body);
5101
- }
5102
- const statements = body.slice(1);
5103
- if (statements.length === 0)
5104
- return "null";
5105
- if (statements.length === 1)
5106
- return this.generateTemplateElement(statements[0]);
5107
- const elements = statements.map((s) => this.generateTemplateElement(s));
5108
- return `frag(${elements.join(", ")})`;
5109
- }
5110
- generateStyle(head, rest, context, sexpr) {
5111
- return "/* style block placeholder */";
5112
- }
5113
- generateComponent(head, rest, context, sexpr) {
5114
- const [name, body] = rest;
5115
- const componentName = typeof name === "string" ? name : this.generate(name, "value");
5116
- this.usesTemplates = true;
5117
- const statements = Array.isArray(body) && body[0] === "block" ? body.slice(1) : [];
5118
- const props = [];
5119
- const stateVars = [];
5120
- const derivedVars = [];
5121
- const readonlyVars = [];
5122
- const methods = [];
5123
- const lifecycleHooks = [];
5124
- const effects = [];
5125
- let renderBlock = null;
5126
- let styleBlock = null;
5127
- const memberNames = new Set;
5128
- const reactiveMembers = new Set;
5129
- for (const stmt of statements) {
5130
- if (!Array.isArray(stmt))
5131
- continue;
5132
- const [op] = stmt;
5133
- if (op === "prop") {
5134
- props.push(stmt);
5135
- memberNames.add(stmt[1]);
5136
- } else if (op === "prop-rest") {
5137
- props.push(stmt);
5138
- memberNames.add(stmt[1]);
5139
- } else if (op === "=" && typeof stmt[1] === "string") {
5140
- const varName = stmt[1];
5141
- if (["mounted", "unmounted", "updated"].includes(varName)) {
5142
- lifecycleHooks.push(stmt);
5143
- } else {
5144
- stateVars.push(stmt);
5145
- memberNames.add(varName);
5146
- reactiveMembers.add(varName);
5147
- }
5148
- } else if (op === "signal") {
5149
- stateVars.push(stmt);
5150
- memberNames.add(stmt[1]);
5151
- reactiveMembers.add(stmt[1]);
5152
- } else if (op === "derived") {
5153
- derivedVars.push(stmt);
5154
- memberNames.add(stmt[1]);
5155
- reactiveMembers.add(stmt[1]);
5156
- } else if (op === "readonly") {
5157
- readonlyVars.push(stmt);
5158
- memberNames.add(stmt[1]);
5159
- } else if (op === "effect") {
5160
- effects.push(stmt);
5161
- } else if (op === "render") {
5162
- renderBlock = stmt;
5163
- } else if (op === "style") {
5164
- styleBlock = stmt;
5165
- } else if (op === "object" && stmt.length >= 2) {
5166
- methods.push(stmt);
5167
- for (let i = 1;i < stmt.length; i++) {
5168
- if (Array.isArray(stmt[i]))
5169
- memberNames.add(stmt[i][0]);
5170
- }
5171
- }
5172
- }
5173
- const prevComponentMembers = this.componentMembers;
5174
- const prevReactiveMembers = this.reactiveMembers;
5175
- this.componentMembers = memberNames;
5176
- this.reactiveMembers = reactiveMembers;
5177
- const lines = [];
5178
- let blockFactoriesCode = "";
5179
- lines.push(`class ${componentName} {`);
5180
- lines.push(" constructor(props = {}) {");
5181
- lines.push(" // Context API: track parent component");
5182
- lines.push(" this._parent = __currentComponent;");
5183
- lines.push(" const __prevComponent = __currentComponent;");
5184
- lines.push(" __currentComponent = this;");
5185
- lines.push("");
5186
- if (props.length > 0) {
5187
- for (const prop of props) {
5188
- if (prop[0] === "prop") {
5189
- const propName = prop[1];
5190
- if (prop.length === 2) {
5191
- lines.push(` if (props.${propName} === undefined) throw new Error('Required prop: ${propName}');`);
5192
- lines.push(` this.${propName} = props.${propName};`);
5193
- } else if (prop[2] === "optional") {
5194
- lines.push(` this.${propName} = props.${propName};`);
5195
- } else {
5196
- const defaultVal = this.generateInComponent(prop[2], "value");
5197
- lines.push(` this.${propName} = props.${propName} ?? ${defaultVal};`);
5198
- }
5199
- } else if (prop[0] === "prop-rest") {
5200
- const restName = prop[1];
5201
- const propNames = props.filter((p) => p[0] === "prop").map((p) => p[1]);
5202
- lines.push(` const { ${propNames.join(", ")}, ...${restName} } = props;`);
5203
- lines.push(` this.${restName} = ${restName};`);
5204
- }
5205
- }
5206
- }
5207
- for (const [, varName, value] of readonlyVars) {
5208
- const val = this.generateInComponent(value, "value");
5209
- lines.push(` this.${varName} = ${val};`);
5210
- }
5211
- this.usesReactivity = true;
5212
- for (const stmt of stateVars) {
5213
- if (stmt[0] === "signal") {
5214
- const [, varName, value] = stmt;
5215
- const val = this.generateInComponent(value, "value");
5216
- lines.push(` this.${varName} = __signal(${val});`);
5217
- } else {
5218
- const [, varName, value] = stmt;
5219
- const val = this.generateInComponent(value, "value");
5220
- lines.push(` this.${varName} = __signal(${val});`);
5221
- }
5222
- }
5223
- for (const [, varName, expr] of derivedVars) {
5224
- const val = this.generateInComponent(expr, "value");
5225
- lines.push(` this.${varName} = __computed(() => ${val});`);
5226
- }
5227
- for (const effect of effects) {
5228
- const body2 = effect[1];
5229
- const effectCode = this.generateInComponent(body2, "value");
5230
- lines.push(` __effect(${effectCode});`);
5231
- }
5232
- lines.push("");
5233
- lines.push(" __currentComponent = __prevComponent;");
5234
- lines.push(" }");
5235
- for (const methodStmt of methods) {
5236
- for (let i = 1;i < methodStmt.length; i++) {
5237
- const [methodName, funcDef] = methodStmt[i];
5238
- if (Array.isArray(funcDef) && (funcDef[0] === "->" || funcDef[0] === "=>")) {
5239
- const [, params, body2] = funcDef;
5240
- const paramStr = Array.isArray(params) ? params.map((p) => this.formatParam(p)).join(", ") : "";
5241
- const bodyCode = this.generateInComponent(body2, "value");
5242
- lines.push(` ${methodName}(${paramStr}) { return ${bodyCode}; }`);
5243
- }
5244
- }
5245
- }
5246
- for (const [, hookName, hookValue] of lifecycleHooks) {
5247
- if (Array.isArray(hookValue) && (hookValue[0] === "->" || hookValue[0] === "=>")) {
5248
- const [, params, body2] = hookValue;
5249
- const bodyCode = this.generateInComponent(body2, "value");
5250
- lines.push(` ${hookName}() { return ${bodyCode}; }`);
5251
- }
5252
- }
5253
- if (renderBlock) {
5254
- const renderBody = renderBlock[1];
5255
- const fg = this.generateFineGrainedRender(renderBody);
5256
- if (fg.blockFactories.length > 0) {
5257
- blockFactoriesCode = fg.blockFactories.join(`
5258
-
5259
- `) + `
5260
-
5261
- `;
5262
- }
5263
- lines.push(" _create() {");
5264
- for (const line of fg.createLines) {
5265
- lines.push(` ${line}`);
5266
- }
5267
- lines.push(` return ${fg.rootVar};`);
5268
- lines.push(" }");
5269
- if (fg.setupLines.length > 0) {
5270
- lines.push(" _setup() {");
5271
- for (const line of fg.setupLines) {
5272
- lines.push(` ${line}`);
5273
- }
5274
- lines.push(" }");
5275
- }
5276
- }
5277
- lines.push(" mount(target) {");
5278
- lines.push(' if (typeof target === "string") target = document.querySelector(target);');
5279
- lines.push(" this._target = target;");
5280
- lines.push(" this._root = this._create();");
5281
- lines.push(" target.appendChild(this._root);");
5282
- lines.push(" if (this._setup) this._setup();");
5283
- lines.push(" if (this.mounted) this.mounted();");
5284
- lines.push(" return this;");
5285
- lines.push(" }");
5286
- lines.push(" unmount() {");
5287
- lines.push(" if (this.unmounted) this.unmounted();");
5288
- lines.push(" if (this._root && this._root.parentNode) {");
5289
- lines.push(" this._root.parentNode.removeChild(this._root);");
5290
- lines.push(" }");
5291
- lines.push(" }");
5292
- lines.push("}");
5293
- this.componentMembers = prevComponentMembers;
5294
- this.reactiveMembers = prevReactiveMembers;
5295
- return blockFactoriesCode + lines.join(`
5296
- `);
5297
- }
5298
- generateInComponent(sexpr, context) {
5299
- if (typeof sexpr === "string" && this.reactiveMembers && this.reactiveMembers.has(sexpr)) {
5300
- return `this.${sexpr}.value`;
5301
- }
5302
- if (Array.isArray(sexpr) && this.reactiveMembers) {
5303
- const transformed = this.transformComponentMembers(sexpr);
5304
- return this.generate(transformed, context);
5305
- }
5306
- return this.generate(sexpr, context);
5307
- }
5308
- transformComponentMembers(sexpr) {
5309
- if (!Array.isArray(sexpr)) {
5310
- if (typeof sexpr === "string" && this.reactiveMembers && this.reactiveMembers.has(sexpr)) {
5311
- return [".", [".", "this", sexpr], "value"];
5312
- }
5313
- return sexpr;
5314
- }
5315
- if (sexpr[0] === "." && sexpr[1] === "this" && typeof sexpr[2] === "string") {
5316
- const memberName = sexpr[2];
5317
- if (this.reactiveMembers && this.reactiveMembers.has(memberName)) {
5318
- return [".", sexpr, "value"];
5319
- }
5320
- return sexpr;
5321
- }
5322
- return sexpr.map((item) => this.transformComponentMembers(item));
5323
- }
5324
- generateComponentRender(body) {
5325
- if (!Array.isArray(body) || body[0] !== "block") {
5326
- return this.generateComponentTemplateElement(body);
5327
- }
5328
- const statements = body.slice(1);
5329
- if (statements.length === 0)
5330
- return "null";
5331
- if (statements.length === 1)
5332
- return this.generateComponentTemplateElement(statements[0]);
5333
- const elements = statements.map((s) => this.generateComponentTemplateElement(s));
5334
- return `frag(${elements.join(", ")})`;
5335
- }
5336
- generateFineGrainedRender(body) {
5337
- this._fgElementCount = 0;
5338
- this._fgTextCount = 0;
5339
- this._fgBlockCount = 0;
5340
- this._fgCreateLines = [];
5341
- this._fgSetupLines = [];
5342
- this._fgBlockFactories = [];
5343
- const statements = Array.isArray(body) && body[0] === "block" ? body.slice(1) : [body];
5344
- let rootVar;
5345
- if (statements.length === 0) {
5346
- rootVar = "null";
5347
- } else if (statements.length === 1) {
5348
- rootVar = this.fgProcessElement(statements[0]);
5349
- } else {
5350
- rootVar = this.fgNewElement("frag");
5351
- this._fgCreateLines.push(`${rootVar} = document.createDocumentFragment();`);
5352
- for (const stmt of statements) {
5353
- const childVar = this.fgProcessElement(stmt);
5354
- this._fgCreateLines.push(`${rootVar}.appendChild(${childVar});`);
5355
- }
5356
- }
5357
- return {
5358
- createLines: this._fgCreateLines,
5359
- setupLines: this._fgSetupLines,
5360
- blockFactories: this._fgBlockFactories,
5361
- rootVar
5362
- };
5363
- }
5364
- fgNewBlock() {
5365
- return `create_block_${this._fgBlockCount++}`;
5366
- }
5367
- fgNewElement(hint = "el") {
5368
- return `this._${hint}${this._fgElementCount++}`;
5369
- }
5370
- fgNewText() {
5371
- return `this._t${this._fgTextCount++}`;
5372
- }
5373
- fgProcessElement(sexpr) {
5374
- if (typeof sexpr === "string" || sexpr instanceof String) {
5375
- const str = sexpr.valueOf();
5376
- if (str.startsWith('"') || str.startsWith("'") || str.startsWith("`")) {
5377
- const textVar = this.fgNewText();
5378
- this._fgCreateLines.push(`${textVar} = document.createTextNode(${str});`);
5379
- return textVar;
5380
- }
5381
- if (this.reactiveMembers && this.reactiveMembers.has(str)) {
5382
- const textVar = this.fgNewText();
5383
- this._fgCreateLines.push(`${textVar} = document.createTextNode('');`);
5384
- this._fgSetupLines.push(`__effect(() => { ${textVar}.data = this.${str}.value; });`);
5385
- return textVar;
5386
- }
5387
- const elVar = this.fgNewElement();
5388
- this._fgCreateLines.push(`${elVar} = document.createElement('${str}');`);
5389
- return elVar;
5390
- }
5391
- if (Array.isArray(sexpr)) {
5392
- const [head, ...rest] = sexpr;
5393
- const headStr = typeof head === "string" ? head : head instanceof String ? head.valueOf() : null;
5394
- if (headStr && this.isComponent(headStr)) {
5395
- return this.fgProcessComponent(headStr, rest);
5396
- }
5397
- if (headStr && this.isHtmlTag(headStr)) {
5398
- return this.fgProcessTag(headStr, [], rest);
5399
- }
5400
- if (headStr === ".") {
5401
- const [, obj, prop] = sexpr;
5402
- if (obj === "this" && typeof prop === "string") {
5403
- if (this.reactiveMembers && this.reactiveMembers.has(prop)) {
5404
- const textVar3 = this.fgNewText();
5405
- this._fgCreateLines.push(`${textVar3} = document.createTextNode('');`);
5406
- this._fgSetupLines.push(`__effect(() => { ${textVar3}.data = this.${prop}.value; });`);
5407
- return textVar3;
5408
- }
5409
- if (this.componentMembers && this.componentMembers.has(prop)) {
5410
- const slotVar = this.fgNewElement("slot");
5411
- this._fgCreateLines.push(`${slotVar} = this.${prop} instanceof Node ? this.${prop} : (this.${prop} != null ? document.createTextNode(String(this.${prop})) : document.createComment(''));`);
5412
- return slotVar;
5413
- }
5414
- }
5415
- const { tag, classes } = this.collectTemplateClasses(sexpr);
5416
- if (tag && this.isHtmlTag(tag)) {
5417
- return this.fgProcessTag(tag, classes, []);
5418
- }
5419
- const textVar2 = this.fgNewText();
5420
- const exprCode2 = this.generateInComponent(sexpr, "value");
5421
- this._fgCreateLines.push(`${textVar2} = document.createTextNode(String(${exprCode2}));`);
5422
- return textVar2;
5423
- }
5424
- if (Array.isArray(head)) {
5425
- if (Array.isArray(head[0]) && head[0][0] === "." && (head[0][2] === "__cx__" || head[0][2] instanceof String && head[0][2].valueOf() === "__cx__")) {
5426
- const tag2 = typeof head[0][1] === "string" ? head[0][1] : head[0][1].valueOf();
5427
- const classExprs = head.slice(1);
5428
- return this.fgProcessTagWithDynamicClass(tag2, classExprs, rest);
5429
- }
5430
- const { tag, classes } = this.collectTemplateClasses(head);
5431
- if (tag && this.isHtmlTag(tag)) {
5432
- if (classes.length === 1 && classes[0] === "__cx__") {
5433
- return this.fgProcessTagWithDynamicClass(tag, rest, []);
5434
- }
5435
- return this.fgProcessTag(tag, classes, rest);
5436
- }
5437
- }
5438
- if (headStr === "->" || headStr === "=>") {
5439
- const [params, body] = rest;
5440
- return this.fgProcessBlock(body);
5441
- }
5442
- if (headStr === "if") {
5443
- return this.fgProcessConditional(sexpr);
5444
- }
5445
- if (headStr === "for" || headStr === "for-in" || headStr === "for-of") {
5446
- return this.fgProcessLoop(sexpr);
5447
- }
5448
- const textVar = this.fgNewText();
5449
- const exprCode = this.generateInComponent(sexpr, "value");
5450
- if (this.fgHasReactiveDeps(sexpr)) {
5451
- this._fgCreateLines.push(`${textVar} = document.createTextNode('');`);
5452
- this._fgSetupLines.push(`__effect(() => { ${textVar}.data = ${exprCode}; });`);
5453
- } else {
5454
- this._fgCreateLines.push(`${textVar} = document.createTextNode(String(${exprCode}));`);
5455
- }
5456
- return textVar;
5457
- }
5458
- const commentVar = this.fgNewElement("c");
5459
- this._fgCreateLines.push(`${commentVar} = document.createComment('unknown');`);
5460
- return commentVar;
5461
- }
5462
- fgProcessTagWithDynamicClass(tag, classExprs, children) {
5463
- const elVar = this.fgNewElement();
5464
- this._fgCreateLines.push(`${elVar} = document.createElement('${tag}');`);
5465
- if (classExprs.length > 0) {
5466
- const classCode = classExprs.map((e) => this.generateInComponent(e, "value")).join(' + " " + ');
5467
- const hasReactiveDeps = classExprs.some((e) => this.fgHasReactiveDeps(e));
5468
- if (hasReactiveDeps) {
5469
- this._fgSetupLines.push(`__effect(() => { ${elVar}.className = ${classCode}; });`);
5470
- } else {
5471
- this._fgCreateLines.push(`${elVar}.className = ${classCode};`);
5472
- }
5473
- }
5474
- for (const arg of children) {
5475
- const argHead = Array.isArray(arg) ? arg[0] instanceof String ? arg[0].valueOf() : arg[0] : null;
5476
- if (argHead === "->" || argHead === "=>") {
5477
- const block = arg[2];
5478
- const blockHead = Array.isArray(block) ? block[0] instanceof String ? block[0].valueOf() : block[0] : null;
5479
- if (blockHead === "block") {
5480
- for (const child of block.slice(1)) {
5481
- const childVar = this.fgProcessElement(child);
5482
- this._fgCreateLines.push(`${elVar}.appendChild(${childVar});`);
5483
- }
5484
- } else if (block) {
5485
- const childVar = this.fgProcessElement(block);
5486
- this._fgCreateLines.push(`${elVar}.appendChild(${childVar});`);
5487
- }
5488
- } else if (Array.isArray(arg) && arg[0] === "object") {
5489
- this.fgProcessAttributes(elVar, arg);
5490
- } else if (typeof arg === "string" || arg instanceof String) {
5491
- const textVar = this.fgNewText();
5492
- const argStr = arg.valueOf();
5493
- if (argStr.startsWith('"') || argStr.startsWith("'") || argStr.startsWith("`")) {
5494
- this._fgCreateLines.push(`${textVar} = document.createTextNode(${argStr});`);
5495
- } else if (this.reactiveMembers && this.reactiveMembers.has(argStr)) {
5496
- this._fgCreateLines.push(`${textVar} = document.createTextNode('');`);
5497
- this._fgSetupLines.push(`__effect(() => { ${textVar}.data = this.${argStr}.value; });`);
5498
- } else {
5499
- this._fgCreateLines.push(`${textVar} = document.createTextNode(${this.generateInComponent(arg, "value")});`);
5500
- }
5501
- this._fgCreateLines.push(`${elVar}.appendChild(${textVar});`);
5502
- } else {
5503
- const childVar = this.fgProcessElement(arg);
5504
- this._fgCreateLines.push(`${elVar}.appendChild(${childVar});`);
5505
- }
5506
- }
5507
- return elVar;
5508
- }
5509
- fgProcessTag(tag, classes, args) {
5510
- const elVar = this.fgNewElement();
5511
- this._fgCreateLines.push(`${elVar} = document.createElement('${tag}');`);
5512
- if (classes.length > 0) {
5513
- this._fgCreateLines.push(`${elVar}.className = '${classes.join(" ")}';`);
5514
- }
5515
- for (const arg of args) {
5516
- if (Array.isArray(arg) && (arg[0] === "->" || arg[0] === "=>")) {
5517
- const block = arg[2];
5518
- if (Array.isArray(block) && block[0] === "block") {
5519
- for (const child of block.slice(1)) {
5520
- const childVar = this.fgProcessElement(child);
5521
- this._fgCreateLines.push(`${elVar}.appendChild(${childVar});`);
5522
- }
5523
- } else if (block) {
5524
- const childVar = this.fgProcessElement(block);
5525
- this._fgCreateLines.push(`${elVar}.appendChild(${childVar});`);
5526
- }
5527
- } else if (Array.isArray(arg) && arg[0] === "object") {
5528
- this.fgProcessAttributes(elVar, arg);
5529
- } else if (typeof arg === "string") {
5530
- const textVar = this.fgNewText();
5531
- if (arg.startsWith('"') || arg.startsWith("'") || arg.startsWith("`")) {
5532
- this._fgCreateLines.push(`${textVar} = document.createTextNode(${arg});`);
5533
- } else if (this.reactiveMembers && this.reactiveMembers.has(arg)) {
5534
- this._fgCreateLines.push(`${textVar} = document.createTextNode('');`);
5535
- this._fgSetupLines.push(`__effect(() => { ${textVar}.data = this.${arg}.value; });`);
5536
- } else if (this.componentMembers && this.componentMembers.has(arg)) {
5537
- this._fgCreateLines.push(`${textVar} = document.createTextNode(String(this.${arg}));`);
5538
- } else {
5539
- this._fgCreateLines.push(`${textVar} = document.createTextNode(String(${arg}));`);
5540
- }
5541
- this._fgCreateLines.push(`${elVar}.appendChild(${textVar});`);
5542
- } else if (arg instanceof String) {
5543
- const val = arg.valueOf();
5544
- const textVar = this.fgNewText();
5545
- if (val.startsWith('"') || val.startsWith("'") || val.startsWith("`")) {
5546
- this._fgCreateLines.push(`${textVar} = document.createTextNode(${val});`);
5547
- } else if (this.reactiveMembers && this.reactiveMembers.has(val)) {
5548
- this._fgCreateLines.push(`${textVar} = document.createTextNode('');`);
5549
- this._fgSetupLines.push(`__effect(() => { ${textVar}.data = this.${val}.value; });`);
5550
- } else {
5551
- this._fgCreateLines.push(`${textVar} = document.createTextNode(String(${val}));`);
5552
- }
5553
- this._fgCreateLines.push(`${elVar}.appendChild(${textVar});`);
5554
- } else if (arg) {
5555
- const childVar = this.fgProcessElement(arg);
5556
- this._fgCreateLines.push(`${elVar}.appendChild(${childVar});`);
5557
- }
5558
- }
5559
- return elVar;
5560
- }
5561
- fgHasReactiveDeps(sexpr) {
5562
- if (!this.reactiveMembers || this.reactiveMembers.size === 0)
5563
- return false;
5564
- if (typeof sexpr === "string") {
5565
- return this.reactiveMembers.has(sexpr);
5566
- }
5567
- if (!Array.isArray(sexpr))
5568
- return false;
5569
- if (sexpr[0] === "." && sexpr[1] === "this" && typeof sexpr[2] === "string") {
5570
- return this.reactiveMembers.has(sexpr[2]);
5571
- }
5572
- for (const child of sexpr) {
5573
- if (this.fgHasReactiveDeps(child))
5574
- return true;
5575
- }
5576
- return false;
5577
- }
5578
- fgProcessAttributes(elVar, objExpr) {
5579
- const inputType = CodeGenerator.extractInputType(objExpr.slice(1));
5580
- for (let i = 1;i < objExpr.length; i++) {
5581
- const [key2, value] = objExpr[i];
5582
- if (Array.isArray(key2) && key2[0] === "." && key2[1] === "this") {
5583
- const eventName = key2[2];
5584
- const handlerCode = this.generateInComponent(value, "value");
5585
- this._fgCreateLines.push(`${elVar}.addEventListener('${eventName}', (e) => (${handlerCode})(e));`);
5586
- continue;
5587
- }
5588
- if (typeof key2 === "string") {
5589
- if (key2.startsWith("__bind_") && key2.endsWith("__")) {
5590
- const prop = key2.slice(7, -2);
5591
- const valueCode = this.generateInComponent(value, "value");
5592
- let event, valueAccessor;
5593
- if (prop === "checked") {
5594
- event = "change";
5595
- valueAccessor = "e.target.checked";
5596
- } else {
5597
- event = "input";
5598
- if (inputType === "number" || inputType === "range") {
5599
- valueAccessor = "e.target.valueAsNumber";
5600
- } else {
5601
- valueAccessor = "e.target.value";
5602
- }
5603
- }
5604
- this._fgSetupLines.push(`__effect(() => { ${elVar}.${prop} = ${valueCode}; });`);
5605
- this._fgCreateLines.push(`${elVar}.addEventListener('${event}', (e) => ${valueCode} = ${valueAccessor});`);
5606
- continue;
5607
- }
5608
- const hasReactiveDeps = this.fgHasReactiveDeps(value);
5609
- if (hasReactiveDeps) {
5610
- const valueCode = this.generateInComponent(value, "value");
5611
- this._fgSetupLines.push(`__effect(() => { ${elVar}.setAttribute('${key2}', ${valueCode}); });`);
5612
- } else {
5613
- const valueCode = this.generateInComponent(value, "value");
5614
- this._fgCreateLines.push(`${elVar}.setAttribute('${key2}', ${valueCode});`);
5615
- }
5616
- }
5617
- }
5618
- }
5619
- fgProcessBlock(body) {
5620
- if (!Array.isArray(body) || body[0] !== "block") {
5621
- return this.fgProcessElement(body);
5622
- }
5623
- const statements = body.slice(1);
5624
- if (statements.length === 0) {
5625
- const commentVar = this.fgNewElement("empty");
5626
- this._fgCreateLines.push(`${commentVar} = document.createComment('');`);
5627
- return commentVar;
5628
- }
5629
- if (statements.length === 1) {
5630
- return this.fgProcessElement(statements[0]);
5631
- }
5632
- const fragVar = this.fgNewElement("frag");
5633
- this._fgCreateLines.push(`${fragVar} = document.createDocumentFragment();`);
5634
- for (const stmt of statements) {
5635
- const childVar = this.fgProcessElement(stmt);
5636
- this._fgCreateLines.push(`${fragVar}.appendChild(${childVar});`);
5637
- }
5638
- return fragVar;
5639
- }
5640
- fgProcessConditional(sexpr) {
5641
- const [, condition, thenBlock, elseBlock] = sexpr;
5642
- const anchorVar = this.fgNewElement("anchor");
5643
- this._fgCreateLines.push(`${anchorVar} = document.createComment('if');`);
5644
- const condCode = this.generateInComponent(condition, "value");
5645
- const thenBlockName = this.fgNewBlock();
5646
- this.fgGenerateConditionBlock(thenBlockName, thenBlock);
5647
- let elseBlockName = null;
5648
- if (elseBlock) {
5649
- elseBlockName = this.fgNewBlock();
5650
- this.fgGenerateConditionBlock(elseBlockName, elseBlock);
5651
- }
5652
- const setupLines = [];
5653
- setupLines.push(`// Conditional: ${thenBlockName}${elseBlockName ? " / " + elseBlockName : ""}`);
5654
- setupLines.push(`{`);
5655
- setupLines.push(` const anchor = ${anchorVar};`);
5656
- setupLines.push(` let currentBlock = null;`);
5657
- setupLines.push(` let showing = null; // 'then', 'else', or null`);
5658
- setupLines.push(` __effect(() => {`);
5659
- setupLines.push(` const show = !!(${condCode});`);
5660
- setupLines.push(` const want = show ? 'then' : ${elseBlock ? "'else'" : "null"};`);
5661
- setupLines.push(` if (want === showing) return;`);
5662
- setupLines.push(``);
5663
- setupLines.push(` // Destroy old block`);
5664
- setupLines.push(` if (currentBlock) {`);
5665
- setupLines.push(` currentBlock.d(true);`);
5666
- setupLines.push(` currentBlock = null;`);
5667
- setupLines.push(` }`);
5668
- setupLines.push(` showing = want;`);
5669
- setupLines.push(``);
5670
- setupLines.push(` // Create new block`);
5671
- setupLines.push(` if (want === 'then') {`);
5672
- setupLines.push(` currentBlock = ${thenBlockName}(this);`);
5673
- setupLines.push(` currentBlock.c();`);
5674
- setupLines.push(` currentBlock.m(anchor.parentNode, anchor.nextSibling);`);
5675
- setupLines.push(` currentBlock.p(this);`);
5676
- setupLines.push(` }`);
5677
- if (elseBlock) {
5678
- setupLines.push(` if (want === 'else') {`);
5679
- setupLines.push(` currentBlock = ${elseBlockName}(this);`);
5680
- setupLines.push(` currentBlock.c();`);
5681
- setupLines.push(` currentBlock.m(anchor.parentNode, anchor.nextSibling);`);
5682
- setupLines.push(` currentBlock.p(this);`);
5683
- setupLines.push(` }`);
5684
- }
5685
- setupLines.push(` });`);
5686
- setupLines.push(`}`);
5687
- this._fgSetupLines.push(setupLines.join(`
5688
- `));
5689
- return anchorVar;
5690
- }
5691
- fgGenerateConditionBlock(blockName, block) {
5692
- const savedCreateLines = this._fgCreateLines;
5693
- const savedSetupLines = this._fgSetupLines;
5694
- this._fgCreateLines = [];
5695
- this._fgSetupLines = [];
5696
- const rootVar = this.fgProcessBlock(block);
5697
- const createLines = this._fgCreateLines;
5698
- const setupLines = this._fgSetupLines;
5699
- this._fgCreateLines = savedCreateLines;
5700
- this._fgSetupLines = savedSetupLines;
5701
- const localizeVar = (line) => {
5702
- return line.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+)/g, "$1");
5703
- };
5704
- const factoryLines = [];
5705
- factoryLines.push(`function ${blockName}(ctx) {`);
5706
- factoryLines.push(` // Local DOM references`);
5707
- const localVars = new Set;
5708
- for (const line of createLines) {
5709
- const match = line.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst)\d+)\s*=/);
5710
- if (match)
5711
- localVars.add(match[1]);
5712
- }
5713
- if (localVars.size > 0) {
5714
- factoryLines.push(` let ${[...localVars].join(", ")};`);
5715
- }
5716
- const hasEffects = setupLines.length > 0;
5717
- if (hasEffects) {
5718
- factoryLines.push(` let disposers = [];`);
5719
- }
5720
- factoryLines.push(` return {`);
5721
- factoryLines.push(` c() {`);
5722
- for (const line of createLines) {
5723
- factoryLines.push(` ${localizeVar(line)}`);
5724
- }
5725
- factoryLines.push(` },`);
5726
- factoryLines.push(` m(target, anchor) {`);
5727
- factoryLines.push(` target.insertBefore(${localizeVar(rootVar)}, anchor);`);
5728
- factoryLines.push(` },`);
5729
- factoryLines.push(` p(ctx) {`);
5730
- if (hasEffects) {
5731
- factoryLines.push(` disposers.forEach(d => d());`);
5732
- factoryLines.push(` disposers = [];`);
5733
- for (const line of setupLines) {
5734
- const localizedLine = localizeVar(line);
5735
- const wrappedLine = localizedLine.replace(/__effect\(\(\) => \{/g, "disposers.push(__effect(() => {").replace(/\}\);$/g, "}));");
5736
- factoryLines.push(` ${wrappedLine}`);
5737
- }
5738
- }
5739
- factoryLines.push(` },`);
5740
- factoryLines.push(` d(detaching) {`);
5741
- if (hasEffects) {
5742
- factoryLines.push(` disposers.forEach(d => d());`);
5743
- }
5744
- factoryLines.push(` if (detaching) ${localizeVar(rootVar)}.remove();`);
5745
- factoryLines.push(` }`);
5746
- factoryLines.push(` };`);
5747
- factoryLines.push(`}`);
5748
- this._fgBlockFactories.push(factoryLines.join(`
5749
- `));
5750
- }
5751
- fgProcessLoop(sexpr) {
5752
- const [head, vars, collection, guard, step, body] = sexpr;
5753
- const blockName = this.fgNewBlock();
5754
- const anchorVar = this.fgNewElement("anchor");
5755
- this._fgCreateLines.push(`${anchorVar} = document.createComment('for');`);
5756
- const varNames = Array.isArray(vars) ? vars : [vars];
5757
- const itemVar = varNames[0];
5758
- const indexVar = varNames[1] || "i";
5759
- const collectionCode = this.generateInComponent(collection, "value");
5760
- let keyExpr = itemVar;
5761
- if (Array.isArray(body) && body[0] === "block" && body.length > 1) {
5762
- const firstChild = body[1];
5763
- if (Array.isArray(firstChild)) {
5764
- for (const arg of firstChild) {
5765
- if (Array.isArray(arg) && arg[0] === "object") {
5766
- for (let i = 1;i < arg.length; i++) {
5767
- const [k2, v] = arg[i];
5768
- if (k2 === "key") {
5769
- keyExpr = this.generate(v, "value");
5770
- break;
5771
- }
5772
- }
5773
- }
5774
- if (keyExpr !== itemVar)
5775
- break;
5776
- }
5777
- }
5778
- }
5779
- const savedCreateLines = this._fgCreateLines;
5780
- const savedSetupLines = this._fgSetupLines;
5781
- const savedBlockFactories = this._fgBlockFactories;
5782
- this._fgCreateLines = [];
5783
- this._fgSetupLines = [];
5784
- const itemNode = this.fgProcessBlock(body);
5785
- const itemCreateLines = this._fgCreateLines;
5786
- const itemSetupLines = this._fgSetupLines;
5787
- this._fgCreateLines = savedCreateLines;
5788
- this._fgSetupLines = savedSetupLines;
5789
- const localizeVar = (line) => {
5790
- return line.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+)/g, "$1");
5791
- };
5792
- const factoryLines = [];
5793
- factoryLines.push(`function ${blockName}(ctx, ${itemVar}, ${indexVar}) {`);
5794
- factoryLines.push(` // Local DOM references (not on this)`);
5795
- const localVars = new Set;
5796
- for (const line of itemCreateLines) {
5797
- const match = line.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst)\d+)\s*=/);
5798
- if (match)
5799
- localVars.add(match[1]);
5800
- }
5801
- if (localVars.size > 0) {
5802
- factoryLines.push(` let ${[...localVars].join(", ")};`);
5803
- }
5804
- const hasEffects = itemSetupLines.length > 0;
5805
- if (hasEffects) {
5806
- factoryLines.push(` let disposers = [];`);
5807
- }
5808
- factoryLines.push(` return {`);
5809
- factoryLines.push(` c() {`);
5810
- for (const line of itemCreateLines) {
5811
- factoryLines.push(` ${localizeVar(line)}`);
5812
- }
5813
- factoryLines.push(` },`);
5814
- factoryLines.push(` m(target, anchor) {`);
5815
- factoryLines.push(` target.insertBefore(${localizeVar(itemNode)}, anchor);`);
5816
- factoryLines.push(` },`);
5817
- factoryLines.push(` p(ctx, ${itemVar}, ${indexVar}) {`);
5818
- if (hasEffects) {
5819
- factoryLines.push(` // Dispose old effects and create new ones with updated values`);
5820
- factoryLines.push(` disposers.forEach(d => d());`);
5821
- factoryLines.push(` disposers = [];`);
5822
- for (const line of itemSetupLines) {
5823
- const localizedLine = localizeVar(line);
5824
- const wrappedLine = localizedLine.replace(/__effect\(\(\) => \{/g, "disposers.push(__effect(() => {").replace(/\}\);$/g, "}));");
5825
- factoryLines.push(` ${wrappedLine}`);
5826
- }
5827
- }
5828
- factoryLines.push(` },`);
5829
- factoryLines.push(` d(detaching) {`);
5830
- if (hasEffects) {
5831
- factoryLines.push(` disposers.forEach(d => d());`);
5832
- }
5833
- factoryLines.push(` if (detaching) ${localizeVar(itemNode)}.remove();`);
5834
- factoryLines.push(` }`);
5835
- factoryLines.push(` };`);
5836
- factoryLines.push(`}`);
5837
- this._fgBlockFactories.push(factoryLines.join(`
5838
- `));
5839
- const setupLines = [];
5840
- setupLines.push(`// Loop: ${blockName}`);
5841
- setupLines.push(`{`);
5842
- setupLines.push(` const anchor = ${anchorVar};`);
5843
- setupLines.push(` const map = new Map(); // key -> block`);
5844
- setupLines.push(` let keys = [];`);
5845
- setupLines.push(` __effect(() => {`);
5846
- setupLines.push(` const items = ${collectionCode};`);
5847
- setupLines.push(` const parent = anchor.parentNode;`);
5848
- setupLines.push(` const newKeys = [];`);
5849
- setupLines.push(` const newMap = new Map();`);
5850
- setupLines.push(``);
5851
- setupLines.push(` // Create/update blocks`);
5852
- setupLines.push(` for (let ${indexVar} = 0; ${indexVar} < items.length; ${indexVar}++) {`);
5853
- setupLines.push(` const ${itemVar} = items[${indexVar}];`);
5854
- setupLines.push(` const key = ${keyExpr};`);
5855
- setupLines.push(` newKeys.push(key);`);
5856
- setupLines.push(` let block = map.get(key);`);
5857
- setupLines.push(` if (block) {`);
5858
- setupLines.push(` // Update existing block`);
5859
- setupLines.push(` block.p(this, ${itemVar}, ${indexVar});`);
5860
- setupLines.push(` } else {`);
5861
- setupLines.push(` // Create new block`);
5862
- setupLines.push(` block = ${blockName}(this, ${itemVar}, ${indexVar});`);
5863
- setupLines.push(` block.c();`);
5864
- setupLines.push(` block.m(parent, anchor);`);
5865
- setupLines.push(` block.p(this, ${itemVar}, ${indexVar}); // Wire up effects`);
5866
- setupLines.push(` }`);
5867
- setupLines.push(` newMap.set(key, block);`);
5868
- setupLines.push(` }`);
5869
- setupLines.push(``);
5870
- setupLines.push(` // Remove deleted blocks`);
5871
- setupLines.push(` for (const [key, block] of map) {`);
5872
- setupLines.push(` if (!newMap.has(key)) block.d(true);`);
5873
- setupLines.push(` }`);
5874
- setupLines.push(``);
5875
- setupLines.push(` // Update tracking (simple swap)`);
5876
- setupLines.push(` map.clear();`);
5877
- setupLines.push(` for (const [k, v] of newMap) map.set(k, v);`);
5878
- setupLines.push(` keys = newKeys;`);
5879
- setupLines.push(` });`);
5880
- setupLines.push(`}`);
5881
- this._fgSetupLines.push(setupLines.join(`
5882
- `));
5883
- return anchorVar;
5884
- }
5885
- fgProcessComponent(componentName, args) {
5886
- const instVar = this.fgNewElement("inst");
5887
- const elVar = this.fgNewElement("el");
5888
- const { propsCode, childrenVar, childrenSetupLines } = this.fgBuildComponentProps(args);
5889
- this._fgCreateLines.push(`${instVar} = new ${componentName}(${propsCode});`);
5890
- this._fgCreateLines.push(`${elVar} = ${instVar}._create();`);
5891
- this._fgSetupLines.push(`if (${instVar}._setup) ${instVar}._setup();`);
5892
- for (const line of childrenSetupLines) {
5893
- this._fgSetupLines.push(line);
5894
- }
5895
- return elVar;
5896
- }
5897
- fgBuildComponentProps(args) {
5898
- const props = [];
5899
- let childrenVar = null;
5900
- const childrenSetupLines = [];
5901
- for (const arg of args) {
5902
- if (Array.isArray(arg) && arg[0] === "object") {
5903
- for (let i = 1;i < arg.length; i++) {
5904
- const [key2, value] = arg[i];
5905
- if (typeof key2 === "string") {
5906
- const valueCode = this.generateInComponent(value, "value");
5907
- props.push(`${key2}: ${valueCode}`);
5908
- }
5909
- }
5910
- } else if (Array.isArray(arg) && (arg[0] === "->" || arg[0] === "=>")) {
5911
- const block = arg[2];
5912
- if (block) {
5913
- const savedCreateLines = this._fgCreateLines;
5914
- const savedSetupLines = this._fgSetupLines;
5915
- this._fgCreateLines = [];
5916
- this._fgSetupLines = [];
5917
- childrenVar = this.fgProcessBlock(block);
5918
- const childCreateLines = this._fgCreateLines;
5919
- const childSetupLinesCopy = this._fgSetupLines;
5920
- this._fgCreateLines = savedCreateLines;
5921
- this._fgSetupLines = savedSetupLines;
5922
- for (const line of childCreateLines) {
5923
- this._fgCreateLines.push(line);
5924
- }
5925
- childrenSetupLines.push(...childSetupLinesCopy);
5926
- props.push(`children: ${childrenVar}`);
5927
- }
5928
- }
5929
- }
5930
- const propsCode = props.length > 0 ? `{ ${props.join(", ")} }` : "{}";
5931
- return { propsCode, childrenVar, childrenSetupLines };
5932
- }
5933
- generateComponentTemplateElement(sexpr) {
5934
- if (typeof sexpr === "string") {
5935
- if (this.componentMembers && this.componentMembers.has(sexpr)) {
5936
- return `this.${sexpr}.value`;
5937
- }
5938
- if (sexpr.startsWith('"') || sexpr.startsWith("'") || sexpr.startsWith("`")) {
5939
- return sexpr;
5940
- }
5941
- return `h('${sexpr}', 0)`;
5942
- }
5943
- if (sexpr instanceof String) {
5944
- const val = sexpr.valueOf();
5945
- if (this.componentMembers && this.componentMembers.has(val)) {
5946
- return `this.${val}.value`;
5947
- }
5948
- }
5949
- if (Array.isArray(sexpr)) {
5950
- const [head, ...rest] = sexpr;
5951
- const headStr = typeof head === "string" ? head : head instanceof String ? head.valueOf() : null;
5952
- if (headStr && this.isComponent(headStr)) {
5953
- return this.generateComponentInstance(headStr, rest);
5954
- }
5955
- if (headStr && this.isHtmlTag && this.isHtmlTag(headStr)) {
5956
- return this.generateComponentH(headStr, [], rest);
5957
- }
5958
- if (headStr === ".") {
5959
- const [, obj, prop] = sexpr;
5960
- if (obj === "this" && prop === "children") {
5961
- return `this.children`;
5962
- }
5963
- const { tag, classes } = this.collectTemplateClasses(sexpr);
5964
- if (tag && this.isHtmlTag && this.isHtmlTag(tag)) {
5965
- return this.generateComponentH(tag, classes, []);
5966
- }
5967
- }
5968
- if (Array.isArray(head)) {
5969
- const { tag, classes } = this.collectTemplateClasses(head);
5970
- if (tag && this.isHtmlTag && this.isHtmlTag(tag)) {
5971
- return this.generateComponentH(tag, classes, rest);
5972
- }
5973
- }
5974
- if (headStr === "->" || headStr === "=>") {
5975
- const [params, body] = rest;
5976
- return this.generateComponentRender(body);
5977
- }
5978
- return this.generateTemplateElement(sexpr);
5979
- }
5980
- return this.generateTemplateElement(sexpr);
5981
- }
5982
- generateComponentH(tag, classes, args) {
5983
- this.usesTemplates = true;
5984
- const props = {};
5985
- const spreads = [];
5986
- const children = [];
5987
- let refVar = null;
5988
- for (const arg of args) {
5989
- if (Array.isArray(arg) && (arg[0] === "->" || arg[0] === "=>")) {
5990
- const block = arg[2];
5991
- if (Array.isArray(block) && block[0] === "block") {
5992
- children.push(...block.slice(1).map((s) => this.generateComponentTemplateElement(s)));
5993
- } else {
5994
- children.push(this.generateComponentTemplateElement(block));
5995
- }
5996
- } else if (Array.isArray(arg) && arg[0] === "...") {
5997
- spreads.push(this.generateInComponent(arg[1], "value"));
5998
- } else if (Array.isArray(arg) && arg[0] === "object") {
5999
- const inputType = CodeGenerator.extractInputType(arg.slice(1));
6000
- for (const pair of arg.slice(1)) {
6001
- if (Array.isArray(pair) && pair.length >= 2) {
6002
- const [key2, value] = pair;
6003
- const bindInfo = this.parseBindingDirective(key2, value, tag, inputType);
6004
- if (bindInfo) {
6005
- props[bindInfo.prop] = bindInfo.valueExpr;
6006
- props[bindInfo.event] = bindInfo.handler;
6007
- continue;
6008
- }
6009
- const eventInfo = this.parseEventHandler(key2, value);
6010
- if (eventInfo) {
6011
- const handler = eventInfo.modifiers.length > 0 ? this.wrapEventHandler(eventInfo.handler, eventInfo.modifiers) : eventInfo.handler;
6012
- props[`on${eventInfo.eventName}`] = handler;
6013
- } else {
6014
- const keyStr = typeof key2 === "string" ? key2 : this.generate(key2, "value");
6015
- if (keyStr === "ref") {
6016
- refVar = typeof value === "string" ? value : this.generate(value, "value");
6017
- } else if (keyStr === "key") {
6018
- props.key = this.generateInComponent(value, "value");
6019
- } else {
6020
- props[keyStr] = this.generateInComponent(value, "value");
6021
- }
6022
- }
6023
- }
6024
- }
6025
- } else if (typeof arg === "string") {
6026
- if (this.componentMembers && this.componentMembers.has(arg)) {
6027
- children.push(`this.${arg}.value`);
6028
- } else if (arg.startsWith('"') || arg.startsWith("'") || arg.startsWith("`")) {
6029
- children.push(arg);
6030
- } else {
6031
- children.push(`String(${arg})`);
6032
- }
6033
- } else {
6034
- children.push(this.generateComponentTemplateElement(arg));
6035
- }
4332
+ const objCode = this.generate(obj, "value");
4333
+ if (prop === "prototype") {
4334
+ return `${objCode}.prototype`;
6036
4335
  }
6037
- const tagStr = classes.length > 0 ? `${tag}.${classes.join(".")}` : tag;
6038
- const propsStr = this.buildPropsString(props, spreads);
6039
- const childrenStr = this.buildChildrenString(children);
6040
- let result = `h('${tagStr}', ${propsStr}${childrenStr})`;
6041
- if (refVar) {
6042
- result = `(${refVar} = ${result})`;
4336
+ const cleanProp = prop instanceof String ? prop.valueOf() : prop;
4337
+ return `${objCode}.prototype.${cleanProp}`;
4338
+ }
4339
+ generateOptionalPrototype(head, rest, context, sexpr) {
4340
+ const [obj, prop] = rest;
4341
+ const objCode = this.generate(obj, "value");
4342
+ if (prop === "prototype") {
4343
+ return `(${objCode} != null ? ${objCode}.prototype : undefined)`;
6043
4344
  }
6044
- return result;
4345
+ return `(${objCode} != null ? ${objCode}.prototype.${prop} : undefined)`;
6045
4346
  }
6046
- generateComponentInstance(componentName, args) {
6047
- const props = {};
6048
- const children = [];
6049
- for (const arg of args) {
6050
- if (Array.isArray(arg) && arg[0] === "object") {
6051
- for (let i = 1;i < arg.length; i++) {
6052
- const [key2, value] = arg[i];
6053
- if (typeof key2 === "string") {
6054
- props[key2] = this.generateInComponent(value, "value");
6055
- }
4347
+ generateRegexIndex(head, rest, context, sexpr) {
4348
+ const [value, regex, captureIndex] = rest;
4349
+ this.helpers.add("toSearchable");
4350
+ this.programVars.add("_");
4351
+ const valueCode = this.generate(value, "value");
4352
+ const regexCode = this.generate(regex, "value");
4353
+ const indexCode = captureIndex !== null ? this.generate(captureIndex, "value") : "0";
4354
+ const hasMultilineFlag = regexCode.includes("/m");
4355
+ const allowNewlines = hasMultilineFlag ? ", true" : "";
4356
+ return `(_ = toSearchable(${valueCode}${allowNewlines}).match(${regexCode})) && _[${indexCode}]`;
4357
+ }
4358
+ generateIndexAccess(head, rest, context, sexpr) {
4359
+ const [arr, index] = rest;
4360
+ if (Array.isArray(index) && (index[0] === ".." || index[0] === "...")) {
4361
+ const isInclusive = index[0] === "..";
4362
+ const arrCode = this.generate(arr, "value");
4363
+ const [start, end] = index.slice(1);
4364
+ if (start === null && end === null) {
4365
+ return `${arrCode}.slice()`;
4366
+ } else if (start === null) {
4367
+ if (isInclusive && this.isNegativeOneLiteral(end)) {
4368
+ return `${arrCode}.slice(0)`;
6056
4369
  }
6057
- } else if (Array.isArray(arg) && (arg[0] === "->" || arg[0] === "=>")) {
6058
- const block = arg[2];
6059
- if (Array.isArray(block) && block[0] === "block") {
6060
- children.push(...block.slice(1).map((s) => this.generateComponentTemplateElement(s)));
4370
+ const endCode = this.generate(end, "value");
4371
+ if (isInclusive) {
4372
+ return `${arrCode}.slice(0, +${endCode} + 1 || 9e9)`;
6061
4373
  } else {
6062
- children.push(this.generateComponentTemplateElement(block));
4374
+ return `${arrCode}.slice(0, ${endCode})`;
4375
+ }
4376
+ } else if (end === null) {
4377
+ const startCode = this.generate(start, "value");
4378
+ return `${arrCode}.slice(${startCode})`;
4379
+ } else {
4380
+ const startCode = this.generate(start, "value");
4381
+ if (isInclusive && this.isNegativeOneLiteral(end)) {
4382
+ return `${arrCode}.slice(${startCode})`;
6063
4383
  }
6064
- } else if (typeof arg === "string") {
6065
- if (arg.startsWith('"') || arg.startsWith("'") || arg.startsWith("`")) {
6066
- children.push(arg);
6067
- } else if (this.reactiveMembers && this.reactiveMembers.has(arg)) {
6068
- children.push(`this.${arg}.value`);
4384
+ const endCode = this.generate(end, "value");
4385
+ if (isInclusive) {
4386
+ return `${arrCode}.slice(${startCode}, +${endCode} + 1 || 9e9)`;
6069
4387
  } else {
6070
- children.push(`String(${arg})`);
4388
+ return `${arrCode}.slice(${startCode}, ${endCode})`;
6071
4389
  }
6072
- } else {
6073
- children.push(this.generateComponentTemplateElement(arg));
6074
- }
6075
- }
6076
- const propsEntries = Object.entries(props);
6077
- let propsStr = "{}";
6078
- if (propsEntries.length > 0 || children.length > 0) {
6079
- const entries = propsEntries.map(([k2, v]) => `${k2}: ${v}`);
6080
- if (children.length > 0) {
6081
- const childrenStr = children.length === 1 ? children[0] : `[${children.join(", ")}]`;
6082
- entries.push(`children: ${childrenStr}`);
6083
4390
  }
6084
- propsStr = entries.length > 0 ? `{ ${entries.join(", ")} }` : "{}";
6085
4391
  }
6086
- return `new ${componentName}(${propsStr}).render()`;
4392
+ const indexCode = this.unwrap(this.generate(index, "value"));
4393
+ return `${this.generate(arr, "value")}[${indexCode}]`;
6087
4394
  }
6088
- generateTemplateElement(sexpr) {
6089
- if (typeof sexpr === "string") {
6090
- if (sexpr.startsWith('"') || sexpr.startsWith("'") || sexpr.startsWith("`")) {
6091
- return sexpr;
6092
- }
6093
- return `h('${sexpr}', 0)`;
6094
- }
6095
- if (sexpr instanceof String) {
6096
- return this.generate(sexpr, "value");
6097
- }
6098
- if (!Array.isArray(sexpr)) {
6099
- return `txt(${this.generate(sexpr, "value")})`;
6100
- }
6101
- const [head, ...rest] = sexpr;
6102
- if (head === "str") {
6103
- return this.generate(sexpr, "value");
6104
- }
6105
- if (head === "block") {
6106
- if (rest.length === 0)
6107
- return "null";
6108
- if (rest.length === 1)
6109
- return this.generateTemplateElement(rest[0]);
6110
- const elements = rest.map((s) => this.generateTemplateElement(s));
6111
- return `frag(${elements.join(", ")})`;
6112
- }
6113
- if (head === "if" || head === "unless") {
6114
- return this.generateTemplateConditional(sexpr);
6115
- }
6116
- if (head === "for-in" || head === "for-of") {
6117
- return this.generateTemplateLoop(sexpr);
6118
- }
6119
- if (head === ".") {
6120
- const [obj, prop] = rest;
6121
- if (typeof obj === "string" && typeof prop === "string") {
6122
- if (this.isHtmlTag(obj)) {
6123
- return `h('${obj}.${prop}', 0)`;
6124
- }
6125
- return `txt(${this.generate(sexpr, "value")})`;
6126
- }
6127
- if (Array.isArray(obj) && obj[0] === ".") {
6128
- const { tag, classes } = this.collectTemplateClasses(sexpr);
6129
- if (this.isHtmlTag(tag)) {
6130
- return `h('${tag}.${classes.join(".")}', 0)`;
4395
+ generateSoakIndex(head, rest, context, sexpr) {
4396
+ const [arr, index] = rest;
4397
+ const arrCode = this.generate(arr, "value");
4398
+ const indexCode = this.generate(index, "value");
4399
+ return `(${arrCode} != null ? ${arrCode}[${indexCode}] : undefined)`;
4400
+ }
4401
+ generateOptIndex(head, rest, context, sexpr) {
4402
+ const [arr, index] = rest;
4403
+ const arrCode = this.generate(arr, "value");
4404
+ const indexCode = this.generate(index, "value");
4405
+ return `${arrCode}?.[${indexCode}]`;
4406
+ }
4407
+ generateOptCall(head, rest, context, sexpr) {
4408
+ const [fn, ...args] = rest;
4409
+ const fnCode = this.generate(fn, "value");
4410
+ const argsCode = args.map((arg) => this.generate(arg, "value")).join(", ");
4411
+ return `${fnCode}?.(${argsCode})`;
4412
+ }
4413
+ generateDef(head, rest, context, sexpr) {
4414
+ const [name, params, body] = rest;
4415
+ const sideEffectOnly = name instanceof String && name.await === true;
4416
+ const cleanName = name instanceof String ? name.valueOf() : name;
4417
+ const paramList = this.generateParamList(params);
4418
+ const bodyCode = this.generateFunctionBody(body, params, sideEffectOnly);
4419
+ const isAsync = this.containsAwait(body);
4420
+ const isGenerator = this.containsYield(body);
4421
+ const asyncPrefix = isAsync ? "async " : "";
4422
+ const generatorSuffix = isGenerator ? "*" : "";
4423
+ return `${asyncPrefix}function${generatorSuffix} ${cleanName}(${paramList}) ${bodyCode}`;
4424
+ }
4425
+ generateThinArrow(head, rest, context, sexpr) {
4426
+ const [params, body] = rest;
4427
+ const sideEffectOnly = this.nextFunctionIsVoid || false;
4428
+ this.nextFunctionIsVoid = false;
4429
+ const paramList = this.generateParamList(params);
4430
+ const bodyCode = this.generateFunctionBody(body, params, sideEffectOnly);
4431
+ const isAsync = this.containsAwait(body);
4432
+ const isGenerator = this.containsYield(body);
4433
+ const asyncPrefix = isAsync ? "async " : "";
4434
+ const generatorSuffix = isGenerator ? "*" : "";
4435
+ const fnCode = `${asyncPrefix}function${generatorSuffix}(${paramList}) ${bodyCode}`;
4436
+ return context === "value" ? `(${fnCode})` : fnCode;
4437
+ }
4438
+ generateFatArrow(head, rest, context, sexpr) {
4439
+ const [params, body] = rest;
4440
+ const sideEffectOnly = this.nextFunctionIsVoid || false;
4441
+ this.nextFunctionIsVoid = false;
4442
+ const paramList = this.generateParamList(params);
4443
+ const isSingleSimpleParam = params.length === 1 && typeof params[0] === "string" && !paramList.includes("=") && !paramList.includes("...") && !paramList.includes("[") && !paramList.includes("{");
4444
+ const paramSyntax = isSingleSimpleParam ? paramList : `(${paramList})`;
4445
+ const isAsync = this.containsAwait(body);
4446
+ const asyncPrefix = isAsync ? "async " : "";
4447
+ if (!sideEffectOnly) {
4448
+ if (Array.isArray(body) && body[0] === "block" && body.length === 2) {
4449
+ const expr = body[1];
4450
+ if (!Array.isArray(expr) || expr[0] !== "return") {
4451
+ return `${asyncPrefix}${paramSyntax} => ${this.generate(expr, "value")}`;
6131
4452
  }
6132
- return `txt(${this.generate(sexpr, "value")})`;
6133
4453
  }
6134
- }
6135
- if (typeof head === "string" && !CodeGenerator.GENERATORS[head]) {
6136
- return this.generateH(head, [], rest);
6137
- }
6138
- if (Array.isArray(head) && head[0] === ".") {
6139
- if (head.length === 3 && head[2] == "__cx__") {
6140
- const baseTag = head[1];
6141
- let tag2, classes2;
6142
- if (Array.isArray(baseTag) && baseTag[0] === ".") {
6143
- ({ tag: tag2, classes: classes2 } = this.collectTemplateClasses(baseTag));
6144
- } else {
6145
- tag2 = baseTag;
6146
- classes2 = [];
6147
- }
6148
- const cxArgsStr = rest.map((arg) => this.generate(arg, "value")).join(", ");
6149
- return this.generateH(tag2, classes2, [], cxArgsStr);
6150
- }
6151
- const { tag, classes } = this.collectTemplateClasses(head);
6152
- return this.generateH(tag, classes, rest);
6153
- }
6154
- if (Array.isArray(head) && Array.isArray(head[0]) && head[0][0] === "." && head[0][2] == "__cx__") {
6155
- const propAccess = head[0];
6156
- const cxArgs = head.slice(1);
6157
- const baseTag = propAccess[1];
6158
- let tag, classes;
6159
- if (Array.isArray(baseTag) && baseTag[0] === ".") {
6160
- ({ tag, classes } = this.collectTemplateClasses(baseTag));
6161
- } else {
6162
- tag = baseTag;
6163
- classes = [];
6164
- }
6165
- const cxArgsStr = cxArgs.map((arg) => this.generate(arg, "value")).join(", ");
6166
- return this.generateH(tag, classes, rest, cxArgsStr);
6167
- }
6168
- return `txt(${this.generate(sexpr, "value")})`;
6169
- }
6170
- parseTemplateArgs(args, tag) {
6171
- const props = {};
6172
- const spreads = [];
6173
- const children = [];
6174
- let refVar = null;
6175
- for (const arg of args) {
6176
- if (Array.isArray(arg) && (arg[0] === "->" || arg[0] === "=>")) {
6177
- const block = arg[2];
6178
- if (Array.isArray(block) && block[0] === "block") {
6179
- children.push(...block.slice(1).map((s) => this.generateTemplateElement(s)));
6180
- } else {
6181
- children.push(this.generateTemplateElement(block));
6182
- }
6183
- } else if (Array.isArray(arg) && arg[0] === "...") {
6184
- spreads.push(this.generate(arg[1], "value"));
6185
- } else if (Array.isArray(arg) && arg[0] === "object") {
6186
- const inputType = CodeGenerator.extractInputType(arg.slice(1));
6187
- for (const pair of arg.slice(1)) {
6188
- if (Array.isArray(pair) && pair.length >= 2) {
6189
- const [key2, value] = pair;
6190
- const bindInfo = this.parseBindingDirective(key2, value, tag, inputType);
6191
- if (bindInfo) {
6192
- props[bindInfo.prop] = bindInfo.valueExpr;
6193
- props[bindInfo.event] = bindInfo.handler;
6194
- continue;
6195
- }
6196
- const eventInfo = this.parseEventHandler(key2, value);
6197
- if (eventInfo) {
6198
- const handler = eventInfo.modifiers.length > 0 ? this.wrapEventHandler(eventInfo.handler, eventInfo.modifiers) : eventInfo.handler;
6199
- props[`on${eventInfo.eventName}`] = handler;
6200
- } else {
6201
- const keyStr = typeof key2 === "string" ? key2 : this.generate(key2, "value");
6202
- if (keyStr === "ref") {
6203
- refVar = typeof value === "string" ? value : this.generate(value, "value");
6204
- } else if (keyStr === "key") {
6205
- props.key = this.generate(value, "value");
6206
- } else if (keyStr === "class") {
6207
- props.class = this.generate(value, "value");
6208
- } else {
6209
- props[keyStr] = this.generate(value, "value");
6210
- }
6211
- }
6212
- }
6213
- }
6214
- } else if (typeof arg === "string") {
6215
- if (arg.startsWith('"') || arg.startsWith("'") || arg.startsWith("`")) {
6216
- children.push(arg);
6217
- } else {
6218
- children.push(`String(${arg})`);
6219
- }
6220
- } else {
6221
- children.push(this.generateTemplateElement(arg));
4454
+ if (!Array.isArray(body) || body[0] !== "block") {
4455
+ return `${asyncPrefix}${paramSyntax} => ${this.generate(body, "value")}`;
6222
4456
  }
6223
4457
  }
6224
- return { props, spreads, children, refVar };
4458
+ const bodyCode = this.generateFunctionBody(body, params, sideEffectOnly);
4459
+ return `${asyncPrefix}${paramSyntax} => ${bodyCode}`;
6225
4460
  }
6226
- buildPropsString(props, spreads, classExpr = null) {
6227
- const hasProps = Object.keys(props).length > 0;
6228
- const hasSpreads = spreads.length > 0;
6229
- const hasClass = classExpr !== null;
6230
- if (!hasProps && !hasSpreads && !hasClass) {
6231
- return "0";
4461
+ generateReturn(head, rest, context, sexpr) {
4462
+ if (rest.length === 0) {
4463
+ return "return";
6232
4464
  }
6233
- const parts = [];
6234
- if (hasClass) {
6235
- parts.push(`class: ${classExpr}`);
4465
+ let [expr] = rest;
4466
+ if (this.sideEffectOnly) {
4467
+ return "return";
4468
+ }
4469
+ if (Array.isArray(expr) && expr[0] === "unless") {
4470
+ const [, condition, body] = expr;
4471
+ const value = Array.isArray(body) && body.length === 1 ? body[0] : body;
4472
+ return `if (!${this.generate(condition, "value")}) return ${this.generate(value, "value")}`;
6236
4473
  }
6237
- for (const spread of spreads) {
6238
- parts.push(`...${spread}`);
4474
+ if (Array.isArray(expr) && expr[0] === "if") {
4475
+ const [, condition, body, ...elseParts] = expr;
4476
+ if (elseParts.length === 0) {
4477
+ const value = Array.isArray(body) && body.length === 1 ? body[0] : body;
4478
+ return `if (${this.generate(condition, "value")}) return ${this.generate(value, "value")}`;
4479
+ }
6239
4480
  }
6240
- for (const [k2, v] of Object.entries(props)) {
6241
- parts.push(`${k2}: ${v}`);
4481
+ if (Array.isArray(expr) && expr[0] === "new" && Array.isArray(expr[1]) && expr[1][0] === "unless") {
4482
+ const [, unlessNode] = expr;
4483
+ const [, condition, body] = unlessNode;
4484
+ const value = Array.isArray(body) && body.length === 1 ? body[0] : body;
4485
+ return `if (!${this.generate(condition, "value")}) return ${this.generate(["new", value], "value")}`;
6242
4486
  }
6243
- return `{ ${parts.join(", ")} }`;
4487
+ return `return ${this.generate(expr, "value")}`;
6244
4488
  }
6245
- buildChildrenString(children) {
6246
- if (children.length === 0)
6247
- return "";
6248
- if (children.length === 1)
6249
- return `, ${children[0]}`;
6250
- return `, [${children.join(", ")}]`;
6251
- }
6252
- generateH(tag, classes, args, cxArgs = null) {
6253
- this.usesTemplates = true;
6254
- const { props, spreads, children, refVar } = this.parseTemplateArgs(args, tag);
6255
- const tagStr = classes.length > 0 ? `${tag}.${classes.join(".")}` : tag;
6256
- const classExpr = cxArgs ? `cx(${cxArgs})` : null;
6257
- const propsStr = this.buildPropsString(props, spreads, classExpr);
6258
- const childrenStr = this.buildChildrenString(children);
6259
- let result = `h('${tagStr}', ${propsStr}${childrenStr})`;
6260
- if (refVar) {
6261
- result = `(${refVar} = ${result})`;
6262
- }
6263
- return result;
4489
+ generateState(head, rest, context, sexpr) {
4490
+ const [name, expr] = rest;
4491
+ this.usesReactivity = true;
4492
+ const varName = typeof name === "string" ? name : name.valueOf();
4493
+ const exprCode = this.generate(expr, "value");
4494
+ if (!this.reactiveVars)
4495
+ this.reactiveVars = new Set;
4496
+ this.reactiveVars.add(varName);
4497
+ return `const ${varName} = __state(${exprCode})`;
6264
4498
  }
6265
- collectTemplateClasses(sexpr) {
6266
- const classes = [];
6267
- let current = sexpr;
6268
- while (Array.isArray(current) && current[0] === ".") {
6269
- const prop = current[2];
6270
- if (typeof prop === "string" || prop instanceof String) {
6271
- classes.unshift(prop.valueOf());
6272
- }
6273
- current = current[1];
6274
- }
6275
- const tag = typeof current === "string" ? current : current instanceof String ? current.valueOf() : "div";
6276
- return { tag, classes };
6277
- }
6278
- generateTemplateConditional(sexpr) {
6279
- const [head, condition, thenBlock, elseBlock] = sexpr;
6280
- const cond = this.generate(condition, "value");
6281
- const condExpr = head === "unless" ? `!(${cond})` : cond;
6282
- let actualThen = thenBlock;
6283
- if (Array.isArray(thenBlock) && thenBlock.length === 1 && Array.isArray(thenBlock[0]) && thenBlock[0][0] !== "block") {
6284
- actualThen = thenBlock[0];
6285
- }
6286
- const thenCode = this.generateTemplateElement(actualThen);
6287
- if (elseBlock) {
6288
- let actualElse = elseBlock;
6289
- if (Array.isArray(elseBlock) && elseBlock.length === 1 && Array.isArray(elseBlock[0]) && elseBlock[0][0] !== "block") {
6290
- actualElse = elseBlock[0];
6291
- }
6292
- return `(${condExpr} ? ${thenCode} : ${this.generateTemplateElement(actualElse)})`;
6293
- }
6294
- return `(${condExpr} ? ${thenCode} : null)`;
6295
- }
6296
- generateTemplateLoop(sexpr) {
6297
- const [head] = sexpr;
6298
- if (head === "for-in")
6299
- return this.generateTemplateForIn(sexpr);
6300
- if (head === "for-of")
6301
- return this.generateTemplateForOf(sexpr);
6302
- return "null";
4499
+ generateComputed(head, rest, context, sexpr) {
4500
+ const [name, expr] = rest;
4501
+ this.usesReactivity = true;
4502
+ if (!this.reactiveVars)
4503
+ this.reactiveVars = new Set;
4504
+ const varName = typeof name === "string" ? name : name.valueOf();
4505
+ this.reactiveVars.add(varName);
4506
+ const exprCode = this.generate(expr, "value");
4507
+ return `const ${varName} = __computed(() => ${exprCode})`;
4508
+ }
4509
+ generateReadonly(head, rest, context, sexpr) {
4510
+ const [name, expr] = rest;
4511
+ const varName = typeof name === "string" ? name : name.valueOf();
4512
+ const exprCode = this.generate(expr, "value");
4513
+ return `const ${varName} = ${exprCode}`;
6303
4514
  }
6304
- generateTemplateForIn(sexpr) {
6305
- const [, vars, iterable, , guard, body] = sexpr;
6306
- const itemVar = Array.isArray(vars) && vars[0] ? typeof vars[0] === "string" ? vars[0] : this.generate(vars[0], "value") : "__item";
6307
- const indexVar = Array.isArray(vars) && vars[1] ? typeof vars[1] === "string" ? vars[1] : "__i" : "__i";
6308
- const iterCode = this.generate(iterable, "value");
6309
- const bodyCode = this.generateTemplateElement(body);
6310
- const guardCode = guard ? `if (!(${this.generate(guard, "value")})) continue; ` : "";
6311
- return `frag(...${iterCode}.map((${itemVar}, ${indexVar}) => ${guardCode ? `{ ${guardCode}return ${bodyCode}; }` : bodyCode}))`;
6312
- }
6313
- generateTemplateForOf(sexpr) {
6314
- const [, vars, object, own, guard, body] = sexpr;
6315
- const keyVar = Array.isArray(vars) && vars[0] ? typeof vars[0] === "string" ? vars[0] : "__k" : "__k";
6316
- const valVar = Array.isArray(vars) && vars[1] ? typeof vars[1] === "string" ? vars[1] : null : null;
6317
- const objCode = this.generate(object, "value");
6318
- const bodyCode = this.generateTemplateElement(body);
6319
- const entries = own ? `Object.entries(${objCode})` : `Object.entries(${objCode})`;
6320
- const destructure = valVar ? `[${keyVar}, ${valVar}]` : `[${keyVar}]`;
6321
- const guardCode = guard ? `if (!(${this.generate(guard, "value")})) continue; ` : "";
6322
- return `frag(...${entries}.map((${destructure}) => ${guardCode ? `{ ${guardCode}return ${bodyCode}; }` : bodyCode}))`;
4515
+ generateEffect(head, rest, context, sexpr) {
4516
+ const [target, body] = rest;
4517
+ this.usesReactivity = true;
4518
+ let bodyCode;
4519
+ if (Array.isArray(body) && body[0] === "block") {
4520
+ const statements = body.slice(1);
4521
+ const stmts = this.withIndent(() => this.formatStatements(statements));
4522
+ bodyCode = `{
4523
+ ${stmts.join(`
4524
+ `)}
4525
+ ${this.indent()}}`;
4526
+ } else if (Array.isArray(body) && (body[0] === "->" || body[0] === "=>")) {
4527
+ const fnCode = this.generate(body, "value");
4528
+ if (target) {
4529
+ const varName = typeof target === "string" ? target : this.generate(target, "value");
4530
+ return `const ${varName} = __effect(${fnCode})`;
4531
+ }
4532
+ return `__effect(${fnCode})`;
4533
+ } else {
4534
+ bodyCode = `{ ${this.generate(body, "value")}; }`;
4535
+ }
4536
+ const effectCode = `__effect(() => ${bodyCode})`;
4537
+ if (target) {
4538
+ const varName = typeof target === "string" ? target : this.generate(target, "value");
4539
+ return `const ${varName} = ${effectCode}`;
4540
+ }
4541
+ return effectCode;
6323
4542
  }
6324
4543
  generateBreak(head, rest, context, sexpr) {
6325
4544
  return "break";
@@ -6912,7 +5131,7 @@ ${this.indent()}}`;
6912
5131
  }
6913
5132
  const [key2, value, operator] = pair;
6914
5133
  let keyCode;
6915
- if (Array.isArray(key2) && key2[0] === "computed") {
5134
+ if (Array.isArray(key2) && key2[0] === "dynamicKey") {
6916
5135
  const expr = key2[1];
6917
5136
  keyCode = `[${this.generate(expr, "value")}]`;
6918
5137
  } else {
@@ -8933,24 +7152,19 @@ ${this.indent()}}`;
8933
7152
  // A minimal, fine-grained reactivity system
8934
7153
  //
8935
7154
  // Reactivity:
8936
- // __signal(value) - Reactive state container
8937
- // __computed(fn) - Derived value (lazy, cached)
7155
+ // __state(value) - Reactive state container
7156
+ // __computed(fn) - Computed value (lazy, cached)
8938
7157
  // __effect(fn) - Side effect that re-runs when dependencies change
8939
7158
  // __batch(fn) - Group multiple updates into one flush
8940
7159
  // __readonly(value) - Immutable value wrapper
8941
7160
  //
8942
- // Context API:
8943
- // setContext(key, value) - Set context in current component
8944
- // getContext(key) - Get context from nearest ancestor
8945
- // hasContext(key) - Check if context exists
8946
- //
8947
7161
  // Error Handling:
8948
- // __catchErrors(fn) - Wrap function to route errors to boundary
8949
- // __handleError(error) - Route error to nearest boundary
7162
+ // __catchErrors(fn) - Wrap function to route errors to handler
7163
+ // __handleError(err) - Route error to handler
8950
7164
  //
8951
7165
  // How reactivity works:
8952
- // - Reading a signal/computed inside an effect tracks it as a dependency
8953
- // - Writing to a signal notifies all subscribers
7166
+ // - Reading a state/computed inside an effect tracks it as a dependency
7167
+ // - Writing to a state notifies all subscribers
8954
7168
  // - Batching defers effect execution until the batch completes
8955
7169
  // ============================================================================
8956
7170
 
@@ -8959,14 +7173,14 @@ let __currentEffect = null; // The effect/computed currently being evaluated
8959
7173
  let __pendingEffects = new Set(); // Effects queued to run
8960
7174
  let __batching = false; // Are we inside a batch()?
8961
7175
 
8962
- // Flush all pending effects (called after signal updates, or at end of batch)
7176
+ // Flush all pending effects (called after state updates, or at end of batch)
8963
7177
  function __flushEffects() {
8964
7178
  const effects = [...__pendingEffects];
8965
7179
  __pendingEffects.clear();
8966
7180
  for (const effect of effects) effect.run();
8967
7181
  }
8968
7182
 
8969
- // Shared primitive coercion (used by signal and computed)
7183
+ // Shared primitive coercion (used by state and computed)
8970
7184
  const __primitiveCoercion = {
8971
7185
  valueOf() { return this.value; },
8972
7186
  toString() { return String(this.value); },
@@ -8974,59 +7188,59 @@ const __primitiveCoercion = {
8974
7188
  };
8975
7189
 
8976
7190
  /**
8977
- * Create a reactive signal (state container)
7191
+ * Create a reactive state container
8978
7192
  * @param {*} initialValue - The initial value
8979
- * @returns {object} Signal with .value getter/setter
7193
+ * @returns {object} State with .value getter/setter
8980
7194
  */
8981
- function __signal(initialValue) {
7195
+ function __state(initialValue) {
8982
7196
  let value = initialValue;
8983
- const subscribers = new Set(); // Effects/computeds that depend on this signal
8984
-
7197
+ const subscribers = new Set(); // Effects/computeds that depend on this state
7198
+
8985
7199
  // State flags
8986
7200
  let notifying = false; // Prevents re-entry during notification
8987
7201
  let locked = false; // Prevents writes (used during SSR/hydration)
8988
- let dead = false; // Signal has been killed (cleanup)
7202
+ let dead = false; // State has been killed (cleanup)
8989
7203
 
8990
- const signal = {
7204
+ const state = {
8991
7205
  get value() {
8992
7206
  if (dead) return value;
8993
- // Track this signal as a dependency of the current effect/computed
7207
+ // Track this state as a dependency of the current effect/computed
8994
7208
  if (__currentEffect) {
8995
7209
  subscribers.add(__currentEffect);
8996
7210
  __currentEffect.dependencies.add(subscribers);
8997
7211
  }
8998
7212
  return value;
8999
7213
  },
9000
-
7214
+
9001
7215
  set value(newValue) {
9002
7216
  // Skip if: dead, locked, same value, or already notifying
9003
7217
  if (dead || locked || newValue === value || notifying) return;
9004
7218
  value = newValue;
9005
7219
  notifying = true;
9006
-
7220
+
9007
7221
  // Notify subscribers: computeds mark dirty, effects get queued
9008
7222
  for (const sub of subscribers) {
9009
7223
  if (sub.markDirty) sub.markDirty(); // Computed
9010
7224
  else __pendingEffects.add(sub); // Effect
9011
7225
  }
9012
-
7226
+
9013
7227
  // Flush immediately unless we're batching
9014
7228
  if (!__batching) __flushEffects();
9015
7229
  notifying = false;
9016
7230
  },
9017
-
7231
+
9018
7232
  read() { return value; }, // Read without tracking
9019
- lock() { locked = true; return signal; }, // Prevent further writes
9020
- free() { subscribers.clear(); return signal; }, // Clear all subscribers
7233
+ lock() { locked = true; return state; }, // Prevent further writes
7234
+ free() { subscribers.clear(); return state; }, // Clear all subscribers
9021
7235
  kill() { dead = true; subscribers.clear(); return value; }, // Cleanup
9022
-
7236
+
9023
7237
  ...__primitiveCoercion
9024
7238
  };
9025
- return signal;
7239
+ return state;
9026
7240
  }
9027
7241
 
9028
7242
  /**
9029
- * Create a computed value (derived state, lazy & cached)
7243
+ * Create a computed value (lazy & cached)
9030
7244
  * @param {function} fn - Function that computes the value
9031
7245
  * @returns {object} Computed with .value getter
9032
7246
  */
@@ -9034,14 +7248,14 @@ function __computed(fn) {
9034
7248
  let value;
9035
7249
  let dirty = true; // Needs recomputation?
9036
7250
  const subscribers = new Set(); // Things that depend on this computed
9037
-
7251
+
9038
7252
  // State flags
9039
7253
  let locked = false; // Prevents recomputation
9040
7254
  let dead = false; // Computed has been killed
9041
7255
 
9042
7256
  const computed = {
9043
- dependencies: new Set(), // Signals/computeds this depends on
9044
-
7257
+ dependencies: new Set(), // States/computeds this depends on
7258
+
9045
7259
  // Called by dependencies when they change
9046
7260
  markDirty() {
9047
7261
  if (dead || locked || dirty) return;
@@ -9052,7 +7266,7 @@ function __computed(fn) {
9052
7266
  else __pendingEffects.add(sub);
9053
7267
  }
9054
7268
  },
9055
-
7269
+
9056
7270
  get value() {
9057
7271
  if (dead) return value;
9058
7272
  // Track this computed as a dependency
@@ -9073,7 +7287,7 @@ function __computed(fn) {
9073
7287
  }
9074
7288
  return value;
9075
7289
  },
9076
-
7290
+
9077
7291
  read() { return value; }, // Return cached value without tracking or recomputing
9078
7292
  lock() { locked = true; computed.value; return computed; }, // Lock after computing
9079
7293
  free() {
@@ -9088,7 +7302,7 @@ function __computed(fn) {
9088
7302
  computed.free();
9089
7303
  return result;
9090
7304
  },
9091
-
7305
+
9092
7306
  ...__primitiveCoercion
9093
7307
  };
9094
7308
  return computed;
@@ -9101,8 +7315,8 @@ function __computed(fn) {
9101
7315
  */
9102
7316
  function __effect(fn) {
9103
7317
  const effect = {
9104
- dependencies: new Set(), // Signals/computeds this effect depends on
9105
-
7318
+ dependencies: new Set(), // States/computeds this effect depends on
7319
+
9106
7320
  run() {
9107
7321
  // Clear old dependencies before re-running
9108
7322
  for (const dep of effect.dependencies) dep.delete(effect);
@@ -9112,13 +7326,13 @@ function __effect(fn) {
9112
7326
  __currentEffect = effect;
9113
7327
  try { fn(); } finally { __currentEffect = prev; }
9114
7328
  },
9115
-
7329
+
9116
7330
  dispose() {
9117
7331
  for (const dep of effect.dependencies) dep.delete(effect);
9118
7332
  effect.dependencies.clear();
9119
7333
  }
9120
7334
  };
9121
-
7335
+
9122
7336
  effect.run(); // Run immediately to establish dependencies
9123
7337
  return () => effect.dispose();
9124
7338
  }
@@ -9149,76 +7363,14 @@ function __readonly(value) {
9149
7363
  }
9150
7364
 
9151
7365
  // ============================================================================
9152
- // Context API
9153
- // Pass data down the component tree without prop drilling
9154
- //
9155
- // Usage:
9156
- // // In parent component constructor or methods:
9157
- // setContext('theme', { dark: true })
9158
- //
9159
- // // In any descendant component:
9160
- // theme = getContext('theme')
9161
- // ============================================================================
9162
-
9163
- let __currentComponent = null; // The component currently being initialized
9164
-
9165
- /**
9166
- * Set a context value in the current component
9167
- * @param {*} key - The context key (usually a string or symbol)
9168
- * @param {*} value - The value to store
9169
- */
9170
- function setContext(key, value) {
9171
- if (!__currentComponent) {
9172
- throw new Error('setContext must be called during component initialization');
9173
- }
9174
- if (!__currentComponent._context) {
9175
- __currentComponent._context = new Map();
9176
- }
9177
- __currentComponent._context.set(key, value);
9178
- }
9179
-
9180
- /**
9181
- * Get a context value from the nearest ancestor that set it
9182
- * @param {*} key - The context key to look up
9183
- * @returns {*} The context value, or undefined if not found
9184
- */
9185
- function getContext(key) {
9186
- let component = __currentComponent;
9187
- while (component) {
9188
- if (component._context && component._context.has(key)) {
9189
- return component._context.get(key);
9190
- }
9191
- component = component._parent;
9192
- }
9193
- return undefined;
9194
- }
9195
-
9196
- /**
9197
- * Check if a context key exists in any ancestor
9198
- * @param {*} key - The context key to check
9199
- * @returns {boolean} True if the key exists
9200
- */
9201
- function hasContext(key) {
9202
- let component = __currentComponent;
9203
- while (component) {
9204
- if (component._context && component._context.has(key)) return true;
9205
- component = component._parent;
9206
- }
9207
- return false;
9208
- }
9209
-
9210
- // ============================================================================
9211
- // Error Boundaries
9212
- // Catch and handle errors in component trees gracefully
9213
- //
9214
- // Usage in component:
9215
- // error: (err) -> console.error "Caught:", err
7366
+ // Error Handling
7367
+ // Catch and handle errors gracefully
9216
7368
  // ============================================================================
9217
7369
 
9218
- let __errorHandler = null; // Current error handler (set by nearest error boundary)
7370
+ let __errorHandler = null; // Current error handler
9219
7371
 
9220
7372
  /**
9221
- * Set the current error handler (called by components with error: handler)
7373
+ * Set the current error handler
9222
7374
  * @param {function} handler - Error handler function
9223
7375
  * @returns {function} Previous handler (for restoration)
9224
7376
  */
@@ -9336,8 +7488,8 @@ function compileToJS(source, options = {}) {
9336
7488
  return new Compiler(options).compileToJS(source);
9337
7489
  }
9338
7490
  // src/browser.js
9339
- var VERSION = "2.5.1";
9340
- var BUILD_DATE = "2026-01-16@07:47:41GMT";
7491
+ var VERSION = "2.7.1";
7492
+ var BUILD_DATE = "2026-02-03@10:57:35GMT";
9341
7493
  var dedent = (s) => {
9342
7494
  const m = s.match(/^[ \t]*(?=\S)/gm);
9343
7495
  const i = Math.min(...(m || []).map((x) => x.length));