aws-sdk-rekognition 1.33.0 → 1.38.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,6 +6,7 @@
6
6
  # WARNING ABOUT GENERATED CODE
7
7
 
8
8
  module Aws::Rekognition
9
+
9
10
  class Resource
10
11
 
11
12
  # @param options ({})
@@ -8,6 +8,10 @@
8
8
  module Aws::Rekognition
9
9
  module Types
10
10
 
11
+ # You are not authorized to perform the action.
12
+ #
13
+ class AccessDeniedException < Aws::EmptyStructure; end
14
+
11
15
  # Structure containing the estimated age range, in years, for a face.
12
16
  #
13
17
  # Amazon Rekognition estimates an age range for faces detected in the
@@ -97,6 +101,16 @@ module Aws::Rekognition
97
101
  #
98
102
  # </note>
99
103
  #
104
+ # @note When making an API call, you may pass BoundingBox
105
+ # data as a hash:
106
+ #
107
+ # {
108
+ # width: 1.0,
109
+ # height: 1.0,
110
+ # left: 1.0,
111
+ # top: 1.0,
112
+ # }
113
+ #
100
114
  # @!attribute [rw] width
101
115
  # Width of the bounding box as a ratio of the overall image width.
102
116
  # @return [Float]
@@ -737,6 +751,58 @@ module Aws::Rekognition
737
751
  include Aws::Structure
738
752
  end
739
753
 
754
+ # @note When making an API call, you may pass DeleteProjectRequest
755
+ # data as a hash:
756
+ #
757
+ # {
758
+ # project_arn: "ProjectArn", # required
759
+ # }
760
+ #
761
+ # @!attribute [rw] project_arn
762
+ # The Amazon Resource Name (ARN) of the project that you want to
763
+ # delete.
764
+ # @return [String]
765
+ #
766
+ class DeleteProjectRequest < Struct.new(
767
+ :project_arn)
768
+ include Aws::Structure
769
+ end
770
+
771
+ # @!attribute [rw] status
772
+ # The current status of the delete project operation.
773
+ # @return [String]
774
+ #
775
+ class DeleteProjectResponse < Struct.new(
776
+ :status)
777
+ include Aws::Structure
778
+ end
779
+
780
+ # @note When making an API call, you may pass DeleteProjectVersionRequest
781
+ # data as a hash:
782
+ #
783
+ # {
784
+ # project_version_arn: "ProjectVersionArn", # required
785
+ # }
786
+ #
787
+ # @!attribute [rw] project_version_arn
788
+ # The Amazon Resource Name (ARN) of the model version that you want to
789
+ # delete.
790
+ # @return [String]
791
+ #
792
+ class DeleteProjectVersionRequest < Struct.new(
793
+ :project_version_arn)
794
+ include Aws::Structure
795
+ end
796
+
797
+ # @!attribute [rw] status
798
+ # The status of the deletion operation.
799
+ # @return [String]
800
+ #
801
+ class DeleteProjectVersionResponse < Struct.new(
802
+ :status)
803
+ include Aws::Structure
804
+ end
805
+
740
806
  # @note When making an API call, you may pass DeleteStreamProcessorRequest
741
807
  # data as a hash:
742
808
  #
@@ -1297,6 +1363,48 @@ module Aws::Rekognition
1297
1363
  include Aws::Structure
1298
1364
  end
1299
1365
 
1366
+ # A set of optional parameters that you can use to set the criteria that
1367
+ # the text must meet to be included in your response. `WordFilter` looks
1368
+ # at a word’s height, width, and minimum confidence. `RegionOfInterest`
1369
+ # lets you set a specific region of the image to look for text in.
1370
+ #
1371
+ # @note When making an API call, you may pass DetectTextFilters
1372
+ # data as a hash:
1373
+ #
1374
+ # {
1375
+ # word_filter: {
1376
+ # min_confidence: 1.0,
1377
+ # min_bounding_box_height: 1.0,
1378
+ # min_bounding_box_width: 1.0,
1379
+ # },
1380
+ # regions_of_interest: [
1381
+ # {
1382
+ # bounding_box: {
1383
+ # width: 1.0,
1384
+ # height: 1.0,
1385
+ # left: 1.0,
1386
+ # top: 1.0,
1387
+ # },
1388
+ # },
1389
+ # ],
1390
+ # }
1391
+ #
1392
+ # @!attribute [rw] word_filter
1393
+ # A set of parameters that allow you to filter out certain results
1394
+ # from your returned results.
1395
+ # @return [Types::DetectionFilter]
1396
+ #
1397
+ # @!attribute [rw] regions_of_interest
1398
+ # A Filter focusing on a certain area of the image. Uses a
1399
+ # `BoundingBox` object to set the region of the image.
1400
+ # @return [Array<Types::RegionOfInterest>]
1401
+ #
1402
+ class DetectTextFilters < Struct.new(
1403
+ :word_filter,
1404
+ :regions_of_interest)
1405
+ include Aws::Structure
1406
+ end
1407
+
1300
1408
  # @note When making an API call, you may pass DetectTextRequest
