runcible 1.1.0 → 1.2.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.
- data/README.md +1 -1
- data/lib/runcible/extensions/docker_image.rb +33 -0
- data/lib/runcible/extensions/repository.rb +20 -0
- data/lib/runcible/models/docker_distributor.rb +50 -0
- data/lib/runcible/models/docker_importer.rb +46 -0
- data/lib/runcible/version.rb +1 -1
- metadata +119 -90
- checksums.yaml +0 -15
data/README.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Exposing Pulp's juiciest parts. http://www.pulpproject.org/
|
6
6
|
|
7
|
-
Latest Live Tested Version: **pulp-server-2.
|
7
|
+
Latest Live Tested Version: **pulp-server-2.5.0-0.1.alpha.el6.noarch**
|
8
8
|
|
9
9
|
Current stable Runcible: https://github.com/Katello/runcible/tree/0.3
|
10
10
|
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# Copyright (c) 2014 Red Hat
|
2
|
+
#
|
3
|
+
# MIT License
|
4
|
+
#
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
# a copy of this software and associated documentation files (the
|
7
|
+
# "Software"), to deal in the Software without restriction, including
|
8
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
# the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be
|
14
|
+
# included in all copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
23
|
+
|
24
|
+
|
25
|
+
module Runcible
|
26
|
+
module Extensions
|
27
|
+
class DockerImage < Runcible::Extensions::Unit
|
28
|
+
def self.content_type
|
29
|
+
'docker_image'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -256,6 +256,26 @@ module Runcible
|
|
256
256
|
unit_search(id, criteria).collect{|i| i['metadata'].with_indifferent_access}
|
257
257
|
end
|
258
258
|
|
259
|
+
# Retrieves the docker image IDs for a single repository
|
260
|
+
#
|
261
|
+
# @param [String] id the ID of the repository
|
262
|
+
# @return [RestClient::Response] the set of repository docker image IDs
|
263
|
+
def docker_image_ids(id)
|
264
|
+
criteria = {:type_ids=>[Runcible::Extensions::DockerImage.content_type],
|
265
|
+
:fields=>{:unit=>[], :association=>['unit_id']}}
|
266
|
+
|
267
|
+
unit_search(id, criteria).collect{|i| i['unit_id']}
|
268
|
+
end
|
269
|
+
|
270
|
+
# Retrieves the docker images for a single repository
|
271
|
+
#
|
272
|
+
# @param [String] id the ID of the repository
|
273
|
+
# @return [RestClient::Response] the set of repository docker images
|
274
|
+
def docker_images(id)
|
275
|
+
criteria = {:type_ids=>[Runcible::Extensions::DockerImage.content_type]}
|
276
|
+
unit_search(id, criteria).collect{|i| i['metadata'].with_indifferent_access}
|
277
|
+
end
|
278
|
+
|
259
279
|
# Creates or updates a sync schedule for a repository
|
260
280
|
#
|
261
281
|
# @param [String] repo_id the ID of the repository
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# Copyright (c) 2014 Red Hat Inc.
|
2
|
+
#
|
3
|
+
# MIT License
|
4
|
+
#
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
# a copy of this software and associated documentation files (the
|
7
|
+
# "Software"), to deal in the Software without restriction, including
|
8
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
# the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be
|
14
|
+
# included in all copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
23
|
+
|
24
|
+
require 'active_support/json'
|
25
|
+
require 'securerandom'
|
26
|
+
|
27
|
+
module Runcible
|
28
|
+
module Models
|
29
|
+
class DockerDistributor < Distributor
|
30
|
+
#optional
|
31
|
+
attr_accessor "docker_publish_directory", "protected",
|
32
|
+
"redirect_url", "repo_registry_id"
|
33
|
+
|
34
|
+
def initialize(params={})
|
35
|
+
super(params)
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.type_id
|
39
|
+
'docker_distributor_web'
|
40
|
+
end
|
41
|
+
|
42
|
+
def config
|
43
|
+
to_ret = as_json
|
44
|
+
to_ret.delete('auto_publish')
|
45
|
+
to_ret.delete('id')
|
46
|
+
to_ret
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# Copyright (c) 2014 Red Hat Inc.
|
2
|
+
#
|
3
|
+
# MIT License
|
4
|
+
#
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
# a copy of this software and associated documentation files (the
|
7
|
+
# "Software"), to deal in the Software without restriction, including
|
8
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
# the following conditions:
|
12
|
+
#
|
13
|
+
# The above copyright notice and this permission notice shall be
|
14
|
+
# included in all copies or substantial portions of the Software.
|
15
|
+
#
|
16
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
23
|
+
|
24
|
+
module Runcible
|
25
|
+
module Models
|
26
|
+
class DockerImporter < Importer
|
27
|
+
ID = 'docker_importer'
|
28
|
+
REPO_TYPE = 'docker-repo'
|
29
|
+
|
30
|
+
attr_accessor 'feed', 'max_speed','max_downloads', 'upstream_name',
|
31
|
+
'proxy_port', 'proxy_password', 'proxy_username', "mask_id"
|
32
|
+
|
33
|
+
def id
|
34
|
+
DockerImporter::ID
|
35
|
+
end
|
36
|
+
|
37
|
+
def repo_type
|
38
|
+
DockerImporter::REPO_TYPE
|
39
|
+
end
|
40
|
+
|
41
|
+
def config
|
42
|
+
as_json
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/lib/runcible/version.rb
CHANGED
metadata
CHANGED
@@ -1,113 +1,136 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: runcible
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Eric D Helms, Justin Sherrill
|
8
|
-
autorequire:
|
9
|
+
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2014-
|
12
|
+
date: 2014-10-08 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: json
|
16
|
+
version_requirements: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: !binary |-
|
21
|
+
MA==
|
22
|
+
none: false
|
15
23
|
requirement: !ruby/object:Gem::Requirement
|
16
24
|
requirements:
|
17
|
-
- -
|
25
|
+
- - ">="
|
18
26
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
20
|
-
|
27
|
+
version: !binary |-
|
28
|
+
MA==
|
29
|
+
none: false
|
21
30
|
prerelease: false
|
31
|
+
type: :runtime
|
32
|
+
- !ruby/object:Gem::Dependency
|
33
|
+
name: rest-client
|
22
34
|
version_requirements: !ruby/object:Gem::Requirement
|
23
35
|
requirements:
|
24
|
-
- -
|
36
|
+
- - ">="
|
25
37
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
27
|
-
|
28
|
-
name: rest-client
|
38
|
+
version: 1.6.1
|
39
|
+
none: false
|
29
40
|
requirement: !ruby/object:Gem::Requirement
|
30
41
|
requirements:
|
31
|
-
- -
|
42
|
+
- - ">="
|
32
43
|
- !ruby/object:Gem::Version
|
33
44
|
version: 1.6.1
|
34
|
-
|
45
|
+
none: false
|
35
46
|
prerelease: false
|
47
|
+
type: :runtime
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: oauth
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
|
-
- -
|
52
|
+
- - ">="
|
39
53
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
41
|
-
|
42
|
-
|
54
|
+
version: !binary |-
|
55
|
+
MA==
|
56
|
+
none: false
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
|
-
- -
|
59
|
+
- - ">="
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
48
|
-
|
61
|
+
version: !binary |-
|
62
|
+
MA==
|
63
|
+
none: false
|
49
64
|
prerelease: false
|
65
|
+
type: :runtime
|
66
|
+
- !ruby/object:Gem::Dependency
|
67
|
+
name: activesupport
|
50
68
|
version_requirements: !ruby/object:Gem::Requirement
|
51
69
|
requirements:
|
52
|
-
- -
|
70
|
+
- - ">="
|
53
71
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
55
|
-
|
56
|
-
name: activesupport
|
72
|
+
version: 3.0.10
|
73
|
+
none: false
|
57
74
|
requirement: !ruby/object:Gem::Requirement
|
58
75
|
requirements:
|
59
|
-
- -
|
76
|
+
- - ">="
|
60
77
|
- !ruby/object:Gem::Version
|
61
78
|
version: 3.0.10
|
62
|
-
|
79
|
+
none: false
|
63
80
|
prerelease: false
|
81
|
+
type: :runtime
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: i18n
|
64
84
|
version_requirements: !ruby/object:Gem::Requirement
|
65
85
|
requirements:
|
66
|
-
- -
|
86
|
+
- - ">="
|
67
87
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
69
|
-
|
70
|
-
name: i18n
|
88
|
+
version: 0.5.0
|
89
|
+
none: false
|
71
90
|
requirement: !ruby/object:Gem::Requirement
|
72
91
|
requirements:
|
73
|
-
- -
|
92
|
+
- - ">="
|
74
93
|
- !ruby/object:Gem::Version
|
75
94
|
version: 0.5.0
|
76
|
-
|
95
|
+
none: false
|
77
96
|
prerelease: false
|
97
|
+
type: :runtime
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: yard
|
78
100
|
version_requirements: !ruby/object:Gem::Requirement
|
79
101
|
requirements:
|
80
|
-
- -
|
102
|
+
- - ">="
|
81
103
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
83
|
-
|
84
|
-
|
104
|
+
version: !binary |-
|
105
|
+
MA==
|
106
|
+
none: false
|
85
107
|
requirement: !ruby/object:Gem::Requirement
|
86
108
|
requirements:
|
87
|
-
- -
|
109
|
+
- - ">="
|
88
110
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
90
|
-
|
111
|
+
version: !binary |-
|
112
|
+
MA==
|
113
|
+
none: false
|
91
114
|
prerelease: false
|
115
|
+
type: :development
|
116
|
+
- !ruby/object:Gem::Dependency
|
117
|
+
name: maruku
|
92
118
|
version_requirements: !ruby/object:Gem::Requirement
|
93
119
|
requirements:
|
94
|
-
- -
|
120
|
+
- - ">="
|
95
121
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
97
|
-
|
98
|
-
|
122
|
+
version: !binary |-
|
123
|
+
MA==
|
124
|
+
none: false
|
99
125
|
requirement: !ruby/object:Gem::Requirement
|
100
126
|
requirements:
|
101
|
-
- -
|
127
|
+
- - ">="
|
102
128
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
104
|
-
|
129
|
+
version: !binary |-
|
130
|
+
MA==
|
131
|
+
none: false
|
105
132
|
prerelease: false
|
106
|
-
|
107
|
-
requirements:
|
108
|
-
- - ! '>='
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
133
|
+
type: :development
|
111
134
|
description: Exposing Pulp's juiciest components to the Ruby world.
|
112
135
|
email:
|
113
136
|
- ehelms@redhat.com, jsherril@redhat.com
|
@@ -115,70 +138,76 @@ executables: []
|
|
115
138
|
extensions: []
|
116
139
|
extra_rdoc_files: []
|
117
140
|
files:
|
118
|
-
- CONTRIBUTING.md
|
119
|
-
- Gemfile
|
120
|
-
- LICENSE
|
121
|
-
- README.md
|
122
|
-
- Rakefile
|
123
141
|
- lib/runcible.rb
|
124
|
-
- lib/runcible/
|
125
|
-
- lib/runcible/extensions/consumer.rb
|
126
|
-
- lib/runcible/extensions/consumer_group.rb
|
127
|
-
- lib/runcible/extensions/distribution.rb
|
128
|
-
- lib/runcible/extensions/errata.rb
|
129
|
-
- lib/runcible/extensions/package_category.rb
|
130
|
-
- lib/runcible/extensions/package_group.rb
|
131
|
-
- lib/runcible/extensions/puppet_module.rb
|
132
|
-
- lib/runcible/extensions/repository.rb
|
133
|
-
- lib/runcible/extensions/rpm.rb
|
134
|
-
- lib/runcible/extensions/unit.rb
|
135
|
-
- lib/runcible/extensions/yum_repo_metadata_file.rb
|
142
|
+
- lib/runcible/version.rb
|
136
143
|
- lib/runcible/instance.rb
|
144
|
+
- lib/runcible/base.rb
|
145
|
+
- lib/runcible/models/puppet_distributor.rb
|
146
|
+
- lib/runcible/models/yum_clone_distributor.rb
|
137
147
|
- lib/runcible/models/distributor.rb
|
138
148
|
- lib/runcible/models/export_distributor.rb
|
139
|
-
- lib/runcible/models/
|
140
|
-
- lib/runcible/models/
|
149
|
+
- lib/runcible/models/puppet_importer.rb
|
150
|
+
- lib/runcible/models/docker_distributor.rb
|
141
151
|
- lib/runcible/models/iso_importer.rb
|
152
|
+
- lib/runcible/models/yum_distributor.rb
|
142
153
|
- lib/runcible/models/nodes_http_distributor.rb
|
143
|
-
- lib/runcible/models/
|
144
|
-
- lib/runcible/models/
|
154
|
+
- lib/runcible/models/iso_distributor.rb
|
155
|
+
- lib/runcible/models/docker_importer.rb
|
145
156
|
- lib/runcible/models/puppet_install_distributor.rb
|
146
|
-
- lib/runcible/models/yum_clone_distributor.rb
|
147
|
-
- lib/runcible/models/yum_distributor.rb
|
148
157
|
- lib/runcible/models/yum_importer.rb
|
149
|
-
- lib/runcible/
|
158
|
+
- lib/runcible/models/importer.rb
|
159
|
+
- lib/runcible/extensions/package_category.rb
|
160
|
+
- lib/runcible/extensions/docker_image.rb
|
161
|
+
- lib/runcible/extensions/errata.rb
|
162
|
+
- lib/runcible/extensions/consumer_group.rb
|
163
|
+
- lib/runcible/extensions/puppet_module.rb
|
164
|
+
- lib/runcible/extensions/consumer.rb
|
165
|
+
- lib/runcible/extensions/repository.rb
|
166
|
+
- lib/runcible/extensions/rpm.rb
|
167
|
+
- lib/runcible/extensions/unit.rb
|
168
|
+
- lib/runcible/extensions/package_group.rb
|
169
|
+
- lib/runcible/extensions/yum_repo_metadata_file.rb
|
170
|
+
- lib/runcible/extensions/distribution.rb
|
171
|
+
- lib/runcible/resources/role.rb
|
150
172
|
- lib/runcible/resources/consumer_group.rb
|
151
173
|
- lib/runcible/resources/content.rb
|
152
|
-
- lib/runcible/resources/
|
153
|
-
- lib/runcible/resources/repository.rb
|
154
|
-
- lib/runcible/resources/repository_group.rb
|
174
|
+
- lib/runcible/resources/consumer.rb
|
155
175
|
- lib/runcible/resources/repository_schedule.rb
|
156
|
-
- lib/runcible/resources/role.rb
|
157
176
|
- lib/runcible/resources/task.rb
|
158
|
-
- lib/runcible/resources/
|
177
|
+
- lib/runcible/resources/event_notifier.rb
|
178
|
+
- lib/runcible/resources/repository.rb
|
159
179
|
- lib/runcible/resources/user.rb
|
160
|
-
- lib/runcible/
|
180
|
+
- lib/runcible/resources/unit.rb
|
181
|
+
- lib/runcible/resources/repository_group.rb
|
182
|
+
- LICENSE
|
183
|
+
- Rakefile
|
184
|
+
- Gemfile
|
185
|
+
- README.md
|
186
|
+
- CONTRIBUTING.md
|
161
187
|
homepage: https://github.com/Katello/runcible
|
162
188
|
licenses: []
|
163
|
-
|
164
|
-
post_install_message:
|
189
|
+
post_install_message:
|
165
190
|
rdoc_options: []
|
166
191
|
require_paths:
|
167
192
|
- lib
|
168
193
|
required_ruby_version: !ruby/object:Gem::Requirement
|
169
194
|
requirements:
|
170
|
-
- -
|
195
|
+
- - ">="
|
171
196
|
- !ruby/object:Gem::Version
|
172
|
-
version:
|
197
|
+
version: !binary |-
|
198
|
+
MA==
|
199
|
+
none: false
|
173
200
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
174
201
|
requirements:
|
175
|
-
- -
|
202
|
+
- - ">="
|
176
203
|
- !ruby/object:Gem::Version
|
177
|
-
version:
|
204
|
+
version: !binary |-
|
205
|
+
MA==
|
206
|
+
none: false
|
178
207
|
requirements: []
|
179
|
-
rubyforge_project:
|
180
|
-
rubygems_version:
|
181
|
-
signing_key:
|
182
|
-
specification_version:
|
208
|
+
rubyforge_project:
|
209
|
+
rubygems_version: 1.8.24
|
210
|
+
signing_key:
|
211
|
+
specification_version: 3
|
183
212
|
summary: ''
|
184
213
|
test_files: []
|
checksums.yaml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
!binary "U0hBMQ==":
|
3
|
-
metadata.gz: !binary |-
|
4
|
-
ZjQ0MDExZjQ3NmIxODI1YzdiNzBmMWIxYWM0MDUwZThjYzE0ZmYxYw==
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
YmI0NGI1YzY5YTMwZDQ3NzkxOGM0NmQ1YjI5NTEwM2M4Y2ZiOTNjMg==
|
7
|
-
SHA512:
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
MGQ0YmZmYzA0MDkzMDEwNjczYjcwYTFmOTAyZjRhZjkzZTM0ZDY0OWQ2ZjQ2
|
10
|
-
Y2Q4OGRmMjc2ZWQ4MTJiZDM3ZDg4MTBlYTY1ZmEwYmZkODBkMzM1OTJiNDU4
|
11
|
-
NzNlOGY4Nzc3NzRmNmYzNTk2ODVmZTg4M2E0OTc4Y2M5N2IxOWM=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MzIxZDU1N2U2OTgxODcwMTJhZjkzMjE4NGQ5NDMxMWM5NjQ0ODE4NjA2MTgz
|
14
|
-
MWUyYmQxODFlZTAwYmIyODQ5MGFjNDlhYTMzMTg4YTM0YTFlYmY5OTYzYTkz
|
15
|
-
MGU2ZTk3YWU4MjRmNTFlMTk5ZWI4NTNjMTE4MTBlMmQ1MDczM2Q=
|