rip-lang 3.6.1 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -1
- package/README.md +42 -17
- package/docs/NOTES.md +93 -0
- package/docs/RIP-GUIDE.md +39 -1
- package/docs/RIP-INTERNALS.md +9 -9
- package/docs/RIP-LANG.md +213 -2
- package/docs/RIP-TYPES.md +98 -0
- package/docs/dist/rip.browser.js +976 -508
- package/docs/dist/rip.browser.min.js +215 -215
- package/docs/dist/rip.browser.min.js.br +0 -0
- package/docs/index.html +52 -31
- package/package.json +3 -3
- package/src/compiler.js +238 -151
- package/src/components.js +167 -169
- package/src/grammar/grammar.rip +12 -2
- package/src/lexer.js +77 -5
- package/src/parser.js +123 -120
- package/src/repl.js +4 -128
- package/src/types.js +416 -35
package/docs/dist/rip.browser.js
CHANGED
|
@@ -208,7 +208,7 @@ function installTypeSupport(Lexer) {
|
|
|
208
208
|
if (isDef || isAlias) {
|
|
209
209
|
if (!token.data)
|
|
210
210
|
token.data = {};
|
|
211
|
-
token.data.typeParams = genTokens
|
|
211
|
+
token.data.typeParams = buildTypeString(genTokens);
|
|
212
212
|
tokens2.splice(i + 1, genTokens.length);
|
|
213
213
|
if (isDef && tokens2[i + 1]?.[0] === "(") {
|
|
214
214
|
tokens2[i + 1][0] = "CALL_START";
|
|
@@ -373,8 +373,10 @@ function collectTypeExpression(tokens, j) {
|
|
|
373
373
|
function buildTypeString(typeTokens) {
|
|
374
374
|
if (typeTokens.length === 0)
|
|
375
375
|
return "";
|
|
376
|
+
if (typeTokens[0]?.[0] === "=>")
|
|
377
|
+
typeTokens.unshift(["", "()"]);
|
|
376
378
|
let typeStr = typeTokens.map((t) => t[1]).join(" ").replace(/\s+/g, " ").trim();
|
|
377
|
-
typeStr = typeStr.replace(/\s*<\s*/g, "<").replace(/\s*>\s*/g, ">").replace(/\s*\[\s*/g, "[").replace(/\s*\]\s*/g, "]").replace(/\s*\(\s*/g, "(").replace(/\s*\)\s*/g, ")").replace(/\s*,\s*/g, ", ");
|
|
379
|
+
typeStr = typeStr.replace(/\s*<\s*/g, "<").replace(/\s*>\s*/g, ">").replace(/\s*\[\s*/g, "[").replace(/\s*\]\s*/g, "]").replace(/\s*\(\s*/g, "(").replace(/\s*\)\s*/g, ")").replace(/\s*,\s*/g, ", ").replace(/\s*=>\s*/g, " => ").replace(/ :: /g, ": ").replace(/:: /g, ": ");
|
|
378
380
|
return typeStr;
|
|
379
381
|
}
|
|
380
382
|
function collectBalancedAngles(tokens, j) {
|
|
@@ -440,9 +442,23 @@ function collectStructuralType(tokens, indentIdx) {
|
|
|
440
442
|
if (tokens[j]?.[1] === ":")
|
|
441
443
|
j++;
|
|
442
444
|
let propTypeTokens = [];
|
|
445
|
+
let typeDepth = 0;
|
|
443
446
|
while (j < tokens.length) {
|
|
444
447
|
let pt = tokens[j];
|
|
445
|
-
if (pt[0] === "
|
|
448
|
+
if (pt[0] === "INDENT") {
|
|
449
|
+
typeDepth++;
|
|
450
|
+
j++;
|
|
451
|
+
continue;
|
|
452
|
+
}
|
|
453
|
+
if (pt[0] === "OUTDENT") {
|
|
454
|
+
if (typeDepth > 0) {
|
|
455
|
+
typeDepth--;
|
|
456
|
+
j++;
|
|
457
|
+
continue;
|
|
458
|
+
}
|
|
459
|
+
break;
|
|
460
|
+
}
|
|
461
|
+
if (pt[0] === "TERMINATOR" && typeDepth === 0)
|
|
446
462
|
break;
|
|
447
463
|
propTypeTokens.push(pt);
|
|
448
464
|
j++;
|
|
@@ -525,12 +541,14 @@ function collectBlockUnion(tokens, startIdx) {
|
|
|
525
541
|
let endIdx = findMatchingOutdent(tokens, indentIdx);
|
|
526
542
|
return { typeText: members.join(" | "), endIdx };
|
|
527
543
|
}
|
|
528
|
-
function emitTypes(tokens) {
|
|
544
|
+
function emitTypes(tokens, sexpr = null) {
|
|
529
545
|
let lines = [];
|
|
530
546
|
let indentLevel = 0;
|
|
531
547
|
let indentStr = " ";
|
|
532
548
|
let indent = () => indentStr.repeat(indentLevel);
|
|
533
549
|
let inClass = false;
|
|
550
|
+
let usesSignal = false;
|
|
551
|
+
let usesComputed = false;
|
|
534
552
|
let emitBlock = (prefix, body, suffix) => {
|
|
535
553
|
if (body.startsWith("{ ") && body.endsWith(" }")) {
|
|
536
554
|
let props = body.slice(2, -2).split("; ").filter((p) => p.trim());
|
|
@@ -546,6 +564,99 @@ function emitTypes(tokens) {
|
|
|
546
564
|
}
|
|
547
565
|
lines.push(`${indent()}${prefix}${body}${suffix}`);
|
|
548
566
|
};
|
|
567
|
+
let collectParams = (tokens2, startIdx) => {
|
|
568
|
+
let params = [];
|
|
569
|
+
let j = startIdx;
|
|
570
|
+
let openTag = tokens2[j]?.[0];
|
|
571
|
+
if (openTag !== "CALL_START" && openTag !== "PARAM_START")
|
|
572
|
+
return { params, endIdx: j };
|
|
573
|
+
let closeTag = openTag === "CALL_START" ? "CALL_END" : "PARAM_END";
|
|
574
|
+
j++;
|
|
575
|
+
let depth = 0;
|
|
576
|
+
while (j < tokens2.length && !(tokens2[j][0] === closeTag && depth === 0)) {
|
|
577
|
+
let tok = tokens2[j];
|
|
578
|
+
if (tok[1] === "," && depth === 0) {
|
|
579
|
+
j++;
|
|
580
|
+
continue;
|
|
581
|
+
}
|
|
582
|
+
if (tok[0] === "{" || tok[0] === "[" || tok[0] === "CALL_START" || tok[0] === "PARAM_START" || tok[0] === "INDEX_START")
|
|
583
|
+
depth++;
|
|
584
|
+
if (tok[0] === "}" || tok[0] === "]" || tok[0] === "CALL_END" || tok[0] === "PARAM_END" || tok[0] === "INDEX_END") {
|
|
585
|
+
depth--;
|
|
586
|
+
j++;
|
|
587
|
+
continue;
|
|
588
|
+
}
|
|
589
|
+
if (tok[0] === "@") {
|
|
590
|
+
j++;
|
|
591
|
+
if (tokens2[j]?.[0] === "PROPERTY" || tokens2[j]?.[0] === "IDENTIFIER") {
|
|
592
|
+
let name = tokens2[j][1];
|
|
593
|
+
let type = tokens2[j].data?.type;
|
|
594
|
+
params.push(type ? `${name}: ${expandSuffixes(type)}` : name);
|
|
595
|
+
j++;
|
|
596
|
+
}
|
|
597
|
+
continue;
|
|
598
|
+
}
|
|
599
|
+
if (tok[0] === "SPREAD" || tok[1] === "...") {
|
|
600
|
+
j++;
|
|
601
|
+
if (tokens2[j]?.[0] === "IDENTIFIER") {
|
|
602
|
+
let name = tokens2[j][1];
|
|
603
|
+
let type = tokens2[j].data?.type;
|
|
604
|
+
params.push(type ? `...${name}: ${expandSuffixes(type)}` : `...${name}: any[]`);
|
|
605
|
+
j++;
|
|
606
|
+
}
|
|
607
|
+
continue;
|
|
608
|
+
}
|
|
609
|
+
if (tok[0] === "{") {
|
|
610
|
+
let pattern = "{";
|
|
611
|
+
j++;
|
|
612
|
+
let d = 1;
|
|
613
|
+
while (j < tokens2.length && d > 0) {
|
|
614
|
+
if (tokens2[j][0] === "{")
|
|
615
|
+
d++;
|
|
616
|
+
if (tokens2[j][0] === "}")
|
|
617
|
+
d--;
|
|
618
|
+
if (d > 0)
|
|
619
|
+
pattern += tokens2[j][1] + (tokens2[j + 1]?.[0] === "}" ? "" : ", ");
|
|
620
|
+
j++;
|
|
621
|
+
}
|
|
622
|
+
pattern += "}";
|
|
623
|
+
let type = tokens2[j - 1]?.data?.type;
|
|
624
|
+
params.push(type ? `${pattern}: ${expandSuffixes(type)}` : pattern);
|
|
625
|
+
continue;
|
|
626
|
+
}
|
|
627
|
+
if (tok[0] === "IDENTIFIER") {
|
|
628
|
+
let paramName = tok[1];
|
|
629
|
+
let paramType = tok.data?.type;
|
|
630
|
+
let hasDefault = false;
|
|
631
|
+
if (tokens2[j + 1]?.[0] === "=") {
|
|
632
|
+
hasDefault = true;
|
|
633
|
+
}
|
|
634
|
+
if (paramType) {
|
|
635
|
+
params.push(`${paramName}${hasDefault ? "?" : ""}: ${expandSuffixes(paramType)}`);
|
|
636
|
+
} else {
|
|
637
|
+
params.push(paramName);
|
|
638
|
+
}
|
|
639
|
+
j++;
|
|
640
|
+
if (hasDefault) {
|
|
641
|
+
j++;
|
|
642
|
+
let dd = 0;
|
|
643
|
+
while (j < tokens2.length) {
|
|
644
|
+
let dt = tokens2[j];
|
|
645
|
+
if (dt[0] === "(" || dt[0] === "[" || dt[0] === "{")
|
|
646
|
+
dd++;
|
|
647
|
+
if (dt[0] === ")" || dt[0] === "]" || dt[0] === "}")
|
|
648
|
+
dd--;
|
|
649
|
+
if (dd === 0 && (dt[1] === "," || dt[0] === "CALL_END"))
|
|
650
|
+
break;
|
|
651
|
+
j++;
|
|
652
|
+
}
|
|
653
|
+
}
|
|
654
|
+
continue;
|
|
655
|
+
}
|
|
656
|
+
j++;
|
|
657
|
+
}
|
|
658
|
+
return { params, endIdx: j };
|
|
659
|
+
};
|
|
549
660
|
for (let i = 0;i < tokens.length; i++) {
|
|
550
661
|
let t = tokens[i];
|
|
551
662
|
let tag = t[0];
|
|
@@ -557,6 +668,30 @@ function emitTypes(tokens) {
|
|
|
557
668
|
break;
|
|
558
669
|
t = tokens[i];
|
|
559
670
|
tag = t[0];
|
|
671
|
+
if (tag === "DEFAULT") {
|
|
672
|
+
i++;
|
|
673
|
+
if (i >= tokens.length)
|
|
674
|
+
break;
|
|
675
|
+
t = tokens[i];
|
|
676
|
+
tag = t[0];
|
|
677
|
+
if (tag === "IDENTIFIER") {
|
|
678
|
+
lines.push(`${indent()}export default ${t[1]};`);
|
|
679
|
+
}
|
|
680
|
+
continue;
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
if (tag === "IMPORT") {
|
|
684
|
+
let importTokens = [];
|
|
685
|
+
let j = i + 1;
|
|
686
|
+
while (j < tokens.length && tokens[j][0] !== "TERMINATOR") {
|
|
687
|
+
importTokens.push(tokens[j]);
|
|
688
|
+
j++;
|
|
689
|
+
}
|
|
690
|
+
let raw = "import " + importTokens.map((tk) => tk[1]).join(" ");
|
|
691
|
+
raw = raw.replace(/\s+/g, " ").replace(/\s*,\s*/g, ", ").replace(/\{\s*/g, "{ ").replace(/\s*\}/g, " }").trim();
|
|
692
|
+
lines.push(`${indent()}${raw};`);
|
|
693
|
+
i = j;
|
|
694
|
+
continue;
|
|
560
695
|
}
|
|
561
696
|
if (tag === "TYPE_DECL") {
|
|
562
697
|
let data = t.data;
|
|
@@ -651,32 +786,76 @@ function emitTypes(tokens) {
|
|
|
651
786
|
let fnName = nameToken[1];
|
|
652
787
|
let returnType = nameToken.data?.returnType;
|
|
653
788
|
let typeParams = nameToken.data?.typeParams || "";
|
|
654
|
-
let
|
|
655
|
-
let params = [];
|
|
656
|
-
if (tokens[j]?.[0] === "CALL_START") {
|
|
657
|
-
j++;
|
|
658
|
-
while (j < tokens.length && tokens[j][0] !== "CALL_END") {
|
|
659
|
-
if (tokens[j][0] === "IDENTIFIER") {
|
|
660
|
-
let paramName = tokens[j][1];
|
|
661
|
-
let paramType = tokens[j].data?.type;
|
|
662
|
-
if (paramType) {
|
|
663
|
-
params.push(`${paramName}: ${expandSuffixes(paramType)}`);
|
|
664
|
-
} else {
|
|
665
|
-
params.push(paramName);
|
|
666
|
-
}
|
|
667
|
-
}
|
|
668
|
-
j++;
|
|
669
|
-
}
|
|
670
|
-
}
|
|
789
|
+
let { params, endIdx } = collectParams(tokens, i + 2);
|
|
671
790
|
if (returnType || params.some((p) => p.includes(":"))) {
|
|
672
791
|
let exp = exported ? "export " : "";
|
|
673
792
|
let declare = inClass ? "" : exported ? "" : "declare ";
|
|
674
793
|
let ret = returnType ? `: ${expandSuffixes(returnType)}` : "";
|
|
675
794
|
let paramStr = params.join(", ");
|
|
676
|
-
|
|
795
|
+
if (inClass) {
|
|
796
|
+
lines.push(`${indent()}${fnName}${typeParams}(${paramStr})${ret};`);
|
|
797
|
+
} else {
|
|
798
|
+
lines.push(`${indent()}${exp}${declare}function ${fnName}${typeParams}(${paramStr})${ret};`);
|
|
799
|
+
}
|
|
677
800
|
}
|
|
678
801
|
continue;
|
|
679
802
|
}
|
|
803
|
+
if (tag === "{" && inClass) {
|
|
804
|
+
let j = i + 1;
|
|
805
|
+
let braceDepth = 1;
|
|
806
|
+
while (j < tokens.length && braceDepth > 0) {
|
|
807
|
+
let tok = tokens[j];
|
|
808
|
+
if (tok[0] === "{") {
|
|
809
|
+
braceDepth++;
|
|
810
|
+
j++;
|
|
811
|
+
continue;
|
|
812
|
+
}
|
|
813
|
+
if (tok[0] === "}") {
|
|
814
|
+
braceDepth--;
|
|
815
|
+
j++;
|
|
816
|
+
continue;
|
|
817
|
+
}
|
|
818
|
+
if (tok[0] === "TERMINATOR") {
|
|
819
|
+
j++;
|
|
820
|
+
continue;
|
|
821
|
+
}
|
|
822
|
+
if (tok[0] === "PROPERTY" && braceDepth === 1) {
|
|
823
|
+
let methodName = tok[1];
|
|
824
|
+
let returnType = tok.data?.returnType;
|
|
825
|
+
j++;
|
|
826
|
+
if (tokens[j]?.[1] === ":")
|
|
827
|
+
j++;
|
|
828
|
+
let params = [];
|
|
829
|
+
if (tokens[j]?.[0] === "PARAM_START") {
|
|
830
|
+
let result = collectParams(tokens, j);
|
|
831
|
+
params = result.params;
|
|
832
|
+
j = result.endIdx + 1;
|
|
833
|
+
}
|
|
834
|
+
if (tokens[j]?.[0] === "->" || tokens[j]?.[0] === "=>")
|
|
835
|
+
j++;
|
|
836
|
+
if (tokens[j]?.[0] === "INDENT") {
|
|
837
|
+
let d = 1;
|
|
838
|
+
j++;
|
|
839
|
+
while (j < tokens.length && d > 0) {
|
|
840
|
+
if (tokens[j][0] === "INDENT")
|
|
841
|
+
d++;
|
|
842
|
+
if (tokens[j][0] === "OUTDENT")
|
|
843
|
+
d--;
|
|
844
|
+
j++;
|
|
845
|
+
}
|
|
846
|
+
}
|
|
847
|
+
if (returnType || params.some((p) => p.includes(":"))) {
|
|
848
|
+
let ret = returnType ? `: ${expandSuffixes(returnType)}` : "";
|
|
849
|
+
let paramStr = params.join(", ");
|
|
850
|
+
lines.push(`${indent()}${methodName}(${paramStr})${ret};`);
|
|
851
|
+
}
|
|
852
|
+
continue;
|
|
853
|
+
}
|
|
854
|
+
j++;
|
|
855
|
+
}
|
|
856
|
+
i = j - 1;
|
|
857
|
+
continue;
|
|
858
|
+
}
|
|
680
859
|
if (tag === "INDENT") {
|
|
681
860
|
continue;
|
|
682
861
|
}
|
|
@@ -688,6 +867,31 @@ function emitTypes(tokens) {
|
|
|
688
867
|
}
|
|
689
868
|
continue;
|
|
690
869
|
}
|
|
870
|
+
if (tag === "IDENTIFIER" && !inClass && tokens[i + 1]?.[0] === "=" && (tokens[i + 2]?.[0] === "PARAM_START" || tokens[i + 2]?.[0] === "(")) {
|
|
871
|
+
let fnName = t[1];
|
|
872
|
+
let j = i + 2;
|
|
873
|
+
let { params } = collectParams(tokens, j);
|
|
874
|
+
let k = j;
|
|
875
|
+
let depth = 0;
|
|
876
|
+
while (k < tokens.length) {
|
|
877
|
+
if (tokens[k][0] === "PARAM_START" || tokens[k][0] === "(")
|
|
878
|
+
depth++;
|
|
879
|
+
if (tokens[k][0] === "PARAM_END" || tokens[k][0] === ")")
|
|
880
|
+
depth--;
|
|
881
|
+
if (depth === 0 && (tokens[k][0] === "->" || tokens[k][0] === "=>"))
|
|
882
|
+
break;
|
|
883
|
+
k++;
|
|
884
|
+
}
|
|
885
|
+
let returnType = tokens[k]?.data?.returnType;
|
|
886
|
+
if (returnType || params.some((p) => p.includes(":"))) {
|
|
887
|
+
let exp = exported ? "export " : "";
|
|
888
|
+
let declare = exported ? "" : "declare ";
|
|
889
|
+
let ret = returnType ? `: ${expandSuffixes(returnType)}` : "";
|
|
890
|
+
let paramStr = params.join(", ");
|
|
891
|
+
lines.push(`${indent()}${exp}${declare}function ${fnName}(${paramStr})${ret};`);
|
|
892
|
+
continue;
|
|
893
|
+
}
|
|
894
|
+
}
|
|
691
895
|
if (tag === "IDENTIFIER" && t.data?.type) {
|
|
692
896
|
let varName = t[1];
|
|
693
897
|
let type = expandSuffixes(t.data.type);
|
|
@@ -698,11 +902,33 @@ function emitTypes(tokens) {
|
|
|
698
902
|
if (next[0] === "READONLY_ASSIGN") {
|
|
699
903
|
lines.push(`${indent()}${exp}${declare}const ${varName}: ${type};`);
|
|
700
904
|
} else if (next[0] === "REACTIVE_ASSIGN") {
|
|
905
|
+
usesSignal = true;
|
|
701
906
|
lines.push(`${indent()}${exp}${declare}const ${varName}: Signal<${type}>;`);
|
|
702
907
|
} else if (next[0] === "COMPUTED_ASSIGN") {
|
|
908
|
+
usesComputed = true;
|
|
703
909
|
lines.push(`${indent()}${exp}${declare}const ${varName}: Computed<${type}>;`);
|
|
910
|
+
} else if (next[0] === "REACT_ASSIGN") {
|
|
911
|
+
lines.push(`${indent()}${exp}${declare}const ${varName}: () => void;`);
|
|
704
912
|
} else if (next[0] === "=") {
|
|
705
|
-
|
|
913
|
+
let arrowIdx = i + 2;
|
|
914
|
+
if (tokens[arrowIdx]?.[0] === "PARAM_START") {
|
|
915
|
+
let d = 1, k = arrowIdx + 1;
|
|
916
|
+
while (k < tokens.length && d > 0) {
|
|
917
|
+
if (tokens[k][0] === "PARAM_START")
|
|
918
|
+
d++;
|
|
919
|
+
if (tokens[k][0] === "PARAM_END")
|
|
920
|
+
d--;
|
|
921
|
+
k++;
|
|
922
|
+
}
|
|
923
|
+
arrowIdx = k;
|
|
924
|
+
}
|
|
925
|
+
let arrowToken = tokens[arrowIdx];
|
|
926
|
+
if (arrowToken && (arrowToken[0] === "->" || arrowToken[0] === "=>") && arrowToken.data?.returnType) {
|
|
927
|
+
let returnType = expandSuffixes(arrowToken.data.returnType);
|
|
928
|
+
let { params } = collectParams(tokens, i + 2);
|
|
929
|
+
let paramStr = params.join(", ");
|
|
930
|
+
lines.push(`${indent()}${exp}${declare}function ${varName}(${paramStr}): ${returnType};`);
|
|
931
|
+
} else if (inClass) {
|
|
706
932
|
lines.push(`${indent()}${varName}: ${type};`);
|
|
707
933
|
} else {
|
|
708
934
|
lines.push(`${indent()}${exp}let ${varName}: ${type};`);
|
|
@@ -715,9 +941,30 @@ function emitTypes(tokens) {
|
|
|
715
941
|
}
|
|
716
942
|
}
|
|
717
943
|
}
|
|
944
|
+
let componentVars = new Set;
|
|
945
|
+
if (sexpr) {
|
|
946
|
+
emitComponentTypes(sexpr, lines, indent, indentLevel, componentVars);
|
|
947
|
+
if (componentVars.size > 0) {
|
|
948
|
+
for (let k = lines.length - 1;k >= 0; k--) {
|
|
949
|
+
let match = lines[k].match(/(?:declare |export )*(?:const|let) (\w+)/);
|
|
950
|
+
if (match && componentVars.has(match[1]))
|
|
951
|
+
lines.splice(k, 1);
|
|
952
|
+
}
|
|
953
|
+
}
|
|
954
|
+
}
|
|
718
955
|
if (lines.length === 0)
|
|
719
956
|
return null;
|
|
720
|
-
|
|
957
|
+
let preamble = [];
|
|
958
|
+
if (usesSignal) {
|
|
959
|
+
preamble.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }");
|
|
960
|
+
}
|
|
961
|
+
if (usesComputed) {
|
|
962
|
+
preamble.push("interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }");
|
|
963
|
+
}
|
|
964
|
+
if (preamble.length > 0) {
|
|
965
|
+
preamble.push("");
|
|
966
|
+
}
|
|
967
|
+
return preamble.concat(lines).join(`
|
|
721
968
|
`) + `
|
|
722
969
|
`;
|
|
723
970
|
}
|
|
@@ -730,6 +977,86 @@ function expandSuffixes(typeStr) {
|
|
|
730
977
|
typeStr = typeStr.replace(/(\w+(?:<[^>]+>)?)\!/g, "NonNullable<$1>");
|
|
731
978
|
return typeStr;
|
|
732
979
|
}
|
|
980
|
+
function emitComponentTypes(sexpr, lines, indent, indentLevel, componentVars) {
|
|
981
|
+
if (!Array.isArray(sexpr))
|
|
982
|
+
return;
|
|
983
|
+
let head = sexpr[0]?.valueOf?.() ?? sexpr[0];
|
|
984
|
+
let exported = false;
|
|
985
|
+
let name = null;
|
|
986
|
+
let compNode = null;
|
|
987
|
+
if (head === "export" && Array.isArray(sexpr[1])) {
|
|
988
|
+
exported = true;
|
|
989
|
+
let inner = sexpr[1];
|
|
990
|
+
let innerHead = inner[0]?.valueOf?.() ?? inner[0];
|
|
991
|
+
if (innerHead === "=" && Array.isArray(inner[2]) && (inner[2][0]?.valueOf?.() ?? inner[2][0]) === "component") {
|
|
992
|
+
name = inner[1]?.valueOf?.() ?? inner[1];
|
|
993
|
+
compNode = inner[2];
|
|
994
|
+
}
|
|
995
|
+
} else if (head === "=" && Array.isArray(sexpr[2]) && (sexpr[2][0]?.valueOf?.() ?? sexpr[2][0]) === "component") {
|
|
996
|
+
name = sexpr[1]?.valueOf?.() ?? sexpr[1];
|
|
997
|
+
compNode = sexpr[2];
|
|
998
|
+
}
|
|
999
|
+
if (name && compNode) {
|
|
1000
|
+
let exp = exported ? "export " : "";
|
|
1001
|
+
let body = compNode[2];
|
|
1002
|
+
let members = Array.isArray(body) && (body[0]?.valueOf?.() ?? body[0]) === "block" ? body.slice(1) : body ? [body] : [];
|
|
1003
|
+
let props = [];
|
|
1004
|
+
let methods = [];
|
|
1005
|
+
for (let member of members) {
|
|
1006
|
+
if (!Array.isArray(member))
|
|
1007
|
+
continue;
|
|
1008
|
+
let mHead = member[0]?.valueOf?.() ?? member[0];
|
|
1009
|
+
if (mHead === "state") {
|
|
1010
|
+
let propName = member[1]?.valueOf?.() ?? member[1];
|
|
1011
|
+
let type = member[1]?.type;
|
|
1012
|
+
props.push(` ${propName}: ${type ? expandSuffixes(type) : "any"};`);
|
|
1013
|
+
componentVars.add(propName);
|
|
1014
|
+
} else if (mHead === "computed") {
|
|
1015
|
+
let propName = member[1]?.valueOf?.() ?? member[1];
|
|
1016
|
+
let type = member[1]?.type;
|
|
1017
|
+
props.push(` readonly ${propName}: ${type ? expandSuffixes(type) : "any"};`);
|
|
1018
|
+
componentVars.add(propName);
|
|
1019
|
+
} else if (mHead === "object") {
|
|
1020
|
+
for (let j = 1;j < member.length; j++) {
|
|
1021
|
+
let entry = member[j];
|
|
1022
|
+
if (!Array.isArray(entry))
|
|
1023
|
+
continue;
|
|
1024
|
+
let methodName = entry[0]?.valueOf?.() ?? entry[0];
|
|
1025
|
+
if (methodName === "render")
|
|
1026
|
+
continue;
|
|
1027
|
+
let fn = entry[1];
|
|
1028
|
+
if (Array.isArray(fn)) {
|
|
1029
|
+
let fnHead = fn[0]?.valueOf?.() ?? fn[0];
|
|
1030
|
+
if (fnHead === "->" || fnHead === "=>") {
|
|
1031
|
+
methods.push(` ${methodName}(): void;`);
|
|
1032
|
+
}
|
|
1033
|
+
}
|
|
1034
|
+
}
|
|
1035
|
+
} else if (mHead === "render") {
|
|
1036
|
+
continue;
|
|
1037
|
+
}
|
|
1038
|
+
}
|
|
1039
|
+
lines.push(`${exp}declare class ${name} {`);
|
|
1040
|
+
lines.push(` constructor(props?: Record<string, any>);`);
|
|
1041
|
+
for (let p of props)
|
|
1042
|
+
lines.push(p);
|
|
1043
|
+
for (let m of methods)
|
|
1044
|
+
lines.push(m);
|
|
1045
|
+
lines.push(` mount(target: Element | string): ${name};`);
|
|
1046
|
+
lines.push(` unmount(): void;`);
|
|
1047
|
+
lines.push(`}`);
|
|
1048
|
+
}
|
|
1049
|
+
if (head === "program" || head === "block") {
|
|
1050
|
+
for (let i = 1;i < sexpr.length; i++) {
|
|
1051
|
+
if (Array.isArray(sexpr[i])) {
|
|
1052
|
+
emitComponentTypes(sexpr[i], lines, indent, indentLevel, componentVars);
|
|
1053
|
+
}
|
|
1054
|
+
}
|
|
1055
|
+
}
|
|
1056
|
+
if (head === "export" && Array.isArray(sexpr[1]) && !compNode) {
|
|
1057
|
+
emitComponentTypes(sexpr[1], lines, indent, indentLevel, componentVars);
|
|
1058
|
+
}
|
|
1059
|
+
}
|
|
733
1060
|
function generateEnum(head, rest, context) {
|
|
734
1061
|
let [name, body] = rest;
|
|
735
1062
|
let enumName = name?.valueOf?.() ?? name;
|
|
@@ -913,7 +1240,8 @@ var IMPLICIT_END = new Set([
|
|
|
913
1240
|
"LOOP",
|
|
914
1241
|
"TERMINATOR",
|
|
915
1242
|
"||",
|
|
916
|
-
"&&"
|
|
1243
|
+
"&&",
|
|
1244
|
+
"PIPE"
|
|
917
1245
|
]);
|
|
918
1246
|
var IMPLICIT_COMMA_BEFORE_ARROW = new Set([
|
|
919
1247
|
"STRING",
|
|
@@ -1020,7 +1348,7 @@ var SHIFT = new Set(["<<", ">>", ">>>"]);
|
|
|
1020
1348
|
var UNARY_MATH = new Set(["!", "~"]);
|
|
1021
1349
|
var IDENTIFIER_RE = /^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!|[?](?![.?[(]))?)([^\n\S]*:(?![=:]))?/;
|
|
1022
1350
|
var NUMBER_RE = /^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;
|
|
1023
|
-
var OPERATOR_RE = /^(?:<=>|::=|::|[-=]
|
|
1351
|
+
var OPERATOR_RE = /^(?:<=>|::=|::|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|\|>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/;
|
|
1024
1352
|
var WHITESPACE_RE = /^[^\n\S]+/;
|
|
1025
1353
|
var NEWLINE_RE = /^(?:\n[^\n\S]*)+/;
|
|
1026
1354
|
var COMMENT_RE = /^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/;
|
|
@@ -1172,7 +1500,7 @@ class Lexer {
|
|
|
1172
1500
|
let match = IDENTIFIER_RE.exec(this.chunk);
|
|
1173
1501
|
if (!match)
|
|
1174
1502
|
return 0;
|
|
1175
|
-
let [
|
|
1503
|
+
let [, id, colon] = match;
|
|
1176
1504
|
let idLen = id.length;
|
|
1177
1505
|
let data = {};
|
|
1178
1506
|
let tag;
|
|
@@ -1204,8 +1532,8 @@ class Lexer {
|
|
|
1204
1532
|
this.emit("DEFAULT", id, { len: idLen });
|
|
1205
1533
|
return idLen;
|
|
1206
1534
|
}
|
|
1207
|
-
|
|
1208
|
-
|
|
1535
|
+
let m;
|
|
1536
|
+
if (id === "do" && (m = /^(\s*super)(?!\(\))/.exec(this.chunk.slice(3)))) {
|
|
1209
1537
|
this.emit("SUPER", "super");
|
|
1210
1538
|
this.emit("CALL_START", "(");
|
|
1211
1539
|
this.emit("CALL_END", ")");
|
|
@@ -1219,11 +1547,11 @@ class Lexer {
|
|
|
1219
1547
|
if (this.inRenderBlock && prev && prev[0] === "." && !colon) {
|
|
1220
1548
|
let rest = this.chunk.slice(idLen);
|
|
1221
1549
|
while (rest[0] === "-" && /^-[a-zA-Z]/.test(rest)) {
|
|
1222
|
-
let
|
|
1223
|
-
if (!
|
|
1550
|
+
let m2 = /^-([a-zA-Z][\w]*)/.exec(rest);
|
|
1551
|
+
if (!m2)
|
|
1224
1552
|
break;
|
|
1225
|
-
id += "-" +
|
|
1226
|
-
idLen += 1 +
|
|
1553
|
+
id += "-" + m2[1];
|
|
1554
|
+
idLen += 1 + m2[1].length;
|
|
1227
1555
|
rest = this.chunk.slice(idLen);
|
|
1228
1556
|
}
|
|
1229
1557
|
}
|
|
@@ -1664,6 +1992,17 @@ class Lexer {
|
|
|
1664
1992
|
let prev = this.prev();
|
|
1665
1993
|
if (CODE_RE.test(val))
|
|
1666
1994
|
this.tagParameters();
|
|
1995
|
+
if (val === "=" && prev && prev[1] === "." && !prev.spaced) {
|
|
1996
|
+
let target = this.tokens[this.tokens.length - 2];
|
|
1997
|
+
if (target && (target[0] === "IDENTIFIER" || target[0] === "PROPERTY" || target[0] === ")" || target[0] === "]")) {
|
|
1998
|
+
prev[0] = "=";
|
|
1999
|
+
prev[1] = "=";
|
|
2000
|
+
let targetClone = tok(target[0], target[1], { pre: 0, row: target[2], col: target[3], len: target[4] });
|
|
2001
|
+
let dot = tok(".", ".", { pre: 0, row: this.row, col: this.col, len: 1 });
|
|
2002
|
+
this.tokens.push(targetClone, dot);
|
|
2003
|
+
return val.length;
|
|
2004
|
+
}
|
|
2005
|
+
}
|
|
1667
2006
|
if (prev && (val === "=" || COMPOUND_ASSIGN.has(val))) {
|
|
1668
2007
|
if (val === "=" && (prev[1] === "||" || prev[1] === "&&" || prev[1] === "??") && !prev.spaced) {
|
|
1669
2008
|
prev[0] = "COMPOUND_ASSIGN";
|
|
@@ -1684,9 +2023,16 @@ class Lexer {
|
|
|
1684
2023
|
if (val === ";") {
|
|
1685
2024
|
this.seenFor = this.seenImport = this.seenExport = false;
|
|
1686
2025
|
tag = "TERMINATOR";
|
|
1687
|
-
} else if (val === "
|
|
2026
|
+
} else if (val === "|>")
|
|
2027
|
+
tag = "PIPE";
|
|
2028
|
+
else if (val === "::=")
|
|
1688
2029
|
tag = "TYPE_ALIAS";
|
|
1689
|
-
else if (val === "::")
|
|
2030
|
+
else if (val === "::" && /^[a-zA-Z_$]/.test(this.chunk[2] || "")) {
|
|
2031
|
+
this.emit(".", ".");
|
|
2032
|
+
this.emit("PROPERTY", "prototype");
|
|
2033
|
+
this.emit(".", ".");
|
|
2034
|
+
return 2;
|
|
2035
|
+
} else if (val === "::")
|
|
1690
2036
|
tag = "TYPE_ANNOTATION";
|
|
1691
2037
|
else if (val === "~=")
|
|
1692
2038
|
tag = "COMPUTED_ASSIGN";
|
|
@@ -1698,7 +2044,27 @@ class Lexer {
|
|
|
1698
2044
|
tag = "REACT_ASSIGN";
|
|
1699
2045
|
else if (val === "=!")
|
|
1700
2046
|
tag = "READONLY_ASSIGN";
|
|
1701
|
-
else if (val === "*" && prev
|
|
2047
|
+
else if (val === "*" && (!prev || prev[0] === "TERMINATOR" || prev[0] === "INDENT" || prev[0] === "OUTDENT") && /^[a-zA-Z_$]/.test(this.chunk[1] || "")) {
|
|
2048
|
+
let rest = this.chunk.slice(1);
|
|
2049
|
+
let m = /^((?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(rest);
|
|
2050
|
+
if (m) {
|
|
2051
|
+
let target = m[1], space = m[2];
|
|
2052
|
+
this.emit("IDENTIFIER", "Object");
|
|
2053
|
+
this.emit(".", ".");
|
|
2054
|
+
this.emit("PROPERTY", "assign");
|
|
2055
|
+
this.emit("CALL_START", "(");
|
|
2056
|
+
let parts = target.split(".");
|
|
2057
|
+
this.emit("IDENTIFIER", parts[0]);
|
|
2058
|
+
for (let i = 1;i < parts.length; i++) {
|
|
2059
|
+
this.emit(".", ".");
|
|
2060
|
+
this.emit("PROPERTY", parts[i]);
|
|
2061
|
+
}
|
|
2062
|
+
this.emit(",", ",");
|
|
2063
|
+
let comma = this.prev();
|
|
2064
|
+
comma.mergeClose = true;
|
|
2065
|
+
return 1 + target.length + space.length + 1;
|
|
2066
|
+
}
|
|
2067
|
+
} else if (val === "*" && prev?.[0] === "EXPORT")
|
|
1702
2068
|
tag = "EXPORT_ALL";
|
|
1703
2069
|
else if (MATH.has(val))
|
|
1704
2070
|
tag = "MATH";
|
|
@@ -1773,6 +2139,7 @@ class Lexer {
|
|
|
1773
2139
|
this.tagPostfixConditionals();
|
|
1774
2140
|
this.addImplicitBracesAndParens();
|
|
1775
2141
|
this.addImplicitCallCommas();
|
|
2142
|
+
this.closeMergeAssignments();
|
|
1776
2143
|
return this.tokens;
|
|
1777
2144
|
}
|
|
1778
2145
|
removeLeadingNewlines() {
|
|
@@ -2250,6 +2617,29 @@ class Lexer {
|
|
|
2250
2617
|
i++;
|
|
2251
2618
|
}
|
|
2252
2619
|
}
|
|
2620
|
+
closeMergeAssignments() {
|
|
2621
|
+
let tokens = this.tokens;
|
|
2622
|
+
for (let i = 0;i < tokens.length; i++) {
|
|
2623
|
+
if (!tokens[i].mergeClose)
|
|
2624
|
+
continue;
|
|
2625
|
+
let depth = 0;
|
|
2626
|
+
for (let j = i + 1;j < tokens.length; j++) {
|
|
2627
|
+
let tag = tokens[j][0];
|
|
2628
|
+
if (tag === "(" || tag === "[" || tag === "{" || tag === "CALL_START" || tag === "INDEX_START" || tag === "INDENT")
|
|
2629
|
+
depth++;
|
|
2630
|
+
if (tag === ")" || tag === "]" || tag === "}" || tag === "CALL_END" || tag === "INDEX_END" || tag === "OUTDENT")
|
|
2631
|
+
depth--;
|
|
2632
|
+
if (depth < 0 || depth === 0 && tag === "TERMINATOR") {
|
|
2633
|
+
tokens.splice(j, 0, gen("CALL_END", ")", tokens[j - 1]));
|
|
2634
|
+
break;
|
|
2635
|
+
}
|
|
2636
|
+
if (j === tokens.length - 1) {
|
|
2637
|
+
tokens.splice(j + 1, 0, gen("CALL_END", ")", tokens[j]));
|
|
2638
|
+
break;
|
|
2639
|
+
}
|
|
2640
|
+
}
|
|
2641
|
+
}
|
|
2642
|
+
}
|
|
2253
2643
|
commaInImplicitCall(i) {
|
|
2254
2644
|
let levels = 0;
|
|
2255
2645
|
for (let j = i - 1;j >= 0; j--) {
|
|
@@ -2346,10 +2736,10 @@ class Lexer {
|
|
|
2346
2736
|
installTypeSupport(Lexer);
|
|
2347
2737
|
// src/parser.js
|
|
2348
2738
|
var parserInstance = {
|
|
2349
|
-
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, Component: 28, Render: 29, Throw: 30, Yield: 31, Def: 32, Enum: 33, CodeLine: 34, OperationLine: 35, Assignable: 36, Literal: 37, Parenthetical: 38, Range: 39, Invocation: 40, DoIife: 41, This: 42, Super: 43, MetaProperty: 44, AlphaNumeric: 45, JS: 46, Regex: 47, UNDEFINED: 48, NULL: 49, BOOL: 50, INFINITY: 51, NAN: 52, NUMBER: 53, String: 54, Identifier: 55, IDENTIFIER: 56, Property: 57, PROPERTY: 58, STRING: 59, STRING_START: 60, Interpolations: 61, STRING_END: 62, InterpolationChunk: 63, INTERPOLATION_START: 64, INTERPOLATION_END: 65, INDENT: 66, OUTDENT: 67, REGEX: 68, REGEX_START: 69, REGEX_END: 70, RegexWithIndex: 71, ",": 72, "=": 73, REACTIVE_ASSIGN: 74, COMPUTED_ASSIGN: 75, READONLY_ASSIGN: 76, REACT_ASSIGN: 77, SimpleAssignable: 78, Array: 79, Object: 80, ThisProperty: 81, ".": 82, "?.": 83, INDEX_START: 84, INDEX_END: 85, Slice: 86, ES6_OPTIONAL_INDEX: 87, "{": 88, ObjAssignable: 89, ":": 90, FOR: 91, ForVariables: 92, FOROF: 93, OptComma: 94, "}": 95, WHEN: 96, OWN: 97, AssignList: 98, AssignObj: 99, ObjRestValue: 100, SimpleObjAssignable: 101, "[": 102, "]": 103, "@": 104, "...": 105, ObjSpreadExpr: 106, SUPER: 107, Arguments: 108, DYNAMIC_IMPORT: 109, Elisions: 110, ArgElisionList: 111, OptElisions: 112, ArgElision: 113, Arg: 114, Elision: 115, RangeDots: 116, "..": 117, DEF: 118, CALL_START: 119, ParamList: 120, CALL_END: 121, Block: 122, PARAM_START: 123, PARAM_END: 124, FuncGlyph: 125, "->": 126, "=>": 127, Param: 128, ParamVar: 129, Splat: 130, ES6_OPTIONAL_CALL: 131, ArgList: 132, SimpleArgs: 133, THIS: 134, NEW_TARGET: 135, IMPORT_META: 136, "(": 137, ")": 138, RETURN: 139, THROW: 140, YIELD: 141, FROM: 142, IfBlock: 143, IF: 144, ELSE: 145, UnlessBlock: 146, UNLESS: 147, POST_IF: 148, POST_UNLESS: 149, TRY: 150, Catch: 151, FINALLY: 152, CATCH: 153, SWITCH: 154, Whens: 155, When: 156, LEADING_WHEN: 157, WhileSource: 158, WHILE: 159, UNTIL: 160, Loop: 161, LOOP: 162, FORIN: 163, BY: 164, FORAS: 165, AWAIT: 166, FORASAWAIT: 167, ForValue: 168, CLASS: 169, EXTENDS: 170, ENUM: 171, COMPONENT: 172, ComponentBody: 173, ComponentLine: 174, RENDER: 175, IMPORT: 176, ImportDefaultSpecifier: 177, ImportNamespaceSpecifier: 178, ImportSpecifierList: 179, ImportSpecifier: 180, AS: 181, DEFAULT: 182, IMPORT_ALL: 183, EXPORT: 184, ExportSpecifierList: 185, EXPORT_ALL: 186, ExportSpecifier: 187, UNARY: 188, DO: 189, DO_IIFE: 190, UNARY_MATH: 191, "-": 192, "+": 193, "?": 194, "--": 195, "++": 196, MATH: 197, "**": 198, SHIFT: 199, COMPARE: 200, "&": 201, "^": 202, "|": 203, "||": 204, "??": 205, "&&": 206, "!?": 207,
|
|
2350
|
-
tokenNames: { 2: "error", 6: "TERMINATOR", 11: "STATEMENT", 46: "JS", 48: "UNDEFINED", 49: "NULL", 50: "BOOL", 51: "INFINITY", 52: "NAN", 53: "NUMBER", 56: "IDENTIFIER", 58: "PROPERTY", 59: "STRING", 60: "STRING_START", 62: "STRING_END", 64: "INTERPOLATION_START", 65: "INTERPOLATION_END", 66: "INDENT", 67: "OUTDENT", 68: "REGEX", 69: "REGEX_START", 70: "REGEX_END", 72: ",", 73: "=", 74: "REACTIVE_ASSIGN", 75: "COMPUTED_ASSIGN", 76: "READONLY_ASSIGN", 77: "REACT_ASSIGN", 82: ".", 83: "?.", 84: "INDEX_START", 85: "INDEX_END", 87: "ES6_OPTIONAL_INDEX", 88: "{", 90: ":", 91: "FOR", 93: "FOROF", 95: "}", 96: "WHEN", 97: "OWN", 102: "[", 103: "]", 104: "@", 105: "...", 107: "SUPER", 109: "DYNAMIC_IMPORT", 117: "..", 118: "DEF", 119: "CALL_START", 121: "CALL_END", 123: "PARAM_START", 124: "PARAM_END", 126: "->", 127: "=>", 131: "ES6_OPTIONAL_CALL", 134: "THIS", 135: "NEW_TARGET", 136: "IMPORT_META", 137: "(", 138: ")", 139: "RETURN", 140: "THROW", 141: "YIELD", 142: "FROM", 144: "IF", 145: "ELSE", 147: "UNLESS", 148: "POST_IF", 149: "POST_UNLESS", 150: "TRY", 152: "FINALLY", 153: "CATCH", 154: "SWITCH", 157: "LEADING_WHEN", 159: "WHILE", 160: "UNTIL", 162: "LOOP", 163: "FORIN", 164: "BY", 165: "FORAS", 166: "AWAIT", 167: "FORASAWAIT", 169: "CLASS", 170: "EXTENDS", 171: "ENUM", 172: "COMPONENT", 175: "RENDER", 176: "IMPORT", 181: "AS", 182: "DEFAULT", 183: "IMPORT_ALL", 184: "EXPORT", 186: "EXPORT_ALL", 188: "UNARY", 189: "DO", 190: "DO_IIFE", 191: "UNARY_MATH", 192: "-", 193: "+", 194: "?", 195: "--", 196: "++", 197: "MATH", 198: "**", 199: "SHIFT", 200: "COMPARE", 201: "&", 202: "^", 203: "|", 204: "||", 205: "??", 206: "&&", 207: "!?", 208: "
|
|
2739
|
+
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, Component: 28, Render: 29, Throw: 30, Yield: 31, Def: 32, Enum: 33, CodeLine: 34, OperationLine: 35, Assignable: 36, Literal: 37, Parenthetical: 38, Range: 39, Invocation: 40, DoIife: 41, This: 42, Super: 43, MetaProperty: 44, AlphaNumeric: 45, JS: 46, Regex: 47, UNDEFINED: 48, NULL: 49, BOOL: 50, INFINITY: 51, NAN: 52, NUMBER: 53, String: 54, Identifier: 55, IDENTIFIER: 56, Property: 57, PROPERTY: 58, STRING: 59, STRING_START: 60, Interpolations: 61, STRING_END: 62, InterpolationChunk: 63, INTERPOLATION_START: 64, INTERPOLATION_END: 65, INDENT: 66, OUTDENT: 67, REGEX: 68, REGEX_START: 69, REGEX_END: 70, RegexWithIndex: 71, ",": 72, "=": 73, REACTIVE_ASSIGN: 74, COMPUTED_ASSIGN: 75, READONLY_ASSIGN: 76, REACT_ASSIGN: 77, SimpleAssignable: 78, Array: 79, Object: 80, ThisProperty: 81, ".": 82, "?.": 83, INDEX_START: 84, INDEX_END: 85, Slice: 86, ES6_OPTIONAL_INDEX: 87, "{": 88, ObjAssignable: 89, ":": 90, FOR: 91, ForVariables: 92, FOROF: 93, OptComma: 94, "}": 95, WHEN: 96, OWN: 97, AssignList: 98, AssignObj: 99, ObjRestValue: 100, SimpleObjAssignable: 101, "[": 102, "]": 103, "@": 104, "...": 105, ObjSpreadExpr: 106, SUPER: 107, Arguments: 108, DYNAMIC_IMPORT: 109, Elisions: 110, ArgElisionList: 111, OptElisions: 112, ArgElision: 113, Arg: 114, Elision: 115, RangeDots: 116, "..": 117, DEF: 118, CALL_START: 119, ParamList: 120, CALL_END: 121, Block: 122, PARAM_START: 123, PARAM_END: 124, FuncGlyph: 125, "->": 126, "=>": 127, Param: 128, ParamVar: 129, Splat: 130, ES6_OPTIONAL_CALL: 131, ArgList: 132, SimpleArgs: 133, THIS: 134, NEW_TARGET: 135, IMPORT_META: 136, "(": 137, ")": 138, RETURN: 139, THROW: 140, YIELD: 141, FROM: 142, IfBlock: 143, IF: 144, ELSE: 145, UnlessBlock: 146, UNLESS: 147, POST_IF: 148, POST_UNLESS: 149, TRY: 150, Catch: 151, FINALLY: 152, CATCH: 153, SWITCH: 154, Whens: 155, When: 156, LEADING_WHEN: 157, WhileSource: 158, WHILE: 159, UNTIL: 160, Loop: 161, LOOP: 162, FORIN: 163, BY: 164, FORAS: 165, AWAIT: 166, FORASAWAIT: 167, ForValue: 168, CLASS: 169, EXTENDS: 170, ENUM: 171, COMPONENT: 172, ComponentBody: 173, ComponentLine: 174, RENDER: 175, IMPORT: 176, ImportDefaultSpecifier: 177, ImportNamespaceSpecifier: 178, ImportSpecifierList: 179, ImportSpecifier: 180, AS: 181, DEFAULT: 182, IMPORT_ALL: 183, EXPORT: 184, ExportSpecifierList: 185, EXPORT_ALL: 186, ExportSpecifier: 187, UNARY: 188, DO: 189, DO_IIFE: 190, UNARY_MATH: 191, "-": 192, "+": 193, "?": 194, "--": 195, "++": 196, MATH: 197, "**": 198, SHIFT: 199, COMPARE: 200, "&": 201, "^": 202, "|": 203, "||": 204, "??": 205, "&&": 206, "!?": 207, PIPE: 208, RELATION: 209, "SPACE?": 210, COMPOUND_ASSIGN: 211 },
|
|
2740
|
+
tokenNames: { 2: "error", 6: "TERMINATOR", 11: "STATEMENT", 46: "JS", 48: "UNDEFINED", 49: "NULL", 50: "BOOL", 51: "INFINITY", 52: "NAN", 53: "NUMBER", 56: "IDENTIFIER", 58: "PROPERTY", 59: "STRING", 60: "STRING_START", 62: "STRING_END", 64: "INTERPOLATION_START", 65: "INTERPOLATION_END", 66: "INDENT", 67: "OUTDENT", 68: "REGEX", 69: "REGEX_START", 70: "REGEX_END", 72: ",", 73: "=", 74: "REACTIVE_ASSIGN", 75: "COMPUTED_ASSIGN", 76: "READONLY_ASSIGN", 77: "REACT_ASSIGN", 82: ".", 83: "?.", 84: "INDEX_START", 85: "INDEX_END", 87: "ES6_OPTIONAL_INDEX", 88: "{", 90: ":", 91: "FOR", 93: "FOROF", 95: "}", 96: "WHEN", 97: "OWN", 102: "[", 103: "]", 104: "@", 105: "...", 107: "SUPER", 109: "DYNAMIC_IMPORT", 117: "..", 118: "DEF", 119: "CALL_START", 121: "CALL_END", 123: "PARAM_START", 124: "PARAM_END", 126: "->", 127: "=>", 131: "ES6_OPTIONAL_CALL", 134: "THIS", 135: "NEW_TARGET", 136: "IMPORT_META", 137: "(", 138: ")", 139: "RETURN", 140: "THROW", 141: "YIELD", 142: "FROM", 144: "IF", 145: "ELSE", 147: "UNLESS", 148: "POST_IF", 149: "POST_UNLESS", 150: "TRY", 152: "FINALLY", 153: "CATCH", 154: "SWITCH", 157: "LEADING_WHEN", 159: "WHILE", 160: "UNTIL", 162: "LOOP", 163: "FORIN", 164: "BY", 165: "FORAS", 166: "AWAIT", 167: "FORASAWAIT", 169: "CLASS", 170: "EXTENDS", 171: "ENUM", 172: "COMPONENT", 175: "RENDER", 176: "IMPORT", 181: "AS", 182: "DEFAULT", 183: "IMPORT_ALL", 184: "EXPORT", 186: "EXPORT_ALL", 188: "UNARY", 189: "DO", 190: "DO_IIFE", 191: "UNARY_MATH", 192: "-", 193: "+", 194: "?", 195: "--", 196: "++", 197: "MATH", 198: "**", 199: "SHIFT", 200: "COMPARE", 201: "&", 202: "^", 203: "|", 204: "||", 205: "??", 206: "&&", 207: "!?", 208: "PIPE", 209: "RELATION", 210: "SPACE?", 211: "COMPOUND_ASSIGN" },
|
|
2351
2741
|
parseTable: (() => {
|
|
2352
|
-
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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 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, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 1, 1, 0, 2, 1, 5, -2, 107, 5, 1, 5, 59, 2, 71, -3, -3, -3, -3, -3, 30, 1, 5, 59, 1, 1, 5, 19, 12, 18, 17, 10, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -6, -6, -6, -6, -6, -6, 126, -6, -6, -6, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -7, -7, -7, -7, -7, -7, -7, -7, -7, 14, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 9, 1, 1, -8, -8, -8, -8, -8, -8, -8, -8, -8, 127, 128, 129, 96, 97, 52, 1, 5, 48, 5, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 3, 9, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -13, -13, 131, 105, 106, -13, -13, -13, -13, 134, 135, 136, -13, 137, -13, -13, -13, -13, -13, -13, -13, 132, -13, 138, -13, -13, 133, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 130, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 44, 1, 5, 59, 1, 1, 5, 10, 1, 1, 1, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -14, -14, -14, -14, -14, -14, 139, 140, 141, -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, -14, -14, -14, -14, -14, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 59, 1, 1, 5, 31, 18, 17, -33, -33, -33, -33, -33, -33, -33, -33, -33, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -34, -34, -34, -34, -34, -34, -34, -34, -34, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, 55, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -35, -35, -35, -35, -35, -35, -35, -35, 142, 143, 144, 145, 146, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -37, -37, -37, -37, -37, -37, -37, -37, -37, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -40, -40, -40, -40, -40, -40, -40, -40, -40, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -43, -43, -43, -43, -43, -43, -43, -43, -43, 18, 6, 49, 1, 10, 1, 5, 7, 1, 1, 7, 14, 2, 1, 15, 1, 3, 4, 1, -173, 151, 104, -173, -173, -173, 153, 154, 152, 99, 156, 155, 150, 147, -173, -173, 148, 149, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 4, 1, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 158, 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, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 159, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 157, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 160, 161, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 163, 164, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 165, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 171, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 172, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 173, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 174, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 45, 14, 1, 21, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 9, 1, 1, 1, 7, 14, 2, 3, 2, 14, 2, 1, 1, 7, 1, 1, 1, 53, 176, 177, 178, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 175, 72, 73, 93, 99, 83, 87, 84, 85, 166, 167, 90, 91, 86, 88, 89, 82, 170, 45, 14, 1, 21, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 9, 1, 1, 1, 7, 14, 2, 3, 2, 14, 2, 1, 1, 7, 1, 1, 1, 53, 176, 177, 178, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 179, 72, 73, 93, 99, 83, 87, 84, 85, 166, 167, 90, 91, 86, 88, 89, 82, 170, 58, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 1, 1, 1, 1, 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, 180, 181, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, 182, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 184, 183, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 185, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, 186, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, 2, 66, 56, 159, 187, 2, 66, 56, 159, 188, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 14, 39, 16, 1, 23, 1, 1, 7, 4, 5, 5, 2, 25, 37, 2, 192, 151, 104, 153, 154, 152, 99, 189, 190, 83, 155, 194, 191, 193, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 195, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 196, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 88, 1, 5, 8, 1, 21, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 1, 1, 1, 1, 3, 6, 1, 1, 1, 4, 3, 2, 1, 2, 2, 1, 6, 1, 1, 1, 2, 2, 8, 4, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 10, 1, 10, 1, 3, 1, 1, 2, 3, 20, 2, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -302, -302, 176, 177, 178, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -302, 159, -302, 102, 103, -302, 199, 72, 73, 93, -302, 99, -302, -302, -302, -302, -302, 83, -302, 87, -302, 84, 85, -302, -302, 197, 166, -302, 167, 90, 91, 86, 88, 89, 82, -302, -302, -302, -302, -302, -302, -302, -302, -302, 198, 170, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, -302, 1, 66, 200, 2, 66, 56, 159, 201, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 202, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 203, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 1, 1, 1, 1, 3, 5, 1, 1, 1, 1, 4, 3, 2, 1, 2, 2, 1, 6, 1, 1, 1, 2, 2, 8, 1, 3, 2, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -224, -224, 204, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -224, 205, -224, 102, 103, -224, 53, 52, 72, 73, 93, -224, 99, -224, -224, -224, -224, -224, 83, -224, 87, -224, 84, 85, -224, 66, -224, 166, -224, 167, 90, 91, 86, 88, 89, 82, -224, 69, 64, 65, 206, 54, 94, 55, 95, -224, -224, 56, 60, 57, -224, -224, 58, 98, -224, -224, -224, 49, -224, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, 2, 55, 1, 207, 104, 2, 55, 1, 208, 104, 6, 15, 19, 89, 2, 1, 1, 210, 209, 42, 43, 90, 91, 136, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 1, 1, 1, 1, 3, 5, 1, 1, 1, 1, 4, 3, 2, 1, 2, 2, 1, 6, 1, 1, 1, 2, 2, 8, 1, 3, 2, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -221, -221, 211, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -221, 212, -221, 102, 103, -221, 53, 52, 72, 73, 93, -221, 99, -221, -221, -221, -221, -221, 83, -221, 87, -221, 84, 85, -221, 66, -221, 166, -221, 167, 90, 91, 86, 88, 89, 82, -221, 69, 64, 65, 54, 94, 55, 95, -221, -221, 56, 60, 57, -221, -221, 58, 98, -221, -221, -221, 49, -221, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, 9, 54, 1, 1, 3, 1, 28, 89, 1, 5, 213, 217, 104, 105, 106, 216, 214, 215, 218, 13, 27, 1, 4, 1, 22, 1, 32, 30, 51, 2, 1, 10, 4, 220, 221, 222, 223, 224, 104, 219, 66, 61, 67, 62, 225, 226, 55, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -87, -87, 55, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -88, -88, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -44, -44, -44, -44, -44, -44, -44, -44, -44, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -45, -45, -45, -45, -45, -45, -45, -45, -45, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -46, -46, -46, -46, -46, -46, -46, -46, -46, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -47, -47, -47, -47, -47, -47, -47, -47, -47, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -48, -48, -48, -48, -48, -48, -48, -48, -48, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 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, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 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, -51, -51, -51, -51, -51, -51, -51, -51, -51, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 227, 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, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 228, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 3, 5, 1, 1, 1, 1, 7, 3, 11, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 3, 5, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 229, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 235, 102, 103, 236, 53, 52, 72, 73, 93, 99, 59, 83, 230, 87, 240, 84, 85, 231, 232, 234, 237, 233, 66, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 4, 82, 2, 24, 11, 242, 243, 241, 138, 2, 108, 11, 244, 138, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, 52, 1, 5, 51, 1, 1, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -206, -206, 245, 246, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, 1, 82, 247, 1, 82, 248, 54, 11, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 6, 2, 1, 8, 11, 3, 11, 2, 3, 2, 9, 5, 3, 1, 7, 1, 1, 1, 2, 1, 1, 3, 3, 3, 4, 5, 1, 2, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 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, 54, 11, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 6, 2, 1, 8, 11, 3, 11, 2, 3, 2, 9, 5, 3, 1, 7, 1, 1, 1, 2, 1, 1, 3, 3, 3, 4, 5, 1, 2, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 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, 59, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 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, -89, -89, -89, -89, -89, -89, 59, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 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, -90, -90, -90, -90, -90, -90, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 249, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 250, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 251, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 252, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 4, 1, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 254, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 159, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 253, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 23, 6, 39, 8, 1, 1, 1, 1, 1, 1, 1, 6, 1, 5, 9, 8, 6, 3, 1, 1, 1, 1, 2, 1, -109, 260, 100, 101, 262, 104, 263, 246, 105, 106, -109, -109, -109, 264, 255, -109, 256, 261, 265, 257, 258, 259, 266, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 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, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 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, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -64, -64, -64, -64, -64, -64, -64, -64, -64, 45, 14, 1, 21, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 9, 1, 1, 1, 7, 14, 2, 3, 2, 14, 2, 1, 1, 7, 1, 1, 1, 53, 176, 177, 178, 34, 35, 36, 267, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 268, 72, 73, 93, 99, 83, 87, 84, 85, 166, 167, 90, 91, 86, 88, 89, 82, 170, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 4, 6, 1, 10, 1, 3, 1, 1, 2, 3, 11, 11, 1, 1, 1, 1, 1, 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, -54, -54, -54, -54, 53, 1, 5, 53, 1, 2, 2, 1, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 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, 6, 54, 5, 1, 1, 2, 1, 272, 105, 106, 269, 270, 271, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 2, 1, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -5, 273, -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, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -5, -5, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, -5, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 274, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 275, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 276, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 277, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 278, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 279, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 280, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 281, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 282, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 285, 162, 283, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 284, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 288, 162, 286, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 287, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 291, 162, 289, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 290, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 292, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 293, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 294, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 295, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 296, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 14, 39, 16, 1, 23, 1, 1, 7, 4, 5, 5, 2, 25, 37, 2, 300, 151, 104, 153, 154, 152, 99, 297, 298, 83, 155, 194, 299, 193, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 301, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 302, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, -369, 51, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, 51, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, 2, 108, 11, 303, 138, 2, 57, 1, 304, 246, 2, 57, 1, 305, 246, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 2, 6, 1, 1, 1, 1, 5, 2, 3, 11, 2, 1, 2, 2, 7, 1, 1, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 306, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 311, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 307, 102, 103, 309, 53, 52, 72, 73, 93, 308, 99, 59, 83, 87, 313, 84, 85, 310, 312, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 1, 84, 314, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 1, 2, 2, 5, 4, 3, 2, 2, 1, 1, 3, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 318, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 240, 84, 85, 317, 66, 315, 42, 43, 90, 91, 239, 316, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 2, 57, 1, 320, 246, 2, 57, 1, 321, 246, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 322, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 323, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 325, 324, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 326, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 328, 327, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 329, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 331, 330, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 332, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 334, 333, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 335, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 337, 336, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 338, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 9, 6, 60, 1, 5, 22, 1, 8, 18, 3, -217, -217, -217, 340, 341, -217, -217, -217, 339, 6, 6, 60, 1, 5, 49, 3, -174, -174, -174, -174, -174, -174, 7, 6, 60, 1, 5, 1, 48, 3, -178, -178, -178, -178, 342, -178, -178, 15, 6, 49, 1, 10, 1, 5, 7, 1, 1, 7, 14, 2, 17, 3, 5, -181, 151, 104, -181, -181, -181, 153, 154, 152, 99, 156, 155, -181, -181, 343, 11, 6, 60, 1, 5, 1, 20, 28, 3, 39, 2, 2, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, 11, 6, 60, 1, 5, 1, 20, 28, 3, 39, 2, 2, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, 11, 6, 60, 1, 5, 1, 20, 28, 3, 39, 2, 2, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, 11, 6, 60, 1, 5, 1, 20, 28, 3, 39, 2, 2, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, 2, 57, 1, 245, 246, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 3, 5, 1, 1, 1, 1, 7, 3, 11, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 3, 5, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 235, 102, 103, 236, 53, 52, 72, 73, 93, 99, 59, 83, 230, 87, 240, 84, 85, 231, 232, 234, 237, 233, 66, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 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, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -170, -170, -170, -170, -170, -170, -170, -170, -170, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 7, 1, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 345, 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, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 344, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, 124, 125, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, -364, 118, -364, 120, -364, -364, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -361, -361, -361, -361, -361, -361, -361, -361, -361, 5, 148, 1, 9, 1, 1, 127, 128, 129, 96, 97, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, 124, 125, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, -365, 118, -365, 120, -365, -365, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -362, -362, -362, -362, -362, -362, -362, -362, -362, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -366, -366, -366, -366, -366, -366, -366, -366, -366, -366, -366, -366, -366, -366, -366, -366, -366, -366, -366, 124, 125, -366, -366, -366, -366, -366, -366, -366, -366, -366, 111, -366, -366, -366, -366, -366, -366, 118, -366, 120, -366, -366, 18, 6, 49, 1, 10, 1, 5, 7, 1, 1, 7, 14, 2, 1, 15, 1, 3, 4, 1, -173, 151, 104, -173, -173, -173, 153, 154, 152, 99, 156, 155, 150, 346, -173, -173, 148, 149, 2, 66, 56, 159, 157, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 160, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 163, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 5, 15, 108, 2, 1, 1, 210, 166, 167, 90, 91, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -367, -367, -367, -367, -367, -367, -367, -367, -367, 111, -367, -367, -367, -367, -367, -367, 118, -367, 120, -367, -367, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -368, -368, -368, -368, -368, -368, -368, -368, -368, 111, -368, -368, -368, -368, -368, -368, 118, -368, 120, -368, -368, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, 118, -370, 120, -370, -370, 2, 80, 8, 347, 99, 55, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -372, -372, -86, -86, -372, -372, -372, -372, -86, -86, -86, -86, -86, -86, -86, -86, -372, -86, -372, -372, -372, -372, -372, -372, -372, -372, -86, -372, -372, -86, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -86, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, -372, 10, 54, 5, 1, 22, 1, 1, 3, 21, 11, 12, 131, 105, 106, 134, 135, 136, 137, 132, 138, 133, 3, 82, 1, 1, 139, 140, 141, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 55, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -373, -373, -86, -86, -373, -373, -373, -373, -86, -86, -86, -86, -86, -86, -86, -86, -373, -86, -373, -373, -373, -373, -373, -373, -373, -373, -86, -373, -373, -86, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -86, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, -373, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -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, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 350, 348, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 349, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -83, -83, -83, -83, -83, -83, -83, -83, 126, -83, -83, -83, -83, -83, -83, -83, -83, -83, 123, 124, 125, 96, 97, -83, -83, -83, -83, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 351, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 352, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 3, 66, 56, 22, 159, 353, 354, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 2, 1, 1, 6, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, 355, 356, 357, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 4, 93, 70, 2, 2, 359, 358, 360, 361, 11, 55, 1, 23, 1, 1, 7, 4, 10, 2, 25, 39, 151, 104, 153, 154, 152, 99, 362, 156, 155, 194, 193, 11, 55, 1, 23, 1, 1, 7, 4, 10, 2, 25, 39, 151, 104, 153, 154, 152, 99, 363, 156, 155, 194, 193, 3, 66, 56, 42, 159, 364, 365, 5, 72, 21, 70, 2, 2, 366, -300, -300, -300, -300, 6, 72, 1, 20, 70, 2, 2, -298, 367, -298, -298, -298, -298, 22, 66, 25, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 368, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 3, 155, 1, 1, 369, 370, 371, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, -303, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 372, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 1, 2, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -306, -306, -86, -86, -306, 159, -306, -306, -86, -86, -86, -86, -86, -86, -86, -86, -306, -86, -306, -306, -306, -306, -306, -306, -306, -306, -86, -306, 373, -306, -86, -306, -306, -306, -306, -306, -306, -306, -306, -306, 374, -306, -306, -86, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, 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, 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, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 1, 1, 1, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 377, 378, 379, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 375, 376, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, 124, 125, -222, -222, -222, -222, -222, -222, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 2, 80, 8, 380, 99, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, 124, 125, -225, -225, -225, -225, -225, -225, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 2, 80, 8, 381, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 382, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 3, 66, 53, 3, 159, 383, 384, 2, 66, 56, 159, 385, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -363, -363, -363, -363, -363, -363, -363, -363, -363, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, 124, 125, -219, -219, -219, -219, -219, -219, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 2, 80, 8, 386, 99, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, -319, 2, 72, 70, 388, 387, 1, 142, 389, 7, 55, 1, 10, 29, 84, 1, 2, 394, 104, 393, 390, 391, 392, 395, 2, 72, 70, -335, -335, 1, 181, 396, 7, 55, 1, 10, 29, 87, 3, 2, 401, 104, 400, 397, 402, 398, 399, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, -339, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, -340, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, 1, 73, 403, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 404, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 405, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 1, 142, 406, 2, 6, 132, 107, 407, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 408, 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, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 30, 6, 60, 1, 5, 19, 12, 2, 11, 1, 4, 27, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -199, -199, -199, -199, 126, -199, 313, 409, 312, -199, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 55, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 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, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 3, 5, 1, 1, 1, 1, 7, 3, 11, 1, 1, 1, 2, 2, 5, 1, 3, 5, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 236, 53, 52, 72, 73, 93, 99, 59, 83, 410, 87, 240, 84, 85, 412, 411, 66, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 9, 6, 60, 1, 5, 22, 1, 8, 9, 9, -217, -217, -217, 414, 415, -217, -217, 413, -217, 59, 6, 5, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 6, 1, 1, 1, 3, 5, 11, 3, 11, 1, 1, 1, 2, 2, 9, 5, 3, 1, 7, 1, 1, 1, 2, 1, 1, 3, 3, 3, 4, 5, 1, 2, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 416, -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, 5, 6, 60, 1, 5, 31, -145, -145, -145, -145, -145, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 3, 5, 1, 1, 1, 1, 7, 3, 11, 2, 1, 2, 2, 1, 1, 2, 1, 1, 3, 5, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 235, 102, 103, 236, 53, 52, 72, 73, 93, 99, 59, 83, 87, 240, 84, 85, 418, 417, 234, 237, 233, 66, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 59, 6, 5, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 6, 1, 1, 1, 3, 5, 11, 3, 11, 1, 1, 1, 2, 2, 9, 5, 3, 1, 7, 1, 1, 1, 2, 1, 1, 3, 3, 3, 4, 5, 1, 2, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 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, 5, 6, 60, 1, 5, 31, -150, -150, -150, -150, -150, 6, 6, 60, 1, 5, 31, 18, -200, -200, -200, -200, -200, -200, 6, 6, 60, 1, 5, 31, 18, -201, -201, -201, -201, -201, -201, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 1, 1, 1, 3, 5, 1, 1, 1, 1, 7, 3, 11, 1, 1, 3, 2, 9, 3, 2, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -202, 419, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -202, -202, 102, 103, -202, 53, 52, 72, 73, 93, 99, 59, 83, -202, 87, 84, 85, 66, -202, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 51, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, 2, 57, 1, 420, 246, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 421, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 422, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 51, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, 59, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, 59, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 3, 22, 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, 2, 57, 1, 423, 246, 2, 57, 1, 424, 246, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 425, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 426, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -254, -254, -254, -254, -254, -254, -254, -254, 126, -254, -254, 427, -254, -254, -254, -254, -254, -254, -254, 124, 125, 96, 97, -254, -254, -254, -254, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -256, -256, -256, -256, -256, -256, -256, -256, 126, -256, -256, 428, -256, -256, -256, -256, -256, -256, -256, 124, 125, 96, 97, -256, -256, -256, -256, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -263, -263, -263, -263, -263, -263, -263, -263, 126, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, 124, 125, 96, 97, -263, -263, -263, -263, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 6, 6, 60, 1, 5, 18, 5, -114, -114, -114, -114, 429, -114, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 431, 430, -217, -217, -217, 7, 6, 60, 1, 5, 1, 17, 5, -123, -123, -123, -123, 432, -123, -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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 433, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 3, 57, 1, 44, 245, 246, 434, 6, 6, 60, 1, 5, 18, 5, -126, -126, -126, -126, -126, -126, 5, 6, 60, 1, 5, 23, -110, -110, -110, -110, -110, 11, 6, 60, 1, 5, 1, 9, 1, 1, 6, 5, 24, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, 11, 6, 60, 1, 5, 1, 9, 1, 1, 6, 5, 24, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, 11, 6, 60, 1, 5, 1, 9, 1, 1, 6, 5, 24, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, 5, 6, 60, 1, 5, 23, -115, -115, -115, -115, -115, 17, 38, 4, 1, 12, 1, 1, 1, 22, 1, 7, 13, 3, 2, 1, 2, 25, 3, 438, 440, 439, 262, 104, 263, 246, 437, 264, 99, 435, 87, 436, 441, 442, 86, 82, 51, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -39, -39, -39, -39, -39, -39, -39, 443, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, 55, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -86, -86, 6, 54, 5, 1, 2, 1, 1, 272, 105, 106, 444, 445, 271, 4, 59, 1, 2, 2, -58, -58, -58, -58, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 1, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 446, 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, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 448, 447, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 4, 59, 1, 2, 2, -63, -63, -63, -63, 5, 1, 5, 59, 2, 71, -4, -4, -4, -4, -4, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, 124, 125, -376, -376, -376, -376, -376, -376, -376, -376, 110, 111, -376, -376, -376, -376, -376, -376, 118, -376, 120, -376, -376, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -377, -377, -377, -377, -377, -377, -377, -377, 110, 111, -377, -377, -377, -377, -377, -377, 118, -377, 120, -377, -377, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -378, -378, -378, -378, -378, -378, -378, -378, -378, 111, -378, -378, -378, -378, -378, -378, 118, -378, 120, -378, -378, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -379, -379, -379, -379, -379, -379, -379, -379, -379, 111, -379, -379, -379, -379, -379, -379, 118, -379, 120, -379, -379, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -380, 124, 125, -380, -380, -380, -380, -380, -380, 109, 108, 110, 111, -380, -380, -380, -380, -380, -380, 118, -380, 120, -380, -380, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -381, 124, 125, -381, -381, -381, -381, -381, -381, 109, 108, 110, 111, 112, -381, -381, -381, -381, -381, 118, -381, 120, 121, -381, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -382, 124, 125, -382, -382, -382, -382, -382, -382, 109, 108, 110, 111, 112, 113, -382, -382, -382, -382, 118, -382, 120, 121, -382, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -383, 124, 125, -383, -383, -383, -383, -383, -383, 109, 108, 110, 111, 112, 113, 114, -383, -383, -383, 118, -383, 120, 121, -383, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -384, 124, 125, -384, -384, -384, -384, -384, -384, 109, 108, 110, 111, 112, 113, 114, 115, -384, -384, 118, -384, 120, 121, -384, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, -385, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, -386, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -392, -392, -392, -392, -392, -392, 109, 108, 110, 111, 112, 113, 114, 115, 116, -392, 118, 119, 120, 121, -392, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, -388, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -393, -393, -393, -393, -393, -393, -393, -393, 126, -393, -393, -393, -393, -393, -393, -393, -393, -393, 123, 124, 125, 96, 97, -393, -393, -393, -393, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -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, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -391, -391, -391, -391, -391, -391, 109, 108, 110, 111, 112, 113, 114, 115, 116, -391, 118, -391, 120, 121, -391, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -394, -394, -394, -394, -394, -394, -394, -394, 126, -394, -394, -394, -394, -394, -394, -394, -394, -394, 123, 124, 125, 96, 97, -394, -394, -394, -394, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -395, 124, 125, -395, -395, -395, -395, -395, -395, 109, 108, 110, 111, 112, -395, -395, -395, -395, -395, 118, -395, 120, -395, -395, 22, 90, 1, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 449, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -236, -236, -236, -236, -236, -236, -236, -236, 126, -236, -236, -236, -236, -236, -236, -236, -236, -236, -236, 124, 125, 96, 97, -236, -236, -236, -236, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -238, -238, -238, -238, -238, -238, -238, -238, 126, -238, -238, -238, -238, -238, -238, -238, -238, -238, 123, 124, 125, 96, 97, -238, -238, -238, -238, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 4, 93, 70, 2, 2, 451, 450, 452, 453, 11, 55, 1, 23, 1, 1, 7, 4, 10, 2, 25, 39, 151, 104, 153, 154, 152, 99, 454, 156, 155, 194, 193, 11, 55, 1, 23, 1, 1, 7, 4, 10, 2, 25, 39, 151, 104, 153, 154, 152, 99, 455, 156, 155, 194, 193, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 456, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -235, -235, -235, -235, -235, -235, -235, -235, 126, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, 124, 125, 96, 97, -235, -235, -235, -235, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -237, -237, -237, -237, -237, -237, -237, -237, 126, -237, -237, -237, -237, -237, -237, -237, -237, -237, 123, 124, 125, 96, 97, -237, -237, -237, -237, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 51, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, 59, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 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, -91, -91, -91, -91, -91, -91, 59, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, 25, 85, 6, 14, 11, 1, 31, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 457, 126, 313, 458, 312, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 5, 2, 3, 11, 2, 1, 2, 2, 7, 1, 1, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 459, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 460, 99, 59, 83, 87, 313, 84, 85, 310, 312, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 1, 85, 461, 1, 85, 462, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 7, 1, 1, 8, 1, 1, 1, 1, 4, 3, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 463, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -164, 102, 103, 53, 52, 72, 73, 93, -164, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -46, -46, -46, -46, -46, -46, -46, 464, -46, -46, -46, -67, -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, 55, 11, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 7, 1, 1, 8, 8, 3, 3, 11, 2, 3, 2, 9, 5, 3, 1, 7, 1, 1, 1, 2, 1, 1, 3, 3, 3, 4, 5, 1, 2, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 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, 55, 11, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 7, 1, 1, 8, 8, 3, 3, 11, 2, 3, 2, 9, 5, 3, 1, 7, 1, 1, 1, 2, 1, 1, 3, 3, 3, 4, 5, 1, 2, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 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, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 465, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 466, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 51, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 468, 467, -217, -217, -217, 5, 6, 60, 1, 5, 49, -194, -194, -194, -194, -194, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 1, 2, 2, 5, 4, 5, 2, 1, 1, 3, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 318, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 240, 84, 85, 317, 66, 42, 43, 90, 91, 239, 469, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 27, 6, 60, 1, 5, 19, 12, 18, 27, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -199, -199, -199, -199, 126, -199, -199, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 59, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, 59, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, 22, 85, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 470, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 471, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -68, -68, -68, -68, -68, -68, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 472, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 473, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -71, -71, -71, -71, -71, -71, -71, -71, 126, -71, -71, -71, -71, -71, -71, -71, -71, -71, 123, 124, 125, 96, 97, -71, -71, -71, -71, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 474, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 475, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -74, -74, -74, -74, -74, -74, -74, -74, 126, -74, -74, -74, -74, -74, -74, -74, -74, -74, 123, 124, 125, 96, 97, -74, -74, -74, -74, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 476, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 477, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -77, -77, -77, -77, -77, -77, -77, -77, 126, -77, -77, -77, -77, -77, -77, -77, -77, -77, 123, 124, 125, 96, 97, -77, -77, -77, -77, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 478, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 479, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -80, -80, -80, -80, -80, -80, -80, -80, 126, -80, -80, -80, -80, -80, -80, -80, -80, -80, 123, 124, 125, 96, 97, -80, -80, -80, -80, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 480, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 481, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 3, 125, 1, 1, 482, 90, 91, 17, 6, 49, 1, 10, 1, 12, 1, 1, 7, 7, 7, 1, 1, 1, 16, 7, 1, -218, 151, 104, -218, -218, 153, 154, 152, 99, -218, 156, -218, 155, 150, -218, 483, 149, 2, 6, 60, 484, 485, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 486, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 6, 6, 60, 1, 5, 49, 3, -180, -180, -180, -180, -180, -180, 54, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 3, 1, 4, 2, 1, 3, 1, 1, 2, 25, 1, 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, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, 2, 6, 61, 107, 487, 9, 6, 60, 1, 5, 22, 1, 8, 18, 3, -217, -217, -217, 340, 341, -217, -217, -217, 488, 1, 67, 489, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -397, 124, 125, -397, -397, -397, -397, -397, -397, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 490, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 491, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -84, -84, -84, -84, -84, -84, -84, -84, 126, -84, -84, -84, -84, -84, -84, -84, -84, -84, 123, 124, 125, 96, 97, -84, -84, -84, -84, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 492, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 493, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 3, 7, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, 494, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, 2, 66, 56, 159, 495, 6, 55, 1, 10, 14, 8, 34, 496, 104, 159, 497, 99, 498, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 499, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 500, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 501, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 502, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 1, 93, 503, 1, 165, 504, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 505, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 10, 55, 1, 23, 1, 1, 7, 14, 2, 25, 39, 151, 104, 153, 154, 152, 99, 156, 155, 194, 506, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 507, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 3, 155, 1, 1, 508, 370, 371, 4, 67, 78, 11, 1, 509, 510, 511, 371, 3, 67, 78, 12, -250, -250, -250, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 6, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 513, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 512, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 1, 2, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -304, -304, -304, 159, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, 514, -304, -304, -304, 124, 125, -304, -304, -304, -304, -304, -304, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 515, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 2, 6, 61, 517, 516, 2, 6, 61, -312, -312, 23, 6, 61, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -315, -315, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 2, 6, 61, -316, -316, 7, 6, 61, 81, 1, 9, 1, 1, -317, -317, 127, 128, 129, 96, 97, 1, 67, 518, 1, 67, 519, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, 124, 125, -227, -227, -227, -227, -227, -227, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 18, 6, 49, 1, 10, 1, 5, 7, 1, 1, 7, 14, 2, 1, 15, 1, 3, 4, 1, -173, 151, 104, -173, -173, -173, 153, 154, 152, 99, 156, 155, 150, 520, -173, -173, 148, 149, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 1, 67, 521, 3, 54, 5, 1, 522, 105, 106, 3, 88, 90, 5, 524, 523, 218, 3, 54, 5, 1, 525, 105, 106, 1, 142, 526, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 528, 527, -217, -217, -217, 5, 6, 60, 1, 5, 23, -326, -326, -326, -326, -326, 6, 55, 1, 10, 113, 1, 2, 394, 104, 393, 529, 392, 395, 6, 6, 60, 1, 5, 23, 86, -331, -331, -331, -331, -331, 530, 6, 6, 60, 1, 5, 23, 86, -333, -333, -333, -333, -333, 531, 2, 55, 1, 532, 104, 14, 1, 5, 59, 1, 1, 5, 31, 18, 17, 4, 6, 1, 10, 1, -337, -337, -337, -337, -337, -337, -337, -337, -337, 533, -337, -337, -337, -337, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 535, 534, -217, -217, -217, 5, 6, 60, 1, 5, 23, -351, -351, -351, -351, -351, 6, 55, 1, 10, 116, 3, 2, 401, 104, 400, 402, 536, 399, 6, 6, 60, 1, 5, 23, 86, -356, -356, -356, -356, -356, 537, 6, 6, 60, 1, 5, 23, 86, -359, -359, -359, -359, -359, 538, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 540, 539, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 541, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 30, 1, 5, 59, 1, 1, 5, 19, 12, 18, 17, 10, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -346, -346, -346, -346, -346, -346, 126, -346, -346, -346, -346, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 2, 80, 8, 542, 99, 3, 54, 5, 1, 543, 105, 106, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -215, -215, -215, -215, -215, -215, -215, -215, -215, 2, 6, 61, 107, 544, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 545, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 55, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 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, 59, 6, 5, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 6, 1, 1, 1, 3, 5, 11, 3, 11, 1, 1, 1, 2, 2, 9, 5, 3, 1, 7, 1, 1, 1, 2, 1, 1, 3, 3, 3, 4, 5, 1, 2, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 416, -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, 5, 6, 60, 1, 5, 31, -151, -151, -151, -151, -151, 2, 66, 37, 547, 546, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 1, 1, 1, 3, 5, 1, 1, 1, 1, 7, 3, 4, 7, 1, 1, 1, 2, 2, 1, 3, 1, 1, 3, 3, 2, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -218, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -218, -218, 102, 103, 236, 53, 52, 72, 73, 93, 99, 59, -218, 83, -218, 87, 240, 84, 85, 549, 548, 237, 233, 66, -218, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 4, 6, 60, 1, 36, 550, -152, -152, -152, 59, 6, 5, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 6, 1, 1, 1, 3, 5, 11, 3, 11, 1, 1, 1, 2, 2, 9, 5, 3, 1, 7, 1, 1, 1, 2, 1, 1, 3, 3, 3, 4, 5, 1, 2, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 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, 9, 6, 60, 1, 5, 22, 1, 8, 9, 9, -217, -217, -217, 414, 415, -217, -217, 551, -217, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 3, 5, 1, 1, 1, 1, 7, 3, 11, 2, 1, 2, 2, 5, 1, 3, 5, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 236, 53, 52, 72, 73, 93, 99, 59, 83, 87, 240, 84, 85, 412, 411, 66, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 27, 6, 60, 1, 5, 19, 12, 18, 27, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -186, -186, -186, -186, 126, -186, -186, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, 22, 85, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 552, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 553, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -211, -211, -211, -211, -211, -211, -211, -211, -211, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, 554, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 555, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 556, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 557, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 558, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 3, 6, 60, 29, 560, 561, 559, 23, 6, 39, 8, 1, 1, 1, 1, 1, 1, 1, 6, 1, 14, 8, 6, 4, 1, 1, 1, 1, 1, 1, 16, -218, 260, 100, 101, 262, 104, 263, 246, 105, 106, -218, -218, 264, 563, -218, 562, 265, 257, 258, -218, 259, 266, -218, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 564, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 565, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 22, 91, 12, 45, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 126, 566, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 567, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 10, 6, 60, 1, 5, 10, 1, 1, 11, 13, 11, -127, -127, -127, -127, -129, -129, -129, -127, 568, 138, 10, 6, 60, 1, 5, 10, 1, 1, 11, 13, 11, -128, -128, -128, -128, 570, 571, 572, -128, 569, 138, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -130, -130, -130, -130, -130, -130, -130, -130, -130, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -131, -131, -131, -131, -131, -131, -131, -131, -131, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -132, -132, -132, -132, -132, -132, -132, -132, -132, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -133, -133, -133, -133, -133, -133, -133, -133, -133, 4, 82, 2, 24, 11, 242, 243, 573, 138, 2, 108, 11, 574, 138, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, 53, 1, 5, 53, 1, 2, 2, 1, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 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, 4, 59, 1, 2, 2, -59, -59, -59, -59, 2, 6, 59, 107, 575, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 576, 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, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 4, 59, 1, 2, 2, -62, -62, -62, -62, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 577, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 578, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 579, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 580, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 581, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 1, 93, 582, 1, 165, 583, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 584, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 59, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 7, 1, 1, 8, 1, 1, 1, 1, 4, 3, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 585, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -162, 102, 103, 53, 52, 72, 73, 93, -162, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 25, 67, 24, 14, 11, 1, 31, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 586, 126, 313, 458, 312, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 1, 67, 587, 59, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, 59, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, 23, 67, 18, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -163, -163, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 588, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 22, 85, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 589, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 590, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 3, 6, 60, 55, 592, 593, 591, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 1, 1, 1, 8, 1, 1, 1, 1, 7, 3, 4, 7, 1, 1, 1, 2, 2, 5, 4, 3, 2, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -218, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -218, -218, 102, 103, 53, 52, 72, 73, 93, 99, 59, -218, 83, -218, 87, 240, 84, 85, 594, 66, -218, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 468, 595, -217, -217, -217, 59, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 596, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -69, -69, -69, -69, -69, -69, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 597, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -72, -72, -72, -72, -72, -72, -72, -72, 126, -72, -72, -72, -72, -72, -72, -72, -72, -72, 123, 124, 125, 96, 97, -72, -72, -72, -72, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 598, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -75, -75, -75, -75, -75, -75, -75, -75, 126, -75, -75, -75, -75, -75, -75, -75, -75, -75, 123, 124, 125, 96, 97, -75, -75, -75, -75, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 599, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -78, -78, -78, -78, -78, -78, -78, -78, 126, -78, -78, -78, -78, -78, -78, -78, -78, -78, 123, 124, 125, 96, 97, -78, -78, -78, -78, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 600, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -81, -81, -81, -81, -81, -81, -81, -81, 126, -81, -81, -81, -81, -81, -81, -81, -81, -81, 123, 124, 125, 96, 97, -81, -81, -81, -81, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 601, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 4, 1, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 603, 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, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 159, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 602, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 6, 6, 60, 1, 5, 49, 3, -175, -175, -175, -175, -175, -175, 11, 55, 1, 23, 1, 1, 7, 14, 2, 1, 23, 1, 151, 104, 153, 154, 152, 99, 156, 155, 150, 604, 149, 18, 6, 49, 1, 10, 1, 5, 7, 1, 1, 7, 14, 2, 1, 15, 1, 3, 4, 1, -173, 151, 104, -173, -173, -173, 153, 154, 152, 99, 156, 155, 150, 605, -173, -173, 148, 149, 27, 6, 60, 1, 5, 19, 30, 3, 24, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -179, -179, -179, -179, 126, -179, -179, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 54, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 3, 1, 4, 2, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, 3, 125, 1, 1, 606, 90, 91, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 607, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, 124, 125, -399, -399, -399, -399, -399, -399, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 608, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 2, 66, 56, 159, 609, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, 2, 66, 56, 159, 610, 2, 66, 56, 159, 611, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 3, 7, 1, 3, 1, 1, 2, 25, 1, 4, 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, 25, 66, 25, 5, 26, 26, 1, 9, 1, 1, 4, 28, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 613, 612, 123, 124, 125, 96, 97, 614, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 24, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 616, 615, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 24, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 618, 617, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 24, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 620, 619, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 621, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 622, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 623, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 4, 93, 70, 2, 2, -301, -301, -301, -301, 26, 72, 19, 2, 55, 1, 9, 1, 1, 3, 2, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -299, 126, -299, 123, 124, 125, 96, 97, -299, -299, -299, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 4, 67, 78, 11, 1, 624, 625, 511, 371, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 2, 66, 56, 159, 626, 3, 67, 78, 12, -251, -251, -251, 3, 66, 6, 50, 159, 628, 627, 23, 66, 6, 19, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -203, -203, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 1, 2, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -308, -308, -308, 159, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, 629, -308, -308, -308, 124, 125, -308, -308, -308, -308, -308, -308, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, 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, 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, 1, 7, 1, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 2, 1, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -314, 377, 378, 379, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -314, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 630, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 340, 341, -217, -217, 631, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, -320, 1, 142, 632, 6, 55, 1, 10, 113, 1, 2, 394, 104, 393, 633, 392, 395, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, 3, 54, 5, 1, 634, 105, 106, 3, 6, 60, 29, 636, 637, 635, 10, 6, 49, 1, 10, 1, 28, 8, 18, 59, 2, -218, 394, 104, -218, -218, -218, -218, -218, 638, 395, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 528, 639, -217, -217, -217, 2, 55, 1, 640, 104, 2, 55, 1, 641, 104, 1, 142, -336, 3, 54, 5, 1, 642, 105, 106, 3, 6, 60, 29, 644, 645, 643, 10, 6, 49, 1, 10, 1, 28, 8, 18, 61, 5, -218, 401, 104, -218, -218, -218, -218, -218, 402, 646, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 535, 647, -217, -217, -217, 3, 55, 1, 126, 648, 104, 649, 2, 55, 1, 650, 104, 30, 1, 5, 59, 1, 1, 5, 19, 12, 18, 17, 10, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -343, -343, -343, -343, -343, -343, 126, -343, -343, -343, -343, 124, 125, -343, -343, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 651, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 652, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 1, 67, 653, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, 1, 138, 654, 22, 91, 12, 45, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 126, 655, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 55, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 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, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 3, 5, 1, 1, 1, 1, 7, 3, 11, 2, 1, 2, 2, 1, 1, 2, 1, 1, 3, 5, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 235, 102, 103, 236, 53, 52, 72, 73, 93, 99, 59, 83, 87, 240, 84, 85, 418, 656, 234, 237, 233, 66, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 5, 6, 60, 1, 5, 31, -146, -146, -146, -146, -146, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 1, 1, 1, 3, 5, 1, 1, 1, 1, 7, 3, 11, 1, 1, 1, 2, 2, 5, 1, 3, 5, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -153, -153, 102, 103, 236, 53, 52, 72, 73, 93, 99, 59, 83, -153, 87, 240, 84, 85, 412, 411, 66, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 3, 5, 1, 1, 1, 1, 7, 3, 11, 2, 1, 2, 2, 1, 3, 1, 1, 3, 5, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 236, 53, 52, 72, 73, 93, 99, 59, 83, 87, 240, 84, 85, 418, 657, 237, 233, 66, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 2, 66, 1, 547, 658, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 659, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 2, 66, 56, 159, 660, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, 124, 125, -255, -255, -255, -255, -255, -255, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -257, -257, -257, -257, -257, -257, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 26, 6, 60, 1, 5, 19, 4, 53, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -116, -116, -116, -116, 661, -116, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 662, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 55, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, 17, 45, 8, 1, 1, 1, 1, 1, 1, 1, 21, 8, 10, 1, 1, 1, 2, 1, 260, 100, 101, 262, 104, 263, 246, 105, 106, 264, 563, 663, 265, 257, 258, 259, 266, 23, 6, 39, 8, 1, 1, 1, 1, 1, 1, 1, 6, 1, 5, 9, 8, 6, 3, 1, 1, 1, 1, 2, 1, -109, 260, 100, 101, 262, 104, 263, 246, 105, 106, -109, -109, -109, 264, 563, -109, 664, 261, 265, 257, 258, 259, 266, 5, 6, 60, 1, 5, 23, -111, -111, -111, -111, -111, 6, 6, 60, 1, 5, 18, 5, -114, -114, -114, -114, 665, -114, 26, 6, 60, 1, 5, 19, 4, 53, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -118, -118, -118, -118, 126, -118, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 666, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 6, 6, 60, 1, 5, 18, 5, -124, -124, -124, -124, -124, -124, 22, 91, 12, 45, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 126, 667, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -136, -136, -136, -136, -136, -136, -136, -136, -136, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -137, -137, -137, -137, -137, -137, -137, -137, -137, 2, 57, 1, 668, 246, 2, 57, 1, 669, 246, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 670, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 671, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -134, -134, -134, -134, -134, -134, -134, -134, -134, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -135, -135, -135, -135, -135, -135, -135, -135, -135, 4, 59, 1, 2, 2, -60, -60, -60, -60, 2, 6, 61, 107, 672, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -396, -396, -396, -396, -396, -396, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, 673, -281, -281, -281, -281, -281, -281, -281, 124, 125, -281, -281, -281, 674, -281, -281, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, 675, -286, -286, -286, -286, -286, -286, -286, 124, 125, -286, -286, -286, -286, -286, -286, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, 676, -290, -290, -290, -290, -290, -290, -290, 124, 125, -290, -290, -290, -290, -290, -290, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, 677, -294, -294, -294, -294, -294, -294, -294, 124, 125, -294, -294, -294, -294, -294, -294, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 678, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 679, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -297, -297, -297, -297, -297, -297, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 23, 67, 18, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -161, -161, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 1, 85, 680, 1, 85, 681, 22, 85, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -66, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 59, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 682, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 51, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 1, 2, 2, 5, 4, 5, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 240, 84, 85, 683, 66, 42, 43, 90, 91, 239, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 1, 2, 2, 5, 4, 5, 2, 1, 1, 3, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 319, 238, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 318, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 240, 84, 85, 317, 66, 42, 43, 90, 91, 239, 684, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 5, 6, 60, 1, 5, 49, -195, -195, -195, -195, -195, 3, 6, 60, 1, 592, 593, 685, 1, 85, 686, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 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, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -169, -169, -169, -169, -169, -169, -169, -169, -169, 6, 6, 60, 1, 5, 49, 3, -176, -176, -176, -176, -176, -176, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 340, 687, -217, -217, -217, 2, 66, 56, 159, 602, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 3, 7, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 3, 7, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, -264, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 688, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 689, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 690, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 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, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 691, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 692, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 24, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 694, 693, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 24, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 696, 695, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 2, 66, 56, 159, 697, 1, 67, 698, 4, 6, 61, 78, 12, 699, -252, -252, -252, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 700, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 2, 6, 61, -313, -313, 2, 66, 56, 159, 701, 3, 54, 5, 1, 702, 105, 106, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 528, 703, -217, -217, -217, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, 1, 142, 704, 4, 55, 1, 124, 2, 394, 104, 705, 395, 6, 55, 1, 10, 113, 1, 2, 394, 104, 393, 706, 392, 395, 5, 6, 60, 1, 5, 23, -327, -327, -327, -327, -327, 3, 6, 60, 1, 636, 637, 707, 5, 6, 60, 1, 5, 23, -332, -332, -332, -332, -332, 5, 6, 60, 1, 5, 23, -334, -334, -334, -334, -334, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, 14, 1, 5, 59, 1, 1, 5, 31, 18, 17, 4, 6, 1, 10, 1, -338, -338, -338, -338, -338, -338, -338, -338, -338, 708, -338, -338, -338, -338, 4, 55, 1, 126, 5, 401, 104, 402, 709, 6, 55, 1, 10, 116, 3, 2, 401, 104, 400, 402, 710, 399, 5, 6, 60, 1, 5, 23, -352, -352, -352, -352, -352, 3, 6, 60, 1, 644, 645, 711, 5, 6, 60, 1, 5, 23, -357, -357, -357, -357, -357, 5, 6, 60, 1, 5, 23, -358, -358, -358, -358, -358, 5, 6, 60, 1, 5, 23, -360, -360, -360, -360, -360, 30, 1, 5, 59, 1, 1, 5, 19, 12, 18, 17, 10, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -344, -344, -344, -344, -344, -344, 126, -344, -344, -344, -344, 124, 125, -344, -344, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 712, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 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, 9, 6, 60, 1, 5, 22, 1, 8, 9, 9, -217, -217, -217, 414, 415, -217, -217, 713, -217, 5, 6, 60, 1, 5, 31, -147, -147, -147, -147, -147, 5, 6, 60, 1, 5, 31, -148, -148, -148, -148, -148, 1, 85, 714, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, 14, 39, 16, 1, 23, 1, 1, 7, 4, 5, 5, 2, 25, 37, 2, 300, 151, 104, 153, 154, 152, 99, 715, 716, 83, 155, 194, 299, 193, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 717, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 5, 6, 60, 1, 5, 23, -112, -112, -112, -112, -112, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 431, 718, -217, -217, -217, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 719, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 558, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 720, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 6, 6, 60, 1, 5, 18, 5, -125, -125, -125, -125, -125, -125, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -138, -138, -138, -138, -138, -138, -138, -138, -138, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -139, -139, -139, -139, -139, -139, -139, -139, -139, 22, 85, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 721, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 722, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 1, 65, 723, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 724, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 725, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 726, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 727, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 728, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, 729, -288, -288, -288, -288, -288, -288, -288, 124, 125, -288, -288, -288, -288, -288, -288, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, 730, -292, -292, -292, -292, -292, -292, -292, 124, 125, -292, -292, -292, -292, -292, -292, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 59, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 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, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, 59, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, 1, 85, 731, 5, 6, 60, 1, 5, 49, -196, -196, -196, -196, -196, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 468, 732, -217, -217, -217, 5, 6, 60, 1, 5, 49, -197, -197, -197, -197, -197, 59, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, 3, 6, 60, 1, 484, 485, 733, 24, 66, 25, 31, 26, 1, 9, 1, 1, 4, 28, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 734, 123, 124, 125, 96, 97, 735, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 24, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 737, 736, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 738, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 739, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 740, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 741, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 742, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 1, 67, 743, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 3, 67, 78, 12, -253, -253, -253, 23, 66, 6, 19, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -204, -204, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, 3, 6, 60, 29, 636, 637, 744, 3, 54, 5, 1, 745, 105, 106, 5, 6, 60, 1, 5, 23, -328, -328, -328, -328, -328, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 528, 746, -217, -217, -217, 5, 6, 60, 1, 5, 23, -329, -329, -329, -329, -329, 3, 54, 5, 1, 747, 105, 106, 5, 6, 60, 1, 5, 23, -353, -353, -353, -353, -353, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 535, 748, -217, -217, -217, 5, 6, 60, 1, 5, 23, -354, -354, -354, -354, -354, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, -345, 2, 66, 1, 547, 749, 50, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, 4, 93, 70, 2, 2, 750, 450, 452, 453, 11, 55, 1, 23, 1, 1, 7, 4, 10, 2, 25, 39, 151, 104, 153, 154, 152, 99, 751, 156, 155, 194, 193, 5, 6, 60, 1, 5, 23, -117, -117, -117, -117, -117, 3, 6, 60, 1, 560, 561, 752, 26, 6, 60, 1, 5, 19, 4, 53, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -116, -116, -116, -116, 126, -116, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 5, 6, 60, 1, 5, 23, -119, -119, -119, -119, -119, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -140, -140, -140, -140, -140, -140, -140, -140, -140, 22, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 753, 126, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 4, 59, 1, 2, 2, -61, -61, -61, -61, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, 124, 125, -282, -282, -282, 754, -282, -282, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, 755, -283, -283, -283, -283, -283, -283, -283, 124, 125, -283, -283, -283, -283, -283, -283, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 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, 124, 125, -287, -287, -287, -287, -287, -287, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -291, -291, 124, 125, -291, -291, -291, -291, -291, -291, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -295, -295, -295, -295, -295, -295, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 756, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 757, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 59, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 3, 6, 60, 1, 592, 593, 758, 6, 6, 60, 1, 5, 49, 3, -177, -177, -177, -177, -177, -177, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 759, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 760, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 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, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 761, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 762, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 1, 142, 763, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, 3, 6, 60, 1, 636, 637, 764, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, 3, 6, 60, 1, 644, 645, 765, 5, 6, 60, 1, 5, 31, -149, -149, -149, -149, -149, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 766, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 1, 93, 767, 5, 6, 60, 1, 5, 23, -113, -113, -113, -113, -113, 1, 85, 768, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 769, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 770, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, 124, 125, -289, -289, -289, -289, -289, -289, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 124, 125, -293, -293, -293, -293, -293, -293, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 5, 6, 60, 1, 5, 49, -198, -198, -198, -198, -198, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 771, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 23, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 159, 126, 772, 123, 124, 125, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, 3, 54, 5, 1, 773, 105, 106, 5, 6, 60, 1, 5, 23, -330, -330, -330, -330, -330, 5, 6, 60, 1, 5, 23, -355, -355, -355, -355, -355, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 1, 1, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -286, -286, -286, -286, -286, 776, -286, -286, -286, -286, 774, -286, 775, -286, -286, -286, -286, -286, -286, -286, 124, 125, -286, -286, -286, -286, -286, -286, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 777, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -141, -141, -141, -141, -141, -141, -141, -141, -141, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, 124, 125, -284, -284, -284, -284, -284, -284, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 42, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, 124, 125, -285, -285, -285, -285, -285, -285, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 41, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -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, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, 1, 95, 778, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 779, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 6, 6, 60, 1, 28, 8, 18, -218, -218, -218, -218, -218, -218, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 1, 1, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -288, -288, -288, -288, -288, 776, -288, -288, -288, -288, 780, -288, 781, -288, -288, -288, -288, -288, -288, -288, 124, 125, -288, -288, -288, -288, -288, -288, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 55, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 1, 1, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -287, -287, -287, -287, -287, 776, -287, -287, -287, -287, 782, -287, -287, -287, -287, -287, -287, -287, -287, -287, 124, 125, -287, -287, -287, -287, -287, -287, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 1, 95, 783, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 784, 162, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 166, 167, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 168, 169, 170, 46, 47, 48, 50, 51, 1, 95, 785, 55, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 1, 1, 1, 7, 2, 12, 4, 3, 14, 10, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -289, -289, -289, -289, -289, 776, -289, -289, -289, -289, 786, -289, -289, -289, -289, -289, -289, -289, -289, -289, 124, 125, -289, -289, -289, -289, -289, -289, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 55, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, 1, 95, 787, 55, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 10, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107], t = [], p = 0, n, o, k, a;
|
|
2742
|
+
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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 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, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 1, 1, 0, 2, 1, 5, -2, 107, 5, 1, 5, 59, 2, 71, -3, -3, -3, -3, -3, 31, 1, 5, 59, 1, 1, 5, 19, 12, 18, 17, 10, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -6, -6, -6, -6, -6, -6, 127, -6, -6, -6, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -7, -7, -7, -7, -7, -7, -7, -7, -7, 14, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 9, 1, 1, -8, -8, -8, -8, -8, -8, -8, -8, -8, 128, 129, 130, 96, 97, 54, 1, 5, 48, 5, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 3, 9, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -13, -13, 132, 105, 106, -13, -13, -13, -13, 135, 136, 137, -13, 138, -13, -13, -13, -13, -13, -13, -13, 133, -13, 139, -13, -13, 134, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 131, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, -13, 46, 1, 5, 59, 1, 1, 5, 10, 1, 1, 1, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -14, -14, -14, -14, -14, -14, 140, 141, 142, -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, -14, -14, -14, -14, -14, -14, -14, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -15, -15, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -16, -16, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -17, -17, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -18, -18, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -19, -19, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -20, -20, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -21, -21, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -22, -22, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -23, -23, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -24, -24, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -25, -25, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -26, -26, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -27, -27, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -28, -28, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -29, -29, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -30, -30, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -31, -31, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -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, 59, 1, 1, 5, 31, 18, 17, -33, -33, -33, -33, -33, -33, -33, -33, -33, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -34, -34, -34, -34, -34, -34, -34, -34, -34, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, -9, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, -10, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, -12, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -35, -35, -35, -35, -35, -35, -35, -35, 143, 144, 145, 146, 147, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, -40, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, -41, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, -42, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, -43, 18, 6, 49, 1, 10, 1, 5, 7, 1, 1, 7, 14, 2, 1, 15, 1, 3, 4, 1, -173, 152, 104, -173, -173, -173, 154, 155, 153, 99, 157, 156, 151, 148, -173, -173, 149, 150, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 4, 1, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 159, 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, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 160, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 158, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 161, 162, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 164, 165, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 166, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 172, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 173, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 174, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 175, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 45, 14, 1, 21, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 9, 1, 1, 1, 7, 14, 2, 3, 2, 14, 2, 1, 1, 7, 1, 1, 1, 53, 177, 178, 179, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 176, 72, 73, 93, 99, 83, 87, 84, 85, 167, 168, 90, 91, 86, 88, 89, 82, 171, 45, 14, 1, 21, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 9, 1, 1, 1, 7, 14, 2, 3, 2, 14, 2, 1, 1, 7, 1, 1, 1, 53, 177, 178, 179, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 180, 72, 73, 93, 99, 83, 87, 84, 85, 167, 168, 90, 91, 86, 88, 89, 82, 171, 60, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 1, 1, 1, 1, 1, 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, 181, 182, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, -86, 183, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 185, 184, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 186, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, 187, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, -232, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, -234, 2, 66, 56, 160, 188, 2, 66, 56, 160, 189, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 14, 39, 16, 1, 23, 1, 1, 7, 4, 5, 5, 2, 25, 37, 2, 193, 152, 104, 154, 155, 153, 99, 190, 191, 83, 156, 195, 192, 194, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 196, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 197, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 90, 1, 5, 8, 1, 21, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 1, 1, 1, 1, 3, 6, 1, 1, 1, 4, 3, 2, 1, 2, 2, 1, 6, 1, 1, 1, 2, 2, 8, 4, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 20, 2, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -304, -304, 177, 178, 179, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -304, 160, -304, 102, 103, -304, 200, 72, 73, 93, -304, 99, -304, -304, -304, -304, -304, 83, -304, 87, -304, 84, 85, -304, -304, 198, 167, -304, 168, 90, 91, 86, 88, 89, 82, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, 199, 171, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, -304, 1, 66, 201, 2, 66, 56, 160, 202, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 203, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 204, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 139, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 1, 1, 1, 1, 3, 5, 1, 1, 1, 1, 4, 3, 2, 1, 2, 2, 1, 6, 1, 1, 1, 2, 2, 8, 1, 3, 2, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -224, -224, 205, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -224, 206, -224, 102, 103, -224, 53, 52, 72, 73, 93, -224, 99, -224, -224, -224, -224, -224, 83, -224, 87, -224, 84, 85, -224, 66, -224, 167, -224, 168, 90, 91, 86, 88, 89, 82, -224, 69, 64, 65, 207, 54, 94, -224, 55, 95, -224, -224, 56, 60, 57, -224, -224, 58, 98, -224, -224, -224, 49, -224, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, -224, 2, 55, 1, 208, 104, 2, 55, 1, 209, 104, 6, 15, 19, 89, 2, 1, 1, 211, 210, 42, 43, 90, 91, 138, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 1, 1, 1, 1, 3, 5, 1, 1, 1, 1, 4, 3, 2, 1, 2, 2, 1, 6, 1, 1, 1, 2, 2, 8, 1, 3, 2, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -221, -221, 212, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -221, 213, -221, 102, 103, -221, 53, 52, 72, 73, 93, -221, 99, -221, -221, -221, -221, -221, 83, -221, 87, -221, 84, 85, -221, 66, -221, 167, -221, 168, 90, 91, 86, 88, 89, 82, -221, 69, 64, 65, 54, 94, -221, 55, 95, -221, -221, 56, 60, 57, -221, -221, 58, 98, -221, -221, -221, 49, -221, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, -221, 9, 54, 1, 1, 3, 1, 28, 89, 1, 5, 214, 218, 104, 105, 106, 217, 215, 216, 219, 60, 14, 1, 3, 1, 1, 1, 6, 1, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 14, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 32, 2, 1, 10, 4, 4, 177, 178, 226, 227, 228, 229, 221, 222, 223, 224, 232, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 225, 104, 105, 106, 102, 103, 53, 233, 72, 73, 93, 220, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 61, 67, 62, 230, 231, 171, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 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, -87, -87, -87, -87, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 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, -88, -88, -88, -88, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -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, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -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, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, -46, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 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, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, -47, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 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, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, -48, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, -49, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, -50, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, -51, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 234, 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, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 235, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 3, 5, 1, 1, 1, 1, 7, 3, 11, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 3, 5, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 236, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 242, 102, 103, 243, 53, 52, 72, 73, 93, 99, 59, 83, 237, 87, 247, 84, 85, 238, 239, 241, 244, 240, 66, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 4, 82, 2, 24, 11, 249, 250, 248, 139, 2, 108, 11, 251, 139, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, -205, 54, 1, 5, 51, 1, 1, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -206, -206, 252, 253, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, -206, 1, 82, 254, 1, 82, 255, 54, 11, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 6, 2, 1, 8, 11, 3, 11, 2, 3, 2, 9, 5, 3, 1, 7, 1, 1, 1, 2, 1, 1, 3, 3, 3, 4, 5, 1, 2, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 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, 54, 11, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 6, 2, 1, 8, 11, 3, 11, 2, 3, 2, 9, 5, 3, 1, 7, 1, 1, 1, 2, 1, 1, 3, 3, 3, 4, 5, 1, 2, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 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, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 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, -89, -89, -89, -89, -89, -89, -89, -89, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 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, -90, -90, -90, -90, -90, -90, -90, -90, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 256, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 257, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 258, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 259, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 4, 1, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 261, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 160, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 260, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 23, 6, 39, 8, 1, 1, 1, 1, 1, 1, 1, 6, 1, 5, 9, 8, 6, 3, 1, 1, 1, 1, 2, 1, -109, 267, 100, 101, 269, 104, 270, 253, 105, 106, -109, -109, -109, 271, 262, -109, 263, 268, 272, 264, 265, 266, 273, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 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, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, -64, 45, 14, 1, 21, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 9, 1, 1, 1, 7, 14, 2, 3, 2, 14, 2, 1, 1, 7, 1, 1, 1, 53, 177, 178, 179, 34, 35, 36, 274, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 233, 72, 73, 93, 99, 83, 87, 84, 85, 167, 168, 90, 91, 86, 88, 89, 82, 171, 63, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 4, 3, 3, 1, 10, 1, 3, 1, 1, 2, 3, 11, 11, 1, 1, 1, 1, 1, 1, 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, -54, -54, -54, -54, -54, -54, 55, 1, 5, 53, 1, 2, 2, 1, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 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, 6, 54, 5, 1, 1, 2, 1, 278, 105, 106, 275, 276, 277, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 2, 1, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -5, 279, -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, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -5, -5, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, -5, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 280, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 281, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 282, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 283, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 284, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 285, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 286, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 287, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 288, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 291, 163, 289, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 290, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 294, 163, 292, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 293, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 297, 163, 295, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 296, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 298, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 299, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 300, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 301, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 302, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 303, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 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, 14, 39, 16, 1, 23, 1, 1, 7, 4, 5, 5, 2, 25, 37, 2, 307, 152, 104, 154, 155, 153, 99, 304, 305, 83, 156, 195, 306, 194, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 308, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 309, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 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, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -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, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, -375, 53, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, 53, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, 2, 108, 11, 310, 139, 2, 57, 1, 311, 253, 2, 57, 1, 312, 253, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 2, 6, 1, 1, 1, 1, 5, 2, 3, 11, 2, 1, 2, 2, 7, 1, 1, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 313, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 318, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 314, 102, 103, 316, 53, 52, 72, 73, 93, 315, 99, 59, 83, 87, 320, 84, 85, 317, 319, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 84, 321, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 1, 2, 2, 5, 4, 3, 2, 2, 1, 1, 3, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 325, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 247, 84, 85, 324, 66, 322, 42, 43, 90, 91, 246, 323, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 2, 57, 1, 327, 253, 2, 57, 1, 328, 253, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 329, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 330, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 332, 331, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 333, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 335, 334, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 336, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 338, 337, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 339, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 341, 340, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 342, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 344, 343, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 345, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 9, 6, 60, 1, 5, 22, 1, 8, 18, 3, -217, -217, -217, 347, 348, -217, -217, -217, 346, 6, 6, 60, 1, 5, 49, 3, -174, -174, -174, -174, -174, -174, 7, 6, 60, 1, 5, 1, 48, 3, -178, -178, -178, -178, 349, -178, -178, 15, 6, 49, 1, 10, 1, 5, 7, 1, 1, 7, 14, 2, 17, 3, 5, -181, 152, 104, -181, -181, -181, 154, 155, 153, 99, 157, 156, -181, -181, 350, 11, 6, 60, 1, 5, 1, 20, 28, 3, 39, 2, 2, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, -182, 11, 6, 60, 1, 5, 1, 20, 28, 3, 39, 2, 2, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, -183, 11, 6, 60, 1, 5, 1, 20, 28, 3, 39, 2, 2, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, -184, 11, 6, 60, 1, 5, 1, 20, 28, 3, 39, 2, 2, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, 2, 57, 1, 252, 253, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 3, 5, 1, 1, 1, 1, 7, 3, 11, 1, 1, 1, 2, 2, 1, 1, 2, 1, 1, 3, 5, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 242, 102, 103, 243, 53, 52, 72, 73, 93, 99, 59, 83, 237, 87, 247, 84, 85, 238, 239, 241, 244, 240, 66, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 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, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -170, -170, -170, -170, -170, -170, -170, -170, -170, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 7, 1, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 352, 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, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 351, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -370, -370, 125, 126, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, -370, 118, -370, 120, -370, -370, -370, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -367, -367, -367, -367, -367, -367, -367, -367, -367, 5, 148, 1, 9, 1, 1, 128, 129, 130, 96, 97, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -371, -371, 125, 126, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, -371, 118, -371, 120, -371, -371, -371, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -368, -368, -368, -368, -368, -368, -368, -368, -368, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -372, -372, 125, 126, -372, -372, -372, -372, -372, -372, -372, -372, -372, 111, -372, -372, -372, -372, -372, -372, 118, -372, 120, -372, -372, -372, 18, 6, 49, 1, 10, 1, 5, 7, 1, 1, 7, 14, 2, 1, 15, 1, 3, 4, 1, -173, 152, 104, -173, -173, -173, 154, 155, 153, 99, 157, 156, 151, 353, -173, -173, 149, 150, 2, 66, 56, 160, 158, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 161, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 164, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 5, 15, 108, 2, 1, 1, 211, 167, 168, 90, 91, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -373, -373, 125, 126, -373, -373, -373, -373, -373, -373, -373, -373, -373, 111, -373, -373, -373, -373, -373, -373, 118, -373, 120, -373, -373, -373, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 125, 126, -374, -374, -374, -374, -374, -374, -374, -374, -374, 111, -374, -374, -374, -374, -374, -374, 118, -374, 120, -374, -374, -374, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, 125, 126, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, -376, 118, -376, 120, -376, -376, -376, 2, 80, 8, 354, 99, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -378, -378, -86, -86, -378, -378, -378, -378, -86, -86, -86, -86, -86, -86, -86, -86, -378, -86, -378, -378, -378, -378, -378, -378, -378, -378, -86, -378, -378, -86, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -86, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, -378, 10, 54, 5, 1, 22, 1, 1, 3, 21, 11, 12, 132, 105, 106, 135, 136, 137, 138, 133, 139, 134, 3, 82, 1, 1, 140, 141, 142, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -379, -379, -86, -86, -379, -379, -379, -379, -86, -86, -86, -86, -86, -86, -86, -86, -379, -86, -379, -379, -379, -379, -379, -379, -379, -379, -86, -379, -379, -86, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -86, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, -379, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, -380, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, -381, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 357, 355, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 356, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -83, -83, -83, -83, -83, -83, -83, -83, 127, -83, -83, -83, -83, -83, -83, -83, -83, -83, -83, 124, 125, 126, 96, 97, -83, -83, -83, -83, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 358, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 359, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 3, 66, 56, 22, 160, 360, 361, 46, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 2, 1, 1, 6, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, 362, 363, 364, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, -240, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 4, 93, 70, 2, 2, 366, 365, 367, 368, 11, 55, 1, 23, 1, 1, 7, 4, 10, 2, 25, 39, 152, 104, 154, 155, 153, 99, 369, 157, 156, 195, 194, 11, 55, 1, 23, 1, 1, 7, 4, 10, 2, 25, 39, 152, 104, 154, 155, 153, 99, 370, 157, 156, 195, 194, 3, 66, 56, 42, 160, 371, 372, 5, 72, 21, 70, 2, 2, 373, -302, -302, -302, -302, 6, 72, 1, 20, 70, 2, 2, -300, 374, -300, -300, -300, -300, 23, 66, 25, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 375, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 3, 155, 1, 1, 376, 377, 378, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, -305, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 379, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 59, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 1, 2, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -308, -308, -86, -86, -308, 160, -308, -308, -86, -86, -86, -86, -86, -86, -86, -86, -308, -86, -308, -308, -308, -308, -308, -308, -308, -308, -86, -308, 380, -308, -86, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, 381, -308, -308, -86, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, -308, 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, 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, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 1, 1, 1, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 384, 385, 386, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 382, 383, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -320, -320, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, -222, 125, 126, -222, -222, -222, -222, -222, -222, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 80, 8, 387, 99, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, -225, 125, 126, -225, -225, -225, -225, -225, -225, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 80, 8, 388, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 389, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 3, 66, 53, 3, 160, 390, 391, 2, 66, 56, 160, 392, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -369, -369, -369, -369, -369, -369, -369, -369, -369, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, -407, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, 125, 126, -219, -219, -219, -219, -219, -219, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 80, 8, 393, 99, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, -321, 2, 72, 70, 395, 394, 1, 142, 396, 7, 55, 1, 10, 29, 84, 1, 2, 401, 104, 400, 397, 398, 399, 402, 2, 72, 70, -337, -337, 1, 181, 403, 26, 6, 39, 8, 1, 1, 1, 1, 1, 1, 1, 6, 1, 5, 9, 8, 6, 3, 1, 1, 1, 1, 2, 1, 77, 3, 2, -109, 267, 100, 101, 408, 104, 270, 253, 105, 106, 407, -109, -109, 271, 262, 404, 263, 268, 272, 264, 265, 266, 273, 409, 405, 406, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, -341, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, -342, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, -343, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, -344, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -89, -89, -89, -89, -89, -89, -89, -89, 410, -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, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, -348, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, -349, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, -350, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -351, -351, -351, -351, -351, -351, -351, -351, -351, -351, -351, -351, -351, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 411, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 412, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 142, 413, 56, 1, 5, 53, 1, 5, 1, 1, 5, 2, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -35, -35, -35, -35, -35, -35, -35, -35, 144, 145, 146, 147, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 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, -86, -86, -86, -86, 2, 6, 132, 107, 414, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 415, 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, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 31, 6, 60, 1, 5, 19, 12, 2, 11, 1, 4, 27, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -199, -199, -199, -199, 127, -199, 320, 416, 319, -199, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 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, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 3, 5, 1, 1, 1, 1, 7, 3, 11, 1, 1, 1, 2, 2, 5, 1, 3, 5, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 243, 53, 52, 72, 73, 93, 99, 59, 83, 417, 87, 247, 84, 85, 419, 418, 66, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 9, 6, 60, 1, 5, 22, 1, 8, 9, 9, -217, -217, -217, 421, 422, -217, -217, 420, -217, 59, 6, 5, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 6, 1, 1, 1, 3, 5, 11, 3, 11, 1, 1, 1, 2, 2, 9, 5, 3, 1, 7, 1, 1, 1, 2, 1, 1, 3, 3, 3, 4, 5, 1, 2, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 423, -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, 5, 6, 60, 1, 5, 31, -145, -145, -145, -145, -145, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 3, 5, 1, 1, 1, 1, 7, 3, 11, 2, 1, 2, 2, 1, 1, 2, 1, 1, 3, 5, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 242, 102, 103, 243, 53, 52, 72, 73, 93, 99, 59, 83, 87, 247, 84, 85, 425, 424, 241, 244, 240, 66, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 59, 6, 5, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 6, 1, 1, 1, 3, 5, 11, 3, 11, 1, 1, 1, 2, 2, 9, 5, 3, 1, 7, 1, 1, 1, 2, 1, 1, 3, 3, 3, 4, 5, 1, 2, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 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, 5, 6, 60, 1, 5, 31, -150, -150, -150, -150, -150, 6, 6, 60, 1, 5, 31, 18, -200, -200, -200, -200, -200, -200, 6, 6, 60, 1, 5, 31, 18, -201, -201, -201, -201, -201, -201, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 1, 1, 1, 3, 5, 1, 1, 1, 1, 7, 3, 11, 1, 1, 3, 2, 9, 3, 2, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -202, 426, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -202, -202, 102, 103, -202, 53, 52, 72, 73, 93, 99, 59, 83, -202, 87, 84, 85, 66, -202, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 53, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, 2, 57, 1, 427, 253, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 428, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 429, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 53, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, -207, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 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, 2, 57, 1, 430, 253, 2, 57, 1, 431, 253, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 432, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 433, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -255, -255, -255, -255, -255, -255, -255, -255, 127, -255, -255, 434, -255, -255, -255, -255, -255, -255, -255, -255, 125, 126, 96, 97, -255, -255, -255, -255, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -257, -257, -257, -257, -257, -257, -257, -257, 127, -257, -257, 435, -257, -257, -257, -257, -257, -257, -257, -257, 125, 126, 96, 97, -257, -257, -257, -257, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, -263, 45, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 1, 2, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -264, -264, -264, 160, -264, -264, -264, -264, 127, -264, -264, -264, -264, -264, -264, -264, 436, -264, -264, -264, -264, 125, 126, 96, 97, -264, -264, -264, -264, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 6, 6, 60, 1, 5, 18, 5, -114, -114, -114, -114, 437, -114, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 439, 438, -217, -217, -217, 7, 6, 60, 1, 5, 1, 17, 5, -123, -123, -123, -123, 440, -123, -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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 441, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 3, 57, 1, 44, 252, 253, 442, 6, 6, 60, 1, 5, 18, 5, -126, -126, -126, -126, -126, -126, 5, 6, 60, 1, 5, 23, -110, -110, -110, -110, -110, 11, 6, 60, 1, 5, 1, 9, 1, 1, 6, 5, 24, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, -120, 11, 6, 60, 1, 5, 1, 9, 1, 1, 6, 5, 24, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, -121, 11, 6, 60, 1, 5, 1, 9, 1, 1, 6, 5, 24, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, 5, 6, 60, 1, 5, 23, -115, -115, -115, -115, -115, 17, 38, 4, 1, 12, 1, 1, 1, 22, 1, 7, 13, 3, 2, 1, 2, 25, 3, 446, 448, 447, 269, 104, 270, 253, 445, 271, 99, 443, 87, 444, 449, 450, 86, 82, 53, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -39, -39, -39, -39, -39, -39, -39, 451, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, -39, 6, 54, 5, 1, 2, 1, 1, 278, 105, 106, 452, 453, 277, 4, 59, 1, 2, 2, -58, -58, -58, -58, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 5, 1, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 454, 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, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 456, 455, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 4, 59, 1, 2, 2, -63, -63, -63, -63, 5, 1, 5, 59, 2, 71, -4, -4, -4, -4, -4, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -382, -382, 125, 126, -382, -382, -382, -382, -382, -382, -382, -382, 110, 111, -382, -382, -382, -382, -382, -382, 118, -382, 120, -382, -382, -382, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -383, -383, 125, 126, -383, -383, -383, -383, -383, -383, -383, -383, 110, 111, -383, -383, -383, -383, -383, -383, 118, -383, 120, -383, -383, -383, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -384, -384, 125, 126, -384, -384, -384, -384, -384, -384, -384, -384, -384, 111, -384, -384, -384, -384, -384, -384, 118, -384, 120, -384, -384, -384, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -385, -385, 125, 126, -385, -385, -385, -385, -385, -385, -385, -385, -385, 111, -385, -385, -385, -385, -385, -385, 118, -385, 120, -385, -385, -385, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -386, -386, 125, 126, -386, -386, -386, -386, -386, -386, 109, 108, 110, 111, -386, -386, -386, -386, -386, -386, 118, -386, 120, -386, -386, -386, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -387, -387, 125, 126, -387, -387, -387, -387, -387, -387, 109, 108, 110, 111, 112, -387, -387, -387, -387, -387, 118, -387, 120, -387, 122, -387, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -388, -388, 125, 126, -388, -388, -388, -388, -388, -388, 109, 108, 110, 111, 112, 113, -388, -388, -388, -388, 118, -388, 120, -388, 122, -388, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -389, -389, 125, 126, -389, -389, -389, -389, -389, -389, 109, 108, 110, 111, 112, 113, 114, -389, -389, -389, 118, -389, 120, -389, 122, -389, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -390, -390, 125, 126, -390, -390, -390, -390, -390, -390, 109, 108, 110, 111, 112, 113, 114, 115, -390, -390, 118, -390, 120, -390, 122, -390, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -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, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -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, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 125, 126, -398, -398, -398, -398, -398, -398, 109, 108, 110, 111, 112, 113, 114, 115, 116, -398, 118, 119, 120, -398, 122, -398, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, -393, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, -394, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -399, -399, -399, -399, -399, -399, -399, -399, 127, -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, 124, 125, 126, 96, 97, -399, -399, -399, -399, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -396, -396, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -397, -397, 125, 126, -397, -397, -397, -397, -397, -397, 109, 108, 110, 111, 112, 113, 114, 115, 116, -397, 118, -397, 120, -397, 122, -397, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -400, -400, -400, -400, -400, -400, -400, -400, 127, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, 124, 125, 126, 96, 97, -400, -400, -400, -400, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, -401, 125, 126, -401, -401, -401, -401, -401, -401, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, -401, 122, -401, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, -402, 125, 126, -402, -402, -402, -402, -402, -402, 109, 108, 110, 111, 112, -402, -402, -402, -402, -402, 118, -402, 120, -402, -402, -402, 23, 90, 1, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 457, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -236, -236, -236, -236, -236, -236, -236, -236, 127, -236, -236, -236, -236, -236, -236, -236, -236, -236, 458, -236, 125, 126, 96, 97, -236, -236, -236, -236, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -239, -239, -239, -239, -239, -239, -239, -239, 127, -239, -239, -239, -239, -239, -239, -239, -239, -239, -239, 124, 125, 126, 96, 97, -239, -239, -239, -239, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 4, 93, 70, 2, 2, 460, 459, 461, 462, 11, 55, 1, 23, 1, 1, 7, 4, 10, 2, 25, 39, 152, 104, 154, 155, 153, 99, 463, 157, 156, 195, 194, 11, 55, 1, 23, 1, 1, 7, 4, 10, 2, 25, 39, 152, 104, 154, 155, 153, 99, 464, 157, 156, 195, 194, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -298, -298, -298, -298, -298, -298, 465, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, -298, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -235, -235, -235, -235, -235, -235, -235, -235, 127, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, -235, 125, 126, 96, 97, -235, -235, -235, -235, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -238, -238, -238, -238, -238, -238, -238, -238, 127, -238, -238, -238, -238, -238, -238, -238, -238, -238, -238, 124, 125, 126, 96, 97, -238, -238, -238, -238, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 53, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 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, -91, -91, -91, -91, -91, -91, -91, -91, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, -92, 26, 85, 6, 14, 11, 1, 31, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 466, 127, 320, 467, 319, 124, 125, 126, 96, 97, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 5, 2, 3, 11, 2, 1, 2, 2, 7, 1, 1, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 468, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 469, 99, 59, 83, 87, 320, 84, 85, 317, 319, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 85, 470, 1, 85, 471, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 7, 1, 1, 8, 1, 1, 1, 1, 4, 3, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 472, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -164, 102, 103, 53, 52, 72, 73, 93, -164, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -46, -46, -46, -46, -46, -46, -46, 473, -46, -46, -46, -67, -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, 55, 11, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 7, 1, 1, 8, 8, 3, 3, 11, 2, 3, 2, 9, 5, 3, 1, 7, 1, 1, 1, 2, 1, 1, 3, 3, 3, 4, 5, 1, 2, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 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, 55, 11, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 7, 1, 1, 8, 8, 3, 3, 11, 2, 3, 2, 9, 5, 3, 1, 7, 1, 1, 1, 2, 1, 1, 3, 3, 3, 4, 5, 1, 2, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 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, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 474, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 475, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 53, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 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, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 477, 476, -217, -217, -217, 5, 6, 60, 1, 5, 49, -194, -194, -194, -194, -194, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 1, 2, 2, 5, 4, 5, 2, 1, 1, 3, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 325, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 247, 84, 85, 324, 66, 42, 43, 90, 91, 246, 478, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 28, 6, 60, 1, 5, 19, 12, 18, 27, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -199, -199, -199, -199, 127, -199, -199, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, 23, 85, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 479, 127, 124, 125, 126, 96, 97, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 480, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 125, 126, -68, -68, -68, -68, -68, -68, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 481, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 482, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -71, -71, -71, -71, -71, -71, -71, -71, 127, -71, -71, -71, -71, -71, -71, -71, -71, -71, -71, 124, 125, 126, 96, 97, -71, -71, -71, -71, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 483, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 484, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -74, -74, -74, -74, -74, -74, -74, -74, 127, -74, -74, -74, -74, -74, -74, -74, -74, -74, -74, 124, 125, 126, 96, 97, -74, -74, -74, -74, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 485, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 486, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -77, -77, -77, -77, -77, -77, -77, -77, 127, -77, -77, -77, -77, -77, -77, -77, -77, -77, -77, 124, 125, 126, 96, 97, -77, -77, -77, -77, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 487, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 488, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -80, -80, -80, -80, -80, -80, -80, -80, 127, -80, -80, -80, -80, -80, -80, -80, -80, -80, -80, 124, 125, 126, 96, 97, -80, -80, -80, -80, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 489, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 490, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 3, 125, 1, 1, 491, 90, 91, 17, 6, 49, 1, 10, 1, 12, 1, 1, 7, 7, 7, 1, 1, 1, 16, 7, 1, -218, 152, 104, -218, -218, 154, 155, 153, 99, -218, 157, -218, 156, 151, -218, 492, 150, 2, 6, 60, 493, 494, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 495, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 6, 6, 60, 1, 5, 49, 3, -180, -180, -180, -180, -180, -180, 55, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 3, 1, 4, 2, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 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, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, 2, 6, 61, 107, 496, 9, 6, 60, 1, 5, 22, 1, 8, 18, 3, -217, -217, -217, 347, 348, -217, -217, -217, 497, 1, 67, 498, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, -404, 125, 126, -404, -404, -404, -404, -404, -404, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 499, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 500, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -84, -84, -84, -84, -84, -84, -84, -84, 127, -84, -84, -84, -84, -84, -84, -84, -84, -84, -84, 124, 125, 126, 96, 97, -84, -84, -84, -84, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 501, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, -233, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 502, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 3, 7, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, 503, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, -241, 2, 66, 56, 160, 504, 6, 55, 1, 10, 14, 8, 34, 505, 104, 160, 506, 99, 507, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 508, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 509, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 510, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 511, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 93, 512, 1, 165, 513, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, -281, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 514, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 10, 55, 1, 23, 1, 1, 7, 14, 2, 25, 39, 152, 104, 154, 155, 153, 99, 157, 156, 195, 515, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 516, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 3, 155, 1, 1, 517, 377, 378, 4, 67, 78, 11, 1, 518, 519, 520, 378, 3, 67, 78, 12, -251, -251, -251, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 6, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 522, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 521, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 45, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 1, 2, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -306, -306, -306, 160, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, -306, 523, -306, -306, -306, -306, 125, 126, -306, -306, -306, -306, -306, -306, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -309, -309, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 524, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 2, 6, 61, 526, 525, 2, 6, 61, -314, -314, 24, 6, 61, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -317, -317, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 6, 61, -318, -318, 7, 6, 61, 81, 1, 9, 1, 1, -319, -319, 128, 129, 130, 96, 97, 1, 67, 527, 1, 67, 528, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, -227, 125, 126, -227, -227, -227, -227, -227, -227, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 18, 6, 49, 1, 10, 1, 5, 7, 1, 1, 7, 14, 2, 1, 15, 1, 3, 4, 1, -173, 152, 104, -173, -173, -173, 154, 155, 153, 99, 157, 156, 151, 529, -173, -173, 149, 150, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -312, -312, 1, 67, 530, 3, 54, 5, 1, 531, 105, 106, 3, 88, 90, 5, 533, 532, 219, 3, 54, 5, 1, 534, 105, 106, 1, 142, 535, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 537, 536, -217, -217, -217, 5, 6, 60, 1, 5, 23, -328, -328, -328, -328, -328, 6, 55, 1, 10, 113, 1, 2, 401, 104, 400, 538, 399, 402, 6, 6, 60, 1, 5, 23, 86, -333, -333, -333, -333, -333, 539, 6, 6, 60, 1, 5, 23, 86, -335, -335, -335, -335, -335, 540, 2, 55, 1, 541, 104, 14, 1, 5, 59, 1, 1, 5, 31, 18, 17, 4, 6, 1, 10, 1, -339, -339, -339, -339, -339, -339, -339, -339, -339, 542, -339, -339, -339, -339, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 544, 543, -217, -217, -217, 5, 6, 60, 1, 5, 23, -357, -357, -357, -357, -357, 6, 55, 1, 10, 116, 3, 2, 546, 104, 407, 409, 545, 406, 12, 6, 60, 1, 5, 1, 9, 1, 1, 6, 5, 24, 62, -362, -362, -362, -362, -120, -120, -120, -120, -120, -362, -120, 547, 6, 6, 60, 1, 5, 23, 86, -365, -365, -365, -365, -365, 548, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 550, 549, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 551, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 31, 1, 5, 59, 1, 1, 5, 19, 12, 18, 17, 10, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -352, -352, -352, -352, -352, -352, 127, -352, -352, -352, -352, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 80, 8, 552, 99, 3, 54, 5, 1, 553, 105, 106, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 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, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, 2, 6, 61, 107, 554, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 555, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 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, 59, 6, 5, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 6, 1, 1, 1, 3, 5, 11, 3, 11, 1, 1, 1, 2, 2, 9, 5, 3, 1, 7, 1, 1, 1, 2, 1, 1, 3, 3, 3, 4, 5, 1, 2, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 423, -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, 5, 6, 60, 1, 5, 31, -151, -151, -151, -151, -151, 2, 66, 37, 557, 556, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 1, 1, 1, 3, 5, 1, 1, 1, 1, 7, 3, 4, 7, 1, 1, 1, 2, 2, 1, 3, 1, 1, 3, 3, 2, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -218, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -218, -218, 102, 103, 243, 53, 52, 72, 73, 93, 99, 59, -218, 83, -218, 87, 247, 84, 85, 559, 558, 244, 240, 66, -218, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 4, 6, 60, 1, 36, 560, -152, -152, -152, 59, 6, 5, 35, 2, 1, 1, 1, 1, 1, 3, 3, 1, 6, 1, 1, 1, 3, 5, 11, 3, 11, 1, 1, 1, 2, 2, 9, 5, 3, 1, 7, 1, 1, 1, 2, 1, 1, 3, 3, 3, 4, 5, 1, 2, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 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, 9, 6, 60, 1, 5, 22, 1, 8, 9, 9, -217, -217, -217, 421, 422, -217, -217, 561, -217, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 3, 5, 1, 1, 1, 1, 7, 3, 11, 2, 1, 2, 2, 5, 1, 3, 5, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 243, 53, 52, 72, 73, 93, 99, 59, 83, 87, 247, 84, 85, 419, 418, 66, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 28, 6, 60, 1, 5, 19, 12, 18, 27, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -186, -186, -186, -186, 127, -186, -186, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, 23, 85, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 562, 127, 124, 125, 126, 96, 97, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 563, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 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, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, -211, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, -212, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, -228, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, 564, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, -230, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 565, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 566, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 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, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 567, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 568, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 3, 6, 60, 29, 570, 571, 569, 23, 6, 39, 8, 1, 1, 1, 1, 1, 1, 1, 6, 1, 14, 8, 6, 4, 1, 1, 1, 1, 1, 1, 16, -218, 267, 100, 101, 269, 104, 270, 253, 105, 106, -218, -218, 271, 573, -218, 572, 272, 264, 265, -218, 266, 273, -218, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 574, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 575, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 23, 91, 12, 45, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 127, 576, 124, 125, 126, 96, 97, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 577, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 10, 6, 60, 1, 5, 10, 1, 1, 11, 13, 11, -127, -127, -127, -127, -129, -129, -129, -127, 578, 139, 10, 6, 60, 1, 5, 10, 1, 1, 11, 13, 11, -128, -128, -128, -128, 580, 581, 582, -128, 579, 139, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -130, -130, -130, -130, -130, -130, -130, -130, -130, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -131, -131, -131, -131, -131, -131, -131, -131, -131, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -132, -132, -132, -132, -132, -132, -132, -132, -132, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -133, -133, -133, -133, -133, -133, -133, -133, -133, 4, 82, 2, 24, 11, 249, 250, 583, 139, 2, 108, 11, 584, 139, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, -65, 55, 1, 5, 53, 1, 2, 2, 1, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 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, -57, -57, 4, 59, 1, 2, 2, -59, -59, -59, -59, 2, 6, 59, 107, 585, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 586, 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, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 4, 59, 1, 2, 2, -62, -62, -62, -62, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 587, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 66, 588, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 589, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 590, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 591, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 592, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 93, 593, 1, 165, 594, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 595, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, -93, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 7, 1, 1, 8, 1, 1, 1, 1, 4, 3, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 596, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -162, 102, 103, 53, 52, 72, 73, 93, -162, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 26, 67, 24, 14, 11, 1, 31, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 597, 127, 320, 467, 319, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 1, 67, 598, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, -95, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, -97, 24, 67, 18, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -163, -163, 127, 124, 125, 126, 96, 97, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 599, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 23, 85, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 600, 127, 124, 125, 126, 96, 97, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 601, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 3, 6, 60, 55, 603, 604, 602, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 1, 1, 1, 8, 1, 1, 1, 1, 7, 3, 4, 7, 1, 1, 1, 2, 2, 5, 4, 3, 2, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -218, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -218, -218, 102, 103, 53, 52, 72, 73, 93, 99, 59, -218, 83, -218, 87, 247, 84, 85, 605, 66, -218, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 477, 606, -217, -217, -217, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, -102, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 607, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 125, 126, -69, -69, -69, -69, -69, -69, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 608, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -72, -72, -72, -72, -72, -72, -72, -72, 127, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, 124, 125, 126, 96, 97, -72, -72, -72, -72, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 609, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -75, -75, -75, -75, -75, -75, -75, -75, 127, -75, -75, -75, -75, -75, -75, -75, -75, -75, -75, 124, 125, 126, 96, 97, -75, -75, -75, -75, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 610, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -78, -78, -78, -78, -78, -78, -78, -78, 127, -78, -78, -78, -78, -78, -78, -78, -78, -78, -78, 124, 125, 126, 96, 97, -78, -78, -78, -78, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 611, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -81, -81, -81, -81, -81, -81, -81, -81, 127, -81, -81, -81, -81, -81, -81, -81, -81, -81, -81, 124, 125, 126, 96, 97, -81, -81, -81, -81, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 612, 127, 124, 125, 126, 96, 97, 109, 108, 110, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 4, 1, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 614, 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, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 160, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 613, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 6, 6, 60, 1, 5, 49, 3, -175, -175, -175, -175, -175, -175, 11, 55, 1, 23, 1, 1, 7, 14, 2, 1, 23, 1, 152, 104, 154, 155, 153, 99, 157, 156, 151, 615, 150, 18, 6, 49, 1, 10, 1, 5, 7, 1, 1, 7, 14, 2, 1, 15, 1, 3, 4, 1, -173, 152, 104, -173, -173, -173, 154, 155, 153, 99, 157, 156, 151, 616, -173, -173, 149, 150, 28, 6, 60, 1, 5, 19, 30, 3, 24, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -179, -179, -179, -179, 127, -179, -179, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 55, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 3, 1, 4, 2, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, -214, 3, 125, 1, 1, 617, 90, 91, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -377, -377, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 618, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, -406, 125, 126, -406, -406, -406, -406, -406, -406, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 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, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 619, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 66, 56, 160, 620, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, -242, 2, 66, 56, 160, 621, 2, 66, 56, 160, 622, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 3, 7, 1, 3, 1, 1, 2, 25, 1, 4, 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, 26, 66, 25, 5, 26, 26, 1, 9, 1, 1, 4, 28, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 624, 623, 124, 125, 126, 96, 97, 625, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 25, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 627, 626, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 25, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 629, 628, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 25, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 631, 630, 124, 125, 126, 96, 97, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 632, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 633, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 634, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 4, 93, 70, 2, 2, -303, -303, -303, -303, 27, 72, 19, 2, 55, 1, 9, 1, 1, 3, 2, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -301, 127, -301, 124, 125, 126, 96, 97, -301, -301, -301, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 4, 67, 78, 11, 1, 635, 636, 520, 378, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 2, 66, 56, 160, 637, 3, 67, 78, 12, -252, -252, -252, 3, 66, 6, 50, 160, 639, 638, 24, 66, 6, 19, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -203, -203, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -307, -307, 45, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 1, 2, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -310, -310, -310, 160, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, -310, 640, -310, -310, -310, -310, 125, 126, -310, -310, -310, -310, -310, -310, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -313, -313, 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, 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, 1, 7, 1, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 2, 1, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, -316, 384, 385, 386, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -316, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 42, 43, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 641, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, -223, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, -226, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 347, 348, -217, -217, 642, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, -220, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, -322, 1, 142, 643, 6, 55, 1, 10, 113, 1, 2, 401, 104, 400, 644, 399, 402, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, -323, 3, 54, 5, 1, 645, 105, 106, 3, 6, 60, 29, 647, 648, 646, 10, 6, 49, 1, 10, 1, 28, 8, 18, 59, 2, -218, 401, 104, -218, -218, -218, -218, -218, 649, 402, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 537, 650, -217, -217, -217, 2, 55, 1, 651, 104, 2, 55, 1, 652, 104, 1, 142, -338, 3, 54, 5, 1, 653, 105, 106, 3, 6, 60, 29, 655, 656, 654, 10, 6, 49, 1, 10, 1, 28, 8, 18, 61, 5, -218, 546, 104, -218, -218, -218, -218, -218, 409, 657, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 544, 658, -217, -217, -217, 6, 6, 60, 1, 5, 23, 86, -362, -362, -362, -362, -362, 547, 3, 55, 1, 126, 659, 104, 660, 2, 55, 1, 661, 104, 31, 1, 5, 59, 1, 1, 5, 19, 12, 18, 17, 10, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -345, -345, -345, -345, -345, -345, 127, -345, -345, -345, -345, 125, 126, -345, -345, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 662, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 663, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 67, 664, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, -354, 1, 138, 665, 23, 91, 12, 45, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 127, 666, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 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, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 3, 5, 1, 1, 1, 1, 7, 3, 11, 2, 1, 2, 2, 1, 1, 2, 1, 1, 3, 5, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 242, 102, 103, 243, 53, 52, 72, 73, 93, 99, 59, 83, 87, 247, 84, 85, 425, 667, 241, 244, 240, 66, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 5, 6, 60, 1, 5, 31, -146, -146, -146, -146, -146, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 1, 1, 1, 3, 5, 1, 1, 1, 1, 7, 3, 11, 1, 1, 1, 2, 2, 5, 1, 3, 5, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, -153, -153, 102, 103, 243, 53, 52, 72, 73, 93, 99, 59, 83, -153, 87, 247, 84, 85, 419, 418, 66, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 3, 5, 1, 1, 1, 1, 7, 3, 11, 2, 1, 2, 2, 1, 3, 1, 1, 3, 5, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 243, 53, 52, 72, 73, 93, 99, 59, 83, 87, 247, 84, 85, 425, 668, 244, 240, 66, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 2, 66, 1, 557, 669, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, -209, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 670, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 2, 66, 56, 160, 671, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 125, 126, -256, -256, -256, -256, -256, -256, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 125, 126, -258, -258, -258, -258, -258, -258, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 27, 6, 60, 1, 5, 19, 4, 53, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -116, -116, -116, -116, 672, -116, 124, 125, 126, 96, 97, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 673, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, -108, 17, 45, 8, 1, 1, 1, 1, 1, 1, 1, 21, 8, 10, 1, 1, 1, 2, 1, 267, 100, 101, 269, 104, 270, 253, 105, 106, 271, 573, 674, 272, 264, 265, 266, 273, 23, 6, 39, 8, 1, 1, 1, 1, 1, 1, 1, 6, 1, 5, 9, 8, 6, 3, 1, 1, 1, 1, 2, 1, -109, 267, 100, 101, 269, 104, 270, 253, 105, 106, -109, -109, -109, 271, 573, -109, 675, 268, 272, 264, 265, 266, 273, 5, 6, 60, 1, 5, 23, -111, -111, -111, -111, -111, 6, 6, 60, 1, 5, 18, 5, -114, -114, -114, -114, 676, -114, 27, 6, 60, 1, 5, 19, 4, 53, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -118, -118, -118, -118, 127, -118, 124, 125, 126, 96, 97, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 677, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 6, 6, 60, 1, 5, 18, 5, -124, -124, -124, -124, -124, -124, 23, 91, 12, 45, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 127, 678, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -136, -136, -136, -136, -136, -136, -136, -136, -136, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -137, -137, -137, -137, -137, -137, -137, -137, -137, 2, 57, 1, 679, 253, 2, 57, 1, 680, 253, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 681, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 682, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -134, -134, -134, -134, -134, -134, -134, -134, -134, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -135, -135, -135, -135, -135, -135, -135, -135, -135, 4, 59, 1, 2, 2, -60, -60, -60, -60, 2, 6, 61, 107, 683, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, 125, 126, -403, -403, -403, -403, -403, -403, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 684, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, -283, 685, -283, -283, -283, -283, -283, -283, -283, -283, 125, 126, -283, -283, -283, 686, -283, -283, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, -288, 687, -288, -288, -288, -288, -288, -288, -288, -288, 125, 126, -288, -288, -288, -288, -288, -288, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, -292, 688, -292, -292, -292, -292, -292, -292, -292, -292, 125, 126, -292, -292, -292, -292, -292, -292, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, -296, 689, -296, -296, -296, -296, -296, -296, -296, -296, 125, 126, -296, -296, -296, -296, -296, -296, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 690, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 691, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 125, 126, -299, -299, -299, -299, -299, -299, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 67, 18, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -161, -161, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 1, 85, 692, 1, 85, 693, 23, 85, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -66, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, -98, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 694, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 53, 1, 5, 53, 1, 5, 1, 1, 3, 2, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 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, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 1, 2, 2, 5, 4, 5, 2, 1, 1, 3, 4, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 247, 84, 85, 695, 66, 42, 43, 90, 91, 246, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 1, 2, 2, 5, 4, 5, 2, 1, 1, 3, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 326, 245, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 325, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 247, 84, 85, 324, 66, 42, 43, 90, 91, 246, 696, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 44, 45, 68, 46, 47, 48, 50, 51, 5, 6, 60, 1, 5, 49, -195, -195, -195, -195, -195, 3, 6, 60, 1, 603, 604, 697, 1, 85, 698, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 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, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, -82, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 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, 9, 1, 5, 59, 1, 1, 5, 31, 18, 17, -169, -169, -169, -169, -169, -169, -169, -169, -169, 6, 6, 60, 1, 5, 49, 3, -176, -176, -176, -176, -176, -176, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 347, 699, -217, -217, -217, 2, 66, 56, 160, 613, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, -405, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, -229, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, -243, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 3, 7, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, -244, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 3, 7, 1, 3, 1, 1, 2, 25, 1, 4, 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, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 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, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 700, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 701, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 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, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 702, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 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, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 703, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, -279, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 704, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 25, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 706, 705, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 25, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 708, 707, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, -282, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 2, 66, 56, 160, 709, 1, 67, 710, 4, 6, 61, 78, 12, 711, -253, -253, -253, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 712, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, 2, 6, 61, -315, -315, 2, 66, 56, 160, 713, 3, 54, 5, 1, 714, 105, 106, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 537, 715, -217, -217, -217, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, -324, 1, 142, 716, 4, 55, 1, 124, 2, 401, 104, 717, 402, 6, 55, 1, 10, 113, 1, 2, 401, 104, 400, 718, 399, 402, 5, 6, 60, 1, 5, 23, -329, -329, -329, -329, -329, 3, 6, 60, 1, 647, 648, 719, 5, 6, 60, 1, 5, 23, -334, -334, -334, -334, -334, 5, 6, 60, 1, 5, 23, -336, -336, -336, -336, -336, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, -355, 14, 1, 5, 59, 1, 1, 5, 31, 18, 17, 4, 6, 1, 10, 1, -340, -340, -340, -340, -340, -340, -340, -340, -340, 720, -340, -340, -340, -340, 4, 55, 1, 126, 5, 546, 104, 409, 721, 6, 55, 1, 10, 116, 3, 2, 546, 104, 407, 409, 722, 406, 5, 6, 60, 1, 5, 23, -358, -358, -358, -358, -358, 3, 6, 60, 1, 655, 656, 723, 5, 6, 60, 1, 5, 23, -363, -363, -363, -363, -363, 5, 6, 60, 1, 5, 23, -364, -364, -364, -364, -364, 5, 6, 60, 1, 5, 23, -366, -366, -366, -366, -366, 31, 1, 5, 59, 1, 1, 5, 19, 12, 18, 17, 10, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -346, -346, -346, -346, -346, -346, 127, -346, -346, -346, -346, 125, 126, -346, -346, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 724, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, -353, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 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, 9, 6, 60, 1, 5, 22, 1, 8, 9, 9, -217, -217, -217, 421, 422, -217, -217, 725, -217, 5, 6, 60, 1, 5, 31, -147, -147, -147, -147, -147, 5, 6, 60, 1, 5, 31, -148, -148, -148, -148, -148, 1, 85, 726, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, -231, 14, 39, 16, 1, 23, 1, 1, 7, 4, 5, 5, 2, 25, 37, 2, 307, 152, 104, 154, 155, 153, 99, 727, 728, 83, 156, 195, 306, 194, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 729, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 5, 6, 60, 1, 5, 23, -112, -112, -112, -112, -112, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 439, 730, -217, -217, -217, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 6, 2, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 731, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 568, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 732, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 6, 6, 60, 1, 5, 18, 5, -125, -125, -125, -125, -125, -125, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -138, -138, -138, -138, -138, -138, -138, -138, -138, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -139, -139, -139, -139, -139, -139, -139, -139, -139, 23, 85, 6, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 733, 127, 124, 125, 126, 96, 97, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 734, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 65, 735, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 736, 127, 124, 125, 126, 96, 97, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 737, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 738, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 739, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 740, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 741, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, -290, 742, -290, -290, -290, -290, -290, -290, -290, -290, 125, 126, -290, -290, -290, -290, -290, -290, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, -294, 743, -294, -294, -294, -294, -294, -294, -294, -294, 125, 126, -294, -294, -294, -294, -294, -294, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 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, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, -94, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, -96, 1, 85, 744, 5, 6, 60, 1, 5, 49, -196, -196, -196, -196, -196, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 477, 745, -217, -217, -217, 5, 6, 60, 1, 5, 49, -197, -197, -197, -197, -197, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, -103, 3, 6, 60, 1, 493, 494, 746, 25, 66, 25, 31, 26, 1, 9, 1, 1, 4, 28, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 747, 124, 125, 126, 96, 97, 748, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 25, 66, 25, 5, 26, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 750, 749, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 751, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 752, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 753, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 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, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 754, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, -277, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 755, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 67, 756, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, 3, 67, 78, 12, -254, -254, -254, 24, 66, 6, 19, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -204, -204, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, -326, 3, 6, 60, 29, 647, 648, 757, 3, 54, 5, 1, 758, 105, 106, 5, 6, 60, 1, 5, 23, -330, -330, -330, -330, -330, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 537, 759, -217, -217, -217, 5, 6, 60, 1, 5, 23, -331, -331, -331, -331, -331, 3, 54, 5, 1, 760, 105, 106, 5, 6, 60, 1, 5, 23, -359, -359, -359, -359, -359, 8, 6, 60, 1, 5, 22, 1, 8, 18, -217, -217, -217, 544, 761, -217, -217, -217, 5, 6, 60, 1, 5, 23, -360, -360, -360, -360, -360, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, -347, 2, 66, 1, 557, 762, 52, 1, 5, 53, 1, 5, 1, 1, 5, 10, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, 4, 93, 70, 2, 2, 763, 459, 461, 462, 11, 55, 1, 23, 1, 1, 7, 4, 10, 2, 25, 39, 152, 104, 154, 155, 153, 99, 764, 157, 156, 195, 194, 5, 6, 60, 1, 5, 23, -117, -117, -117, -117, -117, 3, 6, 60, 1, 570, 571, 765, 27, 6, 60, 1, 5, 19, 4, 53, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -116, -116, -116, -116, 127, -116, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 5, 6, 60, 1, 5, 23, -119, -119, -119, -119, -119, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -140, -140, -140, -140, -140, -140, -140, -140, -140, 23, 67, 24, 57, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 766, 127, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 4, 59, 1, 2, 2, -61, -61, -61, -61, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, -237, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, 125, 126, -284, -284, -284, 767, -284, -284, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, 768, -285, -285, -285, -285, -285, -285, -285, -285, 125, 126, -285, -285, -285, -285, -285, -285, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, 125, 126, -289, -289, -289, -289, -289, -289, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 125, 126, -293, -293, -293, -293, -293, -293, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 125, 126, -297, -297, -297, -297, -297, -297, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 769, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 770, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 61, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 3, 22, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, -99, 3, 6, 60, 1, 603, 604, 771, 6, 6, 60, 1, 5, 49, 3, -177, -177, -177, -177, -177, -177, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 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, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 772, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -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, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 773, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 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, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 774, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 775, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 1, 142, 776, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, -325, 3, 6, 60, 1, 647, 648, 777, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, -356, 3, 6, 60, 1, 655, 656, 778, 5, 6, 60, 1, 5, 31, -149, -149, -149, -149, -149, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 779, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 93, 780, 5, 6, 60, 1, 5, 23, -113, -113, -113, -113, -113, 1, 85, 781, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 782, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 783, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, -291, -291, -291, 125, 126, -291, -291, -291, -291, -291, -291, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 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, 125, 126, -295, -295, -295, -295, -295, -295, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 5, 6, 60, 1, 5, 49, -198, -198, -198, -198, -198, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 784, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 24, 66, 25, 31, 26, 1, 9, 1, 1, 32, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 160, 127, 785, 124, 125, 126, 96, 97, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 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, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, -278, 3, 54, 5, 1, 786, 105, 106, 5, 6, 60, 1, 5, 23, -332, -332, -332, -332, -332, 5, 6, 60, 1, 5, 23, -361, -361, -361, -361, -361, 45, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 1, 1, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -288, -288, -288, -288, -288, 789, -288, -288, -288, -288, 787, -288, 788, -288, -288, -288, -288, -288, -288, -288, -288, 125, 126, -288, -288, -288, -288, -288, -288, 109, 108, 110, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 790, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 9, 6, 60, 1, 5, 10, 1, 1, 11, 24, -141, -141, -141, -141, -141, -141, -141, -141, -141, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, -286, 125, 126, -286, -286, -286, -286, -286, -286, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 44, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 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, 125, 126, -287, -287, -287, -287, -287, -287, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 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, 43, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 2, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 4, 1, 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, 13, 1, 5, 59, 1, 1, 5, 31, 18, 17, 10, 1, 10, 1, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, -327, 1, 95, 791, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 792, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 6, 6, 60, 1, 28, 8, 18, -218, -218, -218, -218, -218, -218, 45, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 1, 1, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -290, -290, -290, -290, -290, 789, -290, -290, -290, -290, 793, -290, 794, -290, -290, -290, -290, -290, -290, -290, -290, 125, 126, -290, -290, -290, -290, -290, -290, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, -104, 45, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 1, 1, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -289, -289, -289, -289, -289, 789, -289, -289, -289, -289, 795, -289, -289, -289, -289, -289, -289, -289, -289, -289, -289, 125, 126, -289, -289, -289, -289, -289, -289, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 1, 95, 796, 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, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 8, 1, 8, 1, 1, 1, 1, 7, 3, 11, 2, 3, 2, 9, 5, 2, 1, 1, 7, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 3, 4, 4, 1, 1, 1, 1, 4, 3, 2, 1, 3, 1, 8, 4, 1, 1, 1, 1, 1, 2, 1, 797, 163, 29, 30, 31, 32, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 33, 34, 35, 36, 37, 38, 39, 40, 41, 74, 75, 76, 77, 78, 79, 80, 81, 100, 101, 92, 104, 105, 106, 102, 103, 53, 52, 72, 73, 93, 99, 59, 83, 87, 84, 85, 66, 167, 168, 90, 91, 86, 88, 89, 82, 69, 64, 65, 54, 94, 55, 95, 56, 60, 57, 96, 97, 58, 98, 49, 61, 67, 62, 63, 70, 71, 169, 170, 171, 46, 47, 48, 50, 51, 1, 95, 798, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, 45, 1, 5, 59, 1, 1, 5, 13, 5, 1, 2, 1, 1, 1, 7, 2, 12, 4, 3, 14, 7, 3, 1, 9, 1, 1, 3, 1, 1, 2, 25, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -291, -291, -291, -291, -291, 789, -291, -291, -291, -291, 799, -291, -291, -291, -291, -291, -291, -291, -291, -291, -291, 125, 126, -291, -291, -291, -291, -291, -291, 109, 108, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, -105, 1, 95, 800, 57, 1, 5, 53, 1, 5, 1, 1, 5, 1, 1, 1, 1, 1, 5, 1, 1, 1, 2, 3, 1, 2, 2, 1, 7, 2, 12, 2, 2, 3, 7, 7, 7, 3, 1, 10, 1, 3, 1, 1, 2, 25, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, -107], t = [], p = 0, n, o, k, a;
|
|
2353
2743
|
while (p < d.length) {
|
|
2354
2744
|
n = d[p++];
|
|
2355
2745
|
o = {};
|
|
@@ -2363,7 +2753,7 @@ var parserInstance = {
|
|
|
2363
2753
|
}
|
|
2364
2754
|
return t;
|
|
2365
2755
|
})(),
|
|
2366
|
-
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, 8, 1, 8, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 45, 1, 45, 1, 55, 1, 57, 1, 54, 1, 54, 3, 61, 1, 61, 2, 63, 3, 63, 5, 63, 2, 63, 1, 47, 1, 47, 3, 71, 3, 71, 1, 17, 3, 17, 4, 17, 5, 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, 36, 1, 36, 1, 36, 1, 78, 1, 78, 1, 78, 3, 78, 3, 78, 4, 78, 6, 78, 4, 78, 6, 78, 4, 78, 5, 78, 7, 78, 3, 78, 3, 78, 4, 78, 6, 80, 10, 80, 12, 80, 11, 80, 13, 80, 4, 98, 0, 98, 1, 98, 3, 98, 4, 98, 6, 99, 1, 99, 1, 99, 3, 99, 5, 99, 3, 99, 5, 101, 1, 101, 1, 101, 1, 89, 1, 89, 3, 89, 4, 89, 1, 100, 2, 100, 2, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 2, 106, 2, 106, 2, 106, 2, 106, 3, 106, 3, 106, 4, 106, 6, 79, 2, 79, 3, 79, 4, 111, 1, 111, 3, 111, 4, 111, 4, 111, 6, 113, 1, 113, 2, 112, 1, 112, 2, 110, 1, 110, 2, 115, 1, 115, 2, 116, 1, 116, 1, 39, 5, 86, 3, 86, 2, 86, 2, 86, 1, 32, 6, 32, 3, 15, 5, 15, 2, 34, 5, 34, 2, 125, 1, 125, 1, 120, 0, 120, 1, 120, 3, 120, 4, 120, 6, 128, 1, 128, 3, 128, 2, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 2, 40, 2, 40, 2, 40, 3, 40, 2, 40, 2, 108, 2, 108, 4, 132, 1, 132, 3, 132, 4, 132, 4, 132, 6, 114, 1, 114, 1, 114, 1, 114, 1, 133, 1, 133, 3, 42, 1, 42, 1, 81, 2, 43, 3, 43, 4, 43, 6, 44, 3, 44, 3, 122, 2, 122, 3, 38, 3, 38, 5, 94, 0, 94, 1, 10, 2, 10, 4, 10, 1, 30, 2, 30, 4, 31, 1, 31, 2, 31, 4, 31, 3, 143, 3, 143, 5, 146, 3, 146, 5, 22, 1, 22, 3, 22, 1, 22, 3, 22, 3, 22, 3, 22, 3, 23, 2, 23, 3, 23, 4, 23, 5, 151, 3, 151, 3, 151, 2, 26, 5, 26, 7, 26, 4, 26, 6, 155, 1, 155, 2, 156, 3, 156, 4, 158, 2, 158, 4, 158, 2, 158, 4, 24, 2, 24, 2, 24, 2, 24, 1, 161, 2, 161, 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, 5, 25, 7, 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, 5, 25, 7, 25, 3, 25, 5, 168, 1, 168, 3, 92, 1, 92, 3, 27, 1, 27, 2, 27, 3, 27, 4, 27, 2, 27, 3, 27, 4, 27, 5, 33, 3, 28, 4, 173, 1, 173, 3, 173, 2, 174, 1, 174, 1, 174, 1, 29, 2, 12, 2, 12, 4, 12, 4, 12, 5, 12, 7, 12, 6, 12, 9, 179, 1, 179, 3, 179, 4, 179, 4, 179, 6, 180, 1, 180, 3, 180, 1, 180, 3, 177, 1, 178, 3, 13, 3, 13, 5, 13, 2, 13, 2, 13, 2, 13, 2, 13, 4, 13, 5, 13, 6, 13, 3, 13, 5, 13, 4, 13, 5, 13, 7, 185, 1, 185, 3, 185, 4, 185, 4, 185, 6, 187, 1, 187, 3, 187, 3, 187, 1, 187, 3, 35, 2, 35, 2, 35, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 4, 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, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 3, 16, 5, 16, 4, 41, 2],
|
|
2756
|
+
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, 8, 1, 8, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 45, 1, 45, 1, 55, 1, 57, 1, 54, 1, 54, 3, 61, 1, 61, 2, 63, 3, 63, 5, 63, 2, 63, 1, 47, 1, 47, 3, 71, 3, 71, 1, 17, 3, 17, 4, 17, 5, 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, 36, 1, 36, 1, 36, 1, 78, 1, 78, 1, 78, 3, 78, 3, 78, 4, 78, 6, 78, 4, 78, 6, 78, 4, 78, 5, 78, 7, 78, 3, 78, 3, 78, 4, 78, 6, 80, 10, 80, 12, 80, 11, 80, 13, 80, 4, 98, 0, 98, 1, 98, 3, 98, 4, 98, 6, 99, 1, 99, 1, 99, 3, 99, 5, 99, 3, 99, 5, 101, 1, 101, 1, 101, 1, 89, 1, 89, 3, 89, 4, 89, 1, 100, 2, 100, 2, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 2, 106, 2, 106, 2, 106, 2, 106, 3, 106, 3, 106, 4, 106, 6, 79, 2, 79, 3, 79, 4, 111, 1, 111, 3, 111, 4, 111, 4, 111, 6, 113, 1, 113, 2, 112, 1, 112, 2, 110, 1, 110, 2, 115, 1, 115, 2, 116, 1, 116, 1, 39, 5, 86, 3, 86, 2, 86, 2, 86, 1, 32, 6, 32, 3, 15, 5, 15, 2, 34, 5, 34, 2, 125, 1, 125, 1, 120, 0, 120, 1, 120, 3, 120, 4, 120, 6, 128, 1, 128, 3, 128, 2, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, 130, 2, 40, 2, 40, 2, 40, 3, 40, 2, 40, 2, 108, 2, 108, 4, 132, 1, 132, 3, 132, 4, 132, 4, 132, 6, 114, 1, 114, 1, 114, 1, 114, 1, 133, 1, 133, 3, 42, 1, 42, 1, 81, 2, 43, 3, 43, 4, 43, 6, 44, 3, 44, 3, 122, 2, 122, 3, 38, 3, 38, 5, 94, 0, 94, 1, 10, 2, 10, 4, 10, 1, 30, 2, 30, 4, 31, 1, 31, 2, 31, 4, 31, 3, 143, 3, 143, 5, 146, 3, 146, 5, 22, 1, 22, 3, 22, 1, 22, 3, 22, 3, 22, 7, 22, 3, 22, 3, 23, 2, 23, 3, 23, 4, 23, 5, 151, 3, 151, 3, 151, 2, 26, 5, 26, 7, 26, 4, 26, 6, 155, 1, 155, 2, 156, 3, 156, 4, 158, 2, 158, 4, 158, 2, 158, 4, 24, 2, 24, 2, 24, 2, 24, 1, 161, 2, 161, 2, 161, 3, 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, 5, 25, 7, 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, 5, 25, 7, 25, 3, 25, 5, 168, 1, 168, 3, 92, 1, 92, 3, 27, 1, 27, 2, 27, 3, 27, 4, 27, 2, 27, 3, 27, 4, 27, 5, 33, 3, 28, 4, 173, 1, 173, 3, 173, 2, 174, 1, 174, 1, 174, 1, 29, 2, 12, 2, 12, 4, 12, 4, 12, 5, 12, 7, 12, 6, 12, 9, 179, 1, 179, 3, 179, 4, 179, 4, 179, 6, 180, 1, 180, 3, 180, 1, 180, 3, 177, 1, 178, 3, 13, 3, 13, 5, 13, 2, 13, 2, 13, 2, 13, 2, 13, 4, 13, 5, 13, 6, 13, 2, 13, 2, 13, 2, 13, 2, 13, 3, 13, 5, 13, 4, 13, 5, 13, 7, 185, 1, 185, 3, 185, 4, 185, 4, 185, 6, 187, 1, 187, 3, 187, 3, 187, 1, 187, 3, 35, 2, 35, 2, 35, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2, 16, 4, 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, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 3, 16, 5, 16, 4, 41, 2],
|
|
2367
2757
|
ruleActions: (rule, vals, locs, shared) => {
|
|
2368
2758
|
const $ = vals;
|
|
2369
2759
|
const $0 = vals.length - 1;
|
|
@@ -2380,25 +2770,25 @@ var parserInstance = {
|
|
|
2380
2770
|
case 174:
|
|
2381
2771
|
case 194:
|
|
2382
2772
|
case 203:
|
|
2383
|
-
case
|
|
2384
|
-
case
|
|
2385
|
-
case
|
|
2386
|
-
case
|
|
2387
|
-
case
|
|
2773
|
+
case 251:
|
|
2774
|
+
case 302:
|
|
2775
|
+
case 314:
|
|
2776
|
+
case 328:
|
|
2777
|
+
case 357:
|
|
2388
2778
|
return [$[$0]];
|
|
2389
2779
|
case 4:
|
|
2390
2780
|
case 111:
|
|
2391
2781
|
case 175:
|
|
2392
2782
|
case 195:
|
|
2393
2783
|
case 204:
|
|
2394
|
-
case
|
|
2395
|
-
case
|
|
2396
|
-
case
|
|
2784
|
+
case 315:
|
|
2785
|
+
case 329:
|
|
2786
|
+
case 358:
|
|
2397
2787
|
return [...$[$0 - 2], $[$0]];
|
|
2398
2788
|
case 5:
|
|
2399
2789
|
case 60:
|
|
2400
2790
|
case 157:
|
|
2401
|
-
case
|
|
2791
|
+
case 316:
|
|
2402
2792
|
return $[$0 - 1];
|
|
2403
2793
|
case 6:
|
|
2404
2794
|
case 7:
|
|
@@ -2482,16 +2872,16 @@ var parserInstance = {
|
|
|
2482
2872
|
case 218:
|
|
2483
2873
|
case 232:
|
|
2484
2874
|
case 234:
|
|
2485
|
-
case
|
|
2486
|
-
case
|
|
2487
|
-
case 315:
|
|
2488
|
-
case 316:
|
|
2875
|
+
case 262:
|
|
2876
|
+
case 300:
|
|
2489
2877
|
case 317:
|
|
2490
|
-
case
|
|
2878
|
+
case 318:
|
|
2879
|
+
case 319:
|
|
2491
2880
|
case 333:
|
|
2492
2881
|
case 335:
|
|
2493
|
-
case
|
|
2494
|
-
case
|
|
2882
|
+
case 337:
|
|
2883
|
+
case 362:
|
|
2884
|
+
case 365:
|
|
2495
2885
|
return $[$0];
|
|
2496
2886
|
case 47:
|
|
2497
2887
|
return "undefined";
|
|
@@ -2502,13 +2892,13 @@ var parserInstance = {
|
|
|
2502
2892
|
case 59:
|
|
2503
2893
|
case 151:
|
|
2504
2894
|
case 155:
|
|
2505
|
-
case
|
|
2895
|
+
case 252:
|
|
2506
2896
|
return [...$[$0 - 1], $[$0]];
|
|
2507
2897
|
case 61:
|
|
2508
2898
|
case 193:
|
|
2509
2899
|
case 197:
|
|
2510
|
-
case
|
|
2511
|
-
case
|
|
2900
|
+
case 331:
|
|
2901
|
+
case 360:
|
|
2512
2902
|
return $[$0 - 2];
|
|
2513
2903
|
case 62:
|
|
2514
2904
|
return "";
|
|
@@ -2595,14 +2985,14 @@ var parserInstance = {
|
|
|
2595
2985
|
case 112:
|
|
2596
2986
|
case 176:
|
|
2597
2987
|
case 196:
|
|
2598
|
-
case
|
|
2599
|
-
case
|
|
2988
|
+
case 330:
|
|
2989
|
+
case 359:
|
|
2600
2990
|
return [...$[$0 - 3], $[$0]];
|
|
2601
2991
|
case 113:
|
|
2602
2992
|
case 177:
|
|
2603
2993
|
case 198:
|
|
2604
|
-
case
|
|
2605
|
-
case
|
|
2994
|
+
case 332:
|
|
2995
|
+
case 361:
|
|
2606
2996
|
return [...$[$0 - 5], ...$[$0 - 2]];
|
|
2607
2997
|
case 114:
|
|
2608
2998
|
return [$[$0], $[$0], null];
|
|
@@ -2657,11 +3047,11 @@ var parserInstance = {
|
|
|
2657
3047
|
case 160:
|
|
2658
3048
|
return [$[$0 - 2], $[$0 - 3], $[$0 - 1]];
|
|
2659
3049
|
case 161:
|
|
2660
|
-
case
|
|
2661
|
-
case
|
|
2662
|
-
case
|
|
2663
|
-
case
|
|
2664
|
-
case
|
|
3050
|
+
case 384:
|
|
3051
|
+
case 386:
|
|
3052
|
+
case 387:
|
|
3053
|
+
case 402:
|
|
3054
|
+
case 404:
|
|
2665
3055
|
return [$[$0 - 1], $[$0 - 2], $[$0]];
|
|
2666
3056
|
case 162:
|
|
2667
3057
|
return [$[$0], $[$0 - 1], null];
|
|
@@ -2680,7 +3070,7 @@ var parserInstance = {
|
|
|
2680
3070
|
case 170:
|
|
2681
3071
|
return [$[$0 - 1], [], $[$0]];
|
|
2682
3072
|
case 179:
|
|
2683
|
-
case
|
|
3073
|
+
case 301:
|
|
2684
3074
|
return ["default", $[$0 - 2], $[$0]];
|
|
2685
3075
|
case 180:
|
|
2686
3076
|
return ["rest", $[$0]];
|
|
@@ -2745,242 +3135,252 @@ var parserInstance = {
|
|
|
2745
3135
|
case 236:
|
|
2746
3136
|
return ["if", $[$0], [$[$0 - 2]]];
|
|
2747
3137
|
case 237:
|
|
3138
|
+
return ["?:", $[$0 - 4], $[$0 - 6], $[$0 - 1]];
|
|
2748
3139
|
case 238:
|
|
2749
|
-
return ["unless", $[$0], [$[$0 - 2]]];
|
|
2750
3140
|
case 239:
|
|
2751
|
-
return ["
|
|
3141
|
+
return ["unless", $[$0], [$[$0 - 2]]];
|
|
2752
3142
|
case 240:
|
|
2753
|
-
return ["try", $[$0
|
|
3143
|
+
return ["try", $[$0]];
|
|
2754
3144
|
case 241:
|
|
2755
|
-
return ["try", $[$0 -
|
|
3145
|
+
return ["try", $[$0 - 1], $[$0]];
|
|
2756
3146
|
case 242:
|
|
2757
|
-
return ["try", $[$0 -
|
|
3147
|
+
return ["try", $[$0 - 2], $[$0]];
|
|
2758
3148
|
case 243:
|
|
3149
|
+
return ["try", $[$0 - 3], $[$0 - 2], $[$0]];
|
|
2759
3150
|
case 244:
|
|
2760
|
-
case 361:
|
|
2761
|
-
case 364:
|
|
2762
|
-
case 366:
|
|
2763
|
-
return [$[$0 - 1], $[$0]];
|
|
2764
3151
|
case 245:
|
|
2765
|
-
|
|
3152
|
+
case 367:
|
|
3153
|
+
case 370:
|
|
3154
|
+
case 372:
|
|
3155
|
+
return [$[$0 - 1], $[$0]];
|
|
2766
3156
|
case 246:
|
|
2767
|
-
return [
|
|
3157
|
+
return [null, $[$0]];
|
|
2768
3158
|
case 247:
|
|
2769
|
-
return ["switch", $[$0 -
|
|
3159
|
+
return ["switch", $[$0 - 3], $[$0 - 1], null];
|
|
2770
3160
|
case 248:
|
|
2771
|
-
return ["switch",
|
|
3161
|
+
return ["switch", $[$0 - 5], $[$0 - 3], $[$0 - 1]];
|
|
2772
3162
|
case 249:
|
|
3163
|
+
return ["switch", null, $[$0 - 1], null];
|
|
3164
|
+
case 250:
|
|
2773
3165
|
return ["switch", null, $[$0 - 3], $[$0 - 1]];
|
|
2774
|
-
case 252:
|
|
2775
|
-
return ["when", $[$0 - 1], $[$0]];
|
|
2776
3166
|
case 253:
|
|
2777
|
-
return ["when", $[$0 -
|
|
3167
|
+
return ["when", $[$0 - 1], $[$0]];
|
|
2778
3168
|
case 254:
|
|
2779
|
-
return ["
|
|
3169
|
+
return ["when", $[$0 - 2], $[$0 - 1]];
|
|
2780
3170
|
case 255:
|
|
2781
|
-
return ["while", $[$0
|
|
3171
|
+
return ["while", $[$0]];
|
|
2782
3172
|
case 256:
|
|
2783
|
-
return ["
|
|
3173
|
+
return ["while", $[$0 - 2], $[$0]];
|
|
2784
3174
|
case 257:
|
|
2785
|
-
return ["until", $[$0
|
|
3175
|
+
return ["until", $[$0]];
|
|
2786
3176
|
case 258:
|
|
2787
|
-
return
|
|
3177
|
+
return ["until", $[$0 - 2], $[$0]];
|
|
2788
3178
|
case 259:
|
|
3179
|
+
return $[$0 - 1].length === 2 ? [$[$0 - 1][0], $[$0 - 1][1], $[$0]] : [$[$0 - 1][0], $[$0 - 1][1], $[$0 - 1][2], $[$0]];
|
|
2789
3180
|
case 260:
|
|
3181
|
+
case 261:
|
|
2790
3182
|
return $[$0].length === 2 ? [$[$0][0], $[$0][1], [$[$0 - 1]]] : [$[$0][0], $[$0][1], $[$0][2], [$[$0 - 1]]];
|
|
2791
|
-
case 262:
|
|
2792
|
-
return ["loop", $[$0]];
|
|
2793
3183
|
case 263:
|
|
2794
|
-
return ["loop",
|
|
3184
|
+
return ["loop", $[$0]];
|
|
2795
3185
|
case 264:
|
|
2796
|
-
return ["
|
|
3186
|
+
return ["loop", [$[$0]]];
|
|
2797
3187
|
case 265:
|
|
2798
|
-
return ["
|
|
3188
|
+
return ["loop-n", $[$0 - 1], $[$0]];
|
|
2799
3189
|
case 266:
|
|
2800
|
-
return ["for-in", $[$0 -
|
|
3190
|
+
return ["for-in", $[$0 - 3], $[$0 - 1], null, null, $[$0]];
|
|
2801
3191
|
case 267:
|
|
2802
|
-
return ["for-in", $[$0 -
|
|
3192
|
+
return ["for-in", $[$0 - 5], $[$0 - 3], null, $[$0 - 1], $[$0]];
|
|
2803
3193
|
case 268:
|
|
2804
|
-
return ["for-in", $[$0 -
|
|
3194
|
+
return ["for-in", $[$0 - 5], $[$0 - 3], $[$0 - 1], null, $[$0]];
|
|
2805
3195
|
case 269:
|
|
2806
|
-
return ["for-
|
|
3196
|
+
return ["for-in", $[$0 - 7], $[$0 - 5], $[$0 - 1], $[$0 - 3], $[$0]];
|
|
2807
3197
|
case 270:
|
|
2808
|
-
return ["for-
|
|
3198
|
+
return ["for-in", $[$0 - 7], $[$0 - 5], $[$0 - 3], $[$0 - 1], $[$0]];
|
|
2809
3199
|
case 271:
|
|
2810
|
-
return ["for-of", $[$0 - 3], $[$0 - 1],
|
|
3200
|
+
return ["for-of", $[$0 - 3], $[$0 - 1], false, null, $[$0]];
|
|
2811
3201
|
case 272:
|
|
2812
|
-
return ["for-of", $[$0 - 5], $[$0 - 3],
|
|
3202
|
+
return ["for-of", $[$0 - 5], $[$0 - 3], false, $[$0 - 1], $[$0]];
|
|
2813
3203
|
case 273:
|
|
2814
|
-
return ["for-
|
|
3204
|
+
return ["for-of", $[$0 - 3], $[$0 - 1], true, null, $[$0]];
|
|
2815
3205
|
case 274:
|
|
2816
|
-
return ["for-
|
|
3206
|
+
return ["for-of", $[$0 - 5], $[$0 - 3], true, $[$0 - 1], $[$0]];
|
|
2817
3207
|
case 275:
|
|
3208
|
+
return ["for-as", $[$0 - 3], $[$0 - 1], false, null, $[$0]];
|
|
3209
|
+
case 276:
|
|
3210
|
+
return ["for-as", $[$0 - 5], $[$0 - 3], false, $[$0 - 1], $[$0]];
|
|
2818
3211
|
case 277:
|
|
3212
|
+
case 279:
|
|
2819
3213
|
return ["for-as", $[$0 - 3], $[$0 - 1], true, null, $[$0]];
|
|
2820
|
-
case 276:
|
|
2821
3214
|
case 278:
|
|
3215
|
+
case 280:
|
|
2822
3216
|
return ["for-as", $[$0 - 5], $[$0 - 3], true, $[$0 - 1], $[$0]];
|
|
2823
|
-
case
|
|
3217
|
+
case 281:
|
|
2824
3218
|
return ["for-in", [], $[$0 - 1], null, null, $[$0]];
|
|
2825
|
-
case
|
|
3219
|
+
case 282:
|
|
2826
3220
|
return ["for-in", [], $[$0 - 3], $[$0 - 1], null, $[$0]];
|
|
2827
|
-
case
|
|
3221
|
+
case 283:
|
|
2828
3222
|
return ["comprehension", $[$0 - 4], [["for-in", $[$0 - 2], $[$0], null]], []];
|
|
2829
|
-
case
|
|
3223
|
+
case 284:
|
|
2830
3224
|
return ["comprehension", $[$0 - 6], [["for-in", $[$0 - 4], $[$0 - 2], null]], [$[$0]]];
|
|
2831
|
-
case
|
|
3225
|
+
case 285:
|
|
2832
3226
|
return ["comprehension", $[$0 - 6], [["for-in", $[$0 - 4], $[$0 - 2], $[$0]]], []];
|
|
2833
|
-
case
|
|
3227
|
+
case 286:
|
|
2834
3228
|
return ["comprehension", $[$0 - 8], [["for-in", $[$0 - 6], $[$0 - 4], $[$0]]], [$[$0 - 2]]];
|
|
2835
|
-
case
|
|
3229
|
+
case 287:
|
|
2836
3230
|
return ["comprehension", $[$0 - 8], [["for-in", $[$0 - 6], $[$0 - 4], $[$0 - 2]]], [$[$0]]];
|
|
2837
|
-
case
|
|
3231
|
+
case 288:
|
|
2838
3232
|
return ["comprehension", $[$0 - 4], [["for-of", $[$0 - 2], $[$0], false]], []];
|
|
2839
|
-
case
|
|
3233
|
+
case 289:
|
|
2840
3234
|
return ["comprehension", $[$0 - 6], [["for-of", $[$0 - 4], $[$0 - 2], false]], [$[$0]]];
|
|
2841
|
-
case
|
|
3235
|
+
case 290:
|
|
2842
3236
|
return ["comprehension", $[$0 - 5], [["for-of", $[$0 - 2], $[$0], true]], []];
|
|
2843
|
-
case
|
|
3237
|
+
case 291:
|
|
2844
3238
|
return ["comprehension", $[$0 - 7], [["for-of", $[$0 - 4], $[$0 - 2], true]], [$[$0]]];
|
|
2845
|
-
case
|
|
3239
|
+
case 292:
|
|
2846
3240
|
return ["comprehension", $[$0 - 4], [["for-as", $[$0 - 2], $[$0], false, null]], []];
|
|
2847
|
-
case
|
|
3241
|
+
case 293:
|
|
2848
3242
|
return ["comprehension", $[$0 - 6], [["for-as", $[$0 - 4], $[$0 - 2], false, null]], [$[$0]]];
|
|
2849
|
-
case
|
|
3243
|
+
case 294:
|
|
2850
3244
|
return ["comprehension", $[$0 - 5], [["for-as", $[$0 - 2], $[$0], true, null]], []];
|
|
2851
|
-
case
|
|
3245
|
+
case 295:
|
|
2852
3246
|
return ["comprehension", $[$0 - 7], [["for-as", $[$0 - 4], $[$0 - 2], true, null]], [$[$0]]];
|
|
2853
|
-
case
|
|
3247
|
+
case 296:
|
|
2854
3248
|
return ["comprehension", $[$0 - 4], [["for-as", $[$0 - 2], $[$0], true, null]], []];
|
|
2855
|
-
case
|
|
3249
|
+
case 297:
|
|
2856
3250
|
return ["comprehension", $[$0 - 6], [["for-as", $[$0 - 4], $[$0 - 2], true, null]], [$[$0]]];
|
|
2857
|
-
case
|
|
3251
|
+
case 298:
|
|
2858
3252
|
return ["comprehension", $[$0 - 2], [["for-in", [], $[$0], null]], []];
|
|
2859
|
-
case
|
|
3253
|
+
case 299:
|
|
2860
3254
|
return ["comprehension", $[$0 - 4], [["for-in", [], $[$0 - 2], $[$0]]], []];
|
|
2861
|
-
case
|
|
2862
|
-
case 332:
|
|
3255
|
+
case 303:
|
|
2863
3256
|
case 334:
|
|
2864
|
-
case
|
|
2865
|
-
case
|
|
2866
|
-
case
|
|
3257
|
+
case 336:
|
|
3258
|
+
case 363:
|
|
3259
|
+
case 364:
|
|
3260
|
+
case 366:
|
|
2867
3261
|
return [$[$0 - 2], $[$0]];
|
|
2868
|
-
case
|
|
3262
|
+
case 304:
|
|
2869
3263
|
return ["class", null, null];
|
|
2870
|
-
case
|
|
3264
|
+
case 305:
|
|
2871
3265
|
return ["class", null, null, $[$0]];
|
|
2872
|
-
case
|
|
3266
|
+
case 306:
|
|
2873
3267
|
return ["class", null, $[$0]];
|
|
2874
|
-
case
|
|
3268
|
+
case 307:
|
|
2875
3269
|
return ["class", null, $[$0 - 1], $[$0]];
|
|
2876
|
-
case
|
|
3270
|
+
case 308:
|
|
2877
3271
|
return ["class", $[$0], null];
|
|
2878
|
-
case
|
|
3272
|
+
case 309:
|
|
2879
3273
|
return ["class", $[$0 - 1], null, $[$0]];
|
|
2880
|
-
case
|
|
3274
|
+
case 310:
|
|
2881
3275
|
return ["class", $[$0 - 2], $[$0]];
|
|
2882
|
-
case
|
|
3276
|
+
case 311:
|
|
2883
3277
|
return ["class", $[$0 - 3], $[$0 - 1], $[$0]];
|
|
2884
|
-
case
|
|
3278
|
+
case 312:
|
|
2885
3279
|
return ["enum", $[$0 - 1], $[$0]];
|
|
2886
|
-
case
|
|
3280
|
+
case 313:
|
|
2887
3281
|
return ["component", null, ["block", ...$[$0 - 1]]];
|
|
2888
|
-
case 318:
|
|
2889
|
-
return ["render", $[$0]];
|
|
2890
|
-
case 319:
|
|
2891
|
-
case 322:
|
|
2892
|
-
return ["import", "{}", $[$0]];
|
|
2893
3282
|
case 320:
|
|
3283
|
+
return ["render", $[$0]];
|
|
2894
3284
|
case 321:
|
|
2895
|
-
|
|
3285
|
+
case 324:
|
|
3286
|
+
return ["import", "{}", $[$0]];
|
|
3287
|
+
case 322:
|
|
2896
3288
|
case 323:
|
|
3289
|
+
return ["import", $[$0 - 2], $[$0]];
|
|
3290
|
+
case 325:
|
|
2897
3291
|
return ["import", $[$0 - 4], $[$0]];
|
|
2898
|
-
case
|
|
3292
|
+
case 326:
|
|
2899
3293
|
return ["import", [$[$0 - 4], $[$0 - 2]], $[$0]];
|
|
2900
|
-
case
|
|
3294
|
+
case 327:
|
|
2901
3295
|
return ["import", [$[$0 - 7], $[$0 - 4]], $[$0]];
|
|
2902
|
-
case 336:
|
|
2903
|
-
return ["*", $[$0]];
|
|
2904
|
-
case 337:
|
|
2905
|
-
return ["export", "{}"];
|
|
2906
3296
|
case 338:
|
|
2907
|
-
return ["
|
|
3297
|
+
return ["*", $[$0]];
|
|
2908
3298
|
case 339:
|
|
3299
|
+
return ["export", "{}"];
|
|
2909
3300
|
case 340:
|
|
3301
|
+
return ["export", $[$0 - 2]];
|
|
2910
3302
|
case 341:
|
|
2911
3303
|
case 342:
|
|
2912
|
-
return ["export", $[$0]];
|
|
2913
3304
|
case 343:
|
|
2914
|
-
return ["export", ["=", $[$0 - 2], $[$0]]];
|
|
2915
3305
|
case 344:
|
|
2916
|
-
|
|
3306
|
+
case 348:
|
|
3307
|
+
case 349:
|
|
3308
|
+
case 350:
|
|
3309
|
+
case 351:
|
|
3310
|
+
return ["export", $[$0]];
|
|
2917
3311
|
case 345:
|
|
2918
|
-
return ["export", ["=", $[$0 -
|
|
3312
|
+
return ["export", ["=", $[$0 - 2], $[$0]]];
|
|
2919
3313
|
case 346:
|
|
2920
|
-
return ["export
|
|
3314
|
+
return ["export", ["=", $[$0 - 3], $[$0]]];
|
|
2921
3315
|
case 347:
|
|
3316
|
+
return ["export", ["=", $[$0 - 4], $[$0 - 1]]];
|
|
3317
|
+
case 352:
|
|
3318
|
+
return ["export-default", $[$0]];
|
|
3319
|
+
case 353:
|
|
2922
3320
|
return ["export-default", $[$0 - 1]];
|
|
2923
|
-
case
|
|
3321
|
+
case 354:
|
|
2924
3322
|
return ["export-all", $[$0]];
|
|
2925
|
-
case
|
|
3323
|
+
case 355:
|
|
2926
3324
|
return ["export-from", "{}", $[$0]];
|
|
2927
|
-
case
|
|
3325
|
+
case 356:
|
|
2928
3326
|
return ["export-from", $[$0 - 4], $[$0]];
|
|
2929
|
-
case
|
|
2930
|
-
case
|
|
2931
|
-
case
|
|
2932
|
-
case
|
|
3327
|
+
case 368:
|
|
3328
|
+
case 369:
|
|
3329
|
+
case 371:
|
|
3330
|
+
case 407:
|
|
2933
3331
|
return ["do-iife", $[$0]];
|
|
2934
|
-
case
|
|
3332
|
+
case 373:
|
|
2935
3333
|
return ["-", $[$0]];
|
|
2936
|
-
case
|
|
3334
|
+
case 374:
|
|
2937
3335
|
return ["+", $[$0]];
|
|
2938
|
-
case
|
|
3336
|
+
case 375:
|
|
2939
3337
|
return ["?", $[$0 - 1]];
|
|
2940
|
-
case
|
|
3338
|
+
case 376:
|
|
2941
3339
|
return ["await", $[$0]];
|
|
2942
|
-
case
|
|
3340
|
+
case 377:
|
|
2943
3341
|
return ["await", $[$0 - 1]];
|
|
2944
|
-
case
|
|
3342
|
+
case 378:
|
|
2945
3343
|
return ["--", $[$0], false];
|
|
2946
|
-
case
|
|
3344
|
+
case 379:
|
|
2947
3345
|
return ["++", $[$0], false];
|
|
2948
|
-
case
|
|
3346
|
+
case 380:
|
|
2949
3347
|
return ["--", $[$0 - 1], true];
|
|
2950
|
-
case
|
|
3348
|
+
case 381:
|
|
2951
3349
|
return ["++", $[$0 - 1], true];
|
|
2952
|
-
case 376:
|
|
2953
|
-
return ["+", $[$0 - 2], $[$0]];
|
|
2954
|
-
case 377:
|
|
2955
|
-
return ["-", $[$0 - 2], $[$0]];
|
|
2956
|
-
case 379:
|
|
2957
|
-
return ["**", $[$0 - 2], $[$0]];
|
|
2958
3350
|
case 382:
|
|
2959
|
-
return ["
|
|
3351
|
+
return ["+", $[$0 - 2], $[$0]];
|
|
2960
3352
|
case 383:
|
|
2961
|
-
return ["
|
|
2962
|
-
case 384:
|
|
2963
|
-
return ["|", $[$0 - 2], $[$0]];
|
|
3353
|
+
return ["-", $[$0 - 2], $[$0]];
|
|
2964
3354
|
case 385:
|
|
2965
|
-
|
|
2966
|
-
case 387:
|
|
3355
|
+
return ["**", $[$0 - 2], $[$0]];
|
|
2967
3356
|
case 388:
|
|
3357
|
+
return ["&", $[$0 - 2], $[$0]];
|
|
2968
3358
|
case 389:
|
|
3359
|
+
return ["^", $[$0 - 2], $[$0]];
|
|
2969
3360
|
case 390:
|
|
2970
|
-
return ["
|
|
3361
|
+
return ["|", $[$0 - 2], $[$0]];
|
|
2971
3362
|
case 391:
|
|
2972
|
-
return ["&&", $[$0 - 2], $[$0]];
|
|
2973
3363
|
case 392:
|
|
2974
|
-
return ["||", $[$0 - 2], $[$0]];
|
|
2975
3364
|
case 393:
|
|
2976
|
-
return ["??", $[$0 - 2], $[$0]];
|
|
2977
3365
|
case 394:
|
|
2978
|
-
|
|
3366
|
+
case 395:
|
|
2979
3367
|
case 396:
|
|
2980
|
-
return ["
|
|
3368
|
+
return ["control", $[$0 - 1], $[$0 - 2], $[$0]];
|
|
3369
|
+
case 397:
|
|
3370
|
+
return ["&&", $[$0 - 2], $[$0]];
|
|
2981
3371
|
case 398:
|
|
2982
|
-
return [
|
|
3372
|
+
return ["||", $[$0 - 2], $[$0]];
|
|
2983
3373
|
case 399:
|
|
3374
|
+
return ["??", $[$0 - 2], $[$0]];
|
|
3375
|
+
case 400:
|
|
3376
|
+
return ["!?", $[$0 - 2], $[$0]];
|
|
3377
|
+
case 401:
|
|
3378
|
+
return ["|>", $[$0 - 2], $[$0]];
|
|
3379
|
+
case 403:
|
|
3380
|
+
return ["?:", $[$0 - 4], $[$0 - 2], $[$0]];
|
|
3381
|
+
case 405:
|
|
3382
|
+
return [$[$0 - 3], $[$0 - 4], $[$0 - 1]];
|
|
3383
|
+
case 406:
|
|
2984
3384
|
return [$[$0 - 2], $[$0 - 3], $[$0]];
|
|
2985
3385
|
}
|
|
2986
3386
|
},
|
|
@@ -3111,7 +3511,7 @@ var parse = parser.parse.bind(parser);
|
|
|
3111
3511
|
// src/components.js
|
|
3112
3512
|
var BIND_PREFIX = "__bind_";
|
|
3113
3513
|
var BIND_SUFFIX = "__";
|
|
3114
|
-
var LIFECYCLE_HOOKS = new Set(["
|
|
3514
|
+
var LIFECYCLE_HOOKS = new Set(["beforeMount", "mounted", "updated", "beforeUnmount", "unmounted"]);
|
|
3115
3515
|
function extractInputType(pairs) {
|
|
3116
3516
|
for (const pair of pairs) {
|
|
3117
3517
|
if (!Array.isArray(pair))
|
|
@@ -3134,6 +3534,11 @@ function getMemberName(target) {
|
|
|
3134
3534
|
}
|
|
3135
3535
|
function installComponentSupport(CodeGenerator) {
|
|
3136
3536
|
const proto = CodeGenerator.prototype;
|
|
3537
|
+
proto.localizeVar = function(line) {
|
|
3538
|
+
let result = line.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+|_empty\d+)/g, "$1");
|
|
3539
|
+
result = result.replace(/\bthis\./g, "ctx.");
|
|
3540
|
+
return result;
|
|
3541
|
+
};
|
|
3137
3542
|
proto.isHtmlTag = function(name) {
|
|
3138
3543
|
const tagPart = name.split("#")[0];
|
|
3139
3544
|
return TEMPLATE_TAGS.has(tagPart.toLowerCase());
|
|
@@ -3146,7 +3551,7 @@ function installComponentSupport(CodeGenerator) {
|
|
|
3146
3551
|
proto.collectTemplateClasses = function(sexpr) {
|
|
3147
3552
|
const classes = [];
|
|
3148
3553
|
let current = sexpr;
|
|
3149
|
-
while (
|
|
3554
|
+
while (this.is(current, ".")) {
|
|
3150
3555
|
const prop = current[2];
|
|
3151
3556
|
if (typeof prop === "string" || prop instanceof String) {
|
|
3152
3557
|
classes.unshift(prop.valueOf());
|
|
@@ -3179,7 +3584,7 @@ function installComponentSupport(CodeGenerator) {
|
|
|
3179
3584
|
const [, body] = rest;
|
|
3180
3585
|
this.usesTemplates = true;
|
|
3181
3586
|
this.usesReactivity = true;
|
|
3182
|
-
const statements =
|
|
3587
|
+
const statements = this.is(body, "block") ? body.slice(1) : [];
|
|
3183
3588
|
const stateVars = [];
|
|
3184
3589
|
const derivedVars = [];
|
|
3185
3590
|
const readonlyVars = [];
|
|
@@ -3359,192 +3764,192 @@ ${blockFactoriesCode}return ${lines.join(`
|
|
|
3359
3764
|
throw new Error("render blocks can only be used inside a component");
|
|
3360
3765
|
};
|
|
3361
3766
|
proto.buildRender = function(body) {
|
|
3362
|
-
this.
|
|
3363
|
-
this.
|
|
3364
|
-
this.
|
|
3365
|
-
this.
|
|
3366
|
-
this.
|
|
3367
|
-
this.
|
|
3368
|
-
const statements =
|
|
3767
|
+
this._elementCount = 0;
|
|
3768
|
+
this._textCount = 0;
|
|
3769
|
+
this._blockCount = 0;
|
|
3770
|
+
this._createLines = [];
|
|
3771
|
+
this._setupLines = [];
|
|
3772
|
+
this._blockFactories = [];
|
|
3773
|
+
const statements = this.is(body, "block") ? body.slice(1) : [body];
|
|
3369
3774
|
let rootVar;
|
|
3370
3775
|
if (statements.length === 0) {
|
|
3371
3776
|
rootVar = "null";
|
|
3372
3777
|
} else if (statements.length === 1) {
|
|
3373
|
-
rootVar = this.
|
|
3778
|
+
rootVar = this.generateNode(statements[0]);
|
|
3374
3779
|
} else {
|
|
3375
3780
|
rootVar = this.newElementVar("frag");
|
|
3376
|
-
this.
|
|
3781
|
+
this._createLines.push(`${rootVar} = document.createDocumentFragment();`);
|
|
3377
3782
|
for (const stmt of statements) {
|
|
3378
|
-
const childVar = this.
|
|
3379
|
-
this.
|
|
3783
|
+
const childVar = this.generateNode(stmt);
|
|
3784
|
+
this._createLines.push(`${rootVar}.appendChild(${childVar});`);
|
|
3380
3785
|
}
|
|
3381
3786
|
}
|
|
3382
3787
|
return {
|
|
3383
|
-
createLines: this.
|
|
3384
|
-
setupLines: this.
|
|
3385
|
-
blockFactories: this.
|
|
3788
|
+
createLines: this._createLines,
|
|
3789
|
+
setupLines: this._setupLines,
|
|
3790
|
+
blockFactories: this._blockFactories,
|
|
3386
3791
|
rootVar
|
|
3387
3792
|
};
|
|
3388
3793
|
};
|
|
3389
3794
|
proto.newBlockVar = function() {
|
|
3390
|
-
return `create_block_${this.
|
|
3795
|
+
return `create_block_${this._blockCount++}`;
|
|
3391
3796
|
};
|
|
3392
3797
|
proto.newElementVar = function(hint = "el") {
|
|
3393
|
-
return `this._${hint}${this.
|
|
3798
|
+
return `this._${hint}${this._elementCount++}`;
|
|
3394
3799
|
};
|
|
3395
3800
|
proto.newTextVar = function() {
|
|
3396
|
-
return `this._t${this.
|
|
3801
|
+
return `this._t${this._textCount++}`;
|
|
3397
3802
|
};
|
|
3398
|
-
proto.
|
|
3803
|
+
proto.generateNode = function(sexpr) {
|
|
3399
3804
|
if (typeof sexpr === "string" || sexpr instanceof String) {
|
|
3400
3805
|
const str = sexpr.valueOf();
|
|
3401
3806
|
if (str.startsWith('"') || str.startsWith("'") || str.startsWith("`")) {
|
|
3402
3807
|
const textVar2 = this.newTextVar();
|
|
3403
|
-
this.
|
|
3808
|
+
this._createLines.push(`${textVar2} = document.createTextNode(${str});`);
|
|
3404
3809
|
return textVar2;
|
|
3405
3810
|
}
|
|
3406
3811
|
if (this.reactiveMembers && this.reactiveMembers.has(str)) {
|
|
3407
3812
|
const textVar2 = this.newTextVar();
|
|
3408
|
-
this.
|
|
3409
|
-
this.
|
|
3813
|
+
this._createLines.push(`${textVar2} = document.createTextNode('');`);
|
|
3814
|
+
this._setupLines.push(`__effect(() => { ${textVar2}.data = this.${str}.value; });`);
|
|
3410
3815
|
return textVar2;
|
|
3411
3816
|
}
|
|
3412
3817
|
const elVar = this.newElementVar();
|
|
3413
|
-
this.
|
|
3818
|
+
this._createLines.push(`${elVar} = document.createElement('${str}');`);
|
|
3414
3819
|
return elVar;
|
|
3415
3820
|
}
|
|
3416
3821
|
if (!Array.isArray(sexpr)) {
|
|
3417
3822
|
const commentVar = this.newElementVar("c");
|
|
3418
|
-
this.
|
|
3823
|
+
this._createLines.push(`${commentVar} = document.createComment('unknown');`);
|
|
3419
3824
|
return commentVar;
|
|
3420
3825
|
}
|
|
3421
3826
|
const [head, ...rest] = sexpr;
|
|
3422
3827
|
const headStr = typeof head === "string" ? head : head instanceof String ? head.valueOf() : null;
|
|
3423
3828
|
if (headStr && this.isComponent(headStr)) {
|
|
3424
|
-
return this.
|
|
3829
|
+
return this.generateChildComponent(headStr, rest);
|
|
3425
3830
|
}
|
|
3426
3831
|
if (headStr && this.isHtmlTag(headStr)) {
|
|
3427
|
-
return this.
|
|
3832
|
+
return this.generateTag(headStr, [], rest);
|
|
3428
3833
|
}
|
|
3429
3834
|
if (headStr === ".") {
|
|
3430
3835
|
const [, obj, prop] = sexpr;
|
|
3431
3836
|
if (obj === "this" && typeof prop === "string") {
|
|
3432
3837
|
if (this.reactiveMembers && this.reactiveMembers.has(prop)) {
|
|
3433
3838
|
const textVar3 = this.newTextVar();
|
|
3434
|
-
this.
|
|
3435
|
-
this.
|
|
3839
|
+
this._createLines.push(`${textVar3} = document.createTextNode('');`);
|
|
3840
|
+
this._setupLines.push(`__effect(() => { ${textVar3}.data = this.${prop}.value; });`);
|
|
3436
3841
|
return textVar3;
|
|
3437
3842
|
}
|
|
3438
3843
|
if (this.componentMembers && this.componentMembers.has(prop)) {
|
|
3439
3844
|
const slotVar = this.newElementVar("slot");
|
|
3440
|
-
this.
|
|
3845
|
+
this._createLines.push(`${slotVar} = this.${prop} instanceof Node ? this.${prop} : (this.${prop} != null ? document.createTextNode(String(this.${prop})) : document.createComment(''));`);
|
|
3441
3846
|
return slotVar;
|
|
3442
3847
|
}
|
|
3443
3848
|
}
|
|
3444
3849
|
const { tag, classes } = this.collectTemplateClasses(sexpr);
|
|
3445
3850
|
if (tag && this.isHtmlTag(tag)) {
|
|
3446
|
-
return this.
|
|
3851
|
+
return this.generateTag(tag, classes, []);
|
|
3447
3852
|
}
|
|
3448
3853
|
const textVar2 = this.newTextVar();
|
|
3449
3854
|
const exprCode2 = this.generateInComponent(sexpr, "value");
|
|
3450
|
-
this.
|
|
3855
|
+
this._createLines.push(`${textVar2} = document.createTextNode(String(${exprCode2}));`);
|
|
3451
3856
|
return textVar2;
|
|
3452
3857
|
}
|
|
3453
3858
|
if (Array.isArray(head)) {
|
|
3454
3859
|
if (Array.isArray(head[0]) && head[0][0] === "." && (head[0][2] === "__cx__" || head[0][2] instanceof String && head[0][2].valueOf() === "__cx__")) {
|
|
3455
3860
|
const tag2 = typeof head[0][1] === "string" ? head[0][1] : head[0][1].valueOf();
|
|
3456
3861
|
const classExprs = head.slice(1);
|
|
3457
|
-
return this.
|
|
3862
|
+
return this.generateDynamicTag(tag2, classExprs, rest);
|
|
3458
3863
|
}
|
|
3459
3864
|
const { tag, classes } = this.collectTemplateClasses(head);
|
|
3460
3865
|
if (tag && this.isHtmlTag(tag)) {
|
|
3461
3866
|
if (classes.length === 1 && classes[0] === "__cx__") {
|
|
3462
|
-
return this.
|
|
3867
|
+
return this.generateDynamicTag(tag, rest, []);
|
|
3463
3868
|
}
|
|
3464
|
-
return this.
|
|
3869
|
+
return this.generateTag(tag, classes, rest);
|
|
3465
3870
|
}
|
|
3466
3871
|
}
|
|
3467
3872
|
if (headStr === "->" || headStr === "=>") {
|
|
3468
|
-
return this.
|
|
3873
|
+
return this.generateTemplateBlock(rest[1]);
|
|
3469
3874
|
}
|
|
3470
3875
|
if (headStr === "if") {
|
|
3471
|
-
return this.
|
|
3876
|
+
return this.generateConditional(sexpr);
|
|
3472
3877
|
}
|
|
3473
3878
|
if (headStr === "for" || headStr === "for-in" || headStr === "for-of" || headStr === "for-as") {
|
|
3474
|
-
return this.
|
|
3879
|
+
return this.generateTemplateLoop(sexpr);
|
|
3475
3880
|
}
|
|
3476
3881
|
const textVar = this.newTextVar();
|
|
3477
3882
|
const exprCode = this.generateInComponent(sexpr, "value");
|
|
3478
3883
|
if (this.hasReactiveDeps(sexpr)) {
|
|
3479
|
-
this.
|
|
3480
|
-
this.
|
|
3884
|
+
this._createLines.push(`${textVar} = document.createTextNode('');`);
|
|
3885
|
+
this._setupLines.push(`__effect(() => { ${textVar}.data = ${exprCode}; });`);
|
|
3481
3886
|
} else {
|
|
3482
|
-
this.
|
|
3887
|
+
this._createLines.push(`${textVar} = document.createTextNode(String(${exprCode}));`);
|
|
3483
3888
|
}
|
|
3484
3889
|
return textVar;
|
|
3485
3890
|
};
|
|
3486
|
-
proto.
|
|
3891
|
+
proto.generateTag = function(tag, classes, args) {
|
|
3487
3892
|
const elVar = this.newElementVar();
|
|
3488
|
-
this.
|
|
3893
|
+
this._createLines.push(`${elVar} = document.createElement('${tag}');`);
|
|
3489
3894
|
if (classes.length > 0) {
|
|
3490
|
-
this.
|
|
3895
|
+
this._createLines.push(`${elVar}.className = '${classes.join(" ")}';`);
|
|
3491
3896
|
}
|
|
3492
3897
|
for (const arg of args) {
|
|
3493
3898
|
if (Array.isArray(arg) && (arg[0] === "->" || arg[0] === "=>")) {
|
|
3494
3899
|
const block = arg[2];
|
|
3495
|
-
if (
|
|
3900
|
+
if (this.is(block, "block")) {
|
|
3496
3901
|
for (const child of block.slice(1)) {
|
|
3497
|
-
const childVar = this.
|
|
3498
|
-
this.
|
|
3902
|
+
const childVar = this.generateNode(child);
|
|
3903
|
+
this._createLines.push(`${elVar}.appendChild(${childVar});`);
|
|
3499
3904
|
}
|
|
3500
3905
|
} else if (block) {
|
|
3501
|
-
const childVar = this.
|
|
3502
|
-
this.
|
|
3906
|
+
const childVar = this.generateNode(block);
|
|
3907
|
+
this._createLines.push(`${elVar}.appendChild(${childVar});`);
|
|
3503
3908
|
}
|
|
3504
|
-
} else if (
|
|
3505
|
-
this.
|
|
3909
|
+
} else if (this.is(arg, "object")) {
|
|
3910
|
+
this.generateAttributes(elVar, arg);
|
|
3506
3911
|
} else if (typeof arg === "string") {
|
|
3507
3912
|
const textVar = this.newTextVar();
|
|
3508
3913
|
if (arg.startsWith('"') || arg.startsWith("'") || arg.startsWith("`")) {
|
|
3509
|
-
this.
|
|
3914
|
+
this._createLines.push(`${textVar} = document.createTextNode(${arg});`);
|
|
3510
3915
|
} else if (this.reactiveMembers && this.reactiveMembers.has(arg)) {
|
|
3511
|
-
this.
|
|
3512
|
-
this.
|
|
3916
|
+
this._createLines.push(`${textVar} = document.createTextNode('');`);
|
|
3917
|
+
this._setupLines.push(`__effect(() => { ${textVar}.data = this.${arg}.value; });`);
|
|
3513
3918
|
} else if (this.componentMembers && this.componentMembers.has(arg)) {
|
|
3514
|
-
this.
|
|
3919
|
+
this._createLines.push(`${textVar} = document.createTextNode(String(this.${arg}));`);
|
|
3515
3920
|
} else {
|
|
3516
|
-
this.
|
|
3921
|
+
this._createLines.push(`${textVar} = document.createTextNode(String(${arg}));`);
|
|
3517
3922
|
}
|
|
3518
|
-
this.
|
|
3923
|
+
this._createLines.push(`${elVar}.appendChild(${textVar});`);
|
|
3519
3924
|
} else if (arg instanceof String) {
|
|
3520
3925
|
const val = arg.valueOf();
|
|
3521
3926
|
const textVar = this.newTextVar();
|
|
3522
3927
|
if (val.startsWith('"') || val.startsWith("'") || val.startsWith("`")) {
|
|
3523
|
-
this.
|
|
3928
|
+
this._createLines.push(`${textVar} = document.createTextNode(${val});`);
|
|
3524
3929
|
} else if (this.reactiveMembers && this.reactiveMembers.has(val)) {
|
|
3525
|
-
this.
|
|
3526
|
-
this.
|
|
3930
|
+
this._createLines.push(`${textVar} = document.createTextNode('');`);
|
|
3931
|
+
this._setupLines.push(`__effect(() => { ${textVar}.data = this.${val}.value; });`);
|
|
3527
3932
|
} else {
|
|
3528
|
-
this.
|
|
3933
|
+
this._createLines.push(`${textVar} = document.createTextNode(String(${val}));`);
|
|
3529
3934
|
}
|
|
3530
|
-
this.
|
|
3935
|
+
this._createLines.push(`${elVar}.appendChild(${textVar});`);
|
|
3531
3936
|
} else if (arg) {
|
|
3532
|
-
const childVar = this.
|
|
3533
|
-
this.
|
|
3937
|
+
const childVar = this.generateNode(arg);
|
|
3938
|
+
this._createLines.push(`${elVar}.appendChild(${childVar});`);
|
|
3534
3939
|
}
|
|
3535
3940
|
}
|
|
3536
3941
|
return elVar;
|
|
3537
3942
|
};
|
|
3538
|
-
proto.
|
|
3943
|
+
proto.generateDynamicTag = function(tag, classExprs, children) {
|
|
3539
3944
|
const elVar = this.newElementVar();
|
|
3540
|
-
this.
|
|
3945
|
+
this._createLines.push(`${elVar} = document.createElement('${tag}');`);
|
|
3541
3946
|
if (classExprs.length > 0) {
|
|
3542
3947
|
const classArgs = classExprs.map((e) => this.generateInComponent(e, "value")).join(", ");
|
|
3543
3948
|
const hasReactive = classExprs.some((e) => this.hasReactiveDeps(e));
|
|
3544
3949
|
if (hasReactive) {
|
|
3545
|
-
this.
|
|
3950
|
+
this._setupLines.push(`__effect(() => { ${elVar}.className = __cx__(${classArgs}); });`);
|
|
3546
3951
|
} else {
|
|
3547
|
-
this.
|
|
3952
|
+
this._createLines.push(`${elVar}.className = __cx__(${classArgs});`);
|
|
3548
3953
|
}
|
|
3549
3954
|
}
|
|
3550
3955
|
for (const arg of children) {
|
|
@@ -3554,42 +3959,42 @@ ${blockFactoriesCode}return ${lines.join(`
|
|
|
3554
3959
|
const blockHead = Array.isArray(block) ? block[0] instanceof String ? block[0].valueOf() : block[0] : null;
|
|
3555
3960
|
if (blockHead === "block") {
|
|
3556
3961
|
for (const child of block.slice(1)) {
|
|
3557
|
-
const childVar = this.
|
|
3558
|
-
this.
|
|
3962
|
+
const childVar = this.generateNode(child);
|
|
3963
|
+
this._createLines.push(`${elVar}.appendChild(${childVar});`);
|
|
3559
3964
|
}
|
|
3560
3965
|
} else if (block) {
|
|
3561
|
-
const childVar = this.
|
|
3562
|
-
this.
|
|
3966
|
+
const childVar = this.generateNode(block);
|
|
3967
|
+
this._createLines.push(`${elVar}.appendChild(${childVar});`);
|
|
3563
3968
|
}
|
|
3564
|
-
} else if (
|
|
3565
|
-
this.
|
|
3969
|
+
} else if (this.is(arg, "object")) {
|
|
3970
|
+
this.generateAttributes(elVar, arg);
|
|
3566
3971
|
} else if (typeof arg === "string" || arg instanceof String) {
|
|
3567
3972
|
const textVar = this.newTextVar();
|
|
3568
3973
|
const argStr = arg.valueOf();
|
|
3569
3974
|
if (argStr.startsWith('"') || argStr.startsWith("'") || argStr.startsWith("`")) {
|
|
3570
|
-
this.
|
|
3975
|
+
this._createLines.push(`${textVar} = document.createTextNode(${argStr});`);
|
|
3571
3976
|
} else if (this.reactiveMembers && this.reactiveMembers.has(argStr)) {
|
|
3572
|
-
this.
|
|
3573
|
-
this.
|
|
3977
|
+
this._createLines.push(`${textVar} = document.createTextNode('');`);
|
|
3978
|
+
this._setupLines.push(`__effect(() => { ${textVar}.data = this.${argStr}.value; });`);
|
|
3574
3979
|
} else {
|
|
3575
|
-
this.
|
|
3980
|
+
this._createLines.push(`${textVar} = document.createTextNode(${this.generateInComponent(arg, "value")});`);
|
|
3576
3981
|
}
|
|
3577
|
-
this.
|
|
3982
|
+
this._createLines.push(`${elVar}.appendChild(${textVar});`);
|
|
3578
3983
|
} else {
|
|
3579
|
-
const childVar = this.
|
|
3580
|
-
this.
|
|
3984
|
+
const childVar = this.generateNode(arg);
|
|
3985
|
+
this._createLines.push(`${elVar}.appendChild(${childVar});`);
|
|
3581
3986
|
}
|
|
3582
3987
|
}
|
|
3583
3988
|
return elVar;
|
|
3584
3989
|
};
|
|
3585
|
-
proto.
|
|
3990
|
+
proto.generateAttributes = function(elVar, objExpr) {
|
|
3586
3991
|
const inputType = extractInputType(objExpr.slice(1));
|
|
3587
3992
|
for (let i = 1;i < objExpr.length; i++) {
|
|
3588
3993
|
let [key, value] = objExpr[i];
|
|
3589
|
-
if (
|
|
3994
|
+
if (this.is(key, ".") && key[1] === "this") {
|
|
3590
3995
|
const eventName = key[2];
|
|
3591
3996
|
const handlerCode = this.generateInComponent(value, "value");
|
|
3592
|
-
this.
|
|
3997
|
+
this._createLines.push(`${elVar}.addEventListener('${eventName}', (e) => (${handlerCode})(e));`);
|
|
3593
3998
|
continue;
|
|
3594
3999
|
}
|
|
3595
4000
|
if (typeof key === "string") {
|
|
@@ -3607,58 +4012,58 @@ ${blockFactoriesCode}return ${lines.join(`
|
|
|
3607
4012
|
event = "input";
|
|
3608
4013
|
valueAccessor = inputType === "number" || inputType === "range" ? "e.target.valueAsNumber" : "e.target.value";
|
|
3609
4014
|
}
|
|
3610
|
-
this.
|
|
3611
|
-
this.
|
|
4015
|
+
this._setupLines.push(`__effect(() => { ${elVar}.${prop} = ${valueCode2}; });`);
|
|
4016
|
+
this._createLines.push(`${elVar}.addEventListener('${event}', (e) => ${valueCode2} = ${valueAccessor});`);
|
|
3612
4017
|
continue;
|
|
3613
4018
|
}
|
|
3614
4019
|
const valueCode = this.generateInComponent(value, "value");
|
|
3615
4020
|
if ((key === "value" || key === "checked") && this.hasReactiveDeps(value)) {
|
|
3616
|
-
this.
|
|
4021
|
+
this._setupLines.push(`__effect(() => { ${elVar}.${key} = ${valueCode}; });`);
|
|
3617
4022
|
const event = key === "checked" ? "change" : "input";
|
|
3618
4023
|
const accessor = key === "checked" ? "e.target.checked" : inputType === "number" || inputType === "range" ? "e.target.valueAsNumber" : "e.target.value";
|
|
3619
|
-
this.
|
|
4024
|
+
this._createLines.push(`${elVar}.addEventListener('${event}', (e) => { ${valueCode} = ${accessor}; });`);
|
|
3620
4025
|
continue;
|
|
3621
4026
|
}
|
|
3622
4027
|
if (this.hasReactiveDeps(value)) {
|
|
3623
|
-
this.
|
|
4028
|
+
this._setupLines.push(`__effect(() => { ${elVar}.setAttribute('${key}', ${valueCode}); });`);
|
|
3624
4029
|
} else {
|
|
3625
|
-
this.
|
|
4030
|
+
this._createLines.push(`${elVar}.setAttribute('${key}', ${valueCode});`);
|
|
3626
4031
|
}
|
|
3627
4032
|
}
|
|
3628
4033
|
}
|
|
3629
4034
|
};
|
|
3630
|
-
proto.
|
|
4035
|
+
proto.generateTemplateBlock = function(body) {
|
|
3631
4036
|
if (!Array.isArray(body) || body[0] !== "block") {
|
|
3632
|
-
return this.
|
|
4037
|
+
return this.generateNode(body);
|
|
3633
4038
|
}
|
|
3634
4039
|
const statements = body.slice(1);
|
|
3635
4040
|
if (statements.length === 0) {
|
|
3636
4041
|
const commentVar = this.newElementVar("empty");
|
|
3637
|
-
this.
|
|
4042
|
+
this._createLines.push(`${commentVar} = document.createComment('');`);
|
|
3638
4043
|
return commentVar;
|
|
3639
4044
|
}
|
|
3640
4045
|
if (statements.length === 1) {
|
|
3641
|
-
return this.
|
|
4046
|
+
return this.generateNode(statements[0]);
|
|
3642
4047
|
}
|
|
3643
4048
|
const fragVar = this.newElementVar("frag");
|
|
3644
|
-
this.
|
|
4049
|
+
this._createLines.push(`${fragVar} = document.createDocumentFragment();`);
|
|
3645
4050
|
for (const stmt of statements) {
|
|
3646
|
-
const childVar = this.
|
|
3647
|
-
this.
|
|
4051
|
+
const childVar = this.generateNode(stmt);
|
|
4052
|
+
this._createLines.push(`${fragVar}.appendChild(${childVar});`);
|
|
3648
4053
|
}
|
|
3649
4054
|
return fragVar;
|
|
3650
4055
|
};
|
|
3651
|
-
proto.
|
|
4056
|
+
proto.generateConditional = function(sexpr) {
|
|
3652
4057
|
const [, condition, thenBlock, elseBlock] = sexpr;
|
|
3653
4058
|
const anchorVar = this.newElementVar("anchor");
|
|
3654
|
-
this.
|
|
4059
|
+
this._createLines.push(`${anchorVar} = document.createComment('if');`);
|
|
3655
4060
|
const condCode = this.generateInComponent(condition, "value");
|
|
3656
4061
|
const thenBlockName = this.newBlockVar();
|
|
3657
|
-
this.
|
|
4062
|
+
this.generateConditionBranch(thenBlockName, thenBlock);
|
|
3658
4063
|
let elseBlockName = null;
|
|
3659
4064
|
if (elseBlock) {
|
|
3660
4065
|
elseBlockName = this.newBlockVar();
|
|
3661
|
-
this.
|
|
4066
|
+
this.generateConditionBranch(elseBlockName, elseBlock);
|
|
3662
4067
|
}
|
|
3663
4068
|
const setupLines = [];
|
|
3664
4069
|
setupLines.push(`// Conditional: ${thenBlockName}${elseBlockName ? " / " + elseBlockName : ""}`);
|
|
@@ -3693,25 +4098,21 @@ ${blockFactoriesCode}return ${lines.join(`
|
|
|
3693
4098
|
}
|
|
3694
4099
|
setupLines.push(` });`);
|
|
3695
4100
|
setupLines.push(`}`);
|
|
3696
|
-
this.
|
|
4101
|
+
this._setupLines.push(setupLines.join(`
|
|
3697
4102
|
`));
|
|
3698
4103
|
return anchorVar;
|
|
3699
4104
|
};
|
|
3700
|
-
proto.
|
|
3701
|
-
const savedCreateLines = this.
|
|
3702
|
-
const savedSetupLines = this.
|
|
3703
|
-
this.
|
|
3704
|
-
this.
|
|
3705
|
-
const rootVar = this.
|
|
3706
|
-
const createLines = this.
|
|
3707
|
-
const setupLines = this.
|
|
3708
|
-
this.
|
|
3709
|
-
this.
|
|
3710
|
-
const localizeVar = (line) =>
|
|
3711
|
-
let result = line.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+|_empty\d+)/g, "$1");
|
|
3712
|
-
result = result.replace(/\bthis\./g, "ctx.");
|
|
3713
|
-
return result;
|
|
3714
|
-
};
|
|
4105
|
+
proto.generateConditionBranch = function(blockName, block) {
|
|
4106
|
+
const savedCreateLines = this._createLines;
|
|
4107
|
+
const savedSetupLines = this._setupLines;
|
|
4108
|
+
this._createLines = [];
|
|
4109
|
+
this._setupLines = [];
|
|
4110
|
+
const rootVar = this.generateTemplateBlock(block);
|
|
4111
|
+
const createLines = this._createLines;
|
|
4112
|
+
const setupLines = this._setupLines;
|
|
4113
|
+
this._createLines = savedCreateLines;
|
|
4114
|
+
this._setupLines = savedSetupLines;
|
|
4115
|
+
const localizeVar = (line) => this.localizeVar(line);
|
|
3715
4116
|
const factoryLines = [];
|
|
3716
4117
|
factoryLines.push(`function ${blockName}(ctx) {`);
|
|
3717
4118
|
const localVars = new Set;
|
|
@@ -3755,24 +4156,24 @@ ${blockFactoriesCode}return ${lines.join(`
|
|
|
3755
4156
|
factoryLines.push(` }`);
|
|
3756
4157
|
factoryLines.push(` };`);
|
|
3757
4158
|
factoryLines.push(`}`);
|
|
3758
|
-
this.
|
|
4159
|
+
this._blockFactories.push(factoryLines.join(`
|
|
3759
4160
|
`));
|
|
3760
4161
|
};
|
|
3761
|
-
proto.
|
|
4162
|
+
proto.generateTemplateLoop = function(sexpr) {
|
|
3762
4163
|
const [head, vars, collection, guard, step, body] = sexpr;
|
|
3763
4164
|
const blockName = this.newBlockVar();
|
|
3764
4165
|
const anchorVar = this.newElementVar("anchor");
|
|
3765
|
-
this.
|
|
4166
|
+
this._createLines.push(`${anchorVar} = document.createComment('for');`);
|
|
3766
4167
|
const varNames = Array.isArray(vars) ? vars : [vars];
|
|
3767
4168
|
const itemVar = varNames[0];
|
|
3768
4169
|
const indexVar = varNames[1] || "i";
|
|
3769
4170
|
const collectionCode = this.generateInComponent(collection, "value");
|
|
3770
4171
|
let keyExpr = itemVar;
|
|
3771
|
-
if (
|
|
4172
|
+
if (this.is(body, "block") && body.length > 1) {
|
|
3772
4173
|
const firstChild = body[1];
|
|
3773
4174
|
if (Array.isArray(firstChild)) {
|
|
3774
4175
|
for (const arg of firstChild) {
|
|
3775
|
-
if (
|
|
4176
|
+
if (this.is(arg, "object")) {
|
|
3776
4177
|
for (let i = 1;i < arg.length; i++) {
|
|
3777
4178
|
const [k, v] = arg[i];
|
|
3778
4179
|
if (k === "key") {
|
|
@@ -3786,20 +4187,16 @@ ${blockFactoriesCode}return ${lines.join(`
|
|
|
3786
4187
|
}
|
|
3787
4188
|
}
|
|
3788
4189
|
}
|
|
3789
|
-
const savedCreateLines = this.
|
|
3790
|
-
const savedSetupLines = this.
|
|
3791
|
-
this.
|
|
3792
|
-
this.
|
|
3793
|
-
const itemNode = this.
|
|
3794
|
-
const itemCreateLines = this.
|
|
3795
|
-
const itemSetupLines = this.
|
|
3796
|
-
this.
|
|
3797
|
-
this.
|
|
3798
|
-
const localizeVar = (line) =>
|
|
3799
|
-
let result = line.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+|_empty\d+)/g, "$1");
|
|
3800
|
-
result = result.replace(/\bthis\./g, "ctx.");
|
|
3801
|
-
return result;
|
|
3802
|
-
};
|
|
4190
|
+
const savedCreateLines = this._createLines;
|
|
4191
|
+
const savedSetupLines = this._setupLines;
|
|
4192
|
+
this._createLines = [];
|
|
4193
|
+
this._setupLines = [];
|
|
4194
|
+
const itemNode = this.generateTemplateBlock(body);
|
|
4195
|
+
const itemCreateLines = this._createLines;
|
|
4196
|
+
const itemSetupLines = this._setupLines;
|
|
4197
|
+
this._createLines = savedCreateLines;
|
|
4198
|
+
this._setupLines = savedSetupLines;
|
|
4199
|
+
const localizeVar = (line) => this.localizeVar(line);
|
|
3803
4200
|
const factoryLines = [];
|
|
3804
4201
|
factoryLines.push(`function ${blockName}(ctx, ${itemVar}, ${indexVar}) {`);
|
|
3805
4202
|
const localVars = new Set;
|
|
@@ -3843,7 +4240,7 @@ ${blockFactoriesCode}return ${lines.join(`
|
|
|
3843
4240
|
factoryLines.push(` }`);
|
|
3844
4241
|
factoryLines.push(` };`);
|
|
3845
4242
|
factoryLines.push(`}`);
|
|
3846
|
-
this.
|
|
4243
|
+
this._blockFactories.push(factoryLines.join(`
|
|
3847
4244
|
`));
|
|
3848
4245
|
const setupLines = [];
|
|
3849
4246
|
setupLines.push(`// Loop: ${blockName}`);
|
|
@@ -3878,19 +4275,19 @@ ${blockFactoriesCode}return ${lines.join(`
|
|
|
3878
4275
|
setupLines.push(` for (const [k, v] of newMap) map.set(k, v);`);
|
|
3879
4276
|
setupLines.push(` });`);
|
|
3880
4277
|
setupLines.push(`}`);
|
|
3881
|
-
this.
|
|
4278
|
+
this._setupLines.push(setupLines.join(`
|
|
3882
4279
|
`));
|
|
3883
4280
|
return anchorVar;
|
|
3884
4281
|
};
|
|
3885
|
-
proto.
|
|
4282
|
+
proto.generateChildComponent = function(componentName, args) {
|
|
3886
4283
|
const instVar = this.newElementVar("inst");
|
|
3887
4284
|
const elVar = this.newElementVar("el");
|
|
3888
4285
|
const { propsCode, childrenSetupLines } = this.buildComponentProps(args);
|
|
3889
|
-
this.
|
|
3890
|
-
this.
|
|
3891
|
-
this.
|
|
4286
|
+
this._createLines.push(`${instVar} = new ${componentName}(${propsCode});`);
|
|
4287
|
+
this._createLines.push(`${elVar} = ${instVar}._create();`);
|
|
4288
|
+
this._setupLines.push(`if (${instVar}._setup) ${instVar}._setup();`);
|
|
3892
4289
|
for (const line of childrenSetupLines) {
|
|
3893
|
-
this.
|
|
4290
|
+
this._setupLines.push(line);
|
|
3894
4291
|
}
|
|
3895
4292
|
return elVar;
|
|
3896
4293
|
};
|
|
@@ -3899,7 +4296,7 @@ ${blockFactoriesCode}return ${lines.join(`
|
|
|
3899
4296
|
let childrenVar = null;
|
|
3900
4297
|
const childrenSetupLines = [];
|
|
3901
4298
|
for (const arg of args) {
|
|
3902
|
-
if (
|
|
4299
|
+
if (this.is(arg, "object")) {
|
|
3903
4300
|
for (let i = 1;i < arg.length; i++) {
|
|
3904
4301
|
const [key, value] = arg[i];
|
|
3905
4302
|
if (typeof key === "string") {
|
|
@@ -3910,17 +4307,17 @@ ${blockFactoriesCode}return ${lines.join(`
|
|
|
3910
4307
|
} else if (Array.isArray(arg) && (arg[0] === "->" || arg[0] === "=>")) {
|
|
3911
4308
|
const block = arg[2];
|
|
3912
4309
|
if (block) {
|
|
3913
|
-
const savedCreateLines = this.
|
|
3914
|
-
const savedSetupLines = this.
|
|
3915
|
-
this.
|
|
3916
|
-
this.
|
|
3917
|
-
childrenVar = this.
|
|
3918
|
-
const childCreateLines = this.
|
|
3919
|
-
const childSetupLinesCopy = this.
|
|
3920
|
-
this.
|
|
3921
|
-
this.
|
|
4310
|
+
const savedCreateLines = this._createLines;
|
|
4311
|
+
const savedSetupLines = this._setupLines;
|
|
4312
|
+
this._createLines = [];
|
|
4313
|
+
this._setupLines = [];
|
|
4314
|
+
childrenVar = this.generateTemplateBlock(block);
|
|
4315
|
+
const childCreateLines = this._createLines;
|
|
4316
|
+
const childSetupLinesCopy = this._setupLines;
|
|
4317
|
+
this._createLines = savedCreateLines;
|
|
4318
|
+
this._setupLines = savedSetupLines;
|
|
3922
4319
|
for (const line of childCreateLines) {
|
|
3923
|
-
this.
|
|
4320
|
+
this._createLines.push(line);
|
|
3924
4321
|
}
|
|
3925
4322
|
childrenSetupLines.push(...childSetupLinesCopy);
|
|
3926
4323
|
props.push(`children: ${childrenVar}`);
|
|
@@ -4337,7 +4734,9 @@ class CodeGenerator {
|
|
|
4337
4734
|
"continue-if": "generateContinueIf",
|
|
4338
4735
|
"?": "generateExistential",
|
|
4339
4736
|
"?:": "generateTernary",
|
|
4737
|
+
"|>": "generatePipe",
|
|
4340
4738
|
loop: "generateLoop",
|
|
4739
|
+
"loop-n": "generateLoopN",
|
|
4341
4740
|
await: "generateAwait",
|
|
4342
4741
|
yield: "generateYield",
|
|
4343
4742
|
"yield-from": "generateYieldFrom",
|
|
@@ -4464,9 +4863,9 @@ class CodeGenerator {
|
|
|
4464
4863
|
let varName = str(target);
|
|
4465
4864
|
if (!this.reactiveVars?.has(varName))
|
|
4466
4865
|
this.programVars.add(varName);
|
|
4467
|
-
} else if (
|
|
4866
|
+
} else if (this.is(target, "array")) {
|
|
4468
4867
|
this.collectVarsFromArray(target, this.programVars);
|
|
4469
|
-
} else if (
|
|
4868
|
+
} else if (this.is(target, "object")) {
|
|
4470
4869
|
this.collectVarsFromObject(target, this.programVars);
|
|
4471
4870
|
}
|
|
4472
4871
|
this.collectProgramVariables(value);
|
|
@@ -4492,13 +4891,13 @@ class CodeGenerator {
|
|
|
4492
4891
|
this.collectProgramVariables(rest[0]);
|
|
4493
4892
|
if (rest.length >= 2 && Array.isArray(rest[1]) && rest[1].length === 2 && rest[1][0] !== "block") {
|
|
4494
4893
|
let [param, catchBlock] = rest[1];
|
|
4495
|
-
if (param &&
|
|
4894
|
+
if (param && this.is(param, "object")) {
|
|
4496
4895
|
param.slice(1).forEach((pair) => {
|
|
4497
4896
|
if (Array.isArray(pair) && pair.length === 2 && typeof pair[1] === "string") {
|
|
4498
4897
|
this.programVars.add(pair[1]);
|
|
4499
4898
|
}
|
|
4500
4899
|
});
|
|
4501
|
-
} else if (param &&
|
|
4900
|
+
} else if (param && this.is(param, "array")) {
|
|
4502
4901
|
param.slice(1).forEach((item) => {
|
|
4503
4902
|
if (typeof item === "string")
|
|
4504
4903
|
this.programVars.add(item);
|
|
@@ -4530,9 +4929,9 @@ class CodeGenerator {
|
|
|
4530
4929
|
let [target, value] = rest;
|
|
4531
4930
|
if (typeof target === "string")
|
|
4532
4931
|
vars.add(target);
|
|
4533
|
-
else if (
|
|
4932
|
+
else if (this.is(target, "array"))
|
|
4534
4933
|
this.collectVarsFromArray(target, vars);
|
|
4535
|
-
else if (
|
|
4934
|
+
else if (this.is(target, "object"))
|
|
4536
4935
|
this.collectVarsFromObject(target, vars);
|
|
4537
4936
|
collect(value);
|
|
4538
4937
|
return;
|
|
@@ -4543,12 +4942,12 @@ class CodeGenerator {
|
|
|
4543
4942
|
collect(rest[0]);
|
|
4544
4943
|
if (rest.length >= 2 && Array.isArray(rest[1]) && rest[1].length === 2 && rest[1][0] !== "block") {
|
|
4545
4944
|
let [param, catchBlock] = rest[1];
|
|
4546
|
-
if (param &&
|
|
4945
|
+
if (param && this.is(param, "object")) {
|
|
4547
4946
|
param.slice(1).forEach((pair) => {
|
|
4548
4947
|
if (Array.isArray(pair) && pair.length === 2 && typeof pair[1] === "string")
|
|
4549
4948
|
vars.add(pair[1]);
|
|
4550
4949
|
});
|
|
4551
|
-
} else if (param &&
|
|
4950
|
+
} else if (param && this.is(param, "array")) {
|
|
4552
4951
|
param.slice(1).forEach((item) => {
|
|
4553
4952
|
if (typeof item === "string")
|
|
4554
4953
|
vars.add(item);
|
|
@@ -4685,7 +5084,7 @@ class CodeGenerator {
|
|
|
4685
5084
|
needsAwait = true;
|
|
4686
5085
|
let [obj, prop] = head.slice(1);
|
|
4687
5086
|
let objCode = this.generate(obj, "value");
|
|
4688
|
-
let needsParens = CodeGenerator.NUMBER_LITERAL_RE.test(objCode) ||
|
|
5087
|
+
let needsParens = CodeGenerator.NUMBER_LITERAL_RE.test(objCode) || (this.is(obj, "object") || this.is(obj, "await") || this.is(obj, "yield"));
|
|
4689
5088
|
let base = needsParens ? `(${objCode})` : objCode;
|
|
4690
5089
|
calleeCode = `${base}.${str(prop)}`;
|
|
4691
5090
|
} else {
|
|
@@ -4716,9 +5115,9 @@ class CodeGenerator {
|
|
|
4716
5115
|
let blockStmts = ["def", "class", "if", "unless", "for-in", "for-of", "for-as", "while", "until", "loop", "switch", "try"];
|
|
4717
5116
|
let statementsCode = other.map((stmt, index) => {
|
|
4718
5117
|
let isSingle = other.length === 1 && imports.length === 0 && exports.length === 0;
|
|
4719
|
-
let isObj =
|
|
5118
|
+
let isObj = this.is(stmt, "object");
|
|
4720
5119
|
let isObjComp = isObj && stmt.length === 2 && Array.isArray(stmt[1]) && Array.isArray(stmt[1][1]) && stmt[1][1][0] === "comprehension";
|
|
4721
|
-
let isAlreadyExpr =
|
|
5120
|
+
let isAlreadyExpr = this.is(stmt, "comprehension") || this.is(stmt, "object-comprehension") || this.is(stmt, "do-iife");
|
|
4722
5121
|
let hasNoVars = this.programVars.size === 0;
|
|
4723
5122
|
let needsParens = isSingle && isObj && hasNoVars && !isAlreadyExpr && !isObjComp;
|
|
4724
5123
|
let isLast = index === other.length - 1;
|
|
@@ -4753,46 +5152,49 @@ class CodeGenerator {
|
|
|
4753
5152
|
`;
|
|
4754
5153
|
needsBlank = true;
|
|
4755
5154
|
}
|
|
4756
|
-
|
|
4757
|
-
|
|
5155
|
+
let skip = this.options.skipPreamble;
|
|
5156
|
+
if (!skip) {
|
|
5157
|
+
if (this.helpers.has("slice")) {
|
|
5158
|
+
code += `const slice = [].slice;
|
|
4758
5159
|
`;
|
|
4759
|
-
|
|
4760
|
-
|
|
4761
|
-
|
|
4762
|
-
|
|
5160
|
+
needsBlank = true;
|
|
5161
|
+
}
|
|
5162
|
+
if (this.helpers.has("modulo")) {
|
|
5163
|
+
code += `const modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
|
|
4763
5164
|
`;
|
|
4764
|
-
|
|
4765
|
-
|
|
4766
|
-
|
|
4767
|
-
|
|
5165
|
+
needsBlank = true;
|
|
5166
|
+
}
|
|
5167
|
+
if (this.helpers.has("toSearchable")) {
|
|
5168
|
+
code += `const toSearchable = (v, allowNewlines) => {
|
|
4768
5169
|
`;
|
|
4769
|
-
|
|
5170
|
+
code += ` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
|
|
4770
5171
|
`;
|
|
4771
|
-
|
|
5172
|
+
code += ` if (v == null) return "";
|
|
4772
5173
|
`;
|
|
4773
|
-
|
|
5174
|
+
code += ` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
|
|
4774
5175
|
`;
|
|
4775
|
-
|
|
5176
|
+
code += ` if (typeof v === "symbol") return v.description || "";
|
|
4776
5177
|
`;
|
|
4777
|
-
|
|
5178
|
+
code += ` if (v instanceof Uint8Array || v instanceof ArrayBuffer) {
|
|
4778
5179
|
`;
|
|
4779
|
-
|
|
5180
|
+
code += ` return new TextDecoder().decode(v instanceof Uint8Array ? v : new Uint8Array(v));
|
|
4780
5181
|
`;
|
|
4781
|
-
|
|
5182
|
+
code += ` }
|
|
4782
5183
|
`;
|
|
4783
|
-
|
|
5184
|
+
code += ` if (Array.isArray(v)) return v.join(",");
|
|
4784
5185
|
`;
|
|
4785
|
-
|
|
5186
|
+
code += ` if (typeof v.toString === "function" && v.toString !== Object.prototype.toString) {
|
|
4786
5187
|
`;
|
|
4787
|
-
|
|
5188
|
+
code += ` try { return v.toString(); } catch { return ""; }
|
|
4788
5189
|
`;
|
|
4789
|
-
|
|
5190
|
+
code += ` }
|
|
4790
5191
|
`;
|
|
4791
|
-
|
|
5192
|
+
code += ` return "";
|
|
4792
5193
|
`;
|
|
4793
|
-
|
|
5194
|
+
code += `};
|
|
4794
5195
|
`;
|
|
4795
|
-
|
|
5196
|
+
needsBlank = true;
|
|
5197
|
+
}
|
|
4796
5198
|
}
|
|
4797
5199
|
let exportsCode = "";
|
|
4798
5200
|
if (exports.length > 0) {
|
|
@@ -4800,7 +5202,7 @@ class CodeGenerator {
|
|
|
4800
5202
|
` + exports.map((s) => this.addSemicolon(s, this.generate(s, "statement"))).join(`
|
|
4801
5203
|
`);
|
|
4802
5204
|
}
|
|
4803
|
-
if (this.usesReactivity && !
|
|
5205
|
+
if (this.usesReactivity && !skip) {
|
|
4804
5206
|
if (typeof globalThis !== "undefined" && globalThis.__rip) {
|
|
4805
5207
|
code += `const { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
|
|
4806
5208
|
`;
|
|
@@ -4809,7 +5211,7 @@ class CodeGenerator {
|
|
|
4809
5211
|
}
|
|
4810
5212
|
needsBlank = true;
|
|
4811
5213
|
}
|
|
4812
|
-
if (this.usesTemplates && !
|
|
5214
|
+
if (this.usesTemplates && !skip) {
|
|
4813
5215
|
if (typeof globalThis !== "undefined" && globalThis.__ripComponent) {
|
|
4814
5216
|
code += `const { isSignal, __pushComponent, __popComponent, setContext, getContext, hasContext, __cx__ } = globalThis.__ripComponent;
|
|
4815
5217
|
`;
|
|
@@ -4818,7 +5220,7 @@ class CodeGenerator {
|
|
|
4818
5220
|
}
|
|
4819
5221
|
needsBlank = true;
|
|
4820
5222
|
}
|
|
4821
|
-
if (this.dataSection !== null && this.dataSection !== undefined) {
|
|
5223
|
+
if (this.dataSection !== null && this.dataSection !== undefined && !skip) {
|
|
4822
5224
|
code += `var DATA;
|
|
4823
5225
|
_setDataSection();
|
|
4824
5226
|
`;
|
|
@@ -4843,6 +5245,22 @@ function _setDataSection() {
|
|
|
4843
5245
|
return `(${op}${this.generate(rest[0], "value")})`;
|
|
4844
5246
|
}
|
|
4845
5247
|
let [left, right] = rest;
|
|
5248
|
+
if (op === "*") {
|
|
5249
|
+
let leftStr = left?.valueOf?.() ?? left;
|
|
5250
|
+
if (typeof leftStr === "string" && /^["']/.test(leftStr)) {
|
|
5251
|
+
return `${this.generate(left, "value")}.repeat(${this.generate(right, "value")})`;
|
|
5252
|
+
}
|
|
5253
|
+
}
|
|
5254
|
+
let COMPARE_OPS = new Set(["<", ">", "<=", ">="]);
|
|
5255
|
+
if (COMPARE_OPS.has(op) && Array.isArray(left)) {
|
|
5256
|
+
let leftOp = left[0]?.valueOf?.() ?? left[0];
|
|
5257
|
+
if (COMPARE_OPS.has(leftOp)) {
|
|
5258
|
+
let a = this.generate(left[1], "value");
|
|
5259
|
+
let b = this.generate(left[2], "value");
|
|
5260
|
+
let c = this.generate(right, "value");
|
|
5261
|
+
return `((${a} ${leftOp} ${b}) && (${b} ${op} ${c}))`;
|
|
5262
|
+
}
|
|
5263
|
+
}
|
|
4846
5264
|
if (op === "!?") {
|
|
4847
5265
|
let l = this.generate(left, "value"), r = this.generate(right, "value");
|
|
4848
5266
|
return `(${l} !== undefined ? ${l} : ${r})`;
|
|
@@ -4870,7 +5288,7 @@ function _setDataSection() {
|
|
|
4870
5288
|
generateAssignment(head, rest, context, sexpr) {
|
|
4871
5289
|
let [target, value] = rest;
|
|
4872
5290
|
let op = head === "?=" ? "??=" : head;
|
|
4873
|
-
let isFnValue =
|
|
5291
|
+
let isFnValue = this.is(value, "->") || this.is(value, "=>") || this.is(value, "def");
|
|
4874
5292
|
if (target instanceof String && meta(target, "await") !== undefined && !isFnValue) {
|
|
4875
5293
|
let sigil = meta(target, "await") === true ? "!" : "&";
|
|
4876
5294
|
throw new Error(`Cannot use ${sigil} sigil in variable declaration '${str(target)}'.`);
|
|
@@ -4878,8 +5296,8 @@ function _setDataSection() {
|
|
|
4878
5296
|
if (target instanceof String && meta(target, "await") === true && isFnValue) {
|
|
4879
5297
|
this.nextFunctionIsVoid = true;
|
|
4880
5298
|
}
|
|
4881
|
-
let isEmptyArr =
|
|
4882
|
-
let isEmptyObj =
|
|
5299
|
+
let isEmptyArr = this.is(target, "array", 0);
|
|
5300
|
+
let isEmptyObj = this.is(target, "object", 0);
|
|
4883
5301
|
if (isEmptyArr || isEmptyObj) {
|
|
4884
5302
|
let v = this.generate(value, "value");
|
|
4885
5303
|
return isEmptyObj && context === "statement" ? `(${v})` : v;
|
|
@@ -4907,8 +5325,8 @@ function _setDataSection() {
|
|
|
4907
5325
|
return `if (!(${targetCode2} = ${exprCode})) ${ctrlCode}`;
|
|
4908
5326
|
return `if ((${targetCode2} = ${exprCode})) ${ctrlCode}`;
|
|
4909
5327
|
}
|
|
4910
|
-
if (
|
|
4911
|
-
let restIdx = target.slice(1).findIndex((el) =>
|
|
5328
|
+
if (this.is(target, "array")) {
|
|
5329
|
+
let restIdx = target.slice(1).findIndex((el) => this.is(el, "...") || el === "...");
|
|
4912
5330
|
if (restIdx !== -1 && restIdx < target.length - 2) {
|
|
4913
5331
|
let elements = target.slice(1);
|
|
4914
5332
|
let afterRest = elements.slice(restIdx + 1);
|
|
@@ -4924,11 +5342,11 @@ function _setDataSection() {
|
|
|
4924
5342
|
return;
|
|
4925
5343
|
if (typeof el === "string")
|
|
4926
5344
|
this.programVars.add(el);
|
|
4927
|
-
else if (
|
|
5345
|
+
else if (this.is(el, "...") && typeof el[1] === "string")
|
|
4928
5346
|
this.programVars.add(el[1]);
|
|
4929
5347
|
});
|
|
4930
5348
|
let restEl = elements[restIdx];
|
|
4931
|
-
let restVar =
|
|
5349
|
+
let restVar = this.is(restEl, "...") ? restEl[1] : null;
|
|
4932
5350
|
let stmts = [];
|
|
4933
5351
|
if (beforePattern)
|
|
4934
5352
|
stmts.push(`[${beforePattern}] = ${valueCode2}`);
|
|
@@ -4941,7 +5359,7 @@ function _setDataSection() {
|
|
|
4941
5359
|
}
|
|
4942
5360
|
if (context === "statement" && head === "=" && Array.isArray(value) && (value[0] === "||" || value[0] === "&&") && value.length === 3) {
|
|
4943
5361
|
let [binOp, left, right] = value;
|
|
4944
|
-
if (
|
|
5362
|
+
if ((this.is(right, "unless") || this.is(right, "if")) && right.length === 3) {
|
|
4945
5363
|
let [condType, condition, wrappedValue] = right;
|
|
4946
5364
|
let unwrapped = Array.isArray(wrappedValue) && wrappedValue.length === 1 ? wrappedValue[0] : wrappedValue;
|
|
4947
5365
|
let fullValue = [binOp, left, unwrapped];
|
|
@@ -4976,11 +5394,11 @@ function _setDataSection() {
|
|
|
4976
5394
|
this.suppressReactiveUnwrap = false;
|
|
4977
5395
|
}
|
|
4978
5396
|
let valueCode = this.generate(value, "value");
|
|
4979
|
-
let isObjLit =
|
|
5397
|
+
let isObjLit = this.is(value, "object");
|
|
4980
5398
|
if (!isObjLit)
|
|
4981
5399
|
valueCode = this.unwrap(valueCode);
|
|
4982
5400
|
let needsParensVal = context === "value";
|
|
4983
|
-
let needsParensObj = context === "statement" &&
|
|
5401
|
+
let needsParensObj = context === "statement" && this.is(target, "object");
|
|
4984
5402
|
if (needsParensVal || needsParensObj)
|
|
4985
5403
|
return `(${targetCode} ${op} ${valueCode})`;
|
|
4986
5404
|
return `${targetCode} ${op} ${valueCode}`;
|
|
@@ -4990,7 +5408,7 @@ function _setDataSection() {
|
|
|
4990
5408
|
this.suppressReactiveUnwrap = true;
|
|
4991
5409
|
let objCode = this.generate(obj, "value");
|
|
4992
5410
|
this.suppressReactiveUnwrap = false;
|
|
4993
|
-
let needsParens = CodeGenerator.NUMBER_LITERAL_RE.test(objCode) ||
|
|
5411
|
+
let needsParens = CodeGenerator.NUMBER_LITERAL_RE.test(objCode) || (this.is(obj, "object") || this.is(obj, "await") || this.is(obj, "yield"));
|
|
4994
5412
|
let base = needsParens ? `(${objCode})` : objCode;
|
|
4995
5413
|
if (meta(prop, "await") === true)
|
|
4996
5414
|
return `await ${base}.${str(prop)}()`;
|
|
@@ -5013,14 +5431,14 @@ function _setDataSection() {
|
|
|
5013
5431
|
}
|
|
5014
5432
|
generateIndexAccess(head, rest) {
|
|
5015
5433
|
let [arr, index] = rest;
|
|
5016
|
-
if (
|
|
5434
|
+
if (this.is(index, "..") || this.is(index, "...")) {
|
|
5017
5435
|
let isIncl = index[0] === "..";
|
|
5018
5436
|
let arrCode = this.generate(arr, "value");
|
|
5019
5437
|
let [start, end] = index.slice(1);
|
|
5020
5438
|
if (start === null && end === null)
|
|
5021
5439
|
return `${arrCode}.slice()`;
|
|
5022
5440
|
if (start === null) {
|
|
5023
|
-
if (isIncl && this.
|
|
5441
|
+
if (isIncl && this.is(end, "-", 1) && (str(end[1]) ?? end[1]) == 1)
|
|
5024
5442
|
return `${arrCode}.slice(0)`;
|
|
5025
5443
|
let e2 = this.generate(end, "value");
|
|
5026
5444
|
return isIncl ? `${arrCode}.slice(0, +${e2} + 1 || 9e9)` : `${arrCode}.slice(0, ${e2})`;
|
|
@@ -5028,15 +5446,27 @@ function _setDataSection() {
|
|
|
5028
5446
|
if (end === null)
|
|
5029
5447
|
return `${arrCode}.slice(${this.generate(start, "value")})`;
|
|
5030
5448
|
let s = this.generate(start, "value");
|
|
5031
|
-
if (isIncl && this.
|
|
5449
|
+
if (isIncl && this.is(end, "-", 1) && (str(end[1]) ?? end[1]) == 1)
|
|
5032
5450
|
return `${arrCode}.slice(${s})`;
|
|
5033
5451
|
let e = this.generate(end, "value");
|
|
5034
5452
|
return isIncl ? `${arrCode}.slice(${s}, +${e} + 1 || 9e9)` : `${arrCode}.slice(${s}, ${e})`;
|
|
5035
5453
|
}
|
|
5454
|
+
if (this.is(index, "-", 1)) {
|
|
5455
|
+
let n = str(index[1]) ?? index[1];
|
|
5456
|
+
if (typeof n === "number" || typeof n === "string" && /^\d+$/.test(n)) {
|
|
5457
|
+
return `${this.generate(arr, "value")}.at(-${n})`;
|
|
5458
|
+
}
|
|
5459
|
+
}
|
|
5036
5460
|
return `${this.generate(arr, "value")}[${this.unwrap(this.generate(index, "value"))}]`;
|
|
5037
5461
|
}
|
|
5038
5462
|
generateOptIndex(head, rest) {
|
|
5039
5463
|
let [arr, index] = rest;
|
|
5464
|
+
if (this.is(index, "-", 1)) {
|
|
5465
|
+
let n = str(index[1]) ?? index[1];
|
|
5466
|
+
if (typeof n === "number" || typeof n === "string" && /^\d+$/.test(n)) {
|
|
5467
|
+
return `${this.generate(arr, "value")}?.at(-${n})`;
|
|
5468
|
+
}
|
|
5469
|
+
}
|
|
5040
5470
|
return `${this.generate(arr, "value")}?.[${this.generate(index, "value")}]`;
|
|
5041
5471
|
}
|
|
5042
5472
|
generateOptCall(head, rest) {
|
|
@@ -5055,6 +5485,8 @@ function _setDataSection() {
|
|
|
5055
5485
|
}
|
|
5056
5486
|
generateThinArrow(head, rest, context, sexpr) {
|
|
5057
5487
|
let [params, body] = rest;
|
|
5488
|
+
if ((!params || Array.isArray(params) && params.length === 0) && this.containsIt(body))
|
|
5489
|
+
params = ["it"];
|
|
5058
5490
|
let sideEffectOnly = this.nextFunctionIsVoid || false;
|
|
5059
5491
|
this.nextFunctionIsVoid = false;
|
|
5060
5492
|
let paramList = this.generateParamList(params);
|
|
@@ -5066,6 +5498,8 @@ function _setDataSection() {
|
|
|
5066
5498
|
}
|
|
5067
5499
|
generateFatArrow(head, rest, context, sexpr) {
|
|
5068
5500
|
let [params, body] = rest;
|
|
5501
|
+
if ((!params || Array.isArray(params) && params.length === 0) && this.containsIt(body))
|
|
5502
|
+
params = ["it"];
|
|
5069
5503
|
let sideEffectOnly = this.nextFunctionIsVoid || false;
|
|
5070
5504
|
this.nextFunctionIsVoid = false;
|
|
5071
5505
|
let paramList = this.generateParamList(params);
|
|
@@ -5074,7 +5508,7 @@ function _setDataSection() {
|
|
|
5074
5508
|
let isAsync = this.containsAwait(body);
|
|
5075
5509
|
let prefix = isAsync ? "async " : "";
|
|
5076
5510
|
if (!sideEffectOnly) {
|
|
5077
|
-
if (
|
|
5511
|
+
if (this.is(body, "block") && body.length === 2) {
|
|
5078
5512
|
let expr = body[1];
|
|
5079
5513
|
if (!Array.isArray(expr) || expr[0] !== "return") {
|
|
5080
5514
|
return `${prefix}${paramSyntax} => ${this.generate(expr, "value")}`;
|
|
@@ -5093,19 +5527,19 @@ function _setDataSection() {
|
|
|
5093
5527
|
let [expr] = rest;
|
|
5094
5528
|
if (this.sideEffectOnly)
|
|
5095
5529
|
return "return";
|
|
5096
|
-
if (
|
|
5530
|
+
if (this.is(expr, "unless")) {
|
|
5097
5531
|
let [, condition, body] = expr;
|
|
5098
5532
|
let val = Array.isArray(body) && body.length === 1 ? body[0] : body;
|
|
5099
5533
|
return `if (!${this.generate(condition, "value")}) return ${this.generate(val, "value")}`;
|
|
5100
5534
|
}
|
|
5101
|
-
if (
|
|
5535
|
+
if (this.is(expr, "if")) {
|
|
5102
5536
|
let [, condition, body, ...elseParts] = expr;
|
|
5103
5537
|
if (elseParts.length === 0) {
|
|
5104
5538
|
let val = Array.isArray(body) && body.length === 1 ? body[0] : body;
|
|
5105
5539
|
return `if (${this.generate(condition, "value")}) return ${this.generate(val, "value")}`;
|
|
5106
5540
|
}
|
|
5107
5541
|
}
|
|
5108
|
-
if (
|
|
5542
|
+
if (this.is(expr, "new") && Array.isArray(expr[1]) && expr[1][0] === "unless") {
|
|
5109
5543
|
let [, unlessNode] = expr;
|
|
5110
5544
|
let [, condition, body] = unlessNode;
|
|
5111
5545
|
let val = Array.isArray(body) && body.length === 1 ? body[0] : body;
|
|
@@ -5139,13 +5573,13 @@ function _setDataSection() {
|
|
|
5139
5573
|
let [target, body] = rest;
|
|
5140
5574
|
this.usesReactivity = true;
|
|
5141
5575
|
let bodyCode;
|
|
5142
|
-
if (
|
|
5576
|
+
if (this.is(body, "block")) {
|
|
5143
5577
|
let stmts = this.withIndent(() => this.formatStatements(body.slice(1)));
|
|
5144
5578
|
bodyCode = `{
|
|
5145
5579
|
${stmts.join(`
|
|
5146
5580
|
`)}
|
|
5147
5581
|
${this.indent()}}`;
|
|
5148
|
-
} else if (
|
|
5582
|
+
} else if (this.is(body, "->") || this.is(body, "=>")) {
|
|
5149
5583
|
let fnCode = this.generate(body, "value");
|
|
5150
5584
|
if (target)
|
|
5151
5585
|
return `const ${str(target) ?? this.generate(target, "value")} = __effect(${fnCode})`;
|
|
@@ -5173,13 +5607,39 @@ ${this.indent()}}`;
|
|
|
5173
5607
|
generateExistential(head, rest) {
|
|
5174
5608
|
return `(${this.generate(rest[0], "value")} != null)`;
|
|
5175
5609
|
}
|
|
5176
|
-
generateTernary(head, rest) {
|
|
5610
|
+
generateTernary(head, rest, context) {
|
|
5177
5611
|
let [cond, then_, else_] = rest;
|
|
5612
|
+
let thenHead = then_?.[0]?.valueOf?.() ?? then_?.[0];
|
|
5613
|
+
if (thenHead === "=" && Array.isArray(then_)) {
|
|
5614
|
+
let target = this.generate(then_[1], "value");
|
|
5615
|
+
let thenVal = this.generate(then_[2], "value");
|
|
5616
|
+
let elseVal = this.generate(else_, "value");
|
|
5617
|
+
return `${target} = (${this.unwrap(this.generate(cond, "value"))} ? ${thenVal} : ${elseVal})`;
|
|
5618
|
+
}
|
|
5178
5619
|
return `(${this.unwrap(this.generate(cond, "value"))} ? ${this.generate(then_, "value")} : ${this.generate(else_, "value")})`;
|
|
5179
5620
|
}
|
|
5621
|
+
generatePipe(head, rest) {
|
|
5622
|
+
let [left, right] = rest;
|
|
5623
|
+
let leftCode = this.generate(left, "value");
|
|
5624
|
+
if (Array.isArray(right) && right.length > 1) {
|
|
5625
|
+
let fn = right[0];
|
|
5626
|
+
let isCall = Array.isArray(fn) || typeof fn === "string" && /^[a-zA-Z_$]/.test(fn);
|
|
5627
|
+
if (isCall) {
|
|
5628
|
+
let fnCode = this.generate(fn, "value");
|
|
5629
|
+
let args = right.slice(1).map((a) => this.generate(a, "value"));
|
|
5630
|
+
return `${fnCode}(${leftCode}, ${args.join(", ")})`;
|
|
5631
|
+
}
|
|
5632
|
+
}
|
|
5633
|
+
return `${this.generate(right, "value")}(${leftCode})`;
|
|
5634
|
+
}
|
|
5180
5635
|
generateLoop(head, rest) {
|
|
5181
5636
|
return `while (true) ${this.generateLoopBody(rest[0])}`;
|
|
5182
5637
|
}
|
|
5638
|
+
generateLoopN(head, rest) {
|
|
5639
|
+
let [count, body] = rest;
|
|
5640
|
+
let n = this.generate(count, "value");
|
|
5641
|
+
return `for (let _i = 0; _i < ${n}; _i++) ${this.generateLoopBody(body)}`;
|
|
5642
|
+
}
|
|
5183
5643
|
generateAwait(head, rest) {
|
|
5184
5644
|
return `await ${this.generate(rest[0], "value")}`;
|
|
5185
5645
|
}
|
|
@@ -5214,12 +5674,12 @@ ${this.indent()}}`;
|
|
|
5214
5674
|
let varsArray = Array.isArray(vars) ? vars : [vars];
|
|
5215
5675
|
let noVar = varsArray.length === 0;
|
|
5216
5676
|
let [itemVar, indexVar] = noVar ? ["_i", null] : varsArray;
|
|
5217
|
-
let itemVarPattern =
|
|
5677
|
+
let itemVarPattern = this.is(itemVar, "array") || this.is(itemVar, "object") ? this.generateDestructuringPattern(itemVar) : itemVar;
|
|
5218
5678
|
if (step && step !== null) {
|
|
5219
5679
|
let iterCode = this.generate(iterable, "value");
|
|
5220
5680
|
let idxName = indexVar || "_i";
|
|
5221
5681
|
let stepCode = this.generate(step, "value");
|
|
5222
|
-
let isNeg = this.
|
|
5682
|
+
let isNeg = this.is(step, "-", 1);
|
|
5223
5683
|
let isMinus1 = isNeg && (step[1] === "1" || step[1] === 1 || str(step[1]) === "1");
|
|
5224
5684
|
let isPlus1 = !isNeg && (step === "1" || step === 1 || str(step) === "1");
|
|
5225
5685
|
let loopHeader;
|
|
@@ -5231,7 +5691,7 @@ ${this.indent()}}`;
|
|
|
5231
5691
|
loopHeader = `for (let ${idxName} = ${iterCode}.length - 1; ${idxName} >= 0; ${idxName} += ${stepCode}) `;
|
|
5232
5692
|
else
|
|
5233
5693
|
loopHeader = `for (let ${idxName} = 0; ${idxName} < ${iterCode}.length; ${idxName} += ${stepCode}) `;
|
|
5234
|
-
if (
|
|
5694
|
+
if (this.is(body, "block")) {
|
|
5235
5695
|
let stmts = body.slice(1);
|
|
5236
5696
|
this.indentLevel++;
|
|
5237
5697
|
let lines = [];
|
|
@@ -5260,7 +5720,7 @@ ${this.indent()}}`;
|
|
|
5260
5720
|
if (indexVar) {
|
|
5261
5721
|
let iterCode = this.generate(iterable, "value");
|
|
5262
5722
|
let code2 = `for (let ${indexVar} = 0; ${indexVar} < ${iterCode}.length; ${indexVar}++) `;
|
|
5263
|
-
if (
|
|
5723
|
+
if (this.is(body, "block")) {
|
|
5264
5724
|
code2 += `{
|
|
5265
5725
|
`;
|
|
5266
5726
|
this.indentLevel++;
|
|
@@ -5294,7 +5754,7 @@ ${this.indent()}}`;
|
|
|
5294
5754
|
if (iterHead === ".." || iterHead === "...") {
|
|
5295
5755
|
let isExcl = iterHead === "...";
|
|
5296
5756
|
let [start, end] = iterable.slice(1);
|
|
5297
|
-
let isSimple = (e) => typeof e === "number" || typeof e === "string" && !e.includes("(") || e instanceof String && !str(e).includes("(") ||
|
|
5757
|
+
let isSimple = (e) => typeof e === "number" || typeof e === "string" && !e.includes("(") || e instanceof String && !str(e).includes("(") || this.is(e, ".");
|
|
5298
5758
|
if (isSimple(start) && isSimple(end)) {
|
|
5299
5759
|
let s = this.generate(start, "value"), e = this.generate(end, "value");
|
|
5300
5760
|
let cmp = isExcl ? "<" : "<=";
|
|
@@ -5314,7 +5774,7 @@ ${this.indent()}}`;
|
|
|
5314
5774
|
let objCode = this.generate(obj, "value");
|
|
5315
5775
|
let code = `for (const ${keyVar} in ${objCode}) `;
|
|
5316
5776
|
if (own && !valueVar && !guard) {
|
|
5317
|
-
if (
|
|
5777
|
+
if (this.is(body, "block")) {
|
|
5318
5778
|
this.indentLevel++;
|
|
5319
5779
|
let stmts = [`if (!Object.hasOwn(${objCode}, ${keyVar})) continue;`, ...body.slice(1).map((s) => this.addSemicolon(s, this.generate(s, "statement")))];
|
|
5320
5780
|
this.indentLevel--;
|
|
@@ -5326,7 +5786,7 @@ ${this.indent()}}`;
|
|
|
5326
5786
|
return code + `{ if (!Object.hasOwn(${objCode}, ${keyVar})) continue; ${this.generate(body, "statement")}; }`;
|
|
5327
5787
|
}
|
|
5328
5788
|
if (valueVar) {
|
|
5329
|
-
if (
|
|
5789
|
+
if (this.is(body, "block")) {
|
|
5330
5790
|
let stmts = body.slice(1);
|
|
5331
5791
|
this.indentLevel++;
|
|
5332
5792
|
let lines = [];
|
|
@@ -5365,15 +5825,15 @@ ${this.indent()}}`;
|
|
|
5365
5825
|
let [firstVar] = varsArray;
|
|
5366
5826
|
let iterable = rest[1], isAwait = rest[2], guard = rest[3], body = rest[4];
|
|
5367
5827
|
let needsTempVar = false, destructStmts = [];
|
|
5368
|
-
if (
|
|
5828
|
+
if (this.is(firstVar, "array")) {
|
|
5369
5829
|
let elements = firstVar.slice(1);
|
|
5370
|
-
let restIdx = elements.findIndex((el) =>
|
|
5830
|
+
let restIdx = elements.findIndex((el) => this.is(el, "...") || el === "...");
|
|
5371
5831
|
if (restIdx !== -1 && restIdx < elements.length - 1) {
|
|
5372
5832
|
needsTempVar = true;
|
|
5373
5833
|
let afterRest = elements.slice(restIdx + 1), afterCount = afterRest.length;
|
|
5374
5834
|
let beforeRest = elements.slice(0, restIdx);
|
|
5375
5835
|
let restEl = elements[restIdx];
|
|
5376
|
-
let restVar =
|
|
5836
|
+
let restVar = this.is(restEl, "...") ? restEl[1] : "_rest";
|
|
5377
5837
|
let beforePattern = beforeRest.map((el) => el === "," ? "" : typeof el === "string" ? el : this.generate(el, "value")).join(", ");
|
|
5378
5838
|
let firstPattern = beforePattern ? `${beforePattern}, ...${restVar}` : `...${restVar}`;
|
|
5379
5839
|
let afterPattern = afterRest.map((el) => el === "," ? "" : typeof el === "string" ? el : this.generate(el, "value")).join(", ");
|
|
@@ -5385,7 +5845,7 @@ ${this.indent()}}`;
|
|
|
5385
5845
|
return;
|
|
5386
5846
|
if (typeof el === "string")
|
|
5387
5847
|
this.programVars.add(el);
|
|
5388
|
-
else if (
|
|
5848
|
+
else if (this.is(el, "...") && typeof el[1] === "string")
|
|
5389
5849
|
this.programVars.add(el[1]);
|
|
5390
5850
|
});
|
|
5391
5851
|
}
|
|
@@ -5395,7 +5855,7 @@ ${this.indent()}}`;
|
|
|
5395
5855
|
let itemVarPattern;
|
|
5396
5856
|
if (needsTempVar)
|
|
5397
5857
|
itemVarPattern = "_item";
|
|
5398
|
-
else if (
|
|
5858
|
+
else if (this.is(firstVar, "array") || this.is(firstVar, "object"))
|
|
5399
5859
|
itemVarPattern = this.generateDestructuringPattern(firstVar);
|
|
5400
5860
|
else
|
|
5401
5861
|
itemVarPattern = firstVar;
|
|
@@ -5472,7 +5932,7 @@ ${this.indent()}}`;
|
|
|
5472
5932
|
let [key, container] = rest;
|
|
5473
5933
|
let keyCode = this.generate(key, "value");
|
|
5474
5934
|
let isNeg = meta(sexpr[0], "invert");
|
|
5475
|
-
if (
|
|
5935
|
+
if (this.is(container, "object")) {
|
|
5476
5936
|
let result2 = `(${keyCode} in ${this.generate(container, "value")})`;
|
|
5477
5937
|
return isNeg ? `(!${result2})` : result2;
|
|
5478
5938
|
}
|
|
@@ -5497,7 +5957,7 @@ ${this.indent()}}`;
|
|
|
5497
5957
|
}
|
|
5498
5958
|
generateNew(head, rest) {
|
|
5499
5959
|
let [call] = rest;
|
|
5500
|
-
if (
|
|
5960
|
+
if (this.is(call, ".") || this.is(call, "?.")) {
|
|
5501
5961
|
let [accType, target, prop] = call;
|
|
5502
5962
|
if (Array.isArray(target) && !target[0].startsWith) {
|
|
5503
5963
|
return `(${this.generate(["new", target], "value")}).${prop}`;
|
|
@@ -5533,7 +5993,7 @@ ${this.indent()}}`;
|
|
|
5533
5993
|
return "";
|
|
5534
5994
|
if (el === "...")
|
|
5535
5995
|
return "";
|
|
5536
|
-
if (
|
|
5996
|
+
if (this.is(el, "..."))
|
|
5537
5997
|
return `...${this.generate(el[1], "value")}`;
|
|
5538
5998
|
return this.generate(el, "value");
|
|
5539
5999
|
}).join(", ");
|
|
@@ -5546,13 +6006,13 @@ ${this.indent()}}`;
|
|
|
5546
6006
|
return this.generate(["object-comprehension", keyVar, valueExpr, iterators, guards], context);
|
|
5547
6007
|
}
|
|
5548
6008
|
let codes = pairs.map((pair) => {
|
|
5549
|
-
if (
|
|
6009
|
+
if (this.is(pair, "..."))
|
|
5550
6010
|
return `...${this.generate(pair[1], "value")}`;
|
|
5551
6011
|
let [key, value, operator] = pair;
|
|
5552
6012
|
let keyCode;
|
|
5553
|
-
if (
|
|
6013
|
+
if (this.is(key, "dynamicKey"))
|
|
5554
6014
|
keyCode = `[${this.generate(key[1], "value")}]`;
|
|
5555
|
-
else if (
|
|
6015
|
+
else if (this.is(key, "str"))
|
|
5556
6016
|
keyCode = `[${this.generate(key, "value")}]`;
|
|
5557
6017
|
else
|
|
5558
6018
|
keyCode = this.generate(key, "value");
|
|
@@ -5594,18 +6054,18 @@ ${this.indent()}}`;
|
|
|
5594
6054
|
let needsReturns = context === "value";
|
|
5595
6055
|
let tryCode = "try ";
|
|
5596
6056
|
let tryBlock = rest[0];
|
|
5597
|
-
tryCode += needsReturns &&
|
|
6057
|
+
tryCode += needsReturns && this.is(tryBlock, "block") ? this.generateBlockWithReturns(tryBlock) : this.generate(tryBlock, "statement");
|
|
5598
6058
|
if (rest.length >= 2 && Array.isArray(rest[1]) && rest[1].length === 2 && rest[1][0] !== "block") {
|
|
5599
6059
|
let [param, catchBlock] = rest[1];
|
|
5600
6060
|
tryCode += " catch";
|
|
5601
|
-
if (param &&
|
|
6061
|
+
if (param && (this.is(param, "object") || this.is(param, "array"))) {
|
|
5602
6062
|
tryCode += " (error)";
|
|
5603
6063
|
let destructStmt = `(${this.generate(param, "value")} = error)`;
|
|
5604
|
-
catchBlock =
|
|
6064
|
+
catchBlock = this.is(catchBlock, "block") ? ["block", destructStmt, ...catchBlock.slice(1)] : ["block", destructStmt, catchBlock];
|
|
5605
6065
|
} else if (param) {
|
|
5606
6066
|
tryCode += ` (${param})`;
|
|
5607
6067
|
}
|
|
5608
|
-
tryCode += " " + (needsReturns &&
|
|
6068
|
+
tryCode += " " + (needsReturns && this.is(catchBlock, "block") ? this.generateBlockWithReturns(catchBlock) : this.generate(catchBlock, "statement"));
|
|
5609
6069
|
} else if (rest.length === 2) {
|
|
5610
6070
|
tryCode += " finally " + this.generate(rest[1], "statement");
|
|
5611
6071
|
}
|
|
@@ -5727,7 +6187,7 @@ ${this.indent()}}`;
|
|
|
5727
6187
|
let va = Array.isArray(vars) ? vars : [vars];
|
|
5728
6188
|
let noVar = va.length === 0;
|
|
5729
6189
|
let [itemVar, indexVar] = noVar ? ["_i", null] : va;
|
|
5730
|
-
let ivp =
|
|
6190
|
+
let ivp = this.is(itemVar, "array") || this.is(itemVar, "object") ? this.generateDestructuringPattern(itemVar) : itemVar;
|
|
5731
6191
|
if (step && step !== null) {
|
|
5732
6192
|
let ih = Array.isArray(iterable) && iterable[0];
|
|
5733
6193
|
if (ih instanceof String)
|
|
@@ -5742,7 +6202,7 @@ ${this.indent()}}`;
|
|
|
5742
6202
|
this.indentLevel++;
|
|
5743
6203
|
} else {
|
|
5744
6204
|
let ic = this.generate(iterable, "value"), idxN = indexVar || "_i", stc = this.generate(step, "value");
|
|
5745
|
-
let isNeg = this.
|
|
6205
|
+
let isNeg = this.is(step, "-", 1);
|
|
5746
6206
|
code += isNeg ? this.indent() + `for (let ${idxN} = ${ic}.length - 1; ${idxN} >= 0; ${idxN} += ${stc}) {
|
|
5747
6207
|
` : this.indent() + `for (let ${idxN} = 0; ${idxN} < ${ic}.length; ${idxN} += ${stc}) {
|
|
5748
6208
|
`;
|
|
@@ -5767,7 +6227,7 @@ ${this.indent()}}`;
|
|
|
5767
6227
|
let own = stepOrOwn;
|
|
5768
6228
|
let va = Array.isArray(vars) ? vars : [vars];
|
|
5769
6229
|
let [kv, vv] = va;
|
|
5770
|
-
let kvp =
|
|
6230
|
+
let kvp = this.is(kv, "array") || this.is(kv, "object") ? this.generateDestructuringPattern(kv) : kv;
|
|
5771
6231
|
let oc = this.generate(iterable, "value");
|
|
5772
6232
|
code += this.indent() + `for (const ${kvp} in ${oc}) {
|
|
5773
6233
|
`;
|
|
@@ -5782,7 +6242,7 @@ ${this.indent()}}`;
|
|
|
5782
6242
|
let isAwait = iter[3];
|
|
5783
6243
|
let va = Array.isArray(vars) ? vars : [vars];
|
|
5784
6244
|
let [fv] = va;
|
|
5785
|
-
let ivp =
|
|
6245
|
+
let ivp = this.is(fv, "array") || this.is(fv, "object") ? this.generateDestructuringPattern(fv) : fv;
|
|
5786
6246
|
code += this.indent() + `for ${isAwait ? "await " : ""}(const ${ivp} of ${this.generate(iterable, "value")}) {
|
|
5787
6247
|
`;
|
|
5788
6248
|
this.indentLevel++;
|
|
@@ -5805,7 +6265,7 @@ ${this.indent()}}`;
|
|
|
5805
6265
|
return node.some(hasCtrl);
|
|
5806
6266
|
};
|
|
5807
6267
|
let loopStmts = ["for-in", "for-of", "for-as", "while", "until", "loop"];
|
|
5808
|
-
if (
|
|
6268
|
+
if (this.is(expr, "block")) {
|
|
5809
6269
|
for (let i = 0;i < expr.length - 1; i++) {
|
|
5810
6270
|
let s = expr[i + 1], isLast = i === expr.length - 2;
|
|
5811
6271
|
if (!isLast || hasCtrl(s)) {
|
|
@@ -5911,23 +6371,23 @@ ${this.indent()}}`;
|
|
|
5911
6371
|
this.indentLevel++;
|
|
5912
6372
|
let boundMethods = [];
|
|
5913
6373
|
for (let [mk, mv] of members) {
|
|
5914
|
-
let isStatic = this.
|
|
5915
|
-
let isComputed = this.
|
|
6374
|
+
let isStatic = this.is(mk, ".") && mk[1] === "this";
|
|
6375
|
+
let isComputed = this.is(mk, "computed");
|
|
5916
6376
|
let mName = this.extractMemberName(mk);
|
|
5917
|
-
if (this.
|
|
6377
|
+
if (this.is(mv, "=>") && !isStatic && !isComputed && mName !== "constructor")
|
|
5918
6378
|
boundMethods.push(mName);
|
|
5919
6379
|
}
|
|
5920
6380
|
for (let [mk, mv] of members) {
|
|
5921
|
-
let isStatic = this.
|
|
5922
|
-
let isComputed = this.
|
|
6381
|
+
let isStatic = this.is(mk, ".") && mk[1] === "this";
|
|
6382
|
+
let isComputed = this.is(mk, "computed");
|
|
5923
6383
|
let mName = this.extractMemberName(mk);
|
|
5924
|
-
if (
|
|
6384
|
+
if (this.is(mv, "->") || this.is(mv, "=>")) {
|
|
5925
6385
|
let [, params, body] = mv;
|
|
5926
6386
|
let hasAwait = this.containsAwait(body), hasYield = this.containsYield(body);
|
|
5927
6387
|
let cleanParams = params, autoAssign = [];
|
|
5928
6388
|
if (mName === "constructor") {
|
|
5929
6389
|
cleanParams = params.map((p) => {
|
|
5930
|
-
if (
|
|
6390
|
+
if (this.is(p, ".") && p[1] === "this") {
|
|
5931
6391
|
autoAssign.push(`this.${p[2]} = ${p[2]}`);
|
|
5932
6392
|
return p[2];
|
|
5933
6393
|
}
|
|
@@ -5959,8 +6419,8 @@ ${this.indent()}}`;
|
|
|
5959
6419
|
let additionalStmts = bodyStmts.slice(1);
|
|
5960
6420
|
this.indentLevel++;
|
|
5961
6421
|
for (let [mk, mv] of members) {
|
|
5962
|
-
let isStatic = this.
|
|
5963
|
-
if (
|
|
6422
|
+
let isStatic = this.is(mk, ".") && mk[1] === "this", mName = this.extractMemberName(mk);
|
|
6423
|
+
if (this.is(mv, "->") || this.is(mv, "=>")) {
|
|
5964
6424
|
let [, params, body] = mv;
|
|
5965
6425
|
let pList = this.generateParamList(params);
|
|
5966
6426
|
let prefix = (isStatic ? "static " : "") + (this.containsAwait(body) ? "async " : "") + (this.containsYield(body) ? "*" : "");
|
|
@@ -5979,9 +6439,9 @@ ${this.indent()}}`;
|
|
|
5979
6439
|
}
|
|
5980
6440
|
}
|
|
5981
6441
|
for (let stmt of additionalStmts) {
|
|
5982
|
-
if (
|
|
6442
|
+
if (this.is(stmt, "class")) {
|
|
5983
6443
|
let [, nestedName, parent, ...nestedBody] = stmt;
|
|
5984
|
-
if (
|
|
6444
|
+
if (this.is(nestedName, ".") && nestedName[1] === "this") {
|
|
5985
6445
|
code += this.indent() + `static ${nestedName[2]} = ${this.generate(["class", null, parent, ...nestedBody], "value")};
|
|
5986
6446
|
`;
|
|
5987
6447
|
}
|
|
@@ -5994,7 +6454,7 @@ ${this.indent()}}`;
|
|
|
5994
6454
|
} else {
|
|
5995
6455
|
this.indentLevel++;
|
|
5996
6456
|
for (let stmt of bodyStmts) {
|
|
5997
|
-
if (
|
|
6457
|
+
if (this.is(stmt, "=") && Array.isArray(stmt[1]) && stmt[1][0] === "." && stmt[1][1] === "this") {
|
|
5998
6458
|
code += this.indent() + `static ${stmt[1][2]} = ${this.generate(stmt[2], "value")};
|
|
5999
6459
|
`;
|
|
6000
6460
|
} else {
|
|
@@ -6050,13 +6510,13 @@ ${this.indent()}}`;
|
|
|
6050
6510
|
let [decl] = rest;
|
|
6051
6511
|
if (Array.isArray(decl) && decl.every((i) => typeof i === "string"))
|
|
6052
6512
|
return `export { ${decl.join(", ")} }`;
|
|
6053
|
-
if (
|
|
6513
|
+
if (this.is(decl, "="))
|
|
6054
6514
|
return `export const ${decl[1]} = ${this.generate(decl[2], "value")}`;
|
|
6055
6515
|
return `export ${this.generate(decl, "statement")}`;
|
|
6056
6516
|
}
|
|
6057
6517
|
generateExportDefault(head, rest) {
|
|
6058
6518
|
let [expr] = rest;
|
|
6059
|
-
if (
|
|
6519
|
+
if (this.is(expr, "=")) {
|
|
6060
6520
|
return `const ${expr[1]} = ${this.generate(expr[2], "value")};
|
|
6061
6521
|
export default ${expr[1]}`;
|
|
6062
6522
|
}
|
|
@@ -6144,14 +6604,14 @@ export default ${expr[1]}`;
|
|
|
6144
6604
|
return this.formatParam(pattern);
|
|
6145
6605
|
}
|
|
6146
6606
|
generateParamList(params) {
|
|
6147
|
-
let expIdx = params.findIndex((p) =>
|
|
6607
|
+
let expIdx = params.findIndex((p) => this.is(p, "expansion"));
|
|
6148
6608
|
if (expIdx !== -1) {
|
|
6149
6609
|
let before = params.slice(0, expIdx), after = params.slice(expIdx + 1);
|
|
6150
6610
|
let regular = before.map((p) => this.formatParam(p)).join(", ");
|
|
6151
6611
|
this.expansionAfterParams = after;
|
|
6152
6612
|
return regular ? `${regular}, ..._rest` : "..._rest";
|
|
6153
6613
|
}
|
|
6154
|
-
let restIdx = params.findIndex((p) =>
|
|
6614
|
+
let restIdx = params.findIndex((p) => this.is(p, "rest"));
|
|
6155
6615
|
if (restIdx !== -1 && restIdx < params.length - 1) {
|
|
6156
6616
|
let before = params.slice(0, restIdx), restP = params[restIdx], after = params.slice(restIdx + 1);
|
|
6157
6617
|
let beforeP = before.map((p) => this.formatParam(p));
|
|
@@ -6167,21 +6627,21 @@ export default ${expr[1]}`;
|
|
|
6167
6627
|
return param;
|
|
6168
6628
|
if (param instanceof String)
|
|
6169
6629
|
return param.valueOf();
|
|
6170
|
-
if (
|
|
6630
|
+
if (this.is(param, "rest"))
|
|
6171
6631
|
return `...${param[1]}`;
|
|
6172
|
-
if (
|
|
6632
|
+
if (this.is(param, "default"))
|
|
6173
6633
|
return `${param[1]} = ${this.generate(param[2], "value")}`;
|
|
6174
|
-
if (
|
|
6634
|
+
if (this.is(param, ".") && param[1] === "this")
|
|
6175
6635
|
return param[2];
|
|
6176
|
-
if (
|
|
6636
|
+
if (this.is(param, "array")) {
|
|
6177
6637
|
let els = param.slice(1).map((el) => {
|
|
6178
6638
|
if (el === ",")
|
|
6179
6639
|
return "";
|
|
6180
6640
|
if (el === "...")
|
|
6181
6641
|
return "";
|
|
6182
|
-
if (
|
|
6642
|
+
if (this.is(el, "..."))
|
|
6183
6643
|
return `...${el[1]}`;
|
|
6184
|
-
if (
|
|
6644
|
+
if (this.is(el, "=") && typeof el[1] === "string")
|
|
6185
6645
|
return `${el[1]} = ${this.generate(el[2], "value")}`;
|
|
6186
6646
|
if (typeof el === "string")
|
|
6187
6647
|
return el;
|
|
@@ -6189,11 +6649,11 @@ export default ${expr[1]}`;
|
|
|
6189
6649
|
});
|
|
6190
6650
|
return `[${els.join(", ")}]`;
|
|
6191
6651
|
}
|
|
6192
|
-
if (
|
|
6652
|
+
if (this.is(param, "object")) {
|
|
6193
6653
|
let pairs = param.slice(1).map((pair) => {
|
|
6194
|
-
if (
|
|
6654
|
+
if (this.is(pair, "..."))
|
|
6195
6655
|
return `...${pair[1]}`;
|
|
6196
|
-
if (
|
|
6656
|
+
if (this.is(pair, "default"))
|
|
6197
6657
|
return `${pair[1]} = ${this.generate(pair[2], "value")}`;
|
|
6198
6658
|
let [key, value] = pair;
|
|
6199
6659
|
if (key === value)
|
|
@@ -6229,7 +6689,7 @@ export default ${expr[1]}`;
|
|
|
6229
6689
|
let newVars = new Set([...bodyVars].filter((v) => !this.programVars.has(v) && !this.reactiveVars?.has(v) && !paramNames.has(v)));
|
|
6230
6690
|
let noRetStmts = ["return", "throw", "break", "continue"];
|
|
6231
6691
|
let loopStmts = ["for-in", "for-of", "for-as", "while", "until", "loop"];
|
|
6232
|
-
if (
|
|
6692
|
+
if (this.is(body, "block")) {
|
|
6233
6693
|
let statements = this.unwrapBlock(body);
|
|
6234
6694
|
if (hasExpansionParams && this.expansionAfterParams?.length > 0) {
|
|
6235
6695
|
let extr = this.expansionAfterParams.map((p, i) => {
|
|
@@ -6244,7 +6704,7 @@ export default ${expr[1]}`;
|
|
|
6244
6704
|
let afterCount = afterParams.length;
|
|
6245
6705
|
let extr = [];
|
|
6246
6706
|
afterParams.forEach((p, i) => {
|
|
6247
|
-
let pn = typeof p === "string" ? p :
|
|
6707
|
+
let pn = typeof p === "string" ? p : this.is(p, "default") ? p[1] : JSON.stringify(p);
|
|
6248
6708
|
extr.push(`const ${pn} = ${restName}[${restName}.length - ${afterCount - i}]`);
|
|
6249
6709
|
});
|
|
6250
6710
|
if (afterCount > 0)
|
|
@@ -6271,7 +6731,7 @@ export default ${expr[1]}`;
|
|
|
6271
6731
|
}
|
|
6272
6732
|
if (!isConstructor && !sideEffectOnly && isLast && (h === "if" || h === "unless")) {
|
|
6273
6733
|
let [cond, thenB, ...elseB] = stmt.slice(1);
|
|
6274
|
-
let hasMulti = (b) =>
|
|
6734
|
+
let hasMulti = (b) => this.is(b, "block") && b.length > 2;
|
|
6275
6735
|
if (hasMulti(thenB) || elseB.some(hasMulti)) {
|
|
6276
6736
|
code += this.generateIfElseWithEarlyReturns(stmt);
|
|
6277
6737
|
return;
|
|
@@ -6368,7 +6828,7 @@ ${this.indent()}}`;
|
|
|
6368
6828
|
if (body[0] === "block" || Array.isArray(body[0])) {
|
|
6369
6829
|
let stmts = body[0] === "block" ? body.slice(1) : body;
|
|
6370
6830
|
let lines = this.withIndent(() => stmts.map((s) => {
|
|
6371
|
-
if (
|
|
6831
|
+
if (this.is(s, "comprehension")) {
|
|
6372
6832
|
let [, expr, iters, guards] = s;
|
|
6373
6833
|
return this.indent() + this.generateComprehensionAsLoop(expr, iters, guards);
|
|
6374
6834
|
}
|
|
@@ -6409,7 +6869,7 @@ ${this.indent()}}`;
|
|
|
6409
6869
|
let code = "";
|
|
6410
6870
|
code += this.indent() + `${targetVar} = [];
|
|
6411
6871
|
`;
|
|
6412
|
-
let unwrappedExpr =
|
|
6872
|
+
let unwrappedExpr = this.is(expr, "block") && expr.length === 2 ? expr[1] : expr;
|
|
6413
6873
|
if (iterators.length === 1) {
|
|
6414
6874
|
let [iterType, vars, iterable, stepOrOwn] = iterators[0];
|
|
6415
6875
|
if (iterType === "for-in") {
|
|
@@ -6417,7 +6877,7 @@ ${this.indent()}}`;
|
|
|
6417
6877
|
let va = Array.isArray(vars) ? vars : [vars];
|
|
6418
6878
|
let noVar = va.length === 0;
|
|
6419
6879
|
let [itemVar, indexVar] = noVar ? ["_i", null] : va;
|
|
6420
|
-
let ivp =
|
|
6880
|
+
let ivp = this.is(itemVar, "array") || this.is(itemVar, "object") ? this.generateDestructuringPattern(itemVar) : itemVar;
|
|
6421
6881
|
if (step && step !== null) {
|
|
6422
6882
|
let ih = Array.isArray(iterable) && iterable[0];
|
|
6423
6883
|
if (ih instanceof String)
|
|
@@ -6430,7 +6890,7 @@ ${this.indent()}}`;
|
|
|
6430
6890
|
`;
|
|
6431
6891
|
} else {
|
|
6432
6892
|
let ic = this.generate(iterable, "value"), idxN = indexVar || "_i", stc = this.generate(step, "value");
|
|
6433
|
-
let isNeg = this.
|
|
6893
|
+
let isNeg = this.is(step, "-", 1);
|
|
6434
6894
|
code += isNeg ? this.indent() + `for (let ${idxN} = ${ic}.length - 1; ${idxN} >= 0; ${idxN} += ${stc}) {
|
|
6435
6895
|
` : this.indent() + `for (let ${idxN} = 0; ${idxN} < ${ic}.length; ${idxN} += ${stc}) {
|
|
6436
6896
|
`;
|
|
@@ -6474,7 +6934,7 @@ ${this.indent()}}`;
|
|
|
6474
6934
|
let va = Array.isArray(vars) ? vars : [vars];
|
|
6475
6935
|
let noVar = va.length === 0;
|
|
6476
6936
|
let [itemVar, indexVar] = noVar ? ["_i", null] : va;
|
|
6477
|
-
let ivp =
|
|
6937
|
+
let ivp = this.is(itemVar, "array") || this.is(itemVar, "object") ? this.generateDestructuringPattern(itemVar) : itemVar;
|
|
6478
6938
|
if (step && step !== null) {
|
|
6479
6939
|
let ih = Array.isArray(iterable) && iterable[0];
|
|
6480
6940
|
if (ih instanceof String)
|
|
@@ -6486,7 +6946,7 @@ ${this.indent()}}`;
|
|
|
6486
6946
|
code += `for (let ${ivp} = ${this.generate(s, "value")}; ${ivp} ${isExcl ? "<" : "<="} ${this.generate(e, "value")}; ${ivp} += ${this.generate(step, "value")}) `;
|
|
6487
6947
|
} else {
|
|
6488
6948
|
let ic = this.generate(iterable, "value"), idxN = indexVar || "_i", stc = this.generate(step, "value");
|
|
6489
|
-
let isNeg = this.
|
|
6949
|
+
let isNeg = this.is(step, "-", 1);
|
|
6490
6950
|
let isMinus1 = isNeg && (step[1] === "1" || step[1] === 1 || str(step[1]) === "1");
|
|
6491
6951
|
let isPlus1 = !isNeg && (step === "1" || step === 1 || str(step) === "1");
|
|
6492
6952
|
if (isMinus1)
|
|
@@ -6593,7 +7053,7 @@ ${this.indent()}}`;
|
|
|
6593
7053
|
if (iterType === "for-as") {
|
|
6594
7054
|
let va = Array.isArray(vars) ? vars : [vars];
|
|
6595
7055
|
let [fv] = va;
|
|
6596
|
-
let ivp =
|
|
7056
|
+
let ivp = this.is(fv, "array") || this.is(fv, "object") ? this.generateDestructuringPattern(fv) : fv;
|
|
6597
7057
|
code += `for (const ${ivp} of ${this.generate(iterable, "value")}) `;
|
|
6598
7058
|
if (guards?.length) {
|
|
6599
7059
|
code += `{
|
|
@@ -6707,7 +7167,7 @@ ${this.indent()}}`;
|
|
|
6707
7167
|
code += this.indent() + "}";
|
|
6708
7168
|
for (let branch of elseBranches) {
|
|
6709
7169
|
code += " else ";
|
|
6710
|
-
if (
|
|
7170
|
+
if (this.is(branch, "if")) {
|
|
6711
7171
|
let [, nc, nt, ...ne] = branch;
|
|
6712
7172
|
code += `if (${this.generate(nc, "value")}) {
|
|
6713
7173
|
`;
|
|
@@ -6745,7 +7205,7 @@ ${this.indent()}}`;
|
|
|
6745
7205
|
return code;
|
|
6746
7206
|
}
|
|
6747
7207
|
generateIfAsExpression(condition, thenBranch, elseBranches) {
|
|
6748
|
-
let needsIIFE = this.
|
|
7208
|
+
let needsIIFE = this.is(thenBranch, "block") && thenBranch.length > 2 || this.hasStatementInBranch(thenBranch) || elseBranches.some((b) => this.is(b, "block") && b.length > 2 || this.hasStatementInBranch(b) || this.hasNestedMultiStatement(b));
|
|
6749
7209
|
if (needsIIFE) {
|
|
6750
7210
|
let hasAwait = this.containsAwait(condition) || this.containsAwait(thenBranch) || elseBranches.some((b) => this.containsAwait(b));
|
|
6751
7211
|
let code = `${hasAwait ? "await " : ""}(${hasAwait ? "async " : ""}() => { `;
|
|
@@ -6753,13 +7213,13 @@ ${this.indent()}}`;
|
|
|
6753
7213
|
code += this.generateBlockWithReturns(thenBranch);
|
|
6754
7214
|
for (let branch of elseBranches) {
|
|
6755
7215
|
code += " else ";
|
|
6756
|
-
if (
|
|
7216
|
+
if (this.is(branch, "if")) {
|
|
6757
7217
|
let [_, nc, nt, ...ne] = branch;
|
|
6758
7218
|
code += `if (${this.generate(nc, "value")}) `;
|
|
6759
7219
|
code += this.generateBlockWithReturns(nt);
|
|
6760
7220
|
for (let nb of ne) {
|
|
6761
7221
|
code += " else ";
|
|
6762
|
-
if (
|
|
7222
|
+
if (this.is(nb, "if")) {
|
|
6763
7223
|
let [__, nnc, nnt, ...nne] = nb;
|
|
6764
7224
|
code += `if (${this.generate(nnc, "value")}) `;
|
|
6765
7225
|
code += this.generateBlockWithReturns(nnt);
|
|
@@ -6777,7 +7237,7 @@ ${this.indent()}}`;
|
|
|
6777
7237
|
let thenExpr = this.extractExpression(this.unwrapIfBranch(thenBranch));
|
|
6778
7238
|
let elseExpr = this.buildTernaryChain(elseBranches);
|
|
6779
7239
|
let condCode = this.generate(condition, "value");
|
|
6780
|
-
if (
|
|
7240
|
+
if (this.is(condition, "yield") || this.is(condition, "await"))
|
|
6781
7241
|
condCode = `(${condCode})`;
|
|
6782
7242
|
return `(${condCode} ? ${thenExpr} : ${elseExpr})`;
|
|
6783
7243
|
}
|
|
@@ -6796,7 +7256,7 @@ ${this.indent()}}`;
|
|
|
6796
7256
|
code += this.indent() + this.generate(s, "statement") + `;
|
|
6797
7257
|
`;
|
|
6798
7258
|
} else if (context === "value") {
|
|
6799
|
-
if (
|
|
7259
|
+
if (this.is(body, "block") && body.length > 2) {
|
|
6800
7260
|
let stmts = body.slice(1);
|
|
6801
7261
|
for (let i = 0;i < stmts.length; i++) {
|
|
6802
7262
|
if (i === stmts.length - 1)
|
|
@@ -6811,7 +7271,7 @@ ${this.indent()}}`;
|
|
|
6811
7271
|
`;
|
|
6812
7272
|
}
|
|
6813
7273
|
} else {
|
|
6814
|
-
if (
|
|
7274
|
+
if (this.is(body, "block") && body.length > 1) {
|
|
6815
7275
|
for (let s of body.slice(1))
|
|
6816
7276
|
code += this.indent() + this.generate(s, "statement") + `;
|
|
6817
7277
|
`;
|
|
@@ -6931,13 +7391,15 @@ ${this.indent()}}`;
|
|
|
6931
7391
|
this.indentLevel--;
|
|
6932
7392
|
return result;
|
|
6933
7393
|
}
|
|
6934
|
-
|
|
6935
|
-
if (!Array.isArray(
|
|
6936
|
-
return
|
|
6937
|
-
|
|
6938
|
-
|
|
6939
|
-
|
|
6940
|
-
|
|
7394
|
+
is(node, op, arity) {
|
|
7395
|
+
if (!Array.isArray(node))
|
|
7396
|
+
return null;
|
|
7397
|
+
if ((str(node[0]) ?? node[0]) !== op)
|
|
7398
|
+
return null;
|
|
7399
|
+
let args = node.slice(1);
|
|
7400
|
+
if (arity != null && args.length !== arity)
|
|
7401
|
+
return null;
|
|
7402
|
+
return args;
|
|
6941
7403
|
}
|
|
6942
7404
|
unwrap(code) {
|
|
6943
7405
|
if (typeof code !== "string")
|
|
@@ -7021,15 +7483,12 @@ ${this.indent()}}`;
|
|
|
7021
7483
|
return branch.slice(1).some((s) => this.hasStatementInBranch(s));
|
|
7022
7484
|
return false;
|
|
7023
7485
|
}
|
|
7024
|
-
isMultiStatementBlock(branch) {
|
|
7025
|
-
return Array.isArray(branch) && branch[0] === "block" && branch.length > 2;
|
|
7026
|
-
}
|
|
7027
7486
|
hasNestedMultiStatement(branch) {
|
|
7028
7487
|
if (!Array.isArray(branch))
|
|
7029
7488
|
return false;
|
|
7030
7489
|
if (branch[0] === "if") {
|
|
7031
7490
|
let [_, cond, then_, ...elseB] = branch;
|
|
7032
|
-
return this.
|
|
7491
|
+
return this.is(then_, "block") && then_.length > 2 || elseB.some((b) => this.hasNestedMultiStatement(b));
|
|
7033
7492
|
}
|
|
7034
7493
|
return false;
|
|
7035
7494
|
}
|
|
@@ -7039,7 +7498,7 @@ ${this.indent()}}`;
|
|
|
7039
7498
|
if (branches.length === 1)
|
|
7040
7499
|
return this.extractExpression(this.unwrapIfBranch(branches[0]));
|
|
7041
7500
|
let first = branches[0];
|
|
7042
|
-
if (
|
|
7501
|
+
if (this.is(first, "if")) {
|
|
7043
7502
|
let [_, cond, then_, ...rest] = first;
|
|
7044
7503
|
let thenPart = this.extractExpression(this.unwrapIfBranch(then_));
|
|
7045
7504
|
let elsePart = this.buildTernaryChain([...rest, ...branches.slice(1)]);
|
|
@@ -7183,6 +7642,19 @@ ${this.indent()}}`;
|
|
|
7183
7642
|
}
|
|
7184
7643
|
return `'${finalPath}'` + assertion;
|
|
7185
7644
|
}
|
|
7645
|
+
containsIt(sexpr) {
|
|
7646
|
+
if (!sexpr)
|
|
7647
|
+
return false;
|
|
7648
|
+
if (sexpr === "it" || sexpr instanceof String && str(sexpr) === "it")
|
|
7649
|
+
return true;
|
|
7650
|
+
if (typeof sexpr !== "object")
|
|
7651
|
+
return false;
|
|
7652
|
+
if (this.is(sexpr, "def") || this.is(sexpr, "->") || this.is(sexpr, "=>"))
|
|
7653
|
+
return false;
|
|
7654
|
+
if (Array.isArray(sexpr))
|
|
7655
|
+
return sexpr.some((item) => this.containsIt(item));
|
|
7656
|
+
return false;
|
|
7657
|
+
}
|
|
7186
7658
|
containsAwait(sexpr) {
|
|
7187
7659
|
if (!sexpr)
|
|
7188
7660
|
return false;
|
|
@@ -7190,11 +7662,11 @@ ${this.indent()}}`;
|
|
|
7190
7662
|
return true;
|
|
7191
7663
|
if (typeof sexpr !== "object")
|
|
7192
7664
|
return false;
|
|
7193
|
-
if (
|
|
7665
|
+
if (this.is(sexpr, "await"))
|
|
7194
7666
|
return true;
|
|
7195
|
-
if (
|
|
7667
|
+
if (this.is(sexpr, "for-as") && sexpr[3] === true)
|
|
7196
7668
|
return true;
|
|
7197
|
-
if (
|
|
7669
|
+
if (this.is(sexpr, "def") || this.is(sexpr, "->") || this.is(sexpr, "=>") || this.is(sexpr, "class"))
|
|
7198
7670
|
return false;
|
|
7199
7671
|
if (Array.isArray(sexpr))
|
|
7200
7672
|
return sexpr.some((item) => this.containsAwait(item));
|
|
@@ -7205,30 +7677,21 @@ ${this.indent()}}`;
|
|
|
7205
7677
|
return false;
|
|
7206
7678
|
if (typeof sexpr !== "object")
|
|
7207
7679
|
return false;
|
|
7208
|
-
if (
|
|
7680
|
+
if (this.is(sexpr, "yield") || this.is(sexpr, "yield-from"))
|
|
7209
7681
|
return true;
|
|
7210
|
-
if (
|
|
7682
|
+
if (this.is(sexpr, "def") || this.is(sexpr, "->") || this.is(sexpr, "=>") || this.is(sexpr, "class"))
|
|
7211
7683
|
return false;
|
|
7212
7684
|
if (Array.isArray(sexpr))
|
|
7213
7685
|
return sexpr.some((item) => this.containsYield(item));
|
|
7214
7686
|
return false;
|
|
7215
7687
|
}
|
|
7216
|
-
isStaticMember(mk) {
|
|
7217
|
-
return Array.isArray(mk) && mk[0] === "." && mk[1] === "this";
|
|
7218
|
-
}
|
|
7219
|
-
isComputedMember(mk) {
|
|
7220
|
-
return Array.isArray(mk) && mk[0] === "computed";
|
|
7221
|
-
}
|
|
7222
7688
|
extractMemberName(mk) {
|
|
7223
|
-
if (this.
|
|
7689
|
+
if (this.is(mk, ".") && mk[1] === "this")
|
|
7224
7690
|
return mk[2];
|
|
7225
|
-
if (this.
|
|
7691
|
+
if (this.is(mk, "computed"))
|
|
7226
7692
|
return `[${this.generate(mk[1], "value")}]`;
|
|
7227
7693
|
return mk;
|
|
7228
7694
|
}
|
|
7229
|
-
isBoundMethod(mv) {
|
|
7230
|
-
return Array.isArray(mv) && mv[0] === "=>";
|
|
7231
|
-
}
|
|
7232
7695
|
getReactiveRuntime() {
|
|
7233
7696
|
return `// ============================================================================
|
|
7234
7697
|
// Rip Reactive Runtime
|
|
@@ -7471,14 +7934,17 @@ class Compiler {
|
|
|
7471
7934
|
console.log();
|
|
7472
7935
|
}
|
|
7473
7936
|
let dts = null;
|
|
7937
|
+
let typeTokens = null;
|
|
7474
7938
|
if (this.options.types === "emit" || this.options.types === "check" || this.options.types === true) {
|
|
7475
|
-
|
|
7939
|
+
typeTokens = [...tokens];
|
|
7476
7940
|
}
|
|
7477
7941
|
tokens = tokens.filter((t) => t[0] !== "TYPE_DECL");
|
|
7478
7942
|
while (tokens.length > 0 && tokens[0][0] === "TERMINATOR") {
|
|
7479
7943
|
tokens.shift();
|
|
7480
7944
|
}
|
|
7481
7945
|
if (tokens.every((t) => t[0] === "TERMINATOR")) {
|
|
7946
|
+
if (typeTokens)
|
|
7947
|
+
dts = emitTypes(typeTokens, ["program"]);
|
|
7482
7948
|
return { tokens, sexpr: ["program"], code: "", dts, data: dataSection, reactiveVars: {} };
|
|
7483
7949
|
}
|
|
7484
7950
|
parser.lexer = {
|
|
@@ -7520,8 +7986,7 @@ class Compiler {
|
|
|
7520
7986
|
}
|
|
7521
7987
|
let generator = new CodeGenerator({
|
|
7522
7988
|
dataSection,
|
|
7523
|
-
|
|
7524
|
-
skipComponentRuntime: this.options.skipComponentRuntime,
|
|
7989
|
+
skipPreamble: this.options.skipPreamble,
|
|
7525
7990
|
reactiveVars: this.options.reactiveVars,
|
|
7526
7991
|
sourceMap
|
|
7527
7992
|
});
|
|
@@ -7536,6 +8001,9 @@ class Compiler {
|
|
|
7536
8001
|
code += `
|
|
7537
8002
|
//# sourceMappingURL=${this.options.filename}.js.map`;
|
|
7538
8003
|
}
|
|
8004
|
+
if (typeTokens) {
|
|
8005
|
+
dts = emitTypes(typeTokens, sexpr);
|
|
8006
|
+
}
|
|
7539
8007
|
return { tokens, sexpr, code, dts, map, reverseMap, data: dataSection, reactiveVars: generator.reactiveVars };
|
|
7540
8008
|
}
|
|
7541
8009
|
compileToJS(source) {
|
|
@@ -7560,8 +8028,8 @@ function getComponentRuntime() {
|
|
|
7560
8028
|
return new CodeGenerator({}).getComponentRuntime();
|
|
7561
8029
|
}
|
|
7562
8030
|
// src/browser.js
|
|
7563
|
-
var VERSION = "3.
|
|
7564
|
-
var BUILD_DATE = "2026-02-11@
|
|
8031
|
+
var VERSION = "3.7.0";
|
|
8032
|
+
var BUILD_DATE = "2026-02-11@09:35:09GMT";
|
|
7565
8033
|
if (typeof globalThis !== "undefined" && !globalThis.__rip) {
|
|
7566
8034
|
new Function(getReactiveRuntime())();
|
|
7567
8035
|
}
|