graphql 1.8.0.pre4 → 1.8.0.pre5

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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/lib/graphql/base_type.rb +10 -27
  3. data/lib/graphql/compatibility/query_parser_specification.rb +7 -0
  4. data/lib/graphql/field.rb +3 -3
  5. data/lib/graphql/internal_representation/node.rb +32 -13
  6. data/lib/graphql/internal_representation/visit.rb +3 -6
  7. data/lib/graphql/language.rb +1 -0
  8. data/lib/graphql/language/block_string.rb +47 -0
  9. data/lib/graphql/language/lexer.rb +129 -68
  10. data/lib/graphql/language/lexer.rl +13 -4
  11. data/lib/graphql/language/nodes.rb +6 -3
  12. data/lib/graphql/language/printer.rb +1 -1
  13. data/lib/graphql/language/token.rb +1 -1
  14. data/lib/graphql/query.rb +1 -1
  15. data/lib/graphql/relay.rb +1 -0
  16. data/lib/graphql/relay/connection_type.rb +5 -3
  17. data/lib/graphql/relay/edge_type.rb +2 -1
  18. data/lib/graphql/relay/type_extensions.rb +30 -0
  19. data/lib/graphql/schema.rb +25 -0
  20. data/lib/graphql/schema/build_from_definition.rb +2 -0
  21. data/lib/graphql/schema/field.rb +3 -0
  22. data/lib/graphql/schema/finder.rb +153 -0
  23. data/lib/graphql/schema/member.rb +3 -1
  24. data/lib/graphql/schema/printer.rb +1 -1
  25. data/lib/graphql/static_validation/rules/fields_will_merge.rb +15 -8
  26. data/lib/graphql/static_validation/rules/variables_are_used_and_defined.rb +11 -1
  27. data/lib/graphql/tracing/data_dog_tracing.rb +13 -9
  28. data/lib/graphql/upgrader/member.rb +19 -8
  29. data/lib/graphql/version.rb +1 -1
  30. data/spec/graphql/backtrace_spec.rb +10 -0
  31. data/spec/graphql/directive_spec.rb +3 -1
  32. data/spec/graphql/language/block_string_spec.rb +70 -0
  33. data/spec/graphql/language/lexer_spec.rb +9 -0
  34. data/spec/graphql/query_spec.rb +1 -1
  35. data/spec/graphql/schema/field_spec.rb +8 -0
  36. data/spec/graphql/schema/finder_spec.rb +135 -0
  37. data/spec/graphql/schema/printer_spec.rb +48 -5
  38. data/spec/graphql/schema_spec.rb +7 -0
  39. data/spec/graphql/upgrader/member_spec.rb +25 -0
  40. metadata +23 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ef7a7ef6e77dbf150ac668f99f293298e3764e9d
4
- data.tar.gz: 702a3a337b3c53a813bd699637a93c985f7f5bf0
3
+ metadata.gz: f08af6fe85ac8b3665acc0a2b8a38ab165dd418a
4
+ data.tar.gz: f4be355d3ba05a0566ff508d4f00621acafa0f77
5
5
  SHA512:
6
- metadata.gz: b9e377b6787dda4fe97be9687545adb6f0fd9625df8f3233ee069ff70d96e660b3768bb58ef5b7ddbb330df3322dbe1aba23b13af53cd661dc69fe8e5d61a9e4
7
- data.tar.gz: 628e7b0c786292b2009ce08b799c8c9db340a289ca3d3ac59b1cc9f454639cd321a327cefb9e77954311a1bd5994ffdd4ed5bd5f0715bbd38b5118345b861dfa
6
+ metadata.gz: 0a6b65f5db04ad1c127e3328d0ab5dce93430cfb20f6be9cf08e95e9cfbf681d653a1d1277a81347dbbf04d95541010956d7711f14a865bc9e00bad16db62a78
7
+ data.tar.gz: e5f307b33f3136c71fcd538a9e5e957271bf1a0aaf622287e0e991a5e1a0d3dbc23621df0307332ed3af4840e80eee8b5b3f2ee94deec3f274dadfe3c1eadb72
@@ -1,9 +1,13 @@
1
1
  # frozen_string_literal: true
2
+ require "graphql/relay/type_extensions"
3
+
2
4
  module GraphQL
3
5
  # The parent for all type classes.
4
6
  class BaseType
5
7
  include GraphQL::Define::NonNullWithBang
6
8
  include GraphQL::Define::InstanceDefinable
9
+ include GraphQL::Relay::TypeExtensions
10
+
7
11
  accepts_definitions :name, :description,
8
12
  :introspection,
9
13
  :default_scalar,
@@ -60,12 +64,9 @@ module GraphQL
60
64
 
61
65
  # @param other [GraphQL::BaseType] compare to this object
62
66
  # @return [Boolean] are these types equivalent? (incl. non-null, list)
67
+ # @see {ModifiesAnotherType#==} for override on List & NonNull types
63
68
  def ==(other)
64
- if other.is_a?(GraphQL::BaseType)
65
- self.to_s == other.to_s
66
- else
67
- super
68
- end
69
+ other.is_a?(GraphQL::BaseType) && self.name == other.name
69
70
  end
70
71
 
71
72
  # If this type is modifying an underlying type,
@@ -88,6 +89,10 @@ module GraphQL
88
89
  def unwrap
89
90
  self.of_type.unwrap
90
91
  end
