pydpm_xl 0.1.10__py3-none-any.whl

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.
Files changed (94) hide show
  1. py_dpm/AST/ASTConstructor.py +503 -0
  2. py_dpm/AST/ASTObjects.py +827 -0
  3. py_dpm/AST/ASTTemplate.py +101 -0
  4. py_dpm/AST/ASTVisitor.py +13 -0
  5. py_dpm/AST/MLGeneration.py +588 -0
  6. py_dpm/AST/ModuleAnalyzer.py +79 -0
  7. py_dpm/AST/ModuleDependencies.py +203 -0
  8. py_dpm/AST/WhereClauseChecker.py +12 -0
  9. py_dpm/AST/__init__.py +0 -0
  10. py_dpm/AST/check_operands.py +302 -0
  11. py_dpm/DataTypes/ScalarTypes.py +324 -0
  12. py_dpm/DataTypes/TimeClasses.py +370 -0
  13. py_dpm/DataTypes/TypePromotion.py +195 -0
  14. py_dpm/DataTypes/__init__.py +0 -0
  15. py_dpm/Exceptions/__init__.py +0 -0
  16. py_dpm/Exceptions/exceptions.py +84 -0
  17. py_dpm/Exceptions/messages.py +114 -0
  18. py_dpm/OperationScopes/OperationScopeService.py +247 -0
  19. py_dpm/OperationScopes/__init__.py +0 -0
  20. py_dpm/Operators/AggregateOperators.py +138 -0
  21. py_dpm/Operators/BooleanOperators.py +30 -0
  22. py_dpm/Operators/ClauseOperators.py +159 -0
  23. py_dpm/Operators/ComparisonOperators.py +69 -0
  24. py_dpm/Operators/ConditionalOperators.py +362 -0
  25. py_dpm/Operators/NumericOperators.py +101 -0
  26. py_dpm/Operators/Operator.py +388 -0
  27. py_dpm/Operators/StringOperators.py +27 -0
  28. py_dpm/Operators/TimeOperators.py +53 -0
  29. py_dpm/Operators/__init__.py +0 -0
  30. py_dpm/Utils/ValidationsGenerationUtils.py +429 -0
  31. py_dpm/Utils/__init__.py +0 -0
  32. py_dpm/Utils/operands_mapping.py +73 -0
  33. py_dpm/Utils/operator_mapping.py +89 -0
  34. py_dpm/Utils/tokens.py +172 -0
  35. py_dpm/Utils/utils.py +2 -0
  36. py_dpm/ValidationsGeneration/PropertiesConstraintsProcessor.py +190 -0
  37. py_dpm/ValidationsGeneration/Utils.py +364 -0
  38. py_dpm/ValidationsGeneration/VariantsProcessor.py +265 -0
  39. py_dpm/ValidationsGeneration/__init__.py +0 -0
  40. py_dpm/ValidationsGeneration/auxiliary_functions.py +98 -0
  41. py_dpm/__init__.py +61 -0
  42. py_dpm/api/__init__.py +140 -0
  43. py_dpm/api/ast_generator.py +438 -0
  44. py_dpm/api/complete_ast.py +241 -0
  45. py_dpm/api/data_dictionary_validation.py +577 -0
  46. py_dpm/api/migration.py +77 -0
  47. py_dpm/api/semantic.py +224 -0
  48. py_dpm/api/syntax.py +182 -0
  49. py_dpm/client.py +106 -0
  50. py_dpm/data_handlers.py +99 -0
  51. py_dpm/db_utils.py +117 -0
  52. py_dpm/grammar/__init__.py +0 -0
  53. py_dpm/grammar/dist/__init__.py +0 -0
  54. py_dpm/grammar/dist/dpm_xlLexer.interp +428 -0
  55. py_dpm/grammar/dist/dpm_xlLexer.py +804 -0
  56. py_dpm/grammar/dist/dpm_xlLexer.tokens +106 -0
  57. py_dpm/grammar/dist/dpm_xlParser.interp +249 -0
  58. py_dpm/grammar/dist/dpm_xlParser.py +5224 -0
  59. py_dpm/grammar/dist/dpm_xlParser.tokens +106 -0
  60. py_dpm/grammar/dist/dpm_xlParserListener.py +742 -0
  61. py_dpm/grammar/dist/dpm_xlParserVisitor.py +419 -0
  62. py_dpm/grammar/dist/listeners.py +10 -0
  63. py_dpm/grammar/dpm_xlLexer.g4 +435 -0
  64. py_dpm/grammar/dpm_xlParser.g4 +260 -0
  65. py_dpm/migration.py +282 -0
  66. py_dpm/models.py +2139 -0
  67. py_dpm/semantics/DAG/DAGAnalyzer.py +158 -0
  68. py_dpm/semantics/DAG/__init__.py +0 -0
  69. py_dpm/semantics/SemanticAnalyzer.py +320 -0
  70. py_dpm/semantics/Symbols.py +223 -0
  71. py_dpm/semantics/__init__.py +0 -0
  72. py_dpm/utils/__init__.py +0 -0
  73. py_dpm/utils/ast_serialization.py +481 -0
  74. py_dpm/views/data_types.sql +12 -0
  75. py_dpm/views/datapoints.sql +65 -0
  76. py_dpm/views/hierarchy_operand_reference.sql +11 -0
  77. py_dpm/views/hierarchy_preconditions.sql +13 -0
  78. py_dpm/views/hierarchy_variables.sql +26 -0
  79. py_dpm/views/hierarchy_variables_context.sql +14 -0
  80. py_dpm/views/key_components.sql +18 -0
  81. py_dpm/views/module_from_table.sql +11 -0
  82. py_dpm/views/open_keys.sql +13 -0
  83. py_dpm/views/operation_info.sql +27 -0
  84. py_dpm/views/operation_list.sql +18 -0
  85. py_dpm/views/operations_versions_from_module_version.sql +30 -0
  86. py_dpm/views/precondition_info.sql +17 -0
  87. py_dpm/views/report_type_operand_reference_info.sql +18 -0
  88. py_dpm/views/subcategory_info.sql +17 -0
  89. py_dpm/views/table_info.sql +19 -0
  90. pydpm_xl-0.1.10.dist-info/LICENSE +674 -0
  91. pydpm_xl-0.1.10.dist-info/METADATA +50 -0
  92. pydpm_xl-0.1.10.dist-info/RECORD +94 -0
  93. pydpm_xl-0.1.10.dist-info/WHEEL +4 -0
  94. pydpm_xl-0.1.10.dist-info/entry_points.txt +3 -0
