generate.py
· 1.1 KiB · Python
Originalformat
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import sys
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
width = 20 # cm
height = 15 # cm
if len(sys.argv) < 4:
print "Usage: generate.py data.txt title output"
exit(1)
output = sys.argv[3]
title = sys.argv[2].decode(encoding='UTF-8',errors='strict')
data = np.fromfile(sys.argv[1], sep='\n')
num_bins = 28
avg = np.average(data)
std = np.std(data)
fig, ax = plt.subplots()
n, bins, patches = ax.hist(data, num_bins, color='burlywood', histtype='stepfilled')
print "Média: %s Desvio Padrão: %s" %(avg, std)
ax.axvline(avg, color='red', label="Média = %.2f s" %avg)
ax.axvline(avg-std, color='lightblue', label="Média - Desvio Padrão = %.2f s" %(avg-std))
ax.axvline(avg+std, color='darkblue', label="Média + Desvio Padrão = %.2f s" % (avg+std))
ax.set_xlabel('Tempo (s)')
ax.set_ylabel('Contagem (n)')
ax.set_title(title)
ax.set_ylim( None, n.max() * 1.2)
legend = ax.legend(loc='upper left', shadow=True, prop={'size':10})
fig.tight_layout()
fig.set_size_inches(width / 2.54, height / 2.54)
plt.savefig('%s.png' %output, dpi=100)
| 1 | #!/usr/bin/env python |
| 2 | # -*- coding: utf-8 -*- |
| 3 | from __future__ import unicode_literals |
| 4 | |
| 5 | import sys |
| 6 | import numpy as np |
| 7 | import matplotlib.mlab as mlab |
| 8 | import matplotlib.pyplot as plt |
| 9 | |
| 10 | width = 20 # cm |
| 11 | height = 15 # cm |
| 12 | |
| 13 | if len(sys.argv) < 4: |
| 14 | print "Usage: generate.py data.txt title output" |
| 15 | exit(1) |
| 16 | |
| 17 | output = sys.argv[3] |
| 18 | title = sys.argv[2].decode(encoding='UTF-8',errors='strict') |
| 19 | |
| 20 | data = np.fromfile(sys.argv[1], sep='\n') |
| 21 | |
| 22 | num_bins = 28 |
| 23 | avg = np.average(data) |
| 24 | std = np.std(data) |
| 25 | |
| 26 | fig, ax = plt.subplots() |
| 27 | n, bins, patches = ax.hist(data, num_bins, color='burlywood', histtype='stepfilled') |
| 28 | |
| 29 | print "Média: %s Desvio Padrão: %s" %(avg, std) |
| 30 | |
| 31 | ax.axvline(avg, color='red', label="Média = %.2f s" %avg) |
| 32 | ax.axvline(avg-std, color='lightblue', label="Média - Desvio Padrão = %.2f s" %(avg-std)) |
| 33 | ax.axvline(avg+std, color='darkblue', label="Média + Desvio Padrão = %.2f s" % (avg+std)) |
| 34 | |
| 35 | ax.set_xlabel('Tempo (s)') |
| 36 | ax.set_ylabel('Contagem (n)') |
| 37 | ax.set_title(title) |
| 38 | ax.set_ylim( None, n.max() * 1.2) |
| 39 | |
| 40 | legend = ax.legend(loc='upper left', shadow=True, prop={'size':10}) |
| 41 | fig.tight_layout() |
| 42 | |
| 43 | fig.set_size_inches(width / 2.54, height / 2.54) |
| 44 | plt.savefig('%s.png' %output, dpi=100) |
grafa.py
· 1.3 KiB · Python
Originalformat
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import sys
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
width = 20 # cm
height = 15 # cm
deltaS = 34 # metros
if len(sys.argv) < 4:
print "Usage: generate.py data.txt type output"
exit(1)
type = sys.argv[2].decode(encoding='UTF-8',errors='strict')
output = sys.argv[3]
data = np.fromfile(sys.argv[1], sep='\n')
data = (2 * 34) / (data ** 2)
num_bins = 12
avg = np.average(data)
std = np.std(data)
fig, ax = plt.subplots()
n, bins, patches = ax.hist(data, num_bins, color='burlywood', histtype='stepfilled')
print "Média: %s Desvio Padrão: %s" %(avg, std)
ax.axvline(avg, color='red', label="Média = %.2f m/s²" %avg)
ax.axvline(avg-std, color='lightblue', label="Média - Desvio Padrão = %.2f m/s²" %(avg-std))
ax.axvline(avg+std, color='darkblue', label="Média + Desvio Padrão = %.2f m/s²" % (avg+std))
ax.set_xlabel('Aceleração (m/s²)')
ax.set_ylabel('Contagem (n)')
ax.set_title('Histograma das Acelerações Médias (%s)' %type)
ax.set_ylim( None, n.max() * 1.2)
legend = ax.legend(loc='upper left', shadow=True, prop={'size':10})
fig.tight_layout()
fig.set_size_inches(width / 2.54, height / 2.54)
plt.savefig('%s.png' %output, dpi=100)
| 1 | #!/usr/bin/env python |
| 2 | # -*- coding: utf-8 -*- |
| 3 | from __future__ import unicode_literals |
| 4 | |
| 5 | import sys |
| 6 | import numpy as np |
| 7 | import matplotlib.mlab as mlab |
| 8 | import matplotlib.pyplot as plt |
| 9 | |
| 10 | width = 20 # cm |
| 11 | height = 15 # cm |
| 12 | |
| 13 | deltaS = 34 # metros |
| 14 | |
| 15 | |
| 16 | if len(sys.argv) < 4: |
| 17 | print "Usage: generate.py data.txt type output" |
| 18 | exit(1) |
| 19 | |
| 20 | type = sys.argv[2].decode(encoding='UTF-8',errors='strict') |
| 21 | output = sys.argv[3] |
| 22 | |
| 23 | data = np.fromfile(sys.argv[1], sep='\n') |
| 24 | |
| 25 | data = (2 * 34) / (data ** 2) |
| 26 | |
| 27 | num_bins = 12 |
| 28 | avg = np.average(data) |
| 29 | std = np.std(data) |
| 30 | |
| 31 | fig, ax = plt.subplots() |
| 32 | n, bins, patches = ax.hist(data, num_bins, color='burlywood', histtype='stepfilled') |
| 33 | |
| 34 | print "Média: %s Desvio Padrão: %s" %(avg, std) |
| 35 | |
| 36 | ax.axvline(avg, color='red', label="Média = %.2f m/s²" %avg) |
| 37 | ax.axvline(avg-std, color='lightblue', label="Média - Desvio Padrão = %.2f m/s²" %(avg-std)) |
| 38 | ax.axvline(avg+std, color='darkblue', label="Média + Desvio Padrão = %.2f m/s²" % (avg+std)) |
| 39 | |
| 40 | ax.set_xlabel('Aceleração (m/s²)') |
| 41 | ax.set_ylabel('Contagem (n)') |
| 42 | ax.set_title('Histograma das Acelerações Médias (%s)' %type) |
| 43 | ax.set_ylim( None, n.max() * 1.2) |
| 44 | |
| 45 | legend = ax.legend(loc='upper left', shadow=True, prop={'size':10}) |
| 46 | fig.tight_layout() |
| 47 | |
| 48 | fig.set_size_inches(width / 2.54, height / 2.54) |
| 49 | plt.savefig('%s.png' %output, dpi=100) |
grafv.py
· 1.2 KiB · Python
Originalformat
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import sys
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
width = 20 # cm
height = 15 # cm
deltaS = 34 # metros
if len(sys.argv) < 4:
print "Usage: generate.py data.txt type output"
exit(1)
type = sys.argv[2].decode(encoding='UTF-8',errors='strict')
output = sys.argv[3]
data = np.fromfile(sys.argv[1], sep='\n')
data = deltaS / data
num_bins = 12
avg = np.average(data)
std = np.std(data)
fig, ax = plt.subplots()
n, bins, patches = ax.hist(data, num_bins, color='burlywood', histtype='stepfilled')
print "Média: %s Desvio Padrão: %s" %(avg, std)
ax.axvline(avg, color='red', label="Média = %.2f m/s" %avg)
ax.axvline(avg-std, color='lightblue', label="Média - Desvio Padrão = %.2f m/s" %(avg-std))
ax.axvline(avg+std, color='darkblue', label="Média + Desvio Padrão = %.2f m/s" % (avg+std))
ax.set_xlabel('Velocidade (m/s)')
ax.set_ylabel('Contagem (n)')
ax.set_title('Histograma das Velocidades Médias (%s)' %type)
ax.set_ylim( None, n.max() * 1.2)
legend = ax.legend(loc='upper left', shadow=True, prop={'size':10})
fig.tight_layout()
fig.set_size_inches(width / 2.54, height / 2.54)
plt.savefig('%s.png' %output, dpi=100)
| 1 | #!/usr/bin/env python |
| 2 | # -*- coding: utf-8 -*- |
| 3 | from __future__ import unicode_literals |
| 4 | |
| 5 | import sys |
| 6 | import numpy as np |
| 7 | import matplotlib.mlab as mlab |
| 8 | import matplotlib.pyplot as plt |
| 9 | |
| 10 | width = 20 # cm |
| 11 | height = 15 # cm |
| 12 | |
| 13 | deltaS = 34 # metros |
| 14 | |
| 15 | if len(sys.argv) < 4: |
| 16 | print "Usage: generate.py data.txt type output" |
| 17 | exit(1) |
| 18 | |
| 19 | type = sys.argv[2].decode(encoding='UTF-8',errors='strict') |
| 20 | output = sys.argv[3] |
| 21 | |
| 22 | data = np.fromfile(sys.argv[1], sep='\n') |
| 23 | |
| 24 | data = deltaS / data |
| 25 | |
| 26 | num_bins = 12 |
| 27 | avg = np.average(data) |
| 28 | std = np.std(data) |
| 29 | |
| 30 | fig, ax = plt.subplots() |
| 31 | n, bins, patches = ax.hist(data, num_bins, color='burlywood', histtype='stepfilled') |
| 32 | |
| 33 | print "Média: %s Desvio Padrão: %s" %(avg, std) |
| 34 | |
| 35 | ax.axvline(avg, color='red', label="Média = %.2f m/s" %avg) |
| 36 | ax.axvline(avg-std, color='lightblue', label="Média - Desvio Padrão = %.2f m/s" %(avg-std)) |
| 37 | ax.axvline(avg+std, color='darkblue', label="Média + Desvio Padrão = %.2f m/s" % (avg+std)) |
| 38 | |
| 39 | ax.set_xlabel('Velocidade (m/s)') |
| 40 | ax.set_ylabel('Contagem (n)') |
| 41 | ax.set_title('Histograma das Velocidades Médias (%s)' %type) |
| 42 | ax.set_ylim( None, n.max() * 1.2) |
| 43 | |
| 44 | legend = ax.legend(loc='upper left', shadow=True, prop={'size':10}) |
| 45 | fig.tight_layout() |
| 46 | |
| 47 | fig.set_size_inches(width / 2.54, height / 2.54) |
| 48 | plt.savefig('%s.png' %output, dpi=100) |
molahisto.py
· 787 B · Python
Originalformat
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import sys
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
width = 20 # cm
height = 15 # cm
if len(sys.argv) < 4:
print "Usage: molahisto.py data.txt title output"
exit(1)
type = sys.argv[2].decode(encoding='UTF-8',errors='strict')
output = sys.argv[3]
data = np.fromfile(sys.argv[1], sep='\n')
num_bins = 8
fig, ax = plt.subplots()
n, bins, patches = ax.hist(data, num_bins, color='burlywood', histtype='stepfilled')
ax.set_xlabel('Constante Elástica (N/m)')
ax.set_ylabel('Contagem')
ax.set_title('%s' %type)
ax.set_ylim( None, n.max() * 1.2)
fig.tight_layout()
fig.set_size_inches(width / 2.54, height / 2.54)
plt.savefig('%s.png' %output, dpi=100)
| 1 | #!/usr/bin/env python |
| 2 | # -*- coding: utf-8 -*- |
| 3 | from __future__ import unicode_literals |
| 4 | |
| 5 | import sys |
| 6 | import numpy as np |
| 7 | import matplotlib.mlab as mlab |
| 8 | import matplotlib.pyplot as plt |
| 9 | |
| 10 | width = 20 # cm |
| 11 | height = 15 # cm |
| 12 | |
| 13 | if len(sys.argv) < 4: |
| 14 | print "Usage: molahisto.py data.txt title output" |
| 15 | exit(1) |
| 16 | |
| 17 | type = sys.argv[2].decode(encoding='UTF-8',errors='strict') |
| 18 | output = sys.argv[3] |
| 19 | |
| 20 | data = np.fromfile(sys.argv[1], sep='\n') |
| 21 | |
| 22 | num_bins = 8 |
| 23 | |
| 24 | fig, ax = plt.subplots() |
| 25 | n, bins, patches = ax.hist(data, num_bins, color='burlywood', histtype='stepfilled') |
| 26 | |
| 27 | ax.set_xlabel('Constante Elástica (N/m)') |
| 28 | ax.set_ylabel('Contagem') |
| 29 | ax.set_title('%s' %type) |
| 30 | ax.set_ylim( None, n.max() * 1.2) |
| 31 | |
| 32 | fig.tight_layout() |
| 33 | |
| 34 | fig.set_size_inches(width / 2.54, height / 2.54) |
| 35 | plt.savefig('%s.png' %output, dpi=100) |
super.py
· 3.4 KiB · Python
Originalformat
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import sys
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
if len(sys.argv) < 4:
print "Usage: generate.py data.txt type output"
exit(1)
def GenHistogram(data, output, type, unit, title):
width = 20 # cm
height = 15 # cm
num_bins = min(max(len(data) / 3, 2), 12)
avg = np.average(data)
std = np.std(data)
fig, ax = plt.subplots()
n, bins, patches = ax.hist(data, num_bins, color='burlywood', histtype='stepfilled')
ax.axvline(avg, color='red', label="Média = %.2f %s" % (avg, unit))
ax.axvline(avg-std, color='lightblue', label="Média - Desvio Padrão = %.2f %s" %(avg-std, unit))
ax.axvline(avg+std, color='darkblue', label="Média + Desvio Padrão = %.2f %s" % (avg+std, unit))
plt.text(0.025, 0.8, r'$\sigma = %.2f$' % std, transform = ax.transAxes)
ax.set_xlabel('%s (%s)' %(type, unit))
ax.set_ylabel('Contagem (n)')
ax.set_title('%s' %title)
ax.set_ylim( None, n.max() * 1.2)
legend = ax.legend(loc='upper left', shadow=True, prop={'size':10})
fig.tight_layout()
fig.set_size_inches(width / 2.54, height / 2.54)
plt.savefig('%s.png' %output, dpi=100)
def GenSigmaChart(data, output, type, std):
#Tstd, "%s-sigma" %(output), 'Tempo de Queda'
width = 20 # cm
height = 15 # cm
x = [2**i for i in range(len(data))]
s = std / np.sqrt(x)
fig, ax = plt.subplots()
ax.plot(x, data, label="Calculado")
ax.plot(x, s, label="Teórico")
ax.set_xlabel('Número de Amostras usadas na média')
ax.set_ylabel('Desvio Padrão')
ax.set_title('Desvio Padrão da Média de %s' %type)
legend = ax.legend(loc='upper right', shadow=True, prop={'size':10})
fig.tight_layout()
fig.set_size_inches(width / 2.54, height / 2.54)
plt.savefig('%s.png' %output, dpi=100)
deltaS = 34 # metros
type = sys.argv[2].decode(encoding='UTF-8',errors='strict')
output = sys.argv[3]
data = np.fromfile(sys.argv[1], sep='\n')
dataV = deltaS / data
dataA = (2 * deltaS) / (data ** 2)
Tstd = []
Vstd = []
Astd = []
Tavg = []
Vavg = []
Aavg = []
for i in range(0,6):
n = 2**i
arrT = []
arrV = []
arrA = []
print "Calculando para %s" %n
filenameT = "o/%s-%s-t.txt" %(output, n)
filenameV = "o/%s-%s-v.txt" %(output, n)
filenameA = "o/%s-%s-a.txt" %(output, n)
print "Salvando em %s %s %s" % (filenameT, filenameV, filenameA)
fT = open(filenameT, "w")
fV = open(filenameV, "w")
fA = open(filenameA, "w")
for z in range(0, len(data), n):
avgT = 0
avgV = 0
avgA = 0
if z+n >= len(data):
break;
for k in range(0, n):
avgT += data[z+k]
avgV += dataV[z+k]
avgA += dataA[z+k]
avgT /= n
avgV /= n
avgA /= n
arrT.append(avgT)
arrV.append(avgV)
arrA.append(avgA)
fT.write("%.2f\n" %avgT)
fV.write("%.2f\n" %avgV)
fA.write("%.2f\n" %avgA)
fT.close()
fV.close()
fA.close()
npT = np.array(arrT)
npV = np.array(arrV)
npA = np.array(arrA)
Tstd.append(np.std(npT))
Vstd.append(np.std(npV))
Astd.append(np.std(npA))
print "Salvando Gráfico de Histograma do Tempo de Queda"
GenHistogram(npT, "%s-%s-hist" %(output, n), 'Tempo de Queda', 's', 'Histograma de Tempo de Queda Média N=%s (%s)' %(n, type))
Tavg.append(np.average(npT))
Vavg.append(np.average(npV))
Aavg.append(np.average(npA))
print "Desenhando gráfico sigma"
GenSigmaChart(Tstd, "%s-sigma" %(output), 'Tempo de Queda (%s)' %type, np.std(data))
| 1 | #!/usr/bin/env python |
| 2 | # -*- coding: utf-8 -*- |
| 3 | from __future__ import unicode_literals |
| 4 | |
| 5 | import sys |
| 6 | import numpy as np |
| 7 | import matplotlib.mlab as mlab |
| 8 | import matplotlib.pyplot as plt |
| 9 | |
| 10 | |
| 11 | if len(sys.argv) < 4: |
| 12 | print "Usage: generate.py data.txt type output" |
| 13 | exit(1) |
| 14 | |
| 15 | def GenHistogram(data, output, type, unit, title): |
| 16 | width = 20 # cm |
| 17 | height = 15 # cm |
| 18 | num_bins = min(max(len(data) / 3, 2), 12) |
| 19 | avg = np.average(data) |
| 20 | std = np.std(data) |
| 21 | |
| 22 | fig, ax = plt.subplots() |
| 23 | n, bins, patches = ax.hist(data, num_bins, color='burlywood', histtype='stepfilled') |
| 24 | |
| 25 | ax.axvline(avg, color='red', label="Média = %.2f %s" % (avg, unit)) |
| 26 | ax.axvline(avg-std, color='lightblue', label="Média - Desvio Padrão = %.2f %s" %(avg-std, unit)) |
| 27 | ax.axvline(avg+std, color='darkblue', label="Média + Desvio Padrão = %.2f %s" % (avg+std, unit)) |
| 28 | |
| 29 | plt.text(0.025, 0.8, r'$\sigma = %.2f$' % std, transform = ax.transAxes) |
| 30 | ax.set_xlabel('%s (%s)' %(type, unit)) |
| 31 | ax.set_ylabel('Contagem (n)') |
| 32 | ax.set_title('%s' %title) |
| 33 | ax.set_ylim( None, n.max() * 1.2) |
| 34 | |
| 35 | legend = ax.legend(loc='upper left', shadow=True, prop={'size':10}) |
| 36 | fig.tight_layout() |
| 37 | |
| 38 | fig.set_size_inches(width / 2.54, height / 2.54) |
| 39 | plt.savefig('%s.png' %output, dpi=100) |
| 40 | |
| 41 | def GenSigmaChart(data, output, type, std): |
| 42 | #Tstd, "%s-sigma" %(output), 'Tempo de Queda' |
| 43 | width = 20 # cm |
| 44 | height = 15 # cm |
| 45 | x = [2**i for i in range(len(data))] |
| 46 | s = std / np.sqrt(x) |
| 47 | fig, ax = plt.subplots() |
| 48 | ax.plot(x, data, label="Calculado") |
| 49 | ax.plot(x, s, label="Teórico") |
| 50 | |
| 51 | ax.set_xlabel('Número de Amostras usadas na média') |
| 52 | ax.set_ylabel('Desvio Padrão') |
| 53 | ax.set_title('Desvio Padrão da Média de %s' %type) |
| 54 | |
| 55 | legend = ax.legend(loc='upper right', shadow=True, prop={'size':10}) |
| 56 | fig.tight_layout() |
| 57 | |
| 58 | fig.set_size_inches(width / 2.54, height / 2.54) |
| 59 | plt.savefig('%s.png' %output, dpi=100) |
| 60 | |
| 61 | deltaS = 34 # metros |
| 62 | |
| 63 | type = sys.argv[2].decode(encoding='UTF-8',errors='strict') |
| 64 | output = sys.argv[3] |
| 65 | data = np.fromfile(sys.argv[1], sep='\n') |
| 66 | dataV = deltaS / data |
| 67 | dataA = (2 * deltaS) / (data ** 2) |
| 68 | |
| 69 | Tstd = [] |
| 70 | Vstd = [] |
| 71 | Astd = [] |
| 72 | |
| 73 | Tavg = [] |
| 74 | Vavg = [] |
| 75 | Aavg = [] |
| 76 | |
| 77 | for i in range(0,6): |
| 78 | n = 2**i |
| 79 | arrT = [] |
| 80 | arrV = [] |
| 81 | arrA = [] |
| 82 | |
| 83 | print "Calculando para %s" %n |
| 84 | filenameT = "o/%s-%s-t.txt" %(output, n) |
| 85 | filenameV = "o/%s-%s-v.txt" %(output, n) |
| 86 | filenameA = "o/%s-%s-a.txt" %(output, n) |
| 87 | |
| 88 | print "Salvando em %s %s %s" % (filenameT, filenameV, filenameA) |
| 89 | fT = open(filenameT, "w") |
| 90 | fV = open(filenameV, "w") |
| 91 | fA = open(filenameA, "w") |
| 92 | |
| 93 | for z in range(0, len(data), n): |
| 94 | avgT = 0 |
| 95 | avgV = 0 |
| 96 | avgA = 0 |
| 97 | if z+n >= len(data): |
| 98 | break; |
| 99 | for k in range(0, n): |
| 100 | avgT += data[z+k] |
| 101 | avgV += dataV[z+k] |
| 102 | avgA += dataA[z+k] |
| 103 | |
| 104 | avgT /= n |
| 105 | avgV /= n |
| 106 | avgA /= n |
| 107 | |
| 108 | arrT.append(avgT) |
| 109 | arrV.append(avgV) |
| 110 | arrA.append(avgA) |
| 111 | |
| 112 | fT.write("%.2f\n" %avgT) |
| 113 | fV.write("%.2f\n" %avgV) |
| 114 | fA.write("%.2f\n" %avgA) |
| 115 | |
| 116 | fT.close() |
| 117 | fV.close() |
| 118 | fA.close() |
| 119 | |
| 120 | npT = np.array(arrT) |
| 121 | npV = np.array(arrV) |
| 122 | npA = np.array(arrA) |
| 123 | |
| 124 | Tstd.append(np.std(npT)) |
| 125 | Vstd.append(np.std(npV)) |
| 126 | Astd.append(np.std(npA)) |
| 127 | |
| 128 | print "Salvando Gráfico de Histograma do Tempo de Queda" |
| 129 | GenHistogram(npT, "%s-%s-hist" %(output, n), 'Tempo de Queda', 's', 'Histograma de Tempo de Queda Média N=%s (%s)' %(n, type)) |
| 130 | |
| 131 | Tavg.append(np.average(npT)) |
| 132 | Vavg.append(np.average(npV)) |
| 133 | Aavg.append(np.average(npA)) |
| 134 | |
| 135 | |
| 136 | print "Desenhando gráfico sigma" |
| 137 | |
| 138 | GenSigmaChart(Tstd, "%s-sigma" %(output), 'Tempo de Queda (%s)' %type, np.std(data)) |
| 139 | |
| 140 | |
| 141 |