1301
1409
  # data as a hash:
1302
1410
  #
@@ -1309,6 +1417,23 @@ module Aws::Rekognition
1309
1417
  # version: "S3ObjectVersion",
1310
1418
  # },
1311
1419
  # },
1420
+ # filters: {
1421
+ # word_filter: {
1422
+ # min_confidence: 1.0,
1423
+ # min_bounding_box_height: 1.0,
1424
+ # min_bounding_box_width: 1.0,
1425
+ # },
1426
+ # regions_of_interest: [
1427
+ # {
1428
+ # bounding_box: {
1429
+ # width: 1.0,
1430
+ # height: 1.0,
1431
+ # left: 1.0,
1432
+ # top: 1.0,
1433
+ # },
1434
+ # },
1435
+ # ],
1436
+ # },
1312
1437
  # }
1313
1438
  #
1314
1439
  # @!attribute [rw] image
@@ -1322,8 +1447,14 @@ module Aws::Rekognition
1322
1447
  # developer guide.
1323
1448
  # @return [Types::Image]
1324
1449
  #
1450
+ # @!attribute [rw] filters
1451
+ # Optional parameters that let you set the criteria that the text must
1452
+ # meet to be included in your response.
1453
+ # @return [Types::DetectTextFilters]
1454
+ #
1325
1455
  class DetectTextRequest < Struct.new(
1326
- :image)
1456
+ :image,
1457
+ :filters)
1327
1458
  include Aws::Structure
1328
1459
  end
1329
1460
 
@@ -1331,8 +1462,51 @@ module Aws::Rekognition
1331
1462
  # An array of text that was detected in the input image.
1332
1463
  # @return [Array<Types::TextDetection>]
1333
1464
  #
1465
+ # @!attribute [rw] text_model_version
1466
+ # The model version used to detect text.
1467
+ # @return [String]
1468
+ #
1334
1469
  class DetectTextResponse < Struct.new(
1335
- :text_detections)
1470
+ :text_detections,
1471
+ :text_model_version)
1472
+ include Aws::Structure
1473
+ end
1474
+
1475
+ # A set of parameters that allow you to filter out certain results from
1476
+ # your returned results.
1477
+ #
1478
+ # @note When making an API call, you may pass DetectionFilter
1479
+ # data as a hash:
1480
+ #
1481
+ # {
1482
+ # min_confidence: 1.0,
1483
+ # min_bounding_box_height: 1.0,
1484
+ # min_bounding_box_width: 1.0,
1485
+ # }
1486
+ #
1487
+ # @!attribute [rw] min_confidence
1488
+ # Sets confidence of word detection. Words with detection confidence
1489
+ # below this will be excluded from the result. Values should be
1490
+ # between 0.5 and 1 as Text in Video will not return any result below
1491
+ # 0.5.
1492
+ # @return [Float]
1493
+ #
1494
+ # @!attribute [rw] min_bounding_box_height
1495
+ # Sets the minimum height of the word bounding box. Words with
1496
+ # bounding box heights lesser than this value will be excluded from
1497
+ # the result. Value is relative to the video frame height.
1498
+ # @return [Float]
1499
+ #
1500
+ # @!attribute [rw] min_bounding_box_width
1501
+ # Sets the minimum width of the word bounding box. Words with bounding
1502
+ # boxes widths lesser than this value will be excluded from the
1503
+ # result. Value is relative to the video frame width.
1504
+ # @return [Float]
1505
+ #
1506
+ class DetectionFilter < Struct.new(
1507
+ :min_confidence,
1508
+ :min_bounding_box_height,
1509
+ :min_bounding_box_width)
1336
1510
  include Aws::Structure