@@ -0,0 +1,804 @@
1
+ # Generated from C:/Users/Javier/Documents/MeaningfulData/Programacion/operations/py_dpm/grammar/dpm_xlLexer.g4 by ANTLR 4.13.1
2
+ import sys
3
+
4
+ from antlr4 import *
5
+
6
+ if sys.version_info[1] > 5:
7
+ from typing import TextIO
8
+ else:
9
+ from typing.io import TextIO
10
+
11
+
12
+ def serializedATN():
13
+ return [
14
+ 4,0,95,1558,6,-1,6,-1,6,-1,6,-1,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,
15
+ 7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,
16
+ 11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,
17
+ 17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,
18
+ 24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,
19
+ 30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,
20
+ 37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,
21
+ 43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,
22
+ 50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,
23
+ 56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,
24
+ 63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,
25
+ 69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,
26
+ 76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,
27
+ 82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,
28
+ 89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,
29
+ 95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,
30
+ 2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,
31
+ 7,107,2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,
32
+ 2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,
33
+ 7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,
34
+ 2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,
35
+ 7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,
36
+ 2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,
37
+ 7,140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,
38
+ 2,146,7,146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,
39
+ 7,151,2,152,7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,
40
+ 2,157,7,157,2,158,7,158,2,159,7,159,2,160,7,160,2,161,7,161,2,162,
41
+ 7,162,2,163,7,163,2,164,7,164,2,165,7,165,2,166,7,166,2,167,7,167,
42
+ 2,168,7,168,2,169,7,169,2,170,7,170,2,171,7,171,2,172,7,172,2,173,
43
+ 7,173,2,174,7,174,2,175,7,175,2,176,7,176,2,177,7,177,2,178,7,178,
44
+ 2,179,7,179,2,180,7,180,2,181,7,181,2,182,7,182,2,183,7,183,2,184,
45
+ 7,184,2,185,7,185,2,186,7,186,2,187,7,187,2,188,7,188,2,189,7,189,
46
+ 2,190,7,190,2,191,7,191,2,192,7,192,2,193,7,193,2,194,7,194,2,195,
47
+ 7,195,2,196,7,196,2,197,7,197,2,198,7,198,2,199,7,199,2,200,7,200,
48
+ 2,201,7,201,2,202,7,202,2,203,7,203,2,204,7,204,2,205,7,205,2,206,
49
+ 7,206,2,207,7,207,2,208,7,208,2,209,7,209,2,210,7,210,2,211,7,211,
50
+ 2,212,7,212,2,213,7,213,2,214,7,214,2,215,7,215,2,216,7,216,1,0,
51
+ 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,3,0,449,8,0,1,1,1,1,1,1,1,1,1,2,
52
+ 1,2,1,2,1,3,1,3,1,3,1,3,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,6,1,6,1,6,
53
+ 1,7,1,7,1,8,1,8,1,8,1,9,1,9,1,10,1,10,1,10,1,11,1,11,1,12,1,12,1,
54
+ 12,1,13,1,13,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,1,15,1,
55
+ 15,1,16,1,16,1,17,1,17,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,19,1,
56
+ 19,1,19,1,19,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,21,1,
57
+ 21,1,21,1,21,1,22,1,22,1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,23,1,
58
+ 24,1,24,1,24,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,25,1,25,1,25,1,
59
+ 25,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,
60
+ 27,1,27,1,27,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,30,1,30,1,30,1,
61
+ 30,1,30,1,31,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1,33,1,
62
+ 33,1,33,1,33,1,34,1,34,1,34,1,34,1,35,1,35,1,35,1,35,1,35,1,36,1,
63
+ 36,1,37,1,37,1,38,1,38,1,39,1,39,1,40,1,40,1,40,1,40,1,41,1,41,1,
64
+ 42,1,42,1,42,1,42,1,43,1,43,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,
65
+ 45,1,45,1,46,1,46,1,46,1,46,1,46,1,47,1,47,1,47,1,47,1,47,1,48,1,
66
+ 48,1,48,1,48,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,50,1,50,1,50,1,
67
+ 50,1,50,1,50,1,51,1,51,1,51,1,51,1,52,1,52,1,52,1,52,1,52,1,52,1,
68
+ 52,1,53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,
69
+ 54,1,54,1,55,1,55,1,55,1,55,1,56,1,56,1,57,1,57,1,58,1,58,1,59,1,
70
+ 59,1,60,1,60,1,61,4,61,698,8,61,11,61,12,61,699,1,61,1,61,1,61,4,
71
+ 61,705,8,61,11,61,12,61,706,1,61,1,61,3,61,711,8,61,1,62,1,62,1,
72
+ 62,1,62,1,63,1,63,1,63,1,63,1,63,1,63,3,63,723,8,63,1,64,1,64,1,
73
+ 64,1,64,1,64,1,65,1,65,4,65,732,8,65,11,65,12,65,733,1,65,1,65,1,
74
+ 65,4,65,739,8,65,11,65,12,65,740,1,65,3,65,744,8,65,1,66,1,66,1,
75
+ 66,1,66,3,66,750,8,66,1,67,1,67,1,67,1,67,1,67,1,68,1,68,1,68,1,
76
+ 68,3,68,761,8,68,1,69,1,69,1,69,1,69,1,69,1,69,3,69,769,8,69,1,70,
77
+ 1,70,1,70,1,70,3,70,775,8,70,1,71,1,71,1,71,1,71,3,71,781,8,71,1,
78
+ 72,1,72,1,72,1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,74,1,74,1,74,1,
79
+ 74,1,74,1,74,1,74,1,74,3,74,801,8,74,1,75,1,75,3,75,805,8,75,1,75,
80
+ 1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,
81
+ 1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,75,3,75,829,8,75,1,76,1,76,
82
+ 1,76,1,76,1,77,1,77,1,77,1,77,1,77,1,77,1,78,1,78,1,78,1,78,1,79,
83
+ 1,79,5,79,847,8,79,10,79,12,79,850,9,79,1,79,5,79,853,8,79,10,79,
84
+ 12,79,856,9,79,1,80,4,80,859,8,80,11,80,12,80,860,1,80,1,80,1,81,
85
+ 1,81,1,81,1,81,1,82,1,82,1,82,1,82,1,83,1,83,1,83,1,83,1,84,1,84,
86
+ 1,84,1,84,1,85,1,85,1,85,1,85,1,85,1,86,1,86,1,86,1,86,1,86,1,86,
87
+ 1,86,1,86,1,86,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,88,1,88,
88
+ 1,88,1,88,1,89,1,89,1,89,1,89,1,90,1,90,1,91,1,91,1,92,1,92,1,93,
89
+ 1,93,1,94,1,94,1,95,1,95,1,96,1,96,1,97,1,97,1,97,1,98,1,98,5,98,
90
+ 930,8,98,10,98,12,98,933,9,98,1,98,5,98,936,8,98,10,98,12,98,939,
91
+ 9,98,1,99,4,99,942,8,99,11,99,12,99,943,1,100,1,100,1,100,1,100,
92
+ 1,101,1,101,5,101,952,8,101,10,101,12,101,955,9,101,1,101,5,101,
93
+ 958,8,101,10,101,12,101,961,9,101,1,102,1,102,5,102,965,8,102,10,
94
+ 102,12,102,968,9,102,1,102,5,102,971,8,102,10,102,12,102,974,9,102,
95
+ 1,103,1,103,1,103,1,104,1,104,1,104,1,105,1,105,1,105,1,106,1,106,
96
+ 1,106,1,107,1,107,1,107,1,108,1,108,1,108,1,109,1,109,1,109,1,110,
97
+ 1,110,1,110,1,111,1,111,1,111,1,112,1,112,1,112,1,113,1,113,1,113,
98
+ 1,114,1,114,1,114,1,115,1,115,1,115,1,116,1,116,1,116,1,117,1,117,
99
+ 1,117,1,117,1,118,1,118,1,118,1,118,1,119,1,119,1,119,1,119,1,120,
100
+ 1,120,1,120,1,120,1,121,1,121,1,121,1,121,1,122,1,122,1,122,1,122,
101
+ 1,123,1,123,1,123,1,123,1,124,1,124,1,124,1,124,1,125,1,125,1,125,
102
+ 1,125,1,126,1,126,1,126,1,126,1,127,1,127,1,127,1,127,1,127,1,127,
103
+ 1,128,1,128,1,128,1,128,1,128,1,129,1,129,1,129,1,129,1,129,1,129,
104
+ 1,130,1,130,1,130,1,130,1,130,1,130,1,131,1,131,1,131,1,131,1,132,
105
+ 1,132,1,132,1,132,1,132,1,133,1,133,1,133,1,133,1,134,1,134,1,134,
106
+ 1,134,1,134,1,135,1,135,1,135,1,135,1,136,1,136,1,136,1,136,1,136,
107
+ 1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,138,1,138,1,138,
108
+ 1,138,1,139,1,139,1,139,1,139,1,140,1,140,1,140,1,140,1,141,1,141,
109
+ 1,141,1,141,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142,1,142,
110
+ 1,142,1,142,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,143,1,143,
111
+ 1,143,1,143,1,144,1,144,1,144,1,144,1,144,1,144,1,145,1,145,1,145,
112
+ 1,145,1,145,1,145,1,145,1,145,1,146,1,146,1,146,1,146,1,146,1,146,
113
+ 1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,147,1,148,1,148,
114
+ 1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,149,
115
+ 1,149,1,149,1,149,1,149,1,149,1,150,1,150,1,150,1,150,1,150,1,150,
116
+ 1,150,1,150,1,150,1,151,1,151,1,151,1,151,1,151,1,151,1,152,1,152,
117
+ 1,152,1,152,1,152,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,154,
118
+ 1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,155,1,155,1,155,1,155,
119
+ 1,155,1,155,1,156,1,156,1,156,1,156,1,156,1,156,1,157,1,157,1,157,
120
+ 1,157,1,157,1,157,1,158,1,158,1,158,1,158,1,158,1,158,1,159,1,159,
121
+ 1,159,1,159,1,160,1,160,1,160,1,160,1,161,1,161,1,161,1,161,1,162,
122
+ 1,162,1,162,1,162,1,163,1,163,1,163,1,163,1,163,1,164,1,164,1,164,
123
+ 1,164,1,165,1,165,1,165,1,165,1,165,1,166,1,166,1,166,1,166,1,166,
124
+ 1,167,1,167,1,167,1,167,1,167,1,168,1,168,1,168,1,168,1,168,1,168,
125
+ 1,168,1,168,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,170,1,170,
126
+ 1,170,1,170,1,170,1,170,1,170,1,171,1,171,1,171,1,171,1,171,1,171,
127
+ 1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,173,1,173,
128
+ 1,173,1,173,1,173,1,173,1,173,1,173,1,174,1,174,1,174,1,174,1,174,
129
+ 1,174,1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,175,1,176,
130
+ 1,176,1,176,1,176,1,176,1,177,1,177,1,177,1,177,1,177,1,177,1,177,
131
+ 1,177,1,177,1,177,1,177,1,177,1,177,1,178,1,178,1,178,1,178,1,178,
132
+ 1,178,1,179,1,179,1,179,1,179,1,180,1,180,1,181,1,181,1,182,1,182,
133
+ 1,183,1,183,1,183,1,183,1,184,1,184,1,184,1,184,1,185,1,185,1,185,
134
+ 1,185,1,186,1,186,1,186,1,186,1,187,1,187,1,187,1,187,1,188,1,188,
135
+ 1,188,1,188,1,189,1,189,1,189,1,189,1,189,1,189,1,190,1,190,1,190,
136
+ 1,190,1,190,1,190,1,190,1,190,1,191,1,191,1,191,1,191,1,191,1,191,
137
+ 1,192,1,192,5,192,1440,8,192,10,192,12,192,1443,9,192,1,192,1,192,
138
+ 5,192,1447,8,192,10,192,12,192,1450,9,192,1,192,4,192,1453,8,192,
139
+ 11,192,12,192,1454,1,193,1,193,1,194,4,194,1460,8,194,11,194,12,
140
+ 194,1461,1,194,1,194,1,195,1,195,1,195,1,195,1,195,1,196,1,196,1,
141
+ 196,1,196,1,197,1,197,1,197,1,197,1,198,1,198,1,198,1,198,1,199,
142
+ 1,199,1,199,1,199,1,200,1,200,1,200,1,200,1,201,4,201,1492,8,201,
143
+ 11,201,12,201,1493,1,201,1,201,1,202,1,202,1,202,1,202,1,203,1,203,
144
+ 1,203,1,203,1,204,1,204,1,204,1,204,1,204,1,205,1,205,1,205,1,205,
145
+ 1,206,1,206,1,206,1,206,1,207,1,207,1,207,1,207,1,208,1,208,1,208,
146
+ 1,208,1,209,1,209,1,209,1,209,1,210,1,210,1,210,1,210,1,211,1,211,
147
+ 1,211,1,211,1,212,1,212,1,212,1,212,1,213,1,213,1,213,1,213,1,214,
148
+ 1,214,1,214,1,214,1,215,1,215,1,215,1,215,1,216,1,216,1,216,1,216,
149
+ 0,0,217,5,1,7,2,9,3,11,4,13,5,15,6,17,7,19,8,21,9,23,10,25,11,27,
150
+ 12,29,13,31,14,33,15,35,16,37,17,39,18,41,19,43,20,45,21,47,22,49,
151
+ 23,51,24,53,25,55,26,57,27,59,28,61,29,63,30,65,31,67,32,69,33,71,
152
+ 34,73,35,75,36,77,37,79,38,81,39,83,40,85,41,87,42,89,43,91,44,93,
153
+ 45,95,46,97,47,99,48,101,49,103,50,105,51,107,52,109,53,111,54,113,
154
+ 55,115,56,117,57,119,58,121,59,123,0,125,0,127,60,129,61,131,62,
155
+ 133,63,135,64,137,65,139,0,141,0,143,0,145,0,147,0,149,0,151,0,153,
156
+ 0,155,0,157,66,159,67,161,68,163,69,165,70,167,0,169,0,171,0,173,
157
+ 0,175,0,177,71,179,72,181,0,183,0,185,0,187,0,189,0,191,0,193,0,
158
+ 195,0,197,0,199,0,201,0,203,0,205,0,207,0,209,0,211,73,213,74,215,
159
+ 75,217,76,219,77,221,78,223,79,225,80,227,81,229,82,231,83,233,84,
160
+ 235,85,237,86,239,0,241,0,243,0,245,0,247,0,249,0,251,0,253,0,255,
161
+ 87,257,0,259,0,261,0,263,0,265,0,267,0,269,0,271,0,273,0,275,0,277,
162
+ 0,279,0,281,0,283,0,285,0,287,0,289,0,291,0,293,0,295,0,297,0,299,
163
+ 0,301,0,303,0,305,0,307,0,309,0,311,0,313,0,315,0,317,0,319,0,321,
164
+ 0,323,0,325,0,327,0,329,0,331,0,333,0,335,0,337,0,339,0,341,0,343,
165
+ 0,345,0,347,0,349,0,351,0,353,0,355,0,357,0,359,0,361,0,363,0,365,
166
+ 88,367,89,369,90,371,0,373,0,375,0,377,0,379,0,381,0,383,0,385,0,
167
+ 387,0,389,91,391,92,393,93,395,0,397,0,399,0,401,0,403,0,405,0,407,
168
+ 94,409,0,411,0,413,0,415,0,417,0,419,0,421,0,423,0,425,0,427,0,429,
169
+ 0,431,0,433,0,435,0,437,95,5,0,1,2,3,4,18,6,0,65,65,68,68,77,77,
170
+ 81,81,83,83,87,87,1,0,34,34,1,0,39,39,1,0,48,50,1,0,49,52,1,0,48,
171
+ 49,1,0,48,51,1,0,48,53,1,0,49,50,2,0,65,90,97,122,5,0,46,46,48,57,
172
+ 65,90,95,95,97,122,3,0,48,57,65,90,97,122,3,0,9,10,12,13,32,32,5,
173
+ 0,45,46,48,57,65,90,95,95,97,122,1,0,45,45,1,0,42,42,5,0,45,45,48,
174
+ 57,65,90,95,95,97,122,1,0,58,58,1565,0,5,1,0,0,0,0,7,1,0,0,0,0,9,
175
+ 1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,
176
+ 1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,
177
+ 1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,
178
+ 1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,
179
+ 1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,
180
+ 1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,
181
+ 1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,79,
182
+ 1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,0,87,1,0,0,0,0,89,
183
+ 1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,0,0,0,0,97,1,0,0,0,0,99,
184
+ 1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,0,0,107,1,0,0,0,
185
+ 0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,0,0,0,117,1,
186
+ 0,0,0,0,119,1,0,0,0,0,121,1,0,0,0,0,127,1,0,0,0,0,129,1,0,0,0,0,
187
+ 131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0,137,1,0,0,0,0,157,1,0,
188
+ 0,0,0,159,1,0,0,0,0,161,1,0,0,0,0,163,1,0,0,0,0,165,1,0,0,0,1,167,
189
+ 1,0,0,0,1,169,1,0,0,0,1,171,1,0,0,0,1,173,1,0,0,0,1,175,1,0,0,0,
190
+ 1,177,1,0,0,0,1,179,1,0,0,0,1,181,1,0,0,0,1,183,1,0,0,0,1,211,1,
191
+ 0,0,0,1,213,1,0,0,0,1,215,1,0,0,0,1,217,1,0,0,0,1,219,1,0,0,0,1,
192
+ 221,1,0,0,0,1,223,1,0,0,0,1,225,1,0,0,0,1,227,1,0,0,0,1,229,1,0,
193
+ 0,0,1,231,1,0,0,0,1,233,1,0,0,0,1,235,1,0,0,0,1,237,1,0,0,0,1,239,
194
+ 1,0,0,0,1,241,1,0,0,0,1,243,1,0,0,0,1,245,1,0,0,0,1,247,1,0,0,0,
195
+ 1,249,1,0,0,0,1,251,1,0,0,0,1,253,1,0,0,0,1,255,1,0,0,0,2,257,1,
196
+ 0,0,0,2,259,1,0,0,0,2,261,1,0,0,0,2,263,1,0,0,0,2,265,1,0,0,0,2,
197
+ 267,1,0,0,0,2,269,1,0,0,0,2,271,1,0,0,0,2,273,1,0,0,0,2,275,1,0,
198
+ 0,0,2,277,1,0,0,0,2,279,1,0,0,0,2,281,1,0,0,0,2,283,1,0,0,0,2,285,
199
+ 1,0,0,0,2,287,1,0,0,0,2,289,1,0,0,0,2,291,1,0,0,0,2,293,1,0,0,0,
200
+ 2,295,1,0,0,0,2,297,1,0,0,0,2,299,1,0,0,0,2,301,1,0,0,0,2,303,1,
201
+ 0,0,0,2,305,1,0,0,0,2,307,1,0,0,0,2,309,1,0,0,0,2,311,1,0,0,0,2,
202
+ 313,1,0,0,0,2,315,1,0,0,0,2,317,1,0,0,0,2,319,1,0,0,0,2,321,1,0,
203
+ 0,0,2,323,1,0,0,0,2,325,1,0,0,0,2,327,1,0,0,0,2,329,1,0,0,0,2,331,
204
+ 1,0,0,0,2,333,1,0,0,0,2,335,1,0,0,0,2,337,1,0,0,0,2,339,1,0,0,0,
205
+ 2,341,1,0,0,0,2,343,1,0,0,0,2,345,1,0,0,0,2,347,1,0,0,0,2,349,1,
206
+ 0,0,0,2,351,1,0,0,0,2,353,1,0,0,0,2,355,1,0,0,0,2,357,1,0,0,0,2,
207
+ 359,1,0,0,0,2,361,1,0,0,0,2,363,1,0,0,0,2,365,1,0,0,0,2,367,1,0,
208
+ 0,0,2,369,1,0,0,0,2,371,1,0,0,0,2,373,1,0,0,0,2,375,1,0,0,0,2,377,
209
+ 1,0,0,0,2,379,1,0,0,0,2,381,1,0,0,0,2,383,1,0,0,0,2,385,1,0,0,0,
210
+ 2,387,1,0,0,0,2,389,1,0,0,0,2,391,1,0,0,0,2,393,1,0,0,0,3,395,1,
211
+ 0,0,0,3,397,1,0,0,0,3,399,1,0,0,0,3,401,1,0,0,0,3,403,1,0,0,0,3,
212
+ 405,1,0,0,0,3,407,1,0,0,0,4,409,1,0,0,0,4,411,1,0,0,0,4,413,1,0,
213
+ 0,0,4,415,1,0,0,0,4,417,1,0,0,0,4,419,1,0,0,0,4,421,1,0,0,0,4,423,
214
+ 1,0,0,0,4,425,1,0,0,0,4,427,1,0,0,0,4,429,1,0,0,0,4,431,1,0,0,0,
215
+ 4,433,1,0,0,0,4,435,1,0,0,0,4,437,1,0,0,0,5,448,1,0,0,0,7,450,1,
216
+ 0,0,0,9,454,1,0,0,0,11,457,1,0,0,0,13,461,1,0,0,0,15,465,1,0,0,0,
217
+ 17,468,1,0,0,0,19,471,1,0,0,0,21,473,1,0,0,0,23,476,1,0,0,0,25,478,
218
+ 1,0,0,0,27,481,1,0,0,0,29,483,1,0,0,0,31,486,1,0,0,0,33,492,1,0,
219
+ 0,0,35,497,1,0,0,0,37,499,1,0,0,0,39,501,1,0,0,0,41,503,1,0,0,0,
220
+ 43,505,1,0,0,0,45,514,1,0,0,0,47,523,1,0,0,0,49,527,1,0,0,0,51,533,
221
+ 1,0,0,0,53,537,1,0,0,0,55,544,1,0,0,0,57,555,1,0,0,0,59,559,1,0,
222
+ 0,0,61,566,1,0,0,0,63,570,1,0,0,0,65,573,1,0,0,0,67,578,1,0,0,0,
223
+ 69,584,1,0,0,0,71,588,1,0,0,0,73,592,1,0,0,0,75,596,1,0,0,0,77,601,
224
+ 1,0,0,0,79,603,1,0,0,0,81,605,1,0,0,0,83,607,1,0,0,0,85,609,1,0,
225
+ 0,0,87,613,1,0,0,0,89,615,1,0,0,0,91,619,1,0,0,0,93,621,1,0,0,0,
226
+ 95,624,1,0,0,0,97,630,1,0,0,0,99,635,1,0,0,0,101,640,1,0,0,0,103,
227
+ 644,1,0,0,0,105,651,1,0,0,0,107,657,1,0,0,0,109,661,1,0,0,0,111,
228
+ 668,1,0,0,0,113,671,1,0,0,0,115,682,1,0,0,0,117,686,1,0,0,0,119,
229
+ 688,1,0,0,0,121,690,1,0,0,0,123,692,1,0,0,0,125,694,1,0,0,0,127,
230
+ 710,1,0,0,0,129,712,1,0,0,0,131,722,1,0,0,0,133,724,1,0,0,0,135,
231
+ 743,1,0,0,0,137,749,1,0,0,0,139,751,1,0,0,0,141,760,1,0,0,0,143,
232
+ 768,1,0,0,0,145,774,1,0,0,0,147,780,1,0,0,0,149,782,1,0,0,0,151,
233
+ 785,1,0,0,0,153,788,1,0,0,0,155,828,1,0,0,0,157,830,1,0,0,0,159,
234
+ 834,1,0,0,0,161,840,1,0,0,0,163,844,1,0,0,0,165,858,1,0,0,0,167,
235
+ 864,1,0,0,0,169,868,1,0,0,0,171,872,1,0,0,0,173,876,1,0,0,0,175,
236
+ 880,1,0,0,0,177,885,1,0,0,0,179,894,1,0,0,0,181,902,1,0,0,0,183,
237
+ 906,1,0,0,0,185,910,1,0,0,0,187,912,1,0,0,0,189,914,1,0,0,0,191,
238
+ 916,1,0,0,0,193,918,1,0,0,0,195,920,1,0,0,0,197,922,1,0,0,0,199,
239
+ 924,1,0,0,0,201,927,1,0,0,0,203,941,1,0,0,0,205,945,1,0,0,0,207,
240
+ 949,1,0,0,0,209,962,1,0,0,0,211,975,1,0,0,0,213,978,1,0,0,0,215,
241
+ 981,1,0,0,0,217,984,1,0,0,0,219,987,1,0,0,0,221,990,1,0,0,0,223,
242
+ 993,1,0,0,0,225,996,1,0,0,0,227,999,1,0,0,0,229,1002,1,0,0,0,231,
243
+ 1005,1,0,0,0,233,1008,1,0,0,0,235,1011,1,0,0,0,237,1014,1,0,0,0,
244
+ 239,1017,1,0,0,0,241,1021,1,0,0,0,243,1025,1,0,0,0,245,1029,1,0,
245
+ 0,0,247,1033,1,0,0,0,249,1037,1,0,0,0,251,1041,1,0,0,0,253,1045,
246
+ 1,0,0,0,255,1049,1,0,0,0,257,1053,1,0,0,0,259,1057,1,0,0,0,261,1063,
247
+ 1,0,0,0,263,1068,1,0,0,0,265,1074,1,0,0,0,267,1080,1,0,0,0,269,1084,
248
+ 1,0,0,0,271,1089,1,0,0,0,273,1093,1,0,0,0,275,1098,1,0,0,0,277,1102,
249
+ 1,0,0,0,279,1107,1,0,0,0,281,1115,1,0,0,0,283,1119,1,0,0,0,285,1123,
250
+ 1,0,0,0,287,1127,1,0,0,0,289,1131,1,0,0,0,291,1142,1,0,0,0,293,1153,
251
+ 1,0,0,0,295,1159,1,0,0,0,297,1167,1,0,0,0,299,1173,1,0,0,0,301,1182,
252
+ 1,0,0,0,303,1194,1,0,0,0,305,1200,1,0,0,0,307,1209,1,0,0,0,309,1215,
253
+ 1,0,0,0,311,1220,1,0,0,0,313,1227,1,0,0,0,315,1235,1,0,0,0,317,1241,
254
+ 1,0,0,0,319,1247,1,0,0,0,321,1253,1,0,0,0,323,1259,1,0,0,0,325,1263,
255
+ 1,0,0,0,327,1267,1,0,0,0,329,1271,1,0,0,0,331,1275,1,0,0,0,333,1280,
256
+ 1,0,0,0,335,1284,1,0,0,0,337,1289,1,0,0,0,339,1294,1,0,0,0,341,1299,
257
+ 1,0,0,0,343,1307,1,0,0,0,345,1314,1,0,0,0,347,1321,1,0,0,0,349,1327,
258
+ 1,0,0,0,351,1336,1,0,0,0,353,1344,1,0,0,0,355,1350,1,0,0,0,357,1359,
259
+ 1,0,0,0,359,1364,1,0,0,0,361,1377,1,0,0,0,363,1383,1,0,0,0,365,1387,
260
+ 1,0,0,0,367,1389,1,0,0,0,369,1391,1,0,0,0,371,1393,1,0,0,0,373,1397,
261
+ 1,0,0,0,375,1401,1,0,0,0,377,1405,1,0,0,0,379,1409,1,0,0,0,381,1413,
262
+ 1,0,0,0,383,1417,1,0,0,0,385,1423,1,0,0,0,387,1431,1,0,0,0,389,1437,
263
+ 1,0,0,0,391,1456,1,0,0,0,393,1459,1,0,0,0,395,1465,1,0,0,0,397,1470,
264
+ 1,0,0,0,399,1474,1,0,0,0,401,1478,1,0,0,0,403,1482,1,0,0,0,405,1486,
265
+ 1,0,0,0,407,1491,1,0,0,0,409,1497,1,0,0,0,411,1501,1,0,0,0,413,1505,
266
+ 1,0,0,0,415,1510,1,0,0,0,417,1514,1,0,0,0,419,1518,1,0,0,0,421,1522,
267
+ 1,0,0,0,423,1526,1,0,0,0,425,1530,1,0,0,0,427,1534,1,0,0,0,429,1538,
268
+ 1,0,0,0,431,1542,1,0,0,0,433,1546,1,0,0,0,435,1550,1,0,0,0,437,1554,
269
+ 1,0,0,0,439,440,5,116,0,0,440,441,5,114,0,0,441,442,5,117,0,0,442,
270
+ 449,5,101,0,0,443,444,5,102,0,0,444,445,5,97,0,0,445,446,5,108,0,
271
+ 0,446,447,5,115,0,0,447,449,5,101,0,0,448,439,1,0,0,0,448,443,1,
272
+ 0,0,0,449,6,1,0,0,0,450,451,5,97,0,0,451,452,5,110,0,0,452,453,5,
273
+ 100,0,0,453,8,1,0,0,0,454,455,5,111,0,0,455,456,5,114,0,0,456,10,
274
+ 1,0,0,0,457,458,5,120,0,0,458,459,5,111,0,0,459,460,5,114,0,0,460,
275
+ 12,1,0,0,0,461,462,5,110,0,0,462,463,5,111,0,0,463,464,5,116,0,0,
276
+ 464,14,1,0,0,0,465,466,5,58,0,0,466,467,5,61,0,0,467,16,1,0,0,0,
277
+ 468,469,5,60,0,0,469,470,5,45,0,0,470,18,1,0,0,0,471,472,5,61,0,
278
+ 0,472,20,1,0,0,0,473,474,5,33,0,0,474,475,5,61,0,0,475,22,1,0,0,
279
+ 0,476,477,5,60,0,0,477,24,1,0,0,0,478,479,5,60,0,0,479,480,5,61,
280
+ 0,0,480,26,1,0,0,0,481,482,5,62,0,0,482,28,1,0,0,0,483,484,5,62,
281
+ 0,0,484,485,5,61,0,0,485,30,1,0,0,0,486,487,5,109,0,0,487,488,5,
282
+ 97,0,0,488,489,5,116,0,0,489,490,5,99,0,0,490,491,5,104,0,0,491,
283
+ 32,1,0,0,0,492,493,5,119,0,0,493,494,5,105,0,0,494,495,5,116,0,0,
284
+ 495,496,5,104,0,0,496,34,1,0,0,0,497,498,5,43,0,0,498,36,1,0,0,0,
285
+ 499,500,5,45,0,0,500,38,1,0,0,0,501,502,5,42,0,0,502,40,1,0,0,0,
286
+ 503,504,5,47,0,0,504,42,1,0,0,0,505,506,5,109,0,0,506,507,5,97,0,
287
+ 0,507,508,5,120,0,0,508,509,5,95,0,0,509,510,5,97,0,0,510,511,5,
288
+ 103,0,0,511,512,5,103,0,0,512,513,5,114,0,0,513,44,1,0,0,0,514,515,
289
+ 5,109,0,0,515,516,5,105,0,0,516,517,5,110,0,0,517,518,5,95,0,0,518,
290
+ 519,5,97,0,0,519,520,5,103,0,0,520,521,5,103,0,0,521,522,5,114,0,
291
+ 0,522,46,1,0,0,0,523,524,5,115,0,0,524,525,5,117,0,0,525,526,5,109,
292
+ 0,0,526,48,1,0,0,0,527,528,5,99,0,0,528,529,5,111,0,0,529,530,5,
293
+ 117,0,0,530,531,5,110,0,0,531,532,5,116,0,0,532,50,1,0,0,0,533,534,
294
+ 5,97,0,0,534,535,5,118,0,0,535,536,5,103,0,0,536,52,1,0,0,0,537,
295
+ 538,5,109,0,0,538,539,5,101,0,0,539,540,5,100,0,0,540,541,5,105,
296
+ 0,0,541,542,5,97,0,0,542,543,5,110,0,0,543,54,1,0,0,0,544,545,5,
297
+ 103,0,0,545,546,5,114,0,0,546,547,5,111,0,0,547,548,5,117,0,0,548,
298
+ 549,5,112,0,0,549,550,5,32,0,0,550,551,5,98,0,0,551,552,5,121,0,
299
+ 0,552,553,1,0,0,0,553,554,6,25,0,0,554,56,1,0,0,0,555,556,5,97,0,
300
+ 0,556,557,5,98,0,0,557,558,5,115,0,0,558,58,1,0,0,0,559,560,5,105,
301
+ 0,0,560,561,5,115,0,0,561,562,5,110,0,0,562,563,5,117,0,0,563,564,
302
+ 5,108,0,0,564,565,5,108,0,0,565,60,1,0,0,0,566,567,5,101,0,0,567,
303
+ 568,5,120,0,0,568,569,5,112,0,0,569,62,1,0,0,0,570,571,5,108,0,0,
304
+ 571,572,5,110,0,0,572,64,1,0,0,0,573,574,5,115,0,0,574,575,5,113,
305
+ 0,0,575,576,5,114,0,0,576,577,5,116,0,0,577,66,1,0,0,0,578,579,5,
306
+ 112,0,0,579,580,5,111,0,0,580,581,5,119,0,0,581,582,5,101,0,0,582,
307
+ 583,5,114,0,0,583,68,1,0,0,0,584,585,5,108,0,0,585,586,5,111,0,0,
308
+ 586,587,5,103,0,0,587,70,1,0,0,0,588,589,5,109,0,0,589,590,5,97,
309
+ 0,0,590,591,5,120,0,0,591,72,1,0,0,0,592,593,5,109,0,0,593,594,5,
310
+ 105,0,0,594,595,5,110,0,0,595,74,1,0,0,0,596,597,5,105,0,0,597,598,
311
+ 5,110,0,0,598,599,1,0,0,0,599,600,6,35,1,0,600,76,1,0,0,0,601,602,
312
+ 5,44,0,0,602,78,1,0,0,0,603,604,5,58,0,0,604,80,1,0,0,0,605,606,
313
+ 5,40,0,0,606,82,1,0,0,0,607,608,5,41,0,0,608,84,1,0,0,0,609,610,
314
+ 5,123,0,0,610,611,1,0,0,0,611,612,6,40,2,0,612,86,1,0,0,0,613,614,
315
+ 5,125,0,0,614,88,1,0,0,0,615,616,5,91,0,0,616,617,1,0,0,0,617,618,
316
+ 6,42,3,0,618,90,1,0,0,0,619,620,5,93,0,0,620,92,1,0,0,0,621,622,
317
+ 5,105,0,0,622,623,5,102,0,0,623,94,1,0,0,0,624,625,5,101,0,0,625,
318
+ 626,5,110,0,0,626,627,5,100,0,0,627,628,5,105,0,0,628,629,5,102,
319
+ 0,0,629,96,1,0,0,0,630,631,5,116,0,0,631,632,5,104,0,0,632,633,5,
320
+ 101,0,0,633,634,5,110,0,0,634,98,1,0,0,0,635,636,5,101,0,0,636,637,
321
+ 5,108,0,0,637,638,5,115,0,0,638,639,5,101,0,0,639,100,1,0,0,0,640,
322
+ 641,5,110,0,0,641,642,5,118,0,0,642,643,5,108,0,0,643,102,1,0,0,
323
+ 0,644,645,5,102,0,0,645,646,5,105,0,0,646,647,5,108,0,0,647,648,
324
+ 5,116,0,0,648,649,5,101,0,0,649,650,5,114,0,0,650,104,1,0,0,0,651,
325
+ 652,5,119,0,0,652,653,5,104,0,0,653,654,5,101,0,0,654,655,5,114,
326
+ 0,0,655,656,5,101,0,0,656,106,1,0,0,0,657,658,5,103,0,0,658,659,
327
+ 5,101,0,0,659,660,5,116,0,0,660,108,1,0,0,0,661,662,5,114,0,0,662,
328
+ 663,5,101,0,0,663,664,5,110,0,0,664,665,5,97,0,0,665,666,5,109,0,
329
+ 0,666,667,5,101,0,0,667,110,1,0,0,0,668,669,5,116,0,0,669,670,5,
330
+ 111,0,0,670,112,1,0,0,0,671,672,5,116,0,0,672,673,5,105,0,0,673,
331
+ 674,5,109,0,0,674,675,5,101,0,0,675,676,5,95,0,0,676,677,5,115,0,
332
+ 0,677,678,5,104,0,0,678,679,5,105,0,0,679,680,5,102,0,0,680,681,
333
+ 5,116,0,0,681,114,1,0,0,0,682,683,5,108,0,0,683,684,5,101,0,0,684,
334
+ 685,5,110,0,0,685,116,1,0,0,0,686,687,5,38,0,0,687,118,1,0,0,0,688,
335
+ 689,7,0,0,0,689,120,1,0,0,0,690,691,5,59,0,0,691,122,1,0,0,0,692,
336
+ 693,2,48,57,0,693,124,1,0,0,0,694,695,2,49,57,0,695,126,1,0,0,0,
337
+ 696,698,3,123,59,0,697,696,1,0,0,0,698,699,1,0,0,0,699,697,1,0,0,
338
+ 0,699,700,1,0,0,0,700,711,1,0,0,0,701,702,3,81,38,0,702,704,3,37,
339
+ 16,0,703,705,3,123,59,0,704,703,1,0,0,0,705,706,1,0,0,0,706,704,
340
+ 1,0,0,0,706,707,1,0,0,0,707,708,1,0,0,0,708,709,3,83,39,0,709,711,
341
+ 1,0,0,0,710,697,1,0,0,0,710,701,1,0,0,0,711,128,1,0,0,0,712,713,
342
+ 3,127,61,0,713,714,5,46,0,0,714,715,3,127,61,0,715,130,1,0,0,0,716,
343
+ 717,3,127,61,0,717,718,5,37,0,0,718,723,1,0,0,0,719,720,3,129,62,
344
+ 0,720,721,5,37,0,0,721,723,1,0,0,0,722,716,1,0,0,0,722,719,1,0,0,
345
+ 0,723,132,1,0,0,0,724,725,5,110,0,0,725,726,5,117,0,0,726,727,5,
346
+ 108,0,0,727,728,5,108,0,0,728,134,1,0,0,0,729,731,5,34,0,0,730,732,
347
+ 8,1,0,0,731,730,1,0,0,0,732,733,1,0,0,0,733,731,1,0,0,0,733,734,
348
+ 1,0,0,0,734,735,1,0,0,0,735,744,5,34,0,0,736,738,5,39,0,0,737,739,
349
+ 8,2,0,0,738,737,1,0,0,0,739,740,1,0,0,0,740,738,1,0,0,0,740,741,
350
+ 1,0,0,0,741,742,1,0,0,0,742,744,5,39,0,0,743,729,1,0,0,0,743,736,
351
+ 1,0,0,0,744,136,1,0,0,0,745,746,5,39,0,0,746,750,5,39,0,0,747,748,
352
+ 5,34,0,0,748,750,5,34,0,0,749,745,1,0,0,0,749,747,1,0,0,0,750,138,
353
+ 1,0,0,0,751,752,3,123,59,0,752,753,3,123,59,0,753,754,3,123,59,0,
354
+ 754,755,3,123,59,0,755,140,1,0,0,0,756,757,5,48,0,0,757,761,3,125,
355
+ 60,0,758,759,5,49,0,0,759,761,7,3,0,0,760,756,1,0,0,0,760,758,1,
356
+ 0,0,0,761,142,1,0,0,0,762,763,5,48,0,0,763,769,3,125,60,0,764,765,
357
+ 7,4,0,0,765,769,3,123,59,0,766,767,5,53,0,0,767,769,7,3,0,0,768,
358
+ 762,1,0,0,0,768,764,1,0,0,0,768,766,1,0,0,0,769,144,1,0,0,0,770,
359
+ 771,7,3,0,0,771,775,3,123,59,0,772,773,5,51,0,0,773,775,7,5,0,0,
360
+ 774,770,1,0,0,0,774,772,1,0,0,0,775,146,1,0,0,0,776,777,7,5,0,0,
361
+ 777,781,3,123,59,0,778,779,5,50,0,0,779,781,7,6,0,0,780,776,1,0,
362
+ 0,0,780,778,1,0,0,0,781,148,1,0,0,0,782,783,7,7,0,0,783,784,3,123,
363
+ 59,0,784,150,1,0,0,0,785,786,7,7,0,0,786,787,3,123,59,0,787,152,
364
+ 1,0,0,0,788,789,3,139,67,0,789,790,5,45,0,0,790,791,3,141,68,0,791,
365
+ 792,5,45,0,0,792,800,3,145,70,0,793,794,5,84,0,0,794,795,3,147,71,
366
+ 0,795,796,3,79,37,0,796,797,3,149,72,0,797,798,3,79,37,0,798,799,
367
+ 3,151,73,0,799,801,1,0,0,0,800,793,1,0,0,0,800,801,1,0,0,0,801,154,
368
+ 1,0,0,0,802,804,3,139,67,0,803,805,5,65,0,0,804,803,1,0,0,0,804,
369
+ 805,1,0,0,0,805,829,1,0,0,0,806,807,3,139,67,0,807,808,5,68,0,0,
370
+ 808,809,7,6,0,0,809,810,3,123,59,0,810,811,3,123,59,0,811,829,1,
371
+ 0,0,0,812,813,3,139,67,0,813,814,5,87,0,0,814,815,3,143,69,0,815,
372
+ 829,1,0,0,0,816,817,3,139,67,0,817,818,5,77,0,0,818,819,3,141,68,
373
+ 0,819,829,1,0,0,0,820,821,3,139,67,0,821,822,5,81,0,0,822,823,7,
374
+ 4,0,0,823,829,1,0,0,0,824,825,3,139,67,0,825,826,5,83,0,0,826,827,
375
+ 7,8,0,0,827,829,1,0,0,0,828,802,1,0,0,0,828,806,1,0,0,0,828,812,
376
+ 1,0,0,0,828,816,1,0,0,0,828,820,1,0,0,0,828,824,1,0,0,0,829,156,
377
+ 1,0,0,0,830,831,5,35,0,0,831,832,3,153,74,0,832,833,5,35,0,0,833,
378
+ 158,1,0,0,0,834,835,5,35,0,0,835,836,3,153,74,0,836,837,5,47,0,0,
379
+ 837,838,3,153,74,0,838,839,5,35,0,0,839,160,1,0,0,0,840,841,5,35,
380
+ 0,0,841,842,3,155,75,0,842,843,5,35,0,0,843,162,1,0,0,0,844,854,
381
+ 7,9,0,0,845,847,7,10,0,0,846,845,1,0,0,0,847,850,1,0,0,0,848,846,
382
+ 1,0,0,0,848,849,1,0,0,0,849,851,1,0,0,0,850,848,1,0,0,0,851,853,
383
+ 7,11,0,0,852,848,1,0,0,0,853,856,1,0,0,0,854,852,1,0,0,0,854,855,
384
+ 1,0,0,0,855,164,1,0,0,0,856,854,1,0,0,0,857,859,7,12,0,0,858,857,
385
+ 1,0,0,0,859,860,1,0,0,0,860,858,1,0,0,0,860,861,1,0,0,0,861,862,
386
+ 1,0,0,0,862,863,6,80,4,0,863,166,1,0,0,0,864,865,3,77,36,0,865,866,
387
+ 1,0,0,0,866,867,6,81,5,0,867,168,1,0,0,0,868,869,3,79,37,0,869,870,
388
+ 1,0,0,0,870,871,6,82,6,0,871,170,1,0,0,0,872,873,3,81,38,0,873,874,
389
+ 1,0,0,0,874,875,6,83,7,0,875,172,1,0,0,0,876,877,3,83,39,0,877,878,
390
+ 1,0,0,0,878,879,6,84,8,0,879,174,1,0,0,0,880,881,3,87,41,0,881,882,
391
+ 1,0,0,0,882,883,6,85,9,0,883,884,6,85,10,0,884,176,1,0,0,0,885,886,
392
+ 5,105,0,0,886,887,5,110,0,0,887,888,5,116,0,0,888,889,5,101,0,0,
393
+ 889,890,5,114,0,0,890,891,5,118,0,0,891,892,5,97,0,0,892,893,5,108,
394
+ 0,0,893,178,1,0,0,0,894,895,5,100,0,0,895,896,5,101,0,0,896,897,
395
+ 5,102,0,0,897,898,5,97,0,0,898,899,5,117,0,0,899,900,5,108,0,0,900,
396
+ 901,5,116,0,0,901,180,1,0,0,0,902,903,3,133,64,0,903,904,1,0,0,0,
397
+ 904,905,6,88,11,0,905,182,1,0,0,0,906,907,3,5,0,0,907,908,1,0,0,
398
+ 0,908,909,6,89,12,0,909,184,1,0,0,0,910,911,5,114,0,0,911,186,1,
399
+ 0,0,0,912,913,5,99,0,0,913,188,1,0,0,0,914,915,5,115,0,0,915,190,
400
+ 1,0,0,0,916,917,5,116,0,0,917,192,1,0,0,0,918,919,5,103,0,0,919,
401
+ 194,1,0,0,0,920,921,5,118,0,0,921,196,1,0,0,0,922,923,5,111,0,0,
402
+ 923,198,1,0,0,0,924,925,5,118,0,0,925,926,5,95,0,0,926,200,1,0,0,
403
+ 0,927,937,7,9,0,0,928,930,7,13,0,0,929,928,1,0,0,0,930,933,1,0,0,
404
+ 0,931,929,1,0,0,0,931,932,1,0,0,0,932,934,1,0,0,0,933,931,1,0,0,
405
+ 0,934,936,7,11,0,0,935,931,1,0,0,0,936,939,1,0,0,0,937,935,1,0,0,
406
+ 0,937,938,1,0,0,0,938,202,1,0,0,0,939,937,1,0,0,0,940,942,7,11,0,
407
+ 0,941,940,1,0,0,0,942,943,1,0,0,0,943,941,1,0,0,0,943,944,1,0,0,
408
+ 0,944,204,1,0,0,0,945,946,3,203,99,0,946,947,7,14,0,0,947,948,3,
409
+ 203,99,0,948,206,1,0,0,0,949,959,7,9,0,0,950,952,7,10,0,0,951,950,
410
+ 1,0,0,0,952,955,1,0,0,0,953,951,1,0,0,0,953,954,1,0,0,0,954,956,
411
+ 1,0,0,0,955,953,1,0,0,0,956,958,7,11,0,0,957,953,1,0,0,0,958,961,
412
+ 1,0,0,0,959,957,1,0,0,0,959,960,1,0,0,0,960,208,1,0,0,0,961,959,
413
+ 1,0,0,0,962,972,7,9,0,0,963,965,7,10,0,0,964,963,1,0,0,0,965,968,
414
+ 1,0,0,0,966,964,1,0,0,0,966,967,1,0,0,0,967,969,1,0,0,0,968,966,
415
+ 1,0,0,0,969,971,7,11,0,0,970,966,1,0,0,0,971,974,1,0,0,0,972,970,
416
+ 1,0,0,0,972,973,1,0,0,0,973,210,1,0,0,0,974,972,1,0,0,0,975,976,
417
+ 3,185,90,0,976,977,3,203,99,0,977,212,1,0,0,0,978,979,3,185,90,0,
418
+ 979,980,3,205,100,0,980,214,1,0,0,0,981,982,3,185,90,0,982,983,7,
419
+ 15,0,0,983,216,1,0,0,0,984,985,3,187,91,0,985,986,3,203,99,0,986,
420
+ 218,1,0,0,0,987,988,3,187,91,0,988,989,3,205,100,0,989,220,1,0,0,
421
+ 0,990,991,3,187,91,0,991,992,7,15,0,0,992,222,1,0,0,0,993,994,3,
422
+ 189,92,0,994,995,3,203,99,0,995,224,1,0,0,0,996,997,3,189,92,0,997,
423
+ 998,3,205,100,0,998,226,1,0,0,0,999,1000,3,189,92,0,1000,1001,7,
424
+ 15,0,0,1001,228,1,0,0,0,1002,1003,3,191,93,0,1003,1004,3,201,98,
425
+ 0,1004,230,1,0,0,0,1005,1006,3,193,94,0,1006,1007,3,201,98,0,1007,
426
+ 232,1,0,0,0,1008,1009,3,195,95,0,1009,1010,3,207,101,0,1010,234,
427
+ 1,0,0,0,1011,1012,3,197,96,0,1012,1013,3,209,102,0,1013,236,1,0,
428
+ 0,0,1014,1015,3,199,97,0,1015,1016,3,201,98,0,1016,238,1,0,0,0,1017,
429
+ 1018,3,127,61,0,1018,1019,1,0,0,0,1019,1020,6,117,13,0,1020,240,
430
+ 1,0,0,0,1021,1022,3,129,62,0,1022,1023,1,0,0,0,1023,1024,6,118,14,
431
+ 0,1024,242,1,0,0,0,1025,1026,3,131,63,0,1026,1027,1,0,0,0,1027,1028,
432
+ 6,119,15,0,1028,244,1,0,0,0,1029,1030,3,135,65,0,1030,1031,1,0,0,
433
+ 0,1031,1032,6,120,16,0,1032,246,1,0,0,0,1033,1034,3,137,66,0,1034,
434
+ 1035,1,0,0,0,1035,1036,6,121,17,0,1036,248,1,0,0,0,1037,1038,3,157,
435
+ 76,0,1038,1039,1,0,0,0,1039,1040,6,122,18,0,1040,250,1,0,0,0,1041,
436
+ 1042,3,159,77,0,1042,1043,1,0,0,0,1043,1044,6,123,19,0,1044,252,
437
+ 1,0,0,0,1045,1046,3,161,78,0,1046,1047,1,0,0,0,1047,1048,6,124,20,
438
+ 0,1048,254,1,0,0,0,1049,1050,3,165,80,0,1050,1051,1,0,0,0,1051,1052,
439
+ 6,125,4,0,1052,256,1,0,0,0,1053,1054,3,5,0,0,1054,1055,1,0,0,0,1055,
440
+ 1056,6,126,12,0,1056,258,1,0,0,0,1057,1058,5,97,0,0,1058,1059,5,
441
+ 110,0,0,1059,1060,5,100,0,0,1060,1061,1,0,0,0,1061,1062,6,127,21,
442
+ 0,1062,260,1,0,0,0,1063,1064,5,111,0,0,1064,1065,5,114,0,0,1065,
443
+ 1066,1,0,0,0,1066,1067,6,128,22,0,1067,262,1,0,0,0,1068,1069,5,120,
444
+ 0,0,1069,1070,5,111,0,0,1070,1071,5,114,0,0,1071,1072,1,0,0,0,1072,
445
+ 1073,6,129,23,0,1073,264,1,0,0,0,1074,1075,5,110,0,0,1075,1076,5,
446
+ 111,0,0,1076,1077,5,116,0,0,1077,1078,1,0,0,0,1078,1079,6,130,24,
447
+ 0,1079,266,1,0,0,0,1080,1081,5,61,0,0,1081,1082,1,0,0,0,1082,1083,
448
+ 6,131,25,0,1083,268,1,0,0,0,1084,1085,5,33,0,0,1085,1086,5,61,0,
449
+ 0,1086,1087,1,0,0,0,1087,1088,6,132,26,0,1088,270,1,0,0,0,1089,1090,
450
+ 5,60,0,0,1090,1091,1,0,0,0,1091,1092,6,133,27,0,1092,272,1,0,0,0,
451
+ 1093,1094,5,60,0,0,1094,1095,5,61,0,0,1095,1096,1,0,0,0,1096,1097,
452
+ 6,134,28,0,1097,274,1,0,0,0,1098,1099,5,62,0,0,1099,1100,1,0,0,0,
453
+ 1100,1101,6,135,29,0,1101,276,1,0,0,0,1102,1103,5,62,0,0,1103,1104,
454
+ 5,61,0,0,1104,1105,1,0,0,0,1105,1106,6,136,30,0,1106,278,1,0,0,0,
455
+ 1107,1108,5,109,0,0,1108,1109,5,97,0,0,1109,1110,5,116,0,0,1110,
456
+ 1111,5,99,0,0,1111,1112,5,104,0,0,1112,1113,1,0,0,0,1113,1114,6,
457
+ 137,31,0,1114,280,1,0,0,0,1115,1116,5,43,0,0,1116,1117,1,0,0,0,1117,
458
+ 1118,6,138,32,0,1118,282,1,0,0,0,1119,1120,5,45,0,0,1120,1121,1,
459
+ 0,0,0,1121,1122,6,139,33,0,1122,284,1,0,0,0,1123,1124,5,42,0,0,1124,
460
+ 1125,1,0,0,0,1125,1126,6,140,34,0,1126,286,1,0,0,0,1127,1128,5,47,
461
+ 0,0,1128,1129,1,0,0,0,1129,1130,6,141,35,0,1130,288,1,0,0,0,1131,
462
+ 1132,5,109,0,0,1132,1133,5,97,0,0,1133,1134,5,120,0,0,1134,1135,
463
+ 5,95,0,0,1135,1136,5,97,0,0,1136,1137,5,103,0,0,1137,1138,5,103,
464
+ 0,0,1138,1139,5,114,0,0,1139,1140,1,0,0,0,1140,1141,6,142,36,0,1141,
465
+ 290,1,0,0,0,1142,1143,5,109,0,0,1143,1144,5,105,0,0,1144,1145,5,
466
+ 110,0,0,1145,1146,5,95,0,0,1146,1147,5,97,0,0,1147,1148,5,103,0,
467
+ 0,1148,1149,5,103,0,0,1149,1150,5,114,0,0,1150,1151,1,0,0,0,1151,
468
+ 1152,6,143,37,0,1152,292,1,0,0,0,1153,1154,5,115,0,0,1154,1155,5,
469
+ 117,0,0,1155,1156,5,109,0,0,1156,1157,1,0,0,0,1157,1158,6,144,38,
470
+ 0,1158,294,1,0,0,0,1159,1160,5,99,0,0,1160,1161,5,111,0,0,1161,1162,
471
+ 5,117,0,0,1162,1163,5,110,0,0,1163,1164,5,116,0,0,1164,1165,1,0,
472
+ 0,0,1165,1166,6,145,39,0,1166,296,1,0,0,0,1167,1168,5,97,0,0,1168,
473
+ 1169,5,118,0,0,1169,1170,5,103,0,0,1170,1171,1,0,0,0,1171,1172,6,
474
+ 146,40,0,1172,298,1,0,0,0,1173,1174,5,109,0,0,1174,1175,5,101,0,
475
+ 0,1175,1176,5,100,0,0,1176,1177,5,105,0,0,1177,1178,5,97,0,0,1178,
476
+ 1179,5,110,0,0,1179,1180,1,0,0,0,1180,1181,6,147,41,0,1181,300,1,
477
+ 0,0,0,1182,1183,5,103,0,0,1183,1184,5,114,0,0,1184,1185,5,111,0,
478
+ 0,1185,1186,5,117,0,0,1186,1187,5,112,0,0,1187,1188,5,32,0,0,1188,
479
+ 1189,5,98,0,0,1189,1190,5,121,0,0,1190,1191,1,0,0,0,1191,1192,6,
480
+ 148,42,0,1192,1193,6,148,0,0,1193,302,1,0,0,0,1194,1195,5,97,0,0,
481
+ 1195,1196,5,98,0,0,1196,1197,5,115,0,0,1197,1198,1,0,0,0,1198,1199,
482
+ 6,149,43,0,1199,304,1,0,0,0,1200,1201,5,105,0,0,1201,1202,5,115,
483
+ 0,0,1202,1203,5,110,0,0,1203,1204,5,117,0,0,1204,1205,5,108,0,0,
484
+ 1205,1206,5,108,0,0,1206,1207,1,0,0,0,1207,1208,6,150,44,0,1208,
485
+ 306,1,0,0,0,1209,1210,5,101,0,0,1210,1211,5,120,0,0,1211,1212,5,
486
+ 112,0,0,1212,1213,1,0,0,0,1213,1214,6,151,45,0,1214,308,1,0,0,0,
487
+ 1215,1216,5,108,0,0,1216,1217,5,110,0,0,1217,1218,1,0,0,0,1218,1219,
488
+ 6,152,46,0,1219,310,1,0,0,0,1220,1221,5,115,0,0,1221,1222,5,113,
489
+ 0,0,1222,1223,5,114,0,0,1223,1224,5,116,0,0,1224,1225,1,0,0,0,1225,
490
+ 1226,6,153,47,0,1226,312,1,0,0,0,1227,1228,5,112,0,0,1228,1229,5,
491
+ 111,0,0,1229,1230,5,119,0,0,1230,1231,5,101,0,0,1231,1232,5,114,
492
+ 0,0,1232,1233,1,0,0,0,1233,1234,6,154,48,0,1234,314,1,0,0,0,1235,
493
+ 1236,5,108,0,0,1236,1237,5,111,0,0,1237,1238,5,103,0,0,1238,1239,
494
+ 1,0,0,0,1239,1240,6,155,49,0,1240,316,1,0,0,0,1241,1242,5,109,0,
495
+ 0,1242,1243,5,97,0,0,1243,1244,5,120,0,0,1244,1245,1,0,0,0,1245,
496
+ 1246,6,156,50,0,1246,318,1,0,0,0,1247,1248,5,109,0,0,1248,1249,5,
497
+ 105,0,0,1249,1250,5,110,0,0,1250,1251,1,0,0,0,1251,1252,6,157,51,
498
+ 0,1252,320,1,0,0,0,1253,1254,5,105,0,0,1254,1255,5,110,0,0,1255,
499
+ 1256,1,0,0,0,1256,1257,6,158,1,0,1257,1258,6,158,52,0,1258,322,1,
500
+ 0,0,0,1259,1260,5,44,0,0,1260,1261,1,0,0,0,1261,1262,6,159,5,0,1262,
501
+ 324,1,0,0,0,1263,1264,5,58,0,0,1264,1265,1,0,0,0,1265,1266,6,160,
502
+ 6,0,1266,326,1,0,0,0,1267,1268,5,40,0,0,1268,1269,1,0,0,0,1269,1270,
503
+ 6,161,7,0,1270,328,1,0,0,0,1271,1272,5,41,0,0,1272,1273,1,0,0,0,
504
+ 1273,1274,6,162,8,0,1274,330,1,0,0,0,1275,1276,5,123,0,0,1276,1277,
505
+ 1,0,0,0,1277,1278,6,163,53,0,1278,1279,6,163,2,0,1279,332,1,0,0,
506
+ 0,1280,1281,5,125,0,0,1281,1282,1,0,0,0,1282,1283,6,164,10,0,1283,
507
+ 334,1,0,0,0,1284,1285,5,91,0,0,1285,1286,1,0,0,0,1286,1287,6,165,
508
+ 54,0,1287,1288,6,165,3,0,1288,336,1,0,0,0,1289,1290,5,93,0,0,1290,
509
+ 1291,1,0,0,0,1291,1292,6,166,55,0,1292,1293,6,166,9,0,1293,338,1,
510
+ 0,0,0,1294,1295,5,105,0,0,1295,1296,5,102,0,0,1296,1297,1,0,0,0,
511
+ 1297,1298,6,167,56,0,1298,340,1,0,0,0,1299,1300,5,101,0,0,1300,1301,
512
+ 5,110,0,0,1301,1302,5,100,0,0,1302,1303,5,105,0,0,1303,1304,5,102,
513
+ 0,0,1304,1305,1,0,0,0,1305,1306,6,168,57,0,1306,342,1,0,0,0,1307,
514
+ 1308,5,116,0,0,1308,1309,5,104,0,0,1309,1310,5,101,0,0,1310,1311,
515
+ 5,110,0,0,1311,1312,1,0,0,0,1312,1313,6,169,58,0,1313,344,1,0,0,
516
+ 0,1314,1315,5,101,0,0,1315,1316,5,108,0,0,1316,1317,5,115,0,0,1317,
517
+ 1318,5,101,0,0,1318,1319,1,0,0,0,1319,1320,6,170,59,0,1320,346,1,
518
+ 0,0,0,1321,1322,5,110,0,0,1322,1323,5,118,0,0,1323,1324,5,108,0,
519
+ 0,1324,1325,1,0,0,0,1325,1326,6,171,60,0,1326,348,1,0,0,0,1327,1328,
520
+ 5,102,0,0,1328,1329,5,105,0,0,1329,1330,5,108,0,0,1330,1331,5,116,
521
+ 0,0,1331,1332,5,101,0,0,1332,1333,5,114,0,0,1333,1334,1,0,0,0,1334,
522
+ 1335,6,172,61,0,1335,350,1,0,0,0,1336,1337,5,119,0,0,1337,1338,5,
523
+ 104,0,0,1338,1339,5,101,0,0,1339,1340,5,114,0,0,1340,1341,5,101,
524
+ 0,0,1341,1342,1,0,0,0,1342,1343,6,173,62,0,1343,352,1,0,0,0,1344,
525
+ 1345,5,103,0,0,1345,1346,5,101,0,0,1346,1347,5,116,0,0,1347,1348,
526
+ 1,0,0,0,1348,1349,6,174,63,0,1349,354,1,0,0,0,1350,1351,5,114,0,
527
+ 0,1351,1352,5,101,0,0,1352,1353,5,110,0,0,1353,1354,5,97,0,0,1354,
528
+ 1355,5,109,0,0,1355,1356,5,101,0,0,1356,1357,1,0,0,0,1357,1358,6,
529
+ 175,64,0,1358,356,1,0,0,0,1359,1360,5,116,0,0,1360,1361,5,111,0,
530
+ 0,1361,1362,1,0,0,0,1362,1363,6,176,65,0,1363,358,1,0,0,0,1364,1365,
531
+ 5,116,0,0,1365,1366,5,105,0,0,1366,1367,5,109,0,0,1367,1368,5,101,
532
+ 0,0,1368,1369,5,95,0,0,1369,1370,5,115,0,0,1370,1371,5,104,0,0,1371,
533
+ 1372,5,105,0,0,1372,1373,5,102,0,0,1373,1374,5,116,0,0,1374,1375,
534
+ 1,0,0,0,1375,1376,6,177,66,0,1376,360,1,0,0,0,1377,1378,5,108,0,
535
+ 0,1378,1379,5,101,0,0,1379,1380,5,110,0,0,1380,1381,1,0,0,0,1381,
536
+ 1382,6,178,67,0,1382,362,1,0,0,0,1383,1384,5,38,0,0,1384,1385,1,
537
+ 0,0,0,1385,1386,6,179,68,0,1386,364,1,0,0,0,1387,1388,5,114,0,0,
538
+ 1388,366,1,0,0,0,1389,1390,5,99,0,0,1390,368,1,0,0,0,1391,1392,5,
539
+ 115,0,0,1392,370,1,0,0,0,1393,1394,3,119,57,0,1394,1395,1,0,0,0,
540
+ 1395,1396,6,183,69,0,1396,372,1,0,0,0,1397,1398,3,127,61,0,1398,
541
+ 1399,1,0,0,0,1399,1400,6,184,13,0,1400,374,1,0,0,0,1401,1402,3,129,
542
+ 62,0,1402,1403,1,0,0,0,1403,1404,6,185,14,0,1404,376,1,0,0,0,1405,
543
+ 1406,3,131,63,0,1406,1407,1,0,0,0,1407,1408,6,186,15,0,1408,378,
544
+ 1,0,0,0,1409,1410,3,135,65,0,1410,1411,1,0,0,0,1411,1412,6,187,16,
545
+ 0,1412,380,1,0,0,0,1413,1414,3,137,66,0,1414,1415,1,0,0,0,1415,1416,
546
+ 6,188,17,0,1416,382,1,0,0,0,1417,1418,5,35,0,0,1418,1419,3,153,74,
547
+ 0,1419,1420,5,35,0,0,1420,1421,1,0,0,0,1421,1422,6,189,18,0,1422,
548
+ 384,1,0,0,0,1423,1424,5,35,0,0,1424,1425,3,153,74,0,1425,1426,5,
549
+ 47,0,0,1426,1427,3,153,74,0,1427,1428,5,35,0,0,1428,1429,1,0,0,0,
550
+ 1429,1430,6,190,19,0,1430,386,1,0,0,0,1431,1432,5,35,0,0,1432,1433,
551
+ 3,155,75,0,1433,1434,5,35,0,0,1434,1435,1,0,0,0,1435,1436,6,191,
552
+ 20,0,1436,388,1,0,0,0,1437,1452,7,9,0,0,1438,1440,7,16,0,0,1439,
553
+ 1438,1,0,0,0,1440,1443,1,0,0,0,1441,1439,1,0,0,0,1441,1442,1,0,0,
554
+ 0,1442,1444,1,0,0,0,1443,1441,1,0,0,0,1444,1448,7,17,0,0,1445,1447,
555
+ 7,13,0,0,1446,1445,1,0,0,0,1447,1450,1,0,0,0,1448,1446,1,0,0,0,1448,
556
+ 1449,1,0,0,0,1449,1451,1,0,0,0,1450,1448,1,0,0,0,1451,1453,7,11,
557
+ 0,0,1452,1441,1,0,0,0,1453,1454,1,0,0,0,1454,1452,1,0,0,0,1454,1455,
558
+ 1,0,0,0,1455,390,1,0,0,0,1456,1457,3,163,79,0,1457,392,1,0,0,0,1458,
559
+ 1460,7,12,0,0,1459,1458,1,0,0,0,1460,1461,1,0,0,0,1461,1459,1,0,
560
+ 0,0,1461,1462,1,0,0,0,1462,1463,1,0,0,0,1463,1464,6,194,4,0,1464,
561
+ 394,1,0,0,0,1465,1466,5,41,0,0,1466,1467,1,0,0,0,1467,1468,6,195,
562
+ 8,0,1468,1469,6,195,9,0,1469,396,1,0,0,0,1470,1471,5,44,0,0,1471,
563
+ 1472,1,0,0,0,1472,1473,6,196,5,0,1473,398,1,0,0,0,1474,1475,5,114,
564
+ 0,0,1475,1476,1,0,0,0,1476,1477,6,197,70,0,1477,400,1,0,0,0,1478,
565
+ 1479,5,99,0,0,1479,1480,1,0,0,0,1480,1481,6,198,71,0,1481,402,1,
566
+ 0,0,0,1482,1483,5,115,0,0,1483,1484,1,0,0,0,1484,1485,6,199,72,0,
567
+ 1485,404,1,0,0,0,1486,1487,3,163,79,0,1487,1488,1,0,0,0,1488,1489,
568
+ 6,200,73,0,1489,406,1,0,0,0,1490,1492,7,12,0,0,1491,1490,1,0,0,0,
569
+ 1492,1493,1,0,0,0,1493,1491,1,0,0,0,1493,1494,1,0,0,0,1494,1495,
570
+ 1,0,0,0,1495,1496,6,201,4,0,1496,408,1,0,0,0,1497,1498,3,77,36,0,
571
+ 1498,1499,1,0,0,0,1499,1500,6,202,5,0,1500,410,1,0,0,0,1501,1502,
572
+ 3,85,40,0,1502,1503,1,0,0,0,1503,1504,6,203,53,0,1504,412,1,0,0,
573
+ 0,1505,1506,3,87,41,0,1506,1507,1,0,0,0,1507,1508,6,204,9,0,1508,
574
+ 1509,6,204,10,0,1509,414,1,0,0,0,1510,1511,3,89,42,0,1511,1512,1,
575
+ 0,0,0,1512,1513,6,205,54,0,1513,416,1,0,0,0,1514,1515,3,91,43,0,
576
+ 1515,1516,1,0,0,0,1516,1517,6,206,55,0,1517,418,1,0,0,0,1518,1519,
577
+ 3,389,192,0,1519,1520,1,0,0,0,1520,1521,6,207,74,0,1521,420,1,0,
578
+ 0,0,1522,1523,3,127,61,0,1523,1524,1,0,0,0,1524,1525,6,208,13,0,
579
+ 1525,422,1,0,0,0,1526,1527,3,129,62,0,1527,1528,1,0,0,0,1528,1529,
580
+ 6,209,14,0,1529,424,1,0,0,0,1530,1531,3,131,63,0,1531,1532,1,0,0,
581
+ 0,1532,1533,6,210,15,0,1533,426,1,0,0,0,1534,1535,3,135,65,0,1535,
582
+ 1536,1,0,0,0,1536,1537,6,211,16,0,1537,428,1,0,0,0,1538,1539,3,137,
583
+ 66,0,1539,1540,1,0,0,0,1540,1541,6,212,17,0,1541,430,1,0,0,0,1542,
584
+ 1543,3,157,76,0,1543,1544,1,0,0,0,1544,1545,6,213,18,0,1545,432,
585
+ 1,0,0,0,1546,1547,3,159,77,0,1547,1548,1,0,0,0,1548,1549,6,214,19,
586
+ 0,1549,434,1,0,0,0,1550,1551,3,161,78,0,1551,1552,1,0,0,0,1552,1553,
587
+ 6,215,20,0,1553,436,1,0,0,0,1554,1555,3,165,80,0,1555,1556,1,0,0,
588
+ 0,1556,1557,6,216,4,0,1557,438,1,0,0,0,36,0,1,2,3,4,448,699,706,
589
+ 710,722,733,740,743,749,760,768,774,780,800,804,828,848,854,860,
590
+ 931,937,943,953,959,966,972,1441,1448,1454,1461,1493,75,5,3,0,5,
591
+ 4,0,5,1,0,5,2,0,0,2,0,7,37,0,7,38,0,7,39,0,7,40,0,4,0,0,7,42,0,7,
592
+ 63,0,7,1,0,7,60,0,7,61,0,7,62,0,7,64,0,7,65,0,7,66,0,7,67,0,7,68,
593
+ 0,7,2,0,7,3,0,7,4,0,7,5,0,7,8,0,7,9,0,7,10,0,7,11,0,7,12,0,7,13,
594
+ 0,7,14,0,7,16,0,7,17,0,7,18,0,7,19,0,7,20,0,7,21,0,7,22,0,7,23,0,
595
+ 7,24,0,7,25,0,7,26,0,7,27,0,7,28,0,7,29,0,7,30,0,7,31,0,7,32,0,7,
596
+ 33,0,7,34,0,7,35,0,7,36,0,7,41,0,7,43,0,7,44,0,7,45,0,7,46,0,7,47,
597
+ 0,7,48,0,7,49,0,7,50,0,7,51,0,7,52,0,7,53,0,7,54,0,7,55,0,7,56,0,
598
+ 7,57,0,7,58,0,7,88,0,7,89,0,7,90,0,7,92,0,7,91,0
599
+ ]
600
+
601
+ class dpm_xlLexer(Lexer):
602
+
603
+ atn = ATNDeserializer().deserialize(serializedATN())
604
+
605
+ decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]
606
+
607
+ SELECTION_MODE = 1
608
+ CLAUSE_MODE = 2
609
+ GROUPING_CLAUSE_MODE = 3
610
+ SET_OPERAND_MODE = 4
611
+
612
+ BOOLEAN_LITERAL = 1
613
+ AND = 2
614
+ OR = 3
615
+ XOR = 4
616
+ NOT = 5
617
+ ASSIGN = 6
618
+ PERSISTENT_ASSIGN = 7
619
+ EQ = 8
620
+ NE = 9
621
+ LT = 10
622
+ LE = 11
623
+ GT = 12
624
+ GE = 13
625
+ MATCH = 14
626
+ WITH = 15
627
+ PLUS = 16
628
+ MINUS = 17
629
+ MULT = 18
630
+ DIV = 19
631
+ MAX_AGGR = 20
632
+ MIN_AGGR = 21
633
+ SUM = 22
634
+ COUNT = 23
635
+ AVG = 24
636
+ MEDIAN = 25
637
+ GROUP_BY = 26
638
+ ABS = 27
639
+ ISNULL = 28
640
+ EXP = 29
641
+ LN = 30
642
+ SQRT = 31
643
+ POWER = 32
644
+ LOG = 33
645
+ MAX = 34
646
+ MIN = 35
647
+ IN = 36
648
+ COMMA = 37
649
+ COLON = 38
650
+ LPAREN = 39
651
+ RPAREN = 40
652
+ CURLY_BRACKET_LEFT = 41
653
+ CURLY_BRACKET_RIGHT = 42
654
+ SQUARE_BRACKET_LEFT = 43
655
+ SQUARE_BRACKET_RIGHT = 44
656
+ IF = 45
657
+ ENDIF = 46
658
+ THEN = 47
659
+ ELSE = 48
660
+ NVL = 49
661
+ FILTER = 50
662
+ WHERE = 51
663
+ GET = 52
664
+ RENAME = 53
665
+ TO = 54
666
+ TIME_SHIFT = 55
667
+ LEN = 56
668
+ CONCAT = 57
669
+ TIME_PERIOD = 58
670
+ EOL = 59
671
+ INTEGER_LITERAL = 60
672
+ DECIMAL_LITERAL = 61
673
+ PERCENT_LITERAL = 62
674
+ NULL_LITERAL = 63
675
+ STRING_LITERAL = 64
676
+ EMPTY_LITERAL = 65
677
+ DATE_LITERAL = 66
678
+ TIME_INTERVAL_LITERAL = 67
679
+ TIME_PERIOD_LITERAL = 68
680
+ CODE = 69
681
+ WS = 70
682
+ INTERVAL = 71
683
+ DEFAULT = 72
684
+ ROW = 73
685
+ ROW_RANGE = 74
686
+ ROW_ALL = 75
687
+ COL = 76
688
+ COL_RANGE = 77
689
+ COL_ALL = 78
690
+ SHEET = 79
691
+ SHEET_RANGE = 80
692
+ SHEET_ALL = 81
693
+ TABLE_REFERENCE = 82
694
+ TABLE_GROUP_REFERENCE = 83
695
+ VAR_REFERENCE = 84
696
+ OPERATION_REFERENCE = 85
697
+ PRECONDITION_ELEMENT = 86
698
+ SELECTION_MODE_WS = 87
699
+ ROW_COMPONENT = 88
700
+ COL_COMPONENT = 89
701
+ SHEET_COMPONENT = 90
702
+ ITEM_SIGNATURE = 91
703
+ PROPERTY_CODE = 92
704
+ CLAUSE_WS = 93
705
+ GROUPING_WS = 94
706
+ SET_OPERAND_MODE_WS = 95
707
+
708
+ channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ]
709
+
710
+ modeNames = [ "DEFAULT_MODE", "SELECTION_MODE", "CLAUSE_MODE", "GROUPING_CLAUSE_MODE",
711
+ "SET_OPERAND_MODE" ]
712
+
713
+ literalNames = [ "<INVALID>",
714
+ "':='", "'<-'", "'with'", "'group by'", "'in'", "'{'", "'['",
715
+ "';'", "'null'", "'interval'", "'default'" ]
716
+
717
+ symbolicNames = [ "<INVALID>",
718
+ "BOOLEAN_LITERAL", "AND", "OR", "XOR", "NOT", "ASSIGN", "PERSISTENT_ASSIGN",
719
+ "EQ", "NE", "LT", "LE", "GT", "GE", "MATCH", "WITH", "PLUS",
720
+ "MINUS", "MULT", "DIV", "MAX_AGGR", "MIN_AGGR", "SUM", "COUNT",
721
+ "AVG", "MEDIAN", "GROUP_BY", "ABS", "ISNULL", "EXP", "LN", "SQRT",
722
+ "POWER", "LOG", "MAX", "MIN", "IN", "COMMA", "COLON", "LPAREN",
723
+ "RPAREN", "CURLY_BRACKET_LEFT", "CURLY_BRACKET_RIGHT", "SQUARE_BRACKET_LEFT",
724
+ "SQUARE_BRACKET_RIGHT", "IF", "ENDIF", "THEN", "ELSE", "NVL",
725
+ "FILTER", "WHERE", "GET", "RENAME", "TO", "TIME_SHIFT", "LEN",
726
+ "CONCAT", "TIME_PERIOD", "EOL", "INTEGER_LITERAL", "DECIMAL_LITERAL",
727
+ "PERCENT_LITERAL", "NULL_LITERAL", "STRING_LITERAL", "EMPTY_LITERAL",
728
+ "DATE_LITERAL", "TIME_INTERVAL_LITERAL", "TIME_PERIOD_LITERAL",
729
+ "CODE", "WS", "INTERVAL", "DEFAULT", "ROW", "ROW_RANGE", "ROW_ALL",
730
+ "COL", "COL_RANGE", "COL_ALL", "SHEET", "SHEET_RANGE", "SHEET_ALL",
731
+ "TABLE_REFERENCE", "TABLE_GROUP_REFERENCE", "VAR_REFERENCE",
732
+ "OPERATION_REFERENCE", "PRECONDITION_ELEMENT", "SELECTION_MODE_WS",
733
+ "ROW_COMPONENT", "COL_COMPONENT", "SHEET_COMPONENT", "ITEM_SIGNATURE",
734
+ "PROPERTY_CODE", "CLAUSE_WS", "GROUPING_WS", "SET_OPERAND_MODE_WS" ]
735
+
736
+ ruleNames = [ "BOOLEAN_LITERAL", "AND", "OR", "XOR", "NOT", "ASSIGN",
737
+ "PERSISTENT_ASSIGN", "EQ", "NE", "LT", "LE", "GT", "GE",
738
+ "MATCH", "WITH", "PLUS", "MINUS", "MULT", "DIV", "MAX_AGGR",
739
+ "MIN_AGGR", "SUM", "COUNT", "AVG", "MEDIAN", "GROUP_BY",
740
+ "ABS", "ISNULL", "EXP", "LN", "SQRT", "POWER", "LOG",
741
+ "MAX", "MIN", "IN", "COMMA", "COLON", "LPAREN", "RPAREN",
742
+ "CURLY_BRACKET_LEFT", "CURLY_BRACKET_RIGHT", "SQUARE_BRACKET_LEFT",
743
+ "SQUARE_BRACKET_RIGHT", "IF", "ENDIF", "THEN", "ELSE",
744
+ "NVL", "FILTER", "WHERE", "GET", "RENAME", "TO", "TIME_SHIFT",
745
+ "LEN", "CONCAT", "TIME_PERIOD", "EOL", "DIGITS0_9", "DIGITS1_9",
746
+ "INTEGER_LITERAL", "DECIMAL_LITERAL", "PERCENT_LITERAL",
747
+ "NULL_LITERAL", "STRING_LITERAL", "EMPTY_LITERAL", "YEAR",
748
+ "MONTH", "WEEK", "DAY", "HOURS", "MINUTES", "SECONDS",
749
+ "DATE_FORMAT", "TIME_PERIOD_FORMAT", "DATE_LITERAL", "TIME_INTERVAL_LITERAL",
750
+ "TIME_PERIOD_LITERAL", "CODE", "WS", "SELECTION_MODE_COMMA",
751
+ "SELECTION_MODE_COLON", "SELECTION_MODE_LPAREN", "SELECTION_MODE_RPAREN",
752
+ "SELECTION_MODE_CURLY_BRACKET_RIGHT", "INTERVAL", "DEFAULT",
753
+ "SELECTION_MODE_NULL_LITERAL", "SELECTION_MODE_BOOLEAN_LITERAL",
754
+ "ROW_PREFIX", "COL_PREFIX", "SHEET_PREFIX", "TABLE_PREFIX",
755
+ "TABLE_GROUP_PREFIX", "VAR_REF_PREFIX", "OPERATION_REF_PREFIX",
756
+ "PRECONDITION_PREFIX", "TABLE_CODE", "CELL_COMPONENT_CODE",
757
+ "CELL_COMPONENT_RANGE", "VAR_CODE", "OPERATION_CODE",
758
+ "ROW", "ROW_RANGE", "ROW_ALL", "COL", "COL_RANGE", "COL_ALL",
759
+ "SHEET", "SHEET_RANGE", "SHEET_ALL", "TABLE_REFERENCE",
760
+ "TABLE_GROUP_REFERENCE", "VAR_REFERENCE", "OPERATION_REFERENCE",
761
+ "PRECONDITION_ELEMENT", "SELECTION_MODE_INTEGER_LITERAL",
762
+ "SELECTION_MODE_DECIMAL_LITERAL", "SELECTION_MODE_PERCENT_LITERAL",
763
+ "SELECTION_MODE_STRING_LITERAL", "SELECTION_MODE_EMPTY_LITERAL",
764
+ "SELECTION_MODE_DATE_LITERAL", "SELECTION_MODE_TIME_INTERVAL_LITERAL",
765
+ "SELECTION_MODE_TIME_PERIOD_LITERAL", "SELECTION_MODE_WS",
766
+ "CLAUSE_BOOLEAN_LITERAL", "CLAUSE_AND", "CLAUSE_OR", "CLAUSE_XOR",
767
+ "CLAUSE_NOT", "CLAUSE_EQ", "CLAUSE_NE", "CLAUSE_LT", "CLAUSE_LE",
768
+ "CLAUSE_GT", "CLAUSE_GE", "CLAUSE_MATCH", "CLAUSE_PLUS",
769
+ "CLAUSE_MINUS", "CLAUSE_MULT", "CLAUSE_DIV", "CLAUSE_MAX_AGGR",
770
+ "CLAUSE_MIN_AGGR", "CLAUSE_SUM", "CLAUSE_COUNT", "CLAUSE_AVG",
771
+ "CLAUSE_MEDIAN", "CLAUSE_GROUP_BY", "CLAUSE_ABS", "CLAUSE_ISNULL",
772
+ "CLAUSE_EXP", "CLAUSE_LN", "CLAUSE_SQRT", "CLAUSE_POWER",
773
+ "CLAUSE_LOG", "CLAUSE_MAX", "CLAUSE_MIN", "CLAUSE_IN",
774
+ "CLAUSE_COMMA", "CLAUSE_COLON", "CLAUSE_LPAREN", "CLAUSE_RPAREN",
775
+ "CLAUSE_CURLY_BRACKET_LEFT", "CLAUSE_CURLY_BRACKET_RIGHT",
776
+ "CLAUSE_SQUARE_BRACKET_LEFT", "CLAUSE_SQUARE_BRACKET_RIGHT",
777
+ "CLAUSE_IF", "CLAUSE_ENDIF", "CLAUSE_THEN", "CLAUSE_ELSE",
778
+ "CLAUSE_NVL", "CLAUSE_FILTER", "CLAUSE_WHERE", "CLAUSE_GET",
779
+ "CLAUSE_RENAME", "CLAUSE_TO", "CLAUSE_TIME_SHIFT", "CLAUSE_LEN",
780
+ "CLAUSE_CONCAT", "ROW_COMPONENT", "COL_COMPONENT", "SHEET_COMPONENT",
781
+ "CLAUSE_TIME_PERIOD", "CLAUSE_INTEGER_LITERAL", "CLAUSE_DECIMAL_LITERAL",
782
+ "CLAUSE_PERCENT_LITERAL", "CLAUSE_STRING_LITERAL", "CLAUSE_EMPTY_LITERAL",
783
+ "CLAUSE_DATE_LITERAL", "CLAUSE_TIME_INTERVAL_LITERAL",
784
+ "CLAUSE_TIME_PERIOD_LITERAL", "ITEM_SIGNATURE", "PROPERTY_CODE",
785
+ "CLAUSE_WS", "GROUPING_RPAREN", "GROUPING_COMMA", "GROUPING_ROW_COMPONENT",
786
+ "GROUPING_COL_COMPONENT", "GROUPING_SHEET_COMPONENT",
787
+ "GROUPING_PROPERTY_CODE", "GROUPING_WS", "SET_OPERAND_MODE_COMMA",
788
+ "SET_OPERAND_MODE_CURLY_BRACKET_LEFT", "SET_OPERAND_MODE_CURLY_BRACKET_RIGHT",
789
+ "SET_OPERAND_MODE_SQUARE_BRACKET_LEFT", "SET_OPERAND_MODE_SQUARE_BRACKET_RIGHT",
790
+ "SET_OPERAND_MODE_ITEM_SIGNATURE", "SET_OPERAND_MODE_INTEGER_LITERAL",
791
+ "SET_OPERAND_MODE_DECIMAL_LITERAL", "SET_OPERAND_MODE_PERCENT_LITERAL",
792
+ "SET_OPERAND_MODE_STRING_LITERAL", "SET_OPERAND_MODE_EMPTY_LITERAL",
793
+ "SET_OPERAND_MODE_DATE_LITERAL", "SET_OPERAND_MODE_TIME_INTERVAL_LITERAL",
794
+ "SET_OPERAND_MODE_TIME_PERIOD_LITERAL", "SET_OPERAND_MODE_WS" ]
795
+
796
+ grammarFileName = "dpm_xlLexer.g4"
797
+
798
+ def __init__(self, input=None, output:TextIO = sys.stdout):
799
+ super().__init__(input, output)
800
+ self._interp = LexerATNSimulator(self, self.atn, self.decisionsToDFA, PredictionContextCache())
801
+ self._actions = None
802
+ self._predicates = None
803
+
804
+