graphql 1.8.0.pre4 → 1.8.0.pre5

Sign up to get free protection for your applications and to get access to all the features.
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,