stacco 0.1.35 → 0.1.36
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.git/COMMIT_EDITMSG +1 -1
- data/.git/ORIG_HEAD +1 -1
- data/.git/index +0 -0
- data/.git/logs/HEAD +3 -0
- data/.git/logs/refs/heads/master +3 -0
- data/.git/logs/refs/remotes/origin/master +3 -0
- data/.git/logs/refs/stash +1 -0
- data/.git/objects/07/91d907ed6963384c1004e190ed90dd450508c2 +2 -0
- data/.git/objects/16/61db6808cb016c9e6bcb2ad5101d764937c736 +2 -0
- data/.git/objects/37/5e25615f71378adf4dd73193cd81c3f7352369 +0 -0
- data/.git/objects/42/5f5d060ee54ae4cc5f17572bc987f716cd17c1 +0 -0
- data/.git/objects/4a/8da05d11eb6697750d0db790d97f748cf623b5 +0 -0
- data/.git/objects/4e/22c4721a1d2d8d51eb61b0bba996256630e1a3 +0 -0
- data/.git/objects/50/b5642cf3f862461e7f85dc6725e96828b11682 +0 -0
- data/.git/objects/52/8ec24f9b5e9de38c45e8b6c118b57fdbbfae35 +0 -0
- data/.git/objects/55/5abaf0d0b29f123811187b275b2c147a128cc1 +0 -0
- data/.git/objects/56/a1aa11820e45dae9cb6b3f3540abced735b644 +0 -0
- data/.git/objects/5b/7f97f542ff49439e8546f3dcacdc698a722934 +0 -0
- data/.git/objects/5e/d09e7a9b0c7c9f04adfd8ebf3e38a946c0b610 +0 -0
- data/.git/objects/6e/62fde9cd4e40d459c6114c3205cb776cba6594 +0 -0
- data/.git/objects/72/004e682e8d82daf6eba58b183e46b330c07da0 +0 -0
- data/.git/objects/78/591e917d69e31f7d83ef0af3932388cb3de351 +0 -0
- data/.git/objects/86/06dd5bf12eacc932a95d244d7b150dd3a1ec65 +0 -0
- data/.git/objects/89/a9c546a2bc92ff3842edf6b5da4ee4b9bd2291 +0 -0
- data/.git/objects/93/fa00b6df5c6739438970874780a4550e16dc48 +0 -0
- data/.git/objects/9a/92184b489a227578051750584dc92ae1931e2f +0 -0
- data/.git/objects/a5/14f50076fb17396922bf24e9798cac7a8d4033 +0 -0
- data/.git/objects/ac/b458f1835bb3524fe46476a30774e9aade4804 +0 -0
- data/.git/objects/b3/08339fe8c36dbf2fd00eee2167edb12522a682 +0 -0
- data/.git/objects/b5/625a09c7a96a7ee5d127e59f95365e58626a22 +0 -0
- data/.git/objects/c4/e0d3de1b8e5ce1dfa7fa2c0eb4452734ece366 +0 -0
- data/.git/objects/c8/29585e12db531c96b1e8dc63217514632a314e +0 -0
- data/.git/objects/cb/bb58f29b8df0faa424e7aca47e5244461bbaa3 +0 -0
- data/.git/objects/cd/96b15f2b7b9159f864cbe98ebbd60e79395dc9 +0 -0
- data/.git/objects/dc/917ece77023b2664fa74de0638de2ce7d18eab +0 -0
- data/.git/objects/de/883c21aa3a20265f9b0938f26f60ed9082f0ba +0 -0
- data/.git/objects/e1/321eeec30ae2f997c2e6517d26806dc8f412fb +0 -0
- data/.git/objects/e2/a1e70ad9a272071ee667e6042b72dc71ac632a +0 -0
- data/.git/objects/e5/7b4031a9e26ee9568d8348f3efb970e2c32c16 +0 -0
- data/.git/objects/ee/c275596c0232459fc6073e70e620ccdea7e279 +0 -0
- data/.git/refs/heads/master +1 -1
- data/.git/refs/remotes/origin/master +1 -1
- data/.git/refs/stash +1 -1
- data/.git/refs/tags/0.1.36 +1 -0
- data/bin/stacco +20 -16
- data/lib/stacco/layer.rb +1 -1
- data/priv/roles/BaseImageGenerator.sh +100 -0
- metadata +36 -2
- data/priv/layers/task-docker-librarian.json +0 -66
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b0439f6b02a67e262ccee3ef474f81d78f291aeb
|
4
|
+
data.tar.gz: 496b55ea3caf29b5e31364e08938a8eb80389389
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f6a46383afac9b393e9ae5ac86a58c6064e225bbfa647fb5672a7fe965976143c68fcca45c7d59c92216316459e69ec6e7065f08bc80a06e918fc9a561b44019
|
7
|
+
data.tar.gz: a1418466865c9f3bbf0e79ddd9ffd61b1fc47c84612436559ba36b08906004dc069b0516560a8c91179249a8c625009aae5f519d4d52b38d60ed46b278255425
|
data/.git/COMMIT_EDITMSG
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
Parameterize stack name
|
data/.git/ORIG_HEAD
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
8606dd5bf12eacc932a95d244d7b150dd3a1ec65
|
data/.git/index
CHANGED
Binary file
|
data/.git/logs/HEAD
CHANGED
@@ -56,3 +56,6 @@ ef3411b02bb0f32b7d420f19e5bd1fbbcca55914 bfdf2e1ff6a2624f4a8e8c7bb67a35c23368018
|
|
56
56
|
bfdf2e1ff6a2624f4a8e8c7bb67a35c233680182 3a3d3096b8a071125990a515d1ba8a4c548bec62 Levi Aul <levi@leviaul.com> 1403735187 -0700 commit: Retry after errors in S3 download
|
57
57
|
3a3d3096b8a071125990a515d1ba8a4c548bec62 ee046d6cded6dead3f5f28cdd033b81824935d97 Levi Aul <levi@leviaul.com> 1403739236 -0700 commit: Increase health-check grace period for backend
|
58
58
|
ee046d6cded6dead3f5f28cdd033b81824935d97 a8daedf0736425657be336e720dd7520abe75f3d Levi Aul <levi@leviaul.com> 1403833608 -0700 commit: Increase health-check interval so stack won't be brought down by container updates
|
59
|
+
a8daedf0736425657be336e720dd7520abe75f3d 89a9c546a2bc92ff3842edf6b5da4ee4b9bd2291 Levi Aul <levi@leviaul.com> 1403839775 -0700 commit: Ensure task layers can be enabled or disabled by specifying "all"
|
60
|
+
89a9c546a2bc92ff3842edf6b5da4ee4b9bd2291 555abaf0d0b29f123811187b275b2c147a128cc1 Levi Aul <levi@leviaul.com> 1403840277 -0700 commit (amend): Ensure task layers can be enabled or disabled by specifying "all"
|
61
|
+
555abaf0d0b29f123811187b275b2c147a128cc1 8606dd5bf12eacc932a95d244d7b150dd3a1ec65 Levi Aul <levi@leviaul.com> 1403898548 -0700 commit: Parameterize stack name
|
data/.git/logs/refs/heads/master
CHANGED
@@ -49,3 +49,6 @@ ef3411b02bb0f32b7d420f19e5bd1fbbcca55914 bfdf2e1ff6a2624f4a8e8c7bb67a35c23368018
|
|
49
49
|
bfdf2e1ff6a2624f4a8e8c7bb67a35c233680182 3a3d3096b8a071125990a515d1ba8a4c548bec62 Levi Aul <levi@leviaul.com> 1403735187 -0700 commit: Retry after errors in S3 download
|
50
50
|
3a3d3096b8a071125990a515d1ba8a4c548bec62 ee046d6cded6dead3f5f28cdd033b81824935d97 Levi Aul <levi@leviaul.com> 1403739236 -0700 commit: Increase health-check grace period for backend
|
51
51
|
ee046d6cded6dead3f5f28cdd033b81824935d97 a8daedf0736425657be336e720dd7520abe75f3d Levi Aul <levi@leviaul.com> 1403833608 -0700 commit: Increase health-check interval so stack won't be brought down by container updates
|
52
|
+
a8daedf0736425657be336e720dd7520abe75f3d 89a9c546a2bc92ff3842edf6b5da4ee4b9bd2291 Levi Aul <levi@leviaul.com> 1403839775 -0700 commit: Ensure task layers can be enabled or disabled by specifying "all"
|
53
|
+
89a9c546a2bc92ff3842edf6b5da4ee4b9bd2291 555abaf0d0b29f123811187b275b2c147a128cc1 Levi Aul <levi@leviaul.com> 1403840277 -0700 commit (amend): Ensure task layers can be enabled or disabled by specifying "all"
|
54
|
+
555abaf0d0b29f123811187b275b2c147a128cc1 8606dd5bf12eacc932a95d244d7b150dd3a1ec65 Levi Aul <levi@leviaul.com> 1403898548 -0700 commit: Parameterize stack name
|
@@ -33,3 +33,6 @@ cfbccd7b6c433bdedb589e83144a05cca3a50e86 ef3411b02bb0f32b7d420f19e5bd1fbbcca5591
|
|
33
33
|
ef3411b02bb0f32b7d420f19e5bd1fbbcca55914 3a3d3096b8a071125990a515d1ba8a4c548bec62 Levi Aul <levi@leviaul.com> 1403735192 -0700 update by push
|
34
34
|
3a3d3096b8a071125990a515d1ba8a4c548bec62 ee046d6cded6dead3f5f28cdd033b81824935d97 Levi Aul <levi@leviaul.com> 1403739241 -0700 update by push
|
35
35
|
ee046d6cded6dead3f5f28cdd033b81824935d97 a8daedf0736425657be336e720dd7520abe75f3d Levi Aul <levi@leviaul.com> 1403833611 -0700 update by push
|
36
|
+
a8daedf0736425657be336e720dd7520abe75f3d 89a9c546a2bc92ff3842edf6b5da4ee4b9bd2291 Levi Aul <levi@leviaul.com> 1403839782 -0700 update by push
|
37
|
+
89a9c546a2bc92ff3842edf6b5da4ee4b9bd2291 555abaf0d0b29f123811187b275b2c147a128cc1 Levi Aul <levi@leviaul.com> 1403840280 -0700 update by push
|
38
|
+
555abaf0d0b29f123811187b275b2c147a128cc1 8606dd5bf12eacc932a95d244d7b150dd3a1ec65 Levi Aul <levi@leviaul.com> 1403898552 -0700 update by push
|
data/.git/logs/refs/stash
CHANGED
@@ -1 +1,2 @@
|
|
1
1
|
0000000000000000000000000000000000000000 b08e071aa962e5ebe2312ced25ea2a0481a83fe7 Levi Aul <levi@leviaul.com> 1403735110 -0700 WIP on master: ef3411b Use SSD storage for docker-image and data-container volumes
|
2
|
+
b08e071aa962e5ebe2312ced25ea2a0481a83fe7 cbbb58f29b8df0faa424e7aca47e5244461bbaa3 Levi Aul <levi@leviaul.com> 1403898570 -0700 WIP on master: 8606dd5 Parameterize stack name
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/.git/refs/heads/master
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
8606dd5bf12eacc932a95d244d7b150dd3a1ec65
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
8606dd5bf12eacc932a95d244d7b150dd3a1ec65
|
data/.git/refs/stash
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
cbbb58f29b8df0faa424e7aca47e5244461bbaa3
|
@@ -0,0 +1 @@
|
|
1
|
+
8606dd5bf12eacc932a95d244d7b150dd3a1ec65
|
data/bin/stacco
CHANGED
@@ -134,6 +134,11 @@ $force = true if ARGV.delete('-f')
|
|
134
134
|
$watch = true if $stdin.tty?
|
135
135
|
$async = true if ARGV.delete('-a')
|
136
136
|
|
137
|
+
if stack_name_index = ARGV.index('-s')
|
138
|
+
$stack_name = ARGV[stack_name_index + 1]
|
139
|
+
ARGV[stack_name_index, 2] = []
|
140
|
+
end
|
141
|
+
|
137
142
|
unless ARGV.length >= 1
|
138
143
|
$stderr.puts "usage: #{File.basename($0)} <subcommand ...>"
|
139
144
|
Kernel.exit 1
|
@@ -230,27 +235,26 @@ when :"stacks:import"
|
|
230
235
|
Kernel.exit 0
|
231
236
|
end
|
232
237
|
|
233
|
-
|
234
|
-
|
235
|
-
$stderr.puts "no stacks defined!"
|
236
|
-
$stderr.puts "run 'cat ./stack.yml | stacco stacks:import'"
|
237
|
-
Kernel.exit 1
|
238
|
-
when 1
|
239
|
-
stack = stacks.first
|
240
|
-
else
|
241
|
-
unless ARGV.length >= 1
|
242
|
-
$stderr.puts "ambiguous target stack"
|
243
|
-
$stderr.puts "try '#{File.basename($0)} #{subcommand} <stackname>'"
|
244
|
-
Kernel.exit 1
|
245
|
-
end
|
246
|
-
|
247
|
-
stack_name = ARGV.shift
|
248
|
-
stack = stacks.find{ |st| st.name == stack_name }
|
238
|
+
if $stack_name
|
239
|
+
stack = stacks.find{ |st| st.name == $stack_name }
|
249
240
|
|
250
241
|
unless stack
|
251
242
|
$stderr.puts "unknown stack '#{stack_name}'"
|
252
243
|
Kernel.exit 1
|
253
244
|
end
|
245
|
+
else
|
246
|
+
case stacks.length
|
247
|
+
when 0
|
248
|
+
$stderr.puts "no stacks defined!"
|
249
|
+
$stderr.puts "run 'cat ./stack.yml | stacco stacks:import'"
|
250
|
+
Kernel.exit 1
|
251
|
+
when 1
|
252
|
+
stack = stacks.first
|
253
|
+
else
|
254
|
+
$stderr.puts "ambiguous target stack"
|
255
|
+
$stderr.puts "try '#{File.basename($0)} -s <stackname> #{subcommand}'"
|
256
|
+
Kernel.exit 1
|
257
|
+
end
|
254
258
|
end
|
255
259
|
|
256
260
|
case subcommand
|
data/lib/stacco/layer.rb
CHANGED
@@ -0,0 +1,100 @@
|
|
1
|
+
_exit_handler_reason=""
|
2
|
+
_exit_handler(){
|
3
|
+
exit_code="$?"
|
4
|
+
|
5
|
+
if [ "${exit_code}" -eq 0 ]; then
|
6
|
+
echo "Stacco cloud-init handler finished"
|
7
|
+
cfn-signal -s true "${AWS_INSTANCE_WAIT_HANDLE}"
|
8
|
+
else
|
9
|
+
echo "Stacco cloud-init handler aborted (${exit_code}: ${_exit_handler_reason})"
|
10
|
+
cfn-signal -e "${exit_code}" -r "${_exit_handler_reason}" "${AWS_INSTANCE_WAIT_HANDLE}"
|
11
|
+
fi
|
12
|
+
|
13
|
+
exit "${exit_code}"
|
14
|
+
}
|
15
|
+
trap _exit_handler EXIT
|
16
|
+
|
17
|
+
die(){
|
18
|
+
_exit_handler_reason="$1"
|
19
|
+
echo "error: $1" >&2
|
20
|
+
exit 1
|
21
|
+
}
|
22
|
+
|
23
|
+
set -e
|
24
|
+
|
25
|
+
export HOME=/root
|
26
|
+
cd "$HOME"
|
27
|
+
|
28
|
+
echo "ensuring internet connectivity..."
|
29
|
+
curl -sL -I -o /dev/null --fail --show-error --retry 100 'http://bex-status.s3.amazonaws.com/status.json'
|
30
|
+
echo "found an internet connection."
|
31
|
+
|
32
|
+
echo "configuring hostname from aws metadata service"
|
33
|
+
host_title="${AWS_STACK_NAME}-$(echo "${AWS_INSTANCE_LOGICAL_NAME}" | sed 's/LaunchConfiguration$//')"
|
34
|
+
private_hostname=$(curl -sL http://169.254.169.254/latest/meta-data/local-hostname)
|
35
|
+
short_private_hostname=$(echo "${private_hostname}" | cut -d'.' -f 1)
|
36
|
+
echo "${host_title}" > /etc/hostname
|
37
|
+
hostname -b -F /etc/hostname
|
38
|
+
sed -i '/127\.0\./d' /etc/hosts
|
39
|
+
cat >>/etc/hosts <<EOF
|
40
|
+
127.0.0.1 localhost
|
41
|
+
127.0.1.1 ${private_hostname} ${host_title} ${short_private_hostname}
|
42
|
+
EOF
|
43
|
+
|
44
|
+
echo "enabling mirroring for security apt sources"
|
45
|
+
sed -i "s/security\.ubuntu\.com/${AWS_REGION}.ec2.archive.ubuntu.com/g" /etc/apt/sources.list
|
46
|
+
|
47
|
+
echo "disablng kernel and initramfs updates"
|
48
|
+
echo $(dpkg -l "*$(uname -r)*" | grep image | awk '{print $2}') hold | dpkg --set-selections
|
49
|
+
sed -i 's/=yes/=no/g' /etc/initramfs-tools/update-initramfs.conf
|
50
|
+
|
51
|
+
echo "adding vendor apt sources"
|
52
|
+
apt-key adv --keyserver 'hkp://pgp.mit.edu:80' --recv-keys 'C43C79AD'
|
53
|
+
echo "deb http://rep.logentries.com/ trusty main" > /etc/apt/sources.list.d/logentries.list
|
54
|
+
|
55
|
+
echo "installing packages"
|
56
|
+
apt-get clean
|
57
|
+
apt-get update
|
58
|
+
apt-get upgrade -qy
|
59
|
+
apt-get install -qy python-setuptools python-pip python-setproctitle htop tree btrfs-tools xz-utils logentries bundler ruby-nokogiri
|
60
|
+
pip install -q awscli
|
61
|
+
gem install -q --no-rdoc --no-ri aws-sdk docker-utils
|
62
|
+
|
63
|
+
if [ -n "$LOGENTRIES_ACCOUNT_KEY" ]; then
|
64
|
+
echo "starting remote logging"
|
65
|
+
host_key=$(docker-utils get-host-uuid "${AWS_INSTANCE_LOGICAL_NAME}.${AWS_STACK_NAME}")
|
66
|
+
le init --account-key="${LOGENTRIES_ACCOUNT_KEY}" --agent-key="${host_key}"
|
67
|
+
le register --force --name="${host_title}" --hostname="${private_hostname}"
|
68
|
+
apt-get install -qy logentries-daemon 2>/dev/null || :
|
69
|
+
|
70
|
+
logs_to_follow="syslog messages dmesg auth.log boot.log daemon.log dpkg.log kern.log cron secure faillog cloud-init-output.log"
|
71
|
+
for log_name in ${logs_to_follow}; do
|
72
|
+
log_path="/var/log/${log_name}"
|
73
|
+
if [ -f "${log_path}" ]; then
|
74
|
+
log_name=$(basename "${log_path}" '.log')
|
75
|
+
le follow --name="${log_name}" "${log_path}" 2>/dev/null 1>&2
|
76
|
+
fi
|
77
|
+
done
|
78
|
+
|
79
|
+
service logentries restart
|
80
|
+
fi
|
81
|
+
|
82
|
+
echo "installing aws cfn-tools"
|
83
|
+
easy_install https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-latest.tar.gz
|
84
|
+
cfn-init --region="${AWS_REGION}" --stack="${AWS_STACK_NAME}" --resource="${AWS_INSTANCE_LOGICAL_NAME}" || die 'Failed to run cfn-init'
|
85
|
+
|
86
|
+
docker-utils bootstrap
|
87
|
+
|
88
|
+
docker pull tianon/true:latest
|
89
|
+
docker pull ubuntu:trusty
|
90
|
+
|
91
|
+
docker pull bexio/amb:latest
|
92
|
+
docker pull bexio/bitcoind:latest
|
93
|
+
docker pull bexio/postgresql:latest
|
94
|
+
docker pull bexio/bexng:latest
|
95
|
+
docker pull bexio/bexng-frontend:latest
|
96
|
+
docker pull bexio/toolchain:latest
|
97
|
+
|
98
|
+
echo "bootstrapping bitcoind service"
|
99
|
+
docker run --name="btc-data" bexio/bitcoind:latest /bin/true
|
100
|
+
docker run --name="tbtc-data" bexio/bitcoind:latest /bin/true
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stacco
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.36
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Levi Aul
|
@@ -98,6 +98,7 @@ files:
|
|
98
98
|
- "./.git/objects/06/30fdef20b3c925dff6aaac0eaadc748461ddd3"
|
99
99
|
- "./.git/objects/07/1c3c0ff3bbb5d2dee36124869ac978339aa7d8"
|
100
100
|
- "./.git/objects/07/506ae5d4f20db18bc4df1c96b9433162effa0b"
|
101
|
+
- "./.git/objects/07/91d907ed6963384c1004e190ed90dd450508c2"
|
101
102
|
- "./.git/objects/07/ccbe7deba806a5e3045276d5c56d70bfcd1144"
|
102
103
|
- "./.git/objects/08/d390fad8629347b01e81e36389b6445bb7be6e"
|
103
104
|
- "./.git/objects/0a/28342f575dbb656027091d278de50c38749bbc"
|
@@ -120,6 +121,7 @@ files:
|
|
120
121
|
- "./.git/objects/15/0c165cfccdaf9165d8b15cd7ba646de3d647d1"
|
121
122
|
- "./.git/objects/15/810e99050544479c8b2b90c768562dd6f54476"
|
122
123
|
- "./.git/objects/16/1674f5c76626e5bbffc7e71c20211d96899429"
|
124
|
+
- "./.git/objects/16/61db6808cb016c9e6bcb2ad5101d764937c736"
|
123
125
|
- "./.git/objects/17/1d95cd01d326ee914941e6c4019082aca25d01"
|
124
126
|
- "./.git/objects/17/f27a74d365bab0dc5e4fa9f482468454e736ee"
|
125
127
|
- "./.git/objects/18/d13eb6d9fe9db4a742098c8cea7a297af02aa6"
|
@@ -178,6 +180,7 @@ files:
|
|
178
180
|
- "./.git/objects/36/b6662ae57207c098d8cd5ece18d989d07c1fab"
|
179
181
|
- "./.git/objects/36/ba5be11b41d1823658d7ce80027a97ebad5b49"
|
180
182
|
- "./.git/objects/36/fce3986c3b9edc2d23aa2c79b07caa538a1e2d"
|
183
|
+
- "./.git/objects/37/5e25615f71378adf4dd73193cd81c3f7352369"
|
181
184
|
- "./.git/objects/37/963467810545c413ee63c07b03ef5451cd21a4"
|
182
185
|
- "./.git/objects/38/7d298fcc98f3a139f4bc7601920adb3a4fcb2d"
|
183
186
|
- "./.git/objects/38/fe76890f93e66590c962db099b9db770729394"
|
@@ -191,6 +194,7 @@ files:
|
|
191
194
|
- "./.git/objects/3e/b5d827d4ac858c3fee5f1d5e4486304e211875"
|
192
195
|
- "./.git/objects/40/1ec5566a108682e6735a166b503f6488fd7fa0"
|
193
196
|
- "./.git/objects/40/e27dd83949a5a91228d4fb4562d3dd0899cf6c"
|
197
|
+
- "./.git/objects/42/5f5d060ee54ae4cc5f17572bc987f716cd17c1"
|
194
198
|
- "./.git/objects/42/a30010d7fb35e5946ac0858140f8286748a49a"
|
195
199
|
- "./.git/objects/42/b3255de2c5bd3371bd7b5c666aa847321b7c63"
|
196
200
|
- "./.git/objects/43/9648d2f9392dca9ff6ef72c89e2ea2c77ca817"
|
@@ -202,6 +206,7 @@ files:
|
|
202
206
|
- "./.git/objects/48/8dfa9ad8ced0c190771304414e48996c981b30"
|
203
207
|
- "./.git/objects/49/9b16e419ad742e3de023fd6c932e5f3dcf9969"
|
204
208
|
- "./.git/objects/49/c4d2b96b8a0e2ee7d45970e01b7c8ea70472dd"
|
209
|
+
- "./.git/objects/4a/8da05d11eb6697750d0db790d97f748cf623b5"
|
205
210
|
- "./.git/objects/4a/a16c4ea8a6922a91538873893f181000e53e16"
|
206
211
|
- "./.git/objects/4a/ded72b0a091965c9cb556c90400e8f116b4a83"
|
207
212
|
- "./.git/objects/4a/e6f3d6a0321c6c544e705a0a6195ccb65e97a4"
|
@@ -209,21 +214,28 @@ files:
|
|
209
214
|
- "./.git/objects/4b/31e30c368cc13d65df794e3a50ded0c36a1119"
|
210
215
|
- "./.git/objects/4b/7e51ebdd2d7ae3ef0b0a27d081ce1579f5a073"
|
211
216
|
- "./.git/objects/4c/ac13b15d6336164789ae3f228fa2d81ac51120"
|
217
|
+
- "./.git/objects/4e/22c4721a1d2d8d51eb61b0bba996256630e1a3"
|
212
218
|
- "./.git/objects/4f/4fae184e6e68f8382f9234c283451fecdbf5df"
|
213
219
|
- "./.git/objects/4f/b3f480c304734c6b4634fea5457a0af53118b8"
|
214
220
|
- "./.git/objects/50/a19ac6e7c9e4d63ea313bd195c80bf93030024"
|
221
|
+
- "./.git/objects/50/b5642cf3f862461e7f85dc6725e96828b11682"
|
215
222
|
- "./.git/objects/51/db6ab779ca5bc4b13ba68ebdfaab521c010948"
|
216
223
|
- "./.git/objects/52/5148183a1cccd66f55a634ca7685d115ade75f"
|
224
|
+
- "./.git/objects/52/8ec24f9b5e9de38c45e8b6c118b57fdbbfae35"
|
217
225
|
- "./.git/objects/52/f64ba8a626a834799f67ee1483cc6c4b96b120"
|
218
226
|
- "./.git/objects/53/2b0166a9dda8275dcfcba389a1d782269a127f"
|
219
227
|
- "./.git/objects/53/957b5f4306928e9d137147d05310bdbc533ed0"
|
220
228
|
- "./.git/objects/53/d5c004c404e0f06b0304ea3373ec6f943c8174"
|
221
229
|
- "./.git/objects/54/f0feff7b49b9909efb6ae80f646a91cd2f2ecc"
|
230
|
+
- "./.git/objects/55/5abaf0d0b29f123811187b275b2c147a128cc1"
|
231
|
+
- "./.git/objects/56/a1aa11820e45dae9cb6b3f3540abced735b644"
|
222
232
|
- "./.git/objects/57/298313d53034ca639585d7250d687822609b7c"
|
223
233
|
- "./.git/objects/59/c0878a8ab0c3278706a1b396536cab346b9936"
|
234
|
+
- "./.git/objects/5b/7f97f542ff49439e8546f3dcacdc698a722934"
|
224
235
|
- "./.git/objects/5c/e0dd8b4fc14791fadce8f84bd7cbd25e9a0437"
|
225
236
|
- "./.git/objects/5d/85e8b4b5ad08b8aabb031d5702ca954de1eda5"
|
226
237
|
- "./.git/objects/5e/4275517d808ddacfc24d8d931fc69c02fab2b9"
|
238
|
+
- "./.git/objects/5e/d09e7a9b0c7c9f04adfd8ebf3e38a946c0b610"
|
227
239
|
- "./.git/objects/5f/a64ecbeb1f504e147f9a2d3efc607c9ba69899"
|
228
240
|
- "./.git/objects/5f/c2276bc86b4f5251bbe95bf7991538d1144822"
|
229
241
|
- "./.git/objects/60/cffb71344e0595790bc86f9044b635eb584cd5"
|
@@ -242,15 +254,18 @@ files:
|
|
242
254
|
- "./.git/objects/69/0aec5f1e25fcd50073339d9c172aef839726ec"
|
243
255
|
- "./.git/objects/69/2be5effe74e8c9f60c3a949d383324ac075248"
|
244
256
|
- "./.git/objects/6b/2ef57cc35288ebe544c2ae709322375c385bb1"
|
257
|
+
- "./.git/objects/6e/62fde9cd4e40d459c6114c3205cb776cba6594"
|
245
258
|
- "./.git/objects/6e/ed1d8bd6ca0f3d5407ff10ea858e97c9275b88"
|
246
259
|
- "./.git/objects/6f/77655f92e54cd66c3b913adde3fd240ad76f6a"
|
247
260
|
- "./.git/objects/71/3116d57f19f63eb85fd483c56e7c6802ffec61"
|
248
261
|
- "./.git/objects/71/53aedecdaa747c3cede1dd2821b9a197882fce"
|
262
|
+
- "./.git/objects/72/004e682e8d82daf6eba58b183e46b330c07da0"
|
249
263
|
- "./.git/objects/72/d2de572d48b3ccec2c7e1fbf86a6efbf8ba163"
|
250
264
|
- "./.git/objects/73/4a98305b5f15a8f2ca7804ffa6b056db02529a"
|
251
265
|
- "./.git/objects/74/a61dab8d92df4e3219588dcada13ea6666b5c5"
|
252
266
|
- "./.git/objects/76/b4fefc281ce7feb21e988bb6818350ebb62f59"
|
253
267
|
- "./.git/objects/78/218ebe8a446629d76d27c1f59e2257f07ca57f"
|
268
|
+
- "./.git/objects/78/591e917d69e31f7d83ef0af3932388cb3de351"
|
254
269
|
- "./.git/objects/78/a6d90b8e3275c3c8c9556a7b30ab6a1c4a9c28"
|
255
270
|
- "./.git/objects/79/47526f0f3bc0e41576835c158e21d10b5e970a"
|
256
271
|
- "./.git/objects/79/b78df8abb2703e35a607c5b083bfaf1ebe1545"
|
@@ -277,8 +292,10 @@ files:
|
|
277
292
|
- "./.git/objects/84/8093b90556c149b8900ed4dd04e84332ebb522"
|
278
293
|
- "./.git/objects/84/dd376dafb34b45fe3be8dc8c56b129d88b9262"
|
279
294
|
- "./.git/objects/85/b0845ce2959901e5743b813592e493685b3b0f"
|
295
|
+
- "./.git/objects/86/06dd5bf12eacc932a95d244d7b150dd3a1ec65"
|
280
296
|
- "./.git/objects/86/3a1d95067b4ec3727afdf2a9b224b6d625f217"
|
281
297
|
- "./.git/objects/89/71bc2a201ae9e2e5e048f9b525f22b6c2b4f65"
|
298
|
+
- "./.git/objects/89/a9c546a2bc92ff3842edf6b5da4ee4b9bd2291"
|
282
299
|
- "./.git/objects/8b/f576e0195bba361a0cd4a9b3e57f17559d33ee"
|
283
300
|
- "./.git/objects/8c/daf84c49504f3d4fd2395e8451525166412ed8"
|
284
301
|
- "./.git/objects/8d/815b33c7347ed3e7bd30f4659643f69ba43aa8"
|
@@ -294,6 +311,7 @@ files:
|
|
294
311
|
- "./.git/objects/92/ab3f3c6e49479610d422f6f53ee27179fb5aa4"
|
295
312
|
- "./.git/objects/92/ce8ecbd3fac4fc20c45ce41091941d0a7e3e62"
|
296
313
|
- "./.git/objects/93/1f39b330d13373c413947d56c6eddd3b7329e0"
|
314
|
+
- "./.git/objects/93/fa00b6df5c6739438970874780a4550e16dc48"
|
297
315
|
- "./.git/objects/94/876aed4340a5be37615a98b6bf6128036220e9"
|
298
316
|
- "./.git/objects/96/1ad57d191df3d12f55097fd5d5aa569bfe67ee"
|
299
317
|
- "./.git/objects/96/2975833389a0d53022023e8ea904a036665fe5"
|
@@ -306,6 +324,7 @@ files:
|
|
306
324
|
- "./.git/objects/9a/4f78182ba84dd029daaf7daf625614ccb30e64"
|
307
325
|
- "./.git/objects/9a/6bf02cb2413ead9284a1d018e3b83b9e48dd96"
|
308
326
|
- "./.git/objects/9a/7a7d20ee398751b7f7c42b93d0db56d5dbe375"
|
327
|
+
- "./.git/objects/9a/92184b489a227578051750584dc92ae1931e2f"
|
309
328
|
- "./.git/objects/9b/369cb2fcdbf594439b9bfa701c8ab0c75ed82f"
|
310
329
|
- "./.git/objects/9c/098fb3f0caace7f5aea2944e9f605191c8cbba"
|
311
330
|
- "./.git/objects/9c/60f6485e59e25b1f73dea846be3ef755fedeef"
|
@@ -319,6 +338,7 @@ files:
|
|
319
338
|
- "./.git/objects/a2/96ae3203cfb9353fe0ba902e1733449d078ac7"
|
320
339
|
- "./.git/objects/a4/8e7327658eb733ad58e37b80bec3874ea3a661"
|
321
340
|
- "./.git/objects/a4/a209c2bad0adbb5b24f70c72e390d720cf765f"
|
341
|
+
- "./.git/objects/a5/14f50076fb17396922bf24e9798cac7a8d4033"
|
322
342
|
- "./.git/objects/a5/62e7c9d3ada1d9323c7b354c3b9b7a6f48ba4f"
|
323
343
|
- "./.git/objects/a5/f2bf529f1392f53cc2fe0e6f46395d178742c2"
|
324
344
|
- "./.git/objects/a6/236056b6eb554475bd2e5163badce6804f73b4"
|
@@ -331,6 +351,7 @@ files:
|
|
331
351
|
- "./.git/objects/aa/0761146e9c27163c2137acec89cf1163b28918"
|
332
352
|
- "./.git/objects/aa/4fb2e24a224a0f378a47070439eb7f1f618f53"
|
333
353
|
- "./.git/objects/ac/1c6a234743dcb02025497b631d3650ccb25bcc"
|
354
|
+
- "./.git/objects/ac/b458f1835bb3524fe46476a30774e9aade4804"
|
334
355
|
- "./.git/objects/ac/bd17f31a56c815488e16e5b0890e599aa647f7"
|
335
356
|
- "./.git/objects/ad/eb7ad22d6d08bbfb439d85b9be3a68da53cc89"
|
336
357
|
- "./.git/objects/ad/f615a886926d387045c4bdd8ac5766d55f8eb5"
|
@@ -340,6 +361,7 @@ files:
|
|
340
361
|
- "./.git/objects/b2/676999f6387ba826fc4bdcca05a96efadc6448"
|
341
362
|
- "./.git/objects/b2/69d364d14146abd1452fa7def21df5eb42ff27"
|
342
363
|
- "./.git/objects/b2/df8f1d66345d9b1fbe18555ffaa7cc3c8c20be"
|
364
|
+
- "./.git/objects/b3/08339fe8c36dbf2fd00eee2167edb12522a682"
|
343
365
|
- "./.git/objects/b3/552d30e6b1f10e465755e7c26b2a2f52b742ca"
|
344
366
|
- "./.git/objects/b3/77af39edb6577c5aba3beaba8d8cc46b8881b8"
|
345
367
|
- "./.git/objects/b3/af554f0b44b2ea580c648911d12af48a8b0117"
|
@@ -347,6 +369,7 @@ files:
|
|
347
369
|
- "./.git/objects/b3/d2256c61a4bcdc4b1a709e178ecd66052d97cf"
|
348
370
|
- "./.git/objects/b4/b13440b2a17a88ea51fada2f3e08461ed0ffbd"
|
349
371
|
- "./.git/objects/b4/f8acbca37af8831876fff6967dd8925de04ca7"
|
372
|
+
- "./.git/objects/b5/625a09c7a96a7ee5d127e59f95365e58626a22"
|
350
373
|
- "./.git/objects/b5/9dc951ed30cfe805a79657a4aef6c48c345719"
|
351
374
|
- "./.git/objects/b5/bd352a0468f3b2d5204098701a72e87680e7ba"
|
352
375
|
- "./.git/objects/b7/1acffc6865807f244fcfbd614a3dddb480e266"
|
@@ -375,10 +398,12 @@ files:
|
|
375
398
|
- "./.git/objects/c3/c3adc3fda3a4201192b5e1a3e823429dc53682"
|
376
399
|
- "./.git/objects/c4/57a54b85099945b4bee1b2fb7161edc1ca8212"
|
377
400
|
- "./.git/objects/c4/b14c723755d6cefa1d6ed9920be76a9a875df1"
|
401
|
+
- "./.git/objects/c4/e0d3de1b8e5ce1dfa7fa2c0eb4452734ece366"
|
378
402
|
- "./.git/objects/c5/286bffd2dd98233fd17711d68ddc0c9936bba2"
|
379
403
|
- "./.git/objects/c6/0f0f1d0cc3f2c3e035b26af7cadca74b1c339c"
|
380
404
|
- "./.git/objects/c6/d6c83b74a0d14333590ec067c6e2439494b2da"
|
381
405
|
- "./.git/objects/c7/9379c6c2ef65dbb2e04e183e00803154cb35ab"
|
406
|
+
- "./.git/objects/c8/29585e12db531c96b1e8dc63217514632a314e"
|
382
407
|
- "./.git/objects/c8/3cf4c72f13b5bc6be9da406e4ef4d0b07dce1a"
|
383
408
|
- "./.git/objects/c8/eed05b0cb61394b7591d5323c17903164ec855"
|
384
409
|
- "./.git/objects/c9/afd8900da13bfb3a89aa716faa6f3fafc5ba89"
|
@@ -387,12 +412,14 @@ files:
|
|
387
412
|
- "./.git/objects/ca/4d320389bebf17286bee63d2af3c7cca601b02"
|
388
413
|
- "./.git/objects/cb/164048cd10adbe4e2ebde027a70371c9901106"
|
389
414
|
- "./.git/objects/cb/3bd70f957da6147ea0c876c1f6c25a61bed830"
|
415
|
+
- "./.git/objects/cb/bb58f29b8df0faa424e7aca47e5244461bbaa3"
|
390
416
|
- "./.git/objects/cc/29098e4277445a2033a15e224b967e7da86426"
|
391
417
|
- "./.git/objects/cc/31d9ded64138dcb59e885f838c8c2707976b65"
|
392
418
|
- "./.git/objects/cc/d1bbab75782cdda520d3f7bcefb5e3c99cb82c"
|
393
419
|
- "./.git/objects/cc/fa30fa70e56db81b80a0b4674d0633ffe21ef4"
|
394
420
|
- "./.git/objects/cd/52c8a14cf0b36b8f2ad5bca615ec8e3883ac43"
|
395
421
|
- "./.git/objects/cd/8391d58b70f75f85151faea0f0bbc890100ebb"
|
422
|
+
- "./.git/objects/cd/96b15f2b7b9159f864cbe98ebbd60e79395dc9"
|
396
423
|
- "./.git/objects/ce/f451186eb787284f3dcff5d21ce4247c77f809"
|
397
424
|
- "./.git/objects/cf/998cd89b73281c9176981ac57e49d59329a5a1"
|
398
425
|
- "./.git/objects/cf/bccd7b6c433bdedb589e83144a05cca3a50e86"
|
@@ -418,20 +445,25 @@ files:
|
|
418
445
|
- "./.git/objects/da/9d586001c0da57a72d958fe9e454bc4c1af15a"
|
419
446
|
- "./.git/objects/db/345c15d1d5188c443f59b04ba1a2e9eab0c387"
|
420
447
|
- "./.git/objects/db/4b1d71f15122c35b4420de7e31bc28036fd887"
|
448
|
+
- "./.git/objects/dc/917ece77023b2664fa74de0638de2ce7d18eab"
|
449
|
+
- "./.git/objects/de/883c21aa3a20265f9b0938f26f60ed9082f0ba"
|
421
450
|
- "./.git/objects/de/a6615c3ad29bbbbda3efde68f1ac4cba588fa3"
|
422
451
|
- "./.git/objects/de/dc51936bb11d786c32d459743dc55b584e40dd"
|
423
452
|
- "./.git/objects/de/e466b16ae3ac70bb5f1a4addad6a4b484d9ae8"
|
424
453
|
- "./.git/objects/e0/00c6e760f84c7ffa982192aa08673be34a70cd"
|
425
454
|
- "./.git/objects/e0/25280ec493575d2176fa61c6a90d3262566227"
|
455
|
+
- "./.git/objects/e1/321eeec30ae2f997c2e6517d26806dc8f412fb"
|
426
456
|
- "./.git/objects/e1/9b48d2433a281d1a3d1d37877b0c969277a57e"
|
427
457
|
- "./.git/objects/e1/c65719b6d108ddfb07ef83cd3bffc610722653"
|
428
458
|
- "./.git/objects/e2/1eaf26f641e09172bb8033457ccb75557977c7"
|
459
|
+
- "./.git/objects/e2/a1e70ad9a272071ee667e6042b72dc71ac632a"
|
429
460
|
- "./.git/objects/e2/d45e3962e34dd55fbd68280e0442b2e59351bd"
|
430
461
|
- "./.git/objects/e2/f37b8916b66675f153906ebda58fafcf12e8ff"
|
431
462
|
- "./.git/objects/e3/e4f491c3ed1d0f2d2ac08e69b012b002cd60a7"
|
432
463
|
- "./.git/objects/e3/e76642af467f13ca1f4bb186d06f7f4840e191"
|
433
464
|
- "./.git/objects/e4/4ad21ffa7d60f17ba9eb2634c443f51d3df350"
|
434
465
|
- "./.git/objects/e5/64857e44ae97c8df4e5bb520d479ba6a1eb57a"
|
466
|
+
- "./.git/objects/e5/7b4031a9e26ee9568d8348f3efb970e2c32c16"
|
435
467
|
- "./.git/objects/e5/fb26796adac0a11adfddd7cc7172bea4bd989f"
|
436
468
|
- "./.git/objects/e6/3f2a12e0823653277080af061842415bb427a7"
|
437
469
|
- "./.git/objects/e7/3155412cf7f6d0793eef28c9be309c98d0ac56"
|
@@ -456,6 +488,7 @@ files:
|
|
456
488
|
- "./.git/objects/ee/046d6cded6dead3f5f28cdd033b81824935d97"
|
457
489
|
- "./.git/objects/ee/59f5cadbd9f89a095d1f50589ea10283ea3ee9"
|
458
490
|
- "./.git/objects/ee/8ddf6fe1cf9e69129765756ea09cdb50007fa2"
|
491
|
+
- "./.git/objects/ee/c275596c0232459fc6073e70e620ccdea7e279"
|
459
492
|
- "./.git/objects/ef/19ae68836fe534fdd4c9ed17f78a81c87d31c6"
|
460
493
|
- "./.git/objects/ef/1cff65773bf2b5789b2d6978d66ef252f43e5f"
|
461
494
|
- "./.git/objects/ef/3411b02bb0f32b7d420f19e5bd1fbbcca55914"
|
@@ -497,6 +530,7 @@ files:
|
|
497
530
|
- "./.git/refs/tags/0.1.33"
|
498
531
|
- "./.git/refs/tags/0.1.34"
|
499
532
|
- "./.git/refs/tags/0.1.35"
|
533
|
+
- "./.git/refs/tags/0.1.36"
|
500
534
|
- "./.gitignore"
|
501
535
|
- "./Dockerfile"
|
502
536
|
- "./README.md"
|
@@ -518,10 +552,10 @@ files:
|
|
518
552
|
- "./priv/layers/client-api.json"
|
519
553
|
- "./priv/layers/db.json"
|
520
554
|
- "./priv/layers/static.json"
|
521
|
-
- "./priv/layers/task-docker-librarian.json"
|
522
555
|
- "./priv/layers/task-generate-base-image.json"
|
523
556
|
- "./priv/layers/vpc.json"
|
524
557
|
- "./priv/roles/Backend.sh"
|
558
|
+
- "./priv/roles/BaseImageGenerator.sh"
|
525
559
|
- "./priv/roles/Common.sh"
|
526
560
|
- "./priv/roles/Frontend.sh"
|
527
561
|
- "./priv/roles/NAT.sh"
|
@@ -1,66 +0,0 @@
|
|
1
|
-
{
|
2
|
-
|
3
|
-
"Resources": {
|
4
|
-
|
5
|
-
"DockerLibrarianSecurityGroup" : {
|
6
|
-
"Type" : "AWS::EC2::SecurityGroup",
|
7
|
-
"Properties" : {
|
8
|
-
"GroupDescription" : "Allow the application instances to access the NAT device",
|
9
|
-
"VpcId" : { "Ref" : "VPC" },
|
10
|
-
|
11
|
-
"SecurityGroupIngress": [
|
12
|
-
{"IpProtocol": "tcp", "FromPort": "22", "ToPort": "22", "CidrIp": "0.0.0.0/0"}
|
13
|
-
],
|
14
|
-
"SecurityGroupEgress": [
|
15
|
-
{"IpProtocol": "-1", "CidrIp": "0.0.0.0/0"}
|
16
|
-
]
|
17
|
-
}
|
18
|
-
},
|
19
|
-
|
20
|
-
"DockerLibrarianReadyWaitHandle": {"Type": "AWS::CloudFormation::WaitConditionHandle", "Properties": {}},
|
21
|
-
|
22
|
-
"DockerLibrarianReady": {"Type": "AWS::CloudFormation::WaitCondition", "DependsOn": ["DockerLibrarian"], "Properties": {
|
23
|
-
"Handle": {"Ref": "DockerLibrarianReadyWaitHandle"},
|
24
|
-
"Count": "1",
|
25
|
-
"Timeout": "1200"
|
26
|
-
}},
|
27
|
-
|
28
|
-
"DockerLibrarian" : {
|
29
|
-
"Type" : "AWS::EC2::Instance",
|
30
|
-
"Metadata": {
|
31
|
-
"AWS::CloudFormation::Init": {}
|
32
|
-
},
|
33
|
-
"Properties" : {
|
34
|
-
"InstanceType": "m3.large",
|
35
|
-
"ImageId": {"Ref": "InstanceAMIVar"},
|
36
|
-
"KeyName": {"Ref": "IAMKeypairNameVar"},
|
37
|
-
|
38
|
-
"NetworkInterfaces": [{
|
39
|
-
"DeviceIndex": "0",
|
40
|
-
"AssociatePublicIpAddress": "true",
|
41
|
-
"DeleteOnTermination": "true",
|
42
|
-
"SubnetId": {"Ref": "PublicSubnet"},
|
43
|
-
"GroupSet" : [{"Ref" : "DockerLibrarianSecurityGroup"}]
|
44
|
-
}],
|
45
|
-
|
46
|
-
"BlockDeviceMappings": [
|
47
|
-
{"DeviceName": "/dev/xvdc", "Ebs": {
|
48
|
-
"VolumeSize": "5"
|
49
|
-
}}
|
50
|
-
],
|
51
|
-
|
52
|
-
"UserData": {"Fn::Base64": {"Fn::Join": ["", [
|
53
|
-
"#!/bin/bash\n",
|
54
|
-
"export AWS_REGION='", {"Ref": "AWS::Region"}, "'\n",
|
55
|
-
"export AWS_STACK_NAME='", {"Ref": "AWS::StackName"}, "'\n",
|
56
|
-
"export AWS_INSTANCE_LOGICAL_NAME='DockerLibrarian'\n",
|
57
|
-
"export AWS_INSTANCE_WAIT_HANDLE='", {"Ref": "DockerLibrarianReadyWaitHandle"}, "'\n",
|
58
|
-
{"Ref": "UserDataEnvironmentVar"}, "\n",
|
59
|
-
{"Ref": "CommonRoleScriptVar"}, "\n"
|
60
|
-
]]}}
|
61
|
-
}
|
62
|
-
}
|
63
|
-
|
64
|
-
}
|
65
|
-
|
66
|
-
}
|