AC102477 = A h@* ߦ< >$^ G޳MB=Z}^(]JH; ۮ2P`x6I2}I܏Okk0;""(2Fjs/ghJJWhvPVbRdARdARdAkRdAkRdA_VZjadhsw $%12%%qVRdAnoAnoARdARdA@Gt%m6((W?D+8 P7(8 (g 8 0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!????????????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??????????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!0(!0(!??0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!??????0(!??0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!??????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!??????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!??????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!????????????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??????????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!????????????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??????????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!0(!????0(!0(!??0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!0(!????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!????????????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??????????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!0(!0(!0(!0(!0(!??0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!0(!0(!0(!0(!0(!??0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!????????????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??????????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!0(!0(!0(!0(!0(!??0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!????????????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!0(!0(!0(!??0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!????0(!??0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!????????0(!??0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!??????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!??????0(!??0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!????????????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!0(!0(!0(!0(!0(!??0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!????????????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!0(!0(!??0(!0(!????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!????????????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!????0(!0(!0(!0(!0(!????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!????????????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!0(!0(!0(!0(!0(!??0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!0(!0(!0(!0(!0(!??0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!????????????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??????????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!0(!????0(!0(!??0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!0(!????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!????????????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??????????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!0(!0(!0(!??0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!??0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!????????????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!????????????????0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!ڒ+b5bj noAmoAmoAnoAnoA4#턬AppInfoDataListH >MρP 19.1.18.0.0%דI(orAutodesk DWG. This file is a Trusted DWG last saved by an Autodesk application or Autodesk licensed application.QβD;D"<ProductInformation name =\"AutoCAD\" build_version=\"I.18.0.0(x64)\" registry_version=\"19.1\" install_id_string=\"ACAD-D001:409\" registry_localeID=\"1033\"/>" oA oA+oAoAoA){jS8C!ʖ*g;<SҍAppInfoDataListH >MρP 19.1.18.0.0%דI(orAutodesk DWG. This file is a Trusted DWG last saved by an Autodesk application or Autodesk licensed application.Oh+'M<prop_set fmt_id="{f29f85e0-4ff9-1068-ab91-08002b27b3d9}"><prop id="8"><string>jadhsw</string></prop><prop id="10"><datetime>2019-06-26T09:11:27</datetime></prop><prop id="258"><string>AutoCAD 2014</string></prop><prop id="259"><string>I.18.0.0</string></prop><prop id="12"><datetime>2019-06-25T05:35:12</datetime></prop></prop_set>QβD;D"<ProductInformation name =\"AutoCAD\" build_version=\"I.18.0.0(x64)\" registry_version=\"19.1\" install_id_string=\"ACAD-D001:409\" registry_localeID=\"1033\"/>" oAoAoAoAoA1ZT5Acad:TextAcad:PlotConfigmonotxt.shxZC:\program files\autodesk\autocad 2014\fonts\yGp" oALoA oAoAoA7}P F )#l֮RI볦< >$0 oAD_oA_oA oA oArW8}RB F @j G̏* @ DȀHȀHȀ?@EJ e /P'H `b0@hh0P AD=GD[34&3$`8 }v4&3$8  `;f7P5%@U:7п4A|3wmRDGpF"35d50.B~e 0@ 0`P@  D0@`P 0` !(@P$@d3`?@@d? @@` @Ph !p 0\@P$0  (  2\71\n::" UpBP{̏?̞e3 7h 4A15P81t< $ 246L/{̏?K\^/y "*`b3?o la$A(aa\`@dd!l] *h\$H T7(eP{X+?L&Y+ ! =`0z0@]pC\1?G6B|  HX1O@P$8 2 jT1#6\/ %`{̏?TZ_|S  ( L53 0n--+$\&9mp@X2)h2 % h`" D242-=D/\?e/  ': ##*08AT⿡wQ4} C" U@9#"TLe4 *P$42D75pBP1R1y Z" 1)53P$!$E$M%?4v$ !\P: 0A $4$"P翺Up\ "" %5;#"d&73q]]]^Q+~ !@P4"" ;d #2"#49"L)1MLX[V0| #hX0\:9#-0'&*"))y,5`@vj`hhQ/<zllj"0ZBR2X w~h  pYl^x@_?96ed wwK` lT{^ xmP ȒRr-%W JS--$Ap-JBf$S-@:b-eX =;D edYm-*=rn*jLn<)HLPWH # أw~Wha=VffӁ|;YL1oTZJd;l/pr->ka R0?Ku!e!k|4yn@S|y2S2|uan|8?X0_}&Yka1c1V..mAlA$?p8c3D }?vyNl=$>gt -u.Nfy}~l=%X[~=z2$ejLh~':yLl< 63wpi%E[lZH$xLr/qme $ഒ0md$yn?W%&Fx/kchrq1m}0&9k$8 اq\v)u` m@" Sb8%'$ Eu lA. Yg(&i2>:}l@ LӳYQN/&"6-q/m>%6/y0 hOv`Oul?,4 +@N?,@ tVB/w^}e+J M- t$"-*@ /E)7Xw} mP?GŬtD YߩҐ)|y*v Y%   b{t@ 1܅ e P6΅ "ҙ0)4Yl- Y&I$L d / //}Zl-pwMF<@Q$ o*  l-v D ﷑]g  l-u F7 l- "Eu[Pu9[l-  ;&Ya.%}[l-bزLF8v,0Q$ ?r4 l-v D ׋|C9fk l-u F7u \l- "G^/[]u9\l-Y&`O#rm$l- M?I4 AZKXm l-g &Д  o#ĮrMu ]l-g 6 l- "&r#u9]l- 馛 h"/.l- v" =tI4ir u ^l-g &Д ..ﶄ l-g 6` l- "..u9^l-p h6, 7%" /^yeXlўy[4&x##{  %k gy T T[y@;l` R2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2-2-2-2-2-2-2-2-2-2- 2- 2- 2- 2- 2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2- 2-!2-"2-#2-$2-%2-&2-'2-(2-)2-*2-+2-,2--2-.2-/2-02-12-22-32-42-52-62-72-82-92-:2-;2-<2-=2->2-?2-@2-A2-B2-C2-D2-E2-F2-G2-H2-I2-J2-K2-L2-M2-N2-O2-P2-Q2-R2-S2-T2-U2-V2-W2-X2-Y2-Z2-[2-\2-]2-^2-_2-`2-a2-b2-c2-d2-e2-f2-g2-h2-i2-j2-k2-l2-m2-n2-o2-p2-q2-r2-s2-t2-u2-v2-w2-x2-y2-z2-{2-|2-}2-~2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2-2.2.2.2.2.2.2.2.2.2. 2. 2. 2. 2. 2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2. 2.!2."2.#2.$2.%2.&2.'2.(2.)2.*2.+2.,2.-2..2./2.02.12.22.32.42.52.62.72.82.92.:2.;2.<2.=2.>2.?2.@2.A2.B2.C2.D2.E2.F2.G2.H2.I2.J2.K2.L2.M2.N2.O2.P2.Q2.R2.S2.T2.U2.V2.W2.X2.Y2.Z2.[2.\2.]2.^2._2.`2.a2.b2.c2.d2.e2.f2.g2.h2.i2.j2.k2.l2.m2.n2.o2.p2.q2.r2.s2.t2.u2.v2.w2.x2.y2.z2.{2.|2.}2.~2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2/2/2/2/2/2/2/2/2/2/ 2/ 2/ 2/ 2/ 2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/ 2/!2/"2/#2/$2/%2/&2/'2/(2/)2/*2/+2/,2/-2/.2//2/02/12/22/32/42/52/62/72/82/92/:2/;2/<2/=2/>2/?2/@2/A2/B2/C2/D2/E2/F2/G2/H2/I2/J2/K2/L2/M2/N2/O2/P2/Q2/R2/S2/T2/U2/V2/W2/X2/Y2/Z2/[2/\2/]2/^2/_2/`2/a2/b2/c2/d2/e2/f2/g2/h2/i2/j2/k2/l2/m2/n2/o2/p2/q2/r2/s2/t2,r((@=" a%,>zR ` wK`thM.MzRr >!` ɊjDa e` L| RG aa $=h` 選g  Fo |, O}!H$\, zoR\ Rۀ |,dp(3}, J!q ?|,DQHC|, f  R |,dC"lSdDMmĘBXJNȀ |,` @*PhVR |, %XpB8.q @|,`  f/p VB8! ,X!vN?H'?~V]Y |, '\D7W!NVN,pƀ |,="LE,FCjq A|, Va[=zR~N |,pAtpRu |,A %MK- %%#?B |,Nh!@FC5q L|, tCi!f"$AFـ |,c  #]'BA "%L|, ,hiNCB R, DB q M|,&$#` EN& ,T"FF ~,$$hNPeGN |,STʈM%*HJ!&q N|,   R>`6x|IR$N|, ];fCհZJB >|, ed2H?$epKB ^ },%0Zn(?vA %Y:Y,p h#IwB z,ڬ@)Pp "-xB q Z,#G$jHMyB }; |,(#1zB |,` Qȁ !&{B D |, \#q"|A %a[|,g`!P #y)}B ҄u[|,ĝe~B 稀 |,` ,A -8[|,` \CB u\,$I#NmYA %\|,8z.B S|,Nd+NA ݍ\|,dp(].%PA 5%$],hd H V"y!],U.SFw ,7^x"VB n |,8#p aA %9^},%*=#@R$I#YB ;u^~,$! {10a B I },%7tIŒF|FCE |,lY"Bp #L`A E%iH_~,$$#H)6'N|"H,%G_|,gE!E%@_,$Kh%U"^a8F:},_~,$$$\ F"q `,rEP MzA A%`~, $C%-aJ!*Ȅ~,$@%8*N%bx&|FnC |,#톔B )Zq a|, C. A 0%51a|,"\ῖB $z|,XLCE#`A %@a~,%Lk#Z~&!cB S,ub~, $\ǯ#\&=8B },%1EjN&=8A ; ~,sq&/B p|,$4^"f"?A 8%5^c~,h}j&7A N%}c|,@N/&B `y!c|,p=iMUNl |,&(;lY(kFq d~,$=&nY&mbIj% ;d~,}$=lY"-W~,E$=M|Y'N, b |,A|YXaN, q e|, *$#F쎀 |,&712@pe'Fd |,#%=(B ̀ ,Oű B q f|,pp dpa8"h%9f|,!*\a8E%Pf,$P`(}B =!|,&R3p !B YHq g,%GAە'` M0zB ) |,L7}FTzB |, 2b2!zB 5 |,C,ZnƏoSuzI%-h|, L}A Fuh|,` "wdz_RqTzFk |, 4_ߍ,+l|F_ , "Ɍgr/ @h.@ R%Ji,"2 aOߧM,B ui, !ۗ&\LdB v ,sV+`FdB ŀ |,8.mk6dFC:q j,"(%]'&oNLՀ ,]Y]$0q(/J!{| ,"w)d"NNj,DFMfuk,K)|@ij98dB W |,&@$'A %k|,&`$^&B |,` "NE'-B q l-$a&B < |,&BCt$%# A /%\l|,!"<(\Y%l},%_Td$'Ny!m|,&OF=#&9I! %+m|,&D.! A k%+m|,` "bn#{B !|,&p"dA8%/n|,d`h.Y F~un~, $R.Y FC: ,"@R"q|. Fˤ ~,F$Q5. B q o,S. A %%}o|,8-aB B}, %{V-EJN! ,&^T|-Frq p|,&2.A %Ap|,p.B |,8/B R |,&S3#$}(B8qKq q|,.1F |,` p(.A Yq,4-iB Eׄ|,C.9M,r,p(?-iDGn.rl, (v'l' H 0vԀfրl"2wB[qsl*0wTBel(Rw^:lHJ0w_{ue%slrxR+ut`yxV}tLJ"xZ3xȊ$wL ^Eq tlh*yZ\Rquh,0yV}udG2yWm,ud/80yZ⺈hG6rzR:}vcdVq vd?6zZd0xBzZOhFF{V3q wd>{ZRq whL0{Vk3}AwdBR{^pl :T0|Z}xhbZ|VxdirXj|Vӄd?b|Zx`h}^۷uylj}^҄lihfL ^lGr}^&-lt0~^guzl7j~^@lp0~^W0l&/x0~^|z^Sgu{|b^'ل|v^.%|~\̓6{|?0@Rzy|`Z@V~?d|D ZFh? H^ :l_A^(y}leH^#Ul"0A^S҈l%]A^Pl20B_fi<~~:YBZ=h2L Vy~tB[BV9t?J0CV?}vRUCVxLdZCVdiDQ;`eY'DRZq cjBYDR~%YDR`jX0DRE `rE^>u|R0E^o*QAE^̄lRD^oJ]F^'uoj] F^=oJ]3F^2obQF^0duh~%mTGQZac*B]GQ:pVGRBq` jDRoq` WHR y`꒦HViO}g UHV1gUHVWt⪪IRsVq`_Y'IRԀq rYIRrhRCG`J`0JRu`JD^Jl J^No ZQAJ]\lꚤ0K^T} o]K]'o l ^ o ]3K^Cl zL]EQ LRxq cʊ"!LRjp*^HQ:p)ڲMR} `*vD^?|)Ҵ0M^|tD^3|N] li0N^[}le'@ R5uycjQNQG` RSOV}d]OZZhU!OZyh RLZ[hzT0PVG:ugdRF#c)Y P^9ojd^oJ][Q^u|*l0Q^ф|ɚQ^lL ^|>l°R^-ul ı0R^ral jL ^7l ƱD^B]liȲ0S^.yaoda'SR,q ckQSRc*"uSR6p"̳0TRqp2OTR` QHTVhHdU.TZEyz"Q!UZ_uxK UVgi]hURfcd^0IlK"nV^Yuok Q;V^(nk#!V^*q4lγHR`?:д0WVyd_JRWZhRKH]l$d ]%u'lBNX^NqldYX^blkRleD ^GleֵH^lض0Y^yljYY^]lkrIY^ld ]LClb0Z^vu leܷH_#'|IZR `޷LV,Όd0[ZF%}hwLmAK[^ l_wL ^Ny)ldg⸰[ZEƈ h_G\Z b}kW[i7hH)WHP^~OR\rG}]RB}`_0]R%}0`&']]ZHhnd]V[}deG򼰀^RJ@y`0^^blڮD ^lKBH^hld7U _^%yl?Ұ0_^Yoi_^E l?z_^m܈l_"q,`^7ylA`^ ld ^l_ꞧD ]%5ld?\0a^u l+\ia^nldD ^ yylLRº`BbV}gZ2h'"Bb^go'' ^}ocRJ}0`0c^_lCHZ9 xcV8dҴd^KylL#>H^&lc H^ˆ|l+ =H^|l3U(e^4ylcY!e^$l]e]l#0e^Ц l3ðf^yo e(f^nlU(f^fox]YWl3 =AJg^qu l?*00g^|$l J@DZBh SİgV3`dlc0hRu`lkD^|{ưh^ r|̃D^;|"Ȱi^>q4|$0iR\q rQiRK2 `;AHiUC%dK]jY# hwU!jZ~yh*jZERxi,0jVg JUkQ%F2!",SY k^H} oLcd^Mbo][k^߄l 0l^TyAlolRD`?(D Vgg#lZ =h_U m^;ylgm^Rld*H^lb"H]l 0n^Xu l_ڶn^+~"JYn^lDGQ/n^덈~gio^yl"wIo^l"&o^D|?o]u%l]5p^#u l"yp^lK[*5p^ o#Qp^ l2q^uo̺"qZh00qV yt23MBqVGd?40rV}vUrUP%)OdGYrZ hLrVd,0sQ[% 7`,:ΰsQr%I`+8L ^nuol"$s^քokQ4t]@&|L2̰t^l} ~L]t^vol ^&o]3u^% ulc6Ͱu^Wu[l#G` Q4`l,0uRtq#q,vR/~up@0vQ%$atB/v)#l֮RI볰 oAʕoA oAoAoAq4 6t? D0vԀiX 0wzf!T@ITB rr ahwB ˄dL RDŽ`+L0xRu`;JҰx^bl ND^Ho Q4x^kX|Bаy^u~ ]y^{o+l ^o ]3y^+|CFѰz^ݠqN#Q zRPq `<0zR ` LV;dsY{Zkyh3ư{Zhm#L-H^ld ^՞l0|^yl"HH^)lSQj|^{l_CVհ|^l˃P,}^ZyU }^l;T0}^VuWlMcZLZBhI+X0~VX0ut+\DRƣ`bذ~]~ldL ^u lfٰ^uo U^Mq4|sd'@ R:Ɉ`d VF wQ;ZļyhZH0Z҄k[Q;V) drJRr-Y[^uoMYA^?q'lM\)Rb`sUvVEadU;ZչyhW`0^wulhH^Mlkn۰^ҳl+Z)^{"ylgU ^7l?l0^ŔqCl tDZ̏ hrܰZ0q hvDV>q dohV< d-@ VF; dmv"Vq gQ.V!q d'Y'VedB?x0Zwh_QIYhp0^du l{]^)Ll_&ɰ]8%o˫i5^&u lb?U ^Aوl^ZqCl޷DY%ahzްV} d0Ro_`|D^Jl ~D^anlఀ^Uul.D^q4l!0RF r.#QR& `H#z!Vyd]ZhAU!Z@vyhNLZx+z0VKugdRVcY ^Ąnt^o#][^6uln0^q4lBRٔ`6HVˈd?]UZyh:1^Wl/d ^l?ۀ0^ 5lQ/^uuyl:]\^Al "A!^l z^y$'U ^tyl_"i'])l' 0^n lZ*^Fl,0^ yl&v^ lg_d ^2l_D ]&l.]^l?200^ql;D ^>:lH20?20@20A20B20C20D20E20F20G20H20I20J20K20L20M20N20O20P20Q20R20S20T20U20V20W20X20Y20Z20[20\20]20^20_20`20a20b20c20d20e20f20g20h20i20j20k20l20m20n20o20p20q20r20s20t20u20v20w20x20y20z20{20|20}20~20202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202021212121212121212121 21 21 21 21 21212121212121212121212121212121212121 21!21"21#21$21%21&21'21(21)21*21+21,21-21.21/21021121221321421521621721821921:21;21<21=21>21?21@21A21B21C21D21E21F2/v~((@#|. G!l@ L`fR^ #J`77 HdRj #(WwK` ;. |,!%0$#a2B hq |,  뎔+@b *X3A |, Nt(JCFV4B 5;~,$7.x=Ԉ# V5B z |,%aH,(M6J q |,OP}! vX7QeZ |, Sht8ى&X8J!8 |,g Ah 3R- ZM,9M=e|,6tFHٞV:B1Iu|,\.Yd ށ ;Jɀ |,_Jz!!B u-!NN?A %|,ee@B |,.WBąXAA %U |,' #&9BB \u|,7wK`  &%#CB  }, $lz&MDB8 }, iEB ݀ |,H!F"(Sq |, !VGFU |,lY"I,,VHA8;%|,C !II! %-*|,Y rYJE$p|,k! nNKA s%(, paddLB rq8,"/"8tr?V>fMB JR |,!ާC&1NB >q ,p jL"$RfOA +%0, 9$F\fPB ,ɀe'4QB m |,{hIOzZfRA %&}, %x){j^:fSA %E~,N$bdDʀidTA p%!6|,!u"-QUB a},|,VB q |,`e ,,WB |,`  p.5XB |, Y@ M`fYB  |,8&X:%8QZBY.q ,XW [E3Y|,"!\A %1P #u<]B '!|,82k%(=f^B Cq |,!_B 3€ ,.e`"%|, ,aF}|,!"`Y!x&)bB Kq ,%R3! cI!%!- #dFp|,N#D!e" ! |, .efFnq |, d\'1gB8} ,#0P 'hB MQ |,l+DiJ! |, "0Q lYjFq , 8 kB - |,`8P {lB & |,& >z &mA %|,&p"i W"A&q"nI{,q}J&(oFyy!,gT&!pJNIƀ |,&%Vk&%#qF |,&%quЃj&%rB 7q |,9rY&]'sB810 |,{zB:!H!N"l+VtN,̀ ~,$-qyNINuJ! |,p2Nz&vA |, 뢭AhN wA ?|,dWաHxNv"*+XxB Fy!|,#`(NlXyA č|,@B?AzNxzB u, ?rff{A %K|,!x! 6xf|Be,t#R3|YV"Ef}F[}p ,0"@ʀ`r"%u` hf" Qy`fyVTudon""yx ,0"vh$0",dhjd0"eqcP]Klɺ*"M lIr"~nlI 0{R2sxql){^lHv"py>lIxb|R~j!`z"qdI"ȍdi(0" tȚ~"{q`v"Iy r\Y2%#ph~" `@0~U2%` 0"wOu lIꂠ~^$-l*Rض0PZh+bڶPV`Մd+jܷL ROu.c+r"P^RoKzU;Q^oK""yQ^SGo" Q^xuH/lQ'QR'@q /rjQRQ$/cˊYRR `+20RRq0`+IM[RR2`r] SUׅ0d$U.SZy0Q!SZu1k r"%SV΄gKJ]hTRVc+jd^oYT^Tu2orQ;T^7Sl̳0U^}oo2"U^lL ^u3|꺰U^~""V^okQV^전lk 0V^gFu4l V^uh4lOQ'WQz$V4cˢQWREc"WRHu5`*򼰀WRJVq5` EXRZs`] XV\ydgU.XZy6z Q!XZڄk"(YV5g:]hYR݄cd]sA7oK"Y^} 7~kQ;Z^ȝ~kZ^oo"Z^]u8lH2Z^ӊqA8lKBA[R.`[VౌfK#[VIu9g"[V3t\RFq9`Y'\Q$.9rY\QS%:rhQˍ:`l]a%y :`l 0]^xlKL ^|^u;oH"QA]^Wel+0^^o+]^];o,l ^N| $ګ+]3^^Ao+" _]$oB""`]V>o"a^( l İa]>>lQ'aRYq ?c *QaRb #bRpKCŰbR0q?pL[ =AbRҸy@`3] bVEdCU.cYl@zLJ"Y cY%M@h20cVKy'Ag ]hcR'cL+Ud]%AllJ0d]Ao 3Q;d^uBo Z"]"d]%:Bl0eR]~}:B`A$eU%Bds]eZu Chl{9e^8lßU f^Olk0f]%/Clf^ou Dl zRH^o]g^x.l"Ȱg^`lX#mhc%.El k$7D ]ElCT #uh$El?#yh$ElPr#~hy!Fl+"RD ^le0#ha$m:Fl_LR6Y]`gVH#h%,Ggcgh#hIy Gd_:H #hMkkgY% =Ghg"#hau0HxO#hh?캬0#hRd0HQ %U;H`ZU#h$IlWd QRV"Il.˰#hKDuIl 2DY%=Ih,.4H]v'Jh40#hJh{$0#hJvEl'#hfq22?22@22A22B22C22D22E22F22G22H22I22J22K22L22M22N22O22P22Q22R22S22T22U22V22W22X22Y22Z22[22\22]22^22_22`22a22b22c22d22e22f22g22h22i22j22k22l22m22n22o22p22q22r22s22t22u22v22w22x22y22z22{22|22}22~2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222221Hf$S#@ p# ʢ؎X`T$ #j"ږb0hf# q T#` HxMFNb@  RG #4 Ӗ/Z-P" R ,# ,5} 3o6D R$T|,!gx|R,d#<uU, d E}9?$Rπ },%$<]x [dR$NU|,N`yЖudR`ڄ,# 8Oad#eq V,#̮ Mc@/Hk}d#Aހ },"@ py! !M,m$V},%!֘!RI|,d"ܼ e@APLPmLYRq W},%.D{NNR[ },%-68fRL },%x Z?x@BMUՀ , R{q X},% nH)HЕA8JN| },%"Ёe%eRJǁ " %ήVR ,"qκsRU Y|,`e"A҉N,lcuY},%SL-yJ? |,rR , pM#)<&) J!Jq Z|,{ }^H.5"!E$rΌZ|,!U_J:|"F$lY` Xtw:|#R ,L 6]<´@ $Rƅ[, EwcRA %J!q(u[,D 'NpZMv~#߁ ,@ h̲PN6;@#!%[|,N񄅥5;JH(N,u\|,dCT u%qFA )N, |,'_ '+ <~*Fo ,y?>)X~+N |,h! oݝ@1FҀ,I!%]|,!XVir5f-Ju]|, 8Vс)ߎA .Fİ , 2qB7G"5/B X |,& [j(I;E0B q ^-iq˃apMȈVh1B  |,&(.\~suU2h2A $^," _KO8h#%^|,Y ߣv92dlI!4Ae$>_|,` " *GAKObtA 5I!$ ͌_|,&:H}K{@$h6B ZUq8_, LO)1iIN7FY1 ,P 5jz~A 8Fq `|,&L M7<OL A 9B a2 |,8 j3qYO"=:"q"΀ |,& cqS[SND;R%Y`|,& ]ƁmA K""Z$ьe,%41`;m\耀NF<l,fNh2!uL[ρC#Zʀ },8 qhL%foN#q f|,NH-09QI%f~,8 t<(+fJ# C|,{ WH9#)%$f,O`eSX xb-*#320g|, \AH~?H0U"H,g|,!#wPY^VB},g, QP`$~HA WA $:g,%f. C$CXEpe%Uh|,#"{7{YN,}y!h|,5n"xy{|{ZE h|,d"]'pp[F>|, H\"$q i|,&!9G]I!i|,d }YUY^Bs#,R I}YY_FI |, RE{{`Bezq j|,!OuaMY%%j,s^bRk_l !&:~Ɇ=McM,%u8|bR",gJ! , >!S@~&]EDhRq l|, Һ<@^QUiE5l,/:w7~jB YNMc掀kA8n%@l|,&s?q88lF um,tFq88mA g%Gm|,&XppnJ!)|,%E%61%51oFu ,$ $2&2pA n~,#c%4&4qB un|,&s"qeerA n|,%`HusA y%Mn|,!H%2D%2tB ty!o|,F$8F&8uA 'Ho},$V$=8x&=8vB T~,N{N{$9m%9wRJ },%;$63&6xB :q p,]$)=&)=yJ! ,%sO$)=&)=zB / },%kq葿{"}Cx |, H$8&8|F %q q|,Nug}A8 %Qq,`$&~E%q|,%T )$&B 'l$Aql,$"?f2qrl'H 0"?נl" 2`?bl B 0`Ԁ?ܦl(R0"?Uqsl(Z0"?7%}slj"?B lr"?*|r"?s.$Mt| 0"?2y tr@"w? `H" }"s?d2 0"o?uuhG"o?6yuhHz"k?x(:0c]K>%Uud20"c?u vpB 0"_?oRP]d]%vohDX"W?XȄ |hz0"N?-kwl(&"F?%wlH(0"??ywl."7?lȪ00"/?DqKx|2s"+?3?`_40"'?Vqxt.fVKň tGg00"?y yzHH2"?f("4" ?b""w?@`:#s?[qzl>"?%zl40"?b%]z|2hR2yk~L"ۈ?=q{l2"_?ol(0"È?r|Ȣ6"?`qK{'G"?S%|`h*"S?y |cǧ# RWdb6#S?Fh#S?Èu}h("S?ulH#S?olh@p#S?7+|H0"?6ulD$R?%]l$"s?Stqgx:P0"k?BՀt2R"g?q`JTk#O?@Y`?RV"c?qf""Z?db^#S?vu d d0"O?A` b"G?[lf"??lj"7?vq|l0"3?@|p0".?%l t0pZy>o7""#?w!}` l0"?ey `zbg"?~ʄg"H"?Xh/t#c?~yh\0"?6%mx^"?% gIP]2p%a`)v"?'oiPT?eklj#c?|}lr"ׇ?7l|0"χ?qn""LJ?U}l 0"b?%yl*"c? yQl*^#g?ju`""k?Ktat**0u?)#l֮RI볦< >$^ G0 oAoA oA loA oA  .tuԀ?.d |0v?5or!` 2~vT?$~aPBvJ8`R0v^qlj*0w^dqljw^%lJ*0w^glJ"0w^杀|*B0x^rzq|*"~x^u|)0x_yiDlX R1! `0yR6Qy `&Ox0yVτd麌0yZ;hJl0yZjh:[z^Pul%l0z^DAl_2nz^q-lj0zYRhr{VNu d r{R\`J0{^cl 0{^l 0|^Snq|z0|]Ձrlr0|^ oT ^jh|*r}^q|j0}^l²}] %lʴ0}^ ljʸ0~^٥ql򶭰~^?lj򾯰~^lj~^l °^ q|Jʾ^F~JT ^R|ʰ0\6|*0@S--e`E@Z h VHR7r_pZhQA^\y~oe A^rok t ^!lo0A^l隴0B^eyl`H^.lJ®TB^`l7d ^lfC^կuWlJƱDZ^hKȲ0CV ydK"M@ VQ gYDRڕu` 20DRI` :̳DRp:дD^y lBNER&y`_"] EVgdQ!EZCh]E^u!lBP0FZuh"RFVdJLL Ryp+JDD^x|KJT0G^z)q'|IRRkGRP`JHD V#}dZԵDVgk*YvHVydk"LHVȞde']UHV/}d Bγ@ VzgIZ]4IVaudIRҴIR9q`'orHR`\0IVd?b*JZyhXjH^ld ^Ulr&D ^pՈl0Km*yl_K^k2l D ^lH:D ^23?23@23A23B23C23D23E23F23G23H23I23J23K23L23M23N23O23P23Q23R23S23T23U23V23W23X23Y23Z23[23\23]23^23_23`23a23b23c23d23e23f23g23h23i23j23k23l23m23n23o23p23q23r23s23t23u23v23w23x23y23z23{23|23}23~23232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232324242424242424242424 24 24 24 24 24242424242424242424242424242424242424 24!24"24#24$24%24&24'24(24)24*24+24,24-24.24/24024124224324424524622((@#OJ`HX f|RX #)G!/8o4efR`q #daDgD6)d\h B #<%g_FaQhh R |, 5X{A(pDyx$ f R׀ |, nuKDHP ),?zf FVq ,CM?D_~f R̀ ~,`8HĎzHS(hR: |,!%8V6hR4 ~,n|Y D>hFDq ,|Y41CͿ hR{S , FqfB  |,p1, vfB À |, Nʥ.ځh ± fB [kq ,8}Ö2e\fBe8 |,bzj7CDCR0 |,wK` 㕝N |,=NJNYdq |,?S%F*RQ |,<[ʈʼn{ޘ{RU< , 쁒~B85 |,`8 >YNUq |,!p(B |,Y'uѕ@ ʷ, ppF, ֑ NYDhq |,`8 1!RZ |,e@ˤ*u"R󷂀 ,ޅ-#]Yڀ ,  \~VTDh$RNq |, }[g*-tANmxVh%N,گ |,Y=D9NS޾rh&J!" |, FυʈJYV=~^zh'B |,jJ$Vf"(N,q |, FDz1N"AU[f)R ,TIN"f*B * |,epLLӳYQNTh+B B |, 4B'0#NGڑ>Ph,RɁ|, H\dj ?qN>)M,-FSu|,h! q0$1INOm1".JN ,\ VEp/F( |,d 0ѧN=3"0FYq |, "C1!V.,uE1Q { , 3Nb+nA82N3 |,E*جNS6W|@ 3R݁, INK\TA 4N;u|,ȲE:P!Nݘn\YN5I!7N|,&,,6B8`|,[zAH,ԝ,7FB |,č,ҝ,8Nnq |, ؁e?e9Ep쾍,/#e2e:"f|, <h*yՍ;F |,!K2H*AJ{Є|,& !p?J! |,)yH{{@A q%E|,,a($%&AA b%1|,&(~%&BA8%q"|,p,%&CF#m},|, kH%&DB &Qq |,1{%}&}EB F ~,ooH%X&FN, ,%&GI%|,C.)p=JHI!%)|,C Sb8ZA IB &y!|,fNh2!s8H2)hA JN,2 ,p H 6k@A KB= |,!HiŶp/t1LQ q |,B骬<ۂMJ!ɀ |, Qm`I!NA81|,%- 6PXt1aA OB @|, , {X0fMqB y!|,&2%NNrA %(},%&yN{NsB ф|,ɑtA fN|,&ӍuB (u|,&Nځ8֑8vB ~,$s" "$) &)wB r ,H IxB ysq |,8VeeyB ~,.$J%l&zB ,o,%6&{B } |,N%&|B q ό,$&v.}A R%1|,%\'c.qu~B 资|,%_T6.= B @$l, (`vvql' H 0`T"$l" H" }`u`* 0`N ߙtBaV@qtJ0aV#}tRzaVDFt?Z0aV[dbZLyh0bZрkPV'dH"bR`Z$0c^qlbc]%9lȊ0c^i}+lRxcQi`zdQ%`hR$0dQ%rRT Ry%`HR&d^B|H&e] l.e]%l00e^ q2|2seQpd`40fV} dg':fZ;=q&hh80fZˍkPV_d >gRq`H@0g^zqlH2g^}|00g^}+l:qhRAy `.hRG`(@0hRhyrT Q%`Bi^u l(>i^dy%lw<0iRw`_\ V~ʄd"jZBuh @pj^Ml\ ]xl$0j^>q-li"JkZqhL0kVUut2NlkVd:P0kUR%%d)RVlV ud)ZX0lV4d)bZlRq`\R `ZJmQ%`irL0mR/u p:`0mRE`)^m^2l)d0n^iqlIh0n^}+oI"ynR`bP0nU%tIB^oVy d bVjoZ-}xijh0oV,gbPR3`BNpQ4%pI*Vp^Wu | :L0p^Dl 2\0p]%lnq^u ll0q]E%ul)p0q^DŽ lIvq^Àl|0r^ql~r^buQ~"ѢrR `*rRԀ`*0sRhq`*"sRqp^sRD`"sVe#tU'gF/U,tZYy xJp0tV@d*2vtRcI"R0qp~u^+:oP^FHu2|鲀`"̼ %r"EkvR{}`ڌ0vRk` l0vRqrj"QvU2R`fnwVG} dGb" Lz"w^/Ԅlrcw]l?\"/̼%u l bgxZ3=uoOU x]%Ql)\ix^Fƌ l/fy^3ggulZy^zl_J:y]%n#Yy^9 o&"Yz^Lulj6z^ygl$zZchJ0zVdjJ0{RΌq`r"7̼A%Q!nj#^k ljz{^zl R|^Mq|JJ|]1S~JzT ]%"|J0|^-|*z0}^qnJ"}^ҀlJ"4Mlʢ}]%l ʬ"4Zu }"~^P|Ҩ0~^19oj"`^l 0a|q|Ҹ0^#|ꢦ]J~*X^$l/#8f/ydjY"8 {o"π@VLd S"^Jlo%e AV4yoe A^4$oj"AZGxj"0ވwE_YBVoydꪾBU%Ad ı0","ug+"B]4,%g+#CViud""ECVK}t$!C^4t݄d :Ҵ#(IfK# DR8ucZ"D^oj"D^>q'JIDY4q}`j"ݾEVj%u g$#mEZyk+JQOEYvAk#EZ. k]vFU%9gUiFRvr} c"#FV+ygzQ\FR{cjUGRu`*޷#(q`jK"RꝀ rKJ"GRkc "]-HRxu` "$iq`"NHR@ c"HQ%`"-IVt}dQpIROu&hBJ#,pQkK2#I^lU J^ylZFJ]M%lW"iJZ5 l40J^ql誮",kylh*u"T]Ѕ l7d ]l?Ҭ0K^fπl"UL^54ylj"qL^֟l:"0l B\#7̼%o"EM^u l?R"4,o$w"";̼%l_뒊#<ք l 0"?̼Jylj_MN^5Eu l%d ^Pbl*@^Puoj"OY5z"OVvyg#]OVygZhRV}` ʘ0"@Yfc "PRw=c+"QP]*$n+$]PQ$n`] QZ4Lb.d$WQ!QZhG]Q^`u!oK" QZoWkk"RVmut0"DuP`"R^o+QiR^~K"S^:y-lH*~#G̼$Ǎ`"]SU$ߍg2"SVugQ}TU $&ʍf$T^N_jq!deU\TV^}gk"TU$g2]4UV} g*"5UR2q`'(0"7̼$ۍ`#4 d:|0"4yhHB|$4 ld R5׻l_bx#7̼$oD#WZ5\u lb]5W]5x$̍l?"W^ l_z"WVP؈oe#yX] $ o#X^#6ÍlGx R `HXU<$g#QYVq" d_" YV{gg"5YQ `ff"x^ o#aZ^~y lHXAZ]$ȍ le,0"$fq6 l,uX Ri`_"U[U$ d"Y$[U$R΍ dƷO"Z6y h#y[Z賌h#\Y kk#\Zcy h"# \Zh"\Z}K hU]V zy d"e]Y" kķ#]Vdu dK]]R$5̰eP%1@ #4p #424924:24;24<24=24>24?24@24A24B24C24D24E24F24G24H24I24J24K24L24M24N24O24P24Q24R24S24T24U24V24W24X24Y24Z24[24\24]24^24_24`24a24b24c24d24e24f24g24h24i24j24k24l24m24n24o24p24q24r24s24t24u24v24w24x24y24z24{24|24}24~24242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242425252525252525252525 25 25 25 25 25252525252525252525252525252525252525 25!25"25#25$25%25&25'25(25)25*25+25,25-25.25/25025125225325425525625725825925:25;25<25=248$&` IHAm{|~"w#>sl 6l(p Oo RDq l J R\ h!I E$$|,oY(hI  R+|,b )|,I  Rq |,a & N 8 R |, CN, , #Ģ h6i I!$ƽ,0JNIu, (hX,J!R |,~tC,R$z|,GEHp B ܄, NYRفe,%2F2du|,mY#2eBe- |,8A /$Ǎ|,8R u,L鑒F_ր , !Ep$|,`8X%5rkRN$£|,` TC/RE$R,%2 A8|,N\5QV~B8q8,X{P IM B /K ,TCP Y  R2q ,Uʤϑ !B85l |,'DT], "JJ ,)LӐ #R  |,J $M,,HX!UCQ %Fpޠu|,dpCRY&IN$ұ,ˑ 'B Ƅ|,pU (J!^Tq ,PǑ )F |,& %ߗbU #N,` "( +MY%|,C` O,J!Ky!,"p$-A $|,d" .J! ,"D/e/FA |,"0E,,\YNI"81Fu|,CUp 2NZ ,%!3E]$|,p,4A C,"/e5A8!,6A\,6F1},|,'\(al` 7F] |,C` c"8M,7$,u9B u,&!1 :A $ލ|,h!'0W/$I ;A %|,hkå8R&Ā ,&(zr,?J! 1mQ @A Pe,'.eAN,tu,YmBFa |,!CN= |, DFCxq ,(/EB x' 1lFB 0 |,(GA Y|,5m#\u ,0lIE, |,NA JA y$ޥ ,0 KB ˈ!|,`80#Jq !,- I!MF H |,p,NB ,TEOB  ,6/EPB bq ",""H &QJe |,dCT &RE%", 6eaaym%SEY", M TE$Ǎ#,B;n!DUE$6ƍ#,+_ Ss~V"0%#,0WI!$"ˍ#-/XB pJ#ց$o,'"GVT|$$`( H"~Vb RQ$d# lp# y%d0 ˆh'"̬ ^mlWԀɧly vy&| 0 lLJ"W l?"egX^FĈlw& by'l"(Z {l_"R ('lg"ծ l_g",Q:y(lG_&voO#\S?pl?40bJl/2sy)l/"<~'l}_O6}/|'4s *"Ru *lZ }E B9}*o"m\Zkk'P]zu+d@0cPo'"sY?oU^^u,lgH0^^~Qc^^3 |GL0^^3l6_^u-~W)_^5oU_^ލlPl_^*o/"yx`^&u.oy,`^_l7F",8l*Hn`^lB"ûn/lzDoa^>} /|G>a]3n/~r"Ua^ ~"b^3_u0l(|F";:%a>li\L ^ |'p^}~)"rq]3 ?o7Iq^3i} ?o"%q]/$?lGq^2y?lrR|y@`?"-rU%%&@drZ hUr^2وo#}s^CyA]|s^el""-s^ekl"s^lYpt_#E0Bl"0tRy BrExR=͈cxR`"|uR yCcx^Loex^cl&je"YoFoh%-.Dofgx]%-.Dl&wXiXqDoFx^5G~hQ1yE~x^l,%5El"8' fT&ȁJFl_X/m}rFlTq;uF`"xR6Aƈ`"<F%U)Gc_8YGjyGlzW"%-6Gd0KuGd"LMp.HdXR%7HhWqHlX!_ohgD`yIoxZkl"hwoxUP ~fh u JlW"P^l~&xZ~Gx^ňlLSyK~x]5%Kox^$xurKlEgc\hW"RuLdw"R#`JUƉO%m,LlʺVDY4%e*L~\ω uMoO"Ӊc}:MlO"R4Ǡ reP'߉z$Ms%T' }Nh_#B$NcE_X"%َN`_"'@]5$NkG\5 uOd&_UCd_lA^65#r| ^b%rOZ)p5@25A25B25C25D25E25F25G25H25I25J25K25L25M25N25O25P25Q25R25S25T25U25V25W25X25Y25Z25[25\25]25^25_25`25a25b25c25d25e25f25g25h25i25j25k25l25m25n25o25p25q25r25s25t25u25v25w25x25y25z25{25|25}25~25252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252526262626262626262626 26 26 26 26 26262626262626262626262626262626262626 26!26"26#26$26%26&26'26(26)26*26+26,26-26.26/26026126226326426526626726826926:26;26<26=26>26?26@26A26B26C26D25?vPQdmNYhO&hR:2Qd+-xjp  "qYQk "rM$[i. "r |,pJhhx''7 "qR|,b , "qR|,` hW^''"qS# hNC"qj%bS, hD"q%S,0"q%pS, Jhx8"q]T|,Y֤Cp"q?%emT|,JxN"rDqeT, r Y"qK%qaT,1"rݾuU|,mY,"r ~,9p8Oĝ"q%YyU|,-ĝ"r.,8Y"q7%u{V,@!"q%yhV|,`8h2;Bo"qV|,a 2"qbz=V,1 "rEq8W|,NLhNS%,i"rg , hDc - "qڔ, h&z "rEτ,hAvs "qNZX|,&![ "r9uX,w "rL |,& "qd%X,C1 "ruY|,ep ْY"qH%}Y,@~ "q%|Y|,, "r1w!,h "rq Z|,&&ib'qb(Z,` "( "qbUZ|,C g"r !,Jh&"qc%[|,d" "q%[,1d"q[%[|,-f"r},[,hh!C"q%\|,-7kC"q2\,&!"q1\|,-,"r},\,Jh0d"r$q ], hMxEA,"qq%]|, _ob ZjhBXN1` %qo%]|,C` XN)rܭ!, "r=q ^, {!XV!"rZ |,h!h)?,"qS%^|, Òo۪t8$^0w shARKhAKhA /iA shAلuwM @^tpjh)?N1bU =RD((@_! hBX >R) a jhf(F?RH `  Òo۪vX @R ,1dARG:q `, uBB8TU |, _ob Zjp !CR< |, bCDRsx ,JhP NER?[q a-S XVNFRᛀ |,dphpGB8$+ |,YT,HRE* ,\/eIJ!1cq b|,NJJNd ,@X!CKJN# |,a8DpP pLJ! ,MMY_Yc|,p,NJVuc,h0eOJNUӀ , MxEAhPR- , h 5QV~QJ!x/q d|,gC m RB س , hn&SJN= , TR@ ,02FM^!DUB q e, h߉>Ss~VFC= , 0WNY ,!!XDCn.el, 'VThuf`( H"~Vm fd# VԀ@Dl  Wn_d0WZuygh' }W^'Έl0W^lyX^Ո| 0X^yhlLJ|D ^ l?X^ވlw&Y^Ԑl(0Y^yyil_,0Y^ԄlgyY^l_g"Z^;ȈlG_&vZ^kyjlO,uZ^Fӈl?40Z^2l/2s[^8l/80[^Vyk~'m[^|_'6[^-d|'4s\] |0\^u llZ }D ^ull<0\Z3k'Q]Vdd@0]R%umcQ]^>:l'D0]^^oU^^elgH0^^un~Qc^^|GL0^^EoQU_^x|WP0_^uooU_^[5lPl_^Ϋl/J`^lLm`^Kupl7F`^nl*HnL ^;alBa^ڰlzDoa^suq|G>a^Ֆ|r@pL ^t|:b^3l(~l(Rhfe^Wʄlbf^l(dgf^1uvlG'^f^1l`hL ^y|_Zg]&vlH\ig^O!} wlgVg^lXjL ^vlRh^`lZTkh^xux|Gfh^U$xljhSg# x`ɺp0i^.l)t0iZqyhix0iVƀdini^lɺ~j^1l j^qz| 0j^Ú|rj^/|Il0k^!|I0k^q{l)|0k^O|zk^ѧqX{lfW0lRV`t0lVF27?27@27A27B27C27D27E27F27G27H27I27J27K26F$}Ud *$sJhs!o{|~"V dG? B% R _ " Byǁ ` !"b I!%j|,"paEb Fu|,a ," F |,b p8 - FTu |, !CB Aq , hb萺+B ŀ ,0B , ht1Z#B Ѐ |,] xjp8,B q |, ݆B ,NYA %g,Jh.B LO|,mY2R&kq ~,}8Fl |,8B / ,# YB a , !Fq |,a8LqR F |,` P/B 3 ,Jh/ B % |,Nc"(B%-iB y q ,X{P "M B ,TCP    R ,Q8vϑ !FZ |,'T!B "B q ,\Yӑ #B |,'T" $A {,@` Q %B Eg|,dpCQ &B q ,ˑ 'AV%s|,h! (FHT,hǑ )B RÀ |,'}\"*B q ,P \ +B  |,CP Up,R ,h$!-Fo |,d,.A ,"E.e/Ju|,"bC0E %,"X!C1B 0|,CUC2I{%,U$C3EY|,p,4MY%x,"/e5F},,"(|S%ɝ,6B q |,XP۪hp~g` 7I!%i|,C` c"8Be^˄,u9J!Ŵ ,\e9 :A %|,x!jh"sY ;B Wu|, bZj1l*rCu|)r)l*rm)r-|)rvul*rĀl*qZl*rW l*rul*q% *l*r\ |)q[%Il*rz} |)r&|)q~ l*r` l*q%l*rYyl+rЈ`+r8d+ryh+r߈l+rȈ|*rl+ryl+r7l+r%$Al,rM p*ry`+rN`+r`+rl+ryl+qM%l+r" l+rHl+q-%l+r u |*qB%ɻ|*r7 l+ryl+r@|*rql+rN}rl,r{y `+rR`+rq`*q%/l*q]%ad+rue*rbd+rǒh+ryl+rl+rfl+rbEl+q8%;l+ryu |*rL l+r.|*rk[y|*qR%28?28@28A28B28C28D28E28F28G28H28I28J28K28L28M28N28O28P28Q28R27Ms$}UdioUbYam)rq d *"p :ɐ "q%Mh b "q%o`!bZ "q%e|, ;&G "rK},|,b 8 "r6 |,a `zѐ "re |, aC"r9> , _Ъϔ"q%s,0"ru, !&{Rǔ"r! |, 0"r |,F¨p ܆"rq ,Y"r & ,)."rz\ |,lYHNx!"r8 |,8"q5%|,8"r u,czY"r , !#p|,`8 s%B"rNu|,c 0"q`%,0 "ref|,N"(:%,i"rl ,X{` m "q4,TCP Y "q%mt,Ov "q% |,'DTa: "r},,ȥ "r q |,b% "q%U,h!q "rr|,dpCRՈY&" , "q%|,p],!"q,P"ry!|,'\#L%r ,a "q]%|,C` :͔"ru,"&!"r |,d,"qr,"E1%D"r+du|," "qށ8,"h!C"q|,C"'"rR!,!"q2%M|,p,"rIu,*"rX , HӷYezp"r7{ |,RJQ` %qH%|,Cp *q%E, "q%ш,!!!"rn},|,h!A "r9:q |,Ht"Bx!8"q,0d"q %,XhNDC8"r!,0Y"q5%)1A "ru,.d"r ,Y"q|,!"ru|, %rmv ,"` N` -` %qI%y)|,%rsu|,d%q%I,,]".d"q%|,N%rD!,Ph!C"rq |,`8TpP p%q%,-l%r|,p,"q%9,0 %q%5,1D"r36y!,H#ez-&QR\2 |,C "qc,TP^2&$"r4u- m "q%U|,;&T%8y*q%7|, x*r`݈!|,r H0"r7q |, /"rF$ Jl,*r㴄`(*r$IKd#+rgyl+q}%ad+r h+q %Pl+q%9l+rq|*rl+q%Yl+rAu l+r%l+p&l+r~ l+qZ%l+ru l+rl+q%el+rCu l+ru>l+rLP|*r_K|*ry|*r|*rkl+q%Yl*qYh*r1ud*r`*rPl*r"4ul*rꆄl*q)|)rkc |)r:nul*q%s|)r l*q%َl*r} l*r,l*r6l*rRl*r%ul*rӁl*rz5|)r[|)rùu|)rl*rلl*q%vl*r} l*rl*rl*q%1k|)r_.} l*r|)rۯl*r0Äl*qx%l*rʲ} l*r_l*rфl*reul*rl*q%yfl*qJ&l*ru|)r-l*rrl*q %hl*r"} l*r3l*r|)r$l+r$%`)rϧl)rh)r߀d)r ql)rsl)r|(rq|(r.Vq|(rc|(rpl)r\|(r¾qXl*rg`*rO t)r+x)q|)q$l*reJfl*r߄|)r ul*q$~m)r} |)rl*r8tul*q$l*qY5l*q|$Fl*qT$jl*q 6.|)q$.xl*qZ|)q_$|)q$l*r}@l*qF$l*rjl+r=`+q>d+r` h+r=yl+r|*q$l+q$l,qql+r1#Bl,ra p*r`+r7y`+r`+rl+qCl+r^Tu l+q%$b* l+r l+r*5l+ry |*rV|*q$/ l+rڄ l,qy |*r?l+r}r l,q `+q+$&1 `+rbq `*rl*q$ d+rz}. e*rd+r h+rl+rxyl+r(l+q_%l+q,$ҙl,p |*rXB}l+q$>;|*r |*r+!yl+r~|*rl+r+^url*qu$%h*q$'d*r(u`*r/l*q&$&C|)ru} l*r4dq4l+r9 p)q-$rp+r#Jh,r#`+r. `,qph+q$*d,ryd,rS$q| "r)$s-p8U28V28W28X28Y28Z28[28\28]28^28_28`28a28b28c28d28e28f28g28h28i28j28k28l28m28n28o28p28q28r28s28t28u28v28w28x28y28z28{28|28}28~28282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282829292929292929292929 29 29 29 29 29292929292929292929292929292929292929 29!29"29#29$29%29&29'29(29)29*29+29,29-29.29/29029129229329429529629729829929:29;29<29=29>29?29@29A29B29C29D29E29F29G29H29I29J29K29L29M29N29O29P29Q29R29S29T29U29V29W29X29Y28T#~Ud¨OY($do"h` ] "ruh.Q "pj`.U "q"||,Y&thx''7S "r!|,b hp8W "rq |,` `W^'a "r |, 04"r@ , xD"q$n,0"q~, tx[,"q$|,h"x0"r},|,:OUb` "r{_ ,p` Y"q$,l0"q~$r|,nYxx!"ry!|,8Oĝ"q@$|,-ĝ"r\}u,`!MY"q$~, !"r#F|,`8h2;Bo"r |,c x0RH$6p,LY0 "q<J|,NLkN3d"ry!,pDc "q~!,`&Ր "r9u,xAS "r; |,&D!; "r+ ,hW "rv |,-g "rCq ,p! "q$k|,gp`ȃ "qZ$Λ,@~ǐ "q%|,pseߐ "rA},,xȥÐ "rE, |,&%? ,c հ "q.|,C "ru ,t%"qi& |,gݰ "r,l0d"q.$x |,-eŴ"rTu!,xh!C"rn |,-7C"re ,%!"rP |,-,"q$",t0d"ru",Ho,"q3N"|,_ Bpi_` %q$"|,C` Ay!#, "q$}#,` 좠 "r|,k!z "rQ |, g"d8"r(q $,f0d"q ,"0\!"qN$,f\ "r!1 "rWq %,z0d"q%,`|YT"r{|,!"rC |, Y%rq &,"(P Px!%q &-P %q$&|,]$&|,T,},',\/d"q'|,N%r,PX!C"qQ |,`8TpP p%rO0u(,C^l΀ |,p,"q#D(,z0d~Ƅ,1D"q$),`H^m&"q$)|,uC M "ruy!),`H%"qEP), m "ql$*, Y&`HA>*q+%U *, ] %4*,b H "qkvT*, 0"qi$+l,*r $uJ+`(*q$ߎ+d#+qz+l+q%Y,d+rrl$L,h+q$ߎ,l+qR,l+ruq-|*qD.-l+q^:-l+rҀl+q\%Z.m^u .l+q%(.l+rN l,p$/l+ru /l+q$/l+r l+r y0l+r|*r|*q"%Y0|*qօ 1|*r&q1l+q$1l*r9}1h*qH%5t2d*r} 2`*ril*r l*q2$r3l*qp$R3|)ru3|)rzl*q4|)r5*} 4l*rMl*rl*rt5!tLm`T)#lְ hAIhA+IhAiA hA;! m.5at7F`eT *Hn`Ԁ*TBaF9v6!T zDoaT!|G>a^|r@pL ^+|:b^u7l(l)t0iZhix0iVdini^lɺ~j^s_q?l j^e| 0j^ |rj^|Il0k^2q@|I0k^#@l)|0k^|zk^qe@lfW0lQȉA`t0lV~} At?0lZ_x%x0l^|/0m^zuBlezm^l&0m]AB||0m^ le0n^!uCl%0n^]|0n^TlEp0n^̄lJYo]Dlo^"} Dl)ZL ^ٛlo^ml[p^uE|Fp^ li\L ]%E|'p^Č |)Ҍ]q]ÍFl7q^-h} Flˆ^L ^lGq^E3yFlrRPyG`?rVG drZ0hUr^Þo#}s^yH]|s^HleVjs^ňl"s^]QlYpt_OG#9Il~tRy IrExRۈcxa`uRyJcx^׸oex^W͈l&je@^'oFoiv^HyKofgx^l&wXv^z~oFx^a~iw^ByL~x^'l[w^l"9w]oLfUx]SJMl_Yx^{}rMlRkxR/qM`"xRЈ`bgyRvyN`_y^SlzWL V!yNd0yVdd0zVyyOdYzZrhz^JlY!z]oi{^'u Pox^҈lX{^Έox]ה ~fi|^gu QlW|^x~&x]kQ~Gx^ lV}^jyR~x]k%Z#h%+X#2929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929Ti$il=KiF hG,Z#q jlcp hbH,Z#fa dhr J +Z# `mP*h ,Y#!|,/+Z#OWuk,w",Z# ,8+Z#zk 1#",Z# 1#",Z#J1q l,h'-=/,Z#G7 ,8+Z#! |,{oY$B,Z#{ |,.,Z#q m,Jh/,+Y#m,8+Z#h|,">tp]YB&!"Z#*{ |,.,Z#q n,̆+Y#n,8+Y#%eTnl,*Z#2$n`(*Z#duod#*Y#<%foh*Z# |)Z#|)Y#%dpl*Z#n.} pl*Y#p|)Z# |)Z#tuq|)Z#܄|)Z#{l*Z#վl*Z#Eurl*Y#x%\rl*Y#%@r|)Z#/K|)Y#%'s|)Z#} s|)Z#,l*Z#_Bl*Z#ut|)Z#XR|)Z#Tr$etl+Z#``+Y#I%Zud*Z#!q ud+Z#yh+Y#%Iuh+Y#%Dvh+Z#~u5vl*Z#jyvh+Z#eh+Z#+ywh+Z#h+Z#Iu!w|)Y#؉.wh+Y#\%5)xh+Z#hyxh+Y#6!xh+Z#rXu!xl*Z#}yx*Z#F+h+Z#$Y#hh#Y#&Y#y,F29292929292929292929292929292929292929292929292:2:2:2:2:2:2:2:2:2: 2: 2: 2: 2: 2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2: 2:!2:"2:#2:$2:%2:&2:'2:(2:)2:*2:+29آ$e{l=$! h>!Q$<"Fw lcp "L]mJ%C"F%a@{dhp "X# St"Fݒu|`m'X#h!~"FԀ |,&X# Yr[t"FOV ,8"F ,8Ut R%&}->"F04u}- @kt"F , hjI(&& "F ,8ct"Fq ~|,&"Ǜp."F |,.!Rqt"Fa` ,J,"F~,8B"Fu|,&"{Y"Z#+ |,/g|,"FN,͆"F,8&ot"F $yl,*Z#DŽ`(*Y#P% d#*Y#Y%Mh*Z#u|)Y#%Qu|)Z# l*Z#m l*Y#%&|)Z#0} |)Z#|)Y#*%b|)Z#} l*Z#&݄l*Z#&l*Y#{%>l*Z#} |)Y#%|)Z#N |)Y#} |)Z#Y} l*Z#l*Y#G|)Z#[u |)Z#WU$el+Z#%`+Z#j}d*Z#p d+Z#g@yh+Z#"h+Z#h+Y#~%il*Z#iq h+Z#Uh+Z#Èh+Z#h+Y#Dp|)Z#q h+Z#lˆh+Z#ih+Z#Qyh+Y#Q%Ol*Y#5x*Z#Xh+Z#$Y#yh#Z#%F+F:.2:/2:02:12:22:32:42:52:62:72:82:92::2:;2:<2:=2:>2:?2:@2:A2:B2:C2:D2:E2:F2:G2:H2:I2:J2:K2:L2:M2:N2:O2:P2:Q2:R2:S2:T2:U2:V2:W2:X2:Y2:Z2:[2:\2:]2:^2:_2:`2:a2:b2:c2:d2:e2:f2:g2:h2:i2:j2:k2:l2:m2:n2:o2:p2:q2:-=$l=`&Ll:"\i"Y#%lcp |D4C Di|#jPudhs d Д"Z#o `mi +Bh!k91Nt"Z#yӀ |,."Y#%=,xhdiYQ\t"Y# %qd,8̔"Y#6%1hɣjt"Z#;},1R Y"Z#Sq , |`Ovt"Y#%),8,"Z#f|,{ Dq2yzt"Z# |,/x,"Z#g~q ,d,,"Z#0 ,8X"Z# |,!dphl|,"Z#C |,. "Z#q ,hd_^t"Z# ,8\"Z# S$l,*Z#`(*Z#dud#*Y#%#h*Y#/%噒|)Z#O|)Y#%_l*Z#} l*Z#_/|)Z#M|)Z#u|)Y#%C|)Z#@ l*Z#l*Y#/%?l*Y#%5Bl*Z#Ju|)Z#Ȅ|)Z#zdu|)Z#|)Z# ̄l*Z#xyl*Z#9*u|)Z#|)Z#$el+Z#1`+Z#k}d*Z#q d+Z#h+Y#\%h+Z#Ou h+Z#u!l*Z#nj h+Z#Gh+Z#yh+Y#[%5h+Y#%*|)Z#}h+Z#ŭyh+Z#Dh+Z#oh+Z#}Bl*Z#)q x*Z#=1h+Z#֥$Y#h#Z#%Y#+F:t2:u2:v2:w2:x2:y2:z2:{2:|2:}2:~2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:s;$l=$!`#(<"F*F lcp |&F+F dhs d *Fq `m'X#h!/Fsy |,&X# K*F) ,x5F% $,8*FJu-%F,Fr - *FA ,|4Fſ ,8,Fq |,&"4F&F|,.=*F,d,+F ,8*Fq |,&"{-F4 |,/*Fy^ ,hd+FN ,8*F%:l,*Z#]I$`(*Z#d#*Y#%]h*Z#} |)Y# |)Z# l*Z#vl*Y#%|)Z##} |)Z#Z|)Z#|)Z#[ul*Z#=ڄl*Y#%٦l*Z#`Z l*Z#u|)Y#f%Yo|)Z#; |)Y#:|)Z#4} l*Z#tul*Y#5%@|)Y#…{|)Z#0$el+Z#=`+Z#n} d*Y#%d+Y#%m@h+Y#C%ªh+Y#P%]Ch+Y#%l*Z#y.h+Z#h+Y#%9Ih+Y#%q%h+Y#%Q1|)Z#yh+Y#+(h+Z#b h+Y#dh+Z#oudl*Z#|}x*Z#f!h+Z#$Y#h#X#,@#F R2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2;2;2;2;2;2;2;2;2;2; 2; 2; 2; 2; 2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2; 2;!2;"2;#2;$2;%2;&2;'2;(2;)2;*2;+2;,2;-2;.2;/2;02;12;22;32;42;52;62;72;82;92;:2;;2;<2;=2;>2;?2;@2;A2;B2;C2;D2;E2;F2;G2;H2;I2;J2;K2;L2;M2;N2;O2;P2;Q2;R2;S2;T2;U2;V2;W2;X2;Y2;Z2;[2;\2;]2;^2;_2;`2;a2;b2;c2;d2;e2;f2;g2;h2;i2;j2;k2;l2;m2;n2;o2;p2;q2;r2;s2;t2;u2;v2;w2;x2;y2;z2;{2;|2;}2;~2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2:%l&Jć6"%l wK` ҍj "N$d  -8 Rm `-@  R |, 7AzrJS7%  R-[q ,,! R d |,;fp8C I!L%*|, juץ{"CR*|,iN!YFHq |,ۛLRT$6R, |, *oS˒=^`FC Ȁ |,h!pYF06 ,N NR8q |,d8I!]%]|,Y INJ!g,=L *VR> |,w ŏ**KC8&`VRyq ,̳ PVB8ho |, l ,?{?VFpLj , ,TR%R|,jN rEcTB Eu,- dCeN,/ |,Y\XNa Md%,pTʡ B8t|,7qʼU-ETMY8|,!p M,%w|,C#\e!Rpy!,\Y§8fV"B U |,d8V#I!H%|,{c]bV$B u,kDG;>V%A 7%^,YXխY&B {|,N `'R%|,8 Q8(J{Tu|,` )J! |, 9h(jYN*J!c |,1(:_'{+Fq |,`H,BU |,"(sI[ŝ-F ~,ehtE.B |,mB!/B q ~,ovU%EC0B ~,p x!@` Pe1R%к,z^S*Hkr8Ǖ2FP|,H!e3B n(q |, uC!a 4U׀ |,uH-_5Fr |,?N;($P6A8%Mi|,Dpa&7I%o},睂XNl,8R&%M|,889E%EL|, tCTT#):B8rnq8~,/dp|";B q |,x!m,A %O|,B:!HJ$ش?Beu,hT&@F\} |,#rkaH$#pB\ANY },}H-BE-%͕~,O~Y%,* CB Mu1\tCDB [2 ~,>Y8 ER/\ |,pc  FF |, z`($,*y晀ECGFϨq |,HP |,!HqeeIB8̈́|,N$,*w#DJB ~ |,{8A KA |,{%,* LR%W~,O%)$*&-*MJNJ&y!|,!(a8!NEމ{|,NQ ?OB iu|,p8P tpPBƀ |, |YP QNml, (Tɀl'H 0TB ql" 2Usl B 0UT]l(R0U^y@l(Z0U^+qljV^}xlrV^|rV^$=E~"VRy pWRFy `H" }WV d2 0WZAkG"WZyhHzXZ=x(:0XVg2PRpB 0X^aqlR 0Y]lh0Y^ |hz0Y]%eVl",UYRyy8`ZUX%͗db(0ZZK1 hhrzZ^n-Z]%elZ$0[^Mq-l.[ZCxȪ00[N-d(6[R|q`(40\^l80\^Bl<0\^X l >\^ql B]^觀l)F]]%l&H0]R ~ p)">]R8,}Q`4s^V3d_H0^Y%Yk7^Zfyh.^Zqx00_VH0ghPR `HH0_]˅oP^'tu l"<0`^lD0`^@7y8l:`Q%`2>`U\%]d?P0aZuk<:]G%\ ^Պ lL0a]%yl)RV;u3hIJX0bV=dr^;Ѐ`\:q|ɂbcZ2lIh0c^lIjcR27plIl:qlInd^y>o dR "ɪ^dQ% `IbledUK%djeYA%9zF_9eZqRyxIV:%hp0eV u dizh0fR7rP^tn|i`0fZ2ql X0f^Vql bR:wN}Ko&7?gQ`:8%YdJx0gY zih]2%yo&3h]O%ilZt0hV3Gq-l~hZqxꀠ:ZSd*iRV`*":l20i^-ql:0jV2Fl Jj]%ml Rj]1*%"l*Rj^q_o%%kRqp*bkR; `_kVֺd_0kYR5kŧ5lYc9hZ~lZ3}x:%} gjPRu `J": o2P]dlb:҄ oZ;^y8o96nR2<`rnU%Ed?B0nRL kR7n^ u~qo]A%)zl:0o]%ofw7o^nxl钂o]%l"n:k-+o *8p^ul\ ^Al? d0p]%og_UHq]3%eo"Uq^IBulj.q]alIZi:=%o)r]%l?z*:n%l6:Xu l 2r^3 ul_s] l8rs^32 o?s]3%ls^,} oft^ l? :lB~t^ oHJt^ul~{:K%m/l?*zu^3 lvu]ɍ@lvbl:5} o&5Zv]3T%Ul Nlv](%aoe]gv]%|h:6rL ]3q o!,w]%{nX:\8`?9 wZ!$)yi "w^tyl?QBxRy;`rcxR5\}l?Jm[:zE8l*Y!x^7}o;y\&oYVy] l]VyZ5hgg"wyY'%kUzV9q d?rzZq22=?2=@2=A2=B2=C2=D2=E2=F2=G2=H2=I2=J2=K2=L2=M2=N2=O2=P2=Q2=R2=S2=T2=U2=V2=W2=X2=Y2=Z2=[2=\2=]2=^2=_2=`2=a2=b2=c2=d2=e2=f2=g2=h2=i2=j2=k2;$!U# _aۃ͔l#+X #@p  bxIrV#+݀ #p  , z危?^HBl#+Cq #yVj/FOֿ l R ,T >?%LÞGT"+ |,\õc˲T R ,TCK g`'l Rq |,hNDC N  EU66n#*p%_|,! l^9uMl#+|,@8 uL I!EC%~,9xNO} R%,|-H!`lR+%h|,!?X!nR},|,! w}Ofn#+þ ,M nRtq ,` Jn#+] |,!4&dClYRҀ |,`8X{~% i{A89%|,`  h!uCMTCR%Q, p 5:M~n#*%ig|,hN]DcA(n#+7},,e*ؗm nJ{$ -,huY{@Rq ,  !1X{TRW%,  B!*A- E%, |h5ɮc  B -l!|,p>}b !M!/],H "N,Ou.},^ #FpE |,G{JА$`#+` |,Z<ʈ<_~\zN#+lq |, k^Jf]&ej&I!P%)|,MAll,'JK|, ifʈ{F^,(RZ |, V?j "ݵ)"%Ix~,$mpj!*I!IuZ|,{@` +A8%|, .1*}w"$FM,B },|,d x! IT>I!%,P A`ӲEC?B My!|,NRj]Fzc:T@J! -ǎ,0/%1AFprq |,P UC4 BI! %A,"MZe2 CAe%,H!Y{( DF!, /mEB q |,dC@ 0FB , 0GB P ,!0,HB q ,X{ T`O6oظIIMY%+,V.-*JFj u,;. KA %,!,"ELB i-,"x)JN$##(#$MA %, .#NB [u, .%#OIW%M, -%#PA%(,- !QI!%|,-*$T 'RB >},, M%L'!SN, |,#8+j -TF |, H/$UA |,Hs`z(* .T VRV, /&WE%|,# *1.#XA %}|,<骈&#&#YB ;b8|,##&p"'!ZB R ,U"Y'[A n|,#T @ 8p5"\M#|,#\' ʈe%q"&q"]Fy!|,.!^P 7,].%#_"Y:H~, {r fl,`Fڀ |,h! ,8aE$R3|,$-'9bE$-)$$ cA r|,h! %2"6#2dA$b,Q $(4eN,ܐq8|,-6fJ! |,8E.=8g"<8$,@+#%hF|,|,$"%i"Zq ,F` ) ;jFK! -F#`))=kB M€ ,.E?lB8 |,#k +0a8mFq ~, #v()-*MQ8nA $J,|,dL I&+oA $N,"LQ .EpA $,Q .JqA $/|,!'(&(rB fGq8,U.*sA M, 4.9KtNYO|,N.GuAg$%|, `e+-vJ!u,./wB ή |,.UMxN,/R |,hNQ8>.UMyE$J,-%UM&UMzB u,Tp6Q V{B & |,!/*|B | , rC%i)#l֮RI hAdhA+hAjAhA )ұ*T}R((@ !t U(/ɮc ~Rc ap  bC%i. RY ` #HS Rށ a V p Q0Rq |,\, R ,`8QRK |,h!TC\,U8h!R ,N J!q |,e@8!JN? |,yVj CR] |,? S|wR |, n1*ЂeɆnB q ,I{R{2dCB |,`8CY! YF4 |,MLP8\FN6JNh |,G{J Ų ?:w~Rq |,  k^J!;ӌAl"ejJ!g |, /Z<ʈRJQylWhBeg |, ifʨ! <>dN~u |,s`z(*~, J!q |,`e *!m!ELC|,|骈)8R8R&|,mYLY\PeF3ʀ |,-*,YJ!|q |,e+DpYN |,lY!NE |,OZ< ʈ̙B |,'E,H!.l, f?`( * 0fԀ?*d# : }g?9h 0gT?hUmlJz@ Rq ` 0gR`_ZhSx`bh^_ql20hVj}wǿTVQdJ0iV4d"iY6Mh(0i^} lH&vi^Blg_,0j^lh.tj^ul?40j^nl6j^lG/80k^l6kmulg/(0k^l,0k^il'W*l^ml<0l^ڍuoU:l^ual'6l^o'gUm^LlȺ,um^Sul_ 0m^Plm^l? 0n]lD0n^|} l(`HRP͈`?0TRj݈`BHUR.`OU U^:dy?lD ^ lhCH^-?lV^(}}P?l*0VY@@ke!VZND}@kiVZ h0WZ>y@xҌDZ+q Ah]'WZmk7"+WZ-Rh'XZH h0X^urBlH RLy B`,@EXRg`]5YRϰ`]PYR&qCpGYRxy CpkDHR)Y `0ZV^ddwJM ZY%iDkKxWWaDfJP\ ^Ru}D|UM[^lW[Rl}0Ec$#I[RV-}E`eLX ^ oe\Z  h?ض0\V#Sy FdHUZ%+Fd\QnF`"&]R(`l?]^Q&yGlCd ^1l_ D ]d6Go"Z^^7q6Gl'{^R̒uH`x0^Rcy_H` Zo}Hhw"JQ_^/<l($wIt_Zay IhFx_^y Ilf_bHVt dbg`V~]gZK}Jku0`ZSy7Jh珀QR%&J`a^y)Jl*XEaZ|yKhF0aVdc @]%7Kl?2Rb]%IKl =H^qLld ]_%Ll*X0b^$!Ll,:0cZvh*ðcVuMdlBL R`lKD^ DlL[İd^;lL#D]o%Nll#0d]%-Nlc@ R, yNrlkQeR]csQ\eR,uOp3ǰeRuqUOp{#jp&i"Y-cU@[%"O` R2=n2=o2=p2=q2=r2=s2=t2=u2=v2=w2=x2=y2=z2={2=|2=}2=~2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2>2>2>2>2>2>2>2>2>2> 2> 2> 2> 2> 2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2> 2>!2>"2>#2>$2>%2>&2>'2>(2>)2>*2>+2>,2>-2>.2>/2>02>12>22>32>42>52>62>72>82>92>:2>;2><2>=2>>2>?2>@2>A2>B2>C2>D2>E2>F2>G2>H2>I2>J2>K2>L2>M2>N2>O2>P2>Q2>R2>S2>T2>U2>V2>W2>X2>Y2>Z2>[2>\2>]2>^2>_2>`2>a2>b2>c2>d2>e2>f2>g2>h2>i2>j2>k2>l2>m2>n2>o2>p2>q2>r2>s2>t2>u2>v2>w2>x2>y2>z2>{2>|2>}2>~2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2>2?2?2?2?2?2?2?2?2?2? 2? 2? 2? 2? 2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2?2? 2?!2?"2?#2?$2?%2?&2?'2?(2?)2?*2?+2?,2?-2?.2?/2?02?12=mX$y\# P_aۃ͔lR q ]#RX bxIrVR%]# , z危?^HBl B C+#!k/FOֿ l R* ,h!>?%LÞGT Fq ^~,A\õc˲T F꧀ ,`hK g`'l Feǀ ~,` N  EU66nR ~,x!l^9uMlB }q _|, uL lB ( ~, tO} B S ~,t|-H!`lB ? |,!?X!nB Xq `~, ax!w}OfnB  ,r M nF@ ,X,FC` JA F߀ }, {4&dCmYB q a|,C % i{A %a|,Chh!uCMUCB F|, p 5:M~nFڊ ~,T8hhN ]DcA(nB q b,p e*ؗm nRf ~,t,huY{MM,%b,h!1X{UB ,P B!*A- B q c|,C~h5% J{ |,>}b !B8 /],H "B .},^ #N,q d|, x@А$`$Qe\ |,  0` <_~\zN%F. |,`]f]&%&A d|,>ҠAll,'B (ue|,O~ؠ{F^,(FCq |, ~l-@ "ݵ)Be }, mpj!*F 8 |,{h{@` +N,wq f|, 3E}w"$FM,A \ |,{!IT>B d ,{A`ӲT?B jq k|,eRj]Fzc:T@A %k-,lAB W|,&##l"4#BB q ,{Z+4CB 9q l,m$+YDA % !l},c /mE@ &I,l~,W /FA G%l|, /GA k%Im|,!/,HB %q8m},T!T`O6oظlIB . ~, T V.-*JB , ,;. KB q n|,!/LA %En~,"t"$##(#$M" ̅n}, .#NE %n~, v.%#OA %-*o|,!-%#PA %ao,- !QB ,uCo|,ڧ;M$T 'RB p ~,"%%L'!SA {p|,sig -TB Cup|,„'/$UB |,Xk@ .U VA `%(p|,X/&WB uq|, (=G1.#XA %iq|,!g&#&%#Y"O˄|,@&xwG&p"'!ZE },"Y'[B yur|,8p#\I%$r|, ke%q"&q"]FW&},.!^B р ~,_"$6.%#_A s~, x{r fl,`B G^us|,p,8aB O |,$-'9bB |,)$$ cB q t~,r%2"6#2d"}e ,vC$(4eE6%)=t~,w$6&6fEp5%Ut~,zNE.=8gF1y!u|,N*#%hB m5 }, |,$"%iB > ,&H6#` ) ;jA a%Bu},F#`))=kA ev|,' h#7.E?lB sy!v|,s8*0a8mB Z ~, N(),*#>nB  |,$k I&+oA ͍w},#H,.EpB ~uw},`-A .JqB },# !&(&(rA %2w|,6JG.*sB xux|,d!4.9KtA %51x},N.GuB }, #+-vA O%>x|,BU './wA %51y~, Yp.UMxB wy!y|,8/UMyA .%!y|,%UM&UMzB U|,p6Q V{B q z|,A3r`/*|A %z|,r%(&,""Մ|,{"*+(""| ,3"Xq {~, y}Y&'""À |,YP "P+!%I{~, \, %"},#/p8+""6 q ||,&\'l,T+!%=||,'l5! ""E|, &l(<"" },%`A ,"bq }~,$B` "'""! ~,$`A4" ,jN'<8+!e%U}|,$!6HX!+"ʄu~~, %G3"' |,"I4", ~,$I4![%i~~,L$J4"u~, $I!,!u% N,#y)3"Ņ,_#(&!o*" ,[#(&!^*"Fq ~,$(lPe""` ,#/,+"1 ,#d.,"; },# +!%,a`#y)&""!!},#a'D+"X$Ёl,*"b.`(*"7ud#*"Ԑh*"($I؂l+!+%M`*!U%Q`*"$!ۃ`)"=l)"wy&t)"hud*"xd*"h*!Tl*"/} l*".l*"/]l*"Wl*"ul*"l*"nsl*"l*!%]l*"\} l*"7l*!hl*"} l*"bl*"/}l*"l*!Zl*"В} l*"Rl*!;%|)!%1l*"ql)"?x("}d*!ɅՋt)"/qt("d)"t("h[y`*!4%Mp("@}'"`)"npq`)"l)"el)"Ā|("jq|("X|("!Y|("x|("qKl*":y `)!iAp)"Gve)"2uh*"h*" Bm)"l*"q-l)!w%}x("y d)"Z1`)"q|(",y%|)"I`*!Ud*"Gyh)"7h)"+d)"c`)"}%|)!הp("KS}`)!< `*!)d*" 2}d*!Uh*!%l*"3$y&l)"+yh*"7h*!%h*"$ h+"y`*"O`*!%m`*"} `*!|)" l*"b|)"ul*"K؄m)!9 |)"a@ l*" ~u}("#l*"Nl*!"%|)"X$l+"G3`+"Ɉd+!%%h+"M u l+!~% Ԝm*!%Ml+!%Ml+"=}l+"|*!Y%l+" l+"$l*"h*!R%ٞd*"r `*!T%5|*!%!`+!F%鶟t)"0y4t*"+7q!x)"0d*"`*"?`*"ul*" l*"e|)"@|)!%Ģ|)"} |)"94|)"8qN|*"yq `*"q `+"w[e*"zh+"yi*"]l+"m*!o|*"eu |*!l+!Ɖ!l+"gl+"8yl+"Kl+!l+"J |*"[:ym*"pl+" l+"l+",yl+"cl+!%Ϩl+" l+"yl+!l+!%ѩl+"ـl+!:%=Ϊl+!B%l+!yl+"m}Ъl*"0ux)"Ed*"`*"m)"ul*"l*"\uHl+"5Ј`+!N%d+"6yh*"3h*!%d*"V} p)":l*"a}-m*!%`+"Fu d+"s$1h,"hy `+"Ĉ`+"y`+!D%`+"P l+!^%9̰l+!z%]l+"B}Pl*"jyh+")Eh+"myh+"1{yx)"NH h+!Ih+"3u h+"kNh+"url," Y `+"cfy`+!%aӴa*"VSqp+"p*"y `,"یd,"jyh+"0$d-"}|+"ql-"Oq`+"Ha+!%.l+!)Lh,"'ud+"=d+!`n`+!%`+!a%A-l+!%El+"i)y!l+"}Cl,"؆ a*"y_`-"}h,"+}m*"$ h,!'l+"y d,"zd,"h,"+y7h-!%`+"u7l+"h+!*%&d+"u m*"qbl+"Jl+!8%)l+!%M/l*"n$h*"od*"1`*"ul*"ńl*"m)!%M,l+"K q p)"w`*"vp)![p*"}[`+"rd+"y("h*!xd*"8} `*"˄l*!Ul*!hl*!El+!΁a*"yAd+"/yh+"t^l+"/l+"G};l*"3uh*"yd+!%U0d+"Td*"[ud*" <t)!9a*!p)"byǀ("O`*!w`*"Z# l*"ul*"|)" X|)!%Cl*!Dl*!0l*!%il+!S%1`*"u|`+!0d+" h+"5tx*!%m6l+!Yl+!A%$l+!{%m'm*"oy!l+"ˈl+" #"[i" | @He"D?6~ @aP(D,(gP@T Lٌؔ?1* ꀠ ( `(L(P Qf D)p LOC{EEJ e /#)H `b0@hhX0P AD=GD[Gf:%j5$о3v%P:,/W.TDE @Dk%"BO_p D! \#@?O6@EH RxpDHpxLD@\ APՏ,@h C3S0J#S4$"D '% D     tUd= +H :`L;XJ6}k`T|(L@z5 !t`0 -h%+݇,>#$8|@X"" 8|Y{҆m$ B333„.?t?|yHHPp-"p"SSR@ `  @cLGGD `  H Pg!H ` c H)P M+! `  D g n1w k"  `  H @@"@43t "h"0  l g@l+ VV9dE`~)\BZnXH0ZC@@ Fzn \( x V"ԟ x D@K@j #j,Standard(((`a@Mҕ @D@L`P| ``L1H\ R6FFk<~!~@&z j"I (E| ":!PRtr "z0@x @$  ,B(rx )L "`ʮRmI$~}- #Lx T*p$PBm$ @K(5 ISO-25rlB#`$ (dL``(ODX8L"xp P 10Q5$ !" /#/) $7 $ Z PK<P  RHh#H`j`hA A "s" l"d#DN|so0@ p@.H L P 0kpCАL@P0]\E.PD   @`"@ ` @ $_ 6H28h hQRH * ԁ( X~Ly#JMMFffd!T :fff`rAN"YH2BpA^8H_(h   @4###e#oz|HX\@X8TX`H@0HPC0@PPPQ LmI MM@L Ps@Rl@MP@P00MMEpDT  M0`'TapP M\MA$\Eu0M0MyM0MPMzlSRzhklTXl P@L\tx U#6cA  R+4ޟ]s2hsBrHsUUH[p#d$( (Dm(6hPdb`\``OGrnR ##@\ U`>B@{d( T5HMSTT6 @ -ST *5MRT,d# UCPZZ~cq$ &'x$} B}Se 0@ 0`P@  D0@`P 0`  @P$@d3`?@@`?DA@` @PP X*@P$0 (  22+49239062]pA{̏we1 @d<5!p 0< 0941-E.PT.?V.~ !  %H$ 2!9434:27EpC{̏ݨU2 &"u24(  09( ! <7679!4073}D\1(M7* * (H (ELxp MD Wa}  gv82 nq '} ]> Ĉ} Ȉ'Ƞ ̈/>8} ܈OEqi q  Sq _pq KZo Ox*q q GDZ}K w} ؈G݀- H _f&AQPWWTtd)* '" )"E ^a$3pIWx&2:#,1bt,  $#֬\d iED9pnrl`ppjldnjd! G@E4H&&,, 1"1"9$#2#\& :@:"8 )14260  *\N`+".saj(,x(pD@|&H%t@ ` ` @2>ev7. 8wp#&p2C ka@_?26@XwK` T{^ xxl0ZC~RA((@h 8$hx!.8guix! KiFJhbH85? xNb x!"8f1 |,`  hG8q zx!,>bp x!.iW|YR !P8L]m:UpGzxNo,hh!h_tVpu{|,a ">2Upk$x!!&LkxiPi|i$x!.&\R8)y!x!dD4CDtR8  xNc hh!iR8BX |,c `` l:@tR82"q x!,hN/\ x!.[pP !d3$xNo,hh!/u|,c `Ȁ -q x!wK` =L6$71* x! hj*KCi6ӞP$71q x! ;fҍjR) xN3e,?{T$6$71 ,/#&3x! Qұ*T#& ux! CHp S R$B%x! {Ӂ'>IT#/* }xN`  T`O6oظl#/*q , 6Q Vc8b [x!$O53< x! y„'P /q \x! 3:$"6\xN%[5},$}p4 3'"g>c"9 @  @/h>ġo٣4 (_ 5b9Ep͘mhSxMJ@ ׫&s|%:0@  MMT((( ( @أT4 D? $ $  `q  O+ $.:;E$H!0 ^+^+\fd Q?%pi"ht "j+ @ Z%<\AcVar ViewType \f "%tc#G>% 8 DetailId\ \PSCALE;SGal-sn"d V! ((((vRP$PLGDE0LZDDpNX@s.OL@ DM0P 7  (9>)a;;9 C"K# U X+f`",f @hpD H`p=oj"b  &P!^#~nB0EED% (PD"v }T2GĊ \ꂠ (Bj."w`(#!,"V)"*!i  ` r"j0"xaxDEԈЈ؈U$YT- kI`j q  ĈBq hm$pX $U$^ Ԉ?͌ Ј7CU} G^o} E $d3 )*+)("tt :(978 3 >' #\ iI i jT- k hT- B T- i         -@P   F$u  x   -l0  T u?N !' $722<- eL )#!  5M&l&  L - T 4d Zd 4 F DX xB ;  PD PT   C X "$ ' &5$3 t  ^#! &'l T L[ "4  (!9#7529/739:"  ] ] ! P n L%# (#O7$i0 k0l$i0 h0F$i0 k0$i0 h0Ou%i0 o$i0 `)#l֮RI hAhAhAkAhA~e *+)(79:(978-3 )*+8' #3 >E u u  v X9 Y  . !76X|$722<-3 )#!g UC FL&Zx TD - \/  hP529/739:43 z \5   Q Q  l0 (#A $" H XX L Xc  X jT- i& BT- t  T- hh h  ?  H    H T i 'X  $L T "@"  T t A6A #H @)@ Y#@ o y# D"1 T 4$d Zd n  DL DX xB a k0$i0 h0/$j0d ` $i0 `$i0 h0$i0 h0osk$i0 h0o<%h0 O`$i0 `z$i0 `)#l֮RI볦 ,hAhA+hA+kA+hA:^7uM3 )*+)(79:(978 3 >' #] ?I i i  h- M F  x ]  -h0 T }_?L !76P $722<- md )#!  5L&  4L - 4 T 4d Zd G 5 DH   S PT xq   @D  %"$  &5$3 t  _[3 'l #4 "4# v]/ #!97529/739:43 V ] ^ Q P n $! (#H $d"   % H"  X T- i& BT- L#D"  T- hh  H  = h0$i0 k0)$j0 `C/E, 1"1/*4:617046/)142603= **))"!'L*# "9D 920:22 9'1521N"U0"3><3&2301W ,SiASiASiA+GmA+SiAU+QPv+ - -D 4 })#l֮RIPV lRiAkSiAKSiAkmAkRiAqLMܫ44d GT ;$ (#%E&4 n#%Y^dflxT 1 3X L 2Ta 2X  2l T GpU LQiA#PiAPiAKmAKQiAF0 1X2 6L 6h300`0 : ] .@    \ j4|1|  x/ 0 /8 *  /0  o2L L e\2 \\\   |  /P\X\\ H :p:l 0<<)#l֮RI볦< >T PiAWiAWiA lAPiAjHɂ4 ;  >= <= =5 c 8 gf<,3< .l  /p|lxw / f ,\3l< 0  - l 8  , 2P\\.2Ll >2H  )2\\.2L. < $2@\\. 0 M1X2 6O3d 61">1X0 8H J13. X\2\.L < $<].\ 3 8 x {<Xؓ\.<\  ,<]e6lp{ <z6h  , 8<`Pm\.^",'*. . 0< xPH 02E Yq72qX܃&\\:t\\\  x 4l/w9<T9x (7Pf\4lX\\y\܀4 "Q TF 8| C<l:\\\TF\2\2|/L /|n7  GPf'\U \z\\~\\\ , TI ,Ta 6h  ?<'\\\TH. \\\3 3r 3$ K40\u6 \~. (T PQ\ (| K44x0 ܃6\6</ 6T \ O//\p\6\܀  T0/00L\\\\\\3 \o6 \~. 3$<%  \܃6\7< \p6 \v܁\\  L\6\/< \p6 \v\\\\; T>;($ O80X 00($\1TA6l d4w<, p2  T\TE\1 1? 2   q%t\  "*|- -$?L\ \\l|/Xh >, W (Pp'.\| >. B&L! <>\-| X G B=( .\; <@*<r$%0y$<@ ;<l(\X ;, -<j.\ <>&,"\X Q ( |\.< ', 5<g.\l|h N0 Z"&< >/ % g<3\\.<\ ' Z0\ R " ( @.\h> <d@$|",l.< 1, @?4\.< , E<g.\l$8 S M74< h+\\\ # U.$<X\ #\   U/<< \\\\  ]pX \  ]k9, e%| j\t 7, e- \ .<6, p. \6  #\ p L\.<., x. \.  #< x l\.< . \p # :)#l֮RIp\ LXiA2]iA]iAKlAKXiA 1     8\ R/    ] . \   \.<\ . \\s   \ p\v\\   \ \\\ \ps\\\    \ F @>0.\>\X V & \-X H  ..\:-: 6l . \Ta%XbX :,T :x ` |a .\2, <\\X.< * 6<h.\\X V > P-\.< , F.\Pp-X N F>P5\.< , N.\\Wa   P6,1T 1X #h   8 D5<X\\\ " V.Ta%I.h " @T F58 <h\\\\  ^p)\X \5 7 ^ź:\ .<=, i. \=  2 i \.<5, q. \ B  B'09x(0 &o)6 89T9x H\ 9,T 9x2( .L 8. \ : <\1, y<j. \ "  \.< . \s &  \.? . \z ,  |#\ p/\  @>-\\ Q, ^L$\X\x$* D, <`f\\w\\  L 06llX\\ @ <Pa.P6 \l .pp (q /X\.<\ , <]2@\ . 8  w<X , <_2@\.\0 $PB lFiAFiAFiAkoAkFiA'SMRVM   &  % ]  % )#l֮RIB FiAjiAjiAnAFiA !^틯y  Z [ ] \ < *t$ T _F$~k#-sΌ"!"  " !#!#""" #%f81<\< 07220<66;292143:337694::821-j9(% `- C~Pz -:2:/<2P+>`AC/Fu 9,B7`ۻU/ߺI)gY![thX$/ ڦʬ #H ;RliNzg#y c_f 12\2F a"ױfaAc"HP J ǯ)]#?M~Obˬz1F)-Hq G߶(̇ &o"+N !P\TM̲G89dq:u^gVjV7Ҵ\zf#f?0 ;S3Vphw 1> B&{@͋1VMzвh H~d9d'MUljANXRHFJyPo'Nz?b U[nz ,87QPK\Y!,IOטuO[5|@ SVNDчRĥlRJW&ֺ'D`hFa oj"\AB/ֶqEi ß މl ?UsvݒfÏ=vYB|=roF7Jkvi,aLP2"*ѫ})2`06HDrfyXX,^) KoC%y|or]ƇcβHoMmz^Yh)șJS"D=g?J!I)ΚΦckr}eZU97Q8A4n#COEӦ,iy+5ĈDŽkxjN籚]˼lo]Yp' PGGZcoZX?H)'|]ԭq=N<}w kJcWؽe.MS/)e_ֆe>tGi ]b$L@wV_.m-l7+/8+( V8橢պNm3rYOIv g ~(ZYq_vؾK%{_׏ٗ)ޫ q&(gJ#eol"_hq5U>̑Ё^|0mxRsiҳ3eӦ仒RG,K:KDl7/=^{=NB&̫6\jp\Ӑb_LyP𘈐)-m10ڒuGWsz΢7Nz {h5qizszh>)c[3! a]?p֑>B9:D[mʁ^=EE-4ThkvFma@ voc(ʻ%w ̊XK4|iowFxlAjA'|j%}5ޏFZY߬̚<ݎnS٪ě[D/dw| o7.3%p}/i7.$&yr0l{ʍ>jمsIRA81 {,PRaDDa7YF%hgg@L7+tݯ(IRƒ@5`V2|uQw&;{:)>o )0*񩄃hBڒTH'h8ݥzAuˮi߽bM`TV~# "q2:)AUN;zzۮ]i"OPK5$q/Pvif/c}E2./d 0*B,??e QLإ@ӂKuo晷Sh@u \)Am 4'<` *&:94:tt,mKB <E-0(427<<6BǠ#8GY]t'"$N1z|%${6c ||><:qsLk,0ҫ=\Q?`D !kTM hj\3wtwP==k u:,~LPP 21".%5eF%A^M6 ЫAFT~M Rkt>'3D50†FQ)$쬸3d 0>9V!!F):pjKBEL}y"\ mV !ѩ,.|> $t5&4..8Y+9, 7,t7D*x6h.2i"{1 :,#201.x-7|>; %X:)-#T" &;,$.= +:$"\E ^j .@3%S.Hlb0X E 6@+3xL.<db 29%"@2TI ( yM%[$1["["[ "l["[ " "$\ !# "T\"\!!"TE"?8p98 A[b;[3-:0Uh&.1[O7e`kqͽ$xG)Voc 'fCjӲ;L*ŕ =}iU(# E+]S#1cgV,&<:gc'!m|ף"2BZL)&l?({-c?d,X i~d>"ܲ.[r u[Ht6[#%Er6&hcP0ю_呥)Ҩ*`MlFMzJ!EHi Jn0r qJ"љ`LY oHmj(]'2ņ;) o -*0:ALNձ3US*,yni${PDa0Dqz_5uR*Tyi:"Ɵ2!!+ 7>-lx;uGd$$[%Dzgd>cB7 2z/$&0J"R}HԉGMݙD *So-t &4!ʆ;ml#jgpx'*.jcKLn#"4(#B?6[lhA CpJ@[y1,SarףppVc9 m2na-`{dF8[OIݭq *Yu9M1%WZ*;Llw-X^R%["&$h ""#!!)["U2^qU†8 A/`Qb0x9~!vvffgY69-eC8sVDmL0rvq6N $, U^+8Ǐ=xP1$? Cŕ$HḊ9ɾ!o|?lQMmV"*r#5gA© 9E8DaP ?I=F͚]LJ'5 ]bNyfp&m<]T}.\ū .0^QR1&q/>>\2b6mNJ.y|- )M@"k  #( -[D O6 Z[GaH [["=iU2-[ )-V$[I%5I[E3h*EJ2MNDmHRI17gᄃeO rpY@d]\ Ϯ3MOGv;[X#Ow~>__\1&[#a9'x!Bg|D Gc4uvCsč5Dauwt567. SA(*㣝qj0")OHj$I 7},UK|/'!+L4׵qr&)^TJ*y!o}K)O=&c}11ɛ ѹ܆ʋ %Uy(5#6wyyn^xZdF3FᶯV{6,^NŞӚ'cT.~{z"{1QDam܅$u\"@$ `rͰ5%ݤu[+c*9:`[,ʂKV 5bv?er i=$"qvn@۵ǯt}nUM&UD[E\>nD 5Xi)1/ s8OHS䔕XmIFw B虅IB-O[Gy\~(Mv~o0#thTQx h#)xw@g]̵DҔ#1ɩG'8XYN #*oj\V$e.O [ vb SI(:TDK=}&.uq91.7ןܛpDm9:hDJh.wekzwĊg.'.˛m1g^nfEJ3K`^oEOF=?LOr0'l{%FulBr9̂`v.X] ތH(`p#&\@s[s&[vn׺$icI3K S([W&([2[hI1[4["Q%[eQ:)q'}*ݚUN:'Z%+ 6z`_cdr') (*4Lu~{Ӄ8 m"C p.dC,.\C8PEa,((+$C A[Da [|HO*[8{([D '[,$[o0Y4h3!V #[BW۴O z`9 21\Iˆ0 dvHYPbo1&h21?"ml9aNrħ`[C#Sy1ǨݣG5:C!jCCH! J{. |[.>[-8Y$X63X#[+7*{-$PR  (P,S-2&j'[ #2.S.l-8|>;t%T:)->[%xX;&;,JD [ (+:$"XKD q~j .D3?[0X E 6@+3$[.@X3~  [,]d ,$ ?|"ʷ]$( ?oP ~j$0-G#0!"#""[$\#X!"#"a] ~0hv90"\la"\|O7te`qkF<`񗍐Aqi$].fUy6Q` uKM}I2ElbjSPgaƏ#g}b1,/F<5$if<\A#4DEH)$Z>H>fO"Пkjw4?r^.Yr*W5q-D.yx1$\s 4M@ 4'Y74)\/$FQ"&1p( XHبo~f=3L6&ƽ%UbU. ʕvhp46ʰ""\H4k(WJU::N rnr8 ]I~%th(c ip32a3[0-:R`$p% w^%{/}KD m=S8W }H̙eyijGSE_j)#CyMk'\lNr6 ďEha Bgx6B6b|e5 ;ҽ(ԧ02uBTp}D ,FxtǻQU aypvPIsh-4oOHS~ W5%̇f_,E> \*IP&G D S;|<|fm` -o^yٱcNܿ3l[ r6`.)31N #) -t\ 0ƂȮ2(0 ).V#t\ >!I;m 6Ɲ4#}p([0i~"hVk;YK6Gg^W6o 2K/l zs#- zekm RA+tK*\vn05-R^Y2"I%xe3\ts7!2M)FK"(SP ,F8" rޘxz{h5{JOԄEFf~|;=;tf󙳿z&s%dtkwuEFh[k c%$u>s̯ uO:ϾHS!$U(cmp7{b<_2DQʳȐqj $0`#QB5hoj|G.!57?2V ҠUeL]TmpjͰims"0t!s54Qnsa5Z,dt3pyީ`=]0e\I3 ӽ :x2Â !^`L 1QL@m2Z9Gy6YንHv9x <G*{tToO(|mIڰ1-s=\ZWbKbz`K)N{ 10h䢁!wИQ^VfL@m1N%<2S< rҵUȘYX86!X u2Z}πhs|m+s6Qk6p[S܀xm1^$vI]|1UL@m×Z MNQt6>٦GV^ k>oܐbO+}P`Q쯊R|_tN>̣?gMnBѦj)F2|Pf7.oz| rTSiF)B:(f:}rdw' F.-Y"i*j#[,p*3Q A5F+gz|,-9i.-/?#RZ1JʑKS 0K"E߅GU0`q 8Yk}m'>؏}fL@/ d3ZӖ0tSOG`>Z&aAA\­>Trݹ߫Ɂ &4D"XX:\M@&$,D*Y2x\:T'L%+XD2x\"$ D"A"tD>.0D,2x\6Da+ (+C Bz\Ta $;@$LN*x\69)z\D #jF)x\[kGMSL؉6rRxJ_fFoQr*T/4mY*cKxPZŞ39yr$KV"^Z Wz\D ..M.4CD~ y\)((h.p>"y\$DQ6 Z.8Z:y\1"l+7(p"%x\  6h.2&"( 2..p-&(=E#L:)-4%x\=$;,'' # i i jU-3 HM hT- h           -P   F"l   x   $ T }? !7679$722<- md )#!  5L&  L - 4 T 4d Zd   DL DX xB   PD PT   C  %"$ ' %6$3 t  _"$ &'l T @ "4# u (!# *97529/739:43  ] !@*Pe + P n L%l0 (#%i0d h0 8"$1H L "  X h$h0 j $T- @t A bk0Ϭ$i0 ` %, 0A"/ =` h0G0$i0 h0/NA#$-"*#Բ"ȑ+ % *#&d %4#o%ah. )#l֮RI iAbiA+iAiAiAB}5rT %%q2|d )#l֮RI볦< > iAiiA+iAiAiAhR M)#l֮RI볦< >$^  /iAiA+iA+iA+iAfŠ ׄ  [B BJ JA. F7Jl J sLA@J  AJOLP JJJ J J R.6 dZ.C[.7^ ##J#%'l\b JM GAن RªS@J R gJI  @vJBJVTP 6DH/J7;T? 711X?X=1?;d?3q?P \ ]?d Ty. 6.TT +Ё -J xtTl |6T T T\\|.\\ T |\\ \t22|6eedG6|  -\+t.\t>T \ \\ . \\2 t||"t\\T| 2\\ T.\|TT\T\\| .'H N,0_ W %PXb  " - $"0lT&t ttTX< $$< t\T"TtT6 >T| t0\\ |:\HtH,XT|\tt0.˟G N Z|\\S\\\ŜT T2 t Tt t T \T>$8\T\ tT\T \\|T\\\t<TƜ|ʔ /ϙ \XT\\\|\\|t\T\\\ |t||0T1  3g#.>؇P\\X|  \\tt|\T\!\ptT.F {B9>,\ ; 7 0$\m0TtT2,\TT"]/nE O ND To(,':"2x:L\ ;  ^h":E-#E:2l ;<\ LϻC PPB  Pi(t,6$.$ bB$ bB$ bB$ _@?(VYɍ @< 1t0;" =x|tT nDv#p- "3$&5t"l4T-'B 1 D\O\|Rx\ \.I|Tt\|\ TtTt|(|2T2 \"TT  .4\T|TT#T$?" ) (iAeiAiA+iA+iA^@HAu@'xFy(G @&$}7`260 A TCE*@"@PJ0 \Ho@ |X&E3P 0 T1521:"!,!609929#( ` @ ` @ EO L   HEDxpD0`"@L 1"1(P% 12$762@' ! `@ \ L @xP(H `D(H& ,'**") @ @ T?P ` `` `  HPDxp\D7 l !Ȉa @@ ` WR@W`(d z W&0DXT 406!  `Q  )RLo $)* &L,&" yJW@S`( !@!/&h "")/!\t))"R Gu Mp@Sbh`P ( IT!266@!:<string>jD@dhsi3<|YNQ}5] l7Summary]TEtl7ime>2019-06-26T09:1l/\\@Il]$oRevn254LpCAD ![bZT̿u|SPObjects-I.18.0o</^ODP|^1AJ\QH|\qY8\e@VbtBM|^AMDVE^sM|^.M,PnQ|]WKVTY|]Ah]}M2Q1ppyYRYZ XVI&U}B+,A@P3] }YHXX{t_ObjFreeSpace_vers=\"dTb\UngaaM+P.t3TemplatWegLty_lo#leID033\MKZ(T|7X@TX:HandleL |T}.|t7Class\ |NQMv{xl7tAuxHeader |͌Y^2.|lL&|Sp | {;cA9,;cA]H < \L LD\J LI L8 LB LA LL`a L]L L`ML@MML`,\L]LLQ%LLL!`";cAh@* ߦ< >$^ G޳MB=Z}^(]JH; ۮ2P`x6I2}I܏Okk0;""(2