mail 2.7.0 → 2.8.1

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 (125) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +59 -28
  3. data/lib/mail/attachments_list.rb +2 -5
  4. data/lib/mail/body.rb +33 -50
  5. data/lib/mail/check_delivery_params.rb +21 -16
  6. data/lib/mail/constants.rb +27 -5
  7. data/lib/mail/elements/address.rb +27 -27
  8. data/lib/mail/elements/address_list.rb +1 -1
  9. data/lib/mail/elements/content_disposition_element.rb +1 -1
  10. data/lib/mail/elements/content_location_element.rb +1 -1
  11. data/lib/mail/elements/content_transfer_encoding_element.rb +1 -1
  12. data/lib/mail/elements/content_type_element.rb +8 -4
  13. data/lib/mail/elements/date_time_element.rb +1 -1
  14. data/lib/mail/elements/envelope_from_element.rb +13 -7
  15. data/lib/mail/elements/message_ids_element.rb +14 -5
  16. data/lib/mail/elements/mime_version_element.rb +1 -1
  17. data/lib/mail/elements/phrase_list.rb +7 -2
  18. data/lib/mail/elements/received_element.rb +20 -6
  19. data/lib/mail/encodings/7bit.rb +5 -0
  20. data/lib/mail/encodings/base64.rb +2 -2
  21. data/lib/mail/encodings/quoted_printable.rb +2 -2
  22. data/lib/mail/encodings/transfer_encoding.rb +1 -1
  23. data/lib/mail/encodings/unix_to_unix.rb +1 -0
  24. data/lib/mail/encodings.rb +30 -59
  25. data/lib/mail/envelope.rb +11 -14
  26. data/lib/mail/field.rb +39 -53
  27. data/lib/mail/field_list.rb +60 -7
  28. data/lib/mail/fields/bcc_field.rb +34 -52
  29. data/lib/mail/fields/cc_field.rb +28 -49
  30. data/lib/mail/fields/comments_field.rb +27 -37
  31. data/lib/mail/fields/common_address_field.rb +170 -0
  32. data/lib/mail/fields/common_date_field.rb +58 -0
  33. data/lib/mail/fields/common_field.rb +77 -0
  34. data/lib/mail/fields/common_message_id_field.rb +42 -0
  35. data/lib/mail/fields/content_description_field.rb +7 -14
  36. data/lib/mail/fields/content_disposition_field.rb +13 -38
  37. data/lib/mail/fields/content_id_field.rb +24 -51
  38. data/lib/mail/fields/content_location_field.rb +11 -25
  39. data/lib/mail/fields/content_transfer_encoding_field.rb +31 -31
  40. data/lib/mail/fields/content_type_field.rb +47 -72
  41. data/lib/mail/fields/date_field.rb +23 -51
  42. data/lib/mail/fields/from_field.rb +28 -49
  43. data/lib/mail/fields/in_reply_to_field.rb +38 -49
  44. data/lib/mail/fields/keywords_field.rb +18 -31
  45. data/lib/mail/fields/message_id_field.rb +25 -71
  46. data/lib/mail/fields/mime_version_field.rb +19 -30
  47. data/lib/mail/fields/named_structured_field.rb +11 -0
  48. data/lib/mail/fields/named_unstructured_field.rb +11 -0
  49. data/lib/mail/fields/optional_field.rb +5 -6
  50. data/lib/mail/fields/{common/parameter_hash.rb → parameter_hash.rb} +12 -10
  51. data/lib/mail/fields/received_field.rb +43 -57
  52. data/lib/mail/fields/references_field.rb +35 -49
  53. data/lib/mail/fields/reply_to_field.rb +28 -49
  54. data/lib/mail/fields/resent_bcc_field.rb +28 -49
  55. data/lib/mail/fields/resent_cc_field.rb +28 -49
  56. data/lib/mail/fields/resent_date_field.rb +5 -29
  57. data/lib/mail/fields/resent_from_field.rb +28 -49
  58. data/lib/mail/fields/resent_message_id_field.rb +5 -29
  59. data/lib/mail/fields/resent_sender_field.rb +27 -56
  60. data/lib/mail/fields/resent_to_field.rb +28 -49
  61. data/lib/mail/fields/return_path_field.rb +50 -54
  62. data/lib/mail/fields/sender_field.rb +34 -55
  63. data/lib/mail/fields/structured_field.rb +3 -30
  64. data/lib/mail/fields/subject_field.rb +9 -11
  65. data/lib/mail/fields/to_field.rb +28 -49
  66. data/lib/mail/fields/unstructured_field.rb +16 -48
  67. data/lib/mail/header.rb +69 -110
  68. data/lib/mail/matchers/attachment_matchers.rb +15 -0
  69. data/lib/mail/message.rb +53 -68
  70. data/lib/mail/multibyte/chars.rb +8 -166
  71. data/lib/mail/multibyte/unicode.rb +10 -10
  72. data/lib/mail/multibyte/utils.rb +26 -43
  73. data/lib/mail/multibyte.rb +1 -11
  74. data/lib/mail/network/delivery_methods/exim.rb +5 -4
  75. data/lib/mail/network/delivery_methods/file_delivery.rb +11 -10
  76. data/lib/mail/network/delivery_methods/logger_delivery.rb +2 -5
  77. data/lib/mail/network/delivery_methods/sendmail.rb +56 -18
  78. data/lib/mail/network/delivery_methods/smtp.rb +25 -9
  79. data/lib/mail/network/delivery_methods/smtp_connection.rb +3 -12
  80. data/lib/mail/network/delivery_methods/test_mailer.rb +4 -2
  81. data/lib/mail/network/retriever_methods/base.rb +8 -8
  82. data/lib/mail/network/retriever_methods/imap.rb +3 -3
  83. data/lib/mail/network/retriever_methods/pop3.rb +2 -2
  84. data/lib/mail/network/retriever_methods/test_retriever.rb +2 -1
  85. data/lib/mail/parsers/address_lists_parser.rb +33175 -33140
  86. data/lib/mail/parsers/address_lists_parser.rl +7 -0
  87. data/lib/mail/parsers/content_disposition_parser.rb +889 -889
  88. data/lib/mail/parsers/content_disposition_parser.rl +7 -0
  89. data/lib/mail/parsers/content_location_parser.rb +796 -787
  90. data/lib/mail/parsers/content_location_parser.rl +7 -0
  91. data/lib/mail/parsers/content_transfer_encoding_parser.rb +496 -496
  92. data/lib/mail/parsers/content_transfer_encoding_parser.rl +7 -0
  93. data/lib/mail/parsers/content_type_parser.rb +1008 -1005
  94. data/lib/mail/parsers/content_type_parser.rl +7 -0
  95. data/lib/mail/parsers/date_time_parser.rb +864 -859
  96. data/lib/mail/parsers/date_time_parser.rl +7 -0
  97. data/lib/mail/parsers/envelope_from_parser.rb +3649 -3548
  98. data/lib/mail/parsers/envelope_from_parser.rl +7 -0
  99. data/lib/mail/parsers/message_ids_parser.rb +5135 -2832
  100. data/lib/mail/parsers/message_ids_parser.rl +12 -1
  101. data/lib/mail/parsers/mime_version_parser.rb +487 -483
  102. data/lib/mail/parsers/mime_version_parser.rl +7 -0
  103. data/lib/mail/parsers/phrase_lists_parser.rb +858 -865
  104. data/lib/mail/parsers/phrase_lists_parser.rl +8 -1
  105. data/lib/mail/parsers/received_parser.rb +8756 -8728
  106. data/lib/mail/parsers/received_parser.rl +7 -0
  107. data/lib/mail/parsers/rfc5322.rl +28 -13
  108. data/lib/mail/parsers.rb +11 -17
  109. data/lib/mail/part.rb +6 -10
  110. data/lib/mail/parts_list.rb +57 -0
  111. data/lib/mail/smtp_envelope.rb +57 -0
  112. data/lib/mail/utilities.rb +325 -87
  113. data/lib/mail/version.rb +2 -2
  114. data/lib/mail/yaml.rb +30 -0
  115. data/lib/mail.rb +3 -20
  116. metadata +86 -18
  117. data/lib/mail/core_extensions/smtp.rb +0 -28
  118. data/lib/mail/core_extensions/string.rb +0 -17
  119. data/lib/mail/fields/common/address_container.rb +0 -17
  120. data/lib/mail/fields/common/common_address.rb +0 -161
  121. data/lib/mail/fields/common/common_date.rb +0 -36
  122. data/lib/mail/fields/common/common_field.rb +0 -52
  123. data/lib/mail/fields/common/common_message_id.rb +0 -49
  124. data/lib/mail/version_specific/ruby_1_8.rb +0 -163
  125. data/lib/mail/version_specific/ruby_1_9.rb +0 -278
@@ -1,1045 +1,1048 @@
1
1
 
2
2
  # frozen_string_literal: true
3
- require 'mail/utilities'
4
- require 'mail/parser_tools'
3
+ require "mail/utilities"
4
+ require "mail/parser_tools"
5
5
 
6
+ begin
7
+ original_verbose, $VERBOSE = $VERBOSE, nil
6
8
 
9
+ module Mail::Parsers
10
+ module ContentTypeParser
11
+ extend Mail::ParserTools
7
12
 
13
+ ContentTypeStruct = Struct.new(:main_type, :sub_type, :parameters, :error)
8
14
 