1337
1511
  end
1338
1512
 
@@ -1642,7 +1816,7 @@ module Aws::Rekognition
1642
1816
  #
1643
1817
  # @!attribute [rw] face_match_threshold
1644
1818
  # Minimum face match confidence score that must be met to return a
1645
- # result for a recognized face. Default is 70. 0 is the lowest
1819
+ # result for a recognized face. Default is 80. 0 is the lowest
1646
1820
  # confidence. 100 is the highest confidence.
1647
1821
  # @return [Float]
1648
1822
  #
@@ -2223,6 +2397,82 @@ module Aws::Rekognition
2223
2397
  include Aws::Structure
2224
2398
  end
2225
2399
 
2400
+ # @note When making an API call, you may pass GetTextDetectionRequest
2401
+ # data as a hash:
2402
+ #
2403
+ # {
2404
+ # job_id: "JobId", # required
2405
+ # max_results: 1,
2406
+ # next_token: "PaginationToken",
2407
+ # }
2408
+ #
2409
+ # @!attribute [rw] job_id
2410
+ # Job identifier for the label detection operation for which you want
2411
+ # results returned. You get the job identifer from an initial call to
2412
+ # `StartTextDetection`.
2413
+ # @return [String]
2414
+ #
2415
+ # @!attribute [rw] max_results
2416
+ # Maximum number of results to return per paginated call. The largest
2417
+ # value you can specify is 1000.
2418
+ # @return [Integer]
2419
+ #
2420
+ # @!attribute [rw] next_token
2421
+ # If the previous response was incomplete (because there are more
2422
+ # labels to retrieve), Amazon Rekognition Video returns a pagination
2423
+ # token in the response. You can use this pagination token to retrieve
2424
+ # the next set of text.
2425
+ # @return [String]
2426
+ #
2427
+ class GetTextDetectionRequest < Struct.new(
2428
+ :job_id,
2429
+ :max_results,
2430
+ :next_token)
2431
+ include Aws::Structure
2432
+ end
2433
+
2434
+ # @!attribute [rw] job_status
2435
+ # Current status of the text detection job.
2436
+ # @return [String]
2437
+ #
2438
+ # @!attribute [rw] status_message
2439
+ # If the job fails, `StatusMessage` provides a descriptive error
2440
+ # message.
2441
+ # @return [String]
2442
+ #
2443
+ # @!attribute [rw] video_metadata
2444
+ # Information about a video that Amazon Rekognition analyzed.
2445
+ # `Videometadata` is returned in every page of paginated responses
2446
+ # from a Amazon Rekognition video operation.
2447
+ # @return [Types::VideoMetadata]
2448
+ #
2449
+ # @!attribute [rw] text_detections
2450
+ # An array of text detected in the video. Each element contains the
2451
+ # detected text, the time in milliseconds from the start of the video
2452
+ # that the text was detected, and where it was detected on the screen.
2453
+ # @return [Array<Types::TextDetectionResult>]
2454
+ #
2455
+ # @!attribute [rw] next_token
2456
+ # If the response is truncated, Amazon Rekognition Video returns this
2457
+ # token that you can use in the subsequent request to retrieve the
2458
+ # next set of text.
2459
+ # @return [String]
2460
+ #
2461
+ # @!attribute [rw] text_model_version
2462
+ # Version number of the text detection model that was used to detect
2463
+ # text.
2464
+ # @return [String]
2465
+ #
2466
+ class GetTextDetectionResponse < Struct.new(
2467
+ :job_status,
2468
+ :status_message,
2469
+ :video_metadata,
2470
+ :text_detections,
2471
+ :next_token,
2472
+ :text_model_version)
2473
+ include Aws::Structure
2474
+ end
2475
+
2226
2476
  # The S3 bucket that contains the Ground Truth manifest file.
2227
2477
  #
2228
2478
  # @note When making an API call, you may pass GroundTruthManifest
@@ -2349,6 +2599,12 @@ module Aws::Rekognition
2349
2599
  include Aws::Structure
2350
2600
  end
2351
2601
 