92
+
93
+ def ==(other)
94
+ other.is_a?(ModifiesAnotherType) && other.of_type == of_type
95
+ end
91
96
  end
92
97
 
93
98
  # Find out which possible type to use for `value`.
@@ -184,28 +189,6 @@ module GraphQL
184
189
  end
185
190
  end
186
191
 
187
- # @return [GraphQL::ObjectType] The default connection type for this object type
188
- def connection_type
189
- @connection_type ||= define_connection
190
- end
191
-
192
- # Define a custom connection type for this object type
193
- # @return [GraphQL::ObjectType]
194
- def define_connection(**kwargs, &block)
195
- GraphQL::Relay::ConnectionType.create_type(self, **kwargs, &block)
196
- end
197
-
198
- # @return [GraphQL::ObjectType] The default edge type for this object type
199
- def edge_type
200
- @edge_type ||= define_edge
201
- end
202
-
203
- # Define a custom edge type for this object type
204
- # @return [GraphQL::ObjectType]
205
- def define_edge(**kwargs, &block)
206
- GraphQL::Relay::EdgeType.create_type(self, **kwargs, &block)
207
- end
208
-
209
192
  # Return a GraphQL string for the type definition
210
193
  # @param schema [GraphQL::Schema]
211
194
  # @param printer [GraphQL::Schema::Printer]
@@ -67,6 +67,10 @@ module GraphQL
67
67
  nullValue: null
68
68
  nullValueInObject: {a: null, b: "b"}
69
69
  nullValueInArray: ["a", null, "b"]
70
+ blockString: """
71
+ Hello,
72
+ World
73
+ """
70
74
  )
71
75
  }
72
76
  |
@@ -100,6 +104,9 @@ module GraphQL
100
104
  assert_equal 'a', values[0]
101
105
  assert_instance_of GraphQL::Language::Nodes::NullValue, values[1]
102
106
  assert_equal 'b', values[2]
107
+
108
+ block_str_value = inputs[12].value
109
+ assert_equal "Hello,\n World", block_str_value
103
110
  end
104
111
 
105
112
  def test_it_doesnt_parse_nonsense_variables
data/lib/graphql/field.rb CHANGED
@@ -102,7 +102,7 @@ module GraphQL
102
102
  # @example Calculating the complexity of a list field
103
103
  # field :items, types[ItemType] do
104
104
  # argument :limit, !types.Int
105
- # # Mulitply the child complexity by the possible items on the list
105
+ # # Multiply the child complexity by the possible items on the list
106
106
  # complexity ->(ctx, args, child_complexity) { child_complexity * args[:limit] }
107
107
  # end
108
108
  #
@@ -289,8 +289,8 @@ module GraphQL
289
289
  "<Field name:#{name || "not-named"} desc:#{description} resolve:#{resolve_proc}>"
290
290
  end
291
291
 
292
- # If {#resolve} returned and object which should be handled lazily,
293
- # this method will be called later force the object to return its value.
292
+ # If {#resolve} returned an object which should be handled lazily,
293
+ # this method will be called later to force the object to return its value.
294
294
  # @param obj [Object] The {#resolve}-provided object, registered with {Schema#lazy_resolve}
295
295
  # @param args [GraphQL::Query::Arguments] Arguments to this field
296
296
  # @param ctx [GraphQL::Query::Context] Context for this field
@@ -4,6 +4,19 @@ module GraphQL
4
4
  class Node
5
5
  # @api private
6
6
  DEFAULT_TYPED_CHILDREN = Proc.new { |h, k| h[k] = {} }
7
+
8
+ # A specialized, reusable object for leaf nodes.
9
+ # Behaves like a Hash, but doesn't copy itself.
10
+ # @api private
11
+ class NoTypedChildren
12
+ CHILDREN = [].freeze
13
+ def dup; self; end
14
+ def any?; false; end
15
+ def [](key); CHILDREN; end
16
+ def each; end
17
+ end
18
+ NO_TYPED_CHILDREN = NoTypedChildren.new
19
+
7
20
  # @return [String] the name this node has in the response
8
21
  attr_reader :name
9
22
 
@@ -17,8 +30,8 @@ module GraphQL
17
30
  # @return [Hash<GraphQL::ObjectType, Hash<String => Node>>]
18
31
  def typed_children
19
32
  @typed_children ||= begin
20
- new_tc = Hash.new(&DEFAULT_TYPED_CHILDREN)
21
33
  if @scoped_children.any?
34
+ new_tc = Hash.new(&DEFAULT_TYPED_CHILDREN)
22
35
  all_object_types = Set.new
23
36
  scoped_children.each_key { |t| all_object_types.merge(@query.possible_types(t)) }
24
37
  # Remove any scoped children which don't follow this return type
@@ -27,8 +40,11 @@ module GraphQL
27
40
  all_object_types.each do |t|
28
41
  new_tc[t] = get_typed_children(t)
29
42
  end
43
+ new_tc
44
+ else
45
+ NO_TYPED_CHILDREN
30
46
  end
31
- new_tc
47
+
32
48
  end
33
49
  end
34
50
 
@@ -125,17 +141,20 @@ module GraphQL
125
141
  @ast_nodes |= new_parent.ast_nodes
126
142
  @definitions |= new_parent.definitions
127
143
  end