9
- module Mail::Parsers
10
- module ContentTypeParser
11
- extend Mail::ParserTools
12
-
13
- ContentTypeStruct = Struct.new(:main_type, :sub_type, :parameters, :error)
14
-
15
-
16
- class << self
17
- attr_accessor :_trans_keys
18
- private :_trans_keys, :_trans_keys=
19
- end
20
- self._trans_keys = [
21
- 0, 0, 33, 126, 33, 126,
22
- 33, 126, 9, 126, 10,
23
- 10, 9, 32, 33, 126,
24
- 9, 126, 9, 40, 10, 10,
25
- 9, 32, 1, 244, 1,
26
- 244, 10, 10, 9, 32,
27
- 10, 10, 9, 32, 9, 126,
28
- 9, 126, 10, 10, 9,
29
- 32, 9, 126, 0, 244,
30
- 128, 191, 160, 191, 128, 191,
31
- 128, 159, 144, 191, 128,
32
- 191, 128, 143, 9, 40,
33
- 10, 10, 9, 32, 9, 126,
34
- 1, 244, 1, 244, 10,
35
- 10, 9, 32, 0, 244,
36
- 128, 191, 160, 191, 128, 191,
37
- 128, 159, 144, 191, 128,
38
- 191, 128, 143, 9, 126,
39
- 9, 59, 9, 126, 9, 126,
40
- 9, 126, 9, 126, 9,
41
- 126, 0, 0, 0
42
- ]
43
-
44
- class << self
45
- attr_accessor :_key_spans
46
- private :_key_spans, :_key_spans=
47
- end
48
- self._key_spans = [
49
- 0, 94, 94, 94, 118, 1, 24, 94,
50
- 118, 32, 1, 24, 244, 244, 1, 24,
51
- 1, 24, 118, 118, 1, 24, 118, 245,
52
- 64, 32, 64, 32, 48, 64, 16, 32,
53
- 1, 24, 118, 244, 244, 1, 24, 245,
54
- 64, 32, 64, 32, 48, 64, 16, 118,
55
- 51, 118, 118, 118, 118, 118, 0
56
- ]
57
-
58
- class << self
59
- attr_accessor :_index_offsets
60
- private :_index_offsets, :_index_offsets=
61
- end
62
- self._index_offsets = [
63
- 0, 0, 95, 190, 285, 404, 406, 431,
64
- 526, 645, 678, 680, 705, 950, 1195, 1197,
65
- 1222, 1224, 1249, 1368, 1487, 1489, 1514, 1633,
66
- 1879, 1944, 1977, 2042, 2075, 2124, 2189, 2206,
67
- 2239, 2241, 2266, 2385, 2630, 2875, 2877, 2902,
68
- 3148, 3213, 3246, 3311, 3344, 3393, 3458, 3475,
69
- 3594, 3646, 3765, 3884, 4003, 4122, 4241
70
- ]
71
-
72
- class << self
73
- attr_accessor :_indicies
74
- private :_indicies, :_indicies=
75
- end
76
- self._indicies = [
77
- 0, 0, 0, 0, 0, 0, 0, 1,
78
- 1, 0, 0, 0, 0, 0, 1, 0,
79
- 0, 0, 0, 0, 0, 0, 0, 0,
80
- 0, 1, 1, 1, 1, 1, 1, 1,
81
- 0, 0, 0, 0, 0, 0, 0, 0,
82
- 0, 0, 0, 0, 0, 0, 0, 0,
83
- 0, 0, 0, 0, 0, 0, 0, 0,
84
- 0, 0, 1, 1, 1, 0, 0, 0,
85
- 0, 0, 0, 0, 0, 0, 0, 0,
86
- 0, 0, 0, 0, 0, 0, 0, 0,
87
- 0, 0, 0, 0, 0, 0, 0, 0,
88
- 0, 0, 0, 0, 0, 0, 1, 2,
89
- 2, 2, 2, 2, 2, 2, 1, 1,
90
- 2, 2, 2, 2, 2, 3, 2, 2,
91
- 2, 2, 2, 2, 2, 2, 2, 2,
92
- 1, 1, 1, 1, 1, 1, 1, 2,
93
- 2, 2, 2, 2, 2, 2, 2, 2,
94
- 2, 2, 2, 2, 2, 2, 2, 2,
95
- 2, 2, 2, 2, 2, 2, 2, 2,
96
- 2, 1, 1, 1, 2, 2, 2, 2,
97
- 2, 2, 2, 2, 2, 2, 2, 2,
98
- 2, 2, 2, 2, 2, 2, 2, 2,
99
- 2, 2, 2, 2, 2, 2, 2, 2,
100
- 2, 2, 2, 2, 2, 1, 4, 4,
101
- 4, 4, 4, 4, 4, 1, 1, 4,
102
- 4, 4, 4, 4, 1, 4, 4, 4,
103
- 4, 4, 4, 4, 4, 4, 4, 1,
104
- 1, 1, 1, 1, 1, 1, 4, 4,
105
- 4, 4, 4, 4, 4, 4, 4, 4,
106
- 4, 4, 4, 4, 4, 4, 4, 4,
107
- 4, 4, 4, 4, 4, 4, 4, 4,
108
- 1, 1, 1, 4, 4, 4, 4, 4,
109
- 4, 4, 4, 4, 4, 4, 4, 4,
110
- 4, 4, 4, 4, 4, 4, 4, 4,
111
- 4, 4, 4, 4, 4, 4, 4, 4,
112
- 4, 4, 4, 4, 1, 5, 1, 1,
113
- 1, 6, 1, 1, 1, 1, 1, 1,
114
- 1, 1, 1, 1, 1, 1, 1, 1,
115
- 1, 1, 1, 1, 5, 7, 7, 7,
116
- 7, 7, 7, 7, 8, 1, 7, 7,
117
- 7, 7, 7, 1, 7, 7, 7, 7,
118
- 7, 7, 7, 7, 7, 7, 1, 9,
119
- 1, 1, 1, 1, 1, 7, 7, 7,
120
- 7, 7, 7, 7, 7, 7, 7, 7,
121
- 7, 7, 7, 7, 7, 7, 7, 7,
122
- 7, 7, 7, 7, 7, 7, 7, 1,
123
- 1, 1, 7, 7, 7, 7, 7, 7,
124
- 7, 7, 7, 7, 7, 7, 7, 7,
125
- 7, 7, 7, 7, 7, 7, 7, 7,
126
- 7, 7, 7, 7, 7, 7, 7, 7,
127
- 7, 7, 7, 1, 10, 1, 5, 1,
128
- 1, 1, 1, 1, 1, 1, 1, 1,
129
- 1, 1, 1, 1, 1, 1, 1, 1,
130
- 1, 1, 1, 1, 1, 5, 1, 11,
131
- 11, 11, 11, 11, 11, 11, 1, 1,
132
- 11, 11, 11, 11, 11, 1, 11, 11,
133
- 11, 11, 11, 11, 11, 11, 11, 11,
134
- 1, 1, 1, 12, 1, 1, 1, 11,
135
- 11, 11, 11, 11, 11, 11, 11, 11,
136
- 11, 11, 11, 11, 11, 11, 11, 11,
137
- 11, 11, 11, 11, 11, 11, 11, 11,
138
- 11, 1, 1, 1, 11, 11, 11, 11,
139
- 11, 11, 11, 11, 11, 11, 11, 11,
140
- 11, 11, 11, 11, 11, 11, 11, 11,
141
- 11, 11, 11, 11, 11, 11, 11, 11,
142
- 11, 11, 11, 11, 11, 1, 13, 1,
143
- 1, 1, 14, 1, 1, 1, 1, 1,
144
- 1, 1, 1, 1, 1, 1, 1, 1,
145
- 1, 1, 1, 1, 1, 13, 15, 16,
146
- 15, 15, 15, 15, 15, 17, 1, 15,
147
- 15, 15, 15, 15, 1, 15, 15, 15,
148
- 15, 15, 15, 15, 15, 15, 15, 1,
149
- 1, 1, 15, 1, 1, 1, 15, 15,
150
- 15, 15, 15, 15, 15, 15, 15, 15,
151
- 15, 15, 15, 15, 15, 15, 15, 15,
152
- 15, 15, 15, 15, 15, 15, 15, 15,
153
- 1, 1, 1, 15, 15, 15, 15, 15,
154
- 15, 15, 15, 15, 15, 15, 15, 15,
155
- 15, 15, 15, 15, 15, 15, 15, 15,
156
- 15, 15, 15, 15, 15, 15, 15, 15,
157
- 15, 15, 15, 15, 1, 18, 1, 1,
158
- 1, 19, 1, 1, 1, 1, 1, 1,
159
- 1, 1, 1, 1, 1, 1, 1, 1,
160
- 1, 1, 1, 1, 18, 1, 20, 1,
161
- 1, 1, 1, 1, 21, 1, 22, 1,
162
- 18, 1, 1, 1, 1, 1, 1, 1,
163
- 1, 1, 1, 1, 1, 1, 1, 1,
164
- 1, 1, 1, 1, 1, 1, 1, 18,
165
- 1, 23, 23, 23, 23, 23, 23, 23,
166
- 23, 23, 1, 23, 23, 24, 23, 23,
167
- 23, 23, 23, 23, 23, 23, 23, 23,
168
- 23, 23, 23, 23, 23, 23, 23, 23,
169
- 23, 23, 25, 23, 23, 23, 23, 23,
170
- 23, 23, 23, 23, 23, 23, 23, 23,
171
- 23, 23, 23, 23, 23, 23, 23, 23,
172
- 23, 23, 23, 23, 23, 23, 23, 23,
173
- 23, 23, 23, 23, 23, 23, 23, 23,
174
- 23, 23, 23, 23, 23, 23, 23, 23,
175
- 23, 23, 23, 23, 23, 23, 23, 23,
176
- 23, 23, 23, 23, 26, 23, 23, 23,
177
- 23, 23, 23, 23, 23, 23, 23, 23,
178
- 23, 23, 23, 23, 23, 23, 23, 23,
179
- 23, 23, 23, 23, 23, 23, 23, 23,
180
- 23, 23, 23, 23, 23, 23, 23, 23,
181
- 1, 1, 1, 1, 1, 1, 1, 1,
182
- 1, 1, 1, 1, 1, 1, 1, 1,
183
- 1, 1, 1, 1, 1, 1, 1, 1,
184
- 1, 1, 1, 1, 1, 1, 1, 1,
185
- 1, 1, 1, 1, 1, 1, 1, 1,
186
- 1, 1, 1, 1, 1, 1, 1, 1,
187
- 1, 1, 1, 1, 1, 1, 1, 1,
188
- 1, 1, 1, 1, 1, 1, 1, 1,
189
- 1, 1, 27, 27, 27, 27, 27, 27,
190
- 27, 27, 27, 27, 27, 27, 27, 27,
191
- 27, 27, 27, 27, 27, 27, 27, 27,
192
- 27, 27, 27, 27, 27, 27, 27, 27,
193
- 28, 29, 29, 29, 29, 29, 29, 29,
194
- 29, 29, 29, 29, 29, 30, 29, 29,
195
- 31, 32, 32, 32, 33, 1, 34, 34,
196
- 34, 34, 34, 34, 34, 34, 34, 1,
197
- 34, 34, 35, 34, 34, 34, 34, 34,
198
- 34, 34, 34, 34, 34, 34, 34, 34,
199
- 34, 34, 34, 34, 34, 34, 34, 36,
200
- 34, 34, 34, 34, 34, 34, 34, 34,
201
- 34, 34, 34, 34, 34, 34, 34, 34,
202
- 34, 34, 34, 34, 34, 34, 34, 34,
203
- 34, 34, 34, 34, 34, 34, 34, 34,
204
- 34, 34, 34, 34, 34, 34, 34, 34,
205
- 34, 34, 34, 34, 34, 34, 34, 34,
206
- 34, 34, 34, 34, 34, 34, 34, 34,
207
- 34, 37, 34, 34, 34, 34, 34, 34,
208
- 34, 34, 34, 34, 34, 34, 34, 34,
209
- 34, 34, 34, 34, 34, 34, 34, 34,
210
- 34, 34, 34, 34, 34, 34, 34, 34,
211
- 34, 34, 34, 34, 34, 1, 1, 1,
212
- 1, 1, 1, 1, 1, 1, 1, 1,
213
- 1, 1, 1, 1, 1, 1, 1, 1,
214
- 1, 1, 1, 1, 1, 1, 1, 1,
215
- 1, 1, 1, 1, 1, 1, 1, 1,
216
- 1, 1, 1, 1, 1, 1, 1, 1,
217
- 1, 1, 1, 1, 1, 1, 1, 1,
218
- 1, 1, 1, 1, 1, 1, 1, 1,
219
- 1, 1, 1, 1, 1, 1, 1, 38,
220
- 38, 38, 38, 38, 38, 38, 38, 38,
221
- 38, 38, 38, 38, 38, 38, 38, 38,
222
- 38, 38, 38, 38, 38, 38, 38, 38,
223
- 38, 38, 38, 38, 38, 39, 40, 40,
224
- 40, 40, 40, 40, 40, 40, 40, 40,
225
- 40, 40, 41, 40, 40, 42, 43, 43,
226
- 43, 44, 1, 45, 1, 34, 1, 1,
227
- 1, 1, 1, 1, 1, 1, 1, 1,
228
- 1, 1, 1, 1, 1, 1, 1, 1,
229
- 1, 1, 1, 1, 34, 1, 46, 1,
230
- 47, 1, 1, 1, 1, 1, 1, 1,
231
- 1, 1, 1, 1, 1, 1, 1, 1,
232
- 1, 1, 1, 1, 1, 1, 1, 47,
233
- 1, 48, 1, 1, 1, 49, 1, 1,
234
- 1, 1, 1, 1, 1, 1, 1, 1,
235
- 1, 1, 1, 1, 1, 1, 1, 1,
236
- 48, 7, 7, 7, 7, 7, 7, 7,
237
- 50, 1, 7, 7, 7, 7, 7, 1,
238
- 7, 7, 7, 7, 7, 7, 7, 7,
239
- 7, 7, 1, 9, 1, 1, 1, 1,
240
- 1, 7, 7, 7, 7, 7, 7, 7,
241
- 7, 7, 7, 7, 7, 7, 7, 7,
242
- 7, 7, 7, 7, 7, 7, 7, 7,
243
- 7, 7, 7, 1, 1, 1, 7, 7,
244
- 7, 7, 7, 7, 7, 7, 7, 7,
245
- 7, 7, 7, 7, 7, 7, 7, 7,
246
- 7, 7, 7, 7, 7, 7, 7, 7,
247
- 7, 7, 7, 7, 7, 7, 7, 1,
248
- 48, 1, 1, 1, 49, 1, 1, 1,
249
- 1, 1, 1, 1, 1, 1, 1, 1,
250
- 1, 1, 1, 1, 1, 1, 1, 48,
251
- 7, 7, 7, 7, 7, 7, 7, 50,
252
- 1, 7, 7, 7, 7, 7, 1, 7,
253
- 7, 7, 7, 7, 7, 7, 7, 7,
254
- 7, 1, 1, 1, 1, 1, 1, 1,
255
- 7, 7, 7, 7, 7, 7, 7, 7,
256
- 7, 7, 7, 7, 7, 7, 7, 7,
257
- 7, 7, 7, 7, 7, 7, 7, 7,
258
- 7, 7, 1, 1, 1, 7, 7, 7,
259
- 7, 7, 7, 7, 7, 7, 7, 7,
260
- 7, 7, 7, 7, 7, 7, 7, 7,
261
- 7, 7, 7, 7, 7, 7, 7, 7,
262
- 7, 7, 7, 7, 7, 7, 1, 51,
263
- 1, 48, 1, 1, 1, 1, 1, 1,
264
- 1, 1, 1, 1, 1, 1, 1, 1,
265
- 1, 1, 1, 1, 1, 1, 1, 1,
266
- 48, 1, 52, 1, 1, 1, 53, 1,
267
- 1, 1, 1, 1, 1, 1, 1, 1,
268
- 1, 1, 1, 1, 1, 1, 1, 1,
269
- 1, 52, 54, 54, 54, 54, 54, 54,
270
- 54, 55, 1, 54, 54, 54, 54, 54,
271
- 1, 54, 54, 54, 54, 54, 54, 54,
272
- 54, 54, 54, 1, 1, 1, 1, 1,
273
- 1, 1, 54, 54, 54, 54, 54, 54,
274
- 54, 54, 54, 54, 54, 54, 54, 54,
275
- 54, 54, 54, 54, 54, 54, 54, 54,
276
- 54, 54, 54, 54, 1, 1, 1, 54,
277
- 54, 54, 54, 54, 54, 54, 54, 54,
278
- 54, 54, 54, 54, 54, 54, 54, 54,
279
- 54, 54, 54, 54, 54, 54, 54, 54,
280
- 54, 54, 54, 54, 54, 54, 54, 54,
281
- 1, 34, 34, 34, 34, 34, 34, 34,
282
- 34, 34, 34, 34, 34, 34, 34, 34,
283
- 34, 34, 34, 34, 34, 34, 34, 34,
284
- 34, 34, 34, 34, 34, 34, 34, 34,
285
- 34, 34, 34, 34, 34, 34, 34, 34,
286
- 34, 34, 34, 34, 34, 34, 34, 34,
287
- 34, 34, 34, 34, 34, 34, 34, 34,
288
- 34, 34, 34, 34, 34, 34, 34, 34,
289
- 34, 34, 34, 34, 34, 34, 34, 34,
290
- 34, 34, 34, 34, 34, 34, 34, 34,
291
- 34, 34, 34, 34, 34, 34, 34, 34,
292
- 34, 34, 34, 34, 34, 34, 34, 34,
293
- 34, 34, 34, 34, 34, 34, 34, 34,
294
- 34, 34, 34, 34, 34, 34, 34, 34,
295
- 34, 34, 34, 34, 34, 34, 34, 34,
296
- 34, 34, 34, 34, 34, 34, 34, 34,
297
- 34, 1, 1, 1, 1, 1, 1, 1,
298
- 1, 1, 1, 1, 1, 1, 1, 1,
299
- 1, 1, 1, 1, 1, 1, 1, 1,
300
- 1, 1, 1, 1, 1, 1, 1, 1,
301
- 1, 1, 1, 1, 1, 1, 1, 1,
302
- 1, 1, 1, 1, 1, 1, 1, 1,
303
- 1, 1, 1, 1, 1, 1, 1, 1,
304
- 1, 1, 1, 1, 1, 1, 1, 1,
305
- 1, 1, 1, 38, 38, 38, 38, 38,
306
- 38, 38, 38, 38, 38, 38, 38, 38,
307
- 38, 38, 38, 38, 38, 38, 38, 38,
308
- 38, 38, 38, 38, 38, 38, 38, 38,
309
- 38, 39, 40, 40, 40, 40, 40, 40,
310
- 40, 40, 40, 40, 40, 40, 41, 40,
311
- 40, 42, 43, 43, 43, 44, 1, 34,
312
- 34, 34, 34, 34, 34, 34, 34, 34,
313
- 34, 34, 34, 34, 34, 34, 34, 34,
314
- 34, 34, 34, 34, 34, 34, 34, 34,
315
- 34, 34, 34, 34, 34, 34, 34, 34,
316
- 34, 34, 34, 34, 34, 34, 34, 34,
317
- 34, 34, 34, 34, 34, 34, 34, 34,
318
- 34, 34, 34, 34, 34, 34, 34, 34,
319
- 34, 34, 34, 34, 34, 34, 34, 1,
320
- 38, 38, 38, 38, 38, 38, 38, 38,
321
- 38, 38, 38, 38, 38, 38, 38, 38,
322
- 38, 38, 38, 38, 38, 38, 38, 38,
323
- 38, 38, 38, 38, 38, 38, 38, 38,
324
- 1, 38, 38, 38, 38, 38, 38, 38,
325
- 38, 38, 38, 38, 38, 38, 38, 38,
326
- 38, 38, 38, 38, 38, 38, 38, 38,
327
- 38, 38, 38, 38, 38, 38, 38, 38,
328
- 38, 38, 38, 38, 38, 38, 38, 38,
329
- 38, 38, 38, 38, 38, 38, 38, 38,
330
- 38, 38, 38, 38, 38, 38, 38, 38,
331
- 38, 38, 38, 38, 38, 38, 38, 38,
332
- 38, 1, 38, 38, 38, 38, 38, 38,
333
- 38, 38, 38, 38, 38, 38, 38, 38,
334
- 38, 38, 38, 38, 38, 38, 38, 38,
335
- 38, 38, 38, 38, 38, 38, 38, 38,
336
- 38, 38, 1, 40, 40, 40, 40, 40,
337
- 40, 40, 40, 40, 40, 40, 40, 40,
338
- 40, 40, 40, 40, 40, 40, 40, 40,
339
- 40, 40, 40, 40, 40, 40, 40, 40,
340
- 40, 40, 40, 40, 40, 40, 40, 40,
341
- 40, 40, 40, 40, 40, 40, 40, 40,
342
- 40, 40, 40, 1, 40, 40, 40, 40,
343
- 40, 40, 40, 40, 40, 40, 40, 40,
344
- 40, 40, 40, 40, 40, 40, 40, 40,
345
- 40, 40, 40, 40, 40, 40, 40, 40,
346
- 40, 40, 40, 40, 40, 40, 40, 40,
347
- 40, 40, 40, 40, 40, 40, 40, 40,
348
- 40, 40, 40, 40, 40, 40, 40, 40,
349
- 40, 40, 40, 40, 40, 40, 40, 40,
350
- 40, 40, 40, 40, 1, 40, 40, 40,
351
- 40, 40, 40, 40, 40, 40, 40, 40,
352
- 40, 40, 40, 40, 40, 1, 56, 1,
353
- 1, 1, 57, 1, 1, 1, 1, 1,
354
- 1, 1, 1, 1, 1, 1, 1, 1,
355
- 1, 1, 1, 1, 1, 56, 1, 58,
356
- 1, 1, 1, 1, 1, 59, 1, 60,
357
- 1, 61, 1, 1, 1, 1, 1, 1,
358
- 1, 1, 1, 1, 1, 1, 1, 1,
359
- 1, 1, 1, 1, 1, 1, 1, 1,
360
- 61, 1, 62, 1, 1, 1, 63, 1,
361
- 1, 1, 1, 1, 1, 1, 1, 1,
362
- 1, 1, 1, 1, 1, 1, 1, 1,
363
- 1, 62, 54, 54, 54, 54, 54, 54,
364
- 54, 64, 1, 54, 54, 54, 54, 54,
365
- 1, 54, 54, 54, 54, 54, 54, 54,
366
- 54, 54, 54, 1, 65, 1, 1, 1,
367
- 1, 1, 54, 54, 54, 54, 54, 54,
368
- 54, 54, 54, 54, 54, 54, 54, 54,
369
- 54, 54, 54, 54, 54, 54, 54, 54,
370
- 54, 54, 54, 54, 1, 1, 1, 54,
371
- 54, 54, 54, 54, 54, 54, 54, 54,
372
- 54, 54, 54, 54, 54, 54, 54, 54,
373
- 54, 54, 54, 54, 54, 54, 54, 54,
374
- 54, 54, 54, 54, 54, 54, 54, 54,
375
- 1, 66, 66, 66, 66, 66, 66, 66,
376
- 66, 66, 1, 66, 66, 67, 66, 66,
377
- 66, 66, 66, 66, 66, 66, 66, 66,
378
- 66, 66, 66, 66, 66, 66, 66, 66,
379
- 66, 66, 66, 66, 66, 66, 66, 66,
380
- 68, 69, 66, 66, 66, 66, 66, 66,
381
- 66, 66, 66, 66, 66, 66, 66, 66,
382
- 66, 66, 66, 66, 66, 66, 66, 66,
383
- 66, 66, 66, 66, 66, 66, 66, 66,
384
- 66, 66, 66, 66, 66, 66, 66, 66,
385
- 66, 66, 66, 66, 66, 66, 66, 66,
386
- 66, 66, 66, 66, 70, 66, 66, 66,
387
- 66, 66, 66, 66, 66, 66, 66, 66,
388
- 66, 66, 66, 66, 66, 66, 66, 66,
389
- 66, 66, 66, 66, 66, 66, 66, 66,
390
- 66, 66, 66, 66, 66, 66, 66, 66,
391
- 1, 1, 1, 1, 1, 1, 1, 1,
392
- 1, 1, 1, 1, 1, 1, 1, 1,
393
- 1, 1, 1, 1, 1, 1, 1, 1,
394
- 1, 1, 1, 1, 1, 1, 1, 1,
395
- 1, 1, 1, 1, 1, 1, 1, 1,
396
- 1, 1, 1, 1, 1, 1, 1, 1,
397
- 1, 1, 1, 1, 1, 1, 1, 1,
398
- 1, 1, 1, 1, 1, 1, 1, 1,
399
- 1, 1, 71, 71, 71, 71, 71, 71,
400
- 71, 71, 71, 71, 71, 71, 71, 71,
401
- 71, 71, 71, 71, 71, 71, 71, 71,
402
- 71, 71, 71, 71, 71, 71, 71, 71,
403
- 72, 73, 73, 73, 73, 73, 73, 73,
404
- 73, 73, 73, 73, 73, 74, 73, 73,
405
- 75, 76, 76, 76, 77, 1, 78, 78,
406
- 78, 78, 78, 78, 78, 78, 78, 1,
407
- 78, 78, 79, 78, 78, 78, 78, 78,
408
- 78, 78, 78, 78, 78, 78, 78, 78,
409
- 78, 78, 78, 78, 78, 78, 78, 78,
410
- 78, 78, 78, 78, 78, 80, 81, 78,
411
- 78, 78, 78, 78, 78, 78, 78, 78,
412
- 78, 78, 78, 78, 78, 78, 78, 78,
413
- 78, 78, 78, 78, 78, 78, 78, 78,
414
- 78, 78, 78, 78, 78, 78, 78, 78,
415
- 78, 78, 78, 78, 78, 78, 78, 78,
416
- 78, 78, 78, 78, 78, 78, 78, 78,
417
- 78, 82, 78, 78, 78, 78, 78, 78,
418
- 78, 78, 78, 78, 78, 78, 78, 78,
419
- 78, 78, 78, 78, 78, 78, 78, 78,
420
- 78, 78, 78, 78, 78, 78, 78, 78,
421
- 78, 78, 78, 78, 78, 1, 1, 1,
422
- 1, 1, 1, 1, 1, 1, 1, 1,
423
- 1, 1, 1, 1, 1, 1, 1, 1,
424
- 1, 1, 1, 1, 1, 1, 1, 1,
425
- 1, 1, 1, 1, 1, 1, 1, 1,
426
- 1, 1, 1, 1, 1, 1, 1, 1,
427
- 1, 1, 1, 1, 1, 1, 1, 1,
428
- 1, 1, 1, 1, 1, 1, 1, 1,
429
- 1, 1, 1, 1, 1, 1, 1, 83,
430
- 83, 83, 83, 83, 83, 83, 83, 83,
431
- 83, 83, 83, 83, 83, 83, 83, 83,
432
- 83, 83, 83, 83, 83, 83, 83, 83,
433
- 83, 83, 83, 83, 83, 84, 85, 85,
434
- 85, 85, 85, 85, 85, 85, 85, 85,
435
- 85, 85, 86, 85, 85, 87, 88, 88,
436
- 88, 89, 1, 90, 1, 78, 1, 1,
437
- 1, 1, 1, 1, 1, 1, 1, 1,
438
- 1, 1, 1, 1, 1, 1, 1, 1,
439
- 1, 1, 1, 1, 78, 1, 78, 78,
440
- 78, 78, 78, 78, 78, 78, 78, 78,
441
- 78, 78, 78, 78, 78, 78, 78, 78,
442
- 78, 78, 78, 78, 78, 78, 78, 78,
443
- 78, 78, 78, 78, 78, 78, 78, 78,
444
- 78, 78, 78, 78, 78, 78, 78, 78,
445
- 78, 78, 78, 78, 78, 78, 78, 78,
446
- 78, 78, 78, 78, 78, 78, 78, 78,
447
- 78, 78, 78, 78, 78, 78, 78, 78,
448
- 78, 78, 78, 78, 78, 78, 78, 78,
449
- 78, 78, 78, 78, 78, 78, 78, 78,
450
- 78, 78, 78, 78, 78, 78, 78, 78,
451
- 78, 78, 78, 78, 78, 78, 78, 78,
452
- 78, 78, 78, 78, 78, 78, 78, 78,
453
- 78, 78, 78, 78, 78, 78, 78, 78,
454
- 78, 78, 78, 78, 78, 78, 78, 78,
455
- 78, 78, 78, 78, 78, 78, 1, 1,
456
- 1, 1, 1, 1, 1, 1, 1, 1,
457
- 1, 1, 1, 1, 1, 1, 1, 1,
458
- 1, 1, 1, 1, 1, 1, 1, 1,
459
- 1, 1, 1, 1, 1, 1, 1, 1,
460
- 1, 1, 1, 1, 1, 1, 1, 1,
461
- 1, 1, 1, 1, 1, 1, 1, 1,
462
- 1, 1, 1, 1, 1, 1, 1, 1,
463
- 1, 1, 1, 1, 1, 1, 1, 1,
464
- 83, 83, 83, 83, 83, 83, 83, 83,
465
- 83, 83, 83, 83, 83, 83, 83, 83,
466
- 83, 83, 83, 83, 83, 83, 83, 83,
467
- 83, 83, 83, 83, 83, 83, 84, 85,
468
- 85, 85, 85, 85, 85, 85, 85, 85,
469
- 85, 85, 85, 86, 85, 85, 87, 88,
470
- 88, 88, 89, 1, 78, 78, 78, 78,
471
- 78, 78, 78, 78, 78, 78, 78, 78,
472
- 78, 78, 78, 78, 78, 78, 78, 78,
473
- 78, 78, 78, 78, 78, 78, 78, 78,
474
- 78, 78, 78, 78, 78, 78, 78, 78,
475
- 78, 78, 78, 78, 78, 78, 78, 78,
476
- 78, 78, 78, 78, 78, 78, 78, 78,
477
- 78, 78, 78, 78, 78, 78, 78, 78,
478
- 78, 78, 78, 78, 1, 83, 83, 83,
479
- 83, 83, 83, 83, 83, 83, 83, 83,
480
- 83, 83, 83, 83, 83, 83, 83, 83,
481
- 83, 83, 83, 83, 83, 83, 83, 83,
482
- 83, 83, 83, 83, 83, 1, 83, 83,
483
- 83, 83, 83, 83, 83, 83, 83, 83,
484
- 83, 83, 83, 83, 83, 83, 83, 83,
485
- 83, 83, 83, 83, 83, 83, 83, 83,
486
- 83, 83, 83, 83, 83, 83, 83, 83,
487
- 83, 83, 83, 83, 83, 83, 83, 83,
488
- 83, 83, 83, 83, 83, 83, 83, 83,
489
- 83, 83, 83, 83, 83, 83, 83, 83,
490
- 83, 83, 83, 83, 83, 83, 1, 83,
491
- 83, 83, 83, 83, 83, 83, 83, 83,
492
- 83, 83, 83, 83, 83, 83, 83, 83,
493
- 83, 83, 83, 83, 83, 83, 83, 83,
494
- 83, 83, 83, 83, 83, 83, 83, 1,
495
- 85, 85, 85, 85, 85, 85, 85, 85,
496
- 85, 85, 85, 85, 85, 85, 85, 85,
497
- 85, 85, 85, 85, 85, 85, 85, 85,
498
- 85, 85, 85, 85, 85, 85, 85, 85,
499
- 85, 85, 85, 85, 85, 85, 85, 85,
500
- 85, 85, 85, 85, 85, 85, 85, 85,
501
- 1, 85, 85, 85, 85, 85, 85, 85,
502
- 85, 85, 85, 85, 85, 85, 85, 85,
503
- 85, 85, 85, 85, 85, 85, 85, 85,
504
- 85, 85, 85, 85, 85, 85, 85, 85,
505
- 85, 85, 85, 85, 85, 85, 85, 85,
506
- 85, 85, 85, 85, 85, 85, 85, 85,
507
- 85, 85, 85, 85, 85, 85, 85, 85,
508
- 85, 85, 85, 85, 85, 85, 85, 85,
509
- 85, 1, 85, 85, 85, 85, 85, 85,
510
- 85, 85, 85, 85, 85, 85, 85, 85,
511
- 85, 85, 1, 91, 1, 1, 1, 92,
512
- 1, 1, 1, 1, 1, 1, 1, 1,
513
- 1, 1, 1, 1, 1, 1, 1, 1,
514
- 1, 1, 91, 93, 93, 93, 93, 93,
515
- 93, 93, 94, 1, 93, 93, 93, 93,
516
- 93, 1, 93, 93, 93, 93, 93, 93,
517
- 93, 93, 93, 93, 1, 95, 1, 1,
518
- 1, 1, 1, 93, 93, 93, 93, 93,
519
- 93, 93, 93, 93, 93, 93, 93, 93,
520
- 93, 93, 93, 93, 93, 93, 93, 93,
521
- 93, 93, 93, 93, 93, 1, 1, 1,
522
- 93, 93, 93, 93, 93, 93, 93, 93,
523
- 93, 93, 93, 93, 93, 93, 93, 93,
524
- 93, 93, 93, 93, 93, 93, 93, 93,
525
- 93, 93, 93, 93, 93, 93, 93, 93,
526
- 93, 1, 96, 1, 1, 1, 97, 1,
527
- 1, 1, 1, 1, 1, 1, 1, 1,
528
- 1, 1, 1, 1, 1, 1, 1, 1,
529
- 1, 96, 1, 1, 1, 1, 1, 1,
530
- 1, 98, 1, 1, 1, 1, 1, 1,
531
- 1, 1, 1, 1, 1, 1, 1, 1,
532
- 1, 1, 1, 1, 99, 1, 96, 1,
533
- 1, 1, 97, 1, 1, 1, 1, 1,
534
- 1, 1, 1, 1, 1, 1, 1, 1,
535
- 1, 1, 1, 1, 1, 96, 7, 7,
536
- 7, 7, 7, 7, 7, 98, 1, 7,
537
- 7, 7, 7, 7, 1, 7, 7, 7,
538
- 7, 7, 7, 7, 7, 7, 7, 1,
539
- 99, 1, 1, 1, 1, 1, 7, 7,
540
- 7, 7, 7, 7, 7, 7, 7, 7,
541
- 7, 7, 7, 7, 7, 7, 7, 7,
542
- 7, 7, 7, 7, 7, 7, 7, 7,
543
- 1, 1, 1, 7, 7, 7, 7, 7,
544
- 7, 7, 7, 7, 7, 7, 7, 7,
545
- 7, 7, 7, 7, 7, 7, 7, 7,
546
- 7, 7, 7, 7, 7, 7, 7, 7,
547
- 7, 7, 7, 7, 1, 100, 1, 1,
548
- 1, 101, 1, 1, 1, 1, 1, 1,
549
- 1, 1, 1, 1, 1, 1, 1, 1,
550
- 1, 1, 1, 1, 100, 54, 54, 54,
551
- 54, 54, 54, 54, 102, 1, 54, 54,
552
- 54, 54, 54, 1, 54, 54, 54, 54,
553
- 54, 54, 54, 54, 54, 54, 1, 103,
554
- 1, 1, 1, 1, 1, 54, 54, 54,
555
- 54, 54, 54, 54, 54, 54, 54, 54,
556
- 54, 54, 54, 54, 54, 54, 54, 54,
557
- 54, 54, 54, 54, 54, 54, 54, 1,
558
- 1, 1, 54, 54, 54, 54, 54, 54,
559
- 54, 54, 54, 54, 54, 54, 54, 54,
560
- 54, 54, 54, 54, 54, 54, 54, 54,
561
- 54, 54, 54, 54, 54, 54, 54, 54,
562
- 54, 54, 54, 1, 104, 1, 1, 1,
563
- 105, 1, 1, 1, 1, 1, 1, 1,
564
- 1, 1, 1, 1, 1, 1, 1, 1,
565
- 1, 1, 1, 104, 106, 1, 106, 106,
566
- 106, 106, 106, 107, 1, 106, 106, 106,
567
- 106, 106, 1, 106, 106, 106, 106, 106,
568
- 106, 106, 106, 106, 106, 1, 99, 1,
569
- 106, 1, 1, 1, 106, 106, 106, 106,
570
- 106, 106, 106, 106, 106, 106, 106, 106,
571
- 106, 106, 106, 106, 106, 106, 106, 106,
572
- 106, 106, 106, 106, 106, 106, 1, 1,
573
- 1, 106, 106, 106, 106, 106, 106, 106,
574
- 106, 106, 106, 106, 106, 106, 106, 106,
575
- 106, 106, 106, 106, 106, 106, 106, 106,
576
- 106, 106, 106, 106, 106, 106, 106, 106,
577
- 106, 106, 1, 61, 1, 1, 1, 108,
578
- 1, 1, 1, 1, 1, 1, 1, 1,
579
- 1, 1, 1, 1, 1, 1, 1, 1,
580
- 1, 1, 61, 7, 7, 7, 7, 7,
581
- 7, 7, 109, 1, 7, 7, 7, 7,
582
- 7, 1, 7, 7, 7, 7, 7, 7,
583
- 7, 7, 7, 7, 1, 9, 1, 1,
584
- 1, 1, 1, 7, 7, 7, 7, 7,
585
- 7, 7, 7, 7, 7, 7, 7, 7,
586
- 7, 7, 7, 7, 7, 7, 7, 7,
587
- 7, 7, 7, 7, 7, 1, 1, 1,
588
- 7, 7, 7, 7, 7, 7, 7, 7,
589
- 7, 7, 7, 7, 7, 7, 7, 7,
590
- 7, 7, 7, 7, 7, 7, 7, 7,
591
- 7, 7, 7, 7, 7, 7, 7, 7,
592
- 7, 1, 110, 1, 1, 1, 111, 1,
593
- 1, 1, 1, 1, 1, 1, 1, 1,
594
- 1, 1, 1, 1, 1, 1, 1, 1,
595
- 1, 110, 54, 54, 54, 54, 54, 54,
596
- 54, 112, 1, 54, 54, 54, 54, 54,
597
- 1, 54, 54, 54, 54, 54, 54, 54,
598
- 54, 54, 54, 1, 65, 1, 1, 1,
599
- 1, 1, 54, 54, 54, 54, 54, 54,
600
- 54, 54, 54, 54, 54, 54, 54, 54,
601
- 54, 54, 54, 54, 54, 54, 54, 54,
602
- 54, 54, 54, 54, 1, 1, 1, 54,
603
- 54, 54, 54, 54, 54, 54, 54, 54,
604
- 54, 54, 54, 54, 54, 54, 54, 54,
605
- 54, 54, 54, 54, 54, 54, 54, 54,
606
- 54, 54, 54, 54, 54, 54, 54, 54,
607
- 1, 1, 0
608
- ]
609
-
610
- class << self
611
- attr_accessor :_trans_targs
612
- private :_trans_targs, :_trans_targs=
613
- end
614
- self._trans_targs = [
615
- 2, 0, 2, 3, 47, 4, 5, 7,
616
- 34, 18, 6, 7, 8, 9, 10, 51,
617
- 12, 31, 9, 10, 12, 31, 11, 13,
618
- 14, 48, 23, 24, 25, 26, 27, 28,
619
- 29, 30, 13, 14, 48, 23, 24, 25,
620
- 26, 27, 28, 29, 30, 15, 17, 49,
621
- 19, 20, 22, 21, 19, 20, 7, 22,
622
- 9, 10, 12, 31, 33, 52, 4, 5,
623
- 34, 18, 36, 37, 36, 54, 39, 40,
624
- 41, 42, 43, 44, 45, 46, 36, 37,
625
- 36, 54, 39, 40, 41, 42, 43, 44,
626
- 45, 46, 38, 4, 5, 47, 34, 18,
627
- 49, 16, 50, 18, 49, 16, 50, 18,
628
- 52, 32, 51, 53, 32, 53, 52, 32,
629
- 53
630
- ]
631
-
632
- class << self
633
- attr_accessor :_trans_actions
634
- private :_trans_actions, :_trans_actions=
635
- end
636
- self._trans_actions = [
637
- 1, 0, 0, 2, 3, 0, 0, 4,
638
- 5, 0, 0, 0, 6, 7, 7, 7,
639
- 7, 8, 0, 0, 0, 5, 0, 9,
640
- 9, 10, 9, 9, 9, 9, 9, 9,
641
- 9, 9, 0, 0, 11, 0, 0, 0,
642
- 0, 0, 0, 0, 0, 0, 0, 0,
643
- 0, 0, 5, 0, 12, 12, 13, 14,
644
- 12, 12, 12, 14, 0, 0, 12, 12,
645
- 14, 12, 15, 15, 16, 17, 15, 15,
646
- 15, 15, 15, 15, 15, 15, 0, 0,
647
- 5, 18, 0, 0, 0, 0, 0, 0,
648
- 0, 0, 0, 19, 19, 0, 20, 19,
649
- 21, 21, 22, 21, 23, 23, 24, 23,
650
- 21, 21, 0, 25, 0, 5, 12, 12,
651
- 14
652
- ]
653
-
654
- class << self
655
- attr_accessor :_eof_actions
656
- private :_eof_actions, :_eof_actions=
657
- end
658
- self._eof_actions = [
659
- 0, 0, 0, 0, 0, 0, 0, 0,
660
- 0, 0, 0, 0, 0, 0, 0, 0,
661
- 0, 0, 0, 0, 0, 0, 0, 0,
662
- 0, 0, 0, 0, 0, 0, 0, 0,
663
- 0, 0, 0, 0, 0, 0, 0, 0,
664
- 0, 0, 0, 0, 0, 0, 0, 19,
665
- 21, 21, 23, 21, 0, 12, 0
666
- ]
667
-
668
- class << self
669
- attr_accessor :start
670
- end
671
- self.start = 1;
672
- class << self
673
- attr_accessor :first_final
674
- end
675
- self.first_final = 47;
676
- class << self
677
- attr_accessor :error
678
- end
679
- self.error = 0;
680
-
681
- class << self
682
- attr_accessor :en_comment_tail
683
- end
684
- self.en_comment_tail = 35;
685
- class << self
686
- attr_accessor :en_main
687
- end
688
- self.en_main = 1;
689
-
690
-
15
+ class << self
16
+ attr_accessor :_trans_keys
17
+ private :_trans_keys, :_trans_keys=
18
+ end
19
+ self._trans_keys = [
20
+ 0, 0, 33, 126, 33, 126,
21
+ 33, 126, 9, 126, 10,
22
+ 10, 9, 32, 33, 126,
23
+ 9, 126, 9, 40, 10, 10,
24
+ 9, 32, 1, 244, 1,
25
+ 244, 10, 10, 9, 32,
26
+ 10, 10, 9, 32, 9, 126,
27
+ 9, 126, 10, 10, 9,
28
+ 32, 9, 126, 0, 244,
29
+ 128, 191, 160, 191, 128, 191,
30
+ 128, 159, 144, 191, 128,
31
+ 191, 128, 143, 9, 40,
32
+ 10, 10, 9, 32, 9, 126,
33
+ 1, 244, 1, 244, 10,
34
+ 10, 9, 32, 0, 244,
35
+ 128, 191, 160, 191, 128, 191,
36
+ 128, 159, 144, 191, 128,
37
+ 191, 128, 143, 9, 126,
38
+ 9, 59, 9, 126, 9, 126,
39
+ 9, 126, 9, 126, 9,
40
+ 126, 0, 0, 0,
41
+ ]
691
42
 
