ChIP-seq Inputs in Differential Enrichment Christoffer Flensburg and Alicia Oshlack
1. Choosing background fraction α� 3. Use inputs at all? �
ACKNOWLEDGMENTS�
2. Choosing inputs Bi�
Summary��
Aim: Improving input usage in Differential Enrichment Analysis.
1. Choice of background fraction α.�
2. Choice of input Bi.�
3. Should the input be used at all? �
Aim: Improving Differential Enrichment Analysis �
Sir = Tir !!BirS = True ChIP enrichment. T = Total number of measured reads in ChIP. B = Number of reads in background sample. α = Fraction of background reads in ChIP. i = sample r = region of genome
Differential enrichment analysis of histone modifications between groups of ChIP-seq samples is made considerably more involved due to large and varying background components in the ChIP-seq read density. Our aim is to: • Model the total number of reads over a
region of interest r in sample i (Tir) as a superposition of a background (αBir) and an enrichment component (Sir).
• Subtract the background using an input Bi scaled by α ≤ 1.
• Study choices of α and Bi through FDRs and standard deviations from a Limma-Voom pipeline.
Find bestαand Bi�
In this section we examine a differential enrichment analysis on data from the NIH roadmap epigenomics project. Brain is known to have a different epigenetic profile to liver1, and the H3K36me3 mark over the gene body (r) provides large numbers of reads on many genes. Each tissue has 3 replicates Tir, with i going from 1 to 6, and each replicate has a corresponding input sample that we use as background Bir. We run the DE pipeline on Sir, and plot how the number of differentially enriched genes (FDR < 0.05) (fig a) and standard deviations vary with α (fig b).
α0.0 0.2 0.4 0.6 0.8 1.0
500
1000
1500
2000
#(FD
R < 0.05)
In this example, the largest statistical power is reached at a background fraction α well below 1, and a full input subtraction (α = 1) adds so much noise that only about 20% of the DE genes at α = 0.28 remain significant. This loss of power at full subtraction is a recurring behaviour, and can also be seen in section 2 and 3.
●
●
●
●
●
●
●
●●
●
●●
●●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●●●
●
●●●●
●
●●●
●●
●●●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●
●
●●●●●●●●
●●●●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●●●●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●●●
●
●●
●●
●
●
●●●●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●●
●●
●
●●●
●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●●
●●●
●
●
●
●
●
●
●
●●●
●●
●
●
●
●
●
●
●
●●●●●
●
●●
●
●●●●●●●●●●●●●●●●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●●
●
●
●
●●
●●●
●
●
●●
●
●●
●●●
●
●
●●●
●
●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●●●● ●●
●●●
●
●●●
●●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●●●●●
●
●●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●●
●
●●●●●●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●●
●●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
● ●
●
●
●
● ●●●
●
●●
●
●●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●●●
●●
●●●
●
●
●●
●●●●
● ●●
●
●
●●
●
●
●
●●
●●●●
●
●
●●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●
● ●●●
●
●●
●
●●● ●
●
●●●●●●
●
●●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●●●●
●
●
●
●
●
●●
●
●
●●
●
●●●●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●●●●●
●●●●●●●●●●●●●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●●
●
●●●●
●
●
●●●
●
●
●
●
●
●●●●●●●
●
●
●●●
●
●
●
●●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●●●●●●●●●
●●
●
●
●
●●
●
●●●
●
●●●●●●●●
●
●●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●●●●
●●●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●●
●
●● ●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●●●●● ●●
●
●
●
●●●●●●●
●●●
●
●●●●
●●
●●●●
●
●
●
●
●
●
●
●
●●
● ●●
●
●●
●
●●●● ●●●●●
●●
●
●
●
●●
●
●●●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●●●
●●
●
●
●●
●
●
●●●
●
●●●●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●●●
●●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●●●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●●●
●
●
●
●
●●
●●●●●●●●
●●●●●●●●●●
●
●●
●●
●
●
●
● ●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●●
●
●●
●
●●●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●●
●
●
●
●●●
●●●
● ●●●● ●●●
●
●
●
●
●
●
●
●●●● ●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●●●
●
●
●
●
●
●
●● ●●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●●
●●
●
●
●
●
●
●
●●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●●●
●●
●
●●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●
●●
●
●
●●●●
●
●
●
●
●
●●●●●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●●
●
●●●
●●● ●
●
●
●●
●
●●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●
● ●
●●●●
●●●●
●
●●●●
●●●
●
●
●●●
●
●
●
●
●●
●
●
●●
●●●
●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●●●
●●
●●
●●●●
●
●
●●●
●●
●
●●●
●
●
●
●
●●●
●
●
●●
●●●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●
●●●●●●
●●●
●
●
●●
●●
●●
●●
● ●
●
●
●
●●●
●
●
●
●●●
●
●●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●●●●
●●
●
●
●
●●
●●●●
●●●●
●●●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●●
●●●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●●●●●●●●
●●
●
●
●
●●●●●●
●●●
●
●●●●
●
●●
●
●
●●
●●●●●
●●●
●
●
●
●●●●
●
●
●●
●
●
●
●
●
●●●●
●
●
●●●
●
●●●
●
●
●●●●
●
●●●● ●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●●
●●
●
●
●●●
●
●●
●
●
●
●
●
●●●●●●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●●
●●●
●
●
●
●●
●
●●
●
●
●●●
●
●●●
●●●●
●●●
●
●
●
●
●
●
●
●
●● ●
●●
●
●
●●
●
●
●●
●●
●
●●
●● ●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●●●
●
●
●
●
●●●
●
●
●●●
●
●
●
●
●●●●●●
●
●●
●●
●●
●
●
●
●
●
●
●●●●●●
●
●
● ●●
●
●
●●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●●
●
●●
●●●
●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●●
●
●
●
●●●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●
●
●●
●●●●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●
●●●
●
●
●
●
●●
●
●●●●
●
●●●
●
●
●
●●
●
●●●
●
●
●
●●
●
●
●●
●
●●●●
●
●
●
●●●●●●
●
●●
●
●●●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●●●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●●●●
●
●●
●●●
●●●
●
●
●
●
●●●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●●●●
●
●
●●●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●●
●
●
●
●●●●●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●
●
●
●
●
●
●●●●●●
●●●
●
●●●●●●●●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●●●●
●
●
●
●
●●●●
●
●
●
●
●
●
●●●
●
●●●●●●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●●
●
●
●●●
●●
●
●●
●
●●
●
●
●●
●
●
●●
● ●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●●●
●●●
●
●
●●●●●
●
●●●●
●
●
●
●
●●
●
●
●●●●
●●●
●
●
●●
●
●●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●●●●
●
●●
●
●
●
●
●●●●
●
●
●
●●
●
●
●●●
●●●●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●●
●
●
●●●
●
●●●●
●
●
●●●●●
●
●
●●
●
●●●
●
●●
●●●
●
●
●●●●
●●●
●
●
●
●
●
●
●●
●
●
●●
●●●
●
●●●●●
● ●●
●●
●●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●●
●
●●●
●
●
●
●
●●●
●
●
●●
●
●●
●
●
●
● ●●●
●
●
●
●●●
●
●
●
●
●●
●
●●●
●
●●●●●
●●●●
●
●
●●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●●
●●
●●
●
●
●
●
●
●
●
●●●●●●●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
● ●●●
●
●
●
●
●
●●
●
●
●●●● ●
●
●
● ●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
● ●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●●
●●
● ●
●
●
●
● ● ●●●●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●●
●
●●● ●
●
●
●
●●●
●
●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●●
●
●●●
●●● ●●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●
●● ●
●
●
●
●●●●●●●●
●●●●
●
●●
●
●●
●
●
●
●
●
●
●
●●●● ●●
●● ●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●
● ●
●
● ● ●
●
●●
●●
●
●
●● ●●
●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●●
●●
●
●●
●
●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●●
●●●
●
●
●
●
●
●
●
●●●
●●
●
●
●
●
●
●
●
●●●●●
●
●●
●
●●●●●●●●●●●●●●●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●●
●
●
●
●●
●●●
●
●
● ●
●
●●
●●●
●
●
●●●
●
●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
● ●●
●
●●●●
●
●●●
●
●
●
●● ●●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●●●●●
●
●●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●●
●
●●●●●●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
● ●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
● ●●●
●
●●
●
●●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
● ●
●●●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●
● ●●
●●
●●
●
●
●
●●
●●●●
●●●
●
●
●●
●
●
●
●●
●●●●
●
●
●●
●
●
●
●
●●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●●●
●
●●
●
●●● ●
●
●●●●●●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●● ●●
●
●
●
●
●
●●
●
●
●●
●
●●●●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●● ●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●●
● ●●●
●●
●● ●
●● ● ●●●● ● ●●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●●●
●
●●●●
●
●
●●●
●
●
●
●
●
●●●●●●
●
●
●
●●●
●
●
●
●
●
●
●
●●●
●
● ●●●
●
●●
●●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●●
●
●
●●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●● ●●●●●●●●
●●
●
●●
●●
●
●● ●
●
●●
●●●
●●●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
● ●
●●●●
●●●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●●●●●●●
●●●●●●●●●●
●
●●
●
●●●●
●●
●●●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●
●
●●
●
●
●●●●●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●●●
●●
●
●
●●
●
●● ● ●
●
●●●●●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●●
●●●●●
●●●
●
●●
●●
●● ●●
●
●●
●●
●●●●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●●●
●●●●●
● ●● ●●●●● ●●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●
●●●
●
●●
●
●●●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●●
●●●
● ●●●● ●●●
●
●
●
●
●
●
●
●● ●●●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●●●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●●●●
●●
●
●●●
●
●
●
●
●
●●●●●
●
●
●
●
●
● ●
●●
●
●
●
●
●●
●
●
●
●
●
● ●●●●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
● ●
●●
●
●
●
●
●●
●
●●●
●
●●●●●●
●
●
●
●●
●
●●
●●
●
●●●
●
●
●●
●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●●●●
●●●●
●
●●●
●
●●●
●
●
●●●
●
●
●
●
● ●
●
●
●●
●●●
●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●● ●●
●●
●
●
●●●●
●
●
●●●
●●
●
●●●
●
●
●
●
●●●
●
●
●●
●●●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●
●●●●●●
●●●
●
●
●●
●●
●●
●●
●●
●
●
●
●●●
●
●
●
●●●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●●
●●
●
●
●
●●
●●●●
●●●●
●●●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●●●●●●●●
●●
●
●
●
●●●●●●
●●●
●
●●●●
●
●●
●
●
●●
●●●●●
●●●
●
●
●
●●●●
●
●
●●
●
●
●
●
●
●● ●●
●
●
●●●
●
●● ●
●
●
●●●●
●
●●●
●
●
●
●●
●
●
●●
●
●
●
●●
●●
●
●
●
●●
●●
●
●
●●●
●
●●
●
●
●
●
●
●●●●●●
●
●●
●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●●
●
●
●●
●●
●
●
●
●
●●
●
●●
●
●
●●●
●
●●●
●●●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●
●
●
●●
●
●
●
●●
●●●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●●
●
●
● ●●
●
●
●
●
●●●●●●
●
● ●●●
●●
●
●
●
●
●
●
●●●●●●
●
●●●●
●●
●●
● ●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●●
●
●●
●●●
●●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●●
●
●
●
●●●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●● ●
●
●
●
●●●
●
●●●
●●
●
●●
●
●
●
● ●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
● ●
●
●
●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
● ●
●
●
●●
●
●●
●●
●
●
●
●●●●●●
●
●●
●
●●●●●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●● ●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●●●●
●
●●
●●●
●●●
●●
●
●
●●●
●●●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●●
●
●●
●
●
●
●●●●●●●●●●●
●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
● ●●●●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
● ●
●
●●●●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●
●
●
●
●
●
●●●●●●
●●●
●
● ●●● ●●●●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●● ●●
●
●
●
●
●●●●
●
●
●
●
●
●
●●●
●
●●●●●●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●●
●
●
●●●
●●
●●●
●
●●
●
●
●●
●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
● ● ●
●●●
●
●
●●●●●
●
●●●●
●
●
●
●
●●
●
●
●●●●
●
●●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
● ●
●●●●
●
●●
●
●●
●●●●●
●
●
●
● ●
●
●
●●●
●●●●●●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●●
●
●
●
●●
●
●●●●
●
●
●
●●●●
●
●
●●●
●●●
●
●●
●●
●
●
●
●●●●
●●●
●
●
●
●
●
●
●●●
●
●●
●●●
●
●●●●●
●
●
●
●●
●●
●
●●
●
●
●
●
●●
●●●
●●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●●
●
●●●
●
●
●
●
●●●
●
●●●
●
●●
●
●
●
●●●
●
●
●
●
●●●
●
●
●●
●
●
●
●●●
●
●●●●●
●●●●
●
●
●●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●●
●●
● ●
●
●
●
●
●
●
●
●●●●●●●
●●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●●
●
● ●●●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●●●●
●
●●●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●●●
●●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●●●●
●
●●●●
●
●●●
●●
●●●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●
●
●●●●●●●●
●●●●
●
●●
●
●●
●
●
●
● ●
●
●
●●
●●●●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●●●
●
●●
●
●
●
●
●●●●
●
●
●
●
●●
●
●●
●
●
●
●
●●
●●●
●
●
●
●●
●●
●
●
●
●
●●
●●●●
●
●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●●●
●●
●
●●
●
●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●●●
●
●
●
●
●
●
●
●●●●● ●
●
●
●
●
●
●
●●●●●
●
●●
●
●●●●●●●●●●●●●●●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●●
●
●
●
●●
●●●
●
●
●●●
●●
●●●
●
●
●●●
●
●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
●●●
●
●
●●●
●
●●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●●●●●
●●●
●●
●
●
●
●
●
●●
●
●
●
●●●
●●●●●
●●●●●●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
● ●●●
●
● ●
●
●●
●
●
●● ●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●●●
●●
●●●
●
●
●●
●●●●
●●●
●
●
●●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●●●
●
●●
●
●●● ●
●
●●●●●●
●
●● ●
●
●
●●●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●●
●
●
●●
●
●●●●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●●●●●
●
●●●●●●●●●●●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●●
●
●●●●
●
●
●● ●
●
●
●
●
●
●●●●●●
●
●
●
●●●●
●
●
● ●●
●
●●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●●●●●●●●●
●●●
●
●
●
●
●
●●●
●
●
●
●●
●
●●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●●●●
●●●
●
●
●
●
●●
●
●
●
●●
●●
●●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●●●
●
●●●●●●●● ●
●
●
●
●●●●●●●
●●●
●●●●●
●● ●●●●
●
●
●
●●
●
●
●
●●
●●●
●
●●
●
●●
●
●
●●●●●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●●
●
●
● ●
●
●●●
●●
●
●●●
●
●
●●●
●
●●●●●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●●
●
●●●●●●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●●●
●
●
●
●
●●
●
●
●
● ●
●
●
●●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●●●●●●●●
●●●●●●●●●●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●●●●
●
●●
●
●●●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●●
●●●
●●●● ●●● ●
●
●
● ●●
●
●
●●●●●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●●●●
●
●
●
●
●
●●●●●
●
●
●
●●●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●●●
●●
●
●●
●
● ●●
●
●
●●●●●
●
●
●
●
●
●●
●● ●
●
●●
●●
●
●
●
●
●
●●●●●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●●
●
●●●
●
●●●
●●●
●
●
●●●
●
●●
●●
●
●●●
●
●
●
●
●●
●
●
●
●●●●
●
●
●
● ●●
●
●
●●●●
●●●●
●
●●●
●
●●●
●
●
●●●
●
●
●
●
●●
●
●
●●
●●●
●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●● ●
●●
●
●
● ●●●
●
●
●●●
●●
●
●●●
●
●
●
●
●●●
●
●
●●
●●●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●
●●●●●●
●●●
●
●
●●
●●
●●
●●
●●
●
●
●
●●●
●
●
●
●●●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●●
●●
●
●
●
●●
●●●●
●●●●
●● ●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●●
●
●●●
●●
●
●
●
●
●●
●
●
●
●
●●●●●●●●
●●
●
●
●
●●●●●●
●●
●
●
●●●●
●
●●
●
●
●●
●●●●●
●●●
●
●
●
●●●●
●●
●●
●
●
●
●
●
●●●●
●
●
●●●
●
●●●
●
●
●●●●
●
●●●
●
●
●
●
●
●●●●
●
●
●
●
●
●●
●
●
●
●●
●●
●
●
●●●
●
●●
●
●
●
●
●
●●●●●●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●●
●● ●
●
●
●
●●
●
●●
●
●
●●●
●
●●●
●●●●
●●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●●
●
●
●●
●
●
●
●●
●●●●
●
●
●
●●●●
●
●
●
●
●●
●
●
●●●
●
●
●
●
●●●
●
●
● ●●
●
●
●
●
●●●●●●
●
●● ●●
●●
●
● ●
●
●
●
●●●●●●
●
●
●●●
●
●●●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●●
●●●
● ●●
●●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●●●
●
●
●
●●●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●●●●●●●●●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●●
●
●● ●●
●●●
●
●●●
●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●
●●●
●
●
●
●●
●
●
●●●
●
●
●●●●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●●
●
●●●●
●
●
●
●●●●●●
●
●●
●
●●●●●●●●●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●●●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●●●●
●
●●
●●●
●●●
●
●
●
●
●●●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●●●●
●
●
●●●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●
●●●●●●
●●
● ●
●
●
●
●
●●●●
●
●●●●
●
●
●
●
●
●
●●
●
●
●●●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●
●●
●
●
●
●●●●●●
●●●●●●●●
●●●●
●
●●
●
●
●●
●
●●
●●●
●
●
●●●●
●
●
●
●
●●●●
●
●
●
●
●
●●●●
●
●●●●●●●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●●
●
●
●●●
●●●
●●
●
●●
●
●
●●
●
●
●●●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●●
●●●●
●
●
●
● ●●●
●
●
●●
●
●
●
●
●
●
●
●●●
●●●
●
●
●●●●●
●
●●●●
●
●
●
●
●●
●
●
●●●●
●
●●
●
●
●●
●
●●● ●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●●
●●●●
●
●●
●
●
●
●
●●●●
●
●
●
●●
●
●
●●●
●●●●●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●●
●
●
●
●● ●
●●●●
●
●
●
●●●●
●
●
●●
●
●●●
●
●●
●●●
●
●
●●●●
●●●
●●
●
●
●
●
●●
●
●
●●
●●●
●
●●●●●
● ●
●
●●●●
●
●
● ●
●
●
●
●●
●●●
●
●
●●
●
●
●
●
●●●
●●
●
●●
●
●●
●
●●●
●
●
●
●
●●●
●
●
●●
●
●●
●
●
●
● ●●●
●
●
●
●●●●
●
●
●
●●●
●●●
●
●●●● ●
●●●●
●
●
●●
●
●
●
●
●
●
●●
●
●●
●
●
●●●●
●●
●●
●
●
●
●
●
●
●
●●●●●●●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●●●●
●
●
●●
●
●
●
●
●●
●
●
●
●
● ●●
●
●
●●●●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●●●●●
●
●●●●●●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●●●
●●●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●
●●
●
●
●
●
●●
●●
●
● ●
●●
●
●●●●
●
●
●
●●●●
●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●●●●
●
●●●●
●
●●●●●●●●
●●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●●●●●●●●
●
●
●
●●●●●●●●
●●●●
●
●●
●
●●
●
●
●
●
●
●●●●●●●●●●●●●●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●●●●●●
●
●
●
●●●●●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●●●
●
●
●
●● ●●
●●
●
●
●●
●●●●
●●●●
●
●●●
●
●
●
● ●●●
●
●
●
●
●● ●●●●
●
●●
●●
●
●●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●●
●●●
●
●●
●
●
●
●
●●●
●●
●
●
●
●
●
●
●
●●●●●
●
●●
●
●●●●●●●●●●●●●●●●●
●
●
●
●
●●
●
●
●
●●
●
● ●
●●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●●●●
●
●●
●
●
●
●●
●●●
●
●
●●
●●●●●●
●
●
●●●
●
●
●
●
●
●
●●
●
●●
●●
●●
●
●
●●●●
●●●
●
●●●●
●
●●●
●
●
●
●●●● ●●
●
●●
●●
●● ●●
●
●●●●
●●●●●●
●
●●
●●
●
●
●
●
●
●●
●
●●
●
●
●●●●●●
●●●●●●
●
●
●
●
●
●
●●●●●
●●●●●●●
●
●●●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●
●●
●
●
●●●●
●
●
●
●
●
●
●
●●
●●●●
●
● ●
●
●●
●
●
●●●
●
●
●●
●●
●
●
●
●
●
●
●●●
●●
●
●
●
●
●●●● ●●
●
●
●
●
●●
●●●
●
●●
●
●●●
●●
●
●
●
●
●
●●
●●
●●
●
●
●
●
●●
●●●●●●●●●
●●●●
●●●●
●●●
●
●●●
●
●
●
●●
●●●●
●
●
●●
●
●
●
●
●●
●
●●●●
●
●
●
●
●
●
●
●
●●●●●●●
●●
●
●
●●●
●
●●
●
●●●●
●
●●●●●●
●
●●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●●●●●
●
●
●
●●
●●
●
●●●
●
●●●●
●
●●●
●●
●
●●
●
●
●
●
●●●
●
●●
●
●
●●
●●●
●
●
●
●
●●
●●●
●
●
●
●
●
●●
●●
●●
●●●●●●●●●●●●●●●●●●●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●●
●
●●●●
●
●
●●●
●
●
●
●
●●●●●●●
●
●
●
●●●●
●
●
●●
●
●●●●
●
●● ●● ●●●●● ●●
●
●
●
●●●
●●●●
● ●●
●
●
●●●●●
●
●●●●
●
●
●●
●
●
●●●●
●
●●● ●
●●
●
●
●
●
●
●
●
●●●●
●
●
●●
●●
●
●●
●
●
●●●●●●●●●●●●●●●●●●
●
●●●
●
●●●●●●●●
●●●●●
●
●
●
●
●
●
●
●
●
●●
●●●●●●●●●●●●●●●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●●
●
●
●
●
● ●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●●
●
●●●●●●●●●●●●●●●●●●●
●
●●
●
●●●●●●
●●●●
●●●
● ●
●
●
●
●●
●●
●
●
●●
●
●●
●
●
●●●●●
●
●
●
●
●
●
●●
●●●
●
●●
●
●
●
●
●
●●
●
●
● ●
●
●●●
●●●
●
●●
●
●●●●
●
●●●●●
●●
●●
●●●●●
●
●
●●●●
●
●
●● ●
●●●●●●●●●
●●
●●●●●●●
●●
●●
●●●●
●
●
●
●
●●
●
●
●
●●
●
●
●●●
●
●
●
●
●●●● ●● ●
●●
●
●●●●●●●●●●●●●●●●●●
●
●●●●
●
●●
●
●
●●
●●
●●
●
●●
●
●●●●
●●●
●
●●●●●●●
●●●
●
●
●
●
●
●●
●●
●
●
●
●
●●●●●
●●
●
●●●●●●● ●●●●●●● ●●● ●
●
●
●
●
●
●
●●●●●●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●●●
●●
●●
●
●
●●●
●
●
●●●●●
●
●
●
●●●
●
●●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
●
●
●
●●
●●●●●
●
●
●
● ●
●●●●●
●●
●
●
●
●●
●
●●●
●
●
●
●●●
●
●
●
●
●●●
●
●●●●
●●●●●●●
●
●
●
●
●●●●●
●
●●
●
●
●●
●●
● ●●●
●●
●
●
●
●
●
●●●●●●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●●
●●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●
●●
●
●
●
●●●●
●●
●●
●
●
●●
●
●●●
●
●●●●●●
●
●
●
●●●●●●●●
●●●
●
●
●●
●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●●●●
●●●●
●
●●●
●
●●●
●
●
●●●
●
●
●●
●●●
●
●●
●●●
●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●●●●●
●●
●
●
● ●●●
●●
●●●
●●
●●●●
●
●●
●●●●
●
●
●●
●●●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●●●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
● ●
●
●
●
●
●●●●●●
●●●●●●
●●●● ●
●●
●●
●●
●●
● ●
●
●
●
●●●
●
●
●
●●●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●●
●●
●
●
●
●●
●●●●
●●●●
●●●
●
●
●●●
●●
●
●
●●●
●
●
●
●●●
●●●
●
●
●
● ●
●
●●●
●
●
●
●
●
●
●●
●
●
●●
●●●●●●●●
●●
●
●
●
●●●●●●
●●●
●
●●●●
●
●●
●
●
●●
●●●●●
●●●
●
●
●
●●●●
●●
●●
●
●
●
●
●
●●●●
●●
●●●
●
●●●●●
●●●●
●
●●●
●
●
●●●
●
●
●●
●
●
●
●●
●●
●
●
●
●●
●●
●
●
●●●
●
●●
●
●
●
●●
●●●●●●
●
●●●
●
●
●
●
●
●
●●
●
●●
●
●●
●●
●
●
●●
●●●
●
●
●
●●
●
●●
●
●
●●●
●
●●●
●●●●
●●●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●●●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●
●●●
●
●●●
●●●●●
●
●
●
●
●●●●●●
●
●●●●
●●
●
●●
●
●●●●●●●●●●● ●●●●●●●●●
●
●
●●●
●
●●
●
●
●
●
●
●●●●●
●
●●
●●●
●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●●
●
●
●
●●●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●
●
●●
●●●●
●●
●
●
●●●
●●●
●●
●
●
●●
●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●
●●
●
●
●
●●●
●
●
●
●
●
●●
●●●
●
●
●●
●
●
●
●
●●
●
●
●●●●
●
●●
●
●
●●
●
●●
●●
●
●●●●●●●●
●
●●●●●●●●●●●●●●
●
●●●●●
●
●●
●●
●
●
●●●●●
●
●
●
●
●●●
●
●
●●
●●
●
●
●
●●●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●●●●
●
●●
●●●
●●●
●
●
●
●
●●●
●●●
●
●●
●
●●●
●
●
●●●
●●
●●
●●
●
●●
●
●
●
●●●●●●●●●●●●
●
●●●
●
●
●●●
●
●●
●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●●●●●●
●●
●●
●
●
●
●
●●●●●●●●●●●●
●
●
●
●●
●
●●●●●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●●
●
●●
●
●●
●
●●
●
●
●●●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●●●●
●
● ●
●●
●
●●
●
●
●
●
●●●●●●
●●●●●●●●●●●●
●
●●●●
●
●
●
●
●
●●●
●
●
●●●●
●
●
●
●
●●●●
●
●
●
●
●
●
●●●
●
●●●●●●●
● ●
●
●
●
●
●●●
●
●●
●
●
●
●●●●
●
●
●●●
●●●●●●
●●
●●
●●
●
●
●●
●●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●●●
●
●
●●
●●●●●
●
●●●●
●●●
●
●
●●●●●
●
●●●●
●
●
●
●
●●
●
●
●●●●
●
●●●
●
●●●
●●●●
●●● ●
●●
●
●
●
●●●●●
●●
●
●
●●●●●●
●
●●
●
●●●●●●●●●●●●
●
●●●●●●●●●●●●
● ●
●
●
●
●
●
●
●●●●●●●
●
●●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●●
●
●
●
●●
●
●●●●
●
●
●
●●●●
●●
●●●●●●
●
●●
●●●
●
●
●●●●
●●●
●
●●
●
●
●
●●●●
●●
●●●
●
●●●●●
●●
●●●●●
●
●●
●
●
●
●
●●
●●●
●
●
● ●
●
●
●
●
●
●●
●●
●
●●
●
●●
●
●●●
●
● ●
●
●●●●●●●
●
●●
●
●
●
●●●
●
●
●
●●●●●
●
●●
●●
●
●●●●
●●●●●
● ●●●
●
●
●●
●
●●
●
●
●
●●
●
●●
●
●
●●
●●
●●
●●
●●
●
●
●●
●
●●●●●●●
●●
●●
●
●●●
●●●●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●●
●
●●
●
●
●
●
●●
●
●●●●●●
●●
●●
●
●
●
● ●●
●
●
●
●
●
●●
●
●
●●●●
●
●
●●
●
●
●●
●
●
●●●
●
●
●●●
●●
●
●
●●●●●●●●●●●●●●
●●
●
●
●
●
●●
●●●●
●
●
●
● ●
●
●●
●
●●
●●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●●
●●
●
●●
●
●
●●
●
●
●
●
●●●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●●
●
●●●
●●
●
●●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●●●●●●●●
●●●●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●●
●●
●
●●
●
●
●●●
●●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●●●
● ●
●
●
●
●
●●●
●●●
●
●
●
●
●
●
●●●●●
●
●●
●
●●●●●●●●●●●●●●●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●●
●
●
●
●●
●●●
●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●
●
●
●●
●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●●
●
●●●●●●
●
●
●
●●●
●●●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●● ●
●●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●●
●
●●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●●●
●
●●
●
●●●
●
●
●●●
●●●●●●●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●
●
●
●●
●
●●●●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●
● ●
●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●●●●●●
●●
●
●●●
● ●●
●
●
●
●
●● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●
●
●● ●●
●
●●●
●
●●
●●●
●●●
●●●●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●●●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●●●●
●
●
●
●●
●
●
●
●
●●
●●●
●
●
●●
●
●●●●
●●
●●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●
●
●●●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●●●
●●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
● ●
●●●
●
●
●
●●●
●
●
●●
●
● ●
●●
●
●
●
●
●
●●
●
●
●●
●
●●
●
●●
●
●
●●●
●
●●
●
●●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●●
●●
●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●●●
● ●
●
●
●
●
●
●●●●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●● ●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●●●●●●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●●●
●
●
●●
●
●●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●●●
●●●●
●
●●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●●●
●
●●
●
●●●
●
●
●
●
●●
● ●
●
●
●
●
●●
●
●
●
●●●
●
●●●●
●●
●
●●●
●
●
●
●
●●●
●
●
●●
●●●
●
●
●
●
●
●●●
●
●
●●
●●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●●
●●●●●●
●●●
●●
●●
●●
●●
●●
●
●
●
●
●
●●●
●
●
●
●●●
●
●●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●●●●
●●
●
●
●
●●
●
●●
●
●●●●
●●●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●●●●●●●●
●●
●
●
●
●●●●●●
●●●
●
●●●●
●
●●
●
●
●●
●●●●●
●●●
●
●
●
●●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●●●●
●
●●●
●
●
●
●
●
●
●
●●
●
●
●●●●●
●
●
●
●●
●●
●
●
●●●
●
●●
●
●
●
●
●
●
●●●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●
● ●
●
●
●●
●●●
●
●
●●●
●
●●●
●●●●
●●●
●
●
●
●
●
●
●●
●● ●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●●
●●
●●●
●
●
●
●
●●●●●●
●
●
●
●●
●●
●
●●
●
●
●
●
●●●●●
● ●
●
●●
●
●
●●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●●●●●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●●●●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
● ●
●
●
●
● ●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●●●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●●●●●●
●
●●
●
●●●●●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●●
●●
●
●
●●●●
●
●●
●●●
●●●
●
●
●
●
●●●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●●●●
●
●
●●●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●
●
●
●
●
●
●●●●●●
●●●
●
● ●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●●
●●
●●
●
●
●●●●
●
●
●
●
●
●
●●●
●
●●●●●●●
●
●
●
●
●
●●
● ●
●
●●
●
●
●
●●●●
●
●
●●●
●●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
● ●
●●●
●
●
●●●●●
●
●●●●
●
●
●
●
●●
●
●
●●●●●
●●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●●●●●●●
●●
●
●
●
●
●●●●
●
●●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●
●
●●●● ●●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●●
●●●
●●
●
●
●
●
●
●
●●●●●●●●
●
●●
●
●
●
●●
●
●●●
●
●
●
●
●●●●
●
●
●●
●
●●●
●
●●
●●
●
●
●
●●●●
●●●●
●
●
●
●
●
●●●
●
●●
●●●
●
●●●●●
●
●
●●●
●●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●●
●
●●●
●
●
●
●
●●●
●
●●●
●
●●
●
●
●
● ●●
●
●
●
●
●●●
●
●
●●
●●
●
●●●
●
●●●●
●
●
●●●
●
●
●●
●
●●
●
●
●
●●
●
●●
●
●
●●
●●
●●
●
●
●
●
●
●
●●
●
●●●●●●●
●●
●●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●●
●
● ●●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●●
●●
●
●
●
●●
●●
●●
●
●
●
●
●
●●
●●
●
●
●
●
●●
●●●●
●
●
●
●●
●
●●
●
●●
●●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●●
●
●
●
●
●●
●
●●
●
●
●
●
●●●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●●
●
●●●
●●
●
●●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●●●●●●●●
●●●●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●●
●●
●
●●
●
●●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●●
●●
●
●●
●
●
●●●
●●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●●●
●●
●
●
●
●
●●●
●●
●
●
●
●
●
●
●
●●●●●
●
●●
●
●●●●●●●●●●●●●●●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●●
●
●
●
●●
●●●
●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●
●
●
●●
●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●●
●
●
● ●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●●
●
●●●●●●
●
●
●
●●●
●●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●● ●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●●
●
● ●
●
●
●●
●●●●
●●●
●
●
●●
●
●●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●●
●●
●
●
●●●
●
●●
●
●●●
●
●
●●●
●●●●●●●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●●
●
●●
●
●●●●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●●
●
●
●
●
●●
●
●
●●●●
●
●●
●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●●●●●●●
●
●
●●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●●●●●●● ●●
●
● ●●●
●
●●●
●
●●●●●●●●
●●●●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●●●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●●
●
●●●●●●
● ●●●
●●●●
●
●●
●
●●●●
●●
●●●●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●●
●
●
●
●
●
●●●●●
●
●●
●
●
●
●
●
●●●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●●
●
●●
●●●
●●
●
●
●●●
●
●
●
● ●
●
●
●
●
●
●●●
●
●●●●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●●
●
●
●
●●●●
●
●
●●
●
●
●
●
●
●●
●●●
●
●
●
●●●●
●
●●
●
●●
●●
●
●
●
●
●
●●
●
●
●●
●
●●
●
●●●
●
●●●
●
●●
●
●●
●
●
●●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●
●●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●●
●●
●●●
●
●●
●
●
●
●●
●●
●
●
●
●
● ●●
●
●
●●
●
●
● ●
●●
●
●
●●● ●●
●
●
●
●
●
●●●●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●●
●
●●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●
●
●
●●●●●●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●●●
●
●
●●
●
●● ●●
●
●
●
●
●
●●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●●●
●●●●
●
●●●
●
●●●
●
●
●●●
●
●
●
●
● ●
●
●
●●
●●●
●
●
●●●
●
●●
●
●●●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●●●
●
●●●●
●●
● ●●●
●
●●
●
●●●
●
●
●●
●●●
●
●
●
●
●
●●●
●
●
●●
●●
●
●
●
●●
● ●
●
●
●
●●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●●
●●●●●●
●●●
●●
●●
●●
●●
●●
●
●
●
●
●
●●●
●
●
●
●●●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●●
●●●
●
●
●●
●●●●
●●●●
●●●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●●
●
●
●
●
●●●●●●●●
●●
●
●
●
●●●●●●
●●
●
●
●●●●
●
●●
●
●
●●
●●●●●
●●●
●
●
●
●●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●●●●
●
●●●
●
●
●
●
●
●
●
●●
●●
●●●●●
●
●
●
●●
●●
●
●
●●●
●
●●
●
●
●
●
●
●
●●●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●●
●●
●●
●
●
●●
●●●
●
●
●●●
●
●●●
●●●●
●●●
●
●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●● ●
●
●
●
●●●●
●
●
●
●●
●
●
●●●●
●
●
●
●
●●●● ●●●●
●●
●
●
●●●●●●
●
●●●●
●●
●
●●
●
●
●
●
●●●●●
●●
●●●
●
●●●
● ●●
●
●
●●●●
●
●
●
●
●
●
●
●●●●●
●
●●
●
●●
●●●●
●
●
●
●
●
●●
●●
●
●
●
●●●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
● ●
●
●
●●
●
●
●●●●
●●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●●
●
●
●●
●
●●
●●
●
●
●
●●●●●●
●
●●
●
●●●●●●●
●
●
●●
●
●
●
●
●
●
●
● ●
●●
●
●
●●
●●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●
●●
●●
●
●●
●
●●●
●
●●
●●
●
●
●●
●
●
●●●●
●
●●
●●●
●●●
●
●
●
●
●●●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●●●●●
●
●●●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●●●●
●
●
●
●●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●●●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●
●
●
●
●
●
●●●●●●
●●●
●
●●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●●●●
●
●
●
●
●
●●●●
●
●●●●●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●
●
●
●●●
●●
●
●●
●
●●
●
●
●
●
●
●
●●
●●
●
●●
●
●●
●
●
● ●
●
●
●
● ●
●●
●●●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
● ●●
●●●
●
●
●●●●●
●
●●●●●
●
●
●
●●
●
●
●●●●●
●
●
●
●
●●
●
●●● ●
●
●
●
●
●●●●●●●●●●
●●
●
●
●
●
●●●●
●
●●●
●
●
●
●●●●
●●
●
●
●
●
●
●●
●
●●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●●●●●●●●
●
●●
●
●
●
●●
●
●●●
●
●
●
●
●●●●
●
●
●
●
●●●●
●
●●
●●
●
●
●
●●●●●●●●
●
●
●
●
●
●●●
●
●●
●●●
●
●●●●●
●
●
●●
●
●●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●●●●
●
●●
●
●●●
●
●
●
●
●●●
●
●●●
●
●●
●
●
●
●●●●
●
●
●
●●●
●
●
● ●
●●
●
●●●
●
●●●●
●
●
●●●
●
●
●●
●
●●
●
●
●
●●
●
●●
●
●
●●
●●●●
●
●
●
●
●
●
●●
●
●●●●●●●
●●
●●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●●
●
●●●●●
●
●
●
● ●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●●●
● ●●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●●
●
●
● ●
●
●
●●
●
●●
●●
●
●
●
●
●●
●●●●
●
●
●
●●
●
●●
●
●●
●●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
● ●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●●
●
●
●
●
●●
●
●●
●
●
●
●
●●●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●●
●
●●●
●●
●
●●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●●●●●●●●
●●●●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●●
●●
●
●●
●
●
●●●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●●●
●●
●
●
●
●
●●●
●●
●
●
●
●
●
●
●
●●●●●
●
●●
●
●●●●●●●●●●●●●●●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●●
●
●
●
●●
●●●
●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●
●
●
●●
●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●●
●
●●●●●●
●
●
●
●●●
●●●
●
●
●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●●●●
●●
●
●
●
●●
●
●●●●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●●●
●
●●
●
●●●
●
●
●●●
●●●●●●●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●
●
●
●●
●
●●●●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●●
●
●
●●
●●
●
●
●● ●●
●
●●
●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
● ●●● ●●●
●
●
●●●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●●●●●●●●●
●●
● ●●●
●
●●●
●
●●●●●●●●
●●●●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●●●
●●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●●
●
●
●
●●
●
●
●
●
●●
●●●●
●
●●
●
●●●●
●●
●●●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●
●
●●●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●●●
●●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●●●
●
●
●●
●
●●
●●
●
●
●
●
●
●●
●
●
●●
●
●●
●
●●
●
●
●●●
●
●●
●
●●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●●
●●
●
●
●
●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●●
●●
●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●●● ● ●
●
●
●
●
●
●●●●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●●●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●
●
●
●●●●●●
●
●
●
●
●
●
● ●
●
●●●
●
●
●
●●
●●
●
●
●●
●
●●
●●
●●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●●●
●
●
●●
●
●●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●●●
●●●●
●
●●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●●●
●
●●
●
●●●
●
●
●
●
●●
●●
●●
●
●
●●
●
●
●
●●●
●
●●●●
●●
●
●●●
●
●
●
●
●●●
●
●
●●
●●●
●
●
●
●
●
●●●
●
●
●●
●●●
●
●
●●
●
●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●●
●●●●●●
●●●
●●
●●
●●
●●
●●
●
●
●
●
●
●●●
●
●
●
●●●
●
●●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●●●●
●●
●
●
●
●●
●
●●
●
●●●●
●●●
●
●
●●
●
●●
●
●
● ●●
●
●●
●●●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●●●●●●●●
● ●
●
●
●
●●●●●●
●●●
●
●●●●
●
●●
●
●
●●
●●●●●
●●●
●
●
●●●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●●●●
●
●●●
●
●
●
●
●
●
●
●●
●
●
●●●●●
●
●
●
●●
●●
●
●
●●●
●
●●
●
●
●
●
●
●
●●●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●
●●
●
●
●●
●●●
●
●
●●●
●
●●●
●●●●
●●●
●
●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●●
●●
●●●
●
●
●
●
●●●●●●
●
●
●
●●
●●
●
●●
●
●
●
●
●●●●●
●●
●
●●
●
●
●●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●●●●●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●●●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●●●●●●
●
●●
●
●●●●●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●●●●
●
●●
●●●
●●●
●
●
●
●
●●●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●●●●
●
●
●●●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●●●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●
●
●
●
●
●
●●●●●●
●●●
●
●●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●●●
●
●
● ●●
●
●●
●
●
●●●●
●
●
●
●
●
●
●●●
●
●●●●●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●
●
●
●●●
●●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●●●●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●●●●●
●
●●●●
●
●
●
●
●●
●
●
●●●●●
●●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●●●●●●●●
●●
●
●
●●
●●●●
●
●●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●
●
●●●●●●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●●●●●●●●
●
●●
●
●
●
●●
●
●●●
●
●
●
●
●●●●
●
●
●●
●
●●●
●
●●
●●
●
●
●
●●●●
●●●●
●
●
●
●
●
●●●
●
●●
●●●
●
●●●●●
●
●
●●
●
●●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●●
●●
●
●●
●
●●
●
●●●
●
●
●
●
●●●
●
●●●
●
●●
●
●
●
● ●●
●
●
●
●
●●●
●
●
●●
●●
●
●●●
●
●●●●
●
●
●●●
●
●
●●
●
●●
●
●
●
●●
●
●●
●
●
●●
●●
●●
●
●
●
●
●
●
●●
●
●●●●●●●
●●
●●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●●
●
●●●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●
●
●
●
●
●●
0 5 10 15
0.0
0.5
1.0
1.5
●
●
●
●
●
●
●●
●●
●
●●
●
●
●●
●●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
●●●
●
●●●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●●●
●●●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
● ●
●
●
●
●●●
●
●
●●
●
●
●
●
●●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●●●●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●●●
●●●
●
●●
●●
●●●●●
●
●
●
●●●●
●●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
● ●●
●
●
●
●●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●●●●●
●
●●● ●●●●●●●●●●●●●●●●●
●
●●
●
●
●
●
●
●
●●
●
●●
●●●
●
●●
●
●
●
●
●
●●
●
●●
●
●●
●
●●●●
●●●●
●
●●● ●
●
●
●●
●●●
●
●
●
●
●
●●
●●●
●
●●●●
●
●
●
●
●
●
●●
●
●●
●●
●●
●
●
●●
●
●
●
●
●
●●●
●
●
●●●
●
●
●●●
●
●
●
●
●●
●
●●
●
●●
●
●
●●
●●
●●●●
●
●
●●
●
●
● ●●
●
●
●
●
●
●●
●
●●
●
●
●●●
●
●●●●●● ●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●●●●●●●●●●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●●●●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●
●
●●●
●●
●●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●●●
● ●●● ●
●
●
●
●
●
●
●
●●●
●●
●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●●●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●●
●●●
●
●
●●
●
●
●
●●●
●●
●
●●●●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●● ●●●
●●
●
●
●
●●●
●●
●
● ●
●
●●●
●
●●
●
●
●
●
●●●
●●●
●
●●
●
●
●●●●
●
●
●
●●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●●
●
●●●
●
●
●● ●●
●●
●●
●
●
●
●
●●●●●
●
●
●●
●●
●
●●
●
●
●
●
●●●●
●
●
●●
●●●●●● ●
●●●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●
●●
●●
●●●●
●
● ●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●●
●
●●
●●●
●
●
●
●●
●
●●●●●●
● ●●
●
●
●
●
●
●
●
●●●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●●●●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●● ●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
● ●
● ●
●●●● ●
●●● ●
●
●
●
●
●●●●●
●
●
●●
●
●
●●
●
●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●●
●●
●
●●●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●●●
●●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●
●
●●●
●●●
●●●●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●●●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●●
●●●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●
●
●
●●●●●●
●
●
●
●●
●
●●
●
●
●
●
●●●●●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●●●●
●
●
●
●
●
●
●
●
●
● ●●●
●
●
●●●
●
●
●●
●●
●
●●●
●●
●●
●
●●
●
●●●
●
●
●●
●
●●
●
●●●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●●●●
●
●●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●●
●●
● ●●●
●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●●●
●
●●●●
●●
●
●●●
●
●
●
●
●●●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●●●●●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●●
●●●
●●●●●●
●●●●
●
●
●●
●●
●●
●●
●
●
●
●
●
●
●
●
●●●
● ●● ●●●●
●
●
●
●●
●●
●
●
●●
●●●
●
●
●
●●
●
●
●
●
●
●
●●
●
●●●●●
●
●●
●
●
●
●
●
●●
●●●●
●
●
●●●●
●●
●●
●
●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●●●
●●●
●
●
●●●●●●
●
●
●
●
●●
● ●●
●
●●●
●
●
●
●
●
●
●
●●
●
●
●●
●●●●●●●●
●●
●
●●
●
●
●
●●●●●●
●●●●
●●●●
●
●●
●
●
●
●
●●
●●●●●
●●●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
● ●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●●●●
●
●●●
●
●
●
●
●●
●
●●
●
●
●●●●●
●
●
●
●
●
●●
●
●●
●●●●●
●●●
●
● ●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●●
●
●●●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●●
●
●
●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●●●
●
●
●
●
●●
●
●
●
●●
●
●●
●●
●
●●●●
●
●
●
●
●
●●
●
●●●●
●
●
●
●
●●●
●
●
●●●
●
●
●
●
●
●●●●●●
●
●
●●
●●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●●●●●
●
●
●
●
●
●
●●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●●●●
●●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●●●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●
● ●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
● ●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●●●
●●●●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●●●●●●
●
●●
●
●
●●●●●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●
●
●
●
●
●
●
●
●●●●●●●●
●●●
●●●●●●
●●
●
●
●●●●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●●●●●●●●●
●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
● ●●●●
●
●●●●●●●●
●
●
●
●
●
●●
●
●●
●
●
●●
●●●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●● ●
●
●
●
●
●
●●●
●●●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●●
●
●
●●
●●●
●
●●
●
●
●●
●
●
●●
●●●●●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●● ●
●
●
●●●
●
●●●
●
●
●●
●
●
●●●●
●
●
●●
●
●
●
●●
●
●●●●●
●
●●●●●●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●●●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●●●
●●
●●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●●●
●
●
●
●
●
●●●●●
●
●●
●
●
●●●●
●
●●
●
●●●
●
●
●●●●
●
●
●
●
●
●
●
●
● ●●●
●●●
●●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●
●●
●
●
●
●
●
●
●●●●
●
●
●●
●●
●
●
●
●
●
●●●●
●
●
●
●
●
●●
●●●
●●●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●●
●●●●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●●
●
●
●
●●
●
●●●●
●
●
●
●●
●
●
●
●●
●●●●
●
●
●●
●
●
●
●
●
●●
●●●
●●●
●●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●●●
●●
●●●
●
●●●●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●●
●
●
●
●
●
●
●●
●●●●●●
●
●●
●
●●●
●
●
●●
●
●
●●●
●
●
●
●●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●●●
●
●●●●●
●●●●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●
●
●●
●
●●
●●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●●●
●
●
●●●
●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●●
●
●
● ●
●
●●
●
●
●
●●
●
●●
●
●
●
● ●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●●
●
●●
●
●
●●
●●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●
●
●
●
● ●●●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
●●●
●
●●●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●
● ●
●●
●●
●
●
●●●●●●●●●●
●●●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●● ●
●
●
●
●●●●
●
●●
●
●
●
●
●●●●●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●●●●
●
●●
●
●●
●●
●
●
●
●
●
●●
●●
●●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●● ●
●●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●●●
●●●
●
●●
●●
●●● ●●
●
●
●●●●●
●●
●●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●●
●
●
●
●●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●●●●●
●
●●● ●●●●●●●●●●●●●●●●●
●
●●
●
●
●
●
●
●
●●
●
●●
●●●
●
●●
●
●
●
●
●
●●
●
●●●
●●
●
●●●●
●●●●
●
●●● ●
●
●
●●
●●●
●
●
●●
●
●●
●●●
●
●●●●
●
●
●
●●
●●●
●
●●
●●
●●
●
●
●●
●
●
●
●
●
●●●
●
●
●●●
●
●
●●●
●
●
●
●
●●
●
●●
●
●●
●
●
●●
●●
●●●●
●
●
●●
●
●
● ●●
●
●
●
●
●
●●
●
●●
●
●
●●●
●
●●●●●●●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●●●●●●
●●●●●●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●●●●●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●● ●●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●●●
●●●●●
●
●
●
●
●
●
●
●●●
●●
●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●●●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●●
●●●
●
●●●
●
●
●
●●●
●●
●
●●●●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●●●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●●
●●
●
●
●
●●●
●●
●
● ●
●
●●●
●
●●
●
●
●
●
●●●
●●●
●
●●
●
●
●●●●
●
●
●
●●●
●
●
●
●
●
●
●
●●●
●
●
●
●
● ●
● ●
●
●●●
●
●
●●●●
●●
●●
●
●
●
●
●●●●●
●
●
●●
●●
●
●●
●
●
●
●
●●●●
●
●
●●
●●●●●● ●
●●●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●●
●● ●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●● ●●
●
●
●●
●
●
●
●
●●
●●
●●●●
●● ●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●●
●
●●
●●●
●
●
●
●●●
●●●●●●
●●●
●
●
●
●
●
●
●
●●●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
● ●
●
●
●
●
●
●●●●●●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●●●●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●●●●●●●●
●
●
●
●
●●●●●
●
●
●●
●
●
●●
●
●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●●●
●●
●
● ●●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●●●
●●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●●●●
●●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●●●
●●●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●●●
●●●●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
● ●●● ●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●●
●●●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●
●●
●●●●●●
●●
●
●●
●
●●
●
●
●
●
●●●●●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●●●●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●●●
●
●
●●
●●
●
●●●
●●
●●
●
●●
●
●●●
●
●
●●
●
●●
●
●●●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●●●●
●●●●
●
●●●
●
●●●●
●
●●●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●●
●●
● ●●●
●
●
●●
●●
●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●●●
●
●●●●
●●
●
●●●
●
●
●
●
●●●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●●●●●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●●
●●●
●●●●●●
●●● ●
●
●
●●
●●
●●
●●
●
●
●
●
●
●
●
●
●●●
● ●● ●●●●
●
●
●
●●
●●
●
●
●●
●●●
●
●
●
●●
●
●
●
●
●
●
●●
●
●●●●●
●
●●
●
●
●
●
●
●●
●●●●
●
●
●●●●●●
●●
●
●
●
●
●
●
●●
●
●●●●
●●
●
●
●
●
●
●
●
●
●●●
●●●
●
●
●●●●●●
●
●
●
●
●●● ●●
●
●●●
●
●
●
●
●
●
●
●●
●●
●●
●●●●●●●●
●
●
●
●●
●
●
●
●●●●●●
●●●●
●●●●
●
●●
●
●
●
●
●●
●●●●●
●●●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●●●●
●
●●●
●
●
●
●
●●
●
●●
●
●
●●●●●
●
●
●
●
●
●●
●
●●●●
●●●●●●
●
●●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●●●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●●
●
●●●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●●
●
●
●●●●
●
●
●●●
●
●
●
●
●
●●
●
●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●●
●
●●●●
●
●
●
●
●
●●
●
●●●●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●●●●●●
●
●
●
●
●●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●●●●●
●
●
●
●
●
●
●●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●●●●●
●●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●●●●●●
●●
●
●●
●●
●
●
●
●
●●
●
●●
●
●
●●●
●
●●
●●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●
● ●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
●●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●●●●●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●●●●
●
●
●●●●●●
●
●●
●
●
●●●●●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●
●
●
●
●
●
●
●
●●●●●●●●
●●●
●●●●●●
●●
●
●
●●●●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●●●●●●●●●
●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
● ●●●●
●
●●●●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●●●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●● ●
●
●
●
●
●
●●●
●●●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●●●●
●
●
●●●
●●
●
●
●
●
●
●
●●●●●
●
●
●●
●●●
●
●●
●
●
●●
●
●
●●
●●●●●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●●●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●●
●
●●●●●
●
●●●●●●●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●●●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●●●
●●
●●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●●●●●
●
●●
●
●
●●●●
●
●●
●
●●●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●●●● ●●●
●●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●
●●
●
●
●
●
●
●
●●●●●
●
●●
●●
●
●
●
●
●
●●●●
●
●
●
●
●
●●
●●
●
●●●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●●
●
●
●
●●
●
●●●●
●
●
●
●●
●
●
●
●●
●●●●
●
●
●●
●
●
●
●
●
●●
●●●
●●●
●●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●●●
●●
●●●
●
●●●●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●●●
●●
●●
●
●
●
●●
●
●
●
●
●
●
●●
●●●●●●
●
●●
●
●●●
●
●
●●
●●
●●●
●
●
●
●●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●●●
●
●●●●●
●●●●
●
●
●●
●
●●●●
●
●
●
●
●
●
●
●●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●
●
●
●
●
●●● ●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●●●
●
●
●
●
●
●
●●
●●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●●●
●●
●●●
●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●●
●
●
●●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●●
●●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●
●
●●●
●
●●●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●●●●●●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●●●
●
●
●●
●
●
●
●
●●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●●●●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●●●
●● ●
●
●●
●●
●● ●●●
●
●
●
●●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
● ●●
●
●
●
●●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●●●●●
●
●●● ●●●●●●●●●●●●●●●●●
●
●●
●
●
●
●
●
●
●●
●
●●
●●●
●
●●
●
●
●
●
●
●●
●
●●
●
●●
●
●●●●
●●●●
●
●●● ●
●
●
●●
●●●
●
●
●
●
●
●●
●●●
●
●
●●●●
●
●
●
●
●
●●
●
●●
●●
●●
●
●
●●
●
●
●
●
●
●●●
●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●●
●●●●
●
●
●●
●
●
●●●
●
●
●
●
●
●●
●
●●
●
●
●●●
●
●●●●●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●●●●
●●●●●●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●●● ●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●
●
●●●
●●
●●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●●●
● ●●● ●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●●
●●●
●
●
●●
●
●
●
●●●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●●
●●
●
●
●
●●●
●●
●
●●
●
●●●
●
●
●
●
●
●
●
●●●
●●●
●
●●
●
●
●●●●
●
●
●
●●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●●
●
●●●
●
●
●●● ●
●●
●●
●
●
●
●
●●●●●
●
●
●●
●●
●
●●
●
●
●
●
●●●●
●
●
●●
●
●●●● ●●
●●●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●
●●
●●
●●●●
●
● ●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●●
●
●●
●●
●
●
●
●
●●
●
● ●●●● ●
● ●●
●
●
●
●
●
●
●
●●●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●●●●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
● ●
●●
●●● ●●● ●●●●
●
●
●
●●●●●
●
●
●●
●
●
●●
●
●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●●
●●
●
●●●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●●●
●●●
●
●
●●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●●●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●●
●●●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●
●
●
●●●●●●
●
●
●
●●
●
●●
●
●
●
●
●●●●●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●●●●
●
●
●
●
●
●
●
●
●
● ●●●
●
●
●●●
●
●
●●
●●
●
●●●
●●
●●
●
●●
●
●●●
●
●
●●
●
●●
●
●●●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●●●●
●
●●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●●
●●
●●●●
●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●●●
●
●●●●
●●
●
●●●
●
●
●
●
●●●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●●●●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●●
●●●
●●●●●●
●●●●
●
●
●●
●●
●●
●●
●
●
●
●
●
●
●
●
●●●
●●
●●●●
●
●
●
●
●●
●●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●
●
●●●●●
●
●●
●
●
●
●
●
●●
●●●●
●
●
●●●●
●●
●●
●
●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●●●
●●●
●
●
●●●●●●
●
●
●
●
●●
●●●
●
●●●
●
●
●
●
●
●
●
●●
●
●
●●
●●●●●●●●
●●
●
●●
●
●
●
●●●●●●
●●●●
●●●●
●
●●
●
●
●
●
●●
●●●●●
●●●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●●●●
●
●●●
●
●
●
●
●●
●
●●
●
●
●●●●●
●
●
●
●
●
●●
●
●●
●●
●●●●●●
●
●●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●●
●
●●●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●●
●
●
●●●●
●
●
●●●
●●
●
●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●●
●
●
●
●●
●
●●
● ●
●
●●●●
●
●
●
●
●
●●
●
●●●●
●
●
●
●
●●●
●
●
●●●
●
●
●
●
●
●●●●●●
●
●
●●
●●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●●●●●
●
●
●
●
●
●
●●
●
●
●● ●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●●●●
●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●●●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●
● ●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●●●●●●
●
●●
●
●
●●●●●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●
●
●
●
●
●
●
●
●●●
●●●●●
●●●
●●●●●●
●●
●
●
●●●●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●●●●
●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●●●●●
●
●●●●●●●●
●●
●
●
●
●●
●
●●
●
●
●●
●●●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●●●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●●
●
●
●●
●●●
●
●●
●
●
●●
●
●
●●
●●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●●●
●
●●●
●
●
●●
●
●
●●●●
●
●
●
●
●
●
●
●●
●
●●● ●●
●
●●●●●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●●●
●●
●●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●●●●●
●
●●
●
●
●●●●
●
●●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●
●●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●
●●
●
●
●
●
●
●
●●●●
●
●
●●
●●
●
●
●
●
●
●●●●
●
●
●
●
●
●●
●●●
●●●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●●●●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●●
●
●
●
●●
●
●●●●
●
●
●
●●
●
●
●
●●
●●●●
●
●
●●
●
●
●
●
●
●●
●●●
●●●
●●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●●●
●●
●●●
●
●●●●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●●
●
●
●
●
●
●
●●
●● ●●●●
●
●●
●
●●●
●
●
●●
●
●
●●●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●●●
●
●●●●●
●●●●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●
●
●●
●
●●
●●
●●
●
●
● ●
●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●●●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●●
●
●
●●
●
●●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
● ●●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
● ●
●
●●●
●
●●●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●●
●
●●●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●● ●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●●●
●
●
●●
●
●
●
●
●●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●●●●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●●●
●●●
●
●●
●●
●●● ●●
●
●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●●
●
●
●
●●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●●●●●
●
●●● ●●●●●●●●●●●●●●●●●
●
●●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●●
●
●●●●
●●●●
●
●●●●
●
●
●●
●●●
●
●
●
●
●
●●
●●●
●
●
●●●●
●
●
●
●
●
● ●
●
●●
●●
●●
●
●
●●
●
●
●
●
●
●● ●
●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●●●
●
●
●●
●
●
●●●
●
●
●
●
●
●●
●
●●
●
●
● ●●
●
●●●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●●●●
●●●●●●
●
● ●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●● ●●● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●●
●●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●●●
●● ●●●
●
●
●
●
●
●
●
●●●
●
●
●
●
● ●
●●
●●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●●
●●●
●
●
●●
●
●
●
●●●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●●
●●
●
●
●
●●●
●●
●
●●
●
●●●
●
●
●
●
●
●
●
●●●
●●●
●
●●
●
●
●●●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●●●
●
●
● ●● ●
●●
●●
●
●
●
●
●●●●●
●
●
●●
●●
●
●●
●
●
●
●
●●●●
●
●
●●
●
●●●●●●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●
●●
●●
●●●●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●●
●
●●
● ●
●
●
●
●
●●
●
●●●●●●
●●●
●
●
●
●
●
●
●
●●●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●●●●●●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
● ●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●●●● ●● ●●●
●
●
●
●●●● ●
●
●
●●
●
●
●●
●
●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●●
●
●●●
●
●
●
●
●
●
●●●●●
●●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●●●
●●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●●
●●●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●●
●●●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●
●
●
●●●●●●
●
●
●
●●
●
●●
●
●
●
●
●●●●●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●●●●●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●●●
●
●
●●
●●
●
●●●
●●
●●
●
●●
●
●●●
●
●
●●
●
●●
●
●●●
●
●
●
●●
●
● ●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●●●●
●
●●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●●
●●
●●●●
●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●●●
●
●●●●
●●
●
●●●
●
●
●
●
●●●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●●●●●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●●
●●●
●●●●●●
●●●●
●
●
●●
●●
●●
●●
●
●
●
●
●
●
●
●
●●●
●●
●●●●
●
●
●
●
●●
●●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●
●
●●●●●
●
●●
●
●
●
●
●
●●
●●●●
●
●
●●●●
●●
●●
●
●
●
●
●
●
●●
●
●●
● ●
●●
●
●
●
●
●
●
●
●
●●●
●●●
●
●
●●●
●●●
●
●
●
●
●●
●●●
●
●●●
●
●
●
●
●
●
●
●●
●
●
●●
●●●●●●●●
●●
●
●●
●
●
●
●●●●●●
●●●●
●●●●
●
●●
●
●
●
●
●●
●●●●●
●●●
●
●●●
●
●
●●●●●●●●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●●●
●
●●●
●
●
●
●
● ●
●
●●
●
●
●●●●●
●
●
●
●
●
●●
●
●●
●●
●●●●●●
●
●●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●
●
●●
●●
●
●●●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●●
●
●
●●●●
●
●
●●●
●●
●
●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●●
●
●●●●
●
●
●
●
●
●●
●
●●●●
●
●
●
●
●●●
●
●
●●●
●
●
●
●
●
●●●●●●
●
●
●●●●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●●●●●
●
●
●
●
●
●●●
●
●●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●●●●
●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●●●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
● ●
●●
●
●●
●
●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●●●●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●●●●●●
●
●●
●
●
●●●●●●●
●
●
● ●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●
●
●
●
●
●
●
●
●●●
●
●●●●
●
●●
●●●
●●●
●●
●
●
●●●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●●●●
●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
● ●●●●
●
●●●●●●●●
●●
●
●
●
●●
●
●●
●
●
●●
●●●●
●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
● ●●
●
●
●
●
●
●●●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●●
●
●
●●
●●●
●
●●
●
●
●●
●
●
●●
●●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●●●●
●●●
●
●
●●
●
●
●●●●
●
●
●
●
●
●
●
●●
●
●●●●●
●
●●●●●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●●●
●●
●●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
● ●
●
●●●
●
●
●
●
●
●●●●●
●
●●
●
●
●●●●
●
●●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●
●●●●
●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●●
●●
●●
●
●
●
●
●
●
●●●●
●
●
●●
●●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●
●●●●●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●●
●●●●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●●
●
●
●
●●
●
●●●●
●
●
●
●●
●
●
●
●●
●●●●
●
●
●●
●
●
●
●
●
●●
●●●
●●●
●●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●●●
●●
●●●
●
●●●●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●●
●
●
●
●
●
●
●●
●●●●●●
●
●●
●
●●●
●
●
●●
●
●
●●●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●●●
●
●●●●●
●●●●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●
●
●●
●
●●
●●
●●
●
●
●●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●● ●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●●●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●●
●
●
●●
●
● ●
●
●
●
●●
●
●●
●
●●●●
●
●● ●
●
●
●●
●
●
●
● ●●
●●
●●
●
●
●
●
●●
●
●
●●
●
●
●●
●●
●
●●
●
●
●●
●●●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●●
●
●●
●
●
●
●
●●●
●●
●
●
●
●
●
●
●●●
●
●
●●●●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●●●
●
●●●●●
●
●●
●●
●
●
●●
●
●
●●
●
●
●
●
● ●
●
●
●
●●
●
●●●●●●●●●●
●●●
●●
●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●
● ●●●
●●● ●●●●
●●
●●
●
●
●●
●●●●
●
●●
●
●●
●
●
●
●
●
●
●
●●●●●●●●
●●●●
●
●●
●
●●
●
●
●
●
●
●
●
●●●
●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●● ●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●●
●
● ●
●●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●●
●●●
●●
●
●
●●
●●
●●●
●●
●
●
●
●●
●●
●●
●●
●●
●
●
●
●
●
●
●
●●●●
●
●
●
●●●
●
●●
●●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●● ●
●
●
●
●
●●●●●
●
●● ●●●●●●●●●●●●●●●●●●
●
●
●
●
●● ●●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●●
●●
●
● ●
●
●● ●●
●●●●
●
●●●
●
●
●●●●●●
●
●
●
●●
●●●●●
●
●
●●●
●
● ●
●
●
●
●●
●
●●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●●●
●
●●
●
●
●
●
●●
●
●
●
●
●●●
●●
●●●●●
●
●●
●
●
●
●●●
●
●
●
●●
●
●
●● ●
●
●●●
●
●●●●●● ●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●●●●
●●●●●●● ●
●●
●
● ●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●●
●● ●●● ●
●
●●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●●
●
●
●●
●
●
●●
●
●
●
●●●
●●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●●
●
●
●
●
●●
●
●
●●●●
●
●
●
● ●
●●
●●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●●●
●
●●●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●●
●
●●●
●●●
●
●
●●
●
●
●
●●●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●●●●●●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●●●
●●●●●
●
●
●
●●●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●●
●●●
●●●
●●
●●●●
●
●
●●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●●●●●
●●
●
●
●
●
●
●●●●
●
●
●●
●●
●
●●
●
●
●
●
●●●●
●
●
●●
●●●●●
●●
●●
●
●
●
●
●
●
●
●●●●●
●
●●
●
●●
●
●
●
●●●
●●
●
●
●
●●●
●
●
●●
●●
●
●
●
●
●
●
●●● ●●
●●
●
●
●
●
●
●●●●
●
●●●
●
●
●
●
●●
●●
●●●●
●
●●●
●
● ●
●●
●
●
●
●
●
●
●●
●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
● ●●●●
●●●●
●●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●●●●●●●
●
●
●
●
●
●
●
●
● ●●●
●
●
●
●●
●
●●
●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●●●●
● ●●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●●
●
●
●
●
●
●●
●
●●●●
●
●●
●
●●●●
●
●
●●●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●
●
●●●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●●
●
●●●●●
●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●●●●
● ●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●●●
●●●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●●
●●
●●
●
●
●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●
●
●
●●
●●●●
●●
●
●●
●
●●
●●
●
●
●●●●●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●
●
●
●●●●
●●
●●●
●
●
●●
●●
●
●
●●
●●●●
●
●●
●
●●●
●
●
●
● ●
●●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●●●
●
●●●
●●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●●
●
●●●●
●●
●
●●●
●
●
●
●●●●
●
●●
●●
●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●●●●●
●
●● ●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●●
●●●
●●●●●●
●●●
●
●
●
●●
●●
●●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●
●
●
●
●●
●●
●
●
●●
●●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●●●●●
●
●●
●
●●
●
●
●●
●●●●
●
●
●●●●
●●
●●
●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●●●● ●●●●●●●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●●
●
●●●
●●●●●●●●
●
●
●
●●
●
●
●
●●●●●●
●●●●
●●●●
●●●
●
●
●
●
●●
●●●●●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
● ●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●●●●
●
●●●
●
●
●
●
●
●
●●●
●
●
●●●
●●
●
●
●
●
●
●●
●
●●
●●●●●
●●●
●
●●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●●
●
●
●●
●●
●
●●●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●●
●
●
●●●●
●
●
●●●
●
●
●
●
●
●●
●
●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●●
●
●
●●●
● ●
●
●
●
●●●●●●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●●●
●
●
●
●●●●●
●
● ●●
●
●●●
●
●
●●
●●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●●●
●
●●●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●●●●●● ●
●
●
●●●●
●
●
●
●
●
●
●
●●
●
●
●●●
●●●
●●
●
●●
●
●●●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●●●●●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●
●
●●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●●●●●●
●
●●
●
●
●●●●●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●● ●
●
●
●●●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●
●
●●●
●
●
●
●●●● ●●●●●
●●●●●
●●●
●●
●
●
●●●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●●●●●●●●●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●●●●
●
●
●●
●
●
●
●
●
●●
●
●●●●
●
●
●
● ●●
●●●●
●
●●●●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●●
●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●●●
●●●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●
●●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●●
●
●
●●
●●
●
●
●●
●
●
●●
●
●
●●
●●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●●●●
●
●
●
●●
●●
●●
●
●●●
●●
●
●●●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●
●
●●
●●●
●
●
●
●
●●●
●●
●●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●
●
●
●
●
●●
●●
●
●
●
●●
●
●
●
● ●
●●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●●●●
●
●●
●
●
●●●●
●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●
●●●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●
●●
●
●
●
●●
●
●●●●
●
●
●●
●●
●
●
●
●
●
●●●●
●●
●
●
●●
●
●●
● ●●●●
●●●
●●
●
●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●●●
●
●
●●
●
●●●●
●
●
●
●●
●●
●
●
●
●●●●
●●
●●●
●
●
●
●
●●
●●●
●
●●
●●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●●●
●●
●●●
●
●●●●●
●
●
●●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●●
●
●●
●
●●●
●
●
●●
●
●
●●●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●●●
●
●●●●
●
●●●●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●
●
●●
●
●
●●
●
●●●
●
●
●
●
●●
●●●
●●
●●●
●
●
●
●
●●
●
●●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●● ●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●●●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●●
●
●●
●
●
●
●
●●●
●●
●
●
●
●
●
●
●●●
●
●
●●●●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●●
●
●●●●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●●
●
●●●
●●
●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●
●●
●
●●●
●●
●●●
●
●
●●
●
●
●●
●●●●
●
●●
●
●●
●
●
●
●
●
●
●
●●●●●●●●
●●●●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●●
●●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●●
●●●
●●
●
●
●
●●
●●
●●
●●●●
●
●
●
●
●
●
●
●●●
●●
●
●
●●●
●
●●
●●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●●
●
●
●
●
●
●●●●●
●
●●●●●●●●●●●●●●●●●●●●
●
●
●
●
●●●●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●●
●
● ●
●
●● ●●
●●●●
●
●●
●●
●
●●●
●●●
●
●
●
●
●
●●●●●
●
●
●●●
●
●●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●●●
●
●●
●
●
●
●
●●
●
●
●
●
●●●
●●
●●●●
●
●
●●
●
●
●
●●●
●
●
●
●●
●
●
●●●
●
●●●
●
●●●●●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●
●●●●●●●
●
●●
●
● ●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●●
●●●●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●●
●
●
●●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●●●
●
●●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●●
●●●
●
●
●●
●
●
●
●●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●●●
●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●●●
●●●
●●
●
●
●
●●●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●●
●●●
●●●●
●
●●●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●●
●●
●
●
●
●
●
●●●●
●
●
●●
●●
●
●●
●
●
●
●
●●●●
●
●
●●
●●●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●●●● ●
●●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●
●●
●●
●●●●
●
●●●
●
●●
●●
●
●
●
●
●
●
●●
●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●●●
●●
●●●●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●●●●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●●
●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●●●●
●●●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●●●● ●● ●●●●
●
● ●
●
●●
●
●
●●●●
●
●●
●
●●●●
●
●
●●●
●
●
●
●
●
●
● ●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●●
●
●●●●●
●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●●●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●●●
●●●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●●
●●
●●
●
●
●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●●
●●●●
●
●
●
●●
●
●
●
●●
●
●
●●●●●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●●●●
●
●
●
●
●
●●
●
●
●
●●
●●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●●●●
●
●●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●●●
●
●●●
●●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●●●●
●●
●
●●●
●
●
●
●●●●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●●●●●
●
●●●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●●●●●●●●
●●●
●●●●●●
●●●
●
●
●
●●
●●
●●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●
●
●
●
●●
●●
●●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●●
●
●●
●
●
●
●
●
●●
●●●●
●
●
●●●●
●●
●●
●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●●●●● ●●
●●●●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●●
●
●●
●
●●●●●●●●
●
●
●
●●
●
●
●
●●●●●●
●●●
●
●●●●
●
●●
●
●
●
●
●●
●●●●●
●●●
●
●
●
●
●
●
●●● ●● ●●●
●
●
●●
● ●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●●●●
●
●●●
●
●
●
●
●
●
●●●
●
●
●●●●●
●
●
●
●
●
●●
●
●●
●●
●●●
●●●
●
●●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●●
●
●●●
●
●●
●●
●
●●●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●●
●
●
●●●●
●
●
●●●
●
●
●
●
●
●●
●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●●
● ●●●●
● ●
●
●
●
●●●●●●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●●●●●
●
●●●
●
●●●
●
●
●●
●●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●●●
●
●●
●●●
●
●
●●●
●
●
●
●
●
●
●
●●●●
●
●
●●●●●●●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●●●
● ●●
●●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●
● ●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●●●●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●●●●●●
●
●●
●
●
●●●●●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●
●
●
● ●●
●
●
●
●●●
●
●●●●
●
●●
●●●
●●●
●●
●
●
●●●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●●●●●●●●●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●●●
●
●
●●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●●●
●●●●
●
●●●●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●●
●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●●●
●●● ●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●●
●
●
●
●
● ●●
●
●●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●●
●
●
●●
●●
●●
●●
●
●
●●
●
●
●●
●●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●●
●●
●
●●●
●●
●
●●●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●
●●●
●
●
●
●
●●●
●●
●●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●●●
●
●
●
●
●●
●●
●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●
●
●●●●●
●
●●
●
●
●●●●
●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●●●
●●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●
●●
●
●
●
●●
●
●●●●
●
●
●●
●●
●
●
●
●
●
●●●●
●●
●
●
●●
●
●●
●●●●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●●●
●
●
●●
●
●●●●
●
●
●
●●
●●
●
●
●
●●●●
●
●
●●
●
●
●
●
●
●●
●●●
●
●●
●●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
● ●●
●●
●●●
●
●●●●●
●
●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●
●
●
●●
●
●
●●●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●●●
●
●●●●
●
●●●●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●●
●●
●●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●●
●
●
●●
●
●
●●
●●
●
●●
●
●
●●
●●●
●
●
●●●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●●
●
●●
●
●
●
●
●●●
●●
●
●
●
●
●
●
●●●
●
●
●●● ●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●●●
●
●●● ●●
●
●●
●●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●●●●●●●●●●
●●●
●●
●
●
●
●
●
●
●
●
●●
●●
●
●●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●● ●
●●●
●●●●●
●●●
●●
● ●
●
●
●●
●●●●
●
●●
●
●●
●
●
●
●
●
●
●
●●●●●●●●
●●●●
●
●●
●
●●
●
●
●
●
●
●
●
●●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●● ●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
● ●
●
● ●
●●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●●
●●●
●●
●
●
●●
●●
●●●
●●
●
●
●
●●
●●
●●
●●
●●
●
●
●
●
●
●
●
●●●
●●
●
●
●●●
●
●●
●●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
● ●●
●
●
●
●
●●●●●
●
●● ●●●●●●●●●●●●●●●●●●
●
●
●
●
●●●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●●
●
●●●●
●●● ●
●
●●●
●
●
● ●●●●●
●
●
●
●●
●●●●●
●
●
●●●
●
●●
●
●
●
●●
●
●●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●●●
●
●●
●
●
●
●
●●
●
●
●
●
●●●
●●
●●●●●
●
●●
●
●
●
●●●
●
●
●
●●
●
●
●●●
●
●●●
●
●●●●●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●●●●
●●●●●●●●
●●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
● ●●
●●● ●●●
●
●●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●●●
●
●
●●
●
●
●●
●
●
●
●●●
●●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●●
●
●
●
●
●●
●
●
●●●●
●
●
●
● ●
●●
●●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●●
●
●●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●●●
●
●●●
●●●
●
●
●●
●
●
●
●●●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●●●● ●●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●●●
●●●●●
●
●
●
●●●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●●
●●●
● ●●
●●
●●●●
●
●
●●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●● ●●●
●●
●
●
●
●
●
●●●●
●
●
●●
●●
●
●●
●
●
●
●
●●●●
●
●
●●
●●●●●
●●
●●
●
●
●
●
●
●
●
●●●●●
●
●●
●
●●
●
●
●
●●●
●●
●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●●●● ●
● ●
●
●
●
●
●
●●●●
●
●●●
●
●
●
●
●●
●●
●●●●
●
●● ●
●
●●
●●
●
●
●
●
●
●
●●
●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●●●●●
●●●●
●●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●
● ●
●
●
●●
● ●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●●●●●●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●●
●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●
●●●●●
●●●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●●
●
●
●
●
●
●●
●
●●●●
●
●●
●
●●●●
●
●
●●●
●
●
●
●
●
●
● ●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●●
●
●●●●●
●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●●●●
●●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●●●
●●●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●●
●●● ●
●
●
●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●
●
●
●●
●●●●
●●
●
●●
●
●●
●●
●
●
●●●●●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●
●
●
●●●●
●●
●●●
●
●
●●
●●
●
●
●●
●●●●
●
●●
●
●●●
●
●
●
●●
●●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●●●
●
●●●
●●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●●●●
●●
●
●●●
●
●
●
●●●●
●
●●
●●
●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●●●●●
●
●●●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●●
●●●
●●●●●●
●●●
●
●
●
●●
●●
●●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●
●
●
●
●●
●●
●●
●●
●●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●●●●●
●
●●
●
●
●
●
●
●●
●●●●
●
●
●●●●
●●
●●
●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●●●● ●●●
●●●●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●●
●
●●●
●●●●●●●●
●
●
●
●●
●
●
●
●●●●●●
●●●●
●●●●
●
●●
●
●
●
●
●●
●●●●●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
● ●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●●●●
●
●●●
●
●
●
●
●
●
●●●
●
●
●●●●●
●
●
●
●
●
●●
●
●●
● ●●●●
●●●
●
● ●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●●
●
●
●●
●●
●
●●●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●●
●
●
●●●●
●
●
●●●
●
●
●
●
●
●●
●
●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●●
●
●
●●●
●●
●
●
●
●●●●●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●●●●●
●
●●●
●
●●●
●
●
●●
●●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●●●
●
●●●
●●
●
●
●●●
●
●
●
●
●
●
●
●●●●
●
●
●●●●●●●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●●●
●●●
●●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●●●●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●
●
●●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●●●●●●
●
●●
●
●
●●●●●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●● ●●
●
●
●●●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●
●
●●●
●
●
●
●●●●
●●●●●
●●●●●
●●●
●●
●
●
●●●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●●●●●●●●● ●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●●●●
●
●
●●
●
●
●
●
●
●●
●
●●●●
●
●
●
●●●
●●●●
●
●●●●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●●
●●●
●
●
●
●●
● ●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●●●
●●●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●●
●
●
●
●
●● ●
●
●●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●●
●
●
●●
●●
●
●
●●
●
●
●●
●
●
●●
●●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●●●●
●
●
●
●●
●●
●●
●
●●●
●●
●
●●●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●
●
●●
●●●
●
●
●
●
●●●
●●
●●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●●●
●
●
●
●
●●
●●
●
●
●
●●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●●●●
●
●●
●
●
●●●●
●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●
●●●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●
●●
●
●
●
●●
●
●●●●
●
●
●●
●●
●
●
●
●
●
●●●●
●●
●
●
● ●
●
●●
●●●●●●●
●
●●
●
●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●●●
●
●
●●
●
●●●●
●
●
●
●●
● ●
●
●
●
●●●●
●●
●●●
●
●
●
●
●●
●●●
●
●●
●●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●●●
●●
●●●
●
●●●●●
●
●
●●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●●
●
●●
●
●●●
●
●
●●
●
●
●●●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●●●
●
●●●●
●
●●●●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●●●
●
●
●
●
●●
●●●
●●
●●●
●
●
●
●
●●
●
●●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●●
●●●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●●●
●
●●
●
●
●
●
●●●
● ●
●
●
●●●●●●
●
●
●
●
●
●●●
●
●
●
●●●
●●
●
●
●
●
●
● ●
●
●
●
●
●●
●
● ●●
●●●●
●
●●●●●
●
●●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●●●
●●●
●●
●
●
●
●
●
●
●
●
●● ●●
●
●
●
● ●●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●● ●●
●●
●●●
●●●●●
●●
●●
●
●
●●
●●●●●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●●●●
●
●●
●
●●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●● ●
●●●
●
●
●
●●
●●
●
●
●
●
●●
●
●●
●●
●
●●●
●
●
●
●
●
●
●
●●
●●●
●●●
●
●●
●●
●●● ●●
●
●
●
●●
●●
●●
●● ● ●●
●
●
●
●
●
●
●●●
●
●
●
●
● ●●
●
●
●
●●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●●●●●
●
●●● ●●●●●●●●●●●●●●●●●
●
●●
●
●●
●
●●
●●
●
●●
●●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●●
●
●●● ●●●●●
●
●●● ●
●●●●
●●●
●
●●●
●
●●●●●
●
●
●●●●
●
●
●●
●
●●
●
●●
●●
●●
●
●●●
● ●
●
●
●●
●●
●
●
●●●
●
●
●●●
●
●
●●
●●
●
●●
●
●
●
●
●
●●
●●
●●●●●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●●●●● ●●
●
●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●●
●
●
●●
●
●●
●
●
● ●●●●●●●●●●●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●●●
●
●
●
●
●
●●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●● ●●●●●
●●
●
●
●●
●
●
●
●●●
●●
●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●●●
● ●●● ●
●
●
●
●●
●
●
●●●●
●
●
●
●●
●●●●
●●
●
●
●●
●
●
●
●●●
●
●●
●
●●●
●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●
●●●
●
● ●
●
●
●
●●
●
●
●
●●
●
●
●
●●
●●●
●
●●●
●●●
●
●
●●
●
●
●
●●●
●
●
●
●●●●
●
●
●●
●
●
●
●
●
●
●●●
●●
●
●●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●●●
●●●
●
●
●●●
●●
●
●●
●
●●●
●
●●
●
●
●
●
●●●
●●●
●
●●
●
●
●●●●●
●●
●●●
●
●
●
●●
●
● ●●●
●
●
●
●
●●
●●
●
●● ●
●
●
●● ●●
●●●●
●
●
●
●
●
●●●●
●
●
●●
●●
●
●●
●
●
●●
●●●●●
●
●● ●●●●●● ●
●●●
●
●●
●
●
●
●●●●●●
●
●
●●
●
●
●●
●●●
● ●
●
●
●
●
●
●
●●
●●
●●●
●
●
●
●
●
●●●
●●
●●
●
●
●
●
●
●●●●
●
●●●
●
●
●
●
●●
●●●
●●●●
●●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●
●●●
●
●● ●
●
●
●●
●
●
●
●●●● ●
●●●●●●
●●
●
●
●
●
●
●
●
●●●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●●●●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●●●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●●●●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●● ●●●● ●
●
●
●
●
●●●
●
●
●
●●●●
●●●
●
●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●●●
●●
●
●●●
●
●
●●
●
●
●●
●●●
●●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●●●
● ●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●●
●●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●●●
●●●
●
●
●●
●
●
●
●●
●
●
●
●
● ●●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●
●
●●
●
●●●
●●●●
●●●
●
●
●
●
●
●
●
●
●
●●●
●●
●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●●●●●
●
●●
●●
●
●
●
●●
●●
●
●
●
●●
●●●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●● ●●
●
●
●
●
●
●
●
●
●
● ●●
●●
●●
●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●
●
●
●●●●●●
●●
●
●●
●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●
●
●
● ●●●
●
●
●●●
●
●
●●
●●
●
●●●
●●
●●
●
●●
●
●●●
●
●
●●
●
●●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●
● ●●
●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●●●●
●
●●●
●
●●●●
●
●●●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●●
●●
● ●●●
●
●
●●
●●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●●
●
●●●●
●●
●
●●●
●
●
●
●
●●●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●●●●●
●
●●
●
●
●
● ●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●●
●●●
●●●●●●
●●●●
●
●
●●
●●
●●
●●
●
●
●
●
●
●
●
●
●●●
● ●● ●●●●
●
●
●
●●
●●
●
●
●●
●●●
●
●
●
●●
●
●
●
●
●
●
●●
●
●●●●●
●
●●
●
●
●
●
●
●●
●●●●
●
●
●●●●●●
●●
●
●
●
●
●
●
●●
●
●●●●
●●
●
●
●
●
●
●
●
●
●●●
●●●
●
●
●●●●●●
●
●
●
●
●●
●
●●
●
●●●
●●
●
●
●
●
●
●●
●
●●●
●●●●●●●●
●
●
●
●●
●
●
●
●●●●●●
●●●●
●●●●
●
●●
●
●
●
●
●●
●●●●●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
● ●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●●●
●
●●
●
●
●●●●●
●
●●●
●
●●
●
●
●
●●●
●
●
●●●
●●
●
●
●
●
●
●●
●
●●●●
●●●●●●
●
● ●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●●●
●
●
●
●●●
●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●●
●
●●●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●●
●
●
●●●●
●
●
●●●
●●
●
●●
●●
●
●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●●
●
●●●●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●●●●●●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●●●●●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●●●●● ●●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●●●●●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●●●
●●●
●●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●●
●●
●
●
●
●●●●●●
●
●●
●
●
●●●●●●●
●
●
●●
●
●
●
●
●●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●
●
●
●
●
●
●
●
●●●● ●●●●● ●●●●● ●●●
●●
●
●
●●●●●●
●
●
●
●
●●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●●●●●●●●●
●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●●●●
●
●
●●
●
●
●
●
●
●●
●
●●● ●
●
●
●
●
●
●●●●●
●
●●●●●●●●
● ●
●
●
●●
●
●●●
●
●
● ●
●●●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●●●
●●●
●
●●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●
●
●
●
● ●
●
●●●●●
●
●
●●
●●
●●
●●
●
●
●●
●
●
●● ●●●●●●● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●●● ●
●
●●●
●
●
●●●
●
●
●
●
●
●
●●●●
●
●
●●
●
●●
●●
●
●●● ●●
●
●●●●●●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●●●
●●
●●
●
●●
●
●●
●
●
●
●
●●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●●●
●
●
●
●
●●●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●●●●
●
●●
●
●
●●●●
●
●
●●
●●●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●●●● ●●● ●●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●
●●
●
●
●
●●
●
●●●● ●
●
●●
●●
●
●
●
●
●
●●●●
●
●
●
●
●
●●
●●●
●●●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●●●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●●
●
●
●
●●
●
●●●●
●
●
●
●●●
●
●
●●
●●●●
●
●
●●
●
●
●
●
●
●●
●●●
●●●
●●
●
●
●
●
●
●
●●●
● ●●
●
●
●
●
●
●
●
●
●
●●●
●●●
●●
●●●
●
●●●●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●
●●
●
●●
●
●●●
●
●
●●
●●
●●●
●
●
●
●●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●●●
●
●●●●●
●●●●
●
●
●●
●
●●●●
●
●
●
●
●
●
●
●●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●
●
●●
●
●●●
●
●●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●●
●
●●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●●●
●●●
●●
●●●
●
●
●
●
●●
●
●●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●●
●
●●
●
●
●●
●●●
●
●
●
●●
●
●
●
●
● ●●
●
●
●
●
●
●
●●
●
●●●
●
●●
●●
●
●
● ●●
● ●
●
●
●●●●
● ●
●
●
●
●
●
●●●
●
●
●
●●●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
● ●●
●●●●
●
●●●●●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●●●●●●●●●●
●●●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●●
● ●
●
●●●●●
●
●
●
●
●
●●
●●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●●●●
●
●●
●
●●
●●
●●
●●
●
●●●
● ●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●●
●● ●
●●●
●
●
●
●●
●●
●
●
●
●
●●
●
●●
●●
●
●●●
●
●
●
●
●
●
●
●●
●●●
●●●
●
●●
●●
●●●
●●
●
●
●●●●●
●●
●● ●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●●
●
●
●
●●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●●●●●
●
●●● ●●●●●●●●●●●●●●●●●
●
●●
●
●●
●
●
●
●●
●
●●
●●
●
●
●●
●
●
●
●
●
●●●
●●
●
●●
●
●●● ●●●●●
●
●● ● ●
●●●●
●●●
●
●●●●
●●
●●●
●
●
●●●●
●
●
●●
●
●●
●
●●
●●
●●
●
● ●●
● ●
●
●
●●●●
●●
●●●
●
●
●●●
●
●
●●
●●
●
●●
●
●
●
●
●
●●
●●
●●●● ●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●●●●●●●● ●
●
●
●
●●
●
●
●
● ●
●●●
●
●
●●
●
●
●●
●
●●
●
●
● ●●●●●●●●●●●●
●●
●
●
●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
● ●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●●●●●●
●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●● ●●●●●
●●
●
●
●●
●
●
●
●●●
●●
●
●
●
●
●
●
● ●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●●●
●●●●●
●
●
●
●●
●
●
●●●●
●
●
●
●●
●●●● ●●
●
●
●●
●
●
●
●●●
●
●●
●
●●●
●●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●
●●●
●
● ●
●
●
●
●●
●
●●
●●
●
●
●
●●
●●●
●
●●●
●●●
●●
●●
●
●
●
●●●
●
●
●
●●●●
●
●
●●
●
●
●
●
●
●
●●●
●
●●
●●●●
●
●●
●
●
●
●●
● ●
●
●
●
●●
●
●
●
●●●
●●●
●●●
●
●
●●●
●●
●
●●
●
●●●
●
●●
●
●
●
●
●●●
●●●
●
●●
●●
●●●●●
●●
●●●
●
●
●
●●
●
● ●●●
●
●
●
●
● ●
● ●
●
●● ●
●
●
●●●●
●●●●
●
●
●
●
●
●●●●
●
●
●●
●●●
●●
●
●
● ●●●●● ●●
●●●
●●●●● ●
●●
●
●
●●
●
●
●●
●●●●●●
●
● ●
●
●
● ●●●●
●●
●
●
●
●
●
●●
●
●●
●●●
●
●
●
●
●
●●●●
●●
●
●
●
●
●
●
●● ●●
●
●●●
●
●
●
●
●●
●●
●●●●
●● ●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●
●●●
●●●
●
●
●
●●
●
●
●
●●●● ●
●●●●●●
●●
●
●
●
●
●
●
●
●●●●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●●●●●●●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●●
●
●●
●
●●●●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●
●●●●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●●●●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●
●
●
●●●
●
●
●
●●●●
●●●
●
●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●●
●●●
●●
●
●●●
●
●
●●
●
●
●●
●●●
●●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●●●●
●●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●●
●
●
●
●●●●●
●●
●
●●
●
●●
●
●●
●●●
●
●
●
●●●
●●●
●
●
●●
●
●
●
●●
●
●
●
●
● ●●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●●
●
●
●
●●
●
●●
●
●●●
●●●●
●●●
●
●
●
●●
●
●
●
●
●●●
●●
●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
● ●●● ●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●●
●●●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●● ●●
●
●
●
●
●
●
●
●
●
● ●●
●●
●●
●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●
●●
●●●●●●
●●
●
●●
●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●●●
●
●
●●
●●
●
●●●
●●
●●
●
●●
●
●●●
●
●
●●
●
●●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
● ●●
●●
●●
●
●
●
●●●
●●
●
●
●
●
●
●
●● ●
●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●● ●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●●
●●●●
●
●●●
●
●●●●
●
●●●
●
●
●
●
●●
●
●
●●
●●●
●
●
●●●●
●
●●
●●
● ●●●
●
●
●●
●●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●●●
●
● ●●●
●●
●
●●●
●
●
●
●
●●●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●●●●●
●
●●
●
●
●
●●●
●● ●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●●
●●●
●●●●●●
●●●●
●
●
●●
●●
●●
●●
●
●
●
●
●
●●
●
●●●
● ●● ●●●●
●
●
●
●●
●●
●
●
●●
●●●
●
●
●
●●●
●
●
●
●
●
●●
●
●●●●●
●
●●
●
●
●
●
●
●●
●●●●
●
●
●●●●●●
●●
●
●
●
●
●
●
●●
●
●●●●
●●
●
●
●
●
●
●
●
●
●●●
●●●●
●
●●●●●●
●
●
●
●
●●●
●●
●●●●
●●
●
●
●
●
●
●●
●●
●●
●●●●●●●●
●
●
●
●●
●
●
●
●●●●●●
●●●●
●●●●
●
●●
●
●
●
●
●●
●●●●●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●
● ●
●
●
●
●
●●
●●
●
●
●
●
●●●
●
●●
●
●
●●●●●
●
●●●
●
●●
●
●●
●●●●
●
●●●●●
●
●
●
●
●
●●
●
●●●● ●●●
●●●
●
●●
●
●
●
●
●
●
●●●●●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●●●●
●
●
●
●●●
●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●●
●
●●●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●●
●
●
●●●●
●
●
●●●
●●
●
●●
●●
●
●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●●
●
●●●●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●●●●●●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●●●●●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●●●●● ●●
●●●●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●●●●●● ●●
●
●●
●●
●
●
●
●●●
●
● ●
●
●
●●●
●●●
●●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●● ●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●●●
●
●
●●●●
●●
●●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●●●●●
●
●
●●●●●●
●
●●
●
●
●●●●●●●
●
●
●●
●
●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●
●
●
●
●
●
●
●
●●●● ●●●●● ●●●●● ●●●
●●
●
●
●●●●●●
●
●
●
●
●●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●●●●●●●●●
●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●●●●
●
●
●●
●
●
●
●
●
●●
●
●●●●
●
●
●
●
●
● ●●●●
●
●●●●●●●●
●●
●
●
●●
●
● ●●
●
●
●●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●● ●
●
●
●
●●
●●●●●●
●● ●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
● ●●
●●●●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●●●●●
●
●
●●●
●●
●
●
●
●●
●
●●●●●
●
●
●●
●●
●●
●●
●
●
●●
●
●
●●●●●●●●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●●●●
●
● ●●
●
●
●●●●
●
●
●
●
●
●●●●
●
●
● ●
●
●●
●●
●
●●●●●
●
●●●●●●● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●●●
●●
●●
●
●●
●
●●
●
●
●
●
● ●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●●●
●
●
●
●
●●
●
●
●
●
●
●●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●●●●
●
●●
●
●
●●●●
●
●
●●
●●●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●● ●● ●●● ●●
●●
●
●
●
●
●●
●
●●●
●●
●
●
●
●●
●●
●●
●
●
●
●●
●
●●●● ●
●
●●
●●
●
●
●
●
●
●●●●
●
●
●
●
●
●●
●●●
●●●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●●●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●●
●
●
●
●●
●
●●●●
●
●
●
●●●
●
●
●●
●●●●
●●
●●
●
●
●
●
●
●●
●●●
● ●●
●●
●
●
●
●
●
●
●●●
● ●●
●
●
●
●
●
●
●
●
●
●●●● ●●
●●
●●●
●
●●●●●
●
●
●●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●●
●●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●●●
●
●●
●
●●●
●
●
●●
●●
●●●
●
●
●
●●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●● ●
●
●
●
●
●●
●
●●●
●
●●●●●
●●●●
●
●
●●●
●●●●
●
●
●
●
●
●
●
●●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●
●
●●
●
●●●●
●●
●
●
●
●●●
●
●
●
●
●●
●
●
●●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
●●
●●
●
●
●●●●
●
●
●
●
●● ●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●●●
●●●
●●
●●●
●
●
●
●
●●
●
●●
●
●●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●●
●●●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●●●
●
●●
●
●
●
●
●● ●
● ●
●
●
●●●●●●
●
●
●
●
●
●●●
●
●
●
●●●
●●
●
●
●
●
●
● ●
●
●●
●
●●
●
●●●
●●●●
●
●●●●●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●●●
●●●
●●
●
●
●
●
●
●
●
●
●● ●●
●
●
●
● ● ●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●●
●●
●●●
●●●●●
●●
●●
●
●
●●
●●●●●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●●●●
●
●●
●
●●
●
●
●
●
●●
●
●●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●●
●● ●
●●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●●
●●●
●● ●
●
●●
●●
●●●
●●
●
●
●
●●
●●
●●
●●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
● ●●
●
●
●
●●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●●●●●
●
●●● ●●●●●●●●●●●●●●●●●
●
●●
●
●●
●
●●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●●
●
● ●
●
●● ● ●●●●●
●
●● ● ●
●●
●●
●●●
●
●●●
●
●●●●●
●
●
●●●●
●
●
●●
●
●●
●
●●
●●
●●
●
●●● ●●
●
●
●●
●
●●
●
●●●
●
●
●●●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●●
●●●●●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
● ●●●●● ●●●
●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●●
●
●
●●
●
●●
●
●
● ●●●●●●●●●●●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
● ●●●● ●●●●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●●●
● ●●● ●
●
●
●
●●
●
●
●●●●
●
●
●
●●
●●●●
●●
●
●
●●
●
●
●
●●●
●
●●
●
●●●
●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●
●●●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●●●
●
●●●
●●●
●
●
●●
●
●
●
●●●
●
●
●
●●●●
●
●
● ●
●
●
●
●
●
●
●●●
●
●●
●●● ●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●●●
●●●
●
●
●●●
●●
●
●●
●
●●●
●
●
●
●
●
●
●
●●●
●●●
●
●●
●
●
●●●●
●
●
●
●●●
●
●
●
●
●●
●●
●●
●
●
●
●
●●
●●
●
●● ●
●
●
●●●●
●●●●
●
●
●
●
●
●●●●
●
●
●●
●●
●
●●
●
●
●●
●●●●●
●
●●●●●●●●●
●●●
●
●●
●
●
●
●●●●●
●
●
●
●●
●
●
●●
●●●
● ●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●
●
●● ●● ●●●
●
●
●
●
●
●●●●
●
●●●
●
●
●
●
●●
●●●
●●●●
● ●
●●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●
● ●●
●
●●●
●
●
●●
●
●
●
●●●● ●
●●●●●●
●●
●
●
●
●
●
●
●
●●●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●●●●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●●●●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●● ●●● ●●●●
●
●
●
●●● ●●
●
●●●●
●●●
●
●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●●●
●●
●
●●●
●
●
●●
●
●
●●
●●●
●●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●●●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●●●
●●●
●
●
●●
●
●
●
●●
●
●
●
●
● ●●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●●
●
●
●
●●
●
●●
●
●●●
●●●●
●●●
●
●
●
●
●
●
●
●
●
●●●
●●
●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●●●●●
●
●●
●●
●
●
●
●●
●●
●
●
●
●●
●●●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●●
●●
●
●
●
●
●
●
●
●
●
●●●
●●
●●
●
●
●
●
●
●
●●●
●● ●
●
●●
●
●
●
●
●
●
●●
●●●●
●
●
●
●●
●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●
●
●
● ●●●
●
●
●●●
●
●
●●
●●
●
● ●●
●●
●●
●
● ●
●
●●●
●
●
●●
●
●●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●● ●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●●●●
●
●●●
●
●●●
●
●
●●●
●
●
●
●
●●
●
●
●●
●●●
●
●
●●●
●
●
●●
●●
●●●●
●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●●
●
● ●●●
●●
●
●●●
●
●
●
●
●●●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●●●●●
●
●
●
●
●
●
●●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●●
●●●
●●●●●●
●●●●
●
●
●●
●●
●●
●●
●
●
●
●
●
●
●
●
●●●
● ●● ●●●●
●
●
●
●●
●●
●
●
●●
●●●
●
●
●
●●
●
●
●
●
●
●
●●
●
●●●●●
●
●●
●
●
●
●
●
●●
●●●●
●
●
●●●●●●
●●
●
●
●
●
●
●
●●
●
●●●●
●●
●
●
●
●
●
●
●
●
●●●
●●●
●
●
●●●●●●
●
●
●
●
●●
●
●●
●
●●●
●●
●
●
●
●
●
●●
●
●●●
●●●●●●●●
●
●
●
●●
●
●
●
●●●●●●
●●●●
●●●●
●
●●
●
●
●
●
●●
●●●●●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
● ●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●●●
●
●●
●
●
●●●●●
●
●●●
●
●●
●
●
●
●●●
●
●
●●●
●●
●
●
●
●
●
●●
●
●●●●
●●●●●●
●
● ●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●●●
●
●
●
●●●
●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●●
●
●●●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●●
●
●
●●●●
●
●
●●●
●●
●
●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●●
●
●●●●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●●●●●●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●●●●●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●●●●●●●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●●●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●●
●●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●●
●●
●
●
●
●●●●●●
●
●●
●
●
●●●●●●●
●
●
●●
●
●
●
●
●●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●
●
●
●
●
●
●
●
●●●● ●●●●● ●●●●● ●●●
●●
●
●
●●●
●●●
●
●
●
●
●●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●●●●●●●●●
●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●●●●
●
●
●●
●
●
●
●
●
●●
●
●● ●●
●
●
●
●
●
●●●●●
●
●●●●●●●●
● ●
●
●
●●
●
●●●
●
●
●●
●●●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●●●
●●●
●
●●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●
●
●
●
●●
●
●●●●●
●
●
●●
●●
●●
●●
●
●
●●
●
●
●●●●●●●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●●
●
●●● ●●
●
●●●●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●●●
●●
●●
●
●●
●
●●
●
●
●
●
●●
●
●●
● ●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●●●●
●
●●
●
●
●●●●
●
●
●
●
●●●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●●●●
●●●
●●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●
●●
●
●
●
●●
●
●●●●●
●
●●
●●
●
●
●
●
●
●●●●
●
●
●
●
●
●●
●●●
●●●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●●●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●●
●
●
●
●●
●
●●●●
●
●
●
●●●
●
●
●●
●●●●
●
●
●●
●
●
●
●
●
●●
●●●
● ●●
●●
●
●
●
●
●
●
●●●
●●●
●
●
●
●
●
●
●
●
●
●●●
●●●
●●
●●●
●
●●●●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●●
●
●●●
●
●
●●
●
●
●●●
●
●
●
●●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●●●
●
●●●●●
●●●●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●
●
●●
●
●● ●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●●●
●●
●●
●
●
●
●
●
●●
●
●●
●
●●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●●
●●
●
●●
●
●
●●
●●●
●
●
●
●●
●
●
●
●
●● ●
●
●
●
●
●
●
●●
●
●●●
●
●●
●
●
●
●
●●●
●●
●
●
●●●●●●
●
●
●
●
●
●●●
●
●
●
●●●
●●
●
●
●
●
●
● ●
●
●
●
●
●●
●
●● ●
●●●●
●
●●●●●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●● ●●●●●
●●●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●● ●●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●● ●●
●●
●●●
●●●●●
●●
●●
●
●
●●
●●●●●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●●●●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●● ●
●●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●●
●●●
●●●
●
●●
●●
●●●
●●
●
●
●
●●
●●
●●
●●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●●
●
●
●
●●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●●●●●
●
●●● ●●●●●●●●●●●●●●●●●
●
●●
●
●●
●
●●
●●
●
●
●
●●●
●
●●
●
●
●
●
●
●●
●
●●
●
● ●
●
●● ●●●●●●
●
●●●●
● ●
●●
●●●
●
● ●●
●
●●●●●
●
●
●●●●
●
●
●●
●
●●
●
●●
●●
●●
●
●●●
●●
●
●
●●
●
●●
●
●●●
●
●
●●●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●●
●●●●●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
● ●●●●●●
●●
●
●
●
●
●
●
●
●
● ●
●
●●
●
●
●●
●
●
●●
●
●●
●
●
●●●●●● ●●●●●●
●
● ●
●
●
●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
● ●●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
● ●●●● ●●
●●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●●●
●● ●●●
●
●
●
●●
●
●
●●●●
●
●
●
● ●
●●●●
● ●
●
●
●
●
●
●
●
●●●
●
●●
●
●●●
●●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●
●●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●●●
●
●●●
●●●
●
●
●●
●
●
●
●●●
●
●
●
●●●●
●
●
● ●
●
●
●
●
●
●
●●●
●
●
●
●●●●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●●●
●●●
●
●
●●●
●●
●
●●
●
●●●
●
●
●
●
●
●
●
●●●
●●●
●
●●
●
●
●●●●
●
●
●
●●●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●
●●
●
●●●
●
●
● ●● ●
●●
●●●
●
●
●
●
●●●●
●
●
●●
●●
●
●●
●
●
●
●
●●●●
●
●
●●●●●●●● ●
●●●
●
●●
●
●
●
●
●●●●●
●
●
●●
●
●
●●
●●●
●●
●
●
●
●
●
●
●
●
●●
●● ●
●
●
●
●
●
●●●●● ●●
●
●
●
●
●
●●●●
●
●●●
●
●
●
●
●●
●●●
●●●●
●●
● ●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●
● ●●
●
●●●
●
●
●●
●
●
●
● ●●●●
●●● ●● ●
●●
●
●
●
●
●
●
●
●●●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●●●●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
● ●
●
●●●●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●● ●● ●●●
●
●
●
●●●●●
●
●●●●
●
●●
●
●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●●
●
●
●●
●●●
●●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●●●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●●●
●●●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●●
●
●
●
● ●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●●
●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
● ●●● ●
●
●●
●●
●
●
●
●●
●●
●
●
●
●●
●●●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●●
●●
●
●
●
●
●
●
●
●
●
●● ●
●●
●●
●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●
●
●
●●
●●●●
●
●
●
●●
●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●●●
●
●
●●
●●
●
●●●
●●
●●
●
●●
●
●●●
●
●
●●
●
●●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
● ●
●●
●
●
●
●
●
●
● ●●
●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●●●●
●
●●●
●
●●●
●
●
●●●
●
●
●
●
●●
●
●
●●
●●●
●
●
●●●
●
●
●●
●●
●●●●
●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●●
●
●●●●
●●
●
●●●
●
●
●
●
●●●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●●●●●
●
●
●
●
●
●
●●●
● ●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●●
●●●
●●●●●●
●●●●
●
●
●●
●●
●●
●●
●
●
●
●
●
●
●
●
●●●
●● ●●●● ●
●
●
●
●●
●●
●
●
●●
●●●
●
●
●
●●
●
●
●
●
●
●
●●
●
●●●●●
●
●●
●
●
●
●
●
●●
●●●●
●
●
●●●●●●
●●
●
●
●
●
●
●
●●
●
●●●●
●●
●
●
●
●
●
●
●
●
●●●
●●●
●
●
●●●
●●●
●
●
●
●
●●
●
● ●
●
●●●
●●
●
●
●
●
●
●●
●
●●●
●●●●●●●●
●
●
●
●●
●
●
●
●●●●●●
●●●
●
●●●●
●
●●
●
●
●
●
●●
●●●●●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●●●
●
●●
●
●
●●●●●
●
●●●
●
●●
●
●
●
●●●
●
●
●●●
●●
●
●
●
●
●
●●
●
●●
●●●●●
●●●
●
●●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●●●
●
●
●
●●●
●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●●
●
●●●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●●
●
●
●●●●
●
●
●●●
●●
●
●
●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●●
●
●●●●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●●●●●●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●●●●●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●●●● ●●●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●●●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●●
●●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●● ●
●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●
●●
●●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●●
●●
●
●
●
●●●●●●
●
●●
●
●
●●●●●●●
●
●
●●
●
●
●
●
● ●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●
●
●
●
●
●
●
●
●●● ●●●●● ●●● ●●●●●●
●●
●
●
●●●
●●●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●●●●
●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●●●●
●
●
●●
●
●
●
●
●
●●
●
●●●●
●
●
●
●
●
● ●●●●
●
●●●●●●●●
●●
●
●
●●
●
●●●
●
●
●●
●●●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
● ●●
●
●
●
●
●
●●●
●●●
●
●●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●
●
●
●
●●
●
●●●●●
●
●
●●
●●
●●
●●
●
●
●●
●
●
●●●●●●●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●●
●
●●● ●●
●
●●●●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●●●
●●
●●
●
●●
●
●●
●
●
●
●
●●
●
●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●●●●
●
●●
●
●
●●●●
●
●
●
●
●●●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●●
●●●
●●
●●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●
●●
●
●
●
●●
●
●●●●●
●
●●
●●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●
●●●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●●
●●●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●●
●
●
●
●●
●
●●●●
●
●
●
●●●
●
●
●
●
●●●●
●
●
●●
●
●
●
●
●
●●
●●●
●●●
●●
●
●
●
●
●
●
●●●
●●●
●
●
●
●
●
●
●
●
●
●●●
●●●
●●
●●●
●
●●●●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●●
●
●●●
●
●
●●
●
●
●●●
●
●
●
●●
●
● ●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●●●
●
●●●●●
●●●●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●
●
●●
●
●●●
●
●●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●●●
●●
●●
●
●
●
●
●
●●
●
●●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●●
●●
●
●●
●
●
●●
●●●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●●●
●
●●
●●
●
●●
●
●●
●
●
●
●
●●●
●●
●
●
●
●
●
●
●●●
●
●
●●●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●●●
●
●●●●●
●
●●
●●
●
●●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●●
●
●●●●● ●●●●●
●●●
●●
●●
●
●
●
●
●
●
●●●●
●
●●●
●●
●
●
●
●
● ●
●
●
●
●
●●
●
●●
●
●●●
●●●●●
●●●●●●
●●
●●
●
●
●●
●●●●
●
●●
●
●●
●
●
●
●
●
●●
●●●●●●●●
●●●●
●
●●
●
●●
●●
●
●● ●
●
●●●
●● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●●
●
● ●
●●●
●
●
●
●●
●●
●
●
●
●
●●
●●
●
●●
●
●●●
●
●
●
●
●
●
●
●●
●●●●● ●
●
●●
●●
●●●
●●
●
●
●
●●
●●
●●
●●●●
●
●
●
●
●
●
●
●●● ●●
●
●
●●●
●
●●
●●●●●
●
●
●
●
●
●
●
●●●●
●
●●
●●
●
●
●
●
●
●●●●●
●
●●●●●●●●●●●●●●●●●●●●
●
●
●
●
●● ●●
●●●
●
●
●
●●
●
●
●●
●●
●●
●
●●●
●●
●
● ●
●
●● ● ●●●●●
●
●●●
●
●
●●●
●●●●
●
●
●●
●●●●●
●
●
●●●
●
● ●●
●
●
●●
●
●●
●●
●●
●
●
●●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●●●
●
●●
●●
●
●
●●
●
●
●
●
●●●
●●
●●●●●●
●●
●
●
●
●●●●
●
●
●●
●
●
●● ●
●
●●●
●
● ●●●●● ●●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●●●
●
●●●
●
●
●
●
●●●●●● ●●●●●● ●●●
●
●●
●
●
●●
●
● ●
●●
●
●
●
●
●
●
●
●
●●●●●
●
●
●●●
●
●
●
●●
●
●
●●
●
●●
●
●●
●
●●
●
●●●
●●
●●●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●●
●●
●
●
●●●
●●
●●
●
●
●●
●●
●
●●●
● ●
●
●
●
●
●
●●●
●●
●
●●●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●●
●
●
●
●
●●
●
●
●●●●
●
●
●
● ●
●●
●●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●●●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●●●
●
●●
●
●●
●●
●
●●
●●
●
●
●
●●
●●●
●
●●●
●●●
●
●
●●
●
●
●
●●●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●●●● ●●
●
●
●
●●●
●
●●
●●
●●
●
●
●
●●●
●●●
●●●
●
●
●●●
●
●●
●●
●
●●●
●
●
●●
●
●
●
●●●
●●●
●●● ●
●●●●●
●
●
●●●●
●
●
●
●●
●
●●
●●
●
●
●
●
● ●
●
●
●●●●
●
●
●
●●●●●
●●
●
●
●
●
●
●●●●
●
●
●●
●●
●
●●
●
●
●
●
●●●●
●
●
●●
●●●●●●
●
●●
●
●
●
●
●●●● ●●●●●
●●●
● ●
●
●
●
●●●
●●●●
●
●●●
●
●
●●
●●●
●
●
●
●
●
●●● ●●
●●
● ●
●
●
●
●●●●
●
●●●
●
●
●
●
●●
●●
●●●●
●●●●
●
●●
●●
●●
●●
●
●●●
●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●●
●●
●
●●●
●●
●●●●
●●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●●●●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●●
●●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
● ●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
● ●
●
●●●
●
●
●
●
●
●
●
●
●
●●●●
●
●●
●●
●
●●●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
● ●
●●
●
●
●
●
●
●
●
●
●●●●
●●●
●●●●●
●
●
●●●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●●
●
●
●
●
●●
●
●
●●●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●●●
●●
●
●●●
●
●
●
●●
●
●●●●●
●●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●
●
●
●
●
●
● ●
●●●
●
●●●●
● ●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●●●
●●●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
● ●
●●
●
●●●
●●●●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
●●●
●
●●
●●
●
●
●
●●
●●
●●
●
● ●
●
●
●
●
●●
●
●
●●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●● ●●●●
●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●
●
●
●●
●●●●
●●
●
●●
●
●
●
●●
●
●
●●●●●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●●●●
●
●
●●
●
●
●
●
●
● ●●●
●●
●●●
●
●
●●
●●
●
●
●●
●●●●
●
●●
●
●●●
●
●
●
●●
●●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
● ●
●●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●●
●
●●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●●●●
●
●●
●●
●●●●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●●●
●
●●●●
●●
●
●●●
●
● ●
●●●●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●●●●●
●
●● ●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●●
●●●
●●●●●●
●●●
●
●
●
●●
●●
●●
●●
●●
●
●
●
●●
●
●●●
●●
●●●●
●
●
●
●
●●
●●
●●
●●
●●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●●●●
●
●●
●
●●
●
●
●●
●●●●
●
●
●●●●●●
●●
●
●
●
●
●
●
●●●
●●
●●
●●
●
●
●
●
●
●
●
●
●●●
●●●
●
●
●●●●●●●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●●
●
●●●
●●●●●●●●
●
●
●
●●
●
●
●
●●●●●●●●●
●
●●●●
● ●●
●
●
●
●
●●
●●●●●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
● ●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●●
●
●●
●
●
●
●●●●
●
●●●
●
●●
●
●
●
●●●●
●
●●●
●●
●
●
●
●
●
●●
●
●●●● ●●●
●●●
●
●●
●
●●
●
●
●
●●●●●
●
●
●●
●
●●●
●
●
●
●●
●
●
●●●●
●
●
●
●●●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●●●
●●
●
●
●●
●●
●
●●●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●●
●
●
●●●●
●
●
●●●
●
●
●
●●
●●
●
●●
●●●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●●●
●
●
●●
●●●
●
●
●
●●
●
●
●
●
●
●●●●●●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●●●●●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●●●
●
●●●
●●
●
●
● ●●
●
●
●
●
●
●
●
●●●●
●
●
●●●●●● ●
●
●
●●●●
●
●
●
●
●
●
●
●●
●
●
●●●
●●●
●●
●●
●
●
●●●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●●●
●
●
●
● ●●
●
●
●
●
●
●
●
●●
●●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●●●●●●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●
●●●
●
●●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●●●●●●
●
●●
●
●
●●●●●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●● ●
●
●
●●●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●
●
●●●
●
●
●
●●●●●●●●●●●●●●●●●
●●
●
●
●●●
●●●
●
●
●
●
●
●●
●
●
●●●
●
●
● ●
●
●
●
●
●
●
●
●
●●●●●●●●●●●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●●●●●
●
●
●●
●
●
●
●
● ●●
●
●●●●
●
●
●●
●
●●●●●●●●●●●●●●
●
●
●
●
●●
●
●
●●●
●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●●●
●
●
●
●●●
●
●●
●
●
●
●
●●
●
●●
●
●
●●
●
●
●●●
●●●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●
●●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●●
●
●
●●
●●
●
●●
●
●
●
●●
●
●
●●
●●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●●●●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●●●●
●
●
●
●●
●●
●●
●
●●●●●
●
●●●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●●
●
●
●
●
●●
●●●
●
●
●
●
●●●
●●
●●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●●●
●
●
●
●
●●
●●
●
●
●
●●
●
●
●
●●
●●●
●
●
●
●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●●●●●
●
●●
●
●
●●●●
●
●
●
●●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●●●● ●●● ●●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●
●●
●
●
●
●●
●
●●●●
●
●
●●
●●
●● ●
●●
●●●●
●●
●
●
●●
●
●●●
●●●●
● ●
●
●●
●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●● ●●
●
●●
●
●●●●
●●
●
●●●●
●
●
●
●●●●
● ●
●●●
●
●
●
●
●●
●●●
●●●
●●
●
●
●
●
●
●
●●●
●
●●
●
●
●●
●
●
●
●
●
●●●
●●●
●●
●●●
●
●●●●●
●
●
●●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●●
●●
●
●●
●
●●●
●
●
●●
●●●●●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●● ●
●
●
●
●
●●
●
●●●
●
●●●●●
●●●●
●
●
●●
●
●●●
●
●
● ●
●
●
●
●
●●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●
●
●●
●
●●●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●●●
●●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●●
●●●●●
●●●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●●●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●●●
●●
●
●
●
●
●
●
●●●
●
●
●●●●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●●●
●
●●●
●●
●
●●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●●●
●
●●●
●●
●●
●
●
●
●
●
●
●●
●●
●
●●●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●● ●
●●●●●
●●●●●●
●●
●●
●
●
●●
●●●●
●
●●
●
●●
●
●
●
●
●●
●
●●●●●●●●
●●●●
●
●●
●
●●
●
●
●
●
●●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●●
●●
●
● ●
●●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●●
●●●
●●
●
●
●●
●●
●●●
●●
●
●
●
●●
●●
●●
●●●●
●
●
●
●
●
●
●
●●●●
●
●
●
●●●
●
●●
●●●●●
●
●
●
●
●
●
●
●●●●
●
●●
●●●
●
●
●
●
●●●●●
●
●●●●●●●●●●●●●●●●●●●●
●
●
●
●
●● ● ●
●
●●
●
●
●
●●
●
●
●●
●
●
●●
●
●●
●
●●
●
● ●
●
●● ● ●●●●●
●
●●●
●
●
●●●
●●●●
●
●
●
●
●●●●●
●
●
●●●
●
●●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●●●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●●
●●●●●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●●●
●
● ●●●●●●
●●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●●●
●
●
●●
●●
●
●
●●●●●●●●●●●●
●●●
●
●●
●
●
●●
●
●●
●●
●
●
●
●
●
●
●
●
●●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●
●
●● ●●● ●
●
●
●
●
●
●
●●
●
● ●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●●●
●●
●
●
●
●
●
●●
●
●●
●
●●●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●●
●
●
●
●
●●
●
●
●●●●
●
●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●●●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●●●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●●●
●
●●●
●●●
●
●
●●
●
●
●
●●●
●
●
●
●●●
●
●●
●●
●
●
●
●
●
●
●●●●
●
●
●●●●●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●●
●●●
●●●
●
●
●●●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●●●
●●●
●●●●
●●●●●
●
●
● ●●●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●●●●●
●●
●
●
●
●
●
●●●●
●
●
●●
●●
●
●●
●
●
●
●
●●●●
●
●
●●
●●●●●●
●
●●
●
●
●
●
●●
●
●●●●●●
●●●
● ●
●
●
●
●●●
●●
● ●
●
●●●
●
●
●●
●●●
●
●
●
●
●
●●●
●●
●●
●●
●
●
●
●●●●
●
●●●
●
●
●
●
●●
●●●
●●●●
●●●●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●● ●●
●
●●
●
●
●
●●●
●●
●●●●
●
●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
● ●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●●●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●●
●●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●● ●● ●●●●
●
● ●
●
●
●
●
●
●●●●
●
●●
●
●●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●●●●
●
●
●
●
● ●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●●
●
●●●●●
●●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●●●●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●●●
●●●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
● ●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●●
●●
●●
●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●
●
●
●●●
●●
●
●
●●
●
●
●
●
●
●
●●
●●●●
●●
●
●●
●
●
●
●●
●
●
●●●●●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●●●●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●● ●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●
●●●●
●
●●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●●
●●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●●●
●
●●●●
●●
●
●●●
●
● ●
●
●●●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●●●●●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●●
●●●
●●●●●●
●●●
●
●
●
●●
●●
●●
●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●
●
●
●
●●
●●
●●
●●
●
●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●●●●
●
●●
●
●●
●
●
●●
●●●●
●
●
●●●●
●●
●●
●
●
●
●
●
●
●●●
●●
● ●
●●
●
●
●
●
●
●
●
●
●●●
●●●
●
●
●●●●●●●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●●
●
●●●
●●●●●●●●
●
●
●
●●
●
●
●
●●●●●●
●●●
●
●●●●
●●●
●
●
●
●
●●
●●●●●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●●●●
●
●●●
●
●
●
●
●
●
●●●●
●
●●●
●●
●
●
●
●
●
●●
●
●●
●●
●●●
●●●
●
●●
●
●
●
●
●
●
●●●●●
●
●
●●
●
●●
●
●
●
●
●●
●
●
●●●●
●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●●
●
●●●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●●
●
●
●●●●
●
●
●●●
●
●
●
●
●
●●
●
●●
●●●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●●
●
●
●
●
●●
●●
●●
●
●
●
●●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●●●
●
●
●●
●●●
●
●●●●
●
●
●
●
●
●●●●●●
●
●
● ●
●
●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●●●●●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●●●
●
●●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●●●
●
●
●●●●●●●
●
●
●●
●●
●
●
●
●
●
●
●
●●
●
●
●●●
●●●
●●
●
●
●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●
●● ●
●
●
●● ●●
●
●
●
●●●
●
●
●
●
●
●●
●●
●●
●
●
●●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●●●●●●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●●●●●●
●
●●
●
●
●●●●●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●●●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●
●
●
● ●●
●
●
●
●●●●
●●●●●
●●●●●
●●●
●●
●
●
●●●
●●●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●●●●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●●
●●●
●
●
●●
●
●
●
●
●●●
●
●●●●
●
●
●●
●
●●●●●●●●●●●●●●
●
●
●
●
●●
●
●
●●●
●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●●●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●●●●
●●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●●
●
●
●
●
● ●●
●
●●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●●
●
●
●●
●●
●
●●
●
●
●
●●
●
●
●●
●●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●●●●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●●●●
●
●
●
●
●
● ●
●●
●
●●●
●●
●
●●●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●●
●
●
●
●
●●
●●●
●
●
●
●
●●●
●●
●●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●●
●●●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●●●●
●
●●
●
●
●●●●
●
●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●●●●
●●●
●●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●
●●
●
●
●
●●
●
●●●●
●
●
●●
●●
●●●
●●
●●●●
●●
●
●
●
●
●
●●●
●●●●
● ●
●
●
●
●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●●●
●
●
●●
●
●●●●
●
●
●
●●
●●
●
●
●
●●●●
●●
●●●
●
●
●
●
●●
●●●
●
●●
●●
●
●
●
●
●
●
●●●
●
●●
●
●
●●
●
●
●
●
●
●●●
● ●●
●●
●●●
●
●●●●●
●
●
●●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●●
●
●●
●
●●●
●
●
●●
●
●
●●●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●●●
●
●
●
●
●●
●
●●●
●
●●●●●
●●●●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●
●
●●
●
●●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●●●●●
●●
●
●
●
●
●
●●
●
●●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●●●
●
●
●●
●
●
●●
●
●
●●
●●
●
●●
●
●
●●
●●●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●●●
●
●●
●●
●
●●
●
●●
●
●
●
●
●●●
●●
●
●
●
●
●
●
●●●
●
●
●●●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●●●
●
●●●●●
●
●●
●●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
● ●
●
●●●●●●●●●●
●●●
●●
● ●
●
●
●
●
●
●
●●●●
●
●●●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●● ●
●●●●●
●●●●●●
●●
●●
●
●
●●
●●●●
●
●●
●
●●
●
●
●
●
●
●●
●●●●●●●●
●●●●
●
●●
●
●●
●●
●
●●●
●
●●●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
● ●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●
●● ●
●
●
●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
● ●
●●
●
● ●
●●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●●
●●●●● ●
●
●●
●●
●●●●●
●
●
●
●●
●●
●●
●● ●●
●
●
●
●
●
●
●
●●●●●
●
●
●●●
●
●●
●●●●●
●
●
●
●
●
●
●
●●●●
●
●●
●●●
●
●
●
●
●●●●●
●
●●●●●●●●●●●●●●●●●●●●
●
●
●
●
●● ●●
●●●
●
●
●
●●
●
●
●●
●●
●●
●
●●●
●●
●
●●
●
●●● ●●●●●
●
●●●
●
●
●●●
●●●●
●
●
●●
●●●●●
●
●
●●●
●
●●●
●
●
●●
●
●●
●●
●●
●
●
●●
●
●●
●
●
●
●
●
●
●
●●●
●
●
●●●
●
●●
●●
●
●
●●
●
●
●
●
●●●
●●
●●●●●●
●●
●
●
●
●●● ●
●
●
●●
●
●
●
●●●
●●●
●
● ●●●●● ●●
●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●●●
●
●●●
●
●
●
●
● ●●●●● ●●●●●●●●●
●
●●
●
●
●●
●
● ●
●●
●
●
●
●
●
●
●
●
●●●●●
●
●
●●●
●
●
●
●●
●
●
●●
●
●●
●
●●
●
●●
●
● ●●
●●●
●●●
●
●
●
●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●●
●●
●
●
●●●
●●
●●
●
●
●●
● ●
●
●●●
● ●
●
●
●
●
●
●●●
●●
●
●●●
●
●
●
●
●
●●
●
●
●
●●●
●
●
●●
●
●
●
●
●●
●
●
●●●●
●
●
●
● ●
●●
●●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●●●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●
●
●● ●
●
● ●
●
●●
●●
●
●●
●●
●
●
●
●●
●●●
●
●●●
●●●
●
●
●●
●
●
●
●●●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
● ●●●
●
●
●●●● ●●
●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●●●
●●●
●●●
●
●
●●●
●
●●
●●
●
●●●
●
●
●●
●
●
●
●●●
●●●
●●● ●
●●●●●
●
●
●●●●
●
●
●
●●
●
●●
●●
●
●
●
●
● ●
●
●
●●●●
●
●
●
●● ●●●
●●
●
●
●
●
●
●●●●
●
●
●●
●●
●
●●
●
●
●
●
●●●●
●
●
●●
●●●●●●
●
●●
●
●
●
●
● ●●● ●●●●●
●●●
●●
●
●
●
●●●
●●●●
●
●●●
●
●
●●
●●●
●
●
●
●
●
●●●● ●● ●
● ●
●
●
●
●●●●
●
●●●
●
●
●
●
●●
●●
●●●●
●●●●
●
●●
●●
●●
●●
●
●●●
●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●●
●●
●
●●●
●●
●●●●
●●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
● ●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●●●●●●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●
●
●●
●
●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●●●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
● ●
●
●●●
●
●
●
●
●
●
●
●
●
● ●●●
●
●●
●●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●●●
●●●
●●●●●
●
●
●●●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●●●●●
●
●
●
●
●●
●
●
●●●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●●●
●●
●
●●●
●
●
●
●●
●
●●●●●
●●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●●●●
●●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●
●●●
●●●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●
●
●●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●
●●
●
●●●
●●●●
●●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●●●
●
●●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
●●●
●
●●
●●
●
●
●
●●
●●
●●
●
● ●
●
●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
● ●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●● ●●● ●
●
●
●
●
●
●●
●
●
●●●
●●
●
●
●
●
●
●
●●●
●● ●
●
●●
●
●
●
●
●
●
●●
●●●●
●●
●
●●
●
●
●
●●
●
●
●●●●●
●
●
●
●
●
●
●●●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●
●
●●●●●
●
●
●●
●
●
●
●
●
●●●●
●●
●●●
●
●
●●
●●
●
●
●●
●●●●
●
●●
●
●●●
●
●
●
●●
●●
●
●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●●●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●●●
●
●
●●●●
●
●●
●●
●●●●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●●●
●
●●●●
●●
●
●●●
●
●●
●●●●
●
●
●
●●
●●●
●
●
●
●
●
●
●
●●●
●
●
●●
●●●●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●●
●●●
●●●●●●
●●●
●
●
●
●●
●●
●●
●●
●●
●
●
●
●●
●
●●●
●●
●●●●
●
●
●
●
●●
●●
● ●
●●
●●●
●
●
●
●● ●
●
●
●
●
●
●
●
●
●●●●●
●
●●
●
●●
●
●
●●
●●●●
●
●
●●●●●●
●●
●
●
●
●
●
●
●●●
●●
●●
●●
●
●
●
●
●
●
●
●
●●●
●●●
●
●
●●●●●● ●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●●
●
●●●
●●●●●●●●
●
●
●
●●
●
●
●
●●●●●●●●●
●
●●●●
● ●●
●
●
●
●
●●
●●●●●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
● ●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●●●
●
●●
●
●
●
●●●●
●
●●●
●
●
●
●
●
●
● ●●●
●
●●●
●●
●
●
●
●
●
●●
●
●●● ● ●●●
●●●
●
● ●
●
●●
●
●
●
●●●●●
●
●
● ●
●
●●●
●
●
●
●●
●
●
●●●●
●
●
●
●●●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●●
●
●
●●
●●
●
●●●
●
●
●
●
●●
●●●
●
●
●●●
●
●
●●
●
●
●●●●
●
●
●●●
●
●
●
●●
●●
●
●●
●●●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●●●●
●
●
●
●
●
●
●
● ●●●●
●
●
●●
●●●
●
●
●
●●
●
●
●
●
●
●●●●●●
●
●
● ●
●
●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●●●●●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●●●
●
●●●
●●
●
●
●●●
●
●
●
●
●
●
●
●●●●
●
●
●●●●●●●
●
●
●●●●
●
●
●
●
●
●
●
●●
●
●
●●●
●●●
●●
●
●●
●
●●●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●● ●
●
●
●
●●●
●
●
●
●
●
●●
●●
●●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●●
●
●
● ●●●●●●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●
●●●
●
●●●
●
●
●●
●●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●●
●●
●
●
●
●●●●●●
●
●●
●
●
●●●●●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●● ●●
●
●
●●●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●●
●
●
●●●
●
●
●
●●●● ●●●●● ●●●●● ●●●
●●
●
●
●●●
●●●
●
●
●
●
●
●●
●
●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●●●●●●●●●●●●
●
●●●
●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●●●●●
●
●
●●
●
●
●
●
●●●
●
●●●●
●
●
●●
●
● ●●●●●
●●●●●●●●
●
●
●
●
●●
●
●
●● ●
●
●
●
●●●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●●●
●
● ●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●●●
●●●●
●●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●●
●
●
●
●●
●
●
●
●
●● ●
●
●●●●
●
●
●
●●
●
●
●
●
●
●
●
●
●●●●●
●
●
●●
●●
●
●●
●
●
●
●●
●
●
●●
●●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●●●●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●●●●
●
●
●
●●
●●
●●
●
●●●●●
●
●●●●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●●
●●
●
●
●
●
●●
●●●
●
●
●
●
●●●
●●
●●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●
●
●●
●●
●
●
●
●●
●
●
●
●●
●●●
●
●
●
●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●●●●●
●
●●
●
●
●●●●
●
●
●
●●●
●
●
●
●●●●
●
●
●
●
●
●
●
●
● ●●●●●●
● ●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●●
●●
●
●
●
●●
●
●●●●
●
●
●●
●●
●●●
●●
●●●●
● ●
●
●
●●
●
●●●
●●●●●●
●
●●
●
●
●●●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●●●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●●●●●●
●
●● ●●
●
●●
●
●●●●
●●
●
●●●●
●
●
●
●●●●
●●
●●●
●
●
●
●
●●
●●●
●●●
●●
●
●
●
●
●
●
●●●
●
●●
●
●
●●
●
●
●
●
●
●●●
●●●
●●
●●●
●
●●●●●
●
●
●●
●
●
●
●
●
●● ●●
●
●
●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●●
●
●●
●
●●●
●
●
●●
●
●●●●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●●●
●
●
●
●
●●
●
●●●
●
●●●●●
●●●●
●
●
●●
●
●●●
●
●
●●
●
●
●
●
●●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●
●
●●●●●●●
●
●●
●
●●
●
●
●●●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●●●
●●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●●●●●
●●●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
● ●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
● ●
●
●
●● ●●
●
●
●●std de
v
log(cpm)
Best results atα<1�Don’t have to use matching inputs�
It is not always the matching input from the same sample that is the most similar to the background in the ChIP. Below are correlations of binned read counts between epigenetic marks in different tissues and their matching inputs, and two single inputs of high and low quality correlated against the same ChIP data.
Most DE genes at α = 0.28.
Few DE genes at α ~ 1.
• α = 1 Very noisy.
• α = 0.28 Less noise at high counts.
• α = 0 No input
subtraction.
Inpu
t vs IP
correla>
on
0.0
0.2
0.4
0.6
0.8
●
●
●
●
●
●
● ●
●
●
●
H3K27ac H3K27me3 H3K36me3 H3K4me1 H3K4me3 H3K9ac H3K9me3
The high quality input correlates more strongly with the ChIPs than
the matching input. Even from different tissues!
§ Matching inputs § High quality input § Low quality input
As a high quality input correlates more strongly with the ChIP data than the matching input, we performed a differential analysis like the one in section 1, but with Bi as a single input for all i. We analysed muscle against liver, and compared matching inputs to two high quality inputs.
#(FD
R < 0.05)
0.0 0.2 0.4 0.6 0.8 1.0
0200
400
600
800
1000
α
– Matching input – Liver input – Brain input
Single liver input doing better than matching inputs!
Single brain input doing as well as matching inputs!
The brain input provides as much power as matching inputs, despite of coming from a very different tissue, and the liver input provides even more power than the matching inputs.
REFERENCES��1. Jiang Zhu, Mazhar Adli, et al. Genome-wide Chromatin State Transitions Associated with Developmental and Environmental Cues. Cell 152, 642–654, January 31, 2013�2. Rory Stark, Gordon Brown. DiffBind : differential binding analysis of ChIP-Seq peak data. Bioconductor http://bioconductor.org/packages/release/bioc/vignettes/DiffBind/inst/doc/DiffBind.pdf�3. Xin Zeng, et al. jMOSAiCS: joint analysis of multiple ChIP-seq datasets. Genome Biology 2013, 14:R38.�4. Zhen Shao, et al. MAnorm: a robust model for quantitave comparison of ChIP-Seq data sets. Genome Biology 2012, 13:R16.�5. Yanchun Bao, et al. Accounting for immunoprecipitation efficiencies in the statistical analysis of ChIP-seq data. BMC Bioinformatics 2013, 14:169��
FOR MORE INFORMATION ON THESE AND OTHER STUDIES PLEASE VISIT WWW.MCRI.EDU.AU�
The inputs compensate for the background, but they also introduce more noise, and often the trade-off is not beneficial. An example of this can be seen below, for a differential analysis between brain and skeletal muscle, again for the H3K36me3 mark, and with the same two high quality inputs used in section 2.
α
#(FD
R < 0.05)
0.0 0.2 0.4 0.6 0.8 1.0
0500
1000
1500
– Matching input – Liver input – Brain input
α = 0 gives most power.
Sometimes not worth it �
We’ve looked at many datasets from the roadmap epigenetics project and have found that often the inputs do not provide any advantage. The situation may change with a more detailed approach, such as in [2-5], but it is always important to ensure that the input is used in the best way, and that it is actually improving the analysis.
A study like this is not possible without large public datasets. On this poster, the NIH roadmap epigenomics project was used: http://www.roadmapepigenomics.org/
a) H3K36me3 Brain vs Liver
H3K36me3 Muscle vs Liver
H3K36me3 Muscle vs Brain
b) H3K36me3 Brain vs Liver