128
- scope ||= Scope.new(@query, @return_type.unwrap)
129
- new_parent.scoped_children.each do |obj_type, new_fields|
130
- inner_scope = scope.enter(obj_type)
131
- inner_scope.each do |scoped_type|
132
- prev_fields = @scoped_children[scoped_type]
133
- new_fields.each do |name, new_node|
134
- prev_node = prev_fields[name]
135
- if prev_node
136
- prev_node.deep_merge_node(new_node)
137
- else
138
- prev_fields[name] = new_node
144
+ new_sc = new_parent.scoped_children
145
+ if new_sc.any?
146
+ scope ||= Scope.new(@query, @return_type.unwrap)
147
+ new_sc.each do |obj_type, new_fields|
148
+ inner_scope = scope.enter(obj_type)
149
+ inner_scope.each do |scoped_type|
150
+ prev_fields = @scoped_children[scoped_type]
151
+ new_fields.each do |name, new_node|
152
+ prev_node = prev_fields[name]
153
+ if prev_node
154
+ prev_node.deep_merge_node(new_node)
155
+ else
156
+ prev_fields[name] = new_node
157
+ end
139
158
  end
140
159
  end
141
160
  end
@@ -24,12 +24,9 @@ module GraphQL
24
24
  # visiting the node itself and each of its typed children.
25
25
  def each_node(node)
26
26
  yield(node)
27
- if node.typed_children.any?
28
- visit_block = Proc.new
29
- node.typed_children.each do |obj_type, children|
30
- children.each do |name, node|
31
- each_node(node, &visit_block)
32
- end
27
+ node.typed_children.each do |obj_type, children|
28
+ children.each do |name, node|
29
+ each_node(node) { |n| yield(n) }
33
30
  end
34
31
  end
35
32
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+ require "graphql/language/block_string"
2
3
  require "graphql/language/printer"
3
4
  require "graphql/language/definition_slice"
4
5
  require "graphql/language/document_from_schema_definition"
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+ module GraphQL
3
+ module Language
4
+ module BlockString
5
+ # Remove leading and trailing whitespace from a block string.
6
+ # See "Block Strings" in https://github.com/facebook/graphql/blob/master/spec/Section%202%20--%20Language.md
7
+ def self.trim_whitespace(str)
8
+ lines = str.split("\n")
9
+ common_indent = nil
10
+
11
+ # find the common whitespace
12
+ lines.each_with_index do |line, idx|
13
+ if idx == 0
14
+ next
15
+ end
16
+ line_length = line.size
17
+ line_indent = line[/\A */].size
18
+ if line_indent < line_length && (common_indent.nil? || line_indent < common_indent)
19
+ common_indent = line_indent
20
+ end
21
+ end
22
+
23
+ # Remove the common whitespace
24
+ if common_indent
25
+ lines.each_with_index do |line, idx|
26
+ if idx == 0
27
+ next
28
+ else
29
+ line[0, common_indent] = ""
30
+ end
31
+ end
32
+ end
33
+
34
+ # Remove leading & trailing blank lines
35
+ while lines.first.empty?
36
+ lines.shift
37
+ end
38
+ while lines.last.empty?
39
+ lines.pop
40
+ end
41
+
42
+ # Rebuild the string
43
+ lines.join("\n")
44
+ end
45
+ end
46
+ end
47
+ end
@@ -20,7 +20,7 @@ class << self
20
20
  private :_graphql_lexer_trans_keys, :_graphql_lexer_trans_keys=
21
21
  end
22
22
  self._graphql_lexer_trans_keys = [
23
- 4, 20, 4, 20, 12, 13, 12, 13, 9, 13, 11, 11, 0, 45, 0, 0, 4, 20, 1, 1, 12, 13, 9, 26, 12, 13, 9, 26, 9, 26, 11, 11, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 0 ,
23
+ 4, 20, 4, 20, 4, 4, 4, 4, 4, 4, 12, 13, 12, 13, 9, 13, 11, 11, 0, 45, 0, 0, 4, 20, 4, 20, 4, 4, 4, 4, 1, 1, 12, 13, 9, 26, 12, 13, 9, 26, 9, 26, 11, 11, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 12, 42, 0 ,
24
24
  ]
25
25
 
26
26
  class << self
@@ -36,7 +36,7 @@ class << self
36
36
  private :_graphql_lexer_index_offsets, :_graphql_lexer_index_offsets=
37
37
  end
38
38
  self._graphql_lexer_index_offsets = [
39
- 0, 17, 34, 36, 38, 43, 44, 90, 91, 108, 109, 111, 129, 131, 149, 167, 168, 199, 230, 261, 292, 323, 354, 385, 416, 447, 478, 509, 540, 571, 602, 633, 664, 695, 726, 757, 788, 819, 850, 881, 912, 943, 974, 1005, 1036, 1067, 1098, 1129, 1160, 1191, 1222, 1253, 1284, 1315, 1346, 1377, 1408, 1439, 1470, 1501, 1532, 1563, 1594, 1625, 1656, 1687, 1718, 1749, 1780, 1811, 1842, 1873, 1904, 1935, 1966, 1997, 2028, 2059, 2090, 2121, 2152, 2183, 2214, 2245, 2276, 2307, 2338, 2369, 2400, 2431, 2462, 2493, 2524, 2555, 2586, 2617, 2648, 2679, 0 ,
39
+ 0, 17, 34, 35, 36, 37, 39, 41, 46, 47, 93, 94, 111, 128, 129, 130, 131, 133, 151, 153, 171, 189, 190, 221, 252, 283, 314, 345, 376, 407, 438, 469, 500, 531, 562, 593, 624, 655, 686, 717, 748, 779, 810, 841, 872, 903, 934, 965, 996, 1027, 1058, 1089, 1120, 1151, 1182, 1213, 1244, 1275, 1306, 1337, 1368, 1399, 1430, 1461, 1492, 1523, 1554, 1585, 1616, 1647, 1678, 1709, 1740, 1771, 1802, 1833, 1864, 1895, 1926, 1957, 1988, 2019, 2050, 2081, 2112, 2143, 2174, 2205, 2236, 2267, 2298, 2329, 2360, 2391, 2422, 2453, 2484, 2515, 2546, 2577, 2608, 2639, 2670, 2701, 0 ,
40
40
  ]