692
- def self.parse(data)
693
- data = data.dup.force_encoding(Encoding::ASCII_8BIT) if data.respond_to?(:force_encoding)
43
+ class << self
44
+ attr_accessor :_key_spans
45
+ private :_key_spans, :_key_spans=
46
+ end
47
+ self._key_spans = [
48
+ 0, 94, 94, 94, 118, 1, 24, 94,
49
+ 118, 32, 1, 24, 244, 244, 1, 24,
50
+ 1, 24, 118, 118, 1, 24, 118, 245,
51
+ 64, 32, 64, 32, 48, 64, 16, 32,
52
+ 1, 24, 118, 244, 244, 1, 24, 245,
53
+ 64, 32, 64, 32, 48, 64, 16, 118,
54
+ 51, 118, 118, 118, 118, 118, 0,
55
+ ]
694
56
 
695
- return ContentTypeStruct.new('text', 'plain', []) if Mail::Utilities.blank?(data)
696
- content_type = ContentTypeStruct.new(nil, nil, [])
57
+ class << self
58
+ attr_accessor :_index_offsets
59
+ private :_index_offsets, :_index_offsets=
60
+ end
61
+ self._index_offsets = [
62
+ 0, 0, 95, 190, 285, 404, 406, 431,
63
+ 526, 645, 678, 680, 705, 950, 1195, 1197,
64
+ 1222, 1224, 1249, 1368, 1487, 1489, 1514, 1633,
65
+ 1879, 1944, 1977, 2042, 2075, 2124, 2189, 2206,
66
+ 2239, 2241, 2266, 2385, 2630, 2875, 2877, 2902,
67
+ 3148, 3213, 3246, 3311, 3344, 3393, 3458, 3475,
68
+ 3594, 3646, 3765, 3884, 4003, 4122, 4241,
69
+ ]
697
70
 