2602
+ # A `ClientRequestToken` input parameter was reused with an operation,
2603
+ # but at least one of the other input parameters is different from the
2604
+ # previous call to the operation.
2605
+ #
2606
+ class IdempotentParameterMismatchException < Aws::EmptyStructure; end
2607
+
2352
2608
  # Provides the input image either as bytes or an S3 object.
2353
2609
  #
2354
2610
  # You pass image bytes to an Amazon Rekognition API operation by using
@@ -2423,6 +2679,12 @@ module Aws::Rekognition
2423
2679
  include Aws::Structure
2424
2680
  end
2425
2681
 
2682
+ # The input image size exceeds the allowed limit. For more information,
2683
+ # see Limits in Amazon Rekognition in the Amazon Rekognition Developer
2684
+ # Guide.
2685
+ #
2686
+ class ImageTooLargeException < Aws::EmptyStructure; end
2687
+
2426
2688
  # @note When making an API call, you may pass IndexFacesRequest
2427
2689
  # data as a hash:
2428
2690
  #
@@ -2597,6 +2859,28 @@ module Aws::Rekognition
2597
2859
  include Aws::Structure
2598
2860
  end
2599
2861
 
2862
+ # Amazon Rekognition experienced a service issue. Try your call again.
2863
+ #
2864
+ class InternalServerError < Aws::EmptyStructure; end
2865
+
2866
+ # The provided image format is not supported.
2867
+ #
2868
+ class InvalidImageFormatException < Aws::EmptyStructure; end
2869
+
2870
+ # Pagination token in the request is not valid.
2871
+ #
2872
+ class InvalidPaginationTokenException < Aws::EmptyStructure; end
2873
+
2874
+ # Input parameter violated a constraint. Validate your parameter before
2875
+ # calling the API operation again.
2876
+ #
2877
+ class InvalidParameterException < Aws::EmptyStructure; end
2878
+
2879
+ # Amazon Rekognition is unable to access the S3 object specified in the
2880
+ # request.
2881
+ #
2882
+ class InvalidS3ObjectException < Aws::EmptyStructure; end
2883
+
2600
2884
  # The Kinesis data stream Amazon Rekognition to which the analysis
2601
2885
  # results of a Amazon Rekognition stream processor are streamed. For
2602
2886
  # more information, see CreateStreamProcessor in the Amazon Rekognition
@@ -2715,6 +2999,15 @@ module Aws::Rekognition
2715
2999
  include Aws::Structure
2716
3000
  end
2717
3001
 
3002
+ # An Amazon Rekognition service limit was exceeded. For example, if you
3003
+ # start too many Amazon Rekognition Video jobs concurrently, calls to
3004
+ # start operations (`StartLabelDetection`, for example) will raise a
3005
+ # `LimitExceededException` exception (HTTP status code: 400) until the
3006
+ # number of concurrently running jobs is below the Amazon Rekognition
3007
+ # service limit.
3008
+ #
3009
+ class LimitExceededException < Aws::EmptyStructure; end
3010
+
2718
3011
  # @note When making an API call, you may pass ListCollectionsRequest
2719
3012
  # data as a hash:
2720
3013
  #
@@ -3191,6 +3484,11 @@ module Aws::Rekognition
3191
3484
  include Aws::Structure
3192
3485
  end
3193
3486
 
3487
+ # The number of requests exceeded your throughput limit. If you want to
3488
+ # increase this limit, contact Amazon Rekognition.
3489
+ #
3490
+ class ProvisionedThroughputExceededException < Aws::EmptyStructure; end
3491
+
3194
3492
  # @note When making an API call, you may pass RecognizeCelebritiesRequest
3195
3493
  # data as a hash:
3196
3494
  #
@@ -3256,6 +3554,51 @@ module Aws::Rekognition
3256
3554
  include Aws::Structure
3257
3555
  end
3258
3556
 