41
41
 
42
42
  class << self
@@ -44,7 +44,7 @@ class << self
44
44
  private :_graphql_lexer_indicies, :_graphql_lexer_indicies=
45
45
  end
46
46
  self._graphql_lexer_indicies = [
47
- 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 5, 5, 7, 7, 8, 8, 0, 5, 5, 10, 12, 13, 11, 14, 15, 16, 17, 18, 19, 11, 20, 21, 22, 23, 24, 25, 26, 27, 27, 28, 11, 29, 27, 27, 27, 30, 31, 32, 27, 27, 33, 27, 34, 35, 36, 27, 37, 27, 38, 39, 40, 27, 27, 41, 42, 43, 12, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 45, 22, 23, 8, 8, 48, 5, 5, 47, 47, 47, 47, 49, 47, 47, 47, 47, 47, 47, 47, 49, 5, 5, 8, 8, 50, 7, 7, 50, 50, 50, 50, 49, 50, 50, 50, 50, 50, 50, 50, 49, 8, 8, 48, 23, 23, 47, 47, 47, 47, 49, 47, 47, 47, 47, 47, 47, 47, 49, 51, 27, 27, 0, 0, 0, 27, 27, 0, 0, 0, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 53, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 54, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 55, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 56, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 57, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 58, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 59, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 60, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 61, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 62, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 63, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 64, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 65, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 66, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 67, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 68, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 69, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 70, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 71, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 72, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 73, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 74, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 75, 76, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 77, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 78, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 79, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 80, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 81, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 82, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 83, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 84, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 85, 27, 27, 27, 86, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 87, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 88, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 89, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 90, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 91, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 92, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 93, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 94, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 95, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 96, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 97, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 98, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 99, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 100, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 101, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 102, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 103, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 104, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 105, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 106, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 107, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 108, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 109, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 110, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 111, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 112, 27, 27, 27, 27, 27, 27, 113, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 114, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 115, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 116, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 117, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 118, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 119, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 120, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 121, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 122, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 123, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 124, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 125, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 126, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 127, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 128, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 129, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 130, 27, 27, 27, 27, 131, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 132, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 133, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 134, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 135, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 136, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 137, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 138, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 52, 52, 52, 27, 27, 52, 52, 52, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 139, 27, 27, 27, 27, 27, 27, 27, 27, 27, 0 ,
47
+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 6, 7, 8, 9, 9, 11, 11, 12, 12, 0, 9, 9, 14, 16, 17, 15, 18, 19, 20, 21, 22, 23, 15, 24, 25, 26, 27, 28, 29, 30, 31, 31, 32, 15, 33, 31, 31, 31, 34, 35, 36, 31, 31, 37, 31, 38, 39, 40, 31, 41, 31, 42, 43, 44, 31, 31, 45, 46, 47, 16, 50, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 5, 8, 53, 26, 27, 12, 12, 55, 9, 9, 54, 54, 54, 54, 56, 54, 54, 54, 54, 54, 54, 54, 56, 9, 9, 12, 12, 57, 11, 11, 57, 57, 57, 57, 56, 57, 57, 57, 57, 57, 57, 57, 56, 12, 12, 55, 27, 27, 54, 54, 54, 54, 56, 54, 54, 54, 54, 54, 54, 54, 56, 58, 31, 31, 0, 0, 0, 31, 31, 0, 0, 0, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 60, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 61, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 62, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 63, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 64, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 65, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 66, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 67, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 68, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 69, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 70, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 71, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 72, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 73, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 74, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 75, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 76, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 77, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 78, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 79, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 80, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 81, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 82, 83, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 84, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 85, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 86, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 87, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 88, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 89, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 90, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 91, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 92, 31, 31, 31, 93, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 94, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 95, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 96, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 97, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 98, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 99, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 100, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 101, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 102, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 103, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 104, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 105, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 106, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 107, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 108, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 109, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 110, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 111, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 112, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 113, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 114, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 115, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 116, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 117, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 118, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 119, 31, 31, 31, 31, 31, 31, 120, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 121, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 122, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 123, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 124, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 125, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 126, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 127, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 128, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 129, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 130, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 131, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 132, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 133, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 134, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 135, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 136, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 137, 31, 31, 31, 31, 138, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 139, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 140, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 141, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 142, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 143, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 144, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 145, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 59, 59, 59, 31, 31, 59, 59, 59, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 146, 31, 31, 31, 31, 31, 31, 31, 31, 31, 0 ,
48
48
  ]
49
49
 
50
50
  class << self
@@ -52,7 +52,7 @@ class << self
52
52
  private :_graphql_lexer_index_defaults, :_graphql_lexer_index_defaults=
53
53
  end