698
- # Parser state
699
- main_type_s = sub_type_s = param_attr_s = param_attr = nil
700
- qstr_s = qstr = param_val_s = nil
71
+ class << self
72
+ attr_accessor :_indicies
73
+ private :_indicies, :_indicies=
74
+ end
75
+ self._indicies = [
76
+ 0, 0, 0, 0, 0, 0, 0, 1,
77
+ 1, 0, 0, 0, 0, 0, 1, 0,
78
+ 0, 0, 0, 0, 0, 0, 0, 0,
79
+ 0, 1, 1, 1, 1, 1, 1, 1,
80
+ 0, 0, 0, 0, 0, 0, 0, 0,
81
+ 0, 0, 0, 0, 0, 0, 0, 0,
82
+ 0, 0, 0, 0, 0, 0, 0, 0,
83
+ 0, 0, 1, 1, 1, 0, 0, 0,
84
+ 0, 0, 0, 0, 0, 0, 0, 0,
85
+ 0, 0, 0, 0, 0, 0, 0, 0,
86
+ 0, 0, 0, 0, 0, 0, 0, 0,
87
+ 0, 0, 0, 0, 0, 0, 1, 2,
88
+ 2, 2, 2, 2, 2, 2, 1, 1,
89
+ 2, 2, 2, 2, 2, 3, 2, 2,
90
+ 2, 2, 2, 2, 2, 2, 2, 2,
91
+ 1, 1, 1, 1, 1, 1, 1, 2,
92
+ 2, 2, 2, 2, 2, 2, 2, 2,
93
+ 2, 2, 2, 2, 2, 2, 2, 2,
94
+ 2, 2, 2, 2, 2, 2, 2, 2,
95
+ 2, 1, 1, 1, 2, 2, 2, 2,
96
+ 2, 2, 2, 2, 2, 2, 2, 2,
97
+ 2, 2, 2, 2, 2, 2, 2, 2,
98
+ 2, 2, 2, 2, 2, 2, 2, 2,
99
+ 2, 2, 2, 2, 2, 1, 4, 4,
100
+ 4, 4, 4, 4, 4, 1, 1, 4,
101
+ 4, 4, 4, 4, 1, 4, 4, 4,
102
+ 4, 4, 4, 4, 4, 4, 4, 1,
103
+ 1, 1, 1, 1, 1, 1, 4, 4,
104
+ 4, 4, 4, 4, 4, 4, 4, 4,
105
+ 4, 4, 4, 4, 4, 4, 4, 4,
106
+ 4, 4, 4, 4, 4, 4, 4, 4,
107
+ 1, 1, 1, 4, 4, 4, 4, 4,
108
+ 4, 4, 4, 4, 4, 4, 4, 4,
109
+ 4, 4, 4, 4, 4, 4, 4, 4,
110
+ 4, 4, 4, 4, 4, 4, 4, 4,
111
+ 4, 4, 4, 4, 1, 5, 1, 1,
112
+ 1, 6, 1, 1, 1, 1, 1, 1,
113
+ 1, 1, 1, 1, 1, 1, 1, 1,
114
+ 1, 1, 1, 1, 5, 7, 7, 7,
115
+ 7, 7, 7, 7, 8, 1, 7, 7,
116
+ 7, 7, 7, 1, 7, 7, 7, 7,
117
+ 7, 7, 7, 7, 7, 7, 1, 9,
118
+ 1, 1, 1, 1, 1, 7, 7, 7,
119
+ 7, 7, 7, 7, 7, 7, 7, 7,
120
+ 7, 7, 7, 7, 7, 7, 7, 7,
121
+ 7, 7, 7, 7, 7, 7, 7, 1,
122
+ 1, 1, 7, 7, 7, 7, 7, 7,
123
+ 7, 7, 7, 7, 7, 7, 7, 7,
124
+ 7, 7, 7, 7, 7, 7, 7, 7,
125
+ 7, 7, 7, 7, 7, 7, 7, 7,
126
+ 7, 7, 7, 1, 10, 1, 5, 1,
127
+ 1, 1, 1, 1, 1, 1, 1, 1,
128
+ 1, 1, 1, 1, 1, 1, 1, 1,
129
+ 1, 1, 1, 1, 1, 5, 1, 11,
130
+ 11, 11, 11, 11, 11, 11, 1, 1,
131
+ 11, 11, 11, 11, 11, 1, 11, 11,
132
+ 11, 11, 11, 11, 11, 11, 11, 11,
133
+ 1, 1, 1, 12, 1, 1, 1, 11,
134
+ 11, 11, 11, 11, 11, 11, 11, 11,
135
+ 11, 11, 11, 11, 11, 11, 11, 11,
136
+ 11, 11, 11, 11, 11, 11, 11, 11,
137
+ 11, 1, 1, 1, 11, 11, 11, 11,
138
+ 11, 11, 11, 11, 11, 11, 11, 11,
139
+ 11, 11, 11, 11, 11, 11, 11, 11,
140
+ 11, 11, 11, 11, 11, 11, 11, 11,
141
+ 11, 11, 11, 11, 11, 1, 13, 1,
142
+ 1, 1, 14, 1, 1, 1, 1, 1,
143
+ 1, 1, 1, 1, 1, 1, 1, 1,
144
+ 1, 1, 1, 1, 1, 13, 15, 16,
145
+ 15, 15, 15, 15, 15, 17, 1, 15,
146
+ 15, 15, 15, 15, 1, 15, 15, 15,
147
+ 15, 15, 15, 15, 15, 15, 15, 1,
148
+ 1, 1, 15, 1, 1, 1, 15, 15,
149
+ 15, 15, 15, 15, 15, 15, 15, 15,
150
+ 15, 15, 15, 15, 15, 15, 15, 15,
151
+ 15, 15, 15, 15, 15, 15, 15, 15,
152
+ 1, 1, 1, 15, 15, 15, 15, 15,
153
+ 15, 15, 15, 15, 15, 15, 15, 15,
154
+ 15, 15, 15, 15, 15, 15, 15, 15,
155
+ 15, 15, 15, 15, 15, 15, 15, 15,
156
+ 15, 15, 15, 15, 1, 18, 1, 1,
157
+ 1, 19, 1, 1, 1, 1, 1, 1,
158
+ 1, 1, 1, 1, 1, 1, 1, 1,
159
+ 1, 1, 1, 1, 18, 1, 20, 1,
160
+ 1, 1, 1, 1, 21, 1, 22, 1,
161
+ 18, 1, 1, 1, 1, 1, 1, 1,
162
+ 1, 1, 1, 1, 1, 1, 1, 1,
163
+ 1, 1, 1, 1, 1, 1, 1, 18,
164
+ 1, 23, 23, 23, 23, 23, 23, 23,
165
+ 23, 23, 1, 23, 23, 24, 23, 23,
166
+ 23, 23, 23, 23, 23, 23, 23, 23,
167
+ 23, 23, 23, 23, 23, 23, 23, 23,
168
+ 23, 23, 25, 23, 23, 23, 23, 23,
169
+ 23, 23, 23, 23, 23, 23, 23, 23,
170
+ 23, 23, 23, 23, 23, 23, 23, 23,
171
+ 23, 23, 23, 23, 23, 23, 23, 23,
172
+ 23, 23, 23, 23, 23, 23, 23, 23,
173
+ 23, 23, 23, 23, 23, 23, 23, 23,
174
+ 23, 23, 23, 23, 23, 23, 23, 23,
175
+ 23, 23, 23, 23, 26, 23, 23, 23,
176
+ 23, 23, 23, 23, 23, 23, 23, 23,
177
+ 23, 23, 23, 23, 23, 23, 23, 23,
178
+ 23, 23, 23, 23, 23, 23, 23, 23,
179
+ 23, 23, 23, 23, 23, 23, 23, 23,
180
+ 1, 1, 1, 1, 1, 1, 1, 1,
181
+ 1, 1, 1, 1, 1, 1, 1, 1,
182
+ 1, 1, 1, 1, 1, 1, 1, 1,
183
+ 1, 1, 1, 1, 1, 1, 1, 1,
184
+ 1, 1, 1, 1, 1, 1, 1, 1,
185
+ 1, 1, 1, 1, 1, 1, 1, 1,
186
+ 1, 1, 1, 1, 1, 1, 1, 1,
187
+ 1, 1, 1, 1, 1, 1, 1, 1,
188
+ 1, 1, 27, 27, 27, 27, 27, 27,
189
+ 27, 27, 27, 27, 27, 27, 27, 27,
190
+ 27, 27, 27, 27, 27, 27, 27, 27,
191
+ 27, 27, 27, 27, 27, 27, 27, 27,
192
+ 28, 29, 29, 29, 29, 29, 29, 29,
193
+ 29, 29, 29, 29, 29, 30, 29, 29,
194
+ 31, 32, 32, 32, 33, 1, 34, 34,
195
+ 34, 34, 34, 34, 34, 34, 34, 1,
196
+ 34, 34, 35, 34, 34, 34, 34, 34,
197
+ 34, 34, 34, 34, 34, 34, 34, 34,
198
+ 34, 34, 34, 34, 34, 34, 34, 36,
199
+ 34, 34, 34, 34, 34, 34, 34, 34,
200
+ 34, 34, 34, 34, 34, 34, 34, 34,
201
+ 34, 34, 34, 34, 34, 34, 34, 34,
202
+ 34, 34, 34, 34, 34, 34, 34, 34,
203
+ 34, 34, 34, 34, 34, 34, 34, 34,
204
+ 34, 34, 34, 34, 34, 34, 34, 34,
205
+ 34, 34, 34, 34, 34, 34, 34, 34,
206
+ 34, 37, 34, 34, 34, 34, 34, 34,
207
+ 34, 34, 34, 34, 34, 34, 34, 34,
208
+ 34, 34, 34, 34, 34, 34, 34, 34,
209
+ 34, 34, 34, 34, 34, 34, 34, 34,
210
+ 34, 34, 34, 34, 34, 1, 1, 1,
211
+ 1, 1, 1, 1, 1, 1, 1, 1,
212
+ 1, 1, 1, 1, 1, 1, 1, 1,
213
+ 1, 1, 1, 1, 1, 1, 1, 1,
214
+ 1, 1, 1, 1, 1, 1, 1, 1,
215
+ 1, 1, 1, 1, 1, 1, 1, 1,
216
+ 1, 1, 1, 1, 1, 1, 1, 1,
217
+ 1, 1, 1, 1, 1, 1, 1, 1,
218
+ 1, 1, 1, 1, 1, 1, 1, 38,
219
+ 38, 38, 38, 38, 38, 38, 38, 38,
220
+ 38, 38, 38, 38, 38, 38, 38, 38,
221
+ 38, 38, 38, 38, 38, 38, 38, 38,
222
+ 38, 38, 38, 38, 38, 39, 40, 40,
223
+ 40, 40, 40, 40, 40, 40, 40, 40,
224
+ 40, 40, 41, 40, 40, 42, 43, 43,
225
+ 43, 44, 1, 45, 1, 34, 1, 1,
226
+ 1, 1, 1, 1, 1, 1, 1, 1,
227
+ 1, 1, 1, 1, 1, 1, 1, 1,
228
+ 1, 1, 1, 1, 34, 1, 46, 1,
229
+ 47, 1, 1, 1, 1, 1, 1, 1,
230
+ 1, 1, 1, 1, 1, 1, 1, 1,
231
+ 1, 1, 1, 1, 1, 1, 1, 47,
232
+ 1, 48, 1, 1, 1, 49, 1, 1,
233
+ 1, 1, 1, 1, 1, 1, 1, 1,
234
+ 1, 1, 1, 1, 1, 1, 1, 1,
235
+ 48, 7, 7, 7, 7, 7, 7, 7,
236
+ 50, 1, 7, 7, 7, 7, 7, 1,
237
+ 7, 7, 7, 7, 7, 7, 7, 7,
238
+ 7, 7, 1, 9, 1, 1, 1, 1,
239
+ 1, 7, 7, 7, 7, 7, 7, 7,
240
+ 7, 7, 7, 7, 7, 7, 7, 7,
241
+ 7, 7, 7, 7, 7, 7, 7, 7,
242
+ 7, 7, 7, 1, 1, 1, 7, 7,
243
+ 7, 7, 7, 7, 7, 7, 7, 7,
244
+ 7, 7, 7, 7, 7, 7, 7, 7,
245
+ 7, 7, 7, 7, 7, 7, 7, 7,
246
+ 7, 7, 7, 7, 7, 7, 7, 1,
247
+ 48, 1, 1, 1, 49, 1, 1, 1,
248
+ 1, 1, 1, 1, 1, 1, 1, 1,
249
+ 1, 1, 1, 1, 1, 1, 1, 48,
250
+ 7, 7, 7, 7, 7, 7, 7, 50,
251
+ 1, 7, 7, 7, 7, 7, 1, 7,
252
+ 7, 7, 7, 7, 7, 7, 7, 7,
253
+ 7, 1, 1, 1, 1, 1, 1, 1,
254
+ 7, 7, 7, 7, 7, 7, 7, 7,
255
+ 7, 7, 7, 7, 7, 7, 7, 7,
256
+ 7, 7, 7, 7, 7, 7, 7, 7,
257
+ 7, 7, 1, 1, 1, 7, 7, 7,
258
+ 7, 7, 7, 7, 7, 7, 7, 7,
259
+ 7, 7, 7, 7, 7, 7, 7, 7,
260
+ 7, 7, 7, 7, 7, 7, 7, 7,
261
+ 7, 7, 7, 7, 7, 7, 1, 51,
262
+ 1, 48, 1, 1, 1, 1, 1, 1,
263
+ 1, 1, 1, 1, 1, 1, 1, 1,
264
+ 1, 1, 1, 1, 1, 1, 1, 1,
265
+ 48, 1, 52, 1, 1, 1, 53, 1,
266
+ 1, 1, 1, 1, 1, 1, 1, 1,
267
+ 1, 1, 1, 1, 1, 1, 1, 1,
268
+ 1, 52, 54, 54, 54, 54, 54, 54,
269
+ 54, 55, 1, 54, 54, 54, 54, 54,
270
+ 1, 54, 54, 54, 54, 54, 54, 54,
271
+ 54, 54, 54, 1, 1, 1, 1, 1,
272
+ 1, 1, 54, 54, 54, 54, 54, 54,
273
+ 54, 54, 54, 54, 54, 54, 54, 54,
274
+ 54, 54, 54, 54, 54, 54, 54, 54,
275
+ 54, 54, 54, 54, 1, 1, 1, 54,
276
+ 54, 54, 54, 54, 54, 54, 54, 54,
277
+ 54, 54, 54, 54, 54, 54, 54, 54,
278
+ 54, 54, 54, 54, 54, 54, 54, 54,
279
+ 54, 54, 54, 54, 54, 54, 54, 54,
280
+ 1, 34, 34, 34, 34, 34, 34, 34,
281
+ 34, 34, 34, 34, 34, 34, 34, 34,
282
+ 34, 34, 34, 34, 34, 34, 34, 34,
283
+ 34, 34, 34, 34, 34, 34, 34, 34,
284
+ 34, 34, 34, 34, 34, 34, 34, 34,
285
+ 34, 34, 34, 34, 34, 34, 34, 34,
286
+ 34, 34, 34, 34, 34, 34, 34, 34,
287
+ 34, 34, 34, 34, 34, 34, 34, 34,
288
+ 34, 34, 34, 34, 34, 34, 34, 34,
289
+ 34, 34, 34, 34, 34, 34, 34, 34,
290
+ 34, 34, 34, 34, 34, 34, 34, 34,
291
+ 34, 34, 34, 34, 34, 34, 34, 34,
292
+ 34, 34, 34, 34, 34, 34, 34, 34,
293
+ 34, 34, 34, 34, 34, 34, 34, 34,
294
+ 34, 34, 34, 34, 34, 34, 34, 34,
295
+ 34, 34, 34, 34, 34, 34, 34, 34,
296
+ 34, 1, 1, 1, 1, 1, 1, 1,
297
+ 1, 1, 1, 1, 1, 1, 1, 1,
298
+ 1, 1, 1, 1, 1, 1, 1, 1,
299
+ 1, 1, 1, 1, 1, 1, 1, 1,
300
+ 1, 1, 1, 1, 1, 1, 1, 1,
301
+ 1, 1, 1, 1, 1, 1, 1, 1,
302
+ 1, 1, 1, 1, 1, 1, 1, 1,
303
+ 1, 1, 1, 1, 1, 1, 1, 1,
304
+ 1, 1, 1, 38, 38, 38, 38, 38,
305
+ 38, 38, 38, 38, 38, 38, 38, 38,
306
+ 38, 38, 38, 38, 38, 38, 38, 38,
307
+ 38, 38, 38, 38, 38, 38, 38, 38,
308
+ 38, 39, 40, 40, 40, 40, 40, 40,
309
+ 40, 40, 40, 40, 40, 40, 41, 40,
310
+ 40, 42, 43, 43, 43, 44, 1, 34,
311
+ 34, 34, 34, 34, 34, 34, 34, 34,
312
+ 34, 34, 34, 34, 34, 34, 34, 34,
313
+ 34, 34, 34, 34, 34, 34, 34, 34,
314
+ 34, 34, 34, 34, 34, 34, 34, 34,
315
+ 34, 34, 34, 34, 34, 34, 34, 34,
316
+ 34, 34, 34, 34, 34, 34, 34, 34,
317
+ 34, 34, 34, 34, 34, 34, 34, 34,
318
+ 34, 34, 34, 34, 34, 34, 34, 1,
319
+ 38, 38, 38, 38, 38, 38, 38, 38,
320
+ 38, 38, 38, 38, 38, 38, 38, 38,
321
+ 38, 38, 38, 38, 38, 38, 38, 38,
322
+ 38, 38, 38, 38, 38, 38, 38, 38,
323
+ 1, 38, 38, 38, 38, 38, 38, 38,
324
+ 38, 38, 38, 38, 38, 38, 38, 38,
325
+ 38, 38, 38, 38, 38, 38, 38, 38,
326
+ 38, 38, 38, 38, 38, 38, 38, 38,
327
+ 38, 38, 38, 38, 38, 38, 38, 38,
328
+ 38, 38, 38, 38, 38, 38, 38, 38,
329
+ 38, 38, 38, 38, 38, 38, 38, 38,
330
+ 38, 38, 38, 38, 38, 38, 38, 38,
331
+ 38, 1, 38, 38, 38, 38, 38, 38,
332
+ 38, 38, 38, 38, 38, 38, 38, 38,
333
+ 38, 38, 38, 38, 38, 38, 38, 38,
334
+ 38, 38, 38, 38, 38, 38, 38, 38,
335
+ 38, 38, 1, 40, 40, 40, 40, 40,
336
+ 40, 40, 40, 40, 40, 40, 40, 40,
337
+ 40, 40, 40, 40, 40, 40, 40, 40,
338
+ 40, 40, 40, 40, 40, 40, 40, 40,
339
+ 40, 40, 40, 40, 40, 40, 40, 40,
340
+ 40, 40, 40, 40, 40, 40, 40, 40,
341
+ 40, 40, 40, 1, 40, 40, 40, 40,
342
+ 40, 40, 40, 40, 40, 40, 40, 40,
343
+ 40, 40, 40, 40, 40, 40, 40, 40,
344
+ 40, 40, 40, 40, 40, 40, 40, 40,
345
+ 40, 40, 40, 40, 40, 40, 40, 40,
346
+ 40, 40, 40, 40, 40, 40, 40, 40,
347
+ 40, 40, 40, 40, 40, 40, 40, 40,
348
+ 40, 40, 40, 40, 40, 40, 40, 40,
349
+ 40, 40, 40, 40, 1, 40, 40, 40,
350
+ 40, 40, 40, 40, 40, 40, 40, 40,
351
+ 40, 40, 40, 40, 40, 1, 56, 1,
352
+ 1, 1, 57, 1, 1, 1, 1, 1,
353
+ 1, 1, 1, 1, 1, 1, 1, 1,
354
+ 1, 1, 1, 1, 1, 56, 1, 58,
355
+ 1, 1, 1, 1, 1, 59, 1, 60,
356
+ 1, 61, 1, 1, 1, 1, 1, 1,
357
+ 1, 1, 1, 1, 1, 1, 1, 1,
358
+ 1, 1, 1, 1, 1, 1, 1, 1,
359
+ 61, 1, 62, 1, 1, 1, 63, 1,
360
+ 1, 1, 1, 1, 1, 1, 1, 1,
361
+ 1, 1, 1, 1, 1, 1, 1, 1,
362
+ 1, 62, 54, 54, 54, 54, 54, 54,
363
+ 54, 64, 1, 54, 54, 54, 54, 54,
364
+ 1, 54, 54, 54, 54, 54, 54, 54,
365
+ 54, 54, 54, 1, 65, 1, 1, 1,
366
+ 1, 1, 54, 54, 54, 54, 54, 54,
367
+ 54, 54, 54, 54, 54, 54, 54, 54,
368
+ 54, 54, 54, 54, 54, 54, 54, 54,
369
+ 54, 54, 54, 54, 1, 1, 1, 54,
370
+ 54, 54, 54, 54, 54, 54, 54, 54,
371
+ 54, 54, 54, 54, 54, 54, 54, 54,
372
+ 54, 54, 54, 54, 54, 54, 54, 54,
373
+ 54, 54, 54, 54, 54, 54, 54, 54,
374
+ 1, 66, 66, 66, 66, 66, 66, 66,
375
+ 66, 66, 1, 66, 66, 67, 66, 66,
376
+ 66, 66, 66, 66, 66, 66, 66, 66,
377
+ 66, 66, 66, 66, 66, 66, 66, 66,
378
+ 66, 66, 66, 66, 66, 66, 66, 66,
379
+ 68, 69, 66, 66, 66, 66, 66, 66,
380
+ 66, 66, 66, 66, 66, 66, 66, 66,
381
+ 66, 66, 66, 66, 66, 66, 66, 66,
382
+ 66, 66, 66, 66, 66, 66, 66, 66,
383
+ 66, 66, 66, 66, 66, 66, 66, 66,
384
+ 66, 66, 66, 66, 66, 66, 66, 66,
385
+ 66, 66, 66, 66, 70, 66, 66, 66,
386
+ 66, 66, 66, 66, 66, 66, 66, 66,
387
+ 66, 66, 66, 66, 66, 66, 66, 66,
388
+ 66, 66, 66, 66, 66, 66, 66, 66,
389
+ 66, 66, 66, 66, 66, 66, 66, 66,
390
+ 1, 1, 1, 1, 1, 1, 1, 1,
391
+ 1, 1, 1, 1, 1, 1, 1, 1,
392
+ 1, 1, 1, 1, 1, 1, 1, 1,
393
+ 1, 1, 1, 1, 1, 1, 1, 1,
394
+ 1, 1, 1, 1, 1, 1, 1, 1,
395
+ 1, 1, 1, 1, 1, 1, 1, 1,
396
+ 1, 1, 1, 1, 1, 1, 1, 1,
397
+ 1, 1, 1, 1, 1, 1, 1, 1,
398
+ 1, 1, 71, 71, 71, 71, 71, 71,
399
+ 71, 71, 71, 71, 71, 71, 71, 71,
400
+ 71, 71, 71, 71, 71, 71, 71, 71,
401
+ 71, 71, 71, 71, 71, 71, 71, 71,
402
+ 72, 73, 73, 73, 73, 73, 73, 73,
403
+ 73, 73, 73, 73, 73, 74, 73, 73,
404
+ 75, 76, 76, 76, 77, 1, 78, 78,
405
+ 78, 78, 78, 78, 78, 78, 78, 1,
406
+ 78, 78, 79, 78, 78, 78, 78, 78,
407
+ 78, 78, 78, 78, 78, 78, 78, 78,
408
+ 78, 78, 78, 78, 78, 78, 78, 78,
409
+ 78, 78, 78, 78, 78, 80, 81, 78,
410
+ 78, 78, 78, 78, 78, 78, 78, 78,
411
+ 78, 78, 78, 78, 78, 78, 78, 78,
412
+ 78, 78, 78, 78, 78, 78, 78, 78,
413
+ 78, 78, 78, 78, 78, 78, 78, 78,
414
+ 78, 78, 78, 78, 78, 78, 78, 78,
415
+ 78, 78, 78, 78, 78, 78, 78, 78,
416
+ 78, 82, 78, 78, 78, 78, 78, 78,
417
+ 78, 78, 78, 78, 78, 78, 78, 78,
418
+ 78, 78, 78, 78, 78, 78, 78, 78,
419
+ 78, 78, 78, 78, 78, 78, 78, 78,
420
+ 78, 78, 78, 78, 78, 1, 1, 1,
421
+ 1, 1, 1, 1, 1, 1, 1, 1,
422
+ 1, 1, 1, 1, 1, 1, 1, 1,
423
+ 1, 1, 1, 1, 1, 1, 1, 1,
424
+ 1, 1, 1, 1, 1, 1, 1, 1,
425
+ 1, 1, 1, 1, 1, 1, 1, 1,
426
+ 1, 1, 1, 1, 1, 1, 1, 1,
427
+ 1, 1, 1, 1, 1, 1, 1, 1,
428
+ 1, 1, 1, 1, 1, 1, 1, 83,
429
+ 83, 83, 83, 83, 83, 83, 83, 83,
430
+ 83, 83, 83, 83, 83, 83, 83, 83,
431
+ 83, 83, 83, 83, 83, 83, 83, 83,
432
+ 83, 83, 83, 83, 83, 84, 85, 85,
433
+ 85, 85, 85, 85, 85, 85, 85, 85,
434
+ 85, 85, 86, 85, 85, 87, 88, 88,
435
+ 88, 89, 1, 90, 1, 78, 1, 1,
436
+ 1, 1, 1, 1, 1, 1, 1, 1,
437
+ 1, 1, 1, 1, 1, 1, 1, 1,
438
+ 1, 1, 1, 1, 78, 1, 78, 78,
439
+ 78, 78, 78, 78, 78, 78, 78, 78,
440
+ 78, 78, 78, 78, 78, 78, 78, 78,
441
+ 78, 78, 78, 78, 78, 78, 78, 78,
442
+ 78, 78, 78, 78, 78, 78, 78, 78,
443
+ 78, 78, 78, 78, 78, 78, 78, 78,
444
+ 78, 78, 78, 78, 78, 78, 78, 78,
445
+ 78, 78, 78, 78, 78, 78, 78, 78,
446
+ 78, 78, 78, 78, 78, 78, 78, 78,
447
+ 78, 78, 78, 78, 78, 78, 78, 78,
448
+ 78, 78, 78, 78, 78, 78, 78, 78,
449
+ 78, 78, 78, 78, 78, 78, 78, 78,
450
+ 78, 78, 78, 78, 78, 78, 78, 78,
451
+ 78, 78, 78, 78, 78, 78, 78, 78,
452
+ 78, 78, 78, 78, 78, 78, 78, 78,
453
+ 78, 78, 78, 78, 78, 78, 78, 78,
454
+ 78, 78, 78, 78, 78, 78, 1, 1,
455
+ 1, 1, 1, 1, 1, 1, 1, 1,
456
+ 1, 1, 1, 1, 1, 1, 1, 1,
457
+ 1, 1, 1, 1, 1, 1, 1, 1,
458
+ 1, 1, 1, 1, 1, 1, 1, 1,
459
+ 1, 1, 1, 1, 1, 1, 1, 1,
460
+ 1, 1, 1, 1, 1, 1, 1, 1,
461
+ 1, 1, 1, 1, 1, 1, 1, 1,
462
+ 1, 1, 1, 1, 1, 1, 1, 1,
463
+ 83, 83, 83, 83, 83, 83, 83, 83,
464
+ 83, 83, 83, 83, 83, 83, 83, 83,
465
+ 83, 83, 83, 83, 83, 83, 83, 83,
466
+ 83, 83, 83, 83, 83, 83, 84, 85,
467
+ 85, 85, 85, 85, 85, 85, 85, 85,
468
+ 85, 85, 85, 86, 85, 85, 87, 88,
469
+ 88, 88, 89, 1, 78, 78, 78, 78,
470
+ 78, 78, 78, 78, 78, 78, 78, 78,
471
+ 78, 78, 78, 78, 78, 78, 78, 78,
472
+ 78, 78, 78, 78, 78, 78, 78, 78,
473
+ 78, 78, 78, 78, 78, 78, 78, 78,
474
+ 78, 78, 78, 78, 78, 78, 78, 78,
475
+ 78, 78, 78, 78, 78, 78, 78, 78,
476
+ 78, 78, 78, 78, 78, 78, 78, 78,
477
+ 78, 78, 78, 78, 1, 83, 83, 83,
478
+ 83, 83, 83, 83, 83, 83, 83, 83,
479
+ 83, 83, 83, 83, 83, 83, 83, 83,
480
+ 83, 83, 83, 83, 83, 83, 83, 83,
481
+ 83, 83, 83, 83, 83, 1, 83, 83,
482
+ 83, 83, 83, 83, 83, 83, 83, 83,
483
+ 83, 83, 83, 83, 83, 83, 83, 83,
484
+ 83, 83, 83, 83, 83, 83, 83, 83,
485
+ 83, 83, 83, 83, 83, 83, 83, 83,
486
+ 83, 83, 83, 83, 83, 83, 83, 83,
487
+ 83, 83, 83, 83, 83, 83, 83, 83,
488
+ 83, 83, 83, 83, 83, 83, 83, 83,
489
+ 83, 83, 83, 83, 83, 83, 1, 83,
490
+ 83, 83, 83, 83, 83, 83, 83, 83,
491
+ 83, 83, 83, 83, 83, 83, 83, 83,
492
+ 83, 83, 83, 83, 83, 83, 83, 83,
493
+ 83, 83, 83, 83, 83, 83, 83, 1,
494
+ 85, 85, 85, 85, 85, 85, 85, 85,
495
+ 85, 85, 85, 85, 85, 85, 85, 85,
496
+ 85, 85, 85, 85, 85, 85, 85, 85,
497
+ 85, 85, 85, 85, 85, 85, 85, 85,
498
+ 85, 85, 85, 85, 85, 85, 85, 85,
499
+ 85, 85, 85, 85, 85, 85, 85, 85,
500
+ 1, 85, 85, 85, 85, 85, 85, 85,
501
+ 85, 85, 85, 85, 85, 85, 85, 85,
502
+ 85, 85, 85, 85, 85, 85, 85, 85,
503
+ 85, 85, 85, 85, 85, 85, 85, 85,
504
+ 85, 85, 85, 85, 85, 85, 85, 85,
505
+ 85, 85, 85, 85, 85, 85, 85, 85,
506
+ 85, 85, 85, 85, 85, 85, 85, 85,
507
+ 85, 85, 85, 85, 85, 85, 85, 85,
508
+ 85, 1, 85, 85, 85, 85, 85, 85,
509
+ 85, 85, 85, 85, 85, 85, 85, 85,
510
+ 85, 85, 1, 91, 1, 1, 1, 92,
511
+ 1, 1, 1, 1, 1, 1, 1, 1,
512
+ 1, 1, 1, 1, 1, 1, 1, 1,
513
+ 1, 1, 91, 93, 93, 93, 93, 93,
514
+ 93, 93, 94, 1, 93, 93, 93, 93,
515
+ 93, 1, 93, 93, 93, 93, 93, 93,
516
+ 93, 93, 93, 93, 1, 95, 1, 1,
517
+ 1, 1, 1, 93, 93, 93, 93, 93,
518
+ 93, 93, 93, 93, 93, 93, 93, 93,
519
+ 93, 93, 93, 93, 93, 93, 93, 93,
520
+ 93, 93, 93, 93, 93, 1, 1, 1,
521
+ 93, 93, 93, 93, 93, 93, 93, 93,
522
+ 93, 93, 93, 93, 93, 93, 93, 93,
523
+ 93, 93, 93, 93, 93, 93, 93, 93,
524
+ 93, 93, 93, 93, 93, 93, 93, 93,
525
+ 93, 1, 96, 1, 1, 1, 97, 1,
526
+ 1, 1, 1, 1, 1, 1, 1, 1,
527
+ 1, 1, 1, 1, 1, 1, 1, 1,
528
+ 1, 96, 1, 1, 1, 1, 1, 1,
529
+ 1, 98, 1, 1, 1, 1, 1, 1,
530
+ 1, 1, 1, 1, 1, 1, 1, 1,
531
+ 1, 1, 1, 1, 99, 1, 96, 1,
532
+ 1, 1, 97, 1, 1, 1, 1, 1,
533
+ 1, 1, 1, 1, 1, 1, 1, 1,
534
+ 1, 1, 1, 1, 1, 96, 7, 7,
535
+ 7, 7, 7, 7, 7, 98, 1, 7,
536
+ 7, 7, 7, 7, 1, 7, 7, 7,
537
+ 7, 7, 7, 7, 7, 7, 7, 1,
538
+ 99, 1, 1, 1, 1, 1, 7, 7,
539
+ 7, 7, 7, 7, 7, 7, 7, 7,
540
+ 7, 7, 7, 7, 7, 7, 7, 7,
541
+ 7, 7, 7, 7, 7, 7, 7, 7,
542
+ 1, 1, 1, 7, 7, 7, 7, 7,
543
+ 7, 7, 7, 7, 7, 7, 7, 7,
544
+ 7, 7, 7, 7, 7, 7, 7, 7,
545
+ 7, 7, 7, 7, 7, 7, 7, 7,
546
+ 7, 7, 7, 7, 1, 100, 1, 1,
547
+ 1, 101, 1, 1, 1, 1, 1, 1,
548
+ 1, 1, 1, 1, 1, 1, 1, 1,
549
+ 1, 1, 1, 1, 100, 54, 54, 54,
550
+ 54, 54, 54, 54, 102, 1, 54, 54,
551
+ 54, 54, 54, 1, 54, 54, 54, 54,
552
+ 54, 54, 54, 54, 54, 54, 1, 103,
553
+ 1, 1, 1, 1, 1, 54, 54, 54,
554
+ 54, 54, 54, 54, 54, 54, 54, 54,
555
+ 54, 54, 54, 54, 54, 54, 54, 54,
556
+ 54, 54, 54, 54, 54, 54, 54, 1,
557
+ 1, 1, 54, 54, 54, 54, 54, 54,
558
+ 54, 54, 54, 54, 54, 54, 54, 54,
559
+ 54, 54, 54, 54, 54, 54, 54, 54,
560
+ 54, 54, 54, 54, 54, 54, 54, 54,
561
+ 54, 54, 54, 1, 104, 1, 1, 1,
562
+ 105, 1, 1, 1, 1, 1, 1, 1,
563
+ 1, 1, 1, 1, 1, 1, 1, 1,
564
+ 1, 1, 1, 104, 106, 1, 106, 106,
565
+ 106, 106, 106, 107, 1, 106, 106, 106,
566
+ 106, 106, 1, 106, 106, 106, 106, 106,
567
+ 106, 106, 106, 106, 106, 1, 99, 1,
568
+ 106, 1, 1, 1, 106, 106, 106, 106,
569
+ 106, 106, 106, 106, 106, 106, 106, 106,
570
+ 106, 106, 106, 106, 106, 106, 106, 106,
571
+ 106, 106, 106, 106, 106, 106, 1, 1,
572
+ 1, 106, 106, 106, 106, 106, 106, 106,
573
+ 106, 106, 106, 106, 106, 106, 106, 106,
574
+ 106, 106, 106, 106, 106, 106, 106, 106,
575
+ 106, 106, 106, 106, 106, 106, 106, 106,
576
+ 106, 106, 1, 61, 1, 1, 1, 108,
577
+ 1, 1, 1, 1, 1, 1, 1, 1,
578
+ 1, 1, 1, 1, 1, 1, 1, 1,
579
+ 1, 1, 61, 7, 7, 7, 7, 7,
580
+ 7, 7, 109, 1, 7, 7, 7, 7,
581
+ 7, 1, 7, 7, 7, 7, 7, 7,
582
+ 7, 7, 7, 7, 1, 9, 1, 1,
583
+ 1, 1, 1, 7, 7, 7, 7, 7,
584
+ 7, 7, 7, 7, 7, 7, 7, 7,
585
+ 7, 7, 7, 7, 7, 7, 7, 7,
586
+ 7, 7, 7, 7, 7, 1, 1, 1,
587
+ 7, 7, 7, 7, 7, 7, 7, 7,
588
+ 7, 7, 7, 7, 7, 7, 7, 7,
589
+ 7, 7, 7, 7, 7, 7, 7, 7,
590
+ 7, 7, 7, 7, 7, 7, 7, 7,
591
+ 7, 1, 110, 1, 1, 1, 111, 1,
592
+ 1, 1, 1, 1, 1, 1, 1, 1,
593
+ 1, 1, 1, 1, 1, 1, 1, 1,
594
+ 1, 110, 54, 54, 54, 54, 54, 54,
595
+ 54, 112, 1, 54, 54, 54, 54, 54,
596
+ 1, 54, 54, 54, 54, 54, 54, 54,
597
+ 54, 54, 54, 1, 65, 1, 1, 1,
598
+ 1, 1, 54, 54, 54, 54, 54, 54,
599
+ 54, 54, 54, 54, 54, 54, 54, 54,
600
+ 54, 54, 54, 54, 54, 54, 54, 54,
601
+ 54, 54, 54, 54, 1, 1, 1, 54,
602
+ 54, 54, 54, 54, 54, 54, 54, 54,
603
+ 54, 54, 54, 54, 54, 54, 54, 54,
604
+ 54, 54, 54, 54, 54, 54, 54, 54,
605
+ 54, 54, 54, 54, 54, 54, 54, 54,
606
+ 1, 1, 0,
607
+ ]
701
608
 