3557
+ # Specifies a location within the frame that Rekognition checks for
3558
+ # text. Uses a `BoundingBox` object to set a region of the screen.
3559
+ #
3560
+ # A word is included in the region if the word is more than half in that
3561
+ # region. If there is more than one region, the word will be compared
3562
+ # with all regions of the screen. Any word more than half in a region is
3563
+ # kept in the results.
3564
+ #
3565
+ # @note When making an API call, you may pass RegionOfInterest
3566
+ # data as a hash:
3567
+ #
3568
+ # {
3569
+ # bounding_box: {
3570
+ # width: 1.0,
3571
+ # height: 1.0,
3572
+ # left: 1.0,
3573
+ # top: 1.0,
3574
+ # },
3575
+ # }
3576
+ #
3577
+ # @!attribute [rw] bounding_box
3578
+ # The box representing a region of interest on screen.
3579
+ # @return [Types::BoundingBox]
3580
+ #
3581
+ class RegionOfInterest < Struct.new(
3582
+ :bounding_box)
3583
+ include Aws::Structure
3584
+ end
3585
+
3586
+ # A collection with the specified ID already exists.
3587
+ #
3588
+ class ResourceAlreadyExistsException < Aws::EmptyStructure; end
3589
+
3590
+ class ResourceInUseException < Aws::EmptyStructure; end
3591
+
3592
+ # The collection specified in the request cannot be found.
3593
+ #
3594
+ class ResourceNotFoundException < Aws::EmptyStructure; end
3595
+
3596
+ # The requested resource isn't ready. For example, this exception
3597
+ # occurs when you call `DetectCustomLabels` with a model version that
3598
+ # isn't deployed.
3599
+ #
3600
+ class ResourceNotReadyException < Aws::EmptyStructure; end
3601
+
3259
3602
  # Provides the S3 bucket name and object name.
3260
3603
  #
3261
3604
  # The region for the S3 bucket containing the S3 object must match the
@@ -3941,6 +4284,135 @@ module Aws::Rekognition
3941
4284
 
3942
4285
  class StartStreamProcessorResponse < Aws::EmptyStructure; end
3943
4286
 
4287
+ # Set of optional parameters that let you set the criteria text must
4288
+ # meet to be included in your response. `WordFilter` looks at a word's
4289
+ # height, width and minimum confidence. `RegionOfInterest` lets you set
4290
+ # a specific region of the screen to look for text in.
4291
+ #
4292
+ # @note When making an API call, you may pass StartTextDetectionFilters
4293
+ # data as a hash:
4294
+ #
4295
+ # {
4296
+ # word_filter: {
4297
+ # min_confidence: 1.0,
4298
+ # min_bounding_box_height: 1.0,
4299
+ # min_bounding_box_width: 1.0,
4300
+ # },
4301
+ # regions_of_interest: [
4302
+ # {
4303
+ # bounding_box: {
4304
+ # width: 1.0,
4305
+ # height: 1.0,
4306
+ # left: 1.0,
4307
+ # top: 1.0,
4308
+ # },
4309
+ # },
4310
+ # ],
4311
+ # }
4312
+ #
4313
+ # @!attribute [rw] word_filter
4314
+ # Filters focusing on qualities of the text, such as confidence or
4315
+ # size.
4316
+ # @return [Types::DetectionFilter]
4317
+ #
4318
+ # @!attribute [rw] regions_of_interest
4319
+ # Filter focusing on a certain area of the frame. Uses a `BoundingBox`
4320
+ # object to set the region of the screen.
4321
+ # @return [Array<Types::RegionOfInterest>]
4322
+ #
4323
+ class StartTextDetectionFilters < Struct.new(
4324
+ :word_filter,
4325
+ :regions_of_interest)
4326
+ include Aws::Structure
4327
+ end
4328
+
4329
+ # @note When making an API call, you may pass StartTextDetectionRequest
4330
+ # data as a hash:
4331
+ #
4332
+ # {
4333
+ # video: { # required
4334
+ # s3_object: {
4335
+ # bucket: "S3Bucket",
4336
+ # name: "S3ObjectName",
4337
+ # version: "S3ObjectVersion",
4338
+ # },
4339
+ # },
4340
+ # client_request_token: "ClientRequestToken",
4341
+ # notification_channel: {
4342
+ # sns_topic_arn: "SNSTopicArn", # required
4343
+ # role_arn: "RoleArn", # required
4344
+ # },
4345
+ # job_tag: "JobTag",
4346
+ # filters: {
4347
+ # word_filter: {
4348
+ # min_confidence: 1.0,
4349
+ # min_bounding_box_height: 1.0,
4350
+ # min_bounding_box_width: 1.0,
4351
+ # },
4352
+ # regions_of_interest: [
4353
+ # {
4354
+ # bounding_box: {
4355
+ # width: 1.0,
4356
+ # height: 1.0,
4357
+ # left: 1.0,
4358
+ # top: 1.0,
4359
+ # },
4360
+ # },
4361
+ # ],
4362
+ # },
4363
+ # }
4364
+ #
4365
+ # @!attribute [rw] video
4366
+ # Video file stored in an Amazon S3 bucket. Amazon Rekognition video
4367
+ # start operations such as StartLabelDetection use `Video` to specify
4368
+ # a video for analysis. The supported file formats are .mp4, .mov and
4369
+ # .avi.
4370
+ # @return [Types::Video]
4371
+ #
4372
+ # @!attribute [rw] client_request_token
4373
+ # Idempotent token used to identify the start request. If you use the
4374
+ # same token with multiple `StartTextDetection` requests, the same
4375
+ # `JobId` is returned. Use `ClientRequestToken` to prevent the same
4376
+ # job from being accidentaly started more than once.
4377
+ # @return [String]
4378
+ #
4379
+ # @!attribute [rw] notification_channel
4380
+ # The Amazon Simple Notification Service topic to which Amazon
4381
+ # Rekognition publishes the completion status of a video analysis
4382
+ # operation. For more information, see api-video.
4383
+ # @return [Types::NotificationChannel]
4384
+ #
4385
+ # @!attribute [rw] job_tag
4386
+ # An identifier returned in the completion status published by your
4387
+ # Amazon Simple Notification Service topic. For example, you can use
4388
+ # `JobTag` to group related jobs and identify them in the completion
4389
+ # notification.
4390
+ # @return [String]
4391
+ #
4392
+ # @!attribute [rw] filters
4393
+ # Optional parameters that let you set criteria the text must meet to
4394
+ # be included in your response.
4395
+ # @return [Types::StartTextDetectionFilters]
4396
+ #
4397
+ class StartTextDetectionRequest < Struct.new(
4398
+ :video,
4399
+ :client_request_token,
4400
+ :notification_channel,
4401
+ :job_tag,
4402
+ :filters)
4403
+ include Aws::Structure
4404
+ end
4405
+
4406
+ # @!attribute [rw] job_id
4407
+ # Identifier for the text detection job. Use `JobId` to identify the
4408
+ # job in a subsequent call to `GetTextDetection`.
4409
+ # @return [String]
4410
+ #
4411
+ class StartTextDetectionResponse < Struct.new(
4412
+ :job_id)
4413
+ include Aws::Structure
4414
+ end
4415
+
3944
4416
  # @note When making an API call, you may pass StopProjectVersionRequest
