azure_cognitiveservices_computervision 0.16.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE.txt +21 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision.rb +63 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/computer_vision_client.rb +2173 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/adult_info.rb +83 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/azure_regions.rb +26 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/category.rb +69 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/category_detail.rb +56 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/celebrities_model.rb +69 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/color_info.rb +98 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/computer_vision_error.rb +75 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/computer_vision_error_codes.rb +27 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/details.rb +16 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/domain_model_results.rb +80 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/domain_models.rb +16 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/face_description.rb +70 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/face_rectangle.rb +79 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/image_analysis.rb +169 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/image_caption.rb +57 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/image_description.rb +99 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/image_description_details.rb +99 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/image_metadata.rb +68 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/image_tag.rb +57 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/image_type.rb +57 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/image_url.rb +47 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/language1.rb +16 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/line.rb +86 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/list_models_result.rb +56 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/model_description.rb +65 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/ocr_languages.rb +41 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/ocr_line.rb +72 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/ocr_region.rb +72 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/ocr_result.rb +104 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/ocr_word.rb +62 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/recognition_result.rb +56 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/tag_result.rb +79 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/text_operation_result.rb +62 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/text_operation_status_codes.rb +18 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/visual_feature_types.rb +21 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/models/word.rb +66 -0
- data/lib/1.0/generated/azure_cognitiveservices_computervision/module_definition.rb +9 -0
- data/lib/azure_cognitiveservices_computervision.rb +6 -0
- data/lib/module_definition.rb +7 -0
- data/lib/profiles/latest/computervision_latest_profile_client.rb +38 -0
- data/lib/profiles/latest/computervision_module_definition.rb +8 -0
- data/lib/profiles/latest/modules/computervision_profile_module.rb +201 -0
- data/lib/version.rb +7 -0
- metadata +166 -0
@@ -0,0 +1,16 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Code generated by Microsoft (R) AutoRest Code Generator.
|
3
|
+
# Changes may cause incorrect behavior and will be lost if the code is
|
4
|
+
# regenerated.
|
5
|
+
|
6
|
+
module Azure::CognitiveServices::ComputerVision::V1_0
|
7
|
+
module Models
|
8
|
+
#
|
9
|
+
# Defines values for Language1
|
10
|
+
#
|
11
|
+
module Language1
|
12
|
+
En = "en"
|
13
|
+
Zh = "zh"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Code generated by Microsoft (R) AutoRest Code Generator.
|
3
|
+
# Changes may cause incorrect behavior and will be lost if the code is
|
4
|
+
# regenerated.
|
5
|
+
|
6
|
+
module Azure::CognitiveServices::ComputerVision::V1_0
|
7
|
+
module Models
|
8
|
+
#
|
9
|
+
# Model object.
|
10
|
+
#
|
11
|
+
#
|
12
|
+
class Line
|
13
|
+
|
14
|
+
include MsRestAzure
|
15
|
+
|
16
|
+
# @return [Array<Integer>]
|
17
|
+
attr_accessor :bounding_box
|
18
|
+
|
19
|
+
# @return [String]
|
20
|
+
attr_accessor :text
|
21
|
+
|
22
|
+
# @return [Array<Word>]
|
23
|
+
attr_accessor :words
|
24
|
+
|
25
|
+
|
26
|
+
#
|
27
|
+
# Mapper for Line class as Ruby Hash.
|
28
|
+
# This will be used for serialization/deserialization.
|
29
|
+
#
|
30
|
+
def self.mapper()
|
31
|
+
{
|
32
|
+
client_side_validation: true,
|
33
|
+
required: false,
|
34
|
+
serialized_name: 'Line',
|
35
|
+
type: {
|
36
|
+
name: 'Composite',
|
37
|
+
class_name: 'Line',
|
38
|
+
model_properties: {
|
39
|
+
bounding_box: {
|
40
|
+
client_side_validation: true,
|
41
|
+
required: false,
|
42
|
+
serialized_name: 'boundingBox',
|
43
|
+
type: {
|
44
|
+
name: 'Sequence',
|
45
|
+
element: {
|
46
|
+
client_side_validation: true,
|
47
|
+
required: false,
|
48
|
+
serialized_name: 'NumberElementType',
|
49
|
+
type: {
|
50
|
+
name: 'Number'
|
51
|
+
}
|
52
|
+
}
|
53
|
+
}
|
54
|
+
},
|
55
|
+
text: {
|
56
|
+
client_side_validation: true,
|
57
|
+
required: false,
|
58
|
+
serialized_name: 'text',
|
59
|
+
type: {
|
60
|
+
name: 'String'
|
61
|
+
}
|
62
|
+
},
|
63
|
+
words: {
|
64
|
+
client_side_validation: true,
|
65
|
+
required: false,
|
66
|
+
serialized_name: 'words',
|
67
|
+
type: {
|
68
|
+
name: 'Sequence',
|
69
|
+
element: {
|
70
|
+
client_side_validation: true,
|
71
|
+
required: false,
|
72
|
+
serialized_name: 'WordElementType',
|
73
|
+
type: {
|
74
|
+
name: 'Composite',
|
75
|
+
class_name: 'Word'
|
76
|
+
}
|
77
|
+
}
|
78
|
+
}
|
79
|
+
}
|
80
|
+
}
|
81
|
+
}
|
82
|
+
}
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Code generated by Microsoft (R) AutoRest Code Generator.
|
3
|
+
# Changes may cause incorrect behavior and will be lost if the code is
|
4
|
+
# regenerated.
|
5
|
+
|
6
|
+
module Azure::CognitiveServices::ComputerVision::V1_0
|
7
|
+
module Models
|
8
|
+
#
|
9
|
+
# Result of the List Domain Models operation.
|
10
|
+
#
|
11
|
+
class ListModelsResult
|
12
|
+
|
13
|
+
include MsRestAzure
|
14
|
+
|
15
|
+
# @return [Array<ModelDescription>] An array of supported models.
|
16
|
+
attr_accessor :models_property
|
17
|
+
|
18
|
+
|
19
|
+
#
|
20
|
+
# Mapper for ListModelsResult class as Ruby Hash.
|
21
|
+
# This will be used for serialization/deserialization.
|
22
|
+
#
|
23
|
+
def self.mapper()
|
24
|
+
{
|
25
|
+
client_side_validation: true,
|
26
|
+
required: false,
|
27
|
+
serialized_name: 'ListModelsResult',
|
28
|
+
type: {
|
29
|
+
name: 'Composite',
|
30
|
+
class_name: 'ListModelsResult',
|
31
|
+
model_properties: {
|
32
|
+
models_property: {
|
33
|
+
client_side_validation: true,
|
34
|
+
required: false,
|
35
|
+
read_only: true,
|
36
|
+
serialized_name: 'models',
|
37
|
+
type: {
|
38
|
+
name: 'Sequence',
|
39
|
+
element: {
|
40
|
+
client_side_validation: true,
|
41
|
+
required: false,
|
42
|
+
serialized_name: 'ModelDescriptionElementType',
|
43
|
+
type: {
|
44
|
+
name: 'Composite',
|
45
|
+
class_name: 'ModelDescription'
|
46
|
+
}
|
47
|
+
}
|
48
|
+
}
|
49
|
+
}
|
50
|
+
}
|
51
|
+
}
|
52
|
+
}
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Code generated by Microsoft (R) AutoRest Code Generator.
|
3
|
+
# Changes may cause incorrect behavior and will be lost if the code is
|
4
|
+
# regenerated.
|
5
|
+
|
6
|
+
module Azure::CognitiveServices::ComputerVision::V1_0
|
7
|
+
module Models
|
8
|
+
#
|
9
|
+
# An object describing supported model by name and categories.
|
10
|
+
#
|
11
|
+
class ModelDescription
|
12
|
+
|
13
|
+
include MsRestAzure
|
14
|
+
|
15
|
+
# @return [String]
|
16
|
+
attr_accessor :name
|
17
|
+
|
18
|
+
# @return [Array<String>]
|
19
|
+
attr_accessor :categories
|
20
|
+
|
21
|
+
|
22
|
+
#
|
23
|
+
# Mapper for ModelDescription class as Ruby Hash.
|
24
|
+
# This will be used for serialization/deserialization.
|
25
|
+
#
|
26
|
+
def self.mapper()
|
27
|
+
{
|
28
|
+
client_side_validation: true,
|
29
|
+
required: false,
|
30
|
+
serialized_name: 'ModelDescription',
|
31
|
+
type: {
|
32
|
+
name: 'Composite',
|
33
|
+
class_name: 'ModelDescription',
|
34
|
+
model_properties: {
|
35
|
+
name: {
|
36
|
+
client_side_validation: true,
|
37
|
+
required: false,
|
38
|
+
serialized_name: 'name',
|
39
|
+
type: {
|
40
|
+
name: 'String'
|
41
|
+
}
|
42
|
+
},
|
43
|
+
categories: {
|
44
|
+
client_side_validation: true,
|
45
|
+
required: false,
|
46
|
+
serialized_name: 'categories',
|
47
|
+
type: {
|
48
|
+
name: 'Sequence',
|
49
|
+
element: {
|
50
|
+
client_side_validation: true,
|
51
|
+
required: false,
|
52
|
+
serialized_name: 'StringElementType',
|
53
|
+
type: {
|
54
|
+
name: 'String'
|
55
|
+
}
|
56
|
+
}
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
60
|
+
}
|
61
|
+
}
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Code generated by Microsoft (R) AutoRest Code Generator.
|
3
|
+
# Changes may cause incorrect behavior and will be lost if the code is
|
4
|
+
# regenerated.
|
5
|
+
|
6
|
+
module Azure::CognitiveServices::ComputerVision::V1_0
|
7
|
+
module Models
|
8
|
+
#
|
9
|
+
# Defines values for OcrLanguages
|
10
|
+
#
|
11
|
+
module OcrLanguages
|
12
|
+
Unk = "unk"
|
13
|
+
ZhHans = "zh-Hans"
|
14
|
+
ZhHant = "zh-Hant"
|
15
|
+
Cs = "cs"
|
16
|
+
Da = "da"
|
17
|
+
Nl = "nl"
|
18
|
+
En = "en"
|
19
|
+
Fi = "fi"
|
20
|
+
Fr = "fr"
|
21
|
+
De = "de"
|
22
|
+
El = "el"
|
23
|
+
Hu = "hu"
|
24
|
+
It = "it"
|
25
|
+
Ja = "ja"
|
26
|
+
Ko = "ko"
|
27
|
+
Nb = "nb"
|
28
|
+
Pl = "pl"
|
29
|
+
Pt = "pt"
|
30
|
+
Ru = "ru"
|
31
|
+
Es = "es"
|
32
|
+
Sv = "sv"
|
33
|
+
Tr = "tr"
|
34
|
+
Ar = "ar"
|
35
|
+
Ro = "ro"
|
36
|
+
SrCyrl = "sr-Cyrl"
|
37
|
+
SrLatn = "sr-Latn"
|
38
|
+
Sk = "sk"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Code generated by Microsoft (R) AutoRest Code Generator.
|
3
|
+
# Changes may cause incorrect behavior and will be lost if the code is
|
4
|
+
# regenerated.
|
5
|
+
|
6
|
+
module Azure::CognitiveServices::ComputerVision::V1_0
|
7
|
+
module Models
|
8
|
+
#
|
9
|
+
# An object describing a single recognized line of text.
|
10
|
+
#
|
11
|
+
class OcrLine
|
12
|
+
|
13
|
+
include MsRestAzure
|
14
|
+
|
15
|
+
# @return [String] Bounding box of a recognized line. The four integers
|
16
|
+
# represent the x-coordinate of the left edge, the y-coordinate of the
|
17
|
+
# top edge, width, and height of the bounding box, in the coordinate
|
18
|
+
# system of the input image, after it has been rotated around its center
|
19
|
+
# according to the detected text angle (see textAngle property), with the
|
20
|
+
# origin at the top-left corner, and the y-axis pointing down.
|
21
|
+
attr_accessor :bounding_box
|
22
|
+
|
23
|
+
# @return [Array<OcrWord>] An array of objects, where each object
|
24
|
+
# represents a recognized word.
|
25
|
+
attr_accessor :words
|
26
|
+
|
27
|
+
|
28
|
+
#
|
29
|
+
# Mapper for OcrLine class as Ruby Hash.
|
30
|
+
# This will be used for serialization/deserialization.
|
31
|
+
#
|
32
|
+
def self.mapper()
|
33
|
+
{
|
34
|
+
client_side_validation: true,
|
35
|
+
required: false,
|
36
|
+
serialized_name: 'OcrLine',
|
37
|
+
type: {
|
38
|
+
name: 'Composite',
|
39
|
+
class_name: 'OcrLine',
|
40
|
+
model_properties: {
|
41
|
+
bounding_box: {
|
42
|
+
client_side_validation: true,
|
43
|
+
required: false,
|
44
|
+
serialized_name: 'boundingBox',
|
45
|
+
type: {
|
46
|
+
name: 'String'
|
47
|
+
}
|
48
|
+
},
|
49
|
+
words: {
|
50
|
+
client_side_validation: true,
|
51
|
+
required: false,
|
52
|
+
serialized_name: 'words',
|
53
|
+
type: {
|
54
|
+
name: 'Sequence',
|
55
|
+
element: {
|
56
|
+
client_side_validation: true,
|
57
|
+
required: false,
|
58
|
+
serialized_name: 'OcrWordElementType',
|
59
|
+
type: {
|
60
|
+
name: 'Composite',
|
61
|
+
class_name: 'OcrWord'
|
62
|
+
}
|
63
|
+
}
|
64
|
+
}
|
65
|
+
}
|
66
|
+
}
|
67
|
+
}
|
68
|
+
}
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Code generated by Microsoft (R) AutoRest Code Generator.
|
3
|
+
# Changes may cause incorrect behavior and will be lost if the code is
|
4
|
+
# regenerated.
|
5
|
+
|
6
|
+
module Azure::CognitiveServices::ComputerVision::V1_0
|
7
|
+
module Models
|
8
|
+
#
|
9
|
+
# A region consists of multiple lines (e.g. a column of text in a
|
10
|
+
# multi-column document).
|
11
|
+
#
|
12
|
+
class OcrRegion
|
13
|
+
|
14
|
+
include MsRestAzure
|
15
|
+
|
16
|
+
# @return [String] Bounding box of a recognized region. The four integers
|
17
|
+
# represent the x-coordinate of the left edge, the y-coordinate of the
|
18
|
+
# top edge, width, and height of the bounding box, in the coordinate
|
19
|
+
# system of the input image, after it has been rotated around its center
|
20
|
+
# according to the detected text angle (see textAngle property), with the
|
21
|
+
# origin at the top-left corner, and the y-axis pointing down.
|
22
|
+
attr_accessor :bounding_box
|
23
|
+
|
24
|
+
# @return [Array<OcrLine>]
|
25
|
+
attr_accessor :lines
|
26
|
+
|
27
|
+
|
28
|
+
#
|
29
|
+
# Mapper for OcrRegion class as Ruby Hash.
|
30
|
+
# This will be used for serialization/deserialization.
|
31
|
+
#
|
32
|
+
def self.mapper()
|
33
|
+
{
|
34
|
+
client_side_validation: true,
|
35
|
+
required: false,
|
36
|
+
serialized_name: 'OcrRegion',
|
37
|
+
type: {
|
38
|
+
name: 'Composite',
|
39
|
+
class_name: 'OcrRegion',
|
40
|
+
model_properties: {
|
41
|
+
bounding_box: {
|
42
|
+
client_side_validation: true,
|
43
|
+
required: false,
|
44
|
+
serialized_name: 'boundingBox',
|
45
|
+
type: {
|
46
|
+
name: 'String'
|
47
|
+
}
|
48
|
+
},
|
49
|
+
lines: {
|
50
|
+
client_side_validation: true,
|
51
|
+
required: false,
|
52
|
+
serialized_name: 'lines',
|
53
|
+
type: {
|
54
|
+
name: 'Sequence',
|
55
|
+
element: {
|
56
|
+
client_side_validation: true,
|
57
|
+
required: false,
|
58
|
+
serialized_name: 'OcrLineElementType',
|
59
|
+
type: {
|
60
|
+
name: 'Composite',
|
61
|
+
class_name: 'OcrLine'
|
62
|
+
}
|
63
|
+
}
|
64
|
+
}
|
65
|
+
}
|
66
|
+
}
|
67
|
+
}
|
68
|
+
}
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,104 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Code generated by Microsoft (R) AutoRest Code Generator.
|
3
|
+
# Changes may cause incorrect behavior and will be lost if the code is
|
4
|
+
# regenerated.
|
5
|
+
|
6
|
+
module Azure::CognitiveServices::ComputerVision::V1_0
|
7
|
+
module Models
|
8
|
+
#
|
9
|
+
# Model object.
|
10
|
+
#
|
11
|
+
#
|
12
|
+
class OcrResult
|
13
|
+
|
14
|
+
include MsRestAzure
|
15
|
+
|
16
|
+
# @return [OcrResult]
|
17
|
+
attr_accessor :language
|
18
|
+
|
19
|
+
# @return [Float] The angle, in degrees, of the detected text with
|
20
|
+
# respect to the closest horizontal or vertical direction. After rotating
|
21
|
+
# the input image clockwise by this angle, the recognized text lines
|
22
|
+
# become horizontal or vertical. In combination with the orientation
|
23
|
+
# property it can be used to overlay recognition results correctly on the
|
24
|
+
# original image, by rotating either the original image or recognition
|
25
|
+
# results by a suitable angle around the center of the original image. If
|
26
|
+
# the angle cannot be confidently detected, this property is not present.
|
27
|
+
# If the image contains text at different angles, only part of the text
|
28
|
+
# will be recognized correctly.
|
29
|
+
attr_accessor :text_angle
|
30
|
+
|
31
|
+
# @return [String] Orientation of the text recognized in the image. The
|
32
|
+
# value (up,down,left, or right) refers to the direction that the top of
|
33
|
+
# the recognized text is facing, after the image has been rotated around
|
34
|
+
# its center according to the detected text angle (see textAngle
|
35
|
+
# property).
|
36
|
+
attr_accessor :orientation
|
37
|
+
|
38
|
+
# @return [Array<OcrRegion>] An array of objects, where each object
|
39
|
+
# represents a region of recognized text.
|
40
|
+
attr_accessor :regions
|
41
|
+
|
42
|
+
|
43
|
+
#
|
44
|
+
# Mapper for OcrResult class as Ruby Hash.
|
45
|
+
# This will be used for serialization/deserialization.
|
46
|
+
#
|
47
|
+
def self.mapper()
|
48
|
+
{
|
49
|
+
client_side_validation: true,
|
50
|
+
required: false,
|
51
|
+
serialized_name: 'OcrResult',
|
52
|
+
type: {
|
53
|
+
name: 'Composite',
|
54
|
+
class_name: 'OcrResult',
|
55
|
+
model_properties: {
|
56
|
+
language: {
|
57
|
+
client_side_validation: true,
|
58
|
+
required: false,
|
59
|
+
serialized_name: 'language',
|
60
|
+
type: {
|
61
|
+
name: 'Composite',
|
62
|
+
class_name: 'OcrResult'
|
63
|
+
}
|
64
|
+
},
|
65
|
+
text_angle: {
|
66
|
+
client_side_validation: true,
|
67
|
+
required: false,
|
68
|
+
serialized_name: 'textAngle',
|
69
|
+
type: {
|
70
|
+
name: 'Double'
|
71
|
+
}
|
72
|
+
},
|
73
|
+
orientation: {
|
74
|
+
client_side_validation: true,
|
75
|
+
required: false,
|
76
|
+
serialized_name: 'orientation',
|
77
|
+
type: {
|
78
|
+
name: 'String'
|
79
|
+
}
|
80
|
+
},
|
81
|
+
regions: {
|
82
|
+
client_side_validation: true,
|
83
|
+
required: false,
|
84
|
+
serialized_name: 'regions',
|
85
|
+
type: {
|
86
|
+
name: 'Sequence',
|
87
|
+
element: {
|
88
|
+
client_side_validation: true,
|
89
|
+
required: false,
|
90
|
+
serialized_name: 'OcrRegionElementType',
|
91
|
+
type: {
|
92
|
+
name: 'Composite',
|
93
|
+
class_name: 'OcrRegion'
|
94
|
+
}
|
95
|
+
}
|
96
|
+
}
|
97
|
+
}
|
98
|
+
}
|
99
|
+
}
|
100
|
+
}
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|