702
- # 5.1 Variables Used by Ragel
703
- p = 0
704
- eof = pe = data.length
705
- stack = []
609
+ class << self
610
+ attr_accessor :_trans_targs
611
+ private :_trans_targs, :_trans_targs=
612
+ end
613
+ self._trans_targs = [
614
+ 2, 0, 2, 3, 47, 4, 5, 7,
615
+ 34, 18, 6, 7, 8, 9, 10, 51,
616
+ 12, 31, 9, 10, 12, 31, 11, 13,
617
+ 14, 48, 23, 24, 25, 26, 27, 28,
618
+ 29, 30, 13, 14, 48, 23, 24, 25,
619
+ 26, 27, 28, 29, 30, 15, 17, 49,
620
+ 19, 20, 22, 21, 19, 20, 7, 22,
621
+ 9, 10, 12, 31, 33, 52, 4, 5,
622
+ 34, 18, 36, 37, 36, 54, 39, 40,
623
+ 41, 42, 43, 44, 45, 46, 36, 37,
624
+ 36, 54, 39, 40, 41, 42, 43, 44,
625
+ 45, 46, 38, 4, 5, 47, 34, 18,
626
+ 49, 16, 50, 18, 49, 16, 50, 18,
627
+ 52, 32, 51, 53, 32, 53, 52, 32,
628
+ 53,
629
+ ]
706
630
 