3945
4417
  # data as a hash:
3946
4418
  #
@@ -4227,6 +4699,30 @@ module Aws::Rekognition
4227
4699
  include Aws::Structure
4228
4700
  end
4229
4701
 
4702
+ # Information about text detected in a video. Incudes the detected text,
4703
+ # the time in milliseconds from the start of the video that the text was
4704
+ # detected, and where it was detected on the screen.
4705
+ #
4706
+ # @!attribute [rw] timestamp
4707
+ # The time, in milliseconds from the start of the video, that the text
4708
+ # was detected.
4709
+ # @return [Integer]
4710
+ #
4711
+ # @!attribute [rw] text_detection
4712
+ # Details about text detected in a video.
4713
+ # @return [Types::TextDetection]
4714
+ #
4715
+ class TextDetectionResult < Struct.new(
4716
+ :timestamp,
4717
+ :text_detection)
4718
+ include Aws::Structure
4719
+ end
4720
+
4721
+ # Amazon Rekognition is temporarily unable to process the request. Try
4722
+ # your call again.
4723
+ #
4724
+ class ThrottlingException < Aws::EmptyStructure; end
4725
+
4230
4726
  # The dataset used for training.
4231
4727
  #
4232
4728
  # @note When making an API call, you may pass TrainingData
@@ -4371,5 +4867,10 @@ module Aws::Rekognition
4371
4867
  include Aws::Structure
4372
4868
  end
4373
4869
 
4870
+ # The file size or duration of the supplied media is too large. The
4871
+ # maximum file size is 10GB. The maximum duration is 6 hours.
4872
+ #
4873
+ class VideoTooLargeException < Aws::EmptyStructure; end
4874
+
4374
4875
  end
4375
4876
  end