modeling, simulation, and experimental study of a 50um...
TRANSCRIPT
Modeling,Simulation,andExperimentalStudy
of a50� m MultimodeFiber
Serial10GbLink
StevenE. Golowich
PaulF. Kolesar
A. JohnRitger
Giorgio Giaretta
Bell Labs,LucentTechnologies
S.Golowich IEEE802.3aeInterim,Ottawa May 23–25,20001
10GbSerialLink
Receiver
MultimodeFiber
OffsetConnectors
Transmitter
(VCSEL)
(50um, 1%)
� Experimentallinks provenvery robustin stresstests
� Goalsof modeling& simulation:
– Demonstratethatsystemis robustto wide rangeof perturbations
aslong astransmitterandfiber meetspecs
– Probemorephasespacethanpossiblethroughexperiments
– Emphasison interactionsbetweentransmitter, modaldispersion
of fiber, andconnectioneffectsthatinfluence3dBopticalBW
S.Golowich IEEE802.3aeInterim,Ottawa May 23–25,20002
ProposedSpecifications
Theproposedsourceandfiberspecificationsare:
� Transmitters:encircledflux maskof �� ��� source� ��
� Fiber: DifferentialModalDelay(DMD) maskof temporalwidth
�� DMD for SMF launchesat � � � DMD
In above, � source, �� DMD, and � DMD arechosentoguaranteedesiredBW (e.g.2000MHz km)
S.Golowich IEEE802.3aeInterim,Ottawa May 23–25,20003
TransmitterSpecification� EF maskis appliedto nearfield intensity(NFI) at endof testfiber
Transmitter
50um MMF
NFI data(CCD)
� Example:NFI of 6� m Gaussianbeamoffsetby 5� m
�� ��� ��� � !" !#$
%&(' ) �+* , �* - ���+* �
(Standardmeasurement:TIA/EIA-455-203)
Launch NFI, EF
Radius (um)
Inte
nsity
0 5 10 15 20 25 300.
00.
001
0.00
30.
005
0.0
0.2
0.4
0.6
0.8
1.0
Enc
ircle
d F
lux
EF Mask Radius
S.Golowich IEEE802.3aeInterim,Ottawa May 23–25,20004
FiberSpecification
DMD Measurement
MMF
SMF
offset
Simulated DMD
Time (ns/km)
Offs
et (
um)
-0.8 -0.6 -0.4 -0.2 0.0 0.2 0.4
05
1015
2025
.
.
.
.
.
.
.
.
..
.
.
.
.
..
.
..
.
.
.
.
.
.
.
DMD Mask
� Theedgesof a singleimpulseresponsearedefinedto betheearliest
andlatesttimesit crossesonehalf its maximumvalue
� A DMD is definedto meetthemaskif theedgesof theimpulse
responsesof all launchesat � � � DMD lie within �� DMD
S.Golowich IEEE802.3aeInterim,Ottawa May 23–25,20005
Link Model: Overview
We modelinteractionsbetweentransmitter, modaldispersionof fiber, andconnectioneffects(ignoreothereffectsfor now)
� Transmitter:VCSELmodeledby low-orderGaussianbeammodes(first four modegroups,varioussuperpositions)
� Fiber: Modaldelayschosenfrom a distributionrepresentingtypicalmanufacturingvariations
� Connectors:Varietyof plausibleconfigurationsconsidered.Offsetsdrawn from statisticaldistribution.
� Detector:Infinite detectorBW assumedfor fiberBWcomputations.
S.Golowich IEEE802.3aeInterim,Ottawa May 23–25,20006
Simulation block diagram
Inputs IntermediateSimulation Outputs
RandomFiber
Mode GroupDelay
RandomLaguerre Gaussian
Excitation
FiberDMD
ModePower
Distribution
SourceNFI & EF
Link Configuration(Segment & Connector
Effects)
ImpulseResponse
FrequencyResponse
DMDMask
TemporalWidth
PlotFrequencyResponse
as functionof DMDand EF
S. Golowich IEEE 802.3ae Interim, Ottawa May 23 - 25, 2000
S.Golowich IEEE802.3aeInterim,Ottawa May 23–25,20007
VCSEL model� Modesof VCSEL cavity modeledasGaussianbeams
. /021 � � 3 4 365 7 8 � 7 9: �; <
1=1 / : �?>
; > <@A B C �?>
; > <C D E 4
( ; < is spotsize)
� Chromaticdispersionlimits spectrumto a few modes;
We includefirst four modegroups(6 modes& various
superpositions)
� Gaussianbeamspotsizesrangefrom 1.5F m to 6F m (radius)
� Incidentanglesrangefrom 0G to 2G
� Offsetsrangefrom 0F m to 5F m
S.Golowich IEEE802.3aeInterim,Ottawa May 23–25,20008
GaussianBeamModes(at waist; ; < =6F m)
-20
-10
0
10
20
-20 -10 0 10 20
P=0 L=0
PMN=1
-20
-10
0
10
20
-20 -10 0 10 20
P=0 L=1
PMN=2
-20
-10
0
10
20
-20 -10 0 10 20
P=1 L=0
PMN=3
-20
-10
0
10
20
-20 -10 0 10 20
P=0 L=2
PMN=3
-20
-10
0
10
20
-20 -10 0 10 20
P=1 L=1
PMN=4
-20
-10
0
10
20
-20 -10 0 10 20
P=0 L=3
PMN=4
S.Golowich IEEE802.3aeInterim,Ottawa May 23–25,20009
Distributionof FiberModalDelays� Desireddelaystructurehasflat low
orderDMD, but mayhave variationin
highordermodes
Ideal Delays
PMN
Del
ay (
ns/k
m)
5 10 15
-1.0
-0.5
0.0H
0.5H
1.0
I Distributionof delaystructures:
simulatedeffectsof
– Center-line perturbations
– J variation
– Variationsin K L
Delay Samples
PMN
Del
ay (
ns/k
m)
5 10 15-1
.5-1
.0-0
.50.
0M
S.Golowich IEEE802.3aeInterim,Ottawa May 23–25,200010
ConnectionConfigurations
300m1m 1m1m
300m1m 1m
300m
1m 1m
No connections
3 connections
2 connections
200m 100m
3 connections
N Mean connectionloss chosento
be0.3dB(stddev 0.2dB)= 4.8O m
meanoffset(stddev 1.9O m)
N Buckler model relatesempirical
lossto offsetfor 50O m fiber
S.Golowich IEEE802.3aeInterim,Ottawa May 23–25,200011
Couplinginto aMultimodeFiber� UsemodalEM theoryto calculatecouplingcoefficients
from lasermodesto fibermodes,or fibermodesto fibermodes
PRQTS UWV XYZ []\^ _ `ba cd eYZ []\ ^ f c gd QTS UWV Xh hi f c g
� Accuracy of thismethodis supporedby a largeliterature(e.g.Miller, Mettler& White, “Optical FiberSplicesandConnectors”)
� Recentmeasurementsalsoperformedto verify accuracy
S.Golowich IEEE802.3aeInterim,Ottawa May 23–25,200012
OffsetConnectorcw Measurements
OffsetConnector
#2
OffsetConnector
#1
SMF MMF #1 MMF #2
(CCD)
NFI data
0 5 10 15 20 25 30
15
20
25
30
3540 um fiber study
offset connecter #1
10.0 um
7.5 um
5.0 um
2.5 um
0.0 um
1/e2 −
bea
m d
iam
eter
[um
]
offset connector #2 [um]
Fig.3b
Nea
rFie
ldIn
tens
ity
00 55 10 15 20 2500
0.2
0.4
0.6
0.8
11
1.2
1.4
1.6
1.8
#1: 0 um#2: 0 um
00 55 10 15 20 2500
0.05
0.1
0.15
00 55 10 15 20 2500
0.05
0.1
0.15
0.2
0.25#1: 10 um#2: 10 um
#1: 0 um#2: 30 um
radial distance [um]
intensity [a.u.]
Fig.3aS.Golowich IEEE802.3aeInterim,Ottawa May 23–25,2000
13
Example:Simulationof SingleSource/FiberSimulationInputs
o
oo
o
o
oo
oo o o o o o o o o o o
Launch MPD
PMN
MP
D
0 5 10 15
0.0
0.1
0.2
0.3
Fiber Delays
PMN
Del
ay (
ns/k
m)
0 5 10 15
-4-3
-2-1
0
Launch NFI, EF
Radius (um)
Inte
nsity
0 5 10 15 20 25 30
0.0
0.00
050.
0010
0.00
150.
0020
0.00
25
0.0
0.2
0.4
0.6
0.8
1.0
Enc
ircle
d F
lux
EF Mask Radius
Simulated DMD
Time (ns/km)
Offs
et (
um)
-0.8 -0.6 -0.4 -0.2 0.0 0.2 0.4
05
1015
2025
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
..
..
.....
.
.
.
....
.............
..
..
..
DMD Mask
Impulse Response
Time (ns)
Pow
er
2.5 2.6 2.7 2.8 2.9
0.0
0.02
0.04
0.06
0.08
0.10
Frequency Response
f (GHz)
|H|
0 5 10 15 20 25
0.0
0.2
0.4
0.6
0.8
Source,FiberScreens
o
oo
o
o
oo
oo o o o o o o o o o o
Launch MPD
PMN
MP
D
0 5 10 15
0.0
0.1
0.2
0.3
Fiber Delays
PMN
Del
ay (
ns/k
m)
0 5 10 15
-4-3
-2-1
0Launch NFI, EF
Radius (um)
Inte
nsity
0 5 10 15 20 25 300.
00.
0005
0.00
100.
0015
0.00
200.
0025
0.0
0.2
0.4
0.6
0.8
1.0
Enc
ircle
d F
lux
EF Mask Radius
Simulated DMD
Time (ns/km)
Offs
et (
um)
-0.8 -0.6 -0.4 -0.2 0.0 0.2 0.4
05
1015
2025
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
..
..
.....
.
.
.
....
.............
..
..
..
DMD Mask
Impulse Response
Time (ns)
Pow
er
2.5 2.6 2.7 2.8 2.9
0.0
0.02
0.04
0.06
0.08
0.10
Frequency Response
f (GHz)
|H|
0 5 10 15 20 25
0.0
0.2
0.4
0.6
0.8
SimulationOutputs
o
oo
o
o
oo
oo o o o o o o o o o o
Launch MPD
PMN
MP
D
0 5 10 15
0.0
0.1
0.2
0.3
Fiber Delays
PMN
Del
ay (
ns/k
m)
0 5 10 15
-4-3
-2-1
0
Launch NFI, EF
Radius (um)
Inte
nsity
0 5 10 15 20 25 30
0.0
0.00
050.
0010
0.00
150.
0020
0.00
25
0.0
0.2
0.4
0.6
0.8
1.0
Enc
ircle
d F
lux
EF Mask Radius
Simulated DMD
Time (ns/km)
Offs
et (
um)
-0.8 -0.6 -0.4 -0.2 0.0 0.2 0.4
05
1015
2025
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
..
..
.....
.
.
.
....
.............
..
..
..
DMD Mask
Impulse Response
Time (ns)
Pow
er
2.5 2.6 2.7 2.8 2.9
0.0
0.02
0.04
0.06
0.08
0.10
Frequency Response
f (GHz)
|H|
0 5 10 15 20 25
0.0
0.2
0.4
0.6
0.8
S.Golowich IEEE802.3aeInterim,Ottawa May 23–25,200014
+
+
+
+
++
++
+
+
+
++
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
++
++++
++
+
++
+
+
++
+
+
+
+
+
+++
+
+
++
+
+
+
+
+
+
+
+++
+
+
+
++++
+
++++
+
+
+++
+
+
++
+
+
++
+
+
+++
+
+
+++
++
+
++
+
+
+
+
+
+
++
++
+
+
+
+
++
+
++
+
+
+
+
+
+++
+++
+++
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
++
+
++
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
++
++
+
+
++
+
+++
++
+
+
+
+
+
++
+
+
++
++
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
++
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
++
+
+
+++
+
+
+
+
+
+
++
+
+
+++
+
+
++
++
+
+
++
+
+
+
+
++
++
+
+
++++
++
+
+
+++
+
+
++
++++
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
++
+
+
+
+
+
+
++
+
+
+
+++
+
+
+
+
+
++
++
+
+
+
+
++
+++
+
+
++
+++
+
+
+
++
++
+
+
+
+
+
++
+
+
+
+
++++
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
++
+
+
+
+
++
+
+
+
+++
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
++
+
++
+
+
+
+
++
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
++++
+
++
+
+
+
+
+
+
+
++++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+++
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+ +
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
++
+
+
+
+
++
+
+
++
+
++
+
+
++ +
+
+
+
++
+
+
+
++
+
+
+
+++
+
+
+
++++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+++++
+
+
+
++
+
+
+
+
+
+
+
+
+++
+
+
+
++
++
++
++
+
+
+
+
+
+
+
+
++
+
+
+
++
++
+
++
+
++
+
+
+
+
++
+
++++
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
+
++++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
++
+
++
+
+
+
+
++
++
+++
+
+++
+
+
+
+
+
+++
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
++++
+
++
+
+
+
+
+
++
+++
+
++
+ ++
+
+
+++
+
+
+
++
+
+
++
++
+++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+++
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
++
++
+
+
+
++
+
+
+
++
++
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+++
+
+
+
+
+
+
++
+
+
+++
+
+
+
+
+
+
+
++++
++
++
+
++
++
+
+
+
++
+
+
+
+
++
+
++
+
+
+
+
+
+
++
+
+
++
+
+
++
++
+
+
+
+
+
++
+
+
+
++
+
+
+
++
+
++
+
+
+
+
++
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
++
++
+
+
+
++++
+
+
+
+
+
+
+
+
++
+++
+
+
+
+
+
++
+
++
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+ +
+
+
+
+
++
+
+
+
+++++
+
+
+
+
+
+
+
+
+
+
+
+++
++
++++
+
+
+++
++
+
+
++
+
+
+
+
++
+++
+
+
+
+
+
+
+
+
+
+
+++
+++
+
+
+++
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+++
+
+
++ +
+
+
+
+
+
+++
+
+
+
++
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
++
+
+
+
++
++
++
++
++
++
+
++
+
+
+
+++
++
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+++
+
+
++
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+ +
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
++
+
++
+
+
+
++
+
++
+
+
+
+
++
+
+++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
++
+
+
++
+
++
+
+
+
+
+
+
++
+
+
++
+++
+
+
+
+
+
+
++
+
+
+
+
++
+
+++
++
+
+
+
+
+
++
+
+
+
+
++
++
+
+
+
+
+
++
+
++
+
+
++
+
+
+
+
+
++
+++
+
++
+
+
++
++
++
+
+
+
+
+++
+
++ +
++
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
++
++
+
+ ++++
+
+
+
+
+
++
+++
++
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+++
++
++
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
++
+++
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+ ++
++
+
+
+++
+
+
+
+
+
++
++
+
++
+
+
+
++
+
+
++
+
+
+
+
+++
+
+
+
++
++
++
+
+++
+
++
++
+
+++
+
+
++
+
++
+
+
+
+
+
+
++
+
+ +
+
+
++
+
+
+
+
+
+
++
+
++
+
+
+
+
++
+
+++
+
+
+
++
+
++
+
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+++
+
++
+
++
+
+ +
+
+
+
+
+++
+
+
+
+
+
++
++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++++
+
+
+
+
+
+
+
+
+
+
+
++
++++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
++
+++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
++
+
+
++
+
+
++
+
+
+
+
+
+
++
++
++
+
+
++
+
+
++
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+++
++
+
+
++ +
+
+
+
+
+
++
+
+
+
+
+
+
++++++
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
++
+
+
+
++
++
+
+
+
+
+
+
+ +
++
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
++
+
++
++++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
++
+
++
+
+
+
+
++
++
+
+
+
+
+
+
++
+
+
++
+
++
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
++
+
+
+
+
+
++
++
+++
+++
++
+
++++
+
++
+
+
+
+
++
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
++
+++
+
+
+
+
+
+
+
++
+
++++
+++
+
+
+
+ ++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+++
+
+
+
+++
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
++
+
+
+
+
+++ +
+
+
+
+
+
+
+
+++++
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
++++
++
+
++
+
+
+
+
+
+
+
+
+
++
+ +
+
+
++
+
+
+++
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
++
++
+++
++
+
+++
+
+
+
+
+
+
+
+
++
+
+
++
++
+
++
+
+
+
+++
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+++
+
+
++
++
+++
+
+
+
+
++
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+ ++
+
+
+
+++
+
++
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
++
+
+
+
+
+
+
+
++++
+
+
+
++
+
++
+
++
+
++
+
+
+
+++
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
++
+
+
+
+
+
+
++
+
+
+
++
++
+
+
+
++
+
+
+++
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+++
+ +
+
+
++
++
+
+
+
+
++
+
+
+
+
++
+++
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
++
++
++++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
++
++
++
+
+
+
+
+
+
+
+
++
+ +
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+++
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
++
++
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
++
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++++
++
+++
++
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
++
+
+
+
+
++
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
++
+
+
++
+
+
++
+
+
+
+
+++
+++
+
++
+
+
++
+
+
+
+
+
++
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
++
+
++
+
+
+
+
+
+
+
+
++
+
+++
+
+
+++
+
+++
++
++
+
++
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+++
+
+
+
++
+
+
+
++
++
+
+
+
+
+
++ +
+
+
+
+
+++
+
+
+++
+++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++++
+
+
+
+
+
++
++
+
++
++
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
++++
+
+
+
+
+
+
+
+
+++
+
+
+
+++
+
+
+
++
+
+
+
+
+
+
+
+
++
++
+
+
+
++
+
++
+
+
++
+
++
+
+
+
+
+
+
+
+
+
++
+
++
++
+
+
++
+
++
+
+
+
+
+
++
+
+
+
++
+
+
+++
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
++++
+
+
+
++
+
+
+
+
++
+
+
++++
+
+
++
+
++
+
+
+
+
++ +
+
+
++
+++
+
+
++
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+ +
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
++
++
+
+
++
+
+
+
++
+
++
+
+
+
+
++
+
+
+
+++
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
++
+
++
+
+
+
+
+
++
+
+
++
+++
++
+
+
+
+++
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++++
+
+
++
+
++
+
+
++
+
++
++
+
++
+
++
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
++
+
++
+
+++
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
++
+
+
+++
+
+
+
+
+
+
+
+
++
++
+
+
++
+
+
+
+
+
+
+++
+
+
++
++
++
+
+
+
+
+
+
++
+
+++
++
+
+++
+
+
+
+
+
+
+
++
+
++
++
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+++++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+++
+
+
+
+
++
+
+
+
+
++
++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
++
++
+
+
+
+
+++
+
+
+
+
+
+
++
+
+++
++
+
+
++
+
+
+
++
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++++
+
+
+
++
++
++
+
+
+
+
+
+
+
++
+
++
+
+
+
+
++++
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
++
+
+
+++
+
+
+
+
+
++
+
+
++
+
+
++
+++
+
++
+
+
+
+
+
++
++
++
+
+
++++
+++
+
+ ++
+
++
+
+
+
++
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
++
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
++
+
+
+++
++
+
+
+
+
+
+
++
++
+++
+
+
+
+
+
++
++
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+++
++
+
+
++
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
++
+
+++
+
+
+
+
+++
+
+
+
+
+
+
+
+
++
+
+
++
+
++++
++
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+++
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
++
+
++
++
+++
+
+
++
++
+
+
+
+
+
+
++
++
+
+
+
+
++++
+
+
+
++
+
++++
++
+
+
+
+
+
+
+
++
++
++
+
++
+
++
+
+
++++
+
++
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+++++
+
++
+
++
+
+
+
+
+
+
+
++++
+
+
+
+
++
++
++
+
+
+
+
+
++
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
++
+
++
+
++
+
+
+
+++
+
+
+
+
+
+++
+
+
++
+
++
++
+
+
+
+
++
+
+
+
++
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+++
+
+
+
+
++++
+
++
+
++
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
++
+
+
+
+
+++
+
+
++
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+ +
+
+++
+++
+
+
+
++
+
++
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
++
+
+
+
+
+
+
+
+
+
+
+
+
++
++
++
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
++
++
+
++
++
+
+
+
++
+
+
+++++
+
+
+
+
+
+
+
++
+
+
++
+
+
++
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
++++
+
+
+
+
+
+
+
++
+
+++
+
+
+
++
+
+
+
+
+
+
+
+
+
+++
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
++
+
+
+
+
++
+
++
+
+
+
++
+
+
+
++
+
++
+
+
+
+++
+
++
+++
++
++
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+++
+
+
++
+
+
+
+
+
+
+
++++
++
+++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
++
+
+
++++++
+++
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+++
+
++
+
+
++
+
+
+
+
+
+
+
++
+
++ +
++
+
+
++
+
+
+
+
+
++
+
+
+
+
+ ++
+
+
+
++++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
++
+
++
+
+
+
+
+
++
++
+
+
+
+
+
++
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
++
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++++
+
+
+
++
+
+
+
+
+
+
+
+
+++
+
+
++
+
+
+
+
+
+
++
+
+
+
++
+
+
+
++
+
+
+
+
+
++++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+++
+++
++
+
+
+
+
+
+
+
+
++
+
++
+
++
+ ++
++
+
+
+
+
+
++
+
+++
+
+
++
++
+
+++
+++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
++
+
+
++
++
+
+
++
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
++
+
++
+
+
+
+
+
+
+++++
+
+
+
+
+++
+
+
+
+
++
+
+
+
+
+
+
+
+
+++
+
+++
++
++
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+++
++
+
+
+
+
++
++
+
++
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+ +
++
+
+
++
+
+
+
+
+
+
+
+++++
+
++
+
+
+
++
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
++
++
+
+
+
+
++
+
+
+
++
++
+
+
+
++
+
++
+ +
+
+
+
+
++
++
+
++
+
+
+
+
+
+
+
++
+
+++
+
++
+
+
+
+
+
++++
+
+
+
+
+
+
+
+
+
+
+
+
+++++
+
+
+
++
+++
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
++
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
++
+
+
+
+
++
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
++
++
+
+
+
+
+
++
++
++
+
+
+++ +
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
++++
+
+
+++
++
++
++
+
+
+
+
+
+
+
+
++
+++++
++
+
++
+
+
+
+
+
+
+
+
++++
+
+
+
+
++
+
+
+ +
+++
+
+
+
+
+
++
+
+
+
+++
+
+
++
+
+
+
+
+
+
++
++
+
+
+
++
+
+
+
+
++
+
+
+
++++
+
+
+
++
++
+
+
++
+
+
+
+
++
++
+++++
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+++
+++
+
++
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+++
+
+
++
+
++
+
+
++
+
++
+
+
+
+
+
+++
+
+
+
++
++
+
+
+
+
+++
+++
++
++
+
+
+
+
+
+
++
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+++
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+++
+
++
+
+
+
+
+
+++
+
+
++
+
+
+
+
+++
+
+
++
+
+
++
+
+
+
+++
++
+
+
++
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+++
+++
+
+
+
+
++
+
++
+
+
+
+
+
++
++
++
+
++++
+
+
+
+
+
+
+++
+
+
+
+
+
++
++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
++
+
+
+
+++
++
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+++
++
++
+
+
+
++
++
+
+
+
+
++
++
+
++++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+++
++
+
+
+++
+
++ +
+
+
+
+++
++
+
+
+
+
++
++
+
+
+
+
+
+
++++
+
+
++++
+
+
+
+
++
+++
+
+
+
+
++
+
+
+
+
+
+
+
++
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
++
+
++
+
++
++
++
+
+
+
++
+
+
+
+
+
+
++
++
+
+
+
++
+
++
+
+
+
+++
++++ +
++
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++++
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
++
+
+
+
++
+
++
+
+
+
+
+++
+
+++
+++
+
++
++
+
+
+
+
+
+
+
++
+
+
++
+
+++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
++++
++
+
+
+
+
++++
+
+
+
+
+
+
+
+
+
+
+++
+
++
+
+
+
+
+
++
+
+++
+
+
+
+
++
++
+
+
++
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
++
+
+
++
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
o
o
oo
o
oo
o o
o
o
o
o
oo
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
ooo
o
o
o
o
o
oo o
o
o
oo
o
o
o
ooo
o
oo
o
oo
o
ooo
o
o
o
o
o
o
o
o
oo
oo oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oooo
ooo
o
oo
o
o
o
o
o
o
o
o
oo
o
o
o
oo
o
o
o
ooo
ooo
o
ooo
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
oo
oo
oo oo
o
oo
o
o
oo
o
o
o
oo
o
o
o
o
o
o
o
o
o
oo
oo
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
oo
oo
o
o
oo
o
oo
o
o
oo
o
o
oo
oo
o
o
ooo
o
o
o
oo
oo
o
o
oo
oo
o
o
o
o
o
o
oooo
oo
o o
oo
o
o
o
o
oo
oo
oo
ooo
oo ooo
o
o
oo
oo
o
o
oo
oo
o
o
ooo
o
ooo o
o
oo
o
o
o
ooo
o
o
ooooo
o
o
o
o
oo
oo
ooo
o
o
o
o
o
ooo
oo
oo
ooo
o
o
oooo
o
o
o
oo
o
o
oo
oo
o
o
oo
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
ooo
oo
o
oo
o
o
o
o
o
o
oo
o
oo
o
o
o
o
o
o
o
oo
o
o
o
o
o
o o oo
oo
o
o
o
o
o
o
oo
o
oo
o
o
ooo
o
o
o
o
o
oo
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
oo
o
oo
o
o
o
o
o
oo
o
o
ooo
o
o
oo
oo
o
o
o
o
o
ooo
o
o oo
o
o
oo
o
oo
oo
oo
o
o
ooo
o
o
oo
o
o
o
o
o
o
ooo
oo
o
o
o
o
o
oo
o
o
o
o
o
oo
o
o
oo
ooo
o
o
o
o
o
o
o
o
ooo
o
o
o
o
o
oooo
o
o
oo
oo
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
oo
o
o
oo
o
o
o
oo
o
o
oo
o
o
o
oo
o
o
oo
o
oo o
o
o
o
o
oo
o
oo
oo
o
o
ooo
ooo
o
o
o
oo
o
o
o
oo
o
o
o
o
o
oo
o
o
oo
o
oo
o
ooo
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
ooo
o
o
o
o
o
oo
o
o
o
oo
o
o
oo
o
o
o
o
o
o
o
oo
oo
oo
o
o
o
ooo
oo
o
o
o
o
o
oo
ooo
o
o
o
oooo o
o
o
o
o
o
ooo
o
o
o
o
oo
oo
o
o
o
o
oo
oo
o
o
o
o
o
ooo
o
o
oo
oo
o
o
o
o o
o
o
ooo
oo
o
o
oo oo
oo
o
o
o
o
o
o
ooo
o
o
o
o
o
o
o
o
oo
oo
oo
o
o
o
oo
o
o
o o
o
oo
o
oooo
o
o
o
o o
o
o
o
oo
o
o
oo
o
oooo
o
ooo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
ooo
o
o
o
o
o
o
o
o
o
o
o
oo
oo
oo
ooo
o
o
o
oo
o
oo
o
oo
o
o
o
o
o
o
oo
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
oo
o
o oo
oo
o
o
o
o
o
o
o
o
oo
o
o
o o
o
o
o
o
o
ooo
o
o
oo
oo
o
o
o
o
o
o o
o
o
o
o
o
o
o
oo
o
ooo
oo
oo
o
o
o
oo
o
o
o
o
oo
oo
o
oo
o
o
o
o
o
o
oo
o
oo
o
o
oo
o
o
o
o
o
o
o
oo
ooo
o
oo
o
o
o
o
o
o o
o
oo
o
o
o
o
o
o
o
oo o
o
o o
o
o
oo
o
o
o
ooo
ooo
o
o
o
oo
o
o
o
o
o
o
oo
ooo
o
o
o
o
o
o
o
o
o
ooo
oo
o o
o
o
o
o
o
oo
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
oo
o
o
o
o
oo
o
oo
o
o
o
o
o
o
oo
o
o
o
o
ooo
o
o
o
o
oo
o
o
o
o
o
o
oo
o
o
o
o
o
o
oo
o
o
o
o
o
o
ooo
o
ooooo
o
o
o
o
o
o
oo
o
o
o
o
oo
o oo
oo
oo
o
oo
o
o
o
o
o
o
o
o
oo
o
oo
o
o
oo
o
o
o
oo
oo
ooo
o
oo
o
o
o
o
o
oo
o
oo
o
oo
o
o
o
oo
o
o
o
ooo
o
o
o
o
o
o
o
oo
o
o
o
oo oo
o
o
o
o
oo
o
o
o
o
o
o
o
oo
o
o
ooo
o
o
oo
oo
o
o
o
o
o
oo
oo
oo
o
o
ooo
o
o
o
oo o
o
oo
o
o
o
o
o
ooo
oo
o
oooo
ooo
o
oooo
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
oo
o
o
o
o
o
o
o
o
oo
ooo
o
o
o
o
o
oo
o
o
o
o
o
o
o
oo
ooo
o
o
oo
o
o
o
o
o
o
ooo
o
o
o
o
o
o o
o
o
oo
o
o
o
o
oo
o
o
o
o
oo
o
o
o
o
o
o
o
oo
o
o
o
o
oo
ooo
oo
o
o
o
oo
o
o
o
o
o
o
o
o
o
oo
o
ooo
oo
o
o
o
o
o
o
o
o
oooo
o
o
o
ooo
o
oooo
oo
o
ooo
o
o
o
o
oo
o
o
o
o
ooo
o
oo
o
o
oo
o
oo
ooo
o
oo
ooo
o
oo
o
oo
o
o
o
o
o
ooo
o
o
oo
o
o
o
o
o
o
o
o
o
oo
oo oo
o
o
o
o
o
ooo
ooooo
oo
o
o
o
o
o
o
o
o
o
o
oooo
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
oo
oo
o
oo
o
o
o
o
oo
o
o
o
o
o
oo o
o
o
oo
o
o
o
o
o
o
oo
o
o
ooo
oooo
o
o
oo
o
o
oo
o
o
o
o
o
o
o
o
o
oo
o
o
oooooo
o
o
o
ooo o
oo
o
ooo
o
o
oo
oo
o
o
oo
o
oo
o
o
o
oo
o
ooo o
o
o
o
o
o o
o
o
oo
o
oo
oo
o
oo
o
oo
oo
o
o
o
o
oo
ooo
o
o
o
o
o
ooo
oo
o
o
oo
o
oo
o
o
o
o
oo
o
oo
o
o
o
oo
o
o
oo
oo
o
oo
o
o
oo
oooo
o
oo o
o
o
oo
o
o
o
o
o
o
ooo
ooo
o
oo
o
o
o
o
oooo
o
o
o
oo
o
ooo
o
o
o
o
o
o
o
o
oo
o
o
o
ooo
o
oo
oo
oo
ooo
oo
o
o
o
o
o
oo
oo
o
oo
ooo
oo
oo
o
o
o
o ooooo
o
o
o
o
o
o
o
o
oo
oo
o
oo
ooooo
o
o
oo
o
o
o
o
oo
ooo
o
ooo
oo
oo
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
oooo
o
oo
oo
o
o
o
oo
oo
o
o
oo
o
o
ooo
oooo
o
o
oo
o
o
oo
oo
oo
o
o
oo
o
oo
o
o
oo
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
oooo
oo
o
o
o
o
o
o
o
o
o
oo
o
ooo
oooo
o
o
oo
oo
o
o
o
oo
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
ooo
o
ooo
o
o
o
o
o
o
oo
oooo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
oo
oo
o
oo
o
o
o
ooo
o
oo
o
oo
o
o
o
o
o
ooo
o
o
oo
o
o
oo
oo
o
o
o oo
o
oo
o
o
o
ooo
oo
o
o
o
o
o
oo
o
oo
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o o
o
o
oo
o
o
oooo
o
o
o
ooo
oo
o
oo
o
o
o
o
o
o
o
o
o
ooo
oo
o
o
o
o
o
o
o
o
o
o
ooo
o
oo
o
oo
o
o
o
o
o ooo o
o
o
o
o
o
o
o
o
o
o
ooo
oo
o
oo
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oooo
o
o
o
o
oooooo
ooo
o
o
o
o
o
o
o
o
oooo
o
o
oo
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
oo
oo
o
o
o
ooo
o
o
oo
o
o
oo
oo
oo
o
oo
ooo
o
o
oo
o
ooo
o
oo
o
o
o
o
o
oo
oo
o
oo
ooo
o
o
o
o
o
o
o
o
o
ooo
o
o o
oo
o
oo
o
oo
oo
oo
o
oooo o
o
o
o
oo
o
o
o
o
o
o
o
oo
oo
oo
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
oooo
oo
o
o
oo
o
o
o
oo
o
o
o
o
o
ooo
o
o
oo
o
o
o
o
oo
o
o
o
o
o o
o
o
o
o
oo
o
o
o
oooo
o
o
oo
o
o
o
oo
oo
o
oo
o
o
o
oo
o
oo
o
oo
o
o
oo o
o
o
o
o
o
o
oo
o
o
o
oo
ooo oo
o
o
o
o
oo
o
o
o
o
o
o
o
o
oo o
o
o
o
o
o
o
oo
o
o
o
o
o
o
ooooo
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
oo
o
o
o
o
o
oo
o
oo
o
o
o
o
oooo
o
oo
oo
o
o
o
o
o
o
o
ooo
o
o
o
o
o
o
o
o
o
o
oo
o
oo
o
o
oo
o
o
o
o
oo
o
oo
o
ooo o
oo
o
o
o
ooo
o
ooo
o
o
o
o
o
o
o
o
oooo
o
o
oo
o
oo
o
oo
o
o
o
o
o
o
o
o
o
o
o
oo
o
ooo
oo
o
o
oo
o
o
oo
o
o
oo
o
o
o
o
o
oo ooo
o
o
oo
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
oo
oo
o
o
o
o
ooo
o
o
o
o
o
o
oo
o
oo
o
oo
ooo
oo
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
ooo
o
o
oo
o
o
o
o
o
ooo
oo
oo
oo
o
o
o
oo
o
o
oo
oo o
o
oo
o
o
o
o
o
o
o
o
o
o
oo
oo
o
o
oo
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
oo
oo o
o
oo
o
o o
o
oo
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
ooo
o
o
oo
o
o
o
o
oo
o
oo
o
o
o
o
o
o
o
o
o o
o
# Failures = 0 / 2153
10
15
20
No Connectors
0.2 0.4 0.6 0.8 1.0
++
++
+
+
++
+
++
++ +
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
++
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+++
++
+
++
++
+++
+
+
+
++
+
+
+
+
+
++
+
+
+
+
++
+
+
+
++
+
+
++
+
+
+
+
+++
+
+
++
+ +
+
+
+
+
+
++
+
++
+
+
+
+
++
+
+
+
++
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
++
++
+
+
++
++
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+++
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
++
+
++
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+++
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+ +
++
+
+
+
+
+++
+
++
+
+
+
+
+
+
+
+
+
+
+
+++
+
++
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
++
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
++
++
+
+
++++
+++
+
+
+
+
+
++
+
+
+
+
++
+
+
++
++
+
+++
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+++
++
+++
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++++
+
++
+
+
+
+
+
++
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
++
++++
+
++
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
++++
++
+
+
+
+
+++
+
++
+
+
+
+
+
+
+
+
++
+
++
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+++
+
+
+
++
+
+
+
+
++
++
+
+
+
++
+
++
+
++++
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
++
++
++
+
+ +
+
+
+
+
+
++
+
+
+
+
+
+
+
+++++
+
+
+++
++++
+
++
+
+
+
+
+
++
++
+
+ +
+
+
++
+
++
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+++
+
+
+++
+
+
+
+
+
++
++
+
+
+
+
+
++
+
+
+
+
++
+
++
++
+
+++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+++
+++
++
+
+
++
+
+++
+++
+
+
++
++++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
++
+
+
+
++
+
+++
+
++
+
++
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
++
+
++
+
+
+
+
+
+++
+
+
++
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
++
++
+
+
++
+
++
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+++
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+++
+
+
+++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
++
+
+++
+
+
+
+
+
+
+
++
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+++
+
+++
++++
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
++++
+
+
+
+
+
++
+
+
+
+
++
+
++
+
+
+
++
+
+
+
+++
+
+
+
+
+
+++
+
+
+
++
+
++
+
+
+
+
+
+++
+
++
++
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
++
+
++
+
+
+
+
+
+
++++
+
+
++
+
+
+
+
+
+ +
++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
++
++
+
++
+
+
+
+
+
+
++
+
+
+
++++
+
+
+++
+
+
+ +++
++
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+++
+++
+
+
++++
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
++
+
+++
+
+
+
+++
++
+
+
+
+++
+
+
+
+
+
+
+
+
++
++
++
+
+
+
+
+
+
+
++
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+++
+
+
+
++++
+
++
+
+
+
+
++
+
+
+
+
++
++
+
+
+
+
+ ++
+
+
+
++
+++
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
++
+
+
++
+
+
++
++
+
+
++
+ +
+
+++
+
+
+
++
++
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
++++
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
++
++
+
+
+
+
+
+
++++
+
+
++
+
+
+
+++
+
+
+
++
+
+
+
++
+
++
+
+
+
+
++
+++
++
+
+
+
+
+
+++
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+++
+
+
++
+
++
++++
+
+
++
+
+
+
+
+
+
++
+
++
+
+
+
+
++
+
+
+
+
+
+++
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
++
++
+
++
++
+
++++
+++
+
+
+
+
++
+
++
+ +
+
+
+
+
+
+
+
++
+
++
++
+
++
+
+
+
+
+ +++
++
+
+
+
+
+
+
+
+
+++
+
+
+
+
+++
+
+
+
+
+
+
+
+++
+
+
++
+
++
+
++
+
+
+++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++++
+
+
+
++
+
+
+ +
+
+
+ +
++
+
+
++
+
+
+
++
+
++
++
++
+
+
+
+++
++
+
+
+
+
+
+
+
+
++
+
++
+
+
+++
+
+
+
+
++
+
++
+
+
+
+
+
++
+
++++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
++
+
++
++
+
+
+
++
+++
++
+
+
+
+
+
+
++++
+
+
+
+
++
+
++
+
+++
+
++
+
++
+
+
+++
+
+
++
+
+
+
++
+
+
+
+
++
+
+
++
++
+
+
++
+
+
++
+
+
++
+
+
+
+
+
++
++
+
++
+
++
+
+
++
+
+
+
+
+++
+
+
+
+++
+
++
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
++
+
+
+
++
+
+
++
++
++++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
++
+
+
+
+
+
++++
+
++
+
+
+
++
++
++
++
+
+++
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
++
+
++
+
+
+
++++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+++
++
++
+
+
+
+
+
+
+
++
+
+++
+
+
++
+
+
++++
+
+++
++
++
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+ ++
++
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+++
+
+
+
+
++
++
++
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+++++++
+++++
+
+
++++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+++
+
++++
+++
+
++
+
+
+
+
+
+
+
+
+
+
++
++
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
++
++
+++
+
+
+
++
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
++
+
++
+
+
++++
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
++
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+++
+
++
+
+
+
+
+
+
+
+++
+
++
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+++
+
+
+
++
+
+
+
+
+
+++
+
+
++
+
++
+
+
+
++
+
+
+
++
++
+
+
++
+
++
+
+
+
+
+
+++
++
+
+
+++
+
+
+
++
++
++
+
+++++
+
++
+
++
++
+
+
+
+
+++
+
+
+
+++
+
+
+
+
+
+
+++++
+
++
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
++
++
++
+
+
+
+
+
+
+
+
++
+
+
+++
+
+
+
++
+
+
+
+
+++
+
++
++
+
+
+
+
+
++
++
+
+
+
+++
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
++
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
++
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+++
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
++
+
+
++
++
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+++
++
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
++
+
+
++
++
+
+
+++
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+++
+
+
+
+
+
++
+
++
+
+
+
+
+
+++
+
+
+
++++
+
+
+
++
+
++
++
+
+
+++
++
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+++
++
+
++
+
+
+
+
+
+
+
+
++
+
++
++
+
+++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
++
+
++
+
++
+
+
+++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
++
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
++
+
++
+
++
+
+
+
+
+
+
++
+
+
+
+
++
++
+
+++
+
+
+
+
+
+
+
+
+
++ ++
+
+++
+
+
+
+
+
++
++
+
+
+
+
+
++
+
+++
+
+++
++
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++++
+
+
++
++++
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+++
++
+
+++
++
+++++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
+++
++
+
+
++
+++++++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
++
++
+
+++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
++
+
+
+
+
+
+
+
++
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
++++
+
+++
+
+
+
+
+
+
+
++++
+
+
+
+
+
+ +
+
+
+
++
+
++
+
+
+
+
+
+
+
++
+++
++
+
+
+
+
+
+
+
+
+
+
+
+
++
++++++
+
+
+
+
+
+
+
++
+ +
+
++
+
+
+
++
++++
+
++
+
+
+
+++
+
+
++
+
++
+
+
+
+
+
++
+
+
+
+
++
+
+
+
++
++
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
++
+
+
++
+
+
+++
+
+
++++
+
++
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
++
+++
++
+
+
+
+
++
+
+
+
+
+++
+
+
+
+++
++
+
++
+++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
++++
+
+
++
+
+
+
+
+
+
+
+
++
++++
++
+
++
+
+
+++
++
+
++
+
+
+
+
+
+
+
++
+
+
+
+++
+
+
+++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
++++++
+
++
++
++
+
+
+
+
+
+
+
++
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+++
+
+
+
+
++
+
+++
+
+
+
+
+
+
+
+
+
++++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
++
++
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
++
++
+
+
+
++
+
++
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++++
+
+
+
++
+
++++
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
++++++
+
+
++
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
++
++
+
+
+
+
+
+ +
+
+
+++
+
+
+ +
+
+
++
+
+++
+
+
+
++
++
+
+
++
+
++
+
+
+
+
+
++
+
+
+
+
++
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+++
+
+
+
+++
+
+
+
+
+
++
++ +
+
+
+
+
+
+
++
+
+
++
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+++
++
+
+
+
++
+++
++
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++++
+++
++
++
+
+
++
+
++
++
+
+++
+
+
++
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
++++
+
+
+++
+++
+++
++
+
+
++
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
++++
+
+++
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+++++
+
+
+
+
+
+
+++
+
+
+
++
+
+ +++
++
++
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
++
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
++
+
++
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+++
+
+
++
+
+
++
++
+
+
+++
+
+
+
+
+++
+++
+
++
+
+
+
+
+++
++
+
+
+
+
+
+
+
+
+
++
++
+
++
+
+
+
+
+
+
+
+
+
+
+ +
++
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+++
+
+
+
+
+
+
++++
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
++
++
+
+
+
+
+
+
+
+ +
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
++
+
+
+
+
++
+
++ +
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
++
+
+
+
+
++
+
+++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
++
+++
+
+
+
+
++
+
++
+
+
+
++
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
++
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
++
++++
+
+
+
+
+
++
++
++
+
+
+
+
+
++
+
++++++
+
+
+
++
+
++
++
+
+
+
+
++
++
+
+
+
++
++
+
+
++
++
+
+
++
+
+
+
+
+
+
+
++
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
++
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
++
++
++
+
+
+++
+
++
+
+
++
+
+ ++
++
+
+
++
+
+
+
++
++
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+++
+++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
++
+
+
+
++
+
++
++
+++
+
+
+
+
+
+
+
++++
+
+
+
++
+
+
+
+
+
++
+
+
++
+
+
++
++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
++
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+++
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
++
+
+
+
++
+
+
++
+
+
+
++
+
+
++++
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+++
+
+
+
+
+
+
+
+
++
+
+
++
+
++
+
+
+
+
+
+
++++
+
+
+
+
+
++
+
+ +
+
+
+
++
+
+
+
++
+
+
++
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+++
+
+
++
++
+
+
++
+
+
+
+
++
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
++
+
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
++
+
++
+
++
++
+
++
+
++
+
+
++
++
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+++
+
++
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
++
++
+
+
+
+
+
+
+
++
+
++
+
++
+
+
+
+
++
++
+
+
++
+
++++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
++
+
++
++
+
+
++
+
+
+++
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
++
+
+
++
+
+
+
++
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
++
++
++
+
+
+
+
+
+
+
+
+
+
+++
++
+ ++
+
++
++
+
+
+
+
+
++
+
+
+
+
+
++
+
++
++
++
+
+
+
+
++
+
+
+
+
+
++++
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
++
+
++
+
+
+
++++
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
++
+
+
+
+
++
+
+++
++
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+++
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
++
+
++
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
++
+
++
+
+
++
+
+
+
++
+
+
++
+
+
+
++
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
++
+
+
+
++
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
++
++
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
++++
+++
+
+
+
+
++
++
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
o
o
o
oo
o
o
o
o
o
o
o
o
oo
oo
o
oo
o
o
o
o
o
o
o
o
oo
oo
o
oo
o
o
o
o
ooo
o
o
o
o
o
o
o
o
o
oo
oo
oo
o
o
o
o
o
oo
o
o
oo
o
o
o
o
o
ooo
o
o
ooo
oo
o
o
o
o
o
o
oo
ooo
oo
o
o
o
o
o
o
o
oo
o
oo
o
oo
oo
o
o
oo
oo
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
ooo
o
oo
oo oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
oo
o
oo
ooo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
ooo
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
oo
o
oo
o
o
o
o
o o
o
o
o
o
oo
o
o
oo
o
oo
o
o
o
oo
o
o
o
o
o
o
oo
o
o
oo
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
oo
oo
ooo
o
oo
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
oo
o
o
ooo
o
o
o
oo
ooo
o
oo
o
o
ooooo
o
o
o
o
o
o
oo
o
oo
oo
oo
oo
o
o
o
oo
o
o
o
o
oo
o
o
oo
oo
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
oo
o
o
oo
o
oo
o
o
o
o
o
o
o
o
o
o
ooo
o
o
o
o
o
oo
o
o
o
o
o
oo
o
oo
o
o
o
o
o
o
o
o
o
oo
o
o
oo
o
o
o
oo
o
o
o
o
o
o
oo
oo
o
o
o
o
o
ooo
o
o
oo
oo
o
oo
o
o
o
o
o
oo
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
oooo
o
o
o
ooo
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
ooo
o
oo
o
o
oo
o
oo
o
o
oo
o
oo
o
o
oo
o
o
o
o
o
oo
o
o
o
o
o
oo
o
o
o
o
o
oo
o
oo
o
o
o
o
oooo
o
o
o
ooo
o
o
oo
o
oo
o
o
o
o
o
oo
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
ooo
o
o
oo
o
o
o
o
ooo
o
o
o
o
o
o
o
ooo
o
o
o
o
o
o
ooo
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
ooo
oo
o
o
o
o
o
oo
ooo
o
o
o
o
oo
oo
oo
o
o
o
o
o
o
o
o
o
o
o
ooooo
oo
o
o
oooo
oo
oo
oo
o
o
o
oo
o
oo
o
o
o
oo
o
o
o
o
o
o
oo
o
o
oo
o
o
o
o
o
o
o
o
ooo
o
oo
o
oo
o
o
o
o
o
oo
oo
oo
o
o
o
o
oo
ooo
o
o
o
oo
o
o
ooo
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
oo
o
oo
ooo
o
o
oo
o
ooo
o
o
o
oo
o
o
oo
o
o
o
o
o
o
oo
o
o
o
o
o
o
o o
o
o
oo
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
oo
ooo
oo
o
o
o
o
o
oo
ooo
o
o
o
o
o
o
o
o
o
o
ooo
o
o
o
o
o
o
o
oo
oo
oo
oo
o
o
o
o
o
oo
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
oo
o
o
o
o
oo
o
o
o
o
oo
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
oo
o
o
o
o
o
ooo
o
o
o
o
o
o
o
oo
oo
o
o
o
o
o
o
ooo
oo
o
o
o
o
o
o
o
oo
o
o
oo
oo
o
o
o
oo
o
o
ooooo
o
o
o
o
ooo
oo
o
o
o
oo
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
oo
o
o
o
o
o
o
o
o
oo
o
o o
o
o
o
ooo
oo
o
o
o
o
o
o
o
o
o
o
o
oooo
o
o
o
ooo
oo
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
oo
o
o
ooo
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
oo
o
ooo
o
o
o
o
o
o
o
o
o
o
oo
o
o
oo
o
o
o
ooooo
oo
o
oo
oo
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
oo
oo
o
oo
oo
o
oo
o
o
oo
o
o
oo
o
o
oo
o
o
ooooo
oo
o
oo
oo
o
o
o
o
o
o
o
o
o
oo
o
oo
o
o
o
o o
o
oo
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
ooo
o
ooo
o
o
o
o
o
o
o
o o
o
o
o
o
oo
o
o
o
o
oo
o
o
oo
oo
o
ooo
ooo
o
o
o
oo
ooo
o
o
oo
o
o
oo
o
o
o
ooo
o
oo
o
o
oo
o
o
o
o
o
oo
o
oo
o
o
oo
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
ooo
ooo
o
o
o
o
o
oo
o
o
o
o
o
o
o
oo
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
ooo
o
oo
o
oo
o
o
o
oo
o
o
ooo
o
o
o
oo
o
o
o
oo
o
o
o
oo
o
o
oo
o
oo
o
o
o
o
o
oo
oo
oo
o
o
oo
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
oo
o
ooo
o
o
o
o
o
oo
oo
oo
o
o o
o
ooo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oooo
o
o
o oo
o
oo
o
o
o
o
oo
oo
oooo
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
oo
oooo
o
o
o
oo
oo
o
o
oo
oo
o
o
o
o
o
oo o
oo
o
o
o
o
oo
o
ooo
o
oo
oo
oo
oo
o
o
o
o
o
o
o
oo
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
oo
o
o
oo
o
ooooo
o
o
o
oooo o
oo
o
o
o
oo
o
o
o
o
o
o
o
o
o
o oo
o
o
o
o
o
oo
o
o
oo
o
o
o
o
oo
ooo
o
o
oo
oo
oo
o
o
o
o
o
o
o
o
o
o
oo
o ooo
o
o
o
oooo
oo o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
oo
oo
o
o
oo
o
oo
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
ooo
o
o
o
o
oo
o
oo
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
ooo
o
o
o
o
o
o
o
o
o
ooo
o
o
o
o
o
o
o
oo
o
o
o
ooo
o
o
o
o
o
o
oo
o
oo
oo
oo
o
o
o
ooo
ooo
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
oo
o
o
o
o
o
o
o
o
oo
o
ooo
o
o
oo
o
o
o
o
o
o
oo
o
o
o
o
oo
o
o
oo
o
o
oo
o
o
o
oooo
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
oo
o
oo
oo
o
o
o
o
ooo
oo
o
o
oo
o
o
o
o
o
ooo
o
oo
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
oo
oo
o
o o
oo
oo
o
o
o
oo
oo o o
o
o
o
oo
o
o
oo
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
ooo
oo
oo
o
oo
o
oo
o
o
oo
o
oo
o
o
oo
o
o
oooo
o
o
o
o
o
oo
o
o
o
o
o
o
ooo
o
o
o
o
o
o
o
o
o
o
oo
o
oo
o
o
o
oo
o
o
o
o
o
o
oo
o
o
o o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
oo
o
o
o
o
o
ooo
o
o
o
o
o
o
ooo
o
o
o
o
o
o
ooo
ooo
oo
o
oo
o
o
o
o
o
o
o
oo
ooo
o
oo
o
o
o o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
oo
o
oo
o
o
o
o
oo
o
o
o
o
o
o
oo
o
ooo
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
ooo
o
oo
o
oo
o
o
o
o
o
o
o
o
o
oo
o
o
o
oooo
o
ooo
o
o
oo
o
ooo
o
o
o
o
oo
o
o
oo
oo
o
o
o
o
o
oo
o
oo
o
o
oo
o
o
oo
o
o
ooo
ooo
o
oo
oo
o
o
o
o
oo
o
o
o
o
o
oo
oo
oo
o
o
oo
o
o
oo
o
o
o
o
oo
oo
o
o
o
oo
o
o
o
oo
oo
o
o
o
oo
o
o
o
oo
o
o
o
o
o
oo
o
o
o
oo
o
o
o
o
o
o
o
o
o
ooo
o
o
o
o
o
o
o
o
oo
o
o
o
o
oo
o
oo
o
ooo
o
ooo
oo
o
o
o
o
o
oo
o
o
o
o
oo
o
o
o
o
o
oo
o
o
o o
oo
ooo
o
oooo
o
o
o
oo
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
oo
oo
oo
o
o
o
o
o
o
o
oo
o
oo
o
o
o
o
o
o
o
oo
o
o
oo
o
oo
o
o
o
oo
o
o
oo
o
o
o
o
o
o
o
o
ooo
o
o
o
o
ooo
o
o
o
o
o
oo
o
o
oo
o
oo
o
oo
o
oo
o
o
oo
o
oo
o
o
o
o
o
o
ooo
oo
o
# Failures = 2 / 2062
1--300--1
0.2 0.4 0.6 0.8 1.0
+++
+
++
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+++
+
+
+
+
+
+++
+
+
+
+
+
+
+
+++
+
+
++
++
+++
++
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+ ++
+++
+
++
+
++
+
+
+
+
++
+
++
++
+
+
++
+
+
+
+
+
++
+
++
+
+
++
+
+
+++
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
++
+
+
++
+
+
+
+
+
++
++
++
++
+
++
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
++
++++
+
+
++
+
+
+
+
++
+
+
+
+
+
++
+
+
++
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+++
++
+
+
+
+
++
++++
+
++
+
+
+
+
++
+
+
+
+
++++
+
+
+
+
+++
+
+
+
+
++
+
++
++
+
+
++
+
+
++
+++
+
+
+++
+
+
+
+
+
+
++
+
+
++
+
+++
+
+
+
++
+
+
+++
+
+
+
+
+
+
++
+
++
+
+
+
++
+
+
+
+
++
+++
+
+
+
++
+
+
++
+
+
+
+
+
+++
+
++
+
+
+
+
+
+
++
+
++
+
++
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
++
+++
+
+
+
+
++
+
+
+
+
+
++
+
+
+++
++
++
+
+
++
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
++++
+
++++
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
++
++
+++
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+ +
+
+
+
++
++
+
++
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+ ++
+
++++
+
++
++
+
+
+
+++
+
+
+
+
+
++
+
++
+
+
+
++ +
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
++
+
+++
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+ ++
+
++
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
++
+++
+
++++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
++
++
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
++
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
++++
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++ ++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+++
+
+
+
+
+
+
++
++ +
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+++
++
+
+
+
+
+
+
+
+
+ +
+
+
+++
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
++
+
++
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++++
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+++
+
+
+
++
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
++
+
+++
+ +
+
+++
+++
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
++
++
+
++
++
+
+
+
+
+
+
+
++
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
++++++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
++
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+++++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
++
++
+
+
+
+
+
++
+
++++
+
++++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
++
+
++
+
+
+
+
+
+++++
+
+
++
+
++
+
++++
+++
++
+
++
+
+
+
++
+
+++
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
++
+
+
+
++
+
+
+
++
+
++
++
+
+
+
+
+
+
+
+++
+
++
+
+ +
+
+
+
+
+
+
+
+
+++
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+++
+
+
++
++
+
+
++
+
+
++
+
+
++++
++
+
+
+
+
+++
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
++++
+
+
++
++
+
+
+
+
+
++
+
+
+
+
++
++
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
++
+
++
+
++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
++
++
+
+++
+
+
+
+++
+
+
++
+
+
+
+
+
+
++
++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
++
++
+
+
+
+
+
+
++
+
+
+
++
+
+
+
++
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+++
++++
+
+
+
+
+
+
+
+
+
+
+
+
++++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++++
+
+
+
+
+++
++
+
+
+
+
+
+
+
++
+
+++
+
+
+
+
+
++
+
++
+++++
+
++
++
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+ +++
++
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
++++
+
+
+
+
++
++
+
+
+
+
++
++
++
++
+
+
+
+
+
+
+++
+
+
++
+
++
+
+
+
+
+ ++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+ +
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++++
++
++
++
+
++
+
+
++
++
+
+++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
++
+
+
+
+
+
+
+++
++
++
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
++
++
+
+ +
++
++
+
+
+
+
+
+
+
++
+
+
+
+++
+
+
++++
+
+
+
+
+
+
++++
+
++
+++
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+++
++
+
+
+
++
+
+
++
+
+
+
+
++
+
+
+
++
+++
++
++
+
+
+
+
+
+
+
+
++
+
+
++
+
++
+
++
+
++
+
++
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+++
+
++
+
++
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
++
++
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+++
+
++
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+ ++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++++
+
+
+
+
+
+
+
++++
++
+
+
+
+++
+
+
+
++
+
+
++
+
+
+
++
+
+
++++
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++++
+
+
+
+++
+
++
+
+
+
++
+
+
+
+
+
+
+
+++
+
+
+
+
+
+ ++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++++
+
+
++
++
+
+
++
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
++
+
+
+
+
++
+
+
+
+
++
+
+
+
++
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
++
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
++
+
++
+
+
+
+
++
+
+
+
+
+
+
++
+
++
++
+
+
+++
+
+
+
+
++
++
+
++++
+
+
++
++
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
++
++
++
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++++
+
+
+
++
+
+
+
+
+
+ +
++
++
+
+
+
++
+
+++
+
++
+
+
++++
+
+
+
+++
+
++
+
+
+
+
+
+
+
+
+
+++
+
+
+
++
+
+
+
++
+
+
+
++
+
+
+
+
++
++
++
++++
+
+
+
++++
+
+
+
++
+
+
+
++
+
++
+
+
+
+
+
++
+
+
+
+
+
++
+
+
++
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
++++
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+ +++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+++++
+
+
+
+
++
+
++
+
+
+
+++
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+++
++++++
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
++
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
++
+
+
+
++
+
+
+
+
++
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
++
+
++
+
++
+
+
++
+
++
+
+
+
+
+
+++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++++
+
++
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+++
+
+
+
+
+
++
+
+
+
+
+
++
+
+
++
+
+++
+
+
++
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
++
+
+
+
+
+
+
+
+++
+
+
+
++
+++
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+++
+
+
+
+
+
+
+
+
+
++
+
+
++
+++
++
+
+
++
+
+
+
+
++
++
++++
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+++
+
+
+
+
+
+
++
+
+++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
++
+++
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
++
+
++
+
+
+
++
+
++ +
+++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+++
++
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+++
+
+++
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+++++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
++
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
++
+
++
++
++++
+
+
+
++
+
+
++
+
++++
+
+
++
+
+
+
+
+++
+
+
+
+
++++
+
+
+
++
++
+
+
+
+
+++
+
+
+
+
+
+++
+
+
+
+
++
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
++
+
++
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+++
+
+ +
++
+
+
+
+
++ ++
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+++
+
+
+
++
+
+
+
+
+
+
+
++
+++
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++++
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
++
+
++
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
++ +
++
+
+
+
+
+++
+
++
+
+++
+
+
++
+++
+
++
++
+
+
+
+
++
++
+
+
+
++
+
+
+
++
++++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
++++
+
+
+
++
+
+
++
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
++
++
+++
+
+++
+
++
+
+
++
+
+
++
++
+
+
+
+
+
+
+
++
++
+
+
+
+
+
++++
+
+
+++
+
+
++
+
+
+
+
++
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
++++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
++
++
++
+
++
++
+
+
+
++
++
+
++++
+++
+++
+
+
+
+
+
++
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
++
+
+
+++
+
+
++
+
+
+
++
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+ +
+
+
++
+
++
+
+
+
+
++
+
+
+++
+
+
+
++
+
+
+
+
+
++
+
++
+
+
+
+
+
+
++
+
++
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
++
+
+
++
++
+
+
+
+
+
++++
++
++
++
+
+
++
+
+
+
+
+
+
++
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
++
+
+
++
+
+++
+
+
+
+
+
++
+++
+
+
+
+
+++
+
+
++
+
++
++
+
+
+
+
+
+
+
+
+
+++
+++
++
++
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
++
+
+
++
++
+
+
++
+
+
++
+
+
+
++++
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
++
+
+
++
++
+
++
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
++
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
++
+
++++
+
+
+
+
+
++
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+ +
+
+
+
+
+
+
+
++
+
++
+
+
++
+
+
+
++
+
+
+
+
++
+
+++
+++
++
+++
+
+
+
+
+
+
+++
+
++
+
+
+ +
+
+
++
++
+
+
+ +
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+++
+
+
+++
+
+
+
+
+
+++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
++
++
++
+
+
++
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
++
+
++
+
++
+
+
++
+++
+
+
+
+
++
+
++
++
++
+
+
+
+++
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+++
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+++
+
+
+
++
+++
+
++
+++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+ +
+
++
+
++
+
+
++
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
++
+
++
++++
+
+
++
+
+
+
+
++
+
++
+
+
+
+
++
+
+
+
+
+
+++
+
+
+
+
++
+
++
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+++
+
+++
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+++
+
+
+
+
+
+
+
++
+
++
+
+
++
+++
+
+
+
++
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+++
+
+
++
+
+
+
+
+++
+
+
+
++
+
+
+
+
++
++
+
+
+++
++
++
+
+
++
+
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+++
++
+
+++
+
+
+
+
+
+
+
+
+
++++
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
++
+
+
+
+
+++
+
+
++
+
+
+
++
+
+
++
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
++
+
++
+
+
++
+
++
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+++
+++
++
+
+
+
+
++
+
+
+
+
+
+
+
++
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
++
+
+
+
+
+
+
+
+
+
+
++
+
++
++
+
+
+
+
+
++
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
++
+
o
o
o
o
o
o
o
o
o
o
o
o
o
o
ooo
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
oo
o
oo
oo
oo
o
o
o
o
oo
o
o
oo
oo
o
o
o
o
o
oo
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
oooo
o
o
o
o
o
oo
o
o
o
o
o
oooo
o
o
o
o
o
o
o
o
o
o
o
oo
o
oo
o
o
o
o
o
o
o
o
o
oo
o
oo
oo
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
ooo
oo
o
oo
o
o
o
o
ooo
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
oo
oo
o
o
o
o
o
oo
o
o
o
o
o
o
oo
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
oo
oo
o
ooo
o
o
o
ooo
o
o
ooo
o
o
o
o
o
ooo
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
oo
oo
o
o
o
oo
o
o ooo
o
o
oo
o
oo
oo
o
o
o
o
o
o
ooo
o
o
o
o
oo
oo
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
oo
o
o
o
o
oo
o
o
o
oo
o
o
o
ooo
o
o
oo
o
o
oo
o
oo
o
oo
o
oo
o
o
oo
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
oo
oo
o
oo
o
o
oo
o
o
o
o
oo
o
oo
o
o
ooo
ooo
oo
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
oo
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
oooo
o
oo
o
o
o
o
oo
o
o
o o
o
oo
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
oo
oo
o
oo
o
o
oo
o
o
o
o
o
o
oo
o
o
o
o
o
o
oo
o
o
o
o
oooo
o
oo
o
o
o
o
ooo
o
o
o
oo oo
o
o
o
o
o
o
o
o
o
ooo
o
o
o
o
o
o
o
o
ooo
oo
o
o
o
oo
o
o
oo
o
oo
o
o
oo
o
ooo
o
o
o
o
o
oo
o
o
oo
o
o
o
oo
ooo
o
o
o
o
o
o
o
oo
o
o
o
o
oo
o
o
o
o
o
oo
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o o
o
o
o
o
o
o
o
o o
oo
o
oo
o
o
oo
o
oooo
oo
o
o
ooo
o
o
o
oo
o
o
ooo
o
o
o
o
o
o
o
o
oo
o
o
o
o
o o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
ooo
o
oo
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
ooo
o
o
o
o
o
oo
o
o
o
o
oo
o
o
o
o
o
o
ooo
o
o
o
o
o
o
o
o
oo
oo
o
o
o
o
o
o
o
o
o
o
o
oo
oo
o
oo
o
o
oo
o
o
o
o
oo
oo
o
o
oo
o
o
o
o
o
oo
o
o
o
oo
o
o
o
oo
o
o
o
oo
o
oo
oo
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
oooo
oo
oo
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
ooo
o
o
o
o
o
oo
oo
oo
ooo
o
o
o
o
o
o
o
o
o
o
oo
o
oo
o
o
ooo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
oo o
o
o
o
oo
o
oo
o
o
oo
oo
o
oo
o
o
o
o
o
o
o
ooo
o
oo
o
o
oo
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
oo
o
oo
o
o
o
o
ooo
o
o
o
o
o
o
o
o
o
ooooo
o
o
o oooo
oo
o
oo
o
oo
o
o
o
o
o
o
oo
o
o
o
o
o
o
oo
o
o
oo
o
o
o
o
o
o
o
oo
o
oo
o
o
o
o
oo
o
oo
o
o
oo
o
ooo
oo
oo
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
oo
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
oo
oo
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
oooo
o
o
o
o
o
ooo
o o
oo ooo
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
ooo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
oo
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
oo
o
o
o
ooo
o
o
o
o
oo
o
o
o
oo
o
o
o o
o
o
oo
o
o
oo
o
o
oo
o
o
oo o
o
o
oo
o
o
o
o
o
o
o
ooo
o
o
o
oo
o
o
oo
o
o o
o
o
o
o
o
o
oo
oo
o
o
o
o
o
o
o
oo
o
o
o
o
o oo
o
o
o
o
o
o
o
o
o
oooo
o
o
o
o
oo
o
o
o
o
o
oo
o
o
o
o
o
ooo
o
o
o
o
o
o
o
o
o
o
oo
ooo
o
o
oo
o
oo
o
o
o
o
o
oo
o
o
o
o
oo
o
o
o
o
oo
o
o
ooo
o
oo
oo
ooo
o
o
o
o
oo
o
o
o
o
o
oo
o
ooo
o
o
o
o
oo
o
o
o
o
o
o
oo
oo
oo
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
oo
o
o
ooo
o
o
o
o
oo
o
o
ooo
oo
o
o
o
oo
o
o
oo
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
oo
o
o
o
o
o
oo
o
o
o
o
o
o o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
ooo
o
o
o
o
o
oo
o
o
oo
o
o
o
o
o
o
ooo
o
oo
o
o
oo
ooo
o
o
o
o
o
o
o
o
o
o
ooo
o
o
o
o
o
oo
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
ooo
o
o
o
oo
o
o
oo
ooo
o
o
o
o
o
o
oo
oo
o
o
o
o
o
o
o o
o
o
oooo
o
oo
o
o
o
oo
o
o
oo
oo
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
oo
oo
o
ooo
o
oo
o
o
oo
oo
o
o
o
o
o
o
ooo
o
o
o
o
o
oo
o
o
o
o
o
o
o
oo
o
o
oooo
o
o
o
oo
oo
oo
o
o
o
ooo
o
oo
o
o
o
o
o
o
o
o
o
oo
oo
ooo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
oo
oo
oo
o
oo
o
o
o
o
oo
ooo
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
oooo
o
o
o
oooo
o
o
o
oo
o
oo
o
o
o
o
o
oo
oo
o
o
o
o
o
o
o
o
oo
o
o
ooo
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
oo
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
oo
oo
o
oo
o
o
o
o
oo
o
oo
o
o
o
o
o
o
o
ooo
o
o
ooo
o
o
o
o
o
o
oo
o
oo
oo
oo
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
oo
oo
o
o
o
o
o
ooo
o
o
o
o
o
o
oo
o
o
ooo
o
ooo
o
o
o
o
o
oo
o oo
o
o
oo
o
o
o
oo
o
o
o
o
o
o
oo o
o
oo
o
oo o
o
o
o
oo
o
oo
o
oo
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
ooo
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
oo
o
oo
o
o
o o
ooo
o
oo
oo
o
oo
oo
o
oo
o
oo
o
oo
oo
oo
o
o
o
o
o
o
o
o
ooo
o
o
o
oo
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
oo
oo
o
ooooo
o
o
o
o
oo
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
oo
oo
o
oo
o
oo
o
o
o
o
oo
o
o
o
o
oo
oo
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
ooo
o
o
o
oo
oo
o
o
o
o
o
o
ooo
o o
o
o
o
o
o
o
oo
o
o
o
o
o
oo
o
ooo
o
o
o
oo
oo
o
o
o
o
o
o
o
ooo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
oo
o
o
ooo
o
o
o
o
o
oo
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
oooo
oo
o
oooo
o
ooo
o
o
o
o
o
o
o
o
oo
o
o
o
oo
oo
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oooo
o
o
o
o
o
o
o
o
o
oo
o
oo
o
oo
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
oo
oo
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
oo
o
o
o
o
o
o
o
ooo
o
ooo
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
oo
oo
oo
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
oo
oo
o
o
o
o
o
oo
o
oo
o
o
o
o
o
o
o
o
o
o
ooo
o
ooo
oo
o
oo
o
o
o
o
o
o
o
o
ooo
o
oo
o
o
o
oo
o
ooo
oo
o
o
o
o
oo
o
oo
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
ooo
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
oo
o o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
oo
o
o
o
o
o
oo
ooo
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
oo
# Failures = 14 / 1940
10
15
20
1--1--300--1
+
++
+++
+
+++
+
+
+
+
++
+
+
+
+
+
++
+
++
+
+
++
+
+
+
++ +
++
+
+
+
+
+
+
+++
+
++
++
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
++++
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+++
+
+
+
+
++
+
+
+
+
+
+
+
++++
+
+
+
+
+
++
++
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+++
++
+
+
+
++
+
+
++
+
+
+
+
++
+
+++
+
+
+
+
++
++
+
+
++
+
+
+
++
++
+
+
+++
++
+
+
+
+
+
+
+
+
++
+
+++
+
+
+
++++
+
+
+++
+
++
+
+
++
+
+
++
+
+
++
+
++++
+
+
+++
+
+
+
+
+
+
+
++
+
++
+
+
+
++
+
+++++
+
+++
+
++
++
++
++
+
++
+
+
+
++
++
++
++
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
++
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+++
+
+
+
+
+
++
+
+
++
+
+
+
+++++
+
++
+
+
+
+
+
+
++
++
++++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+++
++
+
++
+
+
+
+
++
+
+
++
+
+
+
++
+
+
+
+
++
+
+
++
+++
+
+
+
+
++
+
+
++
+
+
+
+
+ ++
++
+
+
+
+
+
+
+
+
+
++++
+
++
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
++
++
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+++
+
++
+
+
+
+
++
+
+
++++
+
++
+
+
+
+
+++
+
+
+
+
+
+
+ +
+
+
+
+
+
+
++ +
+
++
+
+
+++
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
++
+
+
++
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+++
++++
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+++
++
+++
+
+
++
++
+
+
+
+
+
+++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
++++
++
++
+++
++
+
+
+
+
++
+
+
+
++
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
++
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+++
+
++
+
+++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+++
+
+
+
+++
++
+ +
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
++
++
+
+
+
+
+
+
+
+
++
++
+++
+
+++
+
+
++
+
+
+
+
++
+
+
+
++
+
+
+
+
+++
+
++
+
+
+
+
++
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+++
+
+
+
+++
+
+
+
+
+
+
+
+++
+
++
+
+
+
+++
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
++
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+++
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
++
++
+
+
+
++
+
+
+
+
++
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+++
+
++
+
+ +
+
+
+
+
+
++
+
+
+
++
+
++
+
+
+
++
++
+
+
++++
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+++
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+++
+
+
+
+
+
++
+
+
++
+
+
+
++++
+
++
+
+
+
+
+
+
+
++
+
+++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
++++
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+++
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
++
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
++
++
+
+
+
+
+
+
++
+
+
++
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++++
+
+
+
+
+
+
++
+
++
+
++
+
+
++
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
++
+
+
+
++
+
+
+
++
+
+
+++
+
+
++
+
+
+
+
+
++
+
+
+++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
++
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+++
++
+
+
+
+
+
+
+
++
+
+
+++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+++
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+++
+
+
+
+++
+
+
+
+
++
+
+
+
+
++
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+++
++
++
+
+
+
+
++++
+
+
++
+
+
++
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+++
++
+
+
+
+
++
++
+
++
+
+
+
++
+
+
+
++
+
++
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++ +
+
+
+
+++
+
+
+
+
+
+
+
+
++
+
+
++
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
++
++
+
++
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
++
+++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++++
++
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++++
+
++
+
++
+
+
+
+++
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+++
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+++
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
++
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+++
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
++
++
++
+
+
+
+
+
+
+
++
+
+
+
+
+
++
++
+
+
+
+++
+
+
+
++
+
+++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
++
+
++
+
+
+
++
+
+
+
+
+++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+++
+
+
+
+
+
+
++
+
+
+
+
+++
+
+
+
+
+
+
+
+
++
++
+
++
++
+
++
+
++
+ ++
+
+
+
++
++
+
+
+
+
+
++
+++
+
++
+++
+
++
+
++
+
+
+
+
+
++
+
+
+
+++
+
+
+
++
+
+
+
++ ++
+
+
+
+
+
+
+
+
+
++
+
++
++
+
+
+
+
+
++
++
+
+
++
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
++
+
+++
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
++
+
+
++
+++
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
++
+
+
+
+
+++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
++
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
++
++
+
+
+
+
+
++
+
+
+++
+
+
+
+
+
+
+
+++
+
+
+++++
+
+
++
+++
++
+
+
++
+
+
+++++
+
+
+
+
+
+
+
++
+
+
++
++
++
+
+
+
+
+
+
+
++
++
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+++
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
++
+
++
+
+
++
++
+
+
++++
+
+
++++
+
++
+
+
+
+
++
++
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
++
+
+
+
++
+
++
++
++
+
+
++
+
++
+
+
+
+
+
+ +
++
+
+++
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+++
+
+
+
++
+
+
+
++
+
++
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
++
++
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
++
+
++
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
++
+
+
+
++
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
++++
+
+
+
+
+
+
++
+
+
+++
+
+
+
+
+
+
+
+
+
++
+
++
+
++
+
+
+
+
+
+
+
+
+++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
++++
++
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
++
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
++
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
++
+
+
+
++
+
+
+
+
++
++
+
++
+
+
++
+
+
++
+
+
+
+
++
++
+
+
+
++
+
+
++
++
+
++
+
+
+
+
+
+
+
+
++
+
+
++
+
+
++
+
++
+
+
++
++
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
++
+
+
+
+
+
++
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
++
++
+
++
+
+
+
+
+
+
+++
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
++
+
+
+
++
+
+++
+
+++
+
++
+
+
+
+
++
+
++++
+
+
+
+
+
++
++
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+++
+
+
+
+
++
++
+
+
+ +
++
+++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++++
+
+
+
+++
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+++
+
+
+
+
+
++
+
++
+
+
+
++
+
+
+
+
+
++
+
++
+
+
+
++
++
+
+
+
++
+
+
+
+
+
++
++++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++++
++
+++
+
++
+
++
+
++
+
++
+
+
++
+
+
+
+
++
+
++
+
++
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+++
+
+
+
+
++
+
++
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
++
++
+
+
+
+
++
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+++
+
+
++
+
+
+++
+
+
+
++
+
+
+
++
+
+
+
++
+
++
+
+
++
+
+
+
+
++
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+++
+
+
+
++
++
+
++
+
+
++
++
+
+
+
+
++
++
+
+
+
+
+
+
++
+
++
++
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
++
++
+
+
+
++
+
+
+
+
+
++
++
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
++
+++
+
+
+
++
+
++
+
+
+++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+++
++
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+++++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++++
++
+
+
+
+
+
+
+
+
+++
+
++
+++
++
++
+
+
+++
+
+
+
+
+
+
+
+
++
++
+
++
+
+
+
+
+
+
+
+
+
+
++
+
++++
+
+
+
+
+
++++++
+
++
+++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+++
+
++
+
+
+
+
++
+++
++
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
++
++
+ +
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
++ +++
+
+
++
+
+
+++
+
+
+
+
++++
+
+
+
++
+
++
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+++
+
++
+
++
++
++
+
++
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
++
++
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+++
++
++
+
+
+
+
+++
+
+++
+
+
+
+
++
++
+
+
+
+
+
+
+
+
++
+
+++
+
+
+
+
+
+
++
+
++
+
++++
+
+
+
+
+
+
+
+
+
++
++
+
++
++
+
+
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+++
++
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++++
+
+
+
+
+
+
+
+ ++
+
++
+
+
+++
++
+
++
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
+
++
++
+
+
++
+
+
+
+
++
+
++
+
+
++
+
+
++
++
++
+
++
+
+
+
+
++
+
+
++
+
+
+
++
+
+
++
+
+
+
+
++
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+++
+
++
+
+
+
+
++
+++
++
+
+
+
+
+
+
++
+
+
+
+
++
+
+
++
+
+
+
+
+
++
++
+
++
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
+
++
++
+
+
++
++
+++
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+++
+
++
+
++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+++
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
++
+ ++++
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+++
+
++
+
+
+++
+
+
+
+++
+
+
++
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+++
+
+
++
+++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
++
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+++
+
++
++
+
+
+
+++
+
+
+
+
+
++
+
+
+
+
+
+
++
+
++
+
+
+
++
+
+
+
+
+
++++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+++
+
+
+
++
+
+
+
++
+
++++
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+
++++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
++
+
+
+
++
++
+
+
+
+
+
+++
+
+
+
+
+
++
+
+
+
++
+
++
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+++
+
+
+
++++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+++
+++
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
+
++
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
++
+++
+
+ +
+
+
++
+
+
+
+
++
+
+
+
+
++
++
+
++
++
+
+
+
+
+
+
+
+
+
+
++
+
++
+
+
+
+
+
+
+
+++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+++
++
+
+
+
+
+
+
+
+
++
+++
+
++
+
+
+++
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+++
+
+
+
++
+
+
+
+++
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++++
+
+
++
++
+
+
++
++
+
+
++
+
+
+
+
++
+
+++
+++
+++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+++
++
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
++
+
+
++
+
+
++
++
++++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ++++
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
++
+
++
+
++
+
++
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+++
++
++
+
+
++
+
++
+
+
+
+
+
+
++
++
+
+
+
+
+
+
++
++
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+++
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
++
++
++
+
++
+
++
+
++
+
++
+
+
+
+
+
++
+
+
+
+
+
++
++
+
+
+
++
+
+
+
+
+
+
++
+
+
+++
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+++++
+
+
+
+
+
+
++
++
++
+
+
+
+
+
+
+
+
+
+
++++
++
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
++
++
++
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
++++
+
+
+
+
+
++
+
+
++
+
+
++
+
+
+
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
+
++
+
++
+
+
+
+
+
+
+
+
+
+
++
+++
+
+
+
++
+
+
++
+
+
++
+
+
+
+
+
++
++
+
+
+
+
+
+
+
+
+
++
+
+
++
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
++
+
+
++
+
+
+
+
+
+
+
+
+
++
+
++
++
+
+
+
+
+
+
+
++
++
+
+
+
+
+
++
+
+
+
+
+
+++++
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
++
++
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+++
+
+
+++
+
+
+
+
+
++
+
++
+
+
+++
+
+
++
++
++
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+
+
+
+
+++
+
++
+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
++
++
+
+
++
+
++
+
+
+
++
+
+
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++++
+
+
+
+
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+++
++
++++
+
+
++
++
+
+
+
++
+
+
++++
++
+
+
+
+
+
+
+
+
+
+
+
+
++
++
+
+++
+
++
+
++
+
+
+
++
++
+
++++
++
+
+
+
+
++
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
++
+
++
++
+
+
++
+
+
+
++
+
++
+
+
+
++
++
+++
+
+
++
+
+
++
+
+
++
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
++
+
+
++
+
+
+
++
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
++
+
+
+
+
+
+
++
+
+++
+++
+
+++
+
++
+
+
++
o
o
o
o
ooo
oo
oo
o
o
o
o
o
o
ooo
o
o
o
oo
o
o
o
o
o
o
o
o
ooo
o
oo
o
oo
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
ooo
oo
oo
o
oo
o
oo
oo
o
o
oo
oo
o
o
oo
oo
o
o
o
o oo o
o
o
o
oo
o
ooo
o
o
o
o
o o
o
o
oooo
o
o
o
o
o
o
ooo
oo
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
oo
oooo
o
o
o o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
oo o
oo
oo
o
oo
ooo
o
oo
o
o
o
o
o
o
o
oo
ooo
o
oo
o
ooo
o
ooo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o oo
o
o
o
o
oo
o
o
o
o
o
o
o
oooo
oo
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
oo
o
o
o
oo
o
oo
o
o
o
oo
o
oo
o
o
o
o
o
o
o
o
oooooo
o
oo
o
o
ooo
o
oo
ooo
oo
o
o
o
oo
o
o
oo
o
o
o
o
o
o
o
oo
o
oo
o
o
o
oo
o
o
o
o
o
oo
o
o
o
oo
o
o
ooo
o
oo
o
o
o
oo
o
o
oooo
o
o
o
o
o
oo
o
o
o
o
oo
o
o
o
o
o
o
ooo
o
oo
o
o
o
o
oo
o
o
o
o
oo
o
o
o
o
oo
oo
oo
oo
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o o
o
o
o
o
o
o
ooo
oo
o
o
oo
o
o
oo
o
o
o
o
ooo
o
o
o
o
o
oo
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o o
o
o
o
o
o
o
oo
o
o
o
o
o
oo
o
o
o
oo
o
oo
o
oo
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
ooo
o
o
o
o
oo
o
ooo
oo
ooo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
oo
o
oo
o
oo
o
o
oo
oo o
o
o
o
o
oo
o
o
o
o
oo
o
o
o
oo
ooo
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
oo
o
o
o
oo
o
o
ooooo
o
o
o
o
oo
o
o
oo
o
o
oo
ooo
o
oo
oo
o
ooo
o
o
oo
o
o
o
oo
o
o
o
o
o
o
o
o
ooo
o
ooo
oo
oo
o
o
o
oo
o
o
oo
o
oo
o
oo
o
o
o
o
o
oo
oo
o
o
o
oo
o
oo
o
oo
o
o
o
o
oo
oo
o
o
o
o
o
o
o
o
ooo
oooo
o
o
ooo
o
o
o
ooo
o
o
o
o
oo
o
o
o
o
ooo
o
o
o
o
ooo
o
ooo
o
o
o
oo
oo
o
oo
o
oo
o
o
oo
o
o
oo
o
o
o
o
oooo
o
o
o
o
o
o
o
o
o
o
o
oo
ooo
oo
oo
o
o
o
o
o
o
oo
o
ooo
oo
o
o
o
o
o
o
oo
o
o
o
o
o
oo
o
ooo
oo
o
o
o
o
o
oo
o
o
oo
ooo
o
o
o
o
o
o
o
o
o
ooo
o
o
oo
o
o
o
o
ooo
o
oo
ooo
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
ooo
o
o
o
oo
oo
o
o
o
o
oo
o
ooo
o
o
o
o
ooo
o
o
o
oo
o
oo
o
o
o
o
oo
o
o
o
oo
o
oo
oo
oo
o
o
ooo
o
o
oo
o
oo
oo
o
o
o
o
o
oo
oo
o
oooo
o
oo
oo
oo
o
o
o
o
o
oo
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
oo
o
o
oo
o
o
o
o
o
o
o
o
o
o
oo
oo
o
o
o
o
o
o
oo
o
oo
o
o
o
o
o
o
oo
oo
o
o
o
o
o
o
ooo
o
oo
oo
oo
oo
o
o
o
o
o
o
o
o
o
o
o
oo
oo
o
o
o
o
ooo
o
o
o
ooo
o
o
o
o
ooo
o
o
o
o
o
oo
oooo
o
o
o
o
o
o
o
o
o
oo
oo
o
o
o
o
o
ooo
o
o
o
o
o
o
o
o
o
oo
o
o
ooo
o
o
oo
ooo
o
o
oo
o
o
o
o
o
o
o
ooo
o
o
o
o
o
o
oooooo
o
o
o
o
oo
o
o
o
o
o
o
o
o o
o
oo
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
oo
o
oo
o
oo
o
oo
o
o
o
o
o
o
ooo
o
o
ooo
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
oo
o
o
o
o
ooo
o
o
oo
o
o
oo
o
o
o
o
o
o
o
o
oooo
o
o
oo
o
oo
o
o
oo
o
o
o
o
oo
oo
o
o
o
o
o
o
o
o
o
o
o
oo
oo
o
o
o
o
o
o
oo
o
o
o
o
o
ooo
o
o
ooo
o
o
oo
o
o
o
o
o
oo
o
o
ooo
o
o
oo
oo
o
o
o
o
oo
oo
o
o
oo
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
oo
oo
o
o
o
o
oo
o
o
oo
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
oo
o
o
o
o
o
o
oo
oo
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
oo
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
ooo
o
o
o
o
o
o
oo
oo
o
o
ooo
o
o
o
o
o
o
oo
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o oooo
o
o
oo
o
o
o
o
oo
o
o o
o
o
o
o
o
o
o
o
oo
oo
o
oo
o
o
o
o
oo
oo
o
o
o
o
o
o
o
o
o
o
o
o
oo
ooo
o
o
oo
o
o
o
o
oo
o
oo
oo
o
oo
o
o
o
o
o
oo
o
oo
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
oo
o
oo
o
oo
o
o
o
o
o
o
o
o
o
oo
o
o
o
ooo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
oo
o
o
o
o
o
o
o
oo
ooo
oo
o
o
oo
o
o
o
o
oo
o
o
ooo
o
o
o
oo
o
ooo
oo
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
oo
o
o
o
oo
o
o
oo
oooo
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
oo
o
o
o
oo
oo
oo
o
o
oo
o
o
o
o
o
o
o
oo
ooo
o
o
ooo
o
o
oo
o
oo
o
o
o
o
o
oo
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
oo
o
o
o
o
oo
o
o
o
o
oo
o
o
o
oo
o
oo
o
o
oo o
o
o
o
oo
o
o
o
o
o
ooooo
o
oo
o
oo
o
o
oo
o o
oooo
o
o
o
o
o
o
o
o
oooo
o
o
o
o
oo
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
oo
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
oo
o
o
oo
o
o
oo
oo
oo
ooo
oo
o oo
o
o
o
o
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
ooo o
o
o
o
o
o
o
ooo
o
ooo
ooo
oo
o
oo
o
oo
oo
o
o
o
o
ooo
o
o
o
o
oo
o o
o
oo
o
o
oo
o
o
o
ooo
o
o
oo
o
o
o
oo
o
o
ooo
o
o
o
oo
o
oo
o
o
ooo
oo o
oo
o
o
o
o
oo
oo
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
oo
oo
o
o
o
o
o
o
o
o
o
o
ooo
o
ooo
oo
o
o
ooo
o
o
ooo
o
o
o
o
o
oo
ooo
ooo o
o
o
o
o
o
o
oo
o
o
oo
o
o
o o
oo
o
oo
o
o
oo
oo
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
oo
o
o
o
o
o
o
ooo
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
oo oo
o
oo
oo
o
o
o
o
o
o
oo
o
o
o
o
oo
oooo
oo
oo
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
oo
o
o
oo
o
o
oo
oo
o
o
o
o
o
o
o
o
o
o
o
oo
o
o
o
ooo
o
oo
o
o
o
oo
oo
o
o
o
o
o
o
oo
o
o
oo
o
o
o
o
o
o
o
ooo
oo
o
o
o
o
o
o
o
o
oo
o
o
o
o
o
oo
oo
o
o
ooo
o
o
o
o
o
o
o
oo
o
o
o
o
o
o
oo
oo
oooo
o
o
ooo
o
o
o
o
oo
oo
o
o
oo
o
o
o
oo
o
ooo
o
o
o
o
o
oo
o
o
o
o
o
o
o
ooo
o
o
o
o
o
o
o
o
o
oo
o
o
o
o
ooo
o
o
o
o
o
o
o
o
o
o
o
o
o
oo
o
oo
o
oooo
o
oo
oo
o
o
o
oo
oo
oooo
o
o
o
o
o
o
oo
o
ooooo
oo
oo
o
oo o
o
o
# Failures = 7 / 2138
1--200--100--1
DMD width in mask (ns/km)
Tra
nsm
itter
86%
EF
Rad
ius
(um
)j
15um DMD Mask Width; Statistical Connector Model
1 GHz
2
3
4
5
6
Passing BW7
8
9
10
11
12
13
14
15
S.Golowich IEEE802.3aeInterim,Ottawa May 23–25,200015