707
-
708
- begin
709
- p ||= 0
710
- pe ||= data.length
711
- cs = start
712
- top = 0
713
- end
631
+ class << self
632
+ attr_accessor :_trans_actions
633
+ private :_trans_actions, :_trans_actions=
634
+ end
635
+ self._trans_actions = [
636
+ 1, 0, 0, 2, 3, 0, 0, 4,
637
+ 5, 0, 0, 0, 6, 7, 7, 7,
638
+ 7, 8, 0, 0, 0, 5, 0, 9,
639
+ 9, 10, 9, 9, 9, 9, 9, 9,
640
+ 9, 9, 0, 0, 11, 0, 0, 0,
641
+ 0, 0, 0, 0, 0, 0, 0, 0,
642
+ 0, 0, 5, 0, 12, 12, 13, 14,
643
+ 12, 12, 12, 14, 0, 0, 12, 12,
644
+ 14, 12, 15, 15, 16, 17, 15, 15,
645
+ 15, 15, 15, 15, 15, 15, 0, 0,
646
+ 5, 18, 0, 0, 0, 0, 0, 0,
647
+ 0, 0, 0, 19, 19, 0, 20, 19,
648
+ 21, 21, 22, 21, 23, 23, 24, 23,
649
+ 21, 21, 0, 25, 0, 5, 12, 12,
650
+ 14,
651
+ ]
714
652
 
