freeclimb 5.0.0 → 5.1.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -1
- data/Gemfile +2 -1
- data/Gemfile.lock +21 -15
- data/README.md +5 -4
- data/docs/MessageResult.md +7 -1
- data/docs/TFNCampaign.md +34 -0
- data/lib/freeclimb/configuration.rb +1 -2
- data/lib/freeclimb/models/dequeue.rb +2 -4
- data/lib/freeclimb/models/message_result.rb +36 -5
- data/lib/freeclimb/models/remove_from_conference.rb +2 -4
- data/lib/freeclimb/models/start_record_call.rb +2 -4
- data/lib/freeclimb/models/terminate_conference.rb +2 -4
- data/lib/freeclimb/models/tfn_campaign.rb +370 -0
- data/lib/freeclimb/models/unpark.rb +2 -4
- data/lib/freeclimb/version.rb +1 -1
- data/lib/freeclimb.rb +1 -0
- data/openapi.json +93 -38
- data/spec/api/default_api_spec.rb +39 -117
- data/spec/models/account_request_spec.rb +113 -2
- data/spec/models/account_result_spec.rb +591 -28
- data/spec/models/account_status_spec.rb +1 -0
- data/spec/models/account_type_spec.rb +1 -0
- data/spec/models/add_to_conference_notification_webhook_spec.rb +654 -5
- data/spec/models/add_to_conference_spec.rb +471 -2
- data/spec/models/add_to_queue_notification_webhook_spec.rb +465 -2
- data/spec/models/answered_by_spec.rb +1 -0
- data/spec/models/application_list_spec.rb +323 -2
- data/spec/models/application_request_spec.rb +393 -2
- data/spec/models/application_result_spec.rb +723 -14
- data/spec/models/available_number_list_spec.rb +323 -2
- data/spec/models/available_number_spec.rb +380 -21
- data/spec/models/barge_in_reason_spec.rb +1 -0
- data/spec/models/buy_incoming_number_request_spec.rb +169 -2
- data/spec/models/call_control_webhook_spec.rb +281 -2
- data/spec/models/call_direction_spec.rb +1 -0
- data/spec/models/call_ended_reason_spec.rb +1 -0
- data/spec/models/call_list_spec.rb +323 -2
- data/spec/models/call_result_spec.rb +1020 -9
- data/spec/models/call_status_spec.rb +1 -0
- data/spec/models/call_status_webhook_spec.rb +501 -2
- data/spec/models/capabilities_spec.rb +191 -2
- data/spec/models/completion_request_spec.rb +54 -2
- data/spec/models/completion_result_spec.rb +93 -2
- data/spec/models/completion_result_status_spec.rb +1 -0
- data/spec/models/conference_list_spec.rb +323 -2
- data/spec/models/conference_participant_list_spec.rb +323 -2
- data/spec/models/conference_participant_result_spec.rb +532 -7
- data/spec/models/conference_recording_status_webhook_spec.rb +654 -5
- data/spec/models/conference_result_spec.rb +768 -55
- data/spec/models/conference_status_spec.rb +1 -0
- data/spec/models/conference_status_webhook_spec.rb +654 -5
- data/spec/models/create_conference_request_spec.rb +243 -2
- data/spec/models/create_conference_spec.rb +281 -2
- data/spec/models/create_conference_webhook_spec.rb +654 -5
- data/spec/models/create_web_rtc_token_spec.rb +151 -2
- data/spec/models/dequeue_spec.rb +1 -0
- data/spec/models/dequeue_webhook_spec.rb +565 -8
- data/spec/models/enqueue_spec.rb +225 -2
- data/spec/models/filter_logs_request_spec.rb +57 -2
- data/spec/models/get_digits_reason_spec.rb +1 -0
- data/spec/models/get_digits_spec.rb +379 -2
- data/spec/models/get_digits_webhook_spec.rb +623 -12
- data/spec/models/get_speech_reason_spec.rb +1 -0
- data/spec/models/get_speech_spec.rb +556 -11
- data/spec/models/get_speech_webhook_spec.rb +870 -15
- data/spec/models/grammar_file_built_in_spec.rb +1 -0
- data/spec/models/grammar_type_spec.rb +1 -0
- data/spec/models/hangup_spec.rb +57 -2
- data/spec/models/if_machine_spec.rb +1 -0
- data/spec/models/inbound_call_webhook_spec.rb +521 -2
- data/spec/models/incoming_number_list_spec.rb +323 -2
- data/spec/models/incoming_number_request_spec.rb +169 -2
- data/spec/models/incoming_number_result_spec.rb +930 -43
- data/spec/models/language_spec.rb +1 -0
- data/spec/models/leave_conference_webhook_spec.rb +465 -2
- data/spec/models/log_level_spec.rb +1 -0
- data/spec/models/log_list_spec.rb +323 -2
- data/spec/models/log_result_spec.rb +368 -9
- data/spec/models/machine_detected_webhook_spec.rb +565 -10
- data/spec/models/machine_type_spec.rb +1 -0
- data/spec/models/make_call_request_spec.rb +529 -6
- data/spec/models/message_delivery_webhook_spec.rb +565 -6
- data/spec/models/message_direction_spec.rb +1 -0
- data/spec/models/message_request_spec.rb +469 -2
- data/spec/models/message_result_spec.rb +1364 -225
- data/spec/models/message_status_spec.rb +1 -0
- data/spec/models/message_status_webhook_spec.rb +615 -20
- data/spec/models/messages_list_spec.rb +323 -2
- data/spec/models/mutable_resource_model_spec.rb +207 -2
- data/spec/models/out_dial_api_connect_webhook_spec.rb +521 -2
- data/spec/models/out_dial_connect_webhook_spec.rb +521 -2
- data/spec/models/out_dial_spec.rb +505 -2
- data/spec/models/out_dial_start_webhook_spec.rb +599 -24
- data/spec/models/pagination_model_spec.rb +285 -2
- data/spec/models/park_spec.rb +169 -2
- data/spec/models/pause_spec.rb +39 -2
- data/spec/models/percl_command_spec.rb +54 -2
- data/spec/models/percl_script_spec.rb +39 -2
- data/spec/models/play_beep_spec.rb +1 -0
- data/spec/models/play_early_media_spec.rb +57 -2
- data/spec/models/play_spec.rb +133 -2
- data/spec/models/queue_list_spec.rb +323 -2
- data/spec/models/queue_member_list_spec.rb +323 -2
- data/spec/models/queue_member_spec.rb +245 -2
- data/spec/models/queue_request_spec.rb +95 -2
- data/spec/models/queue_result_spec.rb +564 -15
- data/spec/models/queue_result_status_spec.rb +1 -0
- data/spec/models/queue_wait_webhook_spec.rb +616 -21
- data/spec/models/record_utterance_spec.rb +303 -2
- data/spec/models/record_utterance_term_reason_spec.rb +1 -0
- data/spec/models/record_webhook_spec.rb +868 -13
- data/spec/models/recording_list_spec.rb +323 -2
- data/spec/models/recording_result_spec.rb +469 -2
- data/spec/models/redirect_spec.rb +57 -2
- data/spec/models/redirect_webhook_spec.rb +521 -2
- data/spec/models/reject_spec.rb +57 -2
- data/spec/models/remove_from_conference_spec.rb +1 -0
- data/spec/models/remove_from_queue_notification_webhook_spec.rb +546 -9
- data/spec/models/request_type_spec.rb +1 -0
- data/spec/models/say_spec.rb +189 -2
- data/spec/models/send_digits_spec.rb +133 -2
- data/spec/models/set_dtmf_pass_through_spec.rb +39 -2
- data/spec/models/set_listen_spec.rb +39 -2
- data/spec/models/set_talk_spec.rb +39 -2
- data/spec/models/sms_spec.rb +225 -2
- data/spec/models/sms_ten_dlc_brand_alt_business_id_type_spec.rb +1 -0
- data/spec/models/sms_ten_dlc_brand_entity_type_spec.rb +1 -0
- data/spec/models/sms_ten_dlc_brand_identity_status_spec.rb +1 -0
- data/spec/models/sms_ten_dlc_brand_relationship_spec.rb +1 -0
- data/spec/models/sms_ten_dlc_brand_spec.rb +1969 -423
- data/spec/models/sms_ten_dlc_brand_stock_exchange_spec.rb +1 -0
- data/spec/models/sms_ten_dlc_brands_list_result_spec.rb +323 -2
- data/spec/models/sms_ten_dlc_campaign_spec.rb +2224 -550
- data/spec/models/sms_ten_dlc_campaign_status_spec.rb +1 -0
- data/spec/models/sms_ten_dlc_campaigns_list_result_spec.rb +323 -2
- data/spec/models/sms_ten_dlc_partner_campaign_brand_spec.rb +597 -17
- data/spec/models/sms_ten_dlc_partner_campaign_spec.rb +1537 -155
- data/spec/models/sms_ten_dlc_partner_campaign_status_spec.rb +1 -0
- data/spec/models/sms_ten_dlc_partner_campaigns_list_result_spec.rb +323 -2
- data/spec/models/sms_toll_free_campaign_registration_status_spec.rb +1 -0
- data/spec/models/sms_toll_free_campaign_spec.rb +355 -2
- data/spec/models/sms_toll_free_campaigns_list_result_spec.rb +323 -2
- data/spec/models/start_record_call_spec.rb +1 -0
- data/spec/models/terminate_conference_spec.rb +1 -0
- data/spec/models/tfn_campaign_spec.rb +1089 -0
- data/spec/models/tfn_spec.rb +57 -2
- data/spec/models/transcribe_reason_spec.rb +1 -0
- data/spec/models/transcribe_term_reason_spec.rb +1 -0
- data/spec/models/transcribe_utterance_record_spec.rb +115 -2
- data/spec/models/transcribe_utterance_spec.rb +288 -21
- data/spec/models/transcribe_webhook_spec.rb +1049 -4
- data/spec/models/unpark_spec.rb +1 -0
- data/spec/models/update_call_request_spec.rb +37 -2
- data/spec/models/update_call_request_status_spec.rb +1 -0
- data/spec/models/update_conference_participant_request_spec.rb +115 -2
- data/spec/models/update_conference_request_spec.rb +129 -2
- data/spec/models/update_conference_request_status_spec.rb +1 -0
- data/spec/models/webhook_spec.rb +54 -2
- metadata +129 -125
data/spec/models/say_spec.rb
CHANGED
@@ -13,6 +13,7 @@ OpenAPI Generator version: 7.9.0
|
|
13
13
|
require 'spec_helper'
|
14
14
|
require 'json'
|
15
15
|
require 'date'
|
16
|
+
include Freeclimb
|
16
17
|
|
17
18
|
# Unit tests for Freeclimb::Say
|
18
19
|
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
@@ -28,17 +29,23 @@ describe Freeclimb::Say do
|
|
28
29
|
|
29
30
|
describe 'test attribute "text"' do
|
30
31
|
it 'should work' do
|
32
|
+
|
31
33
|
instance.text = "TEST_STRING"
|
32
34
|
expect(instance.text).to eq("TEST_STRING")
|
33
35
|
|
36
|
+
|
37
|
+
|
34
38
|
end
|
35
39
|
end
|
36
40
|
|
37
41
|
describe 'test attribute "language"' do
|
38
42
|
it 'should work' do
|
43
|
+
|
39
44
|
instance.language = "TEST_STRING"
|
40
45
|
expect(instance.language).to eq("TEST_STRING")
|
41
46
|
|
47
|
+
|
48
|
+
|
42
49
|
end
|
43
50
|
end
|
44
51
|
|
@@ -49,6 +56,8 @@ describe Freeclimb::Say do
|
|
49
56
|
instance.loop = 1
|
50
57
|
expect(instance.loop).to eq(1)
|
51
58
|
|
59
|
+
|
60
|
+
|
52
61
|
end
|
53
62
|
end
|
54
63
|
|
@@ -57,45 +66,77 @@ describe Freeclimb::Say do
|
|
57
66
|
instance.privacy_mode = false
|
58
67
|
expect(instance.privacy_mode).to eq(false)
|
59
68
|
|
69
|
+
|
70
|
+
|
60
71
|
end
|
61
72
|
end
|
62
73
|
|
63
74
|
describe 'test method "initialize"' do
|
64
75
|
it 'properly initializes with values' do
|
65
76
|
expect { instance = Freeclimb::Say.new(
|
77
|
+
|
66
78
|
text: "TS",
|
67
79
|
|
80
|
+
|
81
|
+
|
82
|
+
|
68
83
|
language: "TS",
|
69
84
|
|
85
|
+
|
86
|
+
|
70
87
|
loop: 1,
|
71
88
|
|
89
|
+
|
90
|
+
|
72
91
|
privacy_mode: true,
|
73
92
|
|
93
|
+
|
94
|
+
|
74
95
|
)}.not_to raise_error()
|
75
96
|
end
|
76
97
|
it 'fails to initialize with input argument that is not a hash in Freeclimb::Say' do
|
77
98
|
expect { instance = Freeclimb::Say.new(
|
99
|
+
|
78
100
|
text: "TS",
|
79
101
|
|
102
|
+
|
103
|
+
|
104
|
+
|
80
105
|
language: "TS",
|
81
106
|
|
107
|
+
|
108
|
+
|
82
109
|
loop: 1,
|
83
110
|
|
111
|
+
|
112
|
+
|
84
113
|
privacy_mode: true,
|
85
114
|
|
115
|
+
|
116
|
+
|
86
117
|
invalid_attribute: true
|
87
118
|
)}.to raise_error(ArgumentError)
|
88
119
|
end
|
89
120
|
it 'fails to initialize with invalid attribute' do
|
90
121
|
expect { instance = Freeclimb::Say.new(
|
122
|
+
|
91
123
|
text: "TS",
|
92
124
|
|
125
|
+
|
126
|
+
|
127
|
+
|
93
128
|
language: "TS",
|
94
129
|
|
130
|
+
|
131
|
+
|
95
132
|
loop: 1,
|
96
133
|
|
134
|
+
|
135
|
+
|
97
136
|
privacy_mode: true,
|
98
137
|
|
138
|
+
|
139
|
+
|
99
140
|
invalid_attribute: true
|
100
141
|
)}.to raise_error(ArgumentError)
|
101
142
|
end
|
@@ -104,14 +145,24 @@ describe Freeclimb::Say do
|
|
104
145
|
describe 'test method "valid"' do
|
105
146
|
it 'checks if properties are valid' do
|
106
147
|
instance = Freeclimb::Say.new(
|
148
|
+
|
107
149
|
text: "TS",
|
108
150
|
|
151
|
+
|
152
|
+
|
153
|
+
|
109
154
|
language: "TS",
|
110
155
|
|
156
|
+
|
157
|
+
|
111
158
|
loop: 1,
|
112
159
|
|
160
|
+
|
161
|
+
|
113
162
|
privacy_mode: true,
|
114
163
|
|
164
|
+
|
165
|
+
|
115
166
|
)
|
116
167
|
expect(instance.valid?).to eq(true)
|
117
168
|
end
|
@@ -128,50 +179,93 @@ describe Freeclimb::Say do
|
|
128
179
|
|
129
180
|
describe 'test method "eql?"' do
|
130
181
|
it 'checks if objects are equal' do
|
131
|
-
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
|
132
186
|
instance_1 = Freeclimb::Say.new(
|
187
|
+
|
133
188
|
text: "TS",
|
134
189
|
|
190
|
+
|
191
|
+
|
192
|
+
|
135
193
|
language: "TS",
|
136
194
|
|
195
|
+
|
196
|
+
|
137
197
|
loop: 1,
|
138
198
|
|
199
|
+
|
200
|
+
|
139
201
|
privacy_mode: true,
|
140
202
|
|
203
|
+
|
204
|
+
|
141
205
|
)
|
142
206
|
instance_2 = Freeclimb::Say.new(
|
207
|
+
|
143
208
|
text: "TS",
|
144
209
|
|
210
|
+
|
211
|
+
|
212
|
+
|
145
213
|
language: "TS",
|
146
214
|
|
215
|
+
|
216
|
+
|
217
|
+
|
218
|
+
|
147
219
|
loop: 1,
|
148
220
|
|
149
221
|
privacy_mode: true,
|
150
222
|
|
223
|
+
|
224
|
+
|
151
225
|
)
|
152
226
|
expect(instance_1.eql?(instance_2)).to eq(true)
|
153
227
|
end
|
154
228
|
|
155
229
|
it 'checks if objects are not equal' do
|
156
230
|
instance_1 = Freeclimb::Say.new(
|
231
|
+
|
157
232
|
text: "TS",
|
158
233
|
|
234
|
+
|
235
|
+
|
236
|
+
|
159
237
|
language: "TS",
|
160
238
|
|
239
|
+
|
240
|
+
|
161
241
|
loop: 2,
|
162
242
|
|
243
|
+
|
244
|
+
|
163
245
|
privacy_mode: true,
|
164
246
|
|
247
|
+
|
248
|
+
|
165
249
|
)
|
166
250
|
instance_2 = Freeclimb::Say.new(
|
251
|
+
|
167
252
|
text: "ST",
|
168
253
|
|
254
|
+
|
255
|
+
|
256
|
+
|
169
257
|
language: "ST",
|
170
258
|
|
259
|
+
|
260
|
+
|
171
261
|
loop: 1,
|
172
262
|
|
263
|
+
|
264
|
+
|
173
265
|
privacy_mode: false,
|
174
266
|
|
267
|
+
|
268
|
+
|
175
269
|
)
|
176
270
|
expect(instance_1.eql?(instance_2)).to eq(false)
|
177
271
|
end
|
@@ -180,14 +274,24 @@ describe Freeclimb::Say do
|
|
180
274
|
describe 'test method "hash"' do
|
181
275
|
it 'calculates hash code' do
|
182
276
|
instance = Freeclimb::Say.new(
|
277
|
+
|
183
278
|
text: "TS",
|
184
279
|
|
280
|
+
|
281
|
+
|
282
|
+
|
185
283
|
language: "TS",
|
186
284
|
|
285
|
+
|
286
|
+
|
187
287
|
loop: 1,
|
188
288
|
|
289
|
+
|
290
|
+
|
189
291
|
privacy_mode: true,
|
190
292
|
|
293
|
+
|
294
|
+
|
191
295
|
)
|
192
296
|
expect(instance.hash).to be_a_kind_of(Integer)
|
193
297
|
end
|
@@ -196,24 +300,44 @@ describe Freeclimb::Say do
|
|
196
300
|
describe 'test method "build_from_hash"' do
|
197
301
|
it 'builds equivalent model from hash code' do
|
198
302
|
instance_1 = Freeclimb::Say.new(
|
303
|
+
|
199
304
|
text: "TS",
|
200
305
|
|
306
|
+
|
307
|
+
|
308
|
+
|
201
309
|
language: "TS",
|
202
310
|
|
311
|
+
|
312
|
+
|
203
313
|
loop: 1,
|
204
314
|
|
315
|
+
|
316
|
+
|
205
317
|
privacy_mode: true,
|
206
318
|
|
319
|
+
|
320
|
+
|
207
321
|
)
|
208
322
|
instance_2 = Freeclimb::Say.new(
|
323
|
+
|
209
324
|
text: "TS",
|
210
325
|
|
326
|
+
|
327
|
+
|
328
|
+
|
211
329
|
language: "TS",
|
212
330
|
|
331
|
+
|
332
|
+
|
213
333
|
loop: 1,
|
214
334
|
|
335
|
+
|
336
|
+
|
215
337
|
privacy_mode: true,
|
216
338
|
|
339
|
+
|
340
|
+
|
217
341
|
)
|
218
342
|
|
219
343
|
expect(instance_2.build_from_hash(instance_1.hash)).to eq(instance_1.build_from_hash(instance_1.hash))
|
@@ -222,24 +346,42 @@ describe Freeclimb::Say do
|
|
222
346
|
|
223
347
|
describe 'test method "_deserialize"' do
|
224
348
|
instance = Freeclimb::Say.new(
|
349
|
+
|
225
350
|
text: "TS",
|
226
351
|
|
352
|
+
|
353
|
+
|
354
|
+
|
227
355
|
language: "TS",
|
228
356
|
|
357
|
+
|
358
|
+
|
229
359
|
loop: 1,
|
230
360
|
|
361
|
+
|
362
|
+
|
231
363
|
privacy_mode: true,
|
232
364
|
|
365
|
+
|
366
|
+
|
233
367
|
)
|
234
368
|
it 'deserializes the data of text' do
|
235
369
|
expect(instance._deserialize("String", instance.text)).to be_a_kind_of(String)
|
236
370
|
end
|
371
|
+
|
372
|
+
|
237
373
|
it 'deserializes the data of language' do
|
238
374
|
expect(instance._deserialize("String", instance.language)).to be_a_kind_of(String)
|
239
375
|
end
|
376
|
+
|
377
|
+
|
240
378
|
it 'deserializes the data of loop' do
|
241
379
|
expect(instance._deserialize("Integer", instance.loop)).to be_a_kind_of(Integer)
|
242
380
|
end
|
381
|
+
|
382
|
+
|
383
|
+
|
384
|
+
|
243
385
|
it 'deserializes the data of privacy_mode' do
|
244
386
|
expect(instance._deserialize("Boolean", instance.privacy_mode)).to be_a_kind_of(TrueClass)
|
245
387
|
end
|
@@ -248,14 +390,24 @@ describe Freeclimb::Say do
|
|
248
390
|
describe 'test method "to_s"' do
|
249
391
|
it 'returns the string representation of the object' do
|
250
392
|
instance = Freeclimb::Say.new(
|
393
|
+
|
251
394
|
text: "TS",
|
252
395
|
|
396
|
+
|
397
|
+
|
398
|
+
|
253
399
|
language: "TS",
|
254
400
|
|
401
|
+
|
402
|
+
|
255
403
|
loop: 1,
|
256
404
|
|
405
|
+
|
406
|
+
|
257
407
|
privacy_mode: true,
|
258
408
|
|
409
|
+
|
410
|
+
|
259
411
|
)
|
260
412
|
expect(instance.to_s).to eq(instance.to_hash.to_s)
|
261
413
|
end
|
@@ -264,38 +416,71 @@ describe Freeclimb::Say do
|
|
264
416
|
describe 'test method "to_hash"' do
|
265
417
|
it 'returns the object in the form of hash' do
|
266
418
|
instance = Freeclimb::Say.new(
|
419
|
+
|
267
420
|
text: "TS",
|
268
421
|
|
422
|
+
|
423
|
+
|
424
|
+
|
269
425
|
language: "TS",
|
270
426
|
|
427
|
+
|
428
|
+
|
271
429
|
loop: 1,
|
272
430
|
|
431
|
+
|
432
|
+
|
273
433
|
privacy_mode: true,
|
274
434
|
|
435
|
+
|
436
|
+
|
275
437
|
)
|
276
438
|
expect(instance.to_hash).to be_a_kind_of(Hash)
|
277
439
|
end
|
278
440
|
it 'creates equal hash for two equal objects' do
|
279
|
-
|
441
|
+
|
442
|
+
|
443
|
+
|
444
|
+
|
280
445
|
instance_1 = Freeclimb::Say.new(
|
446
|
+
|
281
447
|
text: "TS",
|
282
448
|
|
449
|
+
|
450
|
+
|
451
|
+
|
283
452
|
language: "TS",
|
284
453
|
|
454
|
+
|
455
|
+
|
285
456
|
loop: 1,
|
286
457
|
|
458
|
+
|
459
|
+
|
287
460
|
privacy_mode: true,
|
288
461
|
|
462
|
+
|
463
|
+
|
289
464
|
)
|
290
465
|
instance_2 = Freeclimb::Say.new(
|
466
|
+
|
291
467
|
text: "TS",
|
292
468
|
|
469
|
+
|
470
|
+
|
471
|
+
|
293
472
|
language: "TS",
|
294
473
|
|
474
|
+
|
475
|
+
|
295
476
|
loop: 1,
|
296
477
|
|
478
|
+
|
479
|
+
|
297
480
|
privacy_mode: true,
|
298
481
|
|
482
|
+
|
483
|
+
|
299
484
|
)
|
300
485
|
expect(instance_1.to_hash).to eq(instance_2.to_hash)
|
301
486
|
end
|
@@ -303,9 +488,11 @@ describe Freeclimb::Say do
|
|
303
488
|
|
304
489
|
describe 'test method "_to_hash"' do
|
305
490
|
instance = Freeclimb::Say.new(
|
491
|
+
|
306
492
|
text: "TS",
|
307
493
|
|
308
494
|
|
495
|
+
|
309
496
|
language: "TS",
|
310
497
|
|
311
498
|
|