54
54
  self._graphql_lexer_index_defaults = [
55
- 1, 1, 0, 6, 0, 9, 11, 44, 1, 16, 46, 47, 50, 50, 47, 46, 0, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 0 ,
55
+ 1, 1, 5, 5, 5, 0, 10, 0, 13, 15, 48, 1, 1, 51, 5, 20, 49, 54, 57, 57, 54, 49, 0, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 0 ,
56
56
  ]
57
57
 
58
58
  class << self
@@ -60,7 +60,7 @@ class << self
60
60
  private :_graphql_lexer_trans_cond_spaces, :_graphql_lexer_trans_cond_spaces=
61
61
  end
62
62
  self._graphql_lexer_trans_cond_spaces = [
63
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0 ,
63
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0 ,
64
64
  ]
65
65
 
66
66
  class << self
@@ -68,7 +68,7 @@ class << self
68
68
  private :_graphql_lexer_cond_targs, :_graphql_lexer_cond_targs=
69
69
  end
70
70
  self._graphql_lexer_cond_targs = [
71
- 6, 0, 6, 1, 8, 12, 6, 13, 2, 6, 6, 6, 7, 6, 6, 8, 9, 6, 6, 6, 10, 15, 11, 14, 6, 6, 6, 16, 6, 6, 17, 25, 28, 38, 56, 63, 66, 67, 71, 89, 94, 6, 6, 6, 6, 6, 6, 6, 3, 4, 6, 5, 6, 18, 19, 20, 21, 22, 23, 24, 16, 26, 27, 16, 29, 32, 30, 31, 16, 33, 34, 35, 36, 37, 16, 39, 47, 40, 41, 42, 43, 44, 45, 46, 16, 48, 50, 49, 16, 51, 52, 53, 54, 55, 16, 57, 58, 59, 60, 61, 62, 16, 64, 65, 16, 16, 68, 69, 70, 16, 72, 79, 73, 76, 74, 75, 16, 77, 78, 16, 80, 81, 82, 83, 84, 85, 86, 87, 88, 16, 90, 92, 91, 16, 93, 16, 95, 96, 97, 16, 0 ,
71
+ 9, 0, 9, 1, 12, 2, 3, 4, 14, 18, 9, 19, 5, 9, 9, 9, 10, 9, 9, 11, 15, 9, 9, 9, 16, 21, 17, 20, 9, 9, 9, 22, 9, 9, 23, 31, 34, 44, 62, 69, 72, 73, 77, 95, 100, 9, 9, 9, 9, 9, 13, 9, 9, 9, 9, 6, 7, 9, 8, 9, 24, 25, 26, 27, 28, 29, 30, 22, 32, 33, 22, 35, 38, 36, 37, 22, 39, 40, 41, 42, 43, 22, 45, 53, 46, 47, 48, 49, 50, 51, 52, 22, 54, 56, 55, 22, 57, 58, 59, 60, 61, 22, 63, 64, 65, 66, 67, 68, 22, 70, 71, 22, 22, 74, 75, 76, 22, 78, 85, 79, 82, 80, 81, 22, 83, 84, 22, 86, 87, 88, 89, 90, 91, 92, 93, 94, 22, 96, 98, 97, 22, 99, 22, 101, 102, 103, 22, 0 ,
72
72
  ]
73
73
 
74
74
  class << self
@@ -76,7 +76,7 @@ class << self
76
76
  private :_graphql_lexer_cond_actions, :_graphql_lexer_cond_actions=
77
77
  end
78
78
  self._graphql_lexer_cond_actions = [
79
- 1, 0, 2, 0, 3, 0, 4, 5, 0, 6, 7, 10, 0, 11, 12, 13, 0, 14, 15, 16, 0, 17, 18, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 26, 27, 28, 29, 30, 31, 0, 0, 32, 0, 33, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 35, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 41, 0, 0, 42, 43, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 45, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 48, 0, 49, 0, 0, 0, 50, 0 ,
79
+ 1, 0, 2, 0, 3, 0, 0, 0, 4, 0, 5, 6, 0, 7, 8, 11, 0, 12, 13, 14, 0, 15, 16, 17, 0, 18, 19, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30, 3, 31, 32, 33, 34, 0, 0, 35, 0, 36, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 38, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 42, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 44, 0, 0, 45, 46, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 48, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 51, 0, 52, 0, 0, 0, 53, 0 ,
80
80
  ]
81
81
 
82
82
  class << self
@@ -84,7 +84,7 @@ class << self
84
84
  private :_graphql_lexer_to_state_actions, :_graphql_lexer_to_state_actions=
85
85
  end
86
86
  self._graphql_lexer_to_state_actions = [
87
- 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
87
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
88
88
  ]
89
89
 
90
90
  class << self
@@ -92,7 +92,7 @@ class << self
92
92
  private :_graphql_lexer_from_state_actions, :_graphql_lexer_from_state_actions=
93
93
  end
94
94
  self._graphql_lexer_from_state_actions = [
95
- 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
95
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
96
96
  ]
97
97
 
98
98
  class << self
@@ -100,7 +100,7 @@ class << self
100
100
  private :_graphql_lexer_eof_trans, :_graphql_lexer_eof_trans=
101
101
  end
102
102
  self._graphql_lexer_eof_trans = [
103
- 1, 1, 1, 7, 1, 10, 0, 45, 1, 46, 47, 48, 51, 51, 48, 47, 1, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 0 ,
103
+ 1, 1, 1, 1, 1, 1, 11, 1, 14, 0, 49, 50, 52, 52, 53, 54, 50, 55, 58, 58, 55, 50, 1, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 0 ,
104
104
  ]