715
-
716
- begin
717
- testEof = false
718
- _slen, _trans, _keys, _inds, _acts, _nacts = nil
719
- _goto_level = 0
720
- _resume = 10
721
- _eof_trans = 15
722
- _again = 20
723
- _test_eof = 30
724
- _out = 40
725
- while true
726
- if _goto_level <= 0
727
- if p == pe
728
- _goto_level = _test_eof
729
- next
730
- end
731
- if cs == 0
732
- _goto_level = _out
733
- next
734
- end
735
- end
736
- if _goto_level <= _resume
737
- _keys = cs << 1
738
- _inds = _index_offsets[cs]
739
- _slen = _key_spans[cs]
740
- _wide = data[p].ord
741
- _trans = if ( _slen > 0 &&
742
- _trans_keys[_keys] <= _wide &&
743
- _wide <= _trans_keys[_keys + 1]
744
- ) then
745
- _indicies[ _inds + _wide - _trans_keys[_keys] ]
746
- else
747
- _indicies[ _inds + _slen ]
748
- end
749
- cs = _trans_targs[_trans]
750
- if _trans_actions[_trans] != 0
751
- case _trans_actions[_trans]
752
- when 1 then
753
- begin
754
- main_type_s = p end
755
- when 2 then
756
- begin
757
- content_type.main_type = chars(data, main_type_s, p-1).downcase end
758
- when 3 then
759
- begin
760
- sub_type_s = p end
761
- when 19 then
762
- begin
763
- content_type.sub_type = chars(data, sub_type_s, p-1).downcase end
764
- when 4 then
765
- begin
766
- param_attr_s = p end
767
- when 6 then
768
- begin
769
- param_attr = chars(data, param_attr_s, p-1) end
770
- when 9 then
771
- begin
772
- qstr_s = p end
773
- when 11 then
774
- begin
775
- qstr = chars(data, qstr_s, p-1) end
776
- when 7 then
777
- begin
778
- param_val_s = p end
779
- when 21 then
780
- begin
653
+ class << self
654
+ attr_accessor :_eof_actions
655
+ private :_eof_actions, :_eof_actions=
656
+ end
657
+ self._eof_actions = [
658
+ 0, 0, 0, 0, 0, 0, 0, 0,
659
+ 0, 0, 0, 0, 0, 0, 0, 0,
660
+ 0, 0, 0, 0, 0, 0, 0, 0,
661
+ 0, 0, 0, 0, 0, 0, 0, 0,
662
+ 0, 0, 0, 0, 0, 0, 0, 0,
663
+ 0, 0, 0, 0, 0, 0, 0, 19,
664
+ 21, 21, 23, 21, 0, 12, 0,
665
+ ]
781
666
 
782
- if param_attr.nil?
783
- raise Mail::Field::ParseError.new(Mail::ContentTypeElement, data, "no attribute for value")
784
- end
667
+ class << self
668
+ attr_accessor :start
669
+ end
670
+ self.start = 1
671
+ class << self
672
+ attr_accessor :first_final
673
+ end
674
+ self.first_final = 47
675
+ class << self
676
+ attr_accessor :error
677
+ end
678
+ self.error = 0
785
679
 
786
- # Use quoted s value if one exists, otherwise use parameter value
787
- value = qstr || chars(data, param_val_s, p-1)
680
+ class << self
681
+ attr_accessor :en_comment_tail
682
+ end
683
+ self.en_comment_tail = 35
684
+ class << self
685
+ attr_accessor :en_main
686
+ end
687
+ self.en_main = 1
788
688
 
789
- content_type.parameters << { param_attr => value }
790
- param_attr = nil
791
- qstr = nil
792
- end
793
- when 12 then
794
- begin
795
- end
796
- when 15 then
797
- begin
798
- end
799
- when 5 then
800
- begin
801
- begin
802
- stack[top] = cs
803
- top+= 1
804
- cs = 35
805
- _goto_level = _again
806
- next
807
- end
808
- end
809
- when 18 then
810
- begin
811
- begin
812
- top -= 1
813
- cs = stack[top]
814
- _goto_level = _again
815
- next
816
- end
817
- end
818
- when 20 then
819
- begin
820
- content_type.sub_type = chars(data, sub_type_s, p-1).downcase end
821
- begin
822
- begin
823
- stack[top] = cs
824
- top+= 1
825
- cs = 35
826
- _goto_level = _again
827
- next
828
- end
829
- end
830
- when 10 then
831
- begin
832
- qstr_s = p end
833
- begin
834
- qstr = chars(data, qstr_s, p-1) end
835
- when 8 then
836
- begin
837
- param_val_s = p end
838
- begin
839
- begin
840
- stack[top] = cs
841
- top+= 1
842
- cs = 35
843
- _goto_level = _again
844
- next
845
- end
846
- end
847
- when 25 then
848
- begin
689
+ def self.parse(data)
690
+ data = data.dup.force_encoding(Encoding::ASCII_8BIT) if data.respond_to?(:force_encoding)
849
691
 
850
- if param_attr.nil?
851
- raise Mail::Field::ParseError.new(Mail::ContentTypeElement, data, "no attribute for value")
852
- end
692
+ return ContentTypeStruct.new("text", "plain", []) if Mail::Utilities.blank?(data)
693
+ content_type = ContentTypeStruct.new(nil, nil, [])
853
694
 
