regex: Fix warnings and TODOs

This commit is contained in:
Ilya Matveev
2017-06-16 19:24:07 +07:00
committed by ilmat192
parent 22aead3d18
commit c994573a77
12 changed files with 341 additions and 373 deletions
@@ -1,3 +1,20 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import kotlin.text.*
import kotlin.test.*
+305 -305
View File
@@ -230,317 +230,317 @@ constexpr KInt decompositionKeys[] = {
};
struct Decomposition {
const KByte length;
const KInt array[4];
const KByte length;
};
constexpr Decomposition decompositionValues[] = {
{2, {65, 768}}, {2, {65, 769}}, {2, {65, 770}}, {2, {65, 771}}, {2, {65, 776}}, {2, {65, 778}}, {2, {67, 807}},
{2, {69, 768}}, {2, {69, 769}}, {2, {69, 770}}, {2, {69, 776}}, {2, {73, 768}}, {2, {73, 769}}, {2, {73, 770}},
{2, {73, 776}}, {2, {78, 771}}, {2, {79, 768}}, {2, {79, 769}}, {2, {79, 770}}, {2, {79, 771}}, {2, {79, 776}},
{2, {85, 768}}, {2, {85, 769}}, {2, {85, 770}}, {2, {85, 776}}, {2, {89, 769}}, {2, {97, 768}}, {2, {97, 769}},
{2, {97, 770}}, {2, {97, 771}}, {2, {97, 776}}, {2, {97, 778}}, {2, {99, 807}}, {2, {101, 768}}, {2, {101, 769}},
{2, {101, 770}}, {2, {101, 776}}, {2, {105, 768}}, {2, {105, 769}}, {2, {105, 770}}, {2, {105, 776}}, {2, {110, 771}},
{2, {111, 768}}, {2, {111, 769}}, {2, {111, 770}}, {2, {111, 771}}, {2, {111, 776}}, {2, {117, 768}}, {2, {117, 769}},
{2, {117, 770}}, {2, {117, 776}}, {2, {121, 769}}, {2, {121, 776}}, {2, {65, 772}}, {2, {97, 772}}, {2, {65, 774}},
{2, {97, 774}}, {2, {65, 808}}, {2, {97, 808}}, {2, {67, 769}}, {2, {99, 769}}, {2, {67, 770}}, {2, {99, 770}},
{2, {67, 775}}, {2, {99, 775}}, {2, {67, 780}}, {2, {99, 780}}, {2, {68, 780}}, {2, {100, 780}}, {2, {69, 772}},
{2, {101, 772}}, {2, {69, 774}}, {2, {101, 774}}, {2, {69, 775}}, {2, {101, 775}}, {2, {69, 808}}, {2, {101, 808}},
{2, {69, 780}}, {2, {101, 780}}, {2, {71, 770}}, {2, {103, 770}}, {2, {71, 774}}, {2, {103, 774}}, {2, {71, 775}},
{2, {103, 775}}, {2, {71, 807}}, {2, {103, 807}}, {2, {72, 770}}, {2, {104, 770}}, {2, {73, 771}}, {2, {105, 771}},
{2, {73, 772}}, {2, {105, 772}}, {2, {73, 774}}, {2, {105, 774}}, {2, {73, 808}}, {2, {105, 808}}, {2, {73, 775}},
{2, {74, 770}}, {2, {106, 770}}, {2, {75, 807}}, {2, {107, 807}}, {2, {76, 769}}, {2, {108, 769}}, {2, {76, 807}},
{2, {108, 807}}, {2, {76, 780}}, {2, {108, 780}}, {2, {78, 769}}, {2, {110, 769}}, {2, {78, 807}}, {2, {110, 807}},
{2, {78, 780}}, {2, {110, 780}}, {2, {79, 772}}, {2, {111, 772}}, {2, {79, 774}}, {2, {111, 774}}, {2, {79, 779}},
{2, {111, 779}}, {2, {82, 769}}, {2, {114, 769}}, {2, {82, 807}}, {2, {114, 807}}, {2, {82, 780}}, {2, {114, 780}},
{2, {83, 769}}, {2, {115, 769}}, {2, {83, 770}}, {2, {115, 770}}, {2, {83, 807}}, {2, {115, 807}}, {2, {83, 780}},
{2, {115, 780}}, {2, {84, 807}}, {2, {116, 807}}, {2, {84, 780}}, {2, {116, 780}}, {2, {85, 771}}, {2, {117, 771}},
{2, {85, 772}}, {2, {117, 772}}, {2, {85, 774}}, {2, {117, 774}}, {2, {85, 778}}, {2, {117, 778}}, {2, {85, 779}},
{2, {117, 779}}, {2, {85, 808}}, {2, {117, 808}}, {2, {87, 770}}, {2, {119, 770}}, {2, {89, 770}}, {2, {121, 770}},
{2, {89, 776}}, {2, {90, 769}}, {2, {122, 769}}, {2, {90, 775}}, {2, {122, 775}}, {2, {90, 780}}, {2, {122, 780}},
{2, {79, 795}}, {2, {111, 795}}, {2, {85, 795}}, {2, {117, 795}}, {2, {65, 780}}, {2, {97, 780}}, {2, {73, 780}},
{2, {105, 780}}, {2, {79, 780}}, {2, {111, 780}}, {2, {85, 780}}, {2, {117, 780}}, {3, {85, 776, 772}},
{3, {117, 776, 772}}, {3, {85, 776, 769}}, {3, {117, 776, 769}}, {3, {85, 776, 780}}, {3, {117, 776, 780}},
{3, {85, 776, 768}}, {3, {117, 776, 768}}, {3, {65, 776, 772}}, {3, {97, 776, 772}}, {3, {65, 775, 772}},
{3, {97, 775, 772}}, {2, {198, 772}}, {2, {230, 772}}, {2, {71, 780}}, {2, {103, 780}}, {2, {75, 780}},
{2, {107, 780}}, {2, {79, 808}}, {2, {111, 808}}, {3, {79, 808, 772}}, {3, {111, 808, 772}}, {2, {439, 780}},
{2, {658, 780}}, {2, {106, 780}}, {2, {71, 769}}, {2, {103, 769}}, {2, {78, 768}}, {2, {110, 768}},
{3, {65, 778, 769}}, {3, {97, 778, 769}}, {2, {198, 769}}, {2, {230, 769}}, {2, {216, 769}}, {2, {248, 769}},
{2, {65, 783}}, {2, {97, 783}}, {2, {65, 785}}, {2, {97, 785}}, {2, {69, 783}}, {2, {101, 783}}, {2, {69, 785}},
{2, {101, 785}}, {2, {73, 783}}, {2, {105, 783}}, {2, {73, 785}}, {2, {105, 785}}, {2, {79, 783}}, {2, {111, 783}},
{2, {79, 785}}, {2, {111, 785}}, {2, {82, 783}}, {2, {114, 783}}, {2, {82, 785}}, {2, {114, 785}}, {2, {85, 783}},
{2, {117, 783}}, {2, {85, 785}}, {2, {117, 785}}, {2, {83, 806}}, {2, {115, 806}}, {2, {84, 806}}, {2, {116, 806}},
{2, {72, 780}}, {2, {104, 780}}, {2, {65, 775}}, {2, {97, 775}}, {2, {69, 807}}, {2, {101, 807}}, {3, {79, 776, 772}},
{3, {111, 776, 772}}, {3, {79, 771, 772}}, {3, {111, 771, 772}}, {2, {79, 775}}, {2, {111, 775}}, {3, {79, 775, 772}},
{3, {111, 775, 772}}, {2, {89, 772}}, {2, {121, 772}}, {1, {768}}, {1, {769}}, {1, {787}}, {2, {776, 769}},
{1, {697}}, {1, {59}}, {2, {168, 769}}, {2, {913, 769}}, {1, {183}}, {2, {917, 769}}, {2, {919, 769}},
{2, {921, 769}}, {2, {927, 769}}, {2, {933, 769}}, {2, {937, 769}}, {3, {953, 776, 769}}, {2, {921, 776}},
{2, {933, 776}}, {2, {945, 769}}, {2, {949, 769}}, {2, {951, 769}}, {2, {953, 769}}, {3, {965, 776, 769}},
{2, {953, 776}}, {2, {965, 776}}, {2, {959, 769}}, {2, {965, 769}}, {2, {969, 769}}, {2, {978, 769}}, {2, {978, 776}},
{2, {1045, 768}}, {2, {1045, 776}}, {2, {1043, 769}}, {2, {1030, 776}}, {2, {1050, 769}}, {2, {1048, 768}},
{2, {1059, 774}}, {2, {1048, 774}}, {2, {1080, 774}}, {2, {1077, 768}}, {2, {1077, 776}}, {2, {1075, 769}},
{2, {1110, 776}}, {2, {1082, 769}}, {2, {1080, 768}}, {2, {1091, 774}}, {2, {1140, 783}}, {2, {1141, 783}},
{2, {1046, 774}}, {2, {1078, 774}}, {2, {1040, 774}}, {2, {1072, 774}}, {2, {1040, 776}}, {2, {1072, 776}},
{2, {1045, 774}}, {2, {1077, 774}}, {2, {1240, 776}}, {2, {1241, 776}}, {2, {1046, 776}}, {2, {1078, 776}},
{2, {1047, 776}}, {2, {1079, 776}}, {2, {1048, 772}}, {2, {1080, 772}}, {2, {1048, 776}}, {2, {1080, 776}},
{2, {1054, 776}}, {2, {1086, 776}}, {2, {1256, 776}}, {2, {1257, 776}}, {2, {1069, 776}}, {2, {1101, 776}},
{2, {1059, 772}}, {2, {1091, 772}}, {2, {1059, 776}}, {2, {1091, 776}}, {2, {1059, 779}}, {2, {1091, 779}},
{2, {1063, 776}}, {2, {1095, 776}}, {2, {1067, 776}}, {2, {1099, 776}}, {2, {1575, 1619}}, {2, {1575, 1620}},
{2, {1608, 1620}}, {2, {1575, 1621}}, {2, {1610, 1620}}, {2, {1749, 1620}}, {2, {1729, 1620}}, {2, {1746, 1620}},
{2, {2344, 2364}}, {2, {2352, 2364}}, {2, {2355, 2364}}, {2, {2325, 2364}}, {2, {2326, 2364}}, {2, {2327, 2364}},
{2, {2332, 2364}}, {2, {2337, 2364}}, {2, {2338, 2364}}, {2, {2347, 2364}}, {2, {2351, 2364}}, {2, {2503, 2494}},
{2, {2503, 2519}}, {2, {2465, 2492}}, {2, {2466, 2492}}, {2, {2479, 2492}}, {2, {2610, 2620}}, {2, {2616, 2620}},
{2, {2582, 2620}}, {2, {2583, 2620}}, {2, {2588, 2620}}, {2, {2603, 2620}}, {2, {2887, 2902}}, {2, {2887, 2878}},
{2, {2887, 2903}}, {2, {2849, 2876}}, {2, {2850, 2876}}, {2, {2962, 3031}}, {2, {3014, 3006}}, {2, {3015, 3006}},
{2, {3014, 3031}}, {2, {3142, 3158}}, {2, {3263, 3285}}, {2, {3270, 3285}}, {2, {3270, 3286}}, {2, {3270, 3266}},
{3, {3270, 3266, 3285}}, {2, {3398, 3390}}, {2, {3399, 3390}}, {2, {3398, 3415}}, {2, {3545, 3530}},
{2, {3545, 3535}}, {3, {3545, 3535, 3530}}, {2, {3545, 3551}}, {2, {3906, 4023}}, {2, {3916, 4023}},
{2, {3921, 4023}}, {2, {3926, 4023}}, {2, {3931, 4023}}, {2, {3904, 4021}}, {2, {3953, 3954}}, {2, {3953, 3956}},
{2, {4018, 3968}}, {2, {4019, 3968}}, {2, {3953, 3968}}, {2, {3986, 4023}}, {2, {3996, 4023}}, {2, {4001, 4023}},
{2, {4006, 4023}}, {2, {4011, 4023}}, {2, {3984, 4021}}, {2, {4133, 4142}}, {2, {65, 805}}, {2, {97, 805}},
{2, {66, 775}}, {2, {98, 775}}, {2, {66, 803}}, {2, {98, 803}}, {2, {66, 817}}, {2, {98, 817}}, {3, {67, 807, 769}},
{3, {99, 807, 769}}, {2, {68, 775}}, {2, {100, 775}}, {2, {68, 803}}, {2, {100, 803}}, {2, {68, 817}},
{2, {100, 817}}, {2, {68, 807}}, {2, {100, 807}}, {2, {68, 813}}, {2, {100, 813}}, {3, {69, 772, 768}},
{3, {101, 772, 768}}, {3, {69, 772, 769}}, {3, {101, 772, 769}}, {2, {69, 813}}, {2, {101, 813}}, {2, {69, 816}},
{2, {101, 816}}, {3, {69, 807, 774}}, {3, {101, 807, 774}}, {2, {70, 775}}, {2, {102, 775}}, {2, {71, 772}},
{2, {103, 772}}, {2, {72, 775}}, {2, {104, 775}}, {2, {72, 803}}, {2, {104, 803}}, {2, {72, 776}}, {2, {104, 776}},
{2, {72, 807}}, {2, {104, 807}}, {2, {72, 814}}, {2, {104, 814}}, {2, {73, 816}}, {2, {105, 816}},
{3, {73, 776, 769}}, {3, {105, 776, 769}}, {2, {75, 769}}, {2, {107, 769}}, {2, {75, 803}}, {2, {107, 803}},
{2, {75, 817}}, {2, {107, 817}}, {2, {76, 803}}, {2, {108, 803}}, {3, {76, 803, 772}}, {3, {108, 803, 772}},
{2, {76, 817}}, {2, {108, 817}}, {2, {76, 813}}, {2, {108, 813}}, {2, {77, 769}}, {2, {109, 769}}, {2, {77, 775}},
{2, {109, 775}}, {2, {77, 803}}, {2, {109, 803}}, {2, {78, 775}}, {2, {110, 775}}, {2, {78, 803}}, {2, {110, 803}},
{2, {78, 817}}, {2, {110, 817}}, {2, {78, 813}}, {2, {110, 813}}, {3, {79, 771, 769}}, {3, {111, 771, 769}},
{3, {79, 771, 776}}, {3, {111, 771, 776}}, {3, {79, 772, 768}}, {3, {111, 772, 768}}, {3, {79, 772, 769}},
{3, {111, 772, 769}}, {2, {80, 769}}, {2, {112, 769}}, {2, {80, 775}}, {2, {112, 775}}, {2, {82, 775}},
{2, {114, 775}}, {2, {82, 803}}, {2, {114, 803}}, {3, {82, 803, 772}}, {3, {114, 803, 772}}, {2, {82, 817}},
{2, {114, 817}}, {2, {83, 775}}, {2, {115, 775}}, {2, {83, 803}}, {2, {115, 803}}, {3, {83, 769, 775}},
{3, {115, 769, 775}}, {3, {83, 780, 775}}, {3, {115, 780, 775}}, {3, {83, 803, 775}}, {3, {115, 803, 775}},
{2, {84, 775}}, {2, {116, 775}}, {2, {84, 803}}, {2, {116, 803}}, {2, {84, 817}}, {2, {116, 817}}, {2, {84, 813}},
{2, {116, 813}}, {2, {85, 804}}, {2, {117, 804}}, {2, {85, 816}}, {2, {117, 816}}, {2, {85, 813}}, {2, {117, 813}},
{3, {85, 771, 769}}, {3, {117, 771, 769}}, {3, {85, 772, 776}}, {3, {117, 772, 776}}, {2, {86, 771}}, {2, {118, 771}},
{2, {86, 803}}, {2, {118, 803}}, {2, {87, 768}}, {2, {119, 768}}, {2, {87, 769}}, {2, {119, 769}}, {2, {87, 776}},
{2, {119, 776}}, {2, {87, 775}}, {2, {119, 775}}, {2, {87, 803}}, {2, {119, 803}}, {2, {88, 775}}, {2, {120, 775}},
{2, {88, 776}}, {2, {120, 776}}, {2, {89, 775}}, {2, {121, 775}}, {2, {90, 770}}, {2, {122, 770}}, {2, {90, 803}},
{2, {122, 803}}, {2, {90, 817}}, {2, {122, 817}}, {2, {104, 817}}, {2, {116, 776}}, {2, {119, 778}}, {2, {121, 778}},
{2, {383, 775}}, {2, {65, 803}}, {2, {97, 803}}, {2, {65, 777}}, {2, {97, 777}}, {3, {65, 770, 769}},
{3, {97, 770, 769}}, {3, {65, 770, 768}}, {3, {97, 770, 768}}, {3, {65, 770, 777}}, {3, {97, 770, 777}},
{3, {65, 770, 771}}, {3, {97, 770, 771}}, {3, {65, 803, 770}}, {3, {97, 803, 770}}, {3, {65, 774, 769}},
{3, {97, 774, 769}}, {3, {65, 774, 768}}, {3, {97, 774, 768}}, {3, {65, 774, 777}}, {3, {97, 774, 777}},
{3, {65, 774, 771}}, {3, {97, 774, 771}}, {3, {65, 803, 774}}, {3, {97, 803, 774}}, {2, {69, 803}}, {2, {101, 803}},
{2, {69, 777}}, {2, {101, 777}}, {2, {69, 771}}, {2, {101, 771}}, {3, {69, 770, 769}}, {3, {101, 770, 769}},
{3, {69, 770, 768}}, {3, {101, 770, 768}}, {3, {69, 770, 777}}, {3, {101, 770, 777}}, {3, {69, 770, 771}},
{3, {101, 770, 771}}, {3, {69, 803, 770}}, {3, {101, 803, 770}}, {2, {73, 777}}, {2, {105, 777}}, {2, {73, 803}},
{2, {105, 803}}, {2, {79, 803}}, {2, {111, 803}}, {2, {79, 777}}, {2, {111, 777}}, {3, {79, 770, 769}},
{3, {111, 770, 769}}, {3, {79, 770, 768}}, {3, {111, 770, 768}}, {3, {79, 770, 777}}, {3, {111, 770, 777}},
{3, {79, 770, 771}}, {3, {111, 770, 771}}, {3, {79, 803, 770}}, {3, {111, 803, 770}}, {3, {79, 795, 769}},
{3, {111, 795, 769}}, {3, {79, 795, 768}}, {3, {111, 795, 768}}, {3, {79, 795, 777}}, {3, {111, 795, 777}},
{3, {79, 795, 771}}, {3, {111, 795, 771}}, {3, {79, 795, 803}}, {3, {111, 795, 803}}, {2, {85, 803}}, {2, {117, 803}},
{2, {85, 777}}, {2, {117, 777}}, {3, {85, 795, 769}}, {3, {117, 795, 769}}, {3, {85, 795, 768}}, {3, {117, 795, 768}},
{3, {85, 795, 777}}, {3, {117, 795, 777}}, {3, {85, 795, 771}}, {3, {117, 795, 771}}, {3, {85, 795, 803}},
{3, {117, 795, 803}}, {2, {89, 768}}, {2, {121, 768}}, {2, {89, 803}}, {2, {121, 803}}, {2, {89, 777}},
{2, {121, 777}}, {2, {89, 771}}, {2, {121, 771}}, {2, {945, 787}}, {2, {945, 788}}, {3, {945, 787, 768}},
{3, {945, 788, 768}}, {3, {945, 787, 769}}, {3, {945, 788, 769}}, {3, {945, 787, 834}}, {3, {945, 788, 834}},
{2, {913, 787}}, {2, {913, 788}}, {3, {913, 787, 768}}, {3, {913, 788, 768}}, {3, {913, 787, 769}},
{3, {913, 788, 769}}, {3, {913, 787, 834}}, {3, {913, 788, 834}}, {2, {949, 787}}, {2, {949, 788}},
{3, {949, 787, 768}}, {3, {949, 788, 768}}, {3, {949, 787, 769}}, {3, {949, 788, 769}}, {2, {917, 787}},
{2, {917, 788}}, {3, {917, 787, 768}}, {3, {917, 788, 768}}, {3, {917, 787, 769}}, {3, {917, 788, 769}},
{2, {951, 787}}, {2, {951, 788}}, {3, {951, 787, 768}}, {3, {951, 788, 768}}, {3, {951, 787, 769}},
{3, {951, 788, 769}}, {3, {951, 787, 834}}, {3, {951, 788, 834}}, {2, {919, 787}}, {2, {919, 788}},
{3, {919, 787, 768}}, {3, {919, 788, 768}}, {3, {919, 787, 769}}, {3, {919, 788, 769}}, {3, {919, 787, 834}},
{3, {919, 788, 834}}, {2, {953, 787}}, {2, {953, 788}}, {3, {953, 787, 768}}, {3, {953, 788, 768}},
{3, {953, 787, 769}}, {3, {953, 788, 769}}, {3, {953, 787, 834}}, {3, {953, 788, 834}}, {2, {921, 787}},
{2, {921, 788}}, {3, {921, 787, 768}}, {3, {921, 788, 768}}, {3, {921, 787, 769}}, {3, {921, 788, 769}},
{3, {921, 787, 834}}, {3, {921, 788, 834}}, {2, {959, 787}}, {2, {959, 788}}, {3, {959, 787, 768}},
{3, {959, 788, 768}}, {3, {959, 787, 769}}, {3, {959, 788, 769}}, {2, {927, 787}}, {2, {927, 788}},
{3, {927, 787, 768}}, {3, {927, 788, 768}}, {3, {927, 787, 769}}, {3, {927, 788, 769}}, {2, {965, 787}},
{2, {965, 788}}, {3, {965, 787, 768}}, {3, {965, 788, 768}}, {3, {965, 787, 769}}, {3, {965, 788, 769}},
{3, {965, 787, 834}}, {3, {965, 788, 834}}, {2, {933, 788}}, {3, {933, 788, 768}}, {3, {933, 788, 769}},
{3, {933, 788, 834}}, {2, {969, 787}}, {2, {969, 788}}, {3, {969, 787, 768}}, {3, {969, 788, 768}},
{3, {969, 787, 769}}, {3, {969, 788, 769}}, {3, {969, 787, 834}}, {3, {969, 788, 834}}, {2, {937, 787}},
{2, {937, 788}}, {3, {937, 787, 768}}, {3, {937, 788, 768}}, {3, {937, 787, 769}}, {3, {937, 788, 769}},
{3, {937, 787, 834}}, {3, {937, 788, 834}}, {2, {945, 768}}, {2, {945, 769}}, {2, {949, 768}}, {2, {949, 769}},
{2, {951, 768}}, {2, {951, 769}}, {2, {953, 768}}, {2, {953, 769}}, {2, {959, 768}}, {2, {959, 769}}, {2, {965, 768}},
{2, {965, 769}}, {2, {969, 768}}, {2, {969, 769}}, {3, {945, 787, 837}}, {3, {945, 788, 837}},
{4, {945, 787, 768, 837}}, {4, {945, 788, 768, 837}}, {4, {945, 787, 769, 837}}, {4, {945, 788, 769, 837}},
{4, {945, 787, 834, 837}}, {4, {945, 788, 834, 837}}, {3, {913, 787, 837}}, {3, {913, 788, 837}},
{4, {913, 787, 768, 837}}, {4, {913, 788, 768, 837}}, {4, {913, 787, 769, 837}}, {4, {913, 788, 769, 837}},
{4, {913, 787, 834, 837}}, {4, {913, 788, 834, 837}}, {3, {951, 787, 837}}, {3, {951, 788, 837}},
{4, {951, 787, 768, 837}}, {4, {951, 788, 768, 837}}, {4, {951, 787, 769, 837}}, {4, {951, 788, 769, 837}},
{4, {951, 787, 834, 837}}, {4, {951, 788, 834, 837}}, {3, {919, 787, 837}}, {3, {919, 788, 837}},
{4, {919, 787, 768, 837}}, {4, {919, 788, 768, 837}}, {4, {919, 787, 769, 837}}, {4, {919, 788, 769, 837}},
{4, {919, 787, 834, 837}}, {4, {919, 788, 834, 837}}, {3, {969, 787, 837}}, {3, {969, 788, 837}},
{4, {969, 787, 768, 837}}, {4, {969, 788, 768, 837}}, {4, {969, 787, 769, 837}}, {4, {969, 788, 769, 837}},
{4, {969, 787, 834, 837}}, {4, {969, 788, 834, 837}}, {3, {937, 787, 837}}, {3, {937, 788, 837}},
{4, {937, 787, 768, 837}}, {4, {937, 788, 768, 837}}, {4, {937, 787, 769, 837}}, {4, {937, 788, 769, 837}},
{4, {937, 787, 834, 837}}, {4, {937, 788, 834, 837}}, {2, {945, 774}}, {2, {945, 772}}, {3, {945, 768, 837}},
{2, {945, 837}}, {3, {945, 769, 837}}, {2, {945, 834}}, {3, {945, 834, 837}}, {2, {913, 774}}, {2, {913, 772}},
{2, {913, 768}}, {2, {913, 769}}, {2, {913, 837}}, {1, {953}}, {2, {168, 834}}, {3, {951, 768, 837}}, {2, {951, 837}},
{3, {951, 769, 837}}, {2, {951, 834}}, {3, {951, 834, 837}}, {2, {917, 768}}, {2, {917, 769}}, {2, {919, 768}},
{2, {919, 769}}, {2, {919, 837}}, {2, {8127, 768}}, {2, {8127, 769}}, {2, {8127, 834}}, {2, {953, 774}},
{2, {953, 772}}, {3, {953, 776, 768}}, {3, {953, 776, 769}}, {2, {953, 834}}, {3, {953, 776, 834}}, {2, {921, 774}},
{2, {921, 772}}, {2, {921, 768}}, {2, {921, 769}}, {2, {8190, 768}}, {2, {8190, 769}}, {2, {8190, 834}},
{2, {965, 774}}, {2, {965, 772}}, {3, {965, 776, 768}}, {3, {965, 776, 769}}, {2, {961, 787}}, {2, {961, 788}},
{2, {965, 834}}, {3, {965, 776, 834}}, {2, {933, 774}}, {2, {933, 772}}, {2, {933, 768}}, {2, {933, 769}},
{2, {929, 788}}, {2, {168, 768}}, {2, {168, 769}}, {1, {96}}, {3, {969, 768, 837}}, {2, {969, 837}},
{3, {969, 769, 837}}, {2, {969, 834}}, {3, {969, 834, 837}}, {2, {927, 768}}, {2, {927, 769}}, {2, {937, 768}},
{2, {937, 769}}, {2, {937, 837}}, {1, {180}}, {1, {8194}}, {1, {8195}}, {1, {937}}, {1, {75}}, {2, {65, 778}},
{2, {8592, 824}}, {2, {8594, 824}}, {2, {8596, 824}}, {2, {8656, 824}}, {2, {8660, 824}}, {2, {8658, 824}},
{2, {8707, 824}}, {2, {8712, 824}}, {2, {8715, 824}}, {2, {8739, 824}}, {2, {8741, 824}}, {2, {8764, 824}},
{2, {8771, 824}}, {2, {8773, 824}}, {2, {8776, 824}}, {2, {61, 824}}, {2, {8801, 824}}, {2, {8781, 824}},
{2, {60, 824}}, {2, {62, 824}}, {2, {8804, 824}}, {2, {8805, 824}}, {2, {8818, 824}}, {2, {8819, 824}},
{2, {8822, 824}}, {2, {8823, 824}}, {2, {8826, 824}}, {2, {8827, 824}}, {2, {8834, 824}}, {2, {8835, 824}},
{2, {8838, 824}}, {2, {8839, 824}}, {2, {8866, 824}}, {2, {8872, 824}}, {2, {8873, 824}}, {2, {8875, 824}},
{2, {8828, 824}}, {2, {8829, 824}}, {2, {8849, 824}}, {2, {8850, 824}}, {2, {8882, 824}}, {2, {8883, 824}},
{2, {8884, 824}}, {2, {8885, 824}}, {1, {12296}}, {1, {12297}}, {2, {10973, 824}}, {2, {12363, 12441}},
{2, {12365, 12441}}, {2, {12367, 12441}}, {2, {12369, 12441}}, {2, {12371, 12441}}, {2, {12373, 12441}},
{2, {12375, 12441}}, {2, {12377, 12441}}, {2, {12379, 12441}}, {2, {12381, 12441}}, {2, {12383, 12441}},
{2, {12385, 12441}}, {2, {12388, 12441}}, {2, {12390, 12441}}, {2, {12392, 12441}}, {2, {12399, 12441}},
{2, {12399, 12442}}, {2, {12402, 12441}}, {2, {12402, 12442}}, {2, {12405, 12441}}, {2, {12405, 12442}},
{2, {12408, 12441}}, {2, {12408, 12442}}, {2, {12411, 12441}}, {2, {12411, 12442}}, {2, {12358, 12441}},
{2, {12445, 12441}}, {2, {12459, 12441}}, {2, {12461, 12441}}, {2, {12463, 12441}}, {2, {12465, 12441}},
{2, {12467, 12441}}, {2, {12469, 12441}}, {2, {12471, 12441}}, {2, {12473, 12441}}, {2, {12475, 12441}},
{2, {12477, 12441}}, {2, {12479, 12441}}, {2, {12481, 12441}}, {2, {12484, 12441}}, {2, {12486, 12441}},
{2, {12488, 12441}}, {2, {12495, 12441}}, {2, {12495, 12442}}, {2, {12498, 12441}}, {2, {12498, 12442}},
{2, {12501, 12441}}, {2, {12501, 12442}}, {2, {12504, 12441}}, {2, {12504, 12442}}, {2, {12507, 12441}},
{2, {12507, 12442}}, {2, {12454, 12441}}, {2, {12527, 12441}}, {2, {12528, 12441}}, {2, {12529, 12441}},
{2, {12530, 12441}}, {2, {12541, 12441}}, {1, {35912}}, {1, {26356}}, {1, {36554}}, {1, {36040}}, {1, {28369}},
{1, {20018}}, {1, {21477}}, {1, {40860}}, {1, {40860}}, {1, {22865}}, {1, {37329}}, {1, {21895}}, {1, {22856}},
{1, {25078}}, {1, {30313}}, {1, {32645}}, {1, {34367}}, {1, {34746}}, {1, {35064}}, {1, {37007}}, {1, {27138}},
{1, {27931}}, {1, {28889}}, {1, {29662}}, {1, {33853}}, {1, {37226}}, {1, {39409}}, {1, {20098}}, {1, {21365}},
{1, {27396}}, {1, {29211}}, {1, {34349}}, {1, {40478}}, {1, {23888}}, {1, {28651}}, {1, {34253}}, {1, {35172}},
{1, {25289}}, {1, {33240}}, {1, {34847}}, {1, {24266}}, {1, {26391}}, {1, {28010}}, {1, {29436}}, {1, {37070}},
{1, {20358}}, {1, {20919}}, {1, {21214}}, {1, {25796}}, {1, {27347}}, {1, {29200}}, {1, {30439}}, {1, {32769}},
{1, {34310}}, {1, {34396}}, {1, {36335}}, {1, {38706}}, {1, {39791}}, {1, {40442}}, {1, {30860}}, {1, {31103}},
{1, {32160}}, {1, {33737}}, {1, {37636}}, {1, {40575}}, {1, {35542}}, {1, {22751}}, {1, {24324}}, {1, {31840}},
{1, {32894}}, {1, {29282}}, {1, {30922}}, {1, {36034}}, {1, {38647}}, {1, {22744}}, {1, {23650}}, {1, {27155}},
{1, {28122}}, {1, {28431}}, {1, {32047}}, {1, {32311}}, {1, {38475}}, {1, {21202}}, {1, {32907}}, {1, {20956}},
{1, {20940}}, {1, {31260}}, {1, {32190}}, {1, {33777}}, {1, {38517}}, {1, {35712}}, {1, {25295}}, {1, {27138}},
{1, {35582}}, {1, {20025}}, {1, {23527}}, {1, {24594}}, {1, {29575}}, {1, {30064}}, {1, {21271}}, {1, {30971}},
{1, {20415}}, {1, {24489}}, {1, {19981}}, {1, {27852}}, {1, {25976}}, {1, {32034}}, {1, {21443}}, {1, {22622}},
{1, {30465}}, {1, {33865}}, {1, {35498}}, {1, {27578}}, {1, {36784}}, {1, {27784}}, {1, {25342}}, {1, {33509}},
{1, {25504}}, {1, {30053}}, {1, {20142}}, {1, {20841}}, {1, {20937}}, {1, {26753}}, {1, {31975}}, {1, {33391}},
{1, {35538}}, {1, {37327}}, {1, {21237}}, {1, {21570}}, {1, {22899}}, {1, {24300}}, {1, {26053}}, {1, {28670}},
{1, {31018}}, {1, {38317}}, {1, {39530}}, {1, {40599}}, {1, {40654}}, {1, {21147}}, {1, {26310}}, {1, {27511}},
{1, {36706}}, {1, {24180}}, {1, {24976}}, {1, {25088}}, {1, {25754}}, {1, {28451}}, {1, {29001}}, {1, {29833}},
{1, {31178}}, {1, {32244}}, {1, {32879}}, {1, {36646}}, {1, {34030}}, {1, {36899}}, {1, {37706}}, {1, {21015}},
{1, {21155}}, {1, {21693}}, {1, {28872}}, {1, {35010}}, {1, {35498}}, {1, {24265}}, {1, {24565}}, {1, {25467}},
{1, {27566}}, {1, {31806}}, {1, {29557}}, {1, {20196}}, {1, {22265}}, {1, {23527}}, {1, {23994}}, {1, {24604}},
{1, {29618}}, {1, {29801}}, {1, {32666}}, {1, {32838}}, {1, {37428}}, {1, {38646}}, {1, {38728}}, {1, {38936}},
{1, {20363}}, {1, {31150}}, {1, {37300}}, {1, {38584}}, {1, {24801}}, {1, {20102}}, {1, {20698}}, {1, {23534}},
{1, {23615}}, {1, {26009}}, {1, {27138}}, {1, {29134}}, {1, {30274}}, {1, {34044}}, {1, {36988}}, {1, {40845}},
{1, {26248}}, {1, {38446}}, {1, {21129}}, {1, {26491}}, {1, {26611}}, {1, {27969}}, {1, {28316}}, {1, {29705}},
{1, {30041}}, {1, {30827}}, {1, {32016}}, {1, {39006}}, {1, {20845}}, {1, {25134}}, {1, {38520}}, {1, {20523}},
{1, {23833}}, {1, {28138}}, {1, {36650}}, {1, {24459}}, {1, {24900}}, {1, {26647}}, {1, {29575}}, {1, {38534}},
{1, {21033}}, {1, {21519}}, {1, {23653}}, {1, {26131}}, {1, {26446}}, {1, {26792}}, {1, {27877}}, {1, {29702}},
{1, {30178}}, {1, {32633}}, {1, {35023}}, {1, {35041}}, {1, {37324}}, {1, {38626}}, {1, {21311}}, {1, {28346}},
{1, {21533}}, {1, {29136}}, {1, {29848}}, {1, {34298}}, {1, {38563}}, {1, {40023}}, {1, {40607}}, {1, {26519}},
{1, {28107}}, {1, {33256}}, {1, {31435}}, {1, {31520}}, {1, {31890}}, {1, {29376}}, {1, {28825}}, {1, {35672}},
{1, {20160}}, {1, {33590}}, {1, {21050}}, {1, {20999}}, {1, {24230}}, {1, {25299}}, {1, {31958}}, {1, {23429}},
{1, {27934}}, {1, {26292}}, {1, {36667}}, {1, {34892}}, {1, {38477}}, {1, {35211}}, {1, {24275}}, {1, {20800}},
{1, {21952}}, {1, {22618}}, {1, {26228}}, {1, {20958}}, {1, {29482}}, {1, {30410}}, {1, {31036}}, {1, {31070}},
{1, {31077}}, {1, {31119}}, {1, {38742}}, {1, {31934}}, {1, {32701}}, {1, {34322}}, {1, {35576}}, {1, {36920}},
{1, {37117}}, {1, {39151}}, {1, {39164}}, {1, {39208}}, {1, {40372}}, {1, {20398}}, {1, {20711}}, {1, {20813}},
{1, {21193}}, {1, {21220}}, {1, {21329}}, {1, {21917}}, {1, {22022}}, {1, {22120}}, {1, {22592}}, {1, {22696}},
{1, {23652}}, {1, {23662}}, {1, {24724}}, {1, {24936}}, {1, {24974}}, {1, {25074}}, {1, {25935}}, {1, {26082}},
{1, {26257}}, {1, {26757}}, {1, {28023}}, {1, {28186}}, {1, {28450}}, {1, {29038}}, {1, {29227}}, {1, {29730}},
{1, {30865}}, {1, {31038}}, {1, {31049}}, {1, {31048}}, {1, {31056}}, {1, {31062}}, {1, {31069}}, {1, {31117}},
{1, {31118}}, {1, {31296}}, {1, {31361}}, {1, {31680}}, {1, {32244}}, {1, {32265}}, {1, {32321}}, {1, {32626}},
{1, {32773}}, {1, {33261}}, {1, {33401}}, {1, {33401}}, {1, {33879}}, {1, {35088}}, {1, {35222}}, {1, {35585}},
{1, {35641}}, {1, {36051}}, {1, {36104}}, {1, {36790}}, {1, {36920}}, {1, {38627}}, {1, {38911}}, {1, {38971}},
{1, {20006}}, {1, {20917}}, {1, {20840}}, {1, {20352}}, {1, {20805}}, {1, {20864}}, {1, {21191}}, {1, {21242}},
{1, {21917}}, {1, {21845}}, {1, {21913}}, {1, {21986}}, {1, {22618}}, {1, {22707}}, {1, {22852}}, {1, {22868}},
{1, {23138}}, {1, {23336}}, {1, {24274}}, {1, {24281}}, {1, {24425}}, {1, {24493}}, {1, {24792}}, {1, {24910}},
{1, {24840}}, {1, {24974}}, {1, {24928}}, {1, {25074}}, {1, {25140}}, {1, {25540}}, {1, {25628}}, {1, {25682}},
{1, {25942}}, {1, {26228}}, {1, {26391}}, {1, {26395}}, {1, {26454}}, {1, {27513}}, {1, {27578}}, {1, {27969}},
{1, {28379}}, {1, {28363}}, {1, {28450}}, {1, {28702}}, {1, {29038}}, {1, {30631}}, {1, {29237}}, {1, {29359}},
{1, {29482}}, {1, {29809}}, {1, {29958}}, {1, {30011}}, {1, {30237}}, {1, {30239}}, {1, {30410}}, {1, {30427}},
{1, {30452}}, {1, {30538}}, {1, {30528}}, {1, {30924}}, {1, {31409}}, {1, {31680}}, {1, {31867}}, {1, {32091}},
{1, {32244}}, {1, {32574}}, {1, {32773}}, {1, {33618}}, {1, {33775}}, {1, {34681}}, {1, {35137}}, {1, {35206}},
{1, {35222}}, {1, {35519}}, {1, {35576}}, {1, {35531}}, {1, {35585}}, {1, {35582}}, {1, {35565}}, {1, {35641}},
{1, {35722}}, {1, {36104}}, {1, {36664}}, {1, {36978}}, {1, {37273}}, {1, {37494}}, {1, {38524}}, {1, {38627}},
{1, {38742}}, {1, {38875}}, {1, {38911}}, {1, {38923}}, {1, {38971}}, {1, {39698}}, {1, {40860}}, {1, {141386}},
{1, {141380}}, {1, {144341}}, {1, {15261}}, {1, {16408}}, {1, {16441}}, {1, {152137}}, {1, {154832}}, {1, {163539}},
{1, {40771}}, {1, {40846}}, {2, {1497, 1460}}, {2, {1522, 1463}}, {2, {1513, 1473}}, {2, {1513, 1474}},
{3, {1513, 1468, 1473}}, {3, {1513, 1468, 1474}}, {2, {1488, 1463}}, {2, {1488, 1464}}, {2, {1488, 1468}},
{2, {1489, 1468}}, {2, {1490, 1468}}, {2, {1491, 1468}}, {2, {1492, 1468}}, {2, {1493, 1468}}, {2, {1494, 1468}},
{2, {1496, 1468}}, {2, {1497, 1468}}, {2, {1498, 1468}}, {2, {1499, 1468}}, {2, {1500, 1468}}, {2, {1502, 1468}},
{2, {1504, 1468}}, {2, {1505, 1468}}, {2, {1507, 1468}}, {2, {1508, 1468}}, {2, {1510, 1468}}, {2, {1511, 1468}},
{2, {1512, 1468}}, {2, {1513, 1468}}, {2, {1514, 1468}}, {2, {1493, 1465}}, {2, {1489, 1471}}, {2, {1499, 1471}},
{2, {1508, 1471}}, {2, {119127, 119141}}, {2, {119128, 119141}}, {3, {119128, 119141, 119150}},
{3, {119128, 119141, 119151}}, {3, {119128, 119141, 119152}}, {3, {119128, 119141, 119153}},
{3, {119128, 119141, 119154}}, {2, {119225, 119141}}, {2, {119226, 119141}}, {3, {119225, 119141, 119150}},
{3, {119226, 119141, 119150}}, {3, {119225, 119141, 119151}}, {3, {119226, 119141, 119151}}, {1, {20029}},
{1, {20024}}, {1, {20033}}, {1, {131362}}, {1, {20320}}, {1, {20398}}, {1, {20411}}, {1, {20482}}, {1, {20602}},
{1, {20633}}, {1, {20711}}, {1, {20687}}, {1, {13470}}, {1, {132666}}, {1, {20813}}, {1, {20820}}, {1, {20836}},
{1, {20855}}, {1, {132380}}, {1, {13497}}, {1, {20839}}, {1, {20877}}, {1, {132427}}, {1, {20887}}, {1, {20900}},
{1, {20172}}, {1, {20908}}, {1, {20917}}, {1, {168415}}, {1, {20981}}, {1, {20995}}, {1, {13535}}, {1, {21051}},
{1, {21062}}, {1, {21106}}, {1, {21111}}, {1, {13589}}, {1, {21191}}, {1, {21193}}, {1, {21220}}, {1, {21242}},
{1, {21253}}, {1, {21254}}, {1, {21271}}, {1, {21321}}, {1, {21329}}, {1, {21338}}, {1, {21363}}, {1, {21373}},
{1, {21375}}, {1, {21375}}, {1, {21375}}, {1, {133676}}, {1, {28784}}, {1, {21450}}, {1, {21471}}, {1, {133987}},
{1, {21483}}, {1, {21489}}, {1, {21510}}, {1, {21662}}, {1, {21560}}, {1, {21576}}, {1, {21608}}, {1, {21666}},
{1, {21750}}, {1, {21776}}, {1, {21843}}, {1, {21859}}, {1, {21892}}, {1, {21892}}, {1, {21913}}, {1, {21931}},
{1, {21939}}, {1, {21954}}, {1, {22294}}, {1, {22022}}, {1, {22295}}, {1, {22097}}, {1, {22132}}, {1, {20999}},
{1, {22766}}, {1, {22478}}, {1, {22516}}, {1, {22541}}, {1, {22411}}, {1, {22578}}, {1, {22577}}, {1, {22700}},
{1, {136420}}, {1, {22770}}, {1, {22775}}, {1, {22790}}, {1, {22810}}, {1, {22818}}, {1, {22882}}, {1, {136872}},
{1, {136938}}, {1, {23020}}, {1, {23067}}, {1, {23079}}, {1, {23000}}, {1, {23142}}, {1, {14062}}, {1, {14076}},
{1, {23304}}, {1, {23358}}, {1, {23358}}, {1, {137672}}, {1, {23491}}, {1, {23512}}, {1, {23527}}, {1, {23539}},
{1, {138008}}, {1, {23551}}, {1, {23558}}, {1, {24403}}, {1, {23586}}, {1, {14209}}, {1, {23648}}, {1, {23662}},
{1, {23744}}, {1, {23693}}, {1, {138724}}, {1, {23875}}, {1, {138726}}, {1, {23918}}, {1, {23915}}, {1, {23932}},
{1, {24033}}, {1, {24034}}, {1, {14383}}, {1, {24061}}, {1, {24104}}, {1, {24125}}, {1, {24169}}, {1, {14434}},
{1, {139651}}, {1, {14460}}, {1, {24240}}, {1, {24243}}, {1, {24246}}, {1, {24266}}, {1, {172946}}, {1, {24318}},
{1, {140081}}, {1, {140081}}, {1, {33281}}, {1, {24354}}, {1, {24354}}, {1, {14535}}, {1, {144056}}, {1, {156122}},
{1, {24418}}, {1, {24427}}, {1, {14563}}, {1, {24474}}, {1, {24525}}, {1, {24535}}, {1, {24569}}, {1, {24705}},
{1, {14650}}, {1, {14620}}, {1, {24724}}, {1, {141012}}, {1, {24775}}, {1, {24904}}, {1, {24908}}, {1, {24910}},
{1, {24908}}, {1, {24954}}, {1, {24974}}, {1, {25010}}, {1, {24996}}, {1, {25007}}, {1, {25054}}, {1, {25074}},
{1, {25078}}, {1, {25104}}, {1, {25115}}, {1, {25181}}, {1, {25265}}, {1, {25300}}, {1, {25424}}, {1, {142092}},
{1, {25405}}, {1, {25340}}, {1, {25448}}, {1, {25475}}, {1, {25572}}, {1, {142321}}, {1, {25634}}, {1, {25541}},
{1, {25513}}, {1, {14894}}, {1, {25705}}, {1, {25726}}, {1, {25757}}, {1, {25719}}, {1, {14956}}, {1, {25935}},
{1, {25964}}, {1, {143370}}, {1, {26083}}, {1, {26360}}, {1, {26185}}, {1, {15129}}, {1, {26257}}, {1, {15112}},
{1, {15076}}, {1, {20882}}, {1, {20885}}, {1, {26368}}, {1, {26268}}, {1, {32941}}, {1, {17369}}, {1, {26391}},
{1, {26395}}, {1, {26401}}, {1, {26462}}, {1, {26451}}, {1, {144323}}, {1, {15177}}, {1, {26618}}, {1, {26501}},
{1, {26706}}, {1, {26757}}, {1, {144493}}, {1, {26766}}, {1, {26655}}, {1, {26900}}, {1, {15261}}, {1, {26946}},
{1, {27043}}, {1, {27114}}, {1, {27304}}, {1, {145059}}, {1, {27355}}, {1, {15384}}, {1, {27425}}, {1, {145575}},
{1, {27476}}, {1, {15438}}, {1, {27506}}, {1, {27551}}, {1, {27578}}, {1, {27579}}, {1, {146061}}, {1, {138507}},
{1, {146170}}, {1, {27726}}, {1, {146620}}, {1, {27839}}, {1, {27853}}, {1, {27751}}, {1, {27926}}, {1, {27966}},
{1, {28023}}, {1, {27969}}, {1, {28009}}, {1, {28024}}, {1, {28037}}, {1, {146718}}, {1, {27956}}, {1, {28207}},
{1, {28270}}, {1, {15667}}, {1, {28363}}, {1, {28359}}, {1, {147153}}, {1, {28153}}, {1, {28526}}, {1, {147294}},
{1, {147342}}, {1, {28614}}, {1, {28729}}, {1, {28702}}, {1, {28699}}, {1, {15766}}, {1, {28746}}, {1, {28797}},
{1, {28791}}, {1, {28845}}, {1, {132389}}, {1, {28997}}, {1, {148067}}, {1, {29084}}, {1, {148395}}, {1, {29224}},
{1, {29237}}, {1, {29264}}, {1, {149000}}, {1, {29312}}, {1, {29333}}, {1, {149301}}, {1, {149524}}, {1, {29562}},
{1, {29579}}, {1, {16044}}, {1, {29605}}, {1, {16056}}, {1, {16056}}, {1, {29767}}, {1, {29788}}, {1, {29809}},
{1, {29829}}, {1, {29898}}, {1, {16155}}, {1, {29988}}, {1, {150582}}, {1, {30014}}, {1, {150674}}, {1, {30064}},
{1, {139679}}, {1, {30224}}, {1, {151457}}, {1, {151480}}, {1, {151620}}, {1, {16380}}, {1, {16392}}, {1, {30452}},
{1, {151795}}, {1, {151794}}, {1, {151833}}, {1, {151859}}, {1, {30494}}, {1, {30495}}, {1, {30495}}, {1, {30538}},
{1, {16441}}, {1, {30603}}, {1, {16454}}, {1, {16534}}, {1, {152605}}, {1, {30798}}, {1, {30860}}, {1, {30924}},
{1, {16611}}, {1, {153126}}, {1, {31062}}, {1, {153242}}, {1, {153285}}, {1, {31119}}, {1, {31211}}, {1, {16687}},
{1, {31296}}, {1, {31306}}, {1, {31311}}, {1, {153980}}, {1, {154279}}, {1, {154279}}, {1, {31470}}, {1, {16898}},
{1, {154539}}, {1, {31686}}, {1, {31689}}, {1, {16935}}, {1, {154752}}, {1, {31954}}, {1, {17056}}, {1, {31976}},
{1, {31971}}, {1, {32000}}, {1, {155526}}, {1, {32099}}, {1, {17153}}, {1, {32199}}, {1, {32258}}, {1, {32325}},
{1, {17204}}, {1, {156200}}, {1, {156231}}, {1, {17241}}, {1, {156377}}, {1, {32634}}, {1, {156478}}, {1, {32661}},
{1, {32762}}, {1, {32773}}, {1, {156890}}, {1, {156963}}, {1, {32864}}, {1, {157096}}, {1, {32880}}, {1, {144223}},
{1, {17365}}, {1, {32946}}, {1, {33027}}, {1, {17419}}, {1, {33086}}, {1, {23221}}, {1, {157607}}, {1, {157621}},
{1, {144275}}, {1, {144284}}, {1, {33281}}, {1, {33284}}, {1, {36766}}, {1, {17515}}, {1, {33425}}, {1, {33419}},
{1, {33437}}, {1, {21171}}, {1, {33457}}, {1, {33459}}, {1, {33469}}, {1, {33510}}, {1, {158524}}, {1, {33509}},
{1, {33565}}, {1, {33635}}, {1, {33709}}, {1, {33571}}, {1, {33725}}, {1, {33767}}, {1, {33879}}, {1, {33619}},
{1, {33738}}, {1, {33740}}, {1, {33756}}, {1, {158774}}, {1, {159083}}, {1, {158933}}, {1, {17707}}, {1, {34033}},
{1, {34035}}, {1, {34070}}, {1, {160714}}, {1, {34148}}, {1, {159532}}, {1, {17757}}, {1, {17761}}, {1, {159665}},
{1, {159954}}, {1, {17771}}, {1, {34384}}, {1, {34396}}, {1, {34407}}, {1, {34409}}, {1, {34473}}, {1, {34440}},
{1, {34574}}, {1, {34530}}, {1, {34681}}, {1, {34600}}, {1, {34667}}, {1, {34694}}, {1, {17879}}, {1, {34785}},
{1, {34817}}, {1, {17913}}, {1, {34912}}, {1, {34915}}, {1, {161383}}, {1, {35031}}, {1, {35038}}, {1, {17973}},
{1, {35066}}, {1, {13499}}, {1, {161966}}, {1, {162150}}, {1, {18110}}, {1, {18119}}, {1, {35488}}, {1, {35565}},
{1, {35722}}, {1, {35925}}, {1, {162984}}, {1, {36011}}, {1, {36033}}, {1, {36123}}, {1, {36215}}, {1, {163631}},
{1, {133124}}, {1, {36299}}, {1, {36284}}, {1, {36336}}, {1, {133342}}, {1, {36564}}, {1, {36664}}, {1, {165330}},
{1, {165357}}, {1, {37012}}, {1, {37105}}, {1, {37137}}, {1, {165678}}, {1, {37147}}, {1, {37432}}, {1, {37591}},
{1, {37592}}, {1, {37500}}, {1, {37881}}, {1, {37909}}, {1, {166906}}, {1, {38283}}, {1, {18837}}, {1, {38327}},
{1, {167287}}, {1, {18918}}, {1, {38595}}, {1, {23986}}, {1, {38691}}, {1, {168261}}, {1, {168474}}, {1, {19054}},
{1, {19062}}, {1, {38880}}, {1, {168970}}, {1, {19122}}, {1, {169110}}, {1, {38923}}, {1, {38923}}, {1, {38953}},
{1, {169398}}, {1, {39138}}, {1, {19251}}, {1, {39209}}, {1, {39335}}, {1, {39362}}, {1, {39422}}, {1, {19406}},
{1, {170800}}, {1, {39698}}, {1, {40000}}, {1, {40189}}, {1, {19662}}, {1, {19693}}, {1, {40295}}, {1, {172238}},
{1, {19704}}, {1, {172293}}, {1, {172558}}, {1, {172689}}, {1, {40635}}, {1, {19798}}, {1, {40697}}, {1, {40702}},
{1, {40709}}, {1, {40719}}, {1, {40726}}, {1, {40763}}, {1, {173568}},
{{65, 768}, 2}, {{65, 769}, 2}, {{65, 770}, 2}, {{65, 771}, 2}, {{65, 776}, 2}, {{65, 778}, 2}, {{67, 807}, 2},
{{69, 768}, 2}, {{69, 769}, 2}, {{69, 770}, 2}, {{69, 776}, 2}, {{73, 768}, 2}, {{73, 769}, 2}, {{73, 770}, 2},
{{73, 776}, 2}, {{78, 771}, 2}, {{79, 768}, 2}, {{79, 769}, 2}, {{79, 770}, 2}, {{79, 771}, 2}, {{79, 776}, 2},
{{85, 768}, 2}, {{85, 769}, 2}, {{85, 770}, 2}, {{85, 776}, 2}, {{89, 769}, 2}, {{97, 768}, 2}, {{97, 769}, 2},
{{97, 770}, 2}, {{97, 771}, 2}, {{97, 776}, 2}, {{97, 778}, 2}, {{99, 807}, 2}, {{101, 768}, 2}, {{101, 769}, 2},
{{101, 770}, 2}, {{101, 776}, 2}, {{105, 768}, 2}, {{105, 769}, 2}, {{105, 770}, 2}, {{105, 776}, 2}, {{110, 771}, 2},
{{111, 768}, 2}, {{111, 769}, 2}, {{111, 770}, 2}, {{111, 771}, 2}, {{111, 776}, 2}, {{117, 768}, 2}, {{117, 769}, 2},
{{117, 770}, 2}, {{117, 776}, 2}, {{121, 769}, 2}, {{121, 776}, 2}, {{65, 772}, 2}, {{97, 772}, 2}, {{65, 774}, 2},
{{97, 774}, 2}, {{65, 808}, 2}, {{97, 808}, 2}, {{67, 769}, 2}, {{99, 769}, 2}, {{67, 770}, 2}, {{99, 770}, 2},
{{67, 775}, 2}, {{99, 775}, 2}, {{67, 780}, 2}, {{99, 780}, 2}, {{68, 780}, 2}, {{100, 780}, 2}, {{69, 772}, 2},
{{101, 772}, 2}, {{69, 774}, 2}, {{101, 774}, 2}, {{69, 775}, 2}, {{101, 775}, 2}, {{69, 808}, 2}, {{101, 808}, 2},
{{69, 780}, 2}, {{101, 780}, 2}, {{71, 770}, 2}, {{103, 770}, 2}, {{71, 774}, 2}, {{103, 774}, 2}, {{71, 775}, 2},
{{103, 775}, 2}, {{71, 807}, 2}, {{103, 807}, 2}, {{72, 770}, 2}, {{104, 770}, 2}, {{73, 771}, 2}, {{105, 771}, 2},
{{73, 772}, 2}, {{105, 772}, 2}, {{73, 774}, 2}, {{105, 774}, 2}, {{73, 808}, 2}, {{105, 808}, 2}, {{73, 775}, 2},
{{74, 770}, 2}, {{106, 770}, 2}, {{75, 807}, 2}, {{107, 807}, 2}, {{76, 769}, 2}, {{108, 769}, 2}, {{76, 807}, 2},
{{108, 807}, 2}, {{76, 780}, 2}, {{108, 780}, 2}, {{78, 769}, 2}, {{110, 769}, 2}, {{78, 807}, 2}, {{110, 807}, 2},
{{78, 780}, 2}, {{110, 780}, 2}, {{79, 772}, 2}, {{111, 772}, 2}, {{79, 774}, 2}, {{111, 774}, 2}, {{79, 779}, 2},
{{111, 779}, 2}, {{82, 769}, 2}, {{114, 769}, 2}, {{82, 807}, 2}, {{114, 807}, 2}, {{82, 780}, 2}, {{114, 780}, 2},
{{83, 769}, 2}, {{115, 769}, 2}, {{83, 770}, 2}, {{115, 770}, 2}, {{83, 807}, 2}, {{115, 807}, 2}, {{83, 780}, 2},
{{115, 780}, 2}, {{84, 807}, 2}, {{116, 807}, 2}, {{84, 780}, 2}, {{116, 780}, 2}, {{85, 771}, 2}, {{117, 771}, 2},
{{85, 772}, 2}, {{117, 772}, 2}, {{85, 774}, 2}, {{117, 774}, 2}, {{85, 778}, 2}, {{117, 778}, 2}, {{85, 779}, 2},
{{117, 779}, 2}, {{85, 808}, 2}, {{117, 808}, 2}, {{87, 770}, 2}, {{119, 770}, 2}, {{89, 770}, 2}, {{121, 770}, 2},
{{89, 776}, 2}, {{90, 769}, 2}, {{122, 769}, 2}, {{90, 775}, 2}, {{122, 775}, 2}, {{90, 780}, 2}, {{122, 780}, 2},
{{79, 795}, 2}, {{111, 795}, 2}, {{85, 795}, 2}, {{117, 795}, 2}, {{65, 780}, 2}, {{97, 780}, 2}, {{73, 780}, 2},
{{105, 780}, 2}, {{79, 780}, 2}, {{111, 780}, 2}, {{85, 780}, 2}, {{117, 780}, 2}, {{85, 776, 772}, 3},
{{117, 776, 772}, 3}, {{85, 776, 769}, 3}, {{117, 776, 769}, 3}, {{85, 776, 780}, 3}, {{117, 776, 780}, 3},
{{85, 776, 768}, 3}, {{117, 776, 768}, 3}, {{65, 776, 772}, 3}, {{97, 776, 772}, 3}, {{65, 775, 772}, 3},
{{97, 775, 772}, 3}, {{198, 772}, 2}, {{230, 772}, 2}, {{71, 780}, 2}, {{103, 780}, 2}, {{75, 780}, 2},
{{107, 780}, 2}, {{79, 808}, 2}, {{111, 808}, 2}, {{79, 808, 772}, 3}, {{111, 808, 772}, 3}, {{439, 780}, 2},
{{658, 780}, 2}, {{106, 780}, 2}, {{71, 769}, 2}, {{103, 769}, 2}, {{78, 768}, 2}, {{110, 768}, 2},
{{65, 778, 769}, 3}, {{97, 778, 769}, 3}, {{198, 769}, 2}, {{230, 769}, 2}, {{216, 769}, 2}, {{248, 769}, 2},
{{65, 783}, 2}, {{97, 783}, 2}, {{65, 785}, 2}, {{97, 785}, 2}, {{69, 783}, 2}, {{101, 783}, 2}, {{69, 785}, 2},
{{101, 785}, 2}, {{73, 783}, 2}, {{105, 783}, 2}, {{73, 785}, 2}, {{105, 785}, 2}, {{79, 783}, 2}, {{111, 783}, 2},
{{79, 785}, 2}, {{111, 785}, 2}, {{82, 783}, 2}, {{114, 783}, 2}, {{82, 785}, 2}, {{114, 785}, 2}, {{85, 783}, 2},
{{117, 783}, 2}, {{85, 785}, 2}, {{117, 785}, 2}, {{83, 806}, 2}, {{115, 806}, 2}, {{84, 806}, 2}, {{116, 806}, 2},
{{72, 780}, 2}, {{104, 780}, 2}, {{65, 775}, 2}, {{97, 775}, 2}, {{69, 807}, 2}, {{101, 807}, 2}, {{79, 776, 772}, 3},
{{111, 776, 772}, 3}, {{79, 771, 772}, 3}, {{111, 771, 772}, 3}, {{79, 775}, 2}, {{111, 775}, 2}, {{79, 775, 772}, 3},
{{111, 775, 772}, 3}, {{89, 772}, 2}, {{121, 772}, 2}, {{768}, 1}, {{769}, 1}, {{787}, 1}, {{776, 769}, 2},
{{697}, 1}, {{59}, 1}, {{168, 769}, 2}, {{913, 769}, 2}, {{183}, 1}, {{917, 769}, 2}, {{919, 769}, 2},
{{921, 769}, 2}, {{927, 769}, 2}, {{933, 769}, 2}, {{937, 769}, 2}, {{953, 776, 769}, 3}, {{921, 776}, 2},
{{933, 776}, 2}, {{945, 769}, 2}, {{949, 769}, 2}, {{951, 769}, 2}, {{953, 769}, 2}, {{965, 776, 769}, 3},
{{953, 776}, 2}, {{965, 776}, 2}, {{959, 769}, 2}, {{965, 769}, 2}, {{969, 769}, 2}, {{978, 769}, 2}, {{978, 776}, 2},
{{1045, 768}, 2}, {{1045, 776}, 2}, {{1043, 769}, 2}, {{1030, 776}, 2}, {{1050, 769}, 2}, {{1048, 768}, 2},
{{1059, 774}, 2}, {{1048, 774}, 2}, {{1080, 774}, 2}, {{1077, 768}, 2}, {{1077, 776}, 2}, {{1075, 769}, 2},
{{1110, 776}, 2}, {{1082, 769}, 2}, {{1080, 768}, 2}, {{1091, 774}, 2}, {{1140, 783}, 2}, {{1141, 783}, 2},
{{1046, 774}, 2}, {{1078, 774}, 2}, {{1040, 774}, 2}, {{1072, 774}, 2}, {{1040, 776}, 2}, {{1072, 776}, 2},
{{1045, 774}, 2}, {{1077, 774}, 2}, {{1240, 776}, 2}, {{1241, 776}, 2}, {{1046, 776}, 2}, {{1078, 776}, 2},
{{1047, 776}, 2}, {{1079, 776}, 2}, {{1048, 772}, 2}, {{1080, 772}, 2}, {{1048, 776}, 2}, {{1080, 776}, 2},
{{1054, 776}, 2}, {{1086, 776}, 2}, {{1256, 776}, 2}, {{1257, 776}, 2}, {{1069, 776}, 2}, {{1101, 776}, 2},
{{1059, 772}, 2}, {{1091, 772}, 2}, {{1059, 776}, 2}, {{1091, 776}, 2}, {{1059, 779}, 2}, {{1091, 779}, 2},
{{1063, 776}, 2}, {{1095, 776}, 2}, {{1067, 776}, 2}, {{1099, 776}, 2}, {{1575, 1619}, 2}, {{1575, 1620}, 2},
{{1608, 1620}, 2}, {{1575, 1621}, 2}, {{1610, 1620}, 2}, {{1749, 1620}, 2}, {{1729, 1620}, 2}, {{1746, 1620}, 2},
{{2344, 2364}, 2}, {{2352, 2364}, 2}, {{2355, 2364}, 2}, {{2325, 2364}, 2}, {{2326, 2364}, 2}, {{2327, 2364}, 2},
{{2332, 2364}, 2}, {{2337, 2364}, 2}, {{2338, 2364}, 2}, {{2347, 2364}, 2}, {{2351, 2364}, 2}, {{2503, 2494}, 2},
{{2503, 2519}, 2}, {{2465, 2492}, 2}, {{2466, 2492}, 2}, {{2479, 2492}, 2}, {{2610, 2620}, 2}, {{2616, 2620}, 2},
{{2582, 2620}, 2}, {{2583, 2620}, 2}, {{2588, 2620}, 2}, {{2603, 2620}, 2}, {{2887, 2902}, 2}, {{2887, 2878}, 2},
{{2887, 2903}, 2}, {{2849, 2876}, 2}, {{2850, 2876}, 2}, {{2962, 3031}, 2}, {{3014, 3006}, 2}, {{3015, 3006}, 2},
{{3014, 3031}, 2}, {{3142, 3158}, 2}, {{3263, 3285}, 2}, {{3270, 3285}, 2}, {{3270, 3286}, 2}, {{3270, 3266}, 2},
{{3270, 3266, 3285}, 3}, {{3398, 3390}, 2}, {{3399, 3390}, 2}, {{3398, 3415}, 2}, {{3545, 3530}, 2},
{{3545, 3535}, 2}, {{3545, 3535, 3530}, 3}, {{3545, 3551}, 2}, {{3906, 4023}, 2}, {{3916, 4023}, 2},
{{3921, 4023}, 2}, {{3926, 4023}, 2}, {{3931, 4023}, 2}, {{3904, 4021}, 2}, {{3953, 3954}, 2}, {{3953, 3956}, 2},
{{4018, 3968}, 2}, {{4019, 3968}, 2}, {{3953, 3968}, 2}, {{3986, 4023}, 2}, {{3996, 4023}, 2}, {{4001, 4023}, 2},
{{4006, 4023}, 2}, {{4011, 4023}, 2}, {{3984, 4021}, 2}, {{4133, 4142}, 2}, {{65, 805}, 2}, {{97, 805}, 2},
{{66, 775}, 2}, {{98, 775}, 2}, {{66, 803}, 2}, {{98, 803}, 2}, {{66, 817}, 2}, {{98, 817}, 2}, {{67, 807, 769}, 3},
{{99, 807, 769}, 3}, {{68, 775}, 2}, {{100, 775}, 2}, {{68, 803}, 2}, {{100, 803}, 2}, {{68, 817}, 2},
{{100, 817}, 2}, {{68, 807}, 2}, {{100, 807}, 2}, {{68, 813}, 2}, {{100, 813}, 2}, {{69, 772, 768}, 3},
{{101, 772, 768}, 3}, {{69, 772, 769}, 3}, {{101, 772, 769}, 3}, {{69, 813}, 2}, {{101, 813}, 2}, {{69, 816}, 2},
{{101, 816}, 2}, {{69, 807, 774}, 3}, {{101, 807, 774}, 3}, {{70, 775}, 2}, {{102, 775}, 2}, {{71, 772}, 2},
{{103, 772}, 2}, {{72, 775}, 2}, {{104, 775}, 2}, {{72, 803}, 2}, {{104, 803}, 2}, {{72, 776}, 2}, {{104, 776}, 2},
{{72, 807}, 2}, {{104, 807}, 2}, {{72, 814}, 2}, {{104, 814}, 2}, {{73, 816}, 2}, {{105, 816}, 2},
{{73, 776, 769}, 3}, {{105, 776, 769}, 3}, {{75, 769}, 2}, {{107, 769}, 2}, {{75, 803}, 2}, {{107, 803}, 2},
{{75, 817}, 2}, {{107, 817}, 2}, {{76, 803}, 2}, {{108, 803}, 2}, {{76, 803, 772}, 3}, {{108, 803, 772}, 3},
{{76, 817}, 2}, {{108, 817}, 2}, {{76, 813}, 2}, {{108, 813}, 2}, {{77, 769}, 2}, {{109, 769}, 2}, {{77, 775}, 2},
{{109, 775}, 2}, {{77, 803}, 2}, {{109, 803}, 2}, {{78, 775}, 2}, {{110, 775}, 2}, {{78, 803}, 2}, {{110, 803}, 2},
{{78, 817}, 2}, {{110, 817}, 2}, {{78, 813}, 2}, {{110, 813}, 2}, {{79, 771, 769}, 3}, {{111, 771, 769}, 3},
{{79, 771, 776}, 3}, {{111, 771, 776}, 3}, {{79, 772, 768}, 3}, {{111, 772, 768}, 3}, {{79, 772, 769}, 3},
{{111, 772, 769}, 3}, {{80, 769}, 2}, {{112, 769}, 2}, {{80, 775}, 2}, {{112, 775}, 2}, {{82, 775}, 2},
{{114, 775}, 2}, {{82, 803}, 2}, {{114, 803}, 2}, {{82, 803, 772}, 3}, {{114, 803, 772}, 3}, {{82, 817}, 2},
{{114, 817}, 2}, {{83, 775}, 2}, {{115, 775}, 2}, {{83, 803}, 2}, {{115, 803}, 2}, {{83, 769, 775}, 3},
{{115, 769, 775}, 3}, {{83, 780, 775}, 3}, {{115, 780, 775}, 3}, {{83, 803, 775}, 3}, {{115, 803, 775}, 3},
{{84, 775}, 2}, {{116, 775}, 2}, {{84, 803}, 2}, {{116, 803}, 2}, {{84, 817}, 2}, {{116, 817}, 2}, {{84, 813}, 2},
{{116, 813}, 2}, {{85, 804}, 2}, {{117, 804}, 2}, {{85, 816}, 2}, {{117, 816}, 2}, {{85, 813}, 2}, {{117, 813}, 2},
{{85, 771, 769}, 3}, {{117, 771, 769}, 3}, {{85, 772, 776}, 3}, {{117, 772, 776}, 3}, {{86, 771}, 2}, {{118, 771}, 2},
{{86, 803}, 2}, {{118, 803}, 2}, {{87, 768}, 2}, {{119, 768}, 2}, {{87, 769}, 2}, {{119, 769}, 2}, {{87, 776}, 2},
{{119, 776}, 2}, {{87, 775}, 2}, {{119, 775}, 2}, {{87, 803}, 2}, {{119, 803}, 2}, {{88, 775}, 2}, {{120, 775}, 2},
{{88, 776}, 2}, {{120, 776}, 2}, {{89, 775}, 2}, {{121, 775}, 2}, {{90, 770}, 2}, {{122, 770}, 2}, {{90, 803}, 2},
{{122, 803}, 2}, {{90, 817}, 2}, {{122, 817}, 2}, {{104, 817}, 2}, {{116, 776}, 2}, {{119, 778}, 2}, {{121, 778}, 2},
{{383, 775}, 2}, {{65, 803}, 2}, {{97, 803}, 2}, {{65, 777}, 2}, {{97, 777}, 2}, {{65, 770, 769}, 3},
{{97, 770, 769}, 3}, {{65, 770, 768}, 3}, {{97, 770, 768}, 3}, {{65, 770, 777}, 3}, {{97, 770, 777}, 3},
{{65, 770, 771}, 3}, {{97, 770, 771}, 3}, {{65, 803, 770}, 3}, {{97, 803, 770}, 3}, {{65, 774, 769}, 3},
{{97, 774, 769}, 3}, {{65, 774, 768}, 3}, {{97, 774, 768}, 3}, {{65, 774, 777}, 3}, {{97, 774, 777}, 3},
{{65, 774, 771}, 3}, {{97, 774, 771}, 3}, {{65, 803, 774}, 3}, {{97, 803, 774}, 3}, {{69, 803}, 2}, {{101, 803}, 2},
{{69, 777}, 2}, {{101, 777}, 2}, {{69, 771}, 2}, {{101, 771}, 2}, {{69, 770, 769}, 3}, {{101, 770, 769}, 3},
{{69, 770, 768}, 3}, {{101, 770, 768}, 3}, {{69, 770, 777}, 3}, {{101, 770, 777}, 3}, {{69, 770, 771}, 3},
{{101, 770, 771}, 3}, {{69, 803, 770}, 3}, {{101, 803, 770}, 3}, {{73, 777}, 2}, {{105, 777}, 2}, {{73, 803}, 2},
{{105, 803}, 2}, {{79, 803}, 2}, {{111, 803}, 2}, {{79, 777}, 2}, {{111, 777}, 2}, {{79, 770, 769}, 3},
{{111, 770, 769}, 3}, {{79, 770, 768}, 3}, {{111, 770, 768}, 3}, {{79, 770, 777}, 3}, {{111, 770, 777}, 3},
{{79, 770, 771}, 3}, {{111, 770, 771}, 3}, {{79, 803, 770}, 3}, {{111, 803, 770}, 3}, {{79, 795, 769}, 3},
{{111, 795, 769}, 3}, {{79, 795, 768}, 3}, {{111, 795, 768}, 3}, {{79, 795, 777}, 3}, {{111, 795, 777}, 3},
{{79, 795, 771}, 3}, {{111, 795, 771}, 3}, {{79, 795, 803}, 3}, {{111, 795, 803}, 3}, {{85, 803}, 2}, {{117, 803}, 2},
{{85, 777}, 2}, {{117, 777}, 2}, {{85, 795, 769}, 3}, {{117, 795, 769}, 3}, {{85, 795, 768}, 3}, {{117, 795, 768}, 3},
{{85, 795, 777}, 3}, {{117, 795, 777}, 3}, {{85, 795, 771}, 3}, {{117, 795, 771}, 3}, {{85, 795, 803}, 3},
{{117, 795, 803}, 3}, {{89, 768}, 2}, {{121, 768}, 2}, {{89, 803}, 2}, {{121, 803}, 2}, {{89, 777}, 2},
{{121, 777}, 2}, {{89, 771}, 2}, {{121, 771}, 2}, {{945, 787}, 2}, {{945, 788}, 2}, {{945, 787, 768}, 3},
{{945, 788, 768}, 3}, {{945, 787, 769}, 3}, {{945, 788, 769}, 3}, {{945, 787, 834}, 3}, {{945, 788, 834}, 3},
{{913, 787}, 2}, {{913, 788}, 2}, {{913, 787, 768}, 3}, {{913, 788, 768}, 3}, {{913, 787, 769}, 3},
{{913, 788, 769}, 3}, {{913, 787, 834}, 3}, {{913, 788, 834}, 3}, {{949, 787}, 2}, {{949, 788}, 2},
{{949, 787, 768}, 3}, {{949, 788, 768}, 3}, {{949, 787, 769}, 3}, {{949, 788, 769}, 3}, {{917, 787}, 2},
{{917, 788}, 2}, {{917, 787, 768}, 3}, {{917, 788, 768}, 3}, {{917, 787, 769}, 3}, {{917, 788, 769}, 3},
{{951, 787}, 2}, {{951, 788}, 2}, {{951, 787, 768}, 3}, {{951, 788, 768}, 3}, {{951, 787, 769}, 3},
{{951, 788, 769}, 3}, {{951, 787, 834}, 3}, {{951, 788, 834}, 3}, {{919, 787}, 2}, {{919, 788}, 2},
{{919, 787, 768}, 3}, {{919, 788, 768}, 3}, {{919, 787, 769}, 3}, {{919, 788, 769}, 3}, {{919, 787, 834}, 3},
{{919, 788, 834}, 3}, {{953, 787}, 2}, {{953, 788}, 2}, {{953, 787, 768}, 3}, {{953, 788, 768}, 3},
{{953, 787, 769}, 3}, {{953, 788, 769}, 3}, {{953, 787, 834}, 3}, {{953, 788, 834}, 3}, {{921, 787}, 2},
{{921, 788}, 2}, {{921, 787, 768}, 3}, {{921, 788, 768}, 3}, {{921, 787, 769}, 3}, {{921, 788, 769}, 3},
{{921, 787, 834}, 3}, {{921, 788, 834}, 3}, {{959, 787}, 2}, {{959, 788}, 2}, {{959, 787, 768}, 3},
{{959, 788, 768}, 3}, {{959, 787, 769}, 3}, {{959, 788, 769}, 3}, {{927, 787}, 2}, {{927, 788}, 2},
{{927, 787, 768}, 3}, {{927, 788, 768}, 3}, {{927, 787, 769}, 3}, {{927, 788, 769}, 3}, {{965, 787}, 2},
{{965, 788}, 2}, {{965, 787, 768}, 3}, {{965, 788, 768}, 3}, {{965, 787, 769}, 3}, {{965, 788, 769}, 3},
{{965, 787, 834}, 3}, {{965, 788, 834}, 3}, {{933, 788}, 2}, {{933, 788, 768}, 3}, {{933, 788, 769}, 3},
{{933, 788, 834}, 3}, {{969, 787}, 2}, {{969, 788}, 2}, {{969, 787, 768}, 3}, {{969, 788, 768}, 3},
{{969, 787, 769}, 3}, {{969, 788, 769}, 3}, {{969, 787, 834}, 3}, {{969, 788, 834}, 3}, {{937, 787}, 2},
{{937, 788}, 2}, {{937, 787, 768}, 3}, {{937, 788, 768}, 3}, {{937, 787, 769}, 3}, {{937, 788, 769}, 3},
{{937, 787, 834}, 3}, {{937, 788, 834}, 3}, {{945, 768}, 2}, {{945, 769}, 2}, {{949, 768}, 2}, {{949, 769}, 2},
{{951, 768}, 2}, {{951, 769}, 2}, {{953, 768}, 2}, {{953, 769}, 2}, {{959, 768}, 2}, {{959, 769}, 2}, {{965, 768}, 2},
{{965, 769}, 2}, {{969, 768}, 2}, {{969, 769}, 2}, {{945, 787, 837}, 3}, {{945, 788, 837}, 3},
{{945, 787, 768, 837}, 4}, {{945, 788, 768, 837}, 4}, {{945, 787, 769, 837}, 4}, {{945, 788, 769, 837}, 4},
{{945, 787, 834, 837}, 4}, {{945, 788, 834, 837}, 4}, {{913, 787, 837}, 3}, {{913, 788, 837}, 3},
{{913, 787, 768, 837}, 4}, {{913, 788, 768, 837}, 4}, {{913, 787, 769, 837}, 4}, {{913, 788, 769, 837}, 4},
{{913, 787, 834, 837}, 4}, {{913, 788, 834, 837}, 4}, {{951, 787, 837}, 3}, {{951, 788, 837}, 3},
{{951, 787, 768, 837}, 4}, {{951, 788, 768, 837}, 4}, {{951, 787, 769, 837}, 4}, {{951, 788, 769, 837}, 4},
{{951, 787, 834, 837}, 4}, {{951, 788, 834, 837}, 4}, {{919, 787, 837}, 3}, {{919, 788, 837}, 3},
{{919, 787, 768, 837}, 4}, {{919, 788, 768, 837}, 4}, {{919, 787, 769, 837}, 4}, {{919, 788, 769, 837}, 4},
{{919, 787, 834, 837}, 4}, {{919, 788, 834, 837}, 4}, {{969, 787, 837}, 3}, {{969, 788, 837}, 3},
{{969, 787, 768, 837}, 4}, {{969, 788, 768, 837}, 4}, {{969, 787, 769, 837}, 4}, {{969, 788, 769, 837}, 4},
{{969, 787, 834, 837}, 4}, {{969, 788, 834, 837}, 4}, {{937, 787, 837}, 3}, {{937, 788, 837}, 3},
{{937, 787, 768, 837}, 4}, {{937, 788, 768, 837}, 4}, {{937, 787, 769, 837}, 4}, {{937, 788, 769, 837}, 4},
{{937, 787, 834, 837}, 4}, {{937, 788, 834, 837}, 4}, {{945, 774}, 2}, {{945, 772}, 2}, {{945, 768, 837}, 3},
{{945, 837}, 2}, {{945, 769, 837}, 3}, {{945, 834}, 2}, {{945, 834, 837}, 3}, {{913, 774}, 2}, {{913, 772}, 2},
{{913, 768}, 2}, {{913, 769}, 2}, {{913, 837}, 2}, {{953}, 1}, {{168, 834}, 2}, {{951, 768, 837}, 3}, {{951, 837}, 2},
{{951, 769, 837}, 3}, {{951, 834}, 2}, {{951, 834, 837}, 3}, {{917, 768}, 2}, {{917, 769}, 2}, {{919, 768}, 2},
{{919, 769}, 2}, {{919, 837}, 2}, {{8127, 768}, 2}, {{8127, 769}, 2}, {{8127, 834}, 2}, {{953, 774}, 2},
{{953, 772}, 2}, {{953, 776, 768}, 3}, {{953, 776, 769}, 3}, {{953, 834}, 2}, {{953, 776, 834}, 3}, {{921, 774}, 2},
{{921, 772}, 2}, {{921, 768}, 2}, {{921, 769}, 2}, {{8190, 768}, 2}, {{8190, 769}, 2}, {{8190, 834}, 2},
{{965, 774}, 2}, {{965, 772}, 2}, {{965, 776, 768}, 3}, {{965, 776, 769}, 3}, {{961, 787}, 2}, {{961, 788}, 2},
{{965, 834}, 2}, {{965, 776, 834}, 3}, {{933, 774}, 2}, {{933, 772}, 2}, {{933, 768}, 2}, {{933, 769}, 2},
{{929, 788}, 2}, {{168, 768}, 2}, {{168, 769}, 2}, {{96}, 1}, {{969, 768, 837}, 3}, {{969, 837}, 2},
{{969, 769, 837}, 3}, {{969, 834}, 2}, {{969, 834, 837}, 3}, {{927, 768}, 2}, {{927, 769}, 2}, {{937, 768}, 2},
{{937, 769}, 2}, {{937, 837}, 2}, {{180}, 1}, {{8194}, 1}, {{8195}, 1}, {{937}, 1}, {{75}, 1}, {{65, 778}, 2},
{{8592, 824}, 2}, {{8594, 824}, 2}, {{8596, 824}, 2}, {{8656, 824}, 2}, {{8660, 824}, 2}, {{8658, 824}, 2},
{{8707, 824}, 2}, {{8712, 824}, 2}, {{8715, 824}, 2}, {{8739, 824}, 2}, {{8741, 824}, 2}, {{8764, 824}, 2},
{{8771, 824}, 2}, {{8773, 824}, 2}, {{8776, 824}, 2}, {{61, 824}, 2}, {{8801, 824}, 2}, {{8781, 824}, 2},
{{60, 824}, 2}, {{62, 824}, 2}, {{8804, 824}, 2}, {{8805, 824}, 2}, {{8818, 824}, 2}, {{8819, 824}, 2},
{{8822, 824}, 2}, {{8823, 824}, 2}, {{8826, 824}, 2}, {{8827, 824}, 2}, {{8834, 824}, 2}, {{8835, 824}, 2},
{{8838, 824}, 2}, {{8839, 824}, 2}, {{8866, 824}, 2}, {{8872, 824}, 2}, {{8873, 824}, 2}, {{8875, 824}, 2},
{{8828, 824}, 2}, {{8829, 824}, 2}, {{8849, 824}, 2}, {{8850, 824}, 2}, {{8882, 824}, 2}, {{8883, 824}, 2},
{{8884, 824}, 2}, {{8885, 824}, 2}, {{12296}, 1}, {{12297}, 1}, {{10973, 824}, 2}, {{12363, 12441}, 2},
{{12365, 12441}, 2}, {{12367, 12441}, 2}, {{12369, 12441}, 2}, {{12371, 12441}, 2}, {{12373, 12441}, 2},
{{12375, 12441}, 2}, {{12377, 12441}, 2}, {{12379, 12441}, 2}, {{12381, 12441}, 2}, {{12383, 12441}, 2},
{{12385, 12441}, 2}, {{12388, 12441}, 2}, {{12390, 12441}, 2}, {{12392, 12441}, 2}, {{12399, 12441}, 2},
{{12399, 12442}, 2}, {{12402, 12441}, 2}, {{12402, 12442}, 2}, {{12405, 12441}, 2}, {{12405, 12442}, 2},
{{12408, 12441}, 2}, {{12408, 12442}, 2}, {{12411, 12441}, 2}, {{12411, 12442}, 2}, {{12358, 12441}, 2},
{{12445, 12441}, 2}, {{12459, 12441}, 2}, {{12461, 12441}, 2}, {{12463, 12441}, 2}, {{12465, 12441}, 2},
{{12467, 12441}, 2}, {{12469, 12441}, 2}, {{12471, 12441}, 2}, {{12473, 12441}, 2}, {{12475, 12441}, 2},
{{12477, 12441}, 2}, {{12479, 12441}, 2}, {{12481, 12441}, 2}, {{12484, 12441}, 2}, {{12486, 12441}, 2},
{{12488, 12441}, 2}, {{12495, 12441}, 2}, {{12495, 12442}, 2}, {{12498, 12441}, 2}, {{12498, 12442}, 2},
{{12501, 12441}, 2}, {{12501, 12442}, 2}, {{12504, 12441}, 2}, {{12504, 12442}, 2}, {{12507, 12441}, 2},
{{12507, 12442}, 2}, {{12454, 12441}, 2}, {{12527, 12441}, 2}, {{12528, 12441}, 2}, {{12529, 12441}, 2},
{{12530, 12441}, 2}, {{12541, 12441}, 2}, {{35912}, 1}, {{26356}, 1}, {{36554}, 1}, {{36040}, 1}, {{28369}, 1},
{{20018}, 1}, {{21477}, 1}, {{40860}, 1}, {{40860}, 1}, {{22865}, 1}, {{37329}, 1}, {{21895}, 1}, {{22856}, 1},
{{25078}, 1}, {{30313}, 1}, {{32645}, 1}, {{34367}, 1}, {{34746}, 1}, {{35064}, 1}, {{37007}, 1}, {{27138}, 1},
{{27931}, 1}, {{28889}, 1}, {{29662}, 1}, {{33853}, 1}, {{37226}, 1}, {{39409}, 1}, {{20098}, 1}, {{21365}, 1},
{{27396}, 1}, {{29211}, 1}, {{34349}, 1}, {{40478}, 1}, {{23888}, 1}, {{28651}, 1}, {{34253}, 1}, {{35172}, 1},
{{25289}, 1}, {{33240}, 1}, {{34847}, 1}, {{24266}, 1}, {{26391}, 1}, {{28010}, 1}, {{29436}, 1}, {{37070}, 1},
{{20358}, 1}, {{20919}, 1}, {{21214}, 1}, {{25796}, 1}, {{27347}, 1}, {{29200}, 1}, {{30439}, 1}, {{32769}, 1},
{{34310}, 1}, {{34396}, 1}, {{36335}, 1}, {{38706}, 1}, {{39791}, 1}, {{40442}, 1}, {{30860}, 1}, {{31103}, 1},
{{32160}, 1}, {{33737}, 1}, {{37636}, 1}, {{40575}, 1}, {{35542}, 1}, {{22751}, 1}, {{24324}, 1}, {{31840}, 1},
{{32894}, 1}, {{29282}, 1}, {{30922}, 1}, {{36034}, 1}, {{38647}, 1}, {{22744}, 1}, {{23650}, 1}, {{27155}, 1},
{{28122}, 1}, {{28431}, 1}, {{32047}, 1}, {{32311}, 1}, {{38475}, 1}, {{21202}, 1}, {{32907}, 1}, {{20956}, 1},
{{20940}, 1}, {{31260}, 1}, {{32190}, 1}, {{33777}, 1}, {{38517}, 1}, {{35712}, 1}, {{25295}, 1}, {{27138}, 1},
{{35582}, 1}, {{20025}, 1}, {{23527}, 1}, {{24594}, 1}, {{29575}, 1}, {{30064}, 1}, {{21271}, 1}, {{30971}, 1},
{{20415}, 1}, {{24489}, 1}, {{19981}, 1}, {{27852}, 1}, {{25976}, 1}, {{32034}, 1}, {{21443}, 1}, {{22622}, 1},
{{30465}, 1}, {{33865}, 1}, {{35498}, 1}, {{27578}, 1}, {{36784}, 1}, {{27784}, 1}, {{25342}, 1}, {{33509}, 1},
{{25504}, 1}, {{30053}, 1}, {{20142}, 1}, {{20841}, 1}, {{20937}, 1}, {{26753}, 1}, {{31975}, 1}, {{33391}, 1},
{{35538}, 1}, {{37327}, 1}, {{21237}, 1}, {{21570}, 1}, {{22899}, 1}, {{24300}, 1}, {{26053}, 1}, {{28670}, 1},
{{31018}, 1}, {{38317}, 1}, {{39530}, 1}, {{40599}, 1}, {{40654}, 1}, {{21147}, 1}, {{26310}, 1}, {{27511}, 1},
{{36706}, 1}, {{24180}, 1}, {{24976}, 1}, {{25088}, 1}, {{25754}, 1}, {{28451}, 1}, {{29001}, 1}, {{29833}, 1},
{{31178}, 1}, {{32244}, 1}, {{32879}, 1}, {{36646}, 1}, {{34030}, 1}, {{36899}, 1}, {{37706}, 1}, {{21015}, 1},
{{21155}, 1}, {{21693}, 1}, {{28872}, 1}, {{35010}, 1}, {{35498}, 1}, {{24265}, 1}, {{24565}, 1}, {{25467}, 1},
{{27566}, 1}, {{31806}, 1}, {{29557}, 1}, {{20196}, 1}, {{22265}, 1}, {{23527}, 1}, {{23994}, 1}, {{24604}, 1},
{{29618}, 1}, {{29801}, 1}, {{32666}, 1}, {{32838}, 1}, {{37428}, 1}, {{38646}, 1}, {{38728}, 1}, {{38936}, 1},
{{20363}, 1}, {{31150}, 1}, {{37300}, 1}, {{38584}, 1}, {{24801}, 1}, {{20102}, 1}, {{20698}, 1}, {{23534}, 1},
{{23615}, 1}, {{26009}, 1}, {{27138}, 1}, {{29134}, 1}, {{30274}, 1}, {{34044}, 1}, {{36988}, 1}, {{40845}, 1},
{{26248}, 1}, {{38446}, 1}, {{21129}, 1}, {{26491}, 1}, {{26611}, 1}, {{27969}, 1}, {{28316}, 1}, {{29705}, 1},
{{30041}, 1}, {{30827}, 1}, {{32016}, 1}, {{39006}, 1}, {{20845}, 1}, {{25134}, 1}, {{38520}, 1}, {{20523}, 1},
{{23833}, 1}, {{28138}, 1}, {{36650}, 1}, {{24459}, 1}, {{24900}, 1}, {{26647}, 1}, {{29575}, 1}, {{38534}, 1},
{{21033}, 1}, {{21519}, 1}, {{23653}, 1}, {{26131}, 1}, {{26446}, 1}, {{26792}, 1}, {{27877}, 1}, {{29702}, 1},
{{30178}, 1}, {{32633}, 1}, {{35023}, 1}, {{35041}, 1}, {{37324}, 1}, {{38626}, 1}, {{21311}, 1}, {{28346}, 1},
{{21533}, 1}, {{29136}, 1}, {{29848}, 1}, {{34298}, 1}, {{38563}, 1}, {{40023}, 1}, {{40607}, 1}, {{26519}, 1},
{{28107}, 1}, {{33256}, 1}, {{31435}, 1}, {{31520}, 1}, {{31890}, 1}, {{29376}, 1}, {{28825}, 1}, {{35672}, 1},
{{20160}, 1}, {{33590}, 1}, {{21050}, 1}, {{20999}, 1}, {{24230}, 1}, {{25299}, 1}, {{31958}, 1}, {{23429}, 1},
{{27934}, 1}, {{26292}, 1}, {{36667}, 1}, {{34892}, 1}, {{38477}, 1}, {{35211}, 1}, {{24275}, 1}, {{20800}, 1},
{{21952}, 1}, {{22618}, 1}, {{26228}, 1}, {{20958}, 1}, {{29482}, 1}, {{30410}, 1}, {{31036}, 1}, {{31070}, 1},
{{31077}, 1}, {{31119}, 1}, {{38742}, 1}, {{31934}, 1}, {{32701}, 1}, {{34322}, 1}, {{35576}, 1}, {{36920}, 1},
{{37117}, 1}, {{39151}, 1}, {{39164}, 1}, {{39208}, 1}, {{40372}, 1}, {{20398}, 1}, {{20711}, 1}, {{20813}, 1},
{{21193}, 1}, {{21220}, 1}, {{21329}, 1}, {{21917}, 1}, {{22022}, 1}, {{22120}, 1}, {{22592}, 1}, {{22696}, 1},
{{23652}, 1}, {{23662}, 1}, {{24724}, 1}, {{24936}, 1}, {{24974}, 1}, {{25074}, 1}, {{25935}, 1}, {{26082}, 1},
{{26257}, 1}, {{26757}, 1}, {{28023}, 1}, {{28186}, 1}, {{28450}, 1}, {{29038}, 1}, {{29227}, 1}, {{29730}, 1},
{{30865}, 1}, {{31038}, 1}, {{31049}, 1}, {{31048}, 1}, {{31056}, 1}, {{31062}, 1}, {{31069}, 1}, {{31117}, 1},
{{31118}, 1}, {{31296}, 1}, {{31361}, 1}, {{31680}, 1}, {{32244}, 1}, {{32265}, 1}, {{32321}, 1}, {{32626}, 1},
{{32773}, 1}, {{33261}, 1}, {{33401}, 1}, {{33401}, 1}, {{33879}, 1}, {{35088}, 1}, {{35222}, 1}, {{35585}, 1},
{{35641}, 1}, {{36051}, 1}, {{36104}, 1}, {{36790}, 1}, {{36920}, 1}, {{38627}, 1}, {{38911}, 1}, {{38971}, 1},
{{20006}, 1}, {{20917}, 1}, {{20840}, 1}, {{20352}, 1}, {{20805}, 1}, {{20864}, 1}, {{21191}, 1}, {{21242}, 1},
{{21917}, 1}, {{21845}, 1}, {{21913}, 1}, {{21986}, 1}, {{22618}, 1}, {{22707}, 1}, {{22852}, 1}, {{22868}, 1},
{{23138}, 1}, {{23336}, 1}, {{24274}, 1}, {{24281}, 1}, {{24425}, 1}, {{24493}, 1}, {{24792}, 1}, {{24910}, 1},
{{24840}, 1}, {{24974}, 1}, {{24928}, 1}, {{25074}, 1}, {{25140}, 1}, {{25540}, 1}, {{25628}, 1}, {{25682}, 1},
{{25942}, 1}, {{26228}, 1}, {{26391}, 1}, {{26395}, 1}, {{26454}, 1}, {{27513}, 1}, {{27578}, 1}, {{27969}, 1},
{{28379}, 1}, {{28363}, 1}, {{28450}, 1}, {{28702}, 1}, {{29038}, 1}, {{30631}, 1}, {{29237}, 1}, {{29359}, 1},
{{29482}, 1}, {{29809}, 1}, {{29958}, 1}, {{30011}, 1}, {{30237}, 1}, {{30239}, 1}, {{30410}, 1}, {{30427}, 1},
{{30452}, 1}, {{30538}, 1}, {{30528}, 1}, {{30924}, 1}, {{31409}, 1}, {{31680}, 1}, {{31867}, 1}, {{32091}, 1},
{{32244}, 1}, {{32574}, 1}, {{32773}, 1}, {{33618}, 1}, {{33775}, 1}, {{34681}, 1}, {{35137}, 1}, {{35206}, 1},
{{35222}, 1}, {{35519}, 1}, {{35576}, 1}, {{35531}, 1}, {{35585}, 1}, {{35582}, 1}, {{35565}, 1}, {{35641}, 1},
{{35722}, 1}, {{36104}, 1}, {{36664}, 1}, {{36978}, 1}, {{37273}, 1}, {{37494}, 1}, {{38524}, 1}, {{38627}, 1},
{{38742}, 1}, {{38875}, 1}, {{38911}, 1}, {{38923}, 1}, {{38971}, 1}, {{39698}, 1}, {{40860}, 1}, {{141386}, 1},
{{141380}, 1}, {{144341}, 1}, {{15261}, 1}, {{16408}, 1}, {{16441}, 1}, {{152137}, 1}, {{154832}, 1}, {{163539}, 1},
{{40771}, 1}, {{40846}, 1}, {{1497, 1460}, 2}, {{1522, 1463}, 2}, {{1513, 1473}, 2}, {{1513, 1474}, 2},
{{1513, 1468, 1473}, 3}, {{1513, 1468, 1474}, 3}, {{1488, 1463}, 2}, {{1488, 1464}, 2}, {{1488, 1468}, 2},
{{1489, 1468}, 2}, {{1490, 1468}, 2}, {{1491, 1468}, 2}, {{1492, 1468}, 2}, {{1493, 1468}, 2}, {{1494, 1468}, 2},
{{1496, 1468}, 2}, {{1497, 1468}, 2}, {{1498, 1468}, 2}, {{1499, 1468}, 2}, {{1500, 1468}, 2}, {{1502, 1468}, 2},
{{1504, 1468}, 2}, {{1505, 1468}, 2}, {{1507, 1468}, 2}, {{1508, 1468}, 2}, {{1510, 1468}, 2}, {{1511, 1468}, 2},
{{1512, 1468}, 2}, {{1513, 1468}, 2}, {{1514, 1468}, 2}, {{1493, 1465}, 2}, {{1489, 1471}, 2}, {{1499, 1471}, 2},
{{1508, 1471}, 2}, {{119127, 119141}, 2}, {{119128, 119141}, 2}, {{119128, 119141, 119150}, 3},
{{119128, 119141, 119151}, 3}, {{119128, 119141, 119152}, 3}, {{119128, 119141, 119153}, 3},
{{119128, 119141, 119154}, 3}, {{119225, 119141}, 2}, {{119226, 119141}, 2}, {{119225, 119141, 119150}, 3},
{{119226, 119141, 119150}, 3}, {{119225, 119141, 119151}, 3}, {{119226, 119141, 119151}, 3}, {{20029}, 1},
{{20024}, 1}, {{20033}, 1}, {{131362}, 1}, {{20320}, 1}, {{20398}, 1}, {{20411}, 1}, {{20482}, 1}, {{20602}, 1},
{{20633}, 1}, {{20711}, 1}, {{20687}, 1}, {{13470}, 1}, {{132666}, 1}, {{20813}, 1}, {{20820}, 1}, {{20836}, 1},
{{20855}, 1}, {{132380}, 1}, {{13497}, 1}, {{20839}, 1}, {{20877}, 1}, {{132427}, 1}, {{20887}, 1}, {{20900}, 1},
{{20172}, 1}, {{20908}, 1}, {{20917}, 1}, {{168415}, 1}, {{20981}, 1}, {{20995}, 1}, {{13535}, 1}, {{21051}, 1},
{{21062}, 1}, {{21106}, 1}, {{21111}, 1}, {{13589}, 1}, {{21191}, 1}, {{21193}, 1}, {{21220}, 1}, {{21242}, 1},
{{21253}, 1}, {{21254}, 1}, {{21271}, 1}, {{21321}, 1}, {{21329}, 1}, {{21338}, 1}, {{21363}, 1}, {{21373}, 1},
{{21375}, 1}, {{21375}, 1}, {{21375}, 1}, {{133676}, 1}, {{28784}, 1}, {{21450}, 1}, {{21471}, 1}, {{133987}, 1},
{{21483}, 1}, {{21489}, 1}, {{21510}, 1}, {{21662}, 1}, {{21560}, 1}, {{21576}, 1}, {{21608}, 1}, {{21666}, 1},
{{21750}, 1}, {{21776}, 1}, {{21843}, 1}, {{21859}, 1}, {{21892}, 1}, {{21892}, 1}, {{21913}, 1}, {{21931}, 1},
{{21939}, 1}, {{21954}, 1}, {{22294}, 1}, {{22022}, 1}, {{22295}, 1}, {{22097}, 1}, {{22132}, 1}, {{20999}, 1},
{{22766}, 1}, {{22478}, 1}, {{22516}, 1}, {{22541}, 1}, {{22411}, 1}, {{22578}, 1}, {{22577}, 1}, {{22700}, 1},
{{136420}, 1}, {{22770}, 1}, {{22775}, 1}, {{22790}, 1}, {{22810}, 1}, {{22818}, 1}, {{22882}, 1}, {{136872}, 1},
{{136938}, 1}, {{23020}, 1}, {{23067}, 1}, {{23079}, 1}, {{23000}, 1}, {{23142}, 1}, {{14062}, 1}, {{14076}, 1},
{{23304}, 1}, {{23358}, 1}, {{23358}, 1}, {{137672}, 1}, {{23491}, 1}, {{23512}, 1}, {{23527}, 1}, {{23539}, 1},
{{138008}, 1}, {{23551}, 1}, {{23558}, 1}, {{24403}, 1}, {{23586}, 1}, {{14209}, 1}, {{23648}, 1}, {{23662}, 1},
{{23744}, 1}, {{23693}, 1}, {{138724}, 1}, {{23875}, 1}, {{138726}, 1}, {{23918}, 1}, {{23915}, 1}, {{23932}, 1},
{{24033}, 1}, {{24034}, 1}, {{14383}, 1}, {{24061}, 1}, {{24104}, 1}, {{24125}, 1}, {{24169}, 1}, {{14434}, 1},
{{139651}, 1}, {{14460}, 1}, {{24240}, 1}, {{24243}, 1}, {{24246}, 1}, {{24266}, 1}, {{172946}, 1}, {{24318}, 1},
{{140081}, 1}, {{140081}, 1}, {{33281}, 1}, {{24354}, 1}, {{24354}, 1}, {{14535}, 1}, {{144056}, 1}, {{156122}, 1},
{{24418}, 1}, {{24427}, 1}, {{14563}, 1}, {{24474}, 1}, {{24525}, 1}, {{24535}, 1}, {{24569}, 1}, {{24705}, 1},
{{14650}, 1}, {{14620}, 1}, {{24724}, 1}, {{141012}, 1}, {{24775}, 1}, {{24904}, 1}, {{24908}, 1}, {{24910}, 1},
{{24908}, 1}, {{24954}, 1}, {{24974}, 1}, {{25010}, 1}, {{24996}, 1}, {{25007}, 1}, {{25054}, 1}, {{25074}, 1},
{{25078}, 1}, {{25104}, 1}, {{25115}, 1}, {{25181}, 1}, {{25265}, 1}, {{25300}, 1}, {{25424}, 1}, {{142092}, 1},
{{25405}, 1}, {{25340}, 1}, {{25448}, 1}, {{25475}, 1}, {{25572}, 1}, {{142321}, 1}, {{25634}, 1}, {{25541}, 1},
{{25513}, 1}, {{14894}, 1}, {{25705}, 1}, {{25726}, 1}, {{25757}, 1}, {{25719}, 1}, {{14956}, 1}, {{25935}, 1},
{{25964}, 1}, {{143370}, 1}, {{26083}, 1}, {{26360}, 1}, {{26185}, 1}, {{15129}, 1}, {{26257}, 1}, {{15112}, 1},
{{15076}, 1}, {{20882}, 1}, {{20885}, 1}, {{26368}, 1}, {{26268}, 1}, {{32941}, 1}, {{17369}, 1}, {{26391}, 1},
{{26395}, 1}, {{26401}, 1}, {{26462}, 1}, {{26451}, 1}, {{144323}, 1}, {{15177}, 1}, {{26618}, 1}, {{26501}, 1},
{{26706}, 1}, {{26757}, 1}, {{144493}, 1}, {{26766}, 1}, {{26655}, 1}, {{26900}, 1}, {{15261}, 1}, {{26946}, 1},
{{27043}, 1}, {{27114}, 1}, {{27304}, 1}, {{145059}, 1}, {{27355}, 1}, {{15384}, 1}, {{27425}, 1}, {{145575}, 1},
{{27476}, 1}, {{15438}, 1}, {{27506}, 1}, {{27551}, 1}, {{27578}, 1}, {{27579}, 1}, {{146061}, 1}, {{138507}, 1},
{{146170}, 1}, {{27726}, 1}, {{146620}, 1}, {{27839}, 1}, {{27853}, 1}, {{27751}, 1}, {{27926}, 1}, {{27966}, 1},
{{28023}, 1}, {{27969}, 1}, {{28009}, 1}, {{28024}, 1}, {{28037}, 1}, {{146718}, 1}, {{27956}, 1}, {{28207}, 1},
{{28270}, 1}, {{15667}, 1}, {{28363}, 1}, {{28359}, 1}, {{147153}, 1}, {{28153}, 1}, {{28526}, 1}, {{147294}, 1},
{{147342}, 1}, {{28614}, 1}, {{28729}, 1}, {{28702}, 1}, {{28699}, 1}, {{15766}, 1}, {{28746}, 1}, {{28797}, 1},
{{28791}, 1}, {{28845}, 1}, {{132389}, 1}, {{28997}, 1}, {{148067}, 1}, {{29084}, 1}, {{148395}, 1}, {{29224}, 1},
{{29237}, 1}, {{29264}, 1}, {{149000}, 1}, {{29312}, 1}, {{29333}, 1}, {{149301}, 1}, {{149524}, 1}, {{29562}, 1},
{{29579}, 1}, {{16044}, 1}, {{29605}, 1}, {{16056}, 1}, {{16056}, 1}, {{29767}, 1}, {{29788}, 1}, {{29809}, 1},
{{29829}, 1}, {{29898}, 1}, {{16155}, 1}, {{29988}, 1}, {{150582}, 1}, {{30014}, 1}, {{150674}, 1}, {{30064}, 1},
{{139679}, 1}, {{30224}, 1}, {{151457}, 1}, {{151480}, 1}, {{151620}, 1}, {{16380}, 1}, {{16392}, 1}, {{30452}, 1},
{{151795}, 1}, {{151794}, 1}, {{151833}, 1}, {{151859}, 1}, {{30494}, 1}, {{30495}, 1}, {{30495}, 1}, {{30538}, 1},
{{16441}, 1}, {{30603}, 1}, {{16454}, 1}, {{16534}, 1}, {{152605}, 1}, {{30798}, 1}, {{30860}, 1}, {{30924}, 1},
{{16611}, 1}, {{153126}, 1}, {{31062}, 1}, {{153242}, 1}, {{153285}, 1}, {{31119}, 1}, {{31211}, 1}, {{16687}, 1},
{{31296}, 1}, {{31306}, 1}, {{31311}, 1}, {{153980}, 1}, {{154279}, 1}, {{154279}, 1}, {{31470}, 1}, {{16898}, 1},
{{154539}, 1}, {{31686}, 1}, {{31689}, 1}, {{16935}, 1}, {{154752}, 1}, {{31954}, 1}, {{17056}, 1}, {{31976}, 1},
{{31971}, 1}, {{32000}, 1}, {{155526}, 1}, {{32099}, 1}, {{17153}, 1}, {{32199}, 1}, {{32258}, 1}, {{32325}, 1},
{{17204}, 1}, {{156200}, 1}, {{156231}, 1}, {{17241}, 1}, {{156377}, 1}, {{32634}, 1}, {{156478}, 1}, {{32661}, 1},
{{32762}, 1}, {{32773}, 1}, {{156890}, 1}, {{156963}, 1}, {{32864}, 1}, {{157096}, 1}, {{32880}, 1}, {{144223}, 1},
{{17365}, 1}, {{32946}, 1}, {{33027}, 1}, {{17419}, 1}, {{33086}, 1}, {{23221}, 1}, {{157607}, 1}, {{157621}, 1},
{{144275}, 1}, {{144284}, 1}, {{33281}, 1}, {{33284}, 1}, {{36766}, 1}, {{17515}, 1}, {{33425}, 1}, {{33419}, 1},
{{33437}, 1}, {{21171}, 1}, {{33457}, 1}, {{33459}, 1}, {{33469}, 1}, {{33510}, 1}, {{158524}, 1}, {{33509}, 1},
{{33565}, 1}, {{33635}, 1}, {{33709}, 1}, {{33571}, 1}, {{33725}, 1}, {{33767}, 1}, {{33879}, 1}, {{33619}, 1},
{{33738}, 1}, {{33740}, 1}, {{33756}, 1}, {{158774}, 1}, {{159083}, 1}, {{158933}, 1}, {{17707}, 1}, {{34033}, 1},
{{34035}, 1}, {{34070}, 1}, {{160714}, 1}, {{34148}, 1}, {{159532}, 1}, {{17757}, 1}, {{17761}, 1}, {{159665}, 1},
{{159954}, 1}, {{17771}, 1}, {{34384}, 1}, {{34396}, 1}, {{34407}, 1}, {{34409}, 1}, {{34473}, 1}, {{34440}, 1},
{{34574}, 1}, {{34530}, 1}, {{34681}, 1}, {{34600}, 1}, {{34667}, 1}, {{34694}, 1}, {{17879}, 1}, {{34785}, 1},
{{34817}, 1}, {{17913}, 1}, {{34912}, 1}, {{34915}, 1}, {{161383}, 1}, {{35031}, 1}, {{35038}, 1}, {{17973}, 1},
{{35066}, 1}, {{13499}, 1}, {{161966}, 1}, {{162150}, 1}, {{18110}, 1}, {{18119}, 1}, {{35488}, 1}, {{35565}, 1},
{{35722}, 1}, {{35925}, 1}, {{162984}, 1}, {{36011}, 1}, {{36033}, 1}, {{36123}, 1}, {{36215}, 1}, {{163631}, 1},
{{133124}, 1}, {{36299}, 1}, {{36284}, 1}, {{36336}, 1}, {{133342}, 1}, {{36564}, 1}, {{36664}, 1}, {{165330}, 1},
{{165357}, 1}, {{37012}, 1}, {{37105}, 1}, {{37137}, 1}, {{165678}, 1}, {{37147}, 1}, {{37432}, 1}, {{37591}, 1},
{{37592}, 1}, {{37500}, 1}, {{37881}, 1}, {{37909}, 1}, {{166906}, 1}, {{38283}, 1}, {{18837}, 1}, {{38327}, 1},
{{167287}, 1}, {{18918}, 1}, {{38595}, 1}, {{23986}, 1}, {{38691}, 1}, {{168261}, 1}, {{168474}, 1}, {{19054}, 1},
{{19062}, 1}, {{38880}, 1}, {{168970}, 1}, {{19122}, 1}, {{169110}, 1}, {{38923}, 1}, {{38923}, 1}, {{38953}, 1},
{{169398}, 1}, {{39138}, 1}, {{19251}, 1}, {{39209}, 1}, {{39335}, 1}, {{39362}, 1}, {{39422}, 1}, {{19406}, 1},
{{170800}, 1}, {{39698}, 1}, {{40000}, 1}, {{40189}, 1}, {{19662}, 1}, {{19693}, 1}, {{40295}, 1}, {{172238}, 1},
{{19704}, 1}, {{172293}, 1}, {{172558}, 1}, {{172689}, 1}, {{40635}, 1}, {{19798}, 1}, {{40697}, 1}, {{40702}, 1},
{{40709}, 1}, {{40719}, 1}, {{40726}, 1}, {{40763}, 1}, {{173568}, 1}
};
KInt getCanonicalClass(KInt ch) {
KInt getCanonicalClass(KInt ch) {
int index = binarySearchRange(canonicalClassesKeys, ARRAY_SIZE(canonicalClassesKeys), ch);
if (canonicalClassesKeys[index] != ch) {
return 0;
@@ -106,16 +106,16 @@ interface MatchResult {
*/
class Destructured internal constructor(val match: MatchResult) {
operator inline fun component1(): String = match.groupValues[1]
operator inline fun component2(): String = match.groupValues[2]
operator inline fun component3(): String = match.groupValues[3]
operator inline fun component4(): String = match.groupValues[4]
operator inline fun component5(): String = match.groupValues[5]
operator inline fun component6(): String = match.groupValues[6]
operator inline fun component7(): String = match.groupValues[7]
operator inline fun component8(): String = match.groupValues[8]
operator inline fun component9(): String = match.groupValues[9]
operator inline fun component10(): String = match.groupValues[10]
@kotlin.internal.InlineOnly operator inline fun component1(): String = match.groupValues[1]
@kotlin.internal.InlineOnly operator inline fun component2(): String = match.groupValues[2]
@kotlin.internal.InlineOnly operator inline fun component3(): String = match.groupValues[3]
@kotlin.internal.InlineOnly operator inline fun component4(): String = match.groupValues[4]
@kotlin.internal.InlineOnly operator inline fun component5(): String = match.groupValues[5]
@kotlin.internal.InlineOnly operator inline fun component6(): String = match.groupValues[6]
@kotlin.internal.InlineOnly operator inline fun component7(): String = match.groupValues[7]
@kotlin.internal.InlineOnly operator inline fun component8(): String = match.groupValues[8]
@kotlin.internal.InlineOnly operator inline fun component9(): String = match.groupValues[9]
@kotlin.internal.InlineOnly operator inline fun component10(): String = match.groupValues[10]
/**
* Returns destructured group values as a list of strings.
* First value in the returned list corresponds to the value of the first group, and so on.
@@ -163,7 +163,6 @@ internal class CharClass(val ignoreCase: Boolean = false, negative: Boolean = fa
return another.contains(ch)
}
}
//alt = true;
} else {
/*
@@ -177,14 +176,12 @@ internal class CharClass(val ignoreCase: Boolean = false, negative: Boolean = fa
return !(curAlt xor bits_.get(ch) || curAlt xor inverted xor another.contains(ch))
}
}
//alt = true
} else {
nonBitSet = object : AbstractCharClass() {
override operator fun contains(ch: Int): Boolean {
return curAlt xor bits_.get(ch) || curAlt xor inverted xor another.contains(ch)
}
}
//alt = false
}
}
@@ -198,14 +195,12 @@ internal class CharClass(val ignoreCase: Boolean = false, negative: Boolean = fa
return !(curAlt xor (nb!!.contains(ch) || another.contains(ch)))
}
}
//alt = true
} else {
nonBitSet = object : AbstractCharClass() {
override operator fun contains(ch: Int): Boolean {
return curAlt xor (nb!!.contains(ch) || another.contains(ch))
}
}
//alt = false
}
}
}
@@ -314,14 +309,12 @@ internal class CharClass(val ignoreCase: Boolean = false, negative: Boolean = fa
return !another.contains(ch)
}
}
//alt = true
} else {
nonBitSet = object : AbstractCharClass() {
override operator fun contains(ch: Int): Boolean {
return another.contains(ch)
}
}
//alt = false
}
} else {
@@ -331,14 +324,12 @@ internal class CharClass(val ignoreCase: Boolean = false, negative: Boolean = fa
return !(another.contains(ch) || curAlt xor bits_.get(ch))
}
}
//alt = true
} else {
nonBitSet = object : AbstractCharClass() {
override operator fun contains(ch: Int): Boolean {
return another.contains(ch) || curAlt xor bits_.get(ch)
}
}
//alt = false
}
}
hideBits = true
@@ -351,14 +342,12 @@ internal class CharClass(val ignoreCase: Boolean = false, negative: Boolean = fa
return !(curAlt xor nb!!.contains(ch) || another.contains(ch))
}
}
//alt = true
} else {
nonBitSet = object : AbstractCharClass() {
override operator fun contains(ch: Int): Boolean {
return curAlt xor nb!!.contains(ch) || another.contains(ch)
}
}
//alt = false
}
}
}
@@ -432,14 +421,12 @@ internal class CharClass(val ignoreCase: Boolean = false, negative: Boolean = fa
return !another.contains(ch)
}
}
//alt = true
} else {
nonBitSet = object : AbstractCharClass() {
override operator fun contains(ch: Int): Boolean {
return another.contains(ch)
}
}
//alt = false
}
} else {
@@ -449,14 +436,12 @@ internal class CharClass(val ignoreCase: Boolean = false, negative: Boolean = fa
return !(another.contains(ch) && curAlt xor bits_.get(ch))
}
}
//alt = true
} else {
nonBitSet = object : AbstractCharClass() {
override operator fun contains(ch: Int): Boolean {
return another.contains(ch) && curAlt xor bits_.get(ch)
}
}
//alt = false
}
}
hideBits = true
@@ -469,14 +454,12 @@ internal class CharClass(val ignoreCase: Boolean = false, negative: Boolean = fa
return !(curAlt xor nb!!.contains(ch) && another.contains(ch))
}
}
//alt = true
} else {
nonBitSet = object : AbstractCharClass() {
override operator fun contains(ch: Int): Boolean {
return curAlt xor nb!!.contains(ch) && another.contains(ch)
}
}
//alt = false
}
}
}
@@ -39,14 +39,6 @@ external private fun getDecompositionInternal(ch: Int): IntArray?
external private fun decomposeString(inputCodePoints: IntArray, inputLength: Int, outputCodePoints: IntArray): Int
// =============================================================================================================
/**
* The purpose of this class is to break given pattern into RE tokens;
* @author Nikolay A. Kuznetsov
*/
// TODO: Move in C++.
typealias IntArrHash = HashMap<Int, IntArray>
typealias IntHash = HashMap<Int, Int>
/**
* This is base class for special tokens like character classes and quantifiers.
*
@@ -519,8 +511,6 @@ internal class Lexer(val patternString: String, flags: Int) {
var max = -1
// Obtain a min value.
//var lookAheadChar: Char = lookAhead.toChar()
// TODO: Check {} case
var char: Char = if (index < pattern.size) pattern[nextIndex()] else throw PatternSyntaxException()
while (char != '}') {
@@ -803,7 +793,6 @@ internal class Lexer(val patternString: String, flags: Int) {
fun normalize(input: String): String {
val inputChars = input.toCharArray()
val inputLength = inputChars.size
var resCodePointsIndex = 0
var inputCodePointsIndex = 0
var decompHangulIndex = 0
@@ -833,7 +822,7 @@ internal class Lexer(val patternString: String, flags: Int) {
}
// Canonical decomposition based on mappings in decomposition table.
resCodePointsIndex = decomposeString(inputCodePoints, inputCodePointsIndex, resCodePoints)
var resCodePointsIndex = decomposeString(inputCodePoints, inputCodePointsIndex, resCodePoints)
// Canonical ordering.
// See http://www.unicode.org/reports/tr15/#Decomposition for details
@@ -842,7 +831,7 @@ internal class Lexer(val patternString: String, flags: Int) {
// Decomposition for Hangul syllables.
// See http://www.unicode.org/reports/tr15/#Hangul for details
decompHangul = IntArray(resCodePoints.size)
@Suppress("NAME_SHADOWING")
for (i in 0..resCodePointsIndex - 1) {
val curSymb = resCodePoints[i]
@@ -860,6 +849,7 @@ internal class Lexer(val patternString: String, flags: Int) {
}
// Translating into UTF-16 encoding
@Suppress("NAME_SHADOWING")
for (i in 0..decompHangulIndex - 1) {
result.append(Char.toChars(decompHangul[i]))
}
@@ -851,7 +851,6 @@ internal class Pattern(val pattern: String, flags: Int = 0) {
* Quotes a given string using "\Q" and "\E", so that all other meta-characters lose their special meaning.
* If the string is used for a `Pattern` afterwards, it can only be matched literally.
*/
// TODO: Replace with other functions.
fun quote(s: String): String {
return StringBuilder()
.append("\\Q")
@@ -18,11 +18,10 @@
package kotlin.text.regex
/**
* Case Insensitive back reference node;
* Back reference node;
*
* @author Nikolay A. Kuznetsov
*/
// TODO: rename the properties
open internal class BackReferenceSet(val referencedGroup: Int, val consCounter: Int, val ignoreCase: Boolean = false)
: SimpleSet() {
@@ -72,7 +72,7 @@ open internal class CharSet(char: Char, val ignoreCase: Boolean = false) : LeafS
override fun first(set: AbstractSet): Boolean {
if (ignoreCase) {
return super.first(set) // TODO: Add correct checks here.
return super.first(set)
}
return when (set) {
is CharSet -> set.char == char
@@ -24,7 +24,6 @@ package kotlin.text.regex
*
* @author Nikolay A. Kuznetsov
*/
// TODO: rename consCounter?
internal class EOLSet(val consCounter: Int, val lt: AbstractLineTerminator, val multiline: Boolean = false) : SimpleSet() {
override fun matches(startIndex: Int, testString: CharSequence, matchResult: MatchResultImpl): Int {
@@ -88,7 +88,7 @@ open internal class SequenceSet(substring: CharSequence, val ignoreCase: Boolean
override fun first(set: AbstractSet): Boolean {
if (ignoreCase) {
return super.first(set) // TODO: Add correct checks for this case.
return super.first(set)
}
return when (set) {
is CharSet -> set.char == patternString[0]
@@ -71,10 +71,7 @@ open internal class SingleSet(var kid: AbstractSet, fSet: FSet) : JointSet(listO
}
override fun processSecondPassInternal(): AbstractSet {
val fSet = this.fSet
if (fSet != null) {
this.fSet = fSet.processSecondPass()
}
fSet = fSet.processSecondPass()
kid = kid.processSecondPass()
return processBackRefReplacement() ?: this
}
@@ -84,8 +81,7 @@ open internal class SingleSet(var kid: AbstractSet, fSet: FSet) : JointSet(listO
*/
override fun processSecondPass(): AbstractSet {
if (secondPassVisited) {
val fSet = this.fSet
if (fSet is FSet && fSet.isBackReferenced) {
if (fSet.isBackReferenced) {
assert(backReferencedSet != null) // secondPassVisited
return backReferencedSet!!
}
@@ -100,7 +96,7 @@ open internal class SingleSet(var kid: AbstractSet, fSet: FSet) : JointSet(listO
* Group node over subexpression without alternations.
* This node is used if current group is referenced via a backreference.
*/
internal class BackReferencedSingleSet(node: SingleSet) : SingleSet(node.kid, node.fSet as FSet) {
internal class BackReferencedSingleSet(node: SingleSet) : SingleSet(node.kid, node.fSet) {
/*
* This class is needed only for overwriting find() and findBack() methods of SingleSet class, which is being
@@ -145,18 +145,3 @@ open internal class SupplementaryRangeSet(charClass: AbstractCharClass, val igno
override fun hasConsumed(matchResult: MatchResultImpl): Boolean = true
}