105
105
 
106
106
  class << self
@@ -116,7 +116,7 @@ class << self
116
116
  private :_graphql_lexer_nfa_offsets, :_graphql_lexer_nfa_offsets=
117
117
  end
118
118
  self._graphql_lexer_nfa_offsets = [
119
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
119
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,
120
120
  ]
121
121
 
122
122
  class << self
@@ -138,12 +138,12 @@ self._graphql_lexer_nfa_pop_trans = [
138
138
  class << self
139
139
  attr_accessor :graphql_lexer_start
140
140
  end
141
- self.graphql_lexer_start = 6;
141
+ self.graphql_lexer_start = 9;
142
142
 
143
143
  class << self
144
144
  attr_accessor :graphql_lexer_first_final
145
145
  end
146
- self.graphql_lexer_first_final = 6;
146
+ self.graphql_lexer_first_final = 9;
147
147
 
148
148
  class << self
149
149
  attr_accessor :graphql_lexer_error
@@ -153,7 +153,7 @@ self.graphql_lexer_error = -1;
153
153
  class << self
154
154
  attr_accessor :graphql_lexer_en_main
155
155
  end
156
- self.graphql_lexer_en_main = 6;
156
+ self.graphql_lexer_en_main = 9;
157
157
 
158
158
  def self.run_lexer(query_string)
159
159
  data = query_string.unpack("c*")
@@ -226,7 +226,7 @@ def self.run_lexer(query_string)
226
226
  when -2 then
227
227
  begin
228
228
  end
229
- when 9 then
229
+ when 10 then
230
230
  begin
231
231
  begin
232
232
  begin
@@ -272,7 +272,7 @@ def self.run_lexer(query_string)
272
272
  when -2 then
273
273
  begin
274
274
  end
275
- when 17 then
275
+ when 18 then
276
276
  begin
277
277
  begin
278
278
  begin
@@ -283,7 +283,7 @@ def self.run_lexer(query_string)
283
283
  end
284
284
 
285
285
  end
286
- when 27 then
286
+ when 28 then
287
287
  begin
288
288
  begin
289
289
  begin
@@ -297,7 +297,7 @@ def self.run_lexer(query_string)
297
297
  end
298
298
 
299
299
  end
300
- when 25 then
300
+ when 26 then
301
301
  begin
302
302
  begin
303
303
  begin
@@ -311,7 +311,7 @@ def self.run_lexer(query_string)
311
311
  end
312
312
 
313
313
  end
314
- when 16 then
314
+ when 17 then
315
315
  begin
316
316
  begin
317
317
  begin
@@ -325,7 +325,7 @@ def self.run_lexer(query_string)
325
325
  end
326
326
 
327
327
  end
328
- when 15 then
328
+ when 16 then
329
329
  begin
330
330
  begin
331
331
  begin
@@ -339,7 +339,7 @@ def self.run_lexer(query_string)
339
339
  end
340
340
 
341
341
  end
342
- when 24 then
342
+ when 25 then
343
343
  begin
344
344
  begin
345
345
  begin
@@ -353,7 +353,7 @@ def self.run_lexer(query_string)
353
353
  end
354
354
 
355
355
  end
356
- when 23 then
356
+ when 24 then
357
357
  begin
358
358
  begin
359
359
  begin
@@ -367,7 +367,7 @@ def self.run_lexer(query_string)
367
367
  end
368
368
 
369
369
  end
370
- when 19 then
370
+ when 20 then
371
371
  begin
372
372
  begin
373
373
  begin
@@ -387,7 +387,7 @@ def self.run_lexer(query_string)
387
387
  begin
388
388
  te = p+1;
389
389
  begin
390
- emit_string(ts + 1, te, meta)
390
+ emit_string(ts, te, meta, block: false)
391
391
  end
392
392
 
393
393
  end
@@ -395,7 +395,7 @@ def self.run_lexer(query_string)
395
395
  end
396
396
 
397
397
  end
398
- when 14 then
398
+ when 15 then
399
399
  begin
400
400
  begin
401
401
  begin
@@ -409,7 +409,7 @@ def self.run_lexer(query_string)
409
409
  end
410
410
 
411
411
  end
412
- when 21 then
412
+ when 22 then
413
413
  begin
414
414
  begin
415
415
  begin
@@ -423,7 +423,7 @@ def self.run_lexer(query_string)
423
423
  end
424
424
 
425
425
  end
426
- when 7 then
426
+ when 8 then
427
427
  begin
428
428
  begin
429
429
  begin
@@ -437,7 +437,7 @@ def self.run_lexer(query_string)
437
437
  end
438
438
 
439
439
  end
440
- when 20 then
440
+ when 21 then
441
441
  begin
442
442
  begin
443
443
  begin
@@ -451,7 +451,7 @@ def self.run_lexer(query_string)
451
451
  end
452
452
 
453
453
  end
454
- when 12 then
454
+ when 13 then
455
455
  begin
456
456
  begin
457
457
  begin
@@ -465,7 +465,7 @@ def self.run_lexer(query_string)
465
465
  end
466
466
 
467
467
  end
468
- when 26 then
468
+ when 27 then
469
469
  begin
470
470
  begin
471
471
  begin
@@ -479,7 +479,7 @@ def self.run_lexer(query_string)
479
479
  end
480
480
 
481
481
  end
482
- when 11 then
482
+ when 12 then
483
483
  begin
484
484
  begin
485
485
  begin
@@ -495,7 +495,7 @@ def self.run_lexer(query_string)
495
495
  end
496
496
 
497
497
  end
498
- when 10 then
498
+ when 11 then
499
499
  begin
500
500
  begin
501
501
  begin
@@ -509,7 +509,7 @@ def self.run_lexer(query_string)
509
509
  end
510
510
 
511
511
  end
512
- when 31 then
512
+ when 34 then
513
513
  begin
514
514
  begin
515
515
  begin
@@ -524,7 +524,7 @@ def self.run_lexer(query_string)
524
524
  end
525
525
 
526
526
  end
527
- when 32 then
527
+ when 35 then
528
528
  begin
529
529
  begin
530
530
  begin
@@ -539,7 +539,37 @@ def self.run_lexer(query_string)
539
539
  end
540
540
 
541
541
  end
542
- when 33 then
542
+ when 31 then
543
+ begin
544
+ begin
545
+ begin
546
+ te = p;
547
+ p = p - 1;
548
+ begin
549
+ emit_string(ts, te, meta, block: false)
550
+ end
551
+
552
+ end
553
+
554
+ end
555
+
556
+ end
557
+ when 32 then
558
+ begin
559
+ begin
560
+ begin
561
+ te = p;
562
+ p = p - 1;
563
+ begin
564
+ emit_string(ts, te, meta, block: true)
565
+ end
566
+
567
+ end
568
+
569
+ end
570
+
571
+ end
572
+ when 36 then
543
573
  begin
544
574
  begin
545
575
  begin
@@ -554,7 +584,7 @@ def self.run_lexer(query_string)
554
584
  end
555
585
 
556
586
  end
557
- when 29 then
587
+ when 33 then
558
588
  begin
559
589
  begin
560
590
  begin
@@ -569,7 +599,7 @@ def self.run_lexer(query_string)
569
599
  end
570
600
 
571
601
  end
572
- when 28 then
602
+ when 29 then
573
603
  begin
574
604
  begin
575
605
  begin
@@ -599,7 +629,7 @@ def self.run_lexer(query_string)
599
629
  end
600
630
 
601
631
  end
602
- when 4 then
632
+ when 5 then
603
633
  begin
604
634
  begin
605
635
  begin
@@ -613,7 +643,7 @@ def self.run_lexer(query_string)
613
643
  end
614
644
 
615
645
  end
616
- when 6 then
646
+ when 7 then
617
647
  begin
618
648
  begin
619
649
  begin
@@ -791,11 +821,19 @@ def self.run_lexer(query_string)
791
821
  begin
792
822
  p = ((te))-1;
793
823
  begin
794
- emit_string(ts + 1, te, meta)
824
+ emit_string(ts, te, meta, block: false)
825
+ end
826
+
827
+ end
828
+ when 28 then
829
+ begin
830
+ p = ((te))-1;
831
+ begin
832
+ emit_string(ts, te, meta, block: true)
795
833
  end
796
834
 
797
835
  end
798
- when 34 then
836
+ when 35 then
799
837
  begin
800
838
  p = ((te))-1;
801
839
  begin
@@ -803,7 +841,7 @@ def self.run_lexer(query_string)
803
841
  end
804
842
 
805
843
  end
806
- when 38 then
844
+ when 39 then
807
845
  begin
808
846
  p = ((te))-1;
809
847
  begin
@@ -820,7 +858,7 @@ def self.run_lexer(query_string)
820
858
  end
821
859
 
822
860
  end
823
- when 18 then
861
+ when 19 then
824
862
  begin
825
863
  begin
826
864
  begin
@@ -838,7 +876,7 @@ def self.run_lexer(query_string)
838
876
  end
839
877
 
840
878
  end
841
- when 5 then
879
+ when 6 then
842
880
  begin
843
881
  begin
844
882
  begin
@@ -856,7 +894,7 @@ def self.run_lexer(query_string)
856
894
  end
857
895
 
858
896
  end
859
- when 43 then
897
+ when 46 then
860
898
  begin
861
899
  begin
862
900
  begin
@@ -874,7 +912,7 @@ def self.run_lexer(query_string)
874
912
  end
875
913
 
876
914
  end
877
- when 37 then
915
+ when 40 then
878
916
  begin
879
917
  begin
880
918
  begin
@@ -892,7 +930,7 @@ def self.run_lexer(query_string)
892
930
  end
893
931
 
894
932
  end
895
- when 48 then
933
+ when 51 then
896
934
  begin
897
935
  begin
898
936
  begin
@@ -910,7 +948,7 @@ def self.run_lexer(query_string)
910
948
  end
911
949
 
912
950
  end
913
- when 36 then
951
+ when 39 then
914
952
  begin
915
953
  begin
916
954
  begin
@@ -928,7 +966,7 @@ def self.run_lexer(query_string)
928
966
  end
929
967
 
930
968
  end
931
- when 42 then
969
+ when 45 then
932
970
  begin
933
971
  begin
934
972
  begin
@@ -946,7 +984,7 @@ def self.run_lexer(query_string)
946
984
  end
947
985
 
948
986
  end
949
- when 44 then
987
+ when 47 then
950
988
  begin
951
989
  begin
952
990
  begin
@@ -964,7 +1002,7 @@ def self.run_lexer(query_string)
964
1002
  end
965
1003
 
966
1004
  end
967
- when 41 then
1005
+ when 44 then
968
1006
  begin
969
1007
  begin
970
1008
  begin
@@ -982,7 +1020,7 @@ def self.run_lexer(query_string)
982
1020
  end
983
1021
 
984
1022
  end
985
- when 47 then
1023
+ when 50 then
986
1024
  begin
987
1025
  begin
988
1026
  begin
@@ -1000,7 +1038,7 @@ def self.run_lexer(query_string)
1000
1038
  end
1001
1039
 
1002
1040
  end
1003
- when 46 then
1041
+ when 49 then
1004
1042
  begin
1005
1043
  begin
1006
1044
  begin
@@ -1018,7 +1056,7 @@ def self.run_lexer(query_string)
1018
1056
  end
1019
1057
 
1020
1058
  end
1021
- when 45 then
1059
+ when 48 then
1022
1060
  begin
1023
1061
  begin
1024
1062
  begin
@@ -1036,7 +1074,7 @@ def self.run_lexer(query_string)
1036
1074
  end
1037
1075
 
1038
1076
  end
1039
- when 49 then
1077
+ when 52 then
1040
1078
  begin
1041
1079
  begin
1042
1080
  begin
@@ -1054,7 +1092,7 @@ def self.run_lexer(query_string)
1054
1092
  end
1055
1093
 
1056
1094
  end
1057
- when 38 then
1095
+ when 41 then
1058
1096
  begin
1059
1097
  begin
1060
1098
  begin
@@ -1072,7 +1110,7 @@ def self.run_lexer(query_string)
1072
1110
  end
1073
1111
 
1074
1112
  end
1075
- when 40 then
1113
+ when 43 then
1076
1114
  begin
1077
1115
  begin
1078
1116
  begin
@@ -1090,7 +1128,7 @@ def self.run_lexer(query_string)
1090
1128
  end
1091
1129
 
1092
1130
  end
1093
- when 50 then
1131
+ when 53 then
1094
1132
  begin
1095
1133
  begin
1096
1134
  begin
@@ -1108,7 +1146,7 @@ def self.run_lexer(query_string)
1108
1146
  end
1109
1147
 
1110
1148
  end
1111
- when 35 then
1149
+ when 38 then
1112
1150
  begin
1113
1151
  begin
1114
1152
  begin
@@ -1126,7 +1164,7 @@ def self.run_lexer(query_string)
1126
1164
  end
1127
1165
 
1128
1166
  end
1129
- when 39 then
1167
+ when 42 then
1130
1168
  begin
1131
1169
  begin
1132
1170
  begin
@@ -1144,7 +1182,7 @@ def self.run_lexer(query_string)
1144
1182
  end
1145
1183
 
1146
1184
  end
1147
- when 34 then
1185
+ when 37 then
1148
1186
  begin
1149
1187
  begin
1150
1188
  begin
@@ -1180,7 +1218,7 @@ def self.run_lexer(query_string)
1180
1218
  end
1181
1219
 
1182
1220
  end
1183
- when 22 then
1221
+ when 4 then
1184
1222
  begin
1185
1223
  begin
1186
1224
  begin
@@ -1191,14 +1229,14 @@ def self.run_lexer(query_string)
1191
1229
  end
1192
1230
  begin
1193
1231
  begin
1194
- act = 34;
1232
+ act = 28;
1195
1233
 
1196
1234
  end
1197
1235
 
1198
1236
  end
1199
1237
 
1200
1238
  end
1201
- when 13 then
1239
+ when 23 then
1202
1240
  begin
1203
1241
  begin
1204
1242
  begin
@@ -1209,7 +1247,25 @@ def self.run_lexer(query_string)
1209
1247
  end
1210
1248
  begin
1211
1249
  begin
1212
- act = 38;
1250
+ act = 35;
1251
+
1252
+ end
1253
+
1254
+ end
1255
+
1256
+ end
1257
+ when 14 then
1258
+ begin
1259
+ begin
1260
+ begin
1261
+ te = p+1;
1262
+
1263
+ end
1264
+
1265
+ end
1266
+ begin
1267
+ begin
1268
+ act = 39;
1213
1269
 
1214
1270
  end
1215
1271
 
@@ -1222,7 +1278,7 @@ def self.run_lexer(query_string)
1222
1278
  when -2 then
1223
1279
  begin
1224
1280
  end
1225
- when 8 then
1281
+ when 9 then
1226
1282
  begin
1227
1283
  begin
1228
1284
  begin
@@ -1303,8 +1359,13 @@ VALID_STRING = /\A(?:[^\\]|#{ESCAPES}|#{UTF_8})*\z/o
1303
1359
  PACK_DIRECTIVE = "c*"
1304
1360
  UTF_8_ENCODING = "UTF-8"
1305
1361
 
1306
- def self.emit_string(ts, te, meta)
1307
- value = meta[:data][ts...te - 1].pack(PACK_DIRECTIVE).force_encoding(UTF_8_ENCODING)
1362
+ def self.emit_string(ts, te, meta, block:)
1363
+ quotes_length = block ? 3 : 1
1364
+ ts += quotes_length
1365
+ value = meta[:data][ts...te - quotes_length].pack(PACK_DIRECTIVE).force_encoding(UTF_8_ENCODING)
1366
+ if block
1367
+ value = GraphQL::Language::BlockString.trim_whitespace(value)
1368
+ end
1308
1369
  if value !~ VALID_STRING
1309
1370
  meta[:tokens] << token = GraphQL::Language::Token.new(
1310
1371
  name: :BAD_UNICODE_ESCAPE,