854
- # Use quoted s value if one exists, otherwise use parameter value
855
- value = qstr || chars(data, param_val_s, p-1)
695
+ # Parser state
696
+ main_type_s = sub_type_s = param_attr_s = param_attr = nil
697
+ qstr_s = qstr = param_val_s = nil
856
698
 
857
- content_type.parameters << { param_attr => value }
858
- param_attr = nil
859
- qstr = nil
860
- end
861
- begin
862
- begin
863
- stack[top] = cs
864
- top+= 1
865
- cs = 35
866
- _goto_level = _again
867
- next
868
- end
869
- end
870
- when 13 then
871
- begin
872
- end
873
- begin
874
- param_attr_s = p end
875
- when 23 then
876
- begin
877
- end
878
- begin
699
+ # 5.1 Variables Used by Ragel
700
+ p = 0
701
+ eof = pe = data.length
702
+ stack = []
879
703
 
880
- if param_attr.nil?
881
- raise Mail::Field::ParseError.new(Mail::ContentTypeElement, data, "no attribute for value")
882
- end
704
+ begin
705
+ p ||= 0
706
+ pe ||= data.length
707
+ cs = start
708
+ top = 0
709
+ end
883
710
 
884
- # Use quoted s value if one exists, otherwise use parameter value
885
- value = qstr || chars(data, param_val_s, p-1)
711
+ begin
712
+ testEof = false
713
+ _slen, _trans, _keys, _inds, _acts, _nacts = nil
714
+ _goto_level = 0
715
+ _resume = 10
716
+ _eof_trans = 15
717
+ _again = 20
718
+ _test_eof = 30
719
+ _out = 40
720
+ while true
721
+ if _goto_level <= 0
722
+ if p == pe
723
+ _goto_level = _test_eof
724
+ next
725
+ end
726
+ if cs == 0
727
+ _goto_level = _out
728
+ next
729
+ end
730
+ end
731
+ if _goto_level <= _resume
732
+ _keys = cs << 1
733
+ _inds = _index_offsets[cs]
734
+ _slen = _key_spans[cs]
735
+ _wide = data[p].ord
736
+ _trans = if (_slen > 0 &&
737
+ _trans_keys[_keys] <= _wide &&
738
+ _wide <= _trans_keys[_keys + 1])
739
+ _indicies[_inds + _wide - _trans_keys[_keys]]
740
+ else
741
+ _indicies[_inds + _slen]
742
+ end
743
+ cs = _trans_targs[_trans]
744
+ if _trans_actions[_trans] != 0
745
+ case _trans_actions[_trans]
746
+ when 1
747
+ begin
748
+ main_type_s = p
749
+ end
750
+ when 2
751
+ begin
752
+ content_type.main_type = chars(data, main_type_s, p - 1).downcase
753
+ end
754
+ when 3
755
+ begin
756
+ sub_type_s = p
757
+ end
758
+ when 19
759
+ begin
760
+ content_type.sub_type = chars(data, sub_type_s, p - 1).downcase
761
+ end
762
+ when 4
763
+ begin
764
+ param_attr_s = p
765
+ end
766
+ when 6
767
+ begin
768
+ param_attr = chars(data, param_attr_s, p - 1)
769
+ end
770
+ when 9
771
+ begin
772
+ qstr_s = p
773
+ end
774
+ when 11
775
+ begin
776
+ qstr = chars(data, qstr_s, p - 1)
777
+ end
778
+ when 7
779
+ begin
780
+ param_val_s = p
781
+ end
782
+ when 21
783
+ begin
784
+ if param_attr.nil?
785
+ raise Mail::Field::ParseError.new(Mail::ContentTypeElement, data, "no attribute for value")
786
+ end
886
787
 
887
- content_type.parameters << { param_attr => value }
888
- param_attr = nil
889
- qstr = nil
890
- end
891
- when 14 then
892
- begin
893
- end
894
- begin
895
- begin
896
- stack[top] = cs
897
- top+= 1
898
- cs = 35
899
- _goto_level = _again
900
- next
901
- end
902
- end
903
- when 16 then
904
- begin
905
- end
906
- begin
907
- begin
908
- stack[top] = cs
909
- top+= 1
910
- cs = 35
911
- _goto_level = _again
912
- next
913
- end
914
- end
915
- when 17 then
916
- begin
917
- end
918
- begin
919
- begin
920
- top -= 1
921
- cs = stack[top]
922
- _goto_level = _again
923
- next
924
- end
925
- end
926
- when 22 then
927
- begin
928
- begin
929
- stack[top] = cs
930
- top+= 1
931
- cs = 35
932
- _goto_level = _again
933
- next
934
- end
935
- end
936
- begin
788
+ # Use quoted s value if one exists, otherwise use parameter value
789
+ value = qstr || chars(data, param_val_s, p - 1)
937
790
 
938
- if param_attr.nil?
939
- raise Mail::Field::ParseError.new(Mail::ContentTypeElement, data, "no attribute for value")
940
- end
791
+ content_type.parameters << {param_attr => value}
792
+ param_attr = nil
793
+ qstr = nil
794
+ end
795
+ when 12
796
+ begin
797
+ end
798
+ when 15
799
+ begin
800
+ end
801
+ when 5
802
+ begin
803
+ begin
804
+ stack[top] = cs
805
+ top += 1
806
+ cs = 35
807
+ _goto_level = _again
808
+ next
809
+ end
810
+ end
811
+ when 18
812
+ begin
813
+ begin
814
+ top -= 1
815
+ cs = stack[top]
816
+ _goto_level = _again
817
+ next
818
+ end
819
+ end
820
+ when 20
821
+ begin
822
+ content_type.sub_type = chars(data, sub_type_s, p - 1).downcase
823
+ end
824
+ begin
825
+ begin
826
+ stack[top] = cs
827
+ top += 1
828
+ cs = 35
829
+ _goto_level = _again
830
+ next
831
+ end
832
+ end
833
+ when 10
834
+ begin
835
+ qstr_s = p
836
+ end
837
+ begin
838
+ qstr = chars(data, qstr_s, p - 1)
839
+ end
840
+ when 8
841
+ begin
842
+ param_val_s = p
843
+ end
844
+ begin
845
+ begin
846
+ stack[top] = cs
847
+ top += 1
848
+ cs = 35
849
+ _goto_level = _again
850
+ next
851
+ end
852
+ end
853
+ when 25
854
+ begin
855
+ if param_attr.nil?
856
+ raise Mail::Field::ParseError.new(Mail::ContentTypeElement, data, "no attribute for value")
857
+ end
941
858
 
942
- # Use quoted s value if one exists, otherwise use parameter value
943
- value = qstr || chars(data, param_val_s, p-1)
859
+ # Use quoted s value if one exists, otherwise use parameter value
860
+ value = qstr || chars(data, param_val_s, p - 1)
944
861
 
945
- content_type.parameters << { param_attr => value }
946
- param_attr = nil
947
- qstr = nil
948
- end
949
- when 24 then
950
- begin
951
- end
952
- begin
953
- begin
954
- stack[top] = cs
955
- top+= 1
956
- cs = 35
957
- _goto_level = _again
958
- next
959
- end
960
- end
961
- begin
862
+ content_type.parameters << {param_attr => value}
863
+ param_attr = nil
864
+ qstr = nil
865
+ end
866
+ begin
867
+ begin
868
+ stack[top] = cs
869
+ top += 1
870
+ cs = 35
871
+ _goto_level = _again
872
+ next
873
+ end
874
+ end
875
+ when 13
876
+ begin
877
+ end
878
+ begin
879
+ param_attr_s = p
880
+ end
881
+ when 23
882
+ begin
883
+ end
884
+ begin
885
+ if param_attr.nil?
886
+ raise Mail::Field::ParseError.new(Mail::ContentTypeElement, data, "no attribute for value")
887
+ end
962
888
 
963
- if param_attr.nil?
964
- raise Mail::Field::ParseError.new(Mail::ContentTypeElement, data, "no attribute for value")
965
- end
889
+ # Use quoted s value if one exists, otherwise use parameter value
890
+ value = qstr || chars(data, param_val_s, p - 1)
966
891
 
967
- # Use quoted s value if one exists, otherwise use parameter value
968
- value = qstr || chars(data, param_val_s, p-1)
892
+ content_type.parameters << {param_attr => value}
893
+ param_attr = nil
894
+ qstr = nil
895
+ end
896
+ when 14
897
+ begin
898
+ end
899
+ begin
900
+ begin
901
+ stack[top] = cs
902
+ top += 1
903
+ cs = 35
904
+ _goto_level = _again
905
+ next
906
+ end
907
+ end
908
+ when 16
909
+ begin
910
+ end
911
+ begin
912
+ begin
913
+ stack[top] = cs
914
+ top += 1
915
+ cs = 35
916
+ _goto_level = _again
917
+ next
918
+ end
919
+ end
920
+ when 17
921
+ begin
922
+ end
923
+ begin
924
+ begin
925
+ top -= 1
926
+ cs = stack[top]
927
+ _goto_level = _again
928
+ next
929
+ end
930
+ end
931
+ when 22
932
+ begin
933
+ begin
934
+ stack[top] = cs
935
+ top += 1
936
+ cs = 35
937
+ _goto_level = _again
938
+ next
939
+ end
940
+ end
941
+ begin
942
+ if param_attr.nil?
943
+ raise Mail::Field::ParseError.new(Mail::ContentTypeElement, data, "no attribute for value")
944
+ end
969
945
 
970
- content_type.parameters << { param_attr => value }
971
- param_attr = nil
972
- qstr = nil
973
- end
974
- end
975
- end
976
- end
977
- if _goto_level <= _again
978
- if cs == 0
979
- _goto_level = _out
980
- next
981
- end
982
- p += 1
983
- if p != pe
984
- _goto_level = _resume
985
- next
986
- end
987
- end
988
- if _goto_level <= _test_eof
989
- if p == eof
990
- case _eof_actions[cs]
991
- when 19 then
992
- begin
993
- content_type.sub_type = chars(data, sub_type_s, p-1).downcase end
994
- when 21 then
995
- begin
946
+ # Use quoted s value if one exists, otherwise use parameter value
947
+ value = qstr || chars(data, param_val_s, p - 1)
996
948
 
997
- if param_attr.nil?
998
- raise Mail::Field::ParseError.new(Mail::ContentTypeElement, data, "no attribute for value")
999
- end
949
+ content_type.parameters << {param_attr => value}
950
+ param_attr = nil
951
+ qstr = nil
952
+ end
953
+ when 24
954
+ begin
955
+ end
956
+ begin
957
+ begin
958
+ stack[top] = cs
959
+ top += 1
960
+ cs = 35
961
+ _goto_level = _again
962
+ next
963
+ end
964
+ end
965
+ begin
966
+ if param_attr.nil?
967
+ raise Mail::Field::ParseError.new(Mail::ContentTypeElement, data, "no attribute for value")
968
+ end
1000
969
 
1001
- # Use quoted s value if one exists, otherwise use parameter value
1002
- value = qstr || chars(data, param_val_s, p-1)
970
+ # Use quoted s value if one exists, otherwise use parameter value
971
+ value = qstr || chars(data, param_val_s, p - 1)
1003
972
 
1004
- content_type.parameters << { param_attr => value }
1005
- param_attr = nil
1006
- qstr = nil
1007
- end
1008
- when 12 then
1009
- begin
1010
- end
1011
- when 23 then
1012
- begin
1013
- end
1014
- begin
973
+ content_type.parameters << {param_attr => value}
974
+ param_attr = nil
975
+ qstr = nil
976
+ end
977
+ end
978
+ end
979
+ end
980
+ if _goto_level <= _again
981
+ if cs == 0
982
+ _goto_level = _out
983
+ next
984
+ end
985
+ p += 1
986
+ if p != pe
987
+ _goto_level = _resume
988
+ next
989
+ end
990
+ end
991
+ if _goto_level <= _test_eof
992
+ if p == eof
993
+ case _eof_actions[cs]
994
+ when 19
995
+ begin
996
+ content_type.sub_type = chars(data, sub_type_s, p - 1).downcase
997
+ end
998
+ when 21
999
+ begin
1000
+ if param_attr.nil?
1001
+ raise Mail::Field::ParseError.new(Mail::ContentTypeElement, data, "no attribute for value")
1002
+ end
1015
1003
 
1016
- if param_attr.nil?
1017
- raise Mail::Field::ParseError.new(Mail::ContentTypeElement, data, "no attribute for value")
1018
- end
1004
+ # Use quoted s value if one exists, otherwise use parameter value
1005
+ value = qstr || chars(data, param_val_s, p - 1)
1019
1006
 
1020
- # Use quoted s value if one exists, otherwise use parameter value
1021
- value = qstr || chars(data, param_val_s, p-1)
1007
+ content_type.parameters << {param_attr => value}
1008
+ param_attr = nil
1009
+ qstr = nil
1010
+ end
1011
+ when 12
1012
+ begin
1013
+ end
1014
+ when 23
1015
+ begin
1016
+ end
1017
+ begin
1018
+ if param_attr.nil?
1019
+ raise Mail::Field::ParseError.new(Mail::ContentTypeElement, data, "no attribute for value")
1020
+ end
1022
1021
 
1023
- content_type.parameters << { param_attr => value }
1024
- param_attr = nil
1025
- qstr = nil
1026
- end
1027
- end
1028
- end
1022
+ # Use quoted s value if one exists, otherwise use parameter value
1023
+ value = qstr || chars(data, param_val_s, p - 1)
1029
1024
 
1030
- end
1031
- if _goto_level <= _out
1032
- break
1033
- end
1034
- end
1035
- end
1025
+ content_type.parameters << {param_attr => value}
1026
+ param_attr = nil
1027
+ qstr = nil
1028
+ end
1029
+ end
1030
+ end
1031
+ end
1032
+ if _goto_level <= _out
1033
+ break
1034
+ end
1035
+ end
1036
+ end
1036
1037
 
1038
+ if p != eof || cs < 47
1039
+ raise Mail::Field::IncompleteParseError.new(Mail::ContentTypeElement, data, p)
1040
+ end
1037
1041
 
1038
- if p != eof || cs < 47
1039
- raise Mail::Field::IncompleteParseError.new(Mail::ContentTypeElement, data, p)
1042
+ content_type
1040
1043
  end
1041
-
1042
- content_type
1043
1044
  end
1044
1045
  end
1046
+ ensure
1047
+ $VERBOSE = original_verbose
1045
1048
  end