AC102477 = A h@* ߦ< >$^ G޳MB=Z} d(]H; ۮ2P`x6I2}I܏ODkk0;""ͫ$Fjs/ghJJWhvPVbRdARdARdAkRdAkRdA[:zUjadhsw"1%.,p%%tVRdAnoAnoARdARdAǂ>˔}%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(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!0(!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+}(S8C!ʖ*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:26:17</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-19T11:21:45</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 oAXoA+_oA oA oA$#:zB F @j G̏* @ DȀHȀHˆEJ Pe 0P'H 9`b0@hh0P AD=GD[Db4&3$`8 4&3$8 Y ;f75%@U:7п45:A|3wmRDGpF}35d5.y;5f`\3/0G`F  @ꀐDVAPzELE Ep &A?H;A?\ B*z?BjDgMMHMȀHÿ1"H `   ` `  @4v kT  ` `  @ ` @ w b-lë"D `` @T `m D ` l vBl@/IIԀM  C* z L\X8xp <LD ! "/!'&')"J   D ` GLRX#x&$$`!& *")$ &"( PjI@A h`Hp(G(" l::(T:*)*,S '@""!Ȫ" `Lm9 w;IKHxKaHM$$I#e#+$@"dBL$" ` @ X @ L` l  L(xhG(D&WMMGmGM@),'@"|"!k"! !!j"-!!!" "!~!!^"<6";%.H FH:`@ A A "<!"sGAV ZH  :`@ %X#67106/CC{H{{*<P KddRppxX:OHH>hd!;".Q"2 E BD \  P-0c+ $@8d  BACm 2_hD `P 0=D?% C$Hb  H `AQjQaQPr!@ @ fQaP2P104  $(,07+/BpA6P1:8:ڡl { T"XHcJ! 6` V;r q$ s 20Q V΀ $q 3 VrA $$4q V $Ju5 W@"e7r$70Z^̂Irdl@ 2:Z V6 4Vʉ TZeV]r-s$ TZXJ^Nq-s# ( Q 0iZH ^qdžH#<(HP@j`q"YZa_p0q T.! { Y HO(0E@( l!943XG27!h` @` " R"p(EX-"232!7#x9'33@ ` #D@ "0"`7:90:2"M$"   `2@C:  D(pa# 4728X :297!iA@; J(P9Dh"(H D+"HD& 22;4:4\PC9!dPD( ` \0 :XL*@@X~4923X@62  @"#$RB b"2r B R 2 "  Db ,>B~e 0@ 0`P@  D0@`P 0` !(@P$@d3`?@@d? @@` @Ph !p 0\@P$0  (  2\71\n::" UpBP{̏e3 7h 4A15P81t< $ 246L/{̏ ^/y "*`b3?o la$A(aa\`@dd!l] *h\$H T7(eP{X+ vY+ ! =`0z0@]pC\1w6B|  HX1O@P$8 2 jT1#6\/ %`{̏XZ_|S  ( L53 0n--+$\& 9mp@{̏?)h2 % h`" D242-=D/\~e/  ': ##*08AT?Q4} C" U@9#"TLe4 *P$42D75pBP1?ZR1y Z" 1)53P$!$E$M%uF$ !\P: 0A $4$"P?p\ "" %5;#"d&73q]]]?ֽQ+~ !@P4"" ;d #2"#49"L)1MLX[?V0| #hX0\:9#-0'&*"))y,5`?eZl<` xKj=0zZj"hMBR ,n=Czk4JBf$Z%qml?{ D&!{l>0{.{Wu]l>2n8P<۰D{h=0L E=Sm5M2m{l= 2n۹-Z  ul:h 8a+l: ;@*> XTdr֙3uZl;ѿˠ yzlZyl<v Šrl2 `9,a0l= 77`P$ 0< d< ( hՅ1)n7|7j"zf)hJ .^yo9n9ڈWU ?x#f b( }wl9877@Pj` hYl;7qgd;ˠ lgm"-,䒀-m=Pgш&$Apg}|=p->H D e\Ym&} }=m==شrk2R aym=]x]gp#$dq1m> NxN اq\v)2 m@P Sb8}:vM lA. g( i2Ku|@ ӳYQN/"q/m>`@//1%Sl?4/5w:rҍ&#Aܴ?), @`?iW1n %  ׋|CV 6 e & 'w/|G^/ .14l4p >1"ba%  0 0}'d5 %3@P90Q7..H d5$ 'LF 6.c d5> l5 (56JuCl5Y&`>6B}l5-C怈P=c@Q o*/F l54MF 緑]g.j l5>(u l5 (Eu."uCl5 ;&A"9a5nU4l5x mѐ1b-tT yߩҐ/b; n5e P  n{t@jK @a^u l5>Ą l5 (ҙ.6wuCl5 OY&\I662}l5#%4 AZK/f+8}'d5l   g#/f?R d5e & }'d5 #A\'&/]uBl4 E馋 "7\`?,@%t U",~JL- y"d1$*@ 0*\ 0(yY"P1 [&idlaTKy[ ay eU2ңy@l` R2*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,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*6((@!",w^5,>zRV a` #J ?thM4MzR ` Pja e` L| R\K a ":',K鯸g  R/oq |, ^\,oR\ B  |,d2}, R#* |,I(C|, f  R |,dC  DYmĘBXRq |,` @*P%hVFp |, XpNYt |,`  Cf/p VRt ,X!]vN?H)'?~VBezq |, Y7D7W!NVNY= |,`b@E2RY|, Sn"[=zXN{|,pAtpRy!|,59"p;]vR[ |,d.BŅ |,` E.QFp ,.PRh+q |,d  8~D3nbR6 ,CvXOސ dBe ,UtBCs ,;@ Y)C~LdN\{q , ,- X~י4I!IN, _ߥq~z INፆ,DJ##!"41,,"b'% "I!Łe, 3mXTI!#Fq8,:::)GX ^*z$F },"_  %Beɀ |, Ԕ&R q |, -'FC< ~,X"DV(J{ ~, W|W[?PV)B:ˀ |,#a"&V*B8/eq ~,|qlT+R0 |,dH~,#|,J! |,dC 8HB}+$ 1-R ,Q q .B K)q |,!/NY ,ClYBT0"Ԁ }, &`P8Y!`81J! ~, wpB2Fqq |,hNX!T],ߕ3N, |,8 dV4N3 |,dXNP8\,{5N,|% |,Q 6Nwq ,Y!7N,L 1C8B |,!"Ĉ9O,(##|,8:NY1q ,;RI |,[ mB8u- &%#?Jժ |,Nh!@\,|, tCh!#$AJ!=:|,c  #]'BUpq |, ,hiNCF~ , XNa DBҬ |,&$#` EA+!,T"FECI%A%~,$$hNPeG]Y9y!|,DʈMܕ%*HN, |, p<  R>`6x|IJ |, NS{vCհZLJM,%|, /H?$epKBeu|,&0Rnq |,c TB.QSEp%/~,$peG=YTJ!l,~,bpeUFp@J },"&"eQt(VFdlq |,ҩ $bǀeKBEWB ŀ ~,%YXB  |,8lpY"+|,p%(G%PqFzTZF=_u|, g# ¨`HtI]7A [B ܀ ,$7#Ph|\V\B Cb }, %9'$#72֬V]NYӀ ,C{ˆ{.L V^Fq |,N'_By |,ʐe'L7^V`E,|,'(!aB C|,'('bA8%|,',#~A8cE|%=|,'( dB *Sy!|,'4~6LTeJ! |,'aȌ% UdTfFGq |,'ߕgB 5 |,& 6#?8#4#MhB P |,&; eCiA w%(|,d D&$jB iu|,` &X:!#&kB h },"1&B lA %%|,`  .mA %E|,&#|CY{nB ^y!|,e%0D iNoA {Y, #@'GpA %*,P %(7qB !|,!/u|,` Tpdz_RqTzJNy!|, ,_ߍ2+l|E%},"Ɍgr/@h.|B Ч,]aOߧM,A պ, ۗ&\LdB eu,V+`FdB UЀ |,-8.mk6dRo ,"6D%<''nA 1%6,$q(oB u,"dwS)dBe< |,{Y5hL0{VG}AdBR{^8l :T0|Zq hbZ|VsddirXj|VLud?b|ZF|x`h}^ llj}^%lihfL ^"ulGr}^lt0~^ul7j~^K^lp0~^\ul&/x0~^h|z^鍄|b^τ|v^3u|~\wi6|?0@R7`Z@Vd|D Z)yh? H^ l_A^leH^5bl"0A^Eyl%]A^{4l20B_Mii<~:YBZ6{h2L VytB[BV `t?J0CV;f}vRUCVdZCVkudiDRq`eY'DR cjBYDRBLYDRu`jX0DR!`rE^|R0E^fo*QAE^ulRD^YoJ]F^v oj] F^ToJ]3F^[uobQF^xqN~%mTGR7a c*B]GR3>pVGQ ` jDRq` WHR&`꒦HVug UHV ugUHVt⪪IR{q`_Y'IQu;rYIRyrhRj`J`0JRg1`JD^#l J^'uo ZQAJ^Slꚤ0K][o]K]yo l ^uo ]3K]L:l zL^qNEP "kucʊ"!LR:up*^HRcp)ڲMQ4 `*vDR4I |)Ҵ0M^k`u|tD^]|N]R li0N^ 2y:le'@ R,ycjQNRq ` RSOVd]OZhU!OZ^yh RLZGhzT0PV&gdRzJc)Y P^*Puojd^ToJ][Q^|*l0Q^y|ɚQ^AulL ^l°R^Ẅl ı0R^Nl jL ]؍Ml ƱD]BoliȲ0S^_yaoda'SRvqckQSQBc*"uSR6d} p"̳0TRqp2OTP` QHTV;u dU.TZR~yz"Q!UY%xK UV gi]hUR}ucd^lK"nV]ok Q;V^ nk#!V^܉q4lγHR`?:д0WVuyd_JRWZ6hRKH^gMyl$d ]s%u'l BNX% ldYX^1|lkRleD ^,yleֵH^Jlض0Y^tljYY^wlkrIY^1yld ][%5lb0Z^ leܷH_G#'|IZRO }`޷LVEd0[Z}hwLmAK[^ Ul_wL ^y)ldg⸰[ZAMy h_G\Z0kW[i7hH)WHP^aq~ORrG}]Ri`_0]R3`}0`&']]Zbyhnd]VLdeG򼰀^R]`0^^1l"Q!^]lKB@^u ld7U _^sψl?Ұ0_^pOoi_^yl?z_^6l_"p,"{h݈lAM`^_>ld ^yl_ꞧ`^ Vld?\0a^55l+\iMa^D͈ldD ^=-yylLR`BbV$gZGh'"Bb^}o'' ^}ocR@}0`0c^lCHZĸyxcVdҴd^qlL#>H^lc H^Vy|l+ =A`d^ࡈl3U(e^)lcY!e^~ňl]e^##yl#0e^Ll3ðf^9o e(f^؈lU(f^&?yox^4!l3 =AJg^\l?*00g],%1l J@DZ$]h SİgV|dlc0hQr%i:`lkD^ |{ưh^5u|̃D^|"Ȱi^-q4|$0iR% rQiQ%yC`;AHiVߍ}dK]jZ/hwU!jZVyh*jZy;uxi,0jVyg JUkRc,SY k^ʄoLcd^v!"_걬][k^l 0l][%a!lolR9}:`?(D U%*gg#lZ u h_U m^lgm^yld*H^9ylb"H](l 0n^ l_ڶn^,r~"JYn^cylDGQ/n^~gio^l"wIo^0l"&o^zy|?o]%UNl]5p^N( l"yp^܈lK[*5I!p^yo#Qp]%#l2q^^uo̺"qZP8h00qV;ut23A!qVZd?40rV }vUrVlP dGYrZFb hLrVd,0sRZЄ`,:ΰsR"Ԅ`+8L ]$5ol"$s^g} okQ4t^A|L2̰t^~L]t^-uol ^ఄo]3u]:lc6Ͱu^t`N t#G0u)# oAioA+oAoAoALk&6!tl,0uԀSaT 0vYd@ETO (ud B/vYy`? DD V\}vUwVOl dYwZѤ hwV.!ud0wRф`+L0xR{`;JҰx^Tڄl ND^~uo Q4x^|Bаy^D:~ ]y^go+l ^&uo ]3y^ |CFѰz^qN#Q zR `<0zRmq ` LV>ʈdsY{ZnTh3ư{Z9hm#L-H^y ld ^Ոl0|^ޜl"HH^wlSQj|^%y l_CVհ|^l˃P,}^@U }^cl;T0}^}IuW lMcZLZehI+X0~Vt+\DR`bذ~]H ldL ^Vc} lfٰ]~ o U^hq4 |sd'@ Ry `d V&wQ;Z#q! hZH0Z-k[Q;VnudrJR4r-Y[^GلoMYA^pq'lM\)R)y`sUvVS{dU;ZãhW`0^%+lhH^ylkn۰^;l+Z)^lgU ^Cl?l0^9qCl tDZ>q hrܰZ hvDUdohVMq d-@ Vudmv"Uq'gQ.U%d'Y'V-}dB?x0Z9eh_QIY*hp0^t2 l{]^yl_&ɰ^Aˈo˫i5^_lb?U ^l^xuPl޷DZzhzްVd0RG"`|D^7ul ~D^Wlఀ^ll.D^\q4l!0RYq r.#QQ`H#z!Vq}d]ZwhAU!Z yhNLZx+z0VPgdR|cY ^5Runt^o#][^-ln0^q4lBRy`6HVbوd?]UZ;Јh:1^Ql/d ^`yl?ۀ0^'lQ/^gl:]\^l "A!^}yl z^'U ^ l_"i']m%%l' 0^u lZ*^?3l"+^(l&v^Ʀlg_d ^9dyl_D ^ˈl.^#l?200^Gl;D ^ylH2-?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,4((@0#|,f3Ȃl@ L`fRt# #7 HdR` q 1#(ˠ ;4|,ȀVJcee=NYl |,&.Q>I{%&>,щNN?B vl|,Áee@N,Rq ?|,RvׂtdAB À |,-&9BQ8_ |,qˠ $&$#CR?|,l&MDA-%-*@|, iEM,%U @|,!FN },@|, Ȑ !VGNYV |,lY"I,,VHR%q A|,C !IFCj |,Y ~YJB83 |,k! zNKB s , epaddLEpfM"%#uB|,!ާC&1NJ!1 ,p jR"$RfOJ! , 9$F\fPBe]q C,e'4QBc |,{hOOzZfRN9 |, {j^:fSJ{U |,dDʀidTB q D|,"-QUEC|%,D|,z.eVNY |,`e ,,WE|,`  .5X],muE|, Y@ M`fYJNi |,8&X:+8QZB 鄀 ,XWp [J! |,"!\FCq F1P #u<]B k |,82k%(=f^JN- |,!_JV ,.e`EZ%G|, ,aFCuG|, $Y!&)bE%e.G,%R3! cEC%I,G- #dB 2y!H|,N#D!eN,& |, ~.efNi |, d\'1gFuӀ ,#0P 'hN,Sq I|,l+DiB |, "0Q xYjJ!E5 ,\8 kFڀ |,`8P {lA%EJ|,'>z,&mE"J|,&p"i W"M&q"nF{y!J,q}J&(oAe%>J,g`&!pJ!CuK|,&%ԪVw&%#qIN%4K|,&%auЃj&%rI!y%(K|,9re&]'sI!%9K|,A: N$"l+VtB (},L~,$-NUNu"J |, < bN"$#evF |,aVN wA ̐ |,rj¨xN"*+XxB uM|,5PRqNlXyA %*M|,4HACzNzB 럄, Erff{Be܀ ~,!x!6xf|Fq N~,Yqh\"Ef}B ߀ |,YY#"}~A %N|,NN,A JN|,eelUB cy!O~,!trHfA /%RO|,%}#*iB>|,&! $,WY!F. |,&#B q P|,1TE* .B J |,'peA %8P|,Y5jeA %9P|,&LF,8B y!Q|,aeB Ā |,rJ.B  |, Qʈi. B o |,;&ʈ. Fphq R,$] .I,F |,{ Y{A %e[R|,(vI&A%"e.,|, #&E3%S|,`"%*/a "wuS|,` "K.E% NS|,'LQ8B GC,=./B q T|,8.51FCK |, .Q3FG |,`8TCi`x4fB l؀ |,` TCOK,=fB q U|,C {7θ ϬEA )%q"U|,d ` i z="4A %^U, fI&LEB ψ!|,C.eB \q V~,%UM,,@ ,.Vl, (g?pl' * 0gԀ?b`# ?Bh?uWdR|hTN Ąhbh^jlhrzL ^ml?"i^uXl xi^Algg*i^Dl,0i^J}lW"j^uYl(0j^b|O00j^|2j^l?k^x(uZl.k^l76k^&l80k^~'"%l^6wu[|40l^ľl<0l^ lh:ql^HlBm]\lD0m^} \l<0m^~l_@0m^ey\li H0nZGq]hi"JnV3t2D0nRAbi"ɣn^jlhNo^ALq^oBP^}lIB0o^lI*P0o^9l)H0p^5q_lRp^ lJJp^~ BT ^Cl JNq^*q`|J:q^4 |JP0q^xoMq^hlJD0r^CYqalH:Vr^lIZX0r^lIbZr^ lIj\0s^vqblIzs^ lH^s^%uoP]bl2t^+u clj0t^\lrZt^DlX0t^tUlbu^#qdlJVu^nlb0u^go)bT ^lb`0"#?qel b2v^Al(Zd0"?el)fv]L l)h0" ?yf|)j"?l"?πll0"?OJf|Ȫn"?$ig|Of"?}g`ɚxRKKp ,0"?d`r"?xqh` hf"?̈́`fyV6Ȅdon"?yhx ,0"?iqih$0"? qdhjd0"?h8cP]d}Kilɺ*"?`jlIr"? 0yjlI 0{R2&l){^PlHv"?T[y>klIxb|R$`z"?MkdI"?Mukdi(0"?qltȚ~"?'ql`v"? r\Z2ѕph~"?qm`@0~V2.z` 0"w?x",Iꂠ~^lHzz"o?/qnl)x0"j?p%nl)†0Zd: o T ]X%nl ~@"M%ob "n@V28$od/` ^$yol"HQ#%Uo`fAVM}pd銈0AY %mph*jD Y%-pxJ2]H^eelU B]%ql"bB]\%ql$0B]%9ql2$wD ]%qlC^#y!rl?0C^Ul?JD ^H:lR[M5C^l%U D]%s|B0D^Vu slH_#sl%[DR`EVmS}tdYA)EZ(ytkzxZh hZX ZBk}FZyuhG&FV[g#MFU%udD R3 `R0G^nyvl_\H]%uvlʢVE/G^˄ lewd \&vl_T0H^`u wlfH^lW"AH]nwlEO"H^ lJmI]| xlʪFnX^)Ku xl ]I^l0I^|*{J^yyl }AJJ^|ʴ0J]%yl ڲST ^ l0K]Ӆzl_꾯K^Eu zl%]K]% zlD ]J%]z|°L^kq{lı0L^!l H^3؈l_H]A%{l$Ȳ0M^?u ||ʲM]$%E|l_2γH]s%|l:MH^qJU N^$y}|?*ƱN]%}o#N]}lBҴD ^ lRֵO]%~l"KE(O^]Zu ~lDd ]W~lJд0O^$~l*Rض0PZ{uh+bڶPU%%Ad+jܷL RJ c+r"P^"oKzU;Q^4DuoK""yQ]%o" Q^0}:lQ'QRo#rjQRRsucˊYRR`+20RR/q`+IM[RQԉb`r] SU1%݂g$ESZ=yQ!SZ6k r"%SV-gKJ]hTQ%%c+jd]%E׃oYT^ܧuorQ;T^l̳0U^uo2"U^8lL ^ń|꺰U^億~""V^uokQV^blk 0V]Tl V^rqolOQ'WQ4cˢQWRqc"WR`*򼰀WQi` EXRł} `] XVtdgU.XZZyz Q!XZZmk"(YVug:]hYR}cd^1oK"Y^nۄ~kQ;Z](~kZ]މމo"Z](lH2Z^Q=qAlKBA[Q %!`[UB%fK#[Uمg"[V2/?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/20202020202.$E#B% ~ʢ؎X`T$ % #&8 ږb0hf#D#$d ?xMLNb@  R7%#4 BӖ/Z-P" Ru, A# 5}&3o6D R |,!瓘xR,d#"| |,8 d E9?$'%9},&<]x[dRau|,yЖudR< ~,$ 8Oad#9 },%l 0Mc@5Hk}d#? },"@ y!!I!{%E~,$]!ܘ!Ru|,d"ܼ @APRPmLYR, }, %.NNA |%},%`-68fR?u},&x ?~@BLRE%], R%},% nH)HЕ@8RBd!},%"he+eB8Lq },%ήVRh̀ ,"AZyJ= |,`e"@љA },%S-yYNu|,'xE%],""p$)D&) NYTh|,{ ^H.5"!JY |,!M_J:|"R"q ,"@تtw:|#E+,"P 6]B´|#%I, [EwiR|#Ј!, gNxZMv~#(%qέ," h̲PN6;@#Nu|,N 5;JHA (F׀ |,hN@ u%qFހ#%ۭ|,g_ '1 <~"]zu,X{ y?>)XA +NY{ |,h!PeoݝD1FҀ,RJ |,!XVir5f-I{%Ʈ|, Vс)ߎ@ .R%, qH7G"5/J!]y!|,& +j(I;E0B8 -1q˃avMȈVh1E_%鰯|,&(\~suU2h2M%,Dp _KO8h#+ay!|,Y ߣv92dlh#O%1ð|,`  *GAQObth#pA|,'H}K{@$h6Rxq , \LO)7iIN7JNW ,P T5#jz~A 8A %a|,&L 7<OL A 9I!%yձ|,8 j3qYO"=:B ty!|,& YcqY[SNE;B  |,& ]ƁmA F'`u|,rP?B ; |,&'#?yNN@A N},M(۝AB Q˄},&ңwBROq ,KCECS%~,$^xDF|,&$/eeEN,2b ~,\$nd}ఝFB Kq ,y+GB > |,eYHN,m ~, a$+zկIE%}},$(y?JMY%5ݶ,; $) &)KF4y!},'%~&LT%a|, Z>M"",%41=m\耀NI!%|, >۴  L[ρC#'%(|,CqhN%foN#%i|, )-09QR%Է|, t<*+fJ#Zq8|,{ FWH9#[ ,tC X xd-*M,TJ! |,X¨?H0A UAeI%+|,!b#wPY^VF(u- UQP`$~HEWA %۹|,&;tuC&CX"|%ʹ|,#"@%{9{YEe|,7jxy{~{ZI!%6|,d"19pp[B q8|, EJ\B s |,8ɍI]B ʀ |,d }YUY^B8*q ,R uI}YY_F |,RU.{{`NYۄ |,!FOuaFȫ ,`bB q , !&:~Ɇ=McA 5%]'|,h!Pe QSW.lAd"/%1, ۤӰш^vA eF!- ;Ϳk06uPMfA |,p 7>8bR",gB Du, >!S@~&]EI!hB b |, Һ<@^QUiB F ,o:w7~jA %a|,hN"61NMg掀kB xu},%K?q88lA %]'|,%(Fq88mB |,'appnFptq |,%E%61%51oB ,k$I#2&2pI!%G~,#I$4 &4qA %~,wqeerB 7y!|,CusA ..|,!$2H&2tM;%(|,F$8L&8uEM%9~,8_V$=8&=8vA 6{|,8{$9s&9wMY$%)~,KwC$69&6xFLuC,]$)=&)=yB / ,l,$)=&)=zB 3q |,8oq쑿{B Y |, $8&8|A |%|,e!uk}A >%>|,e;$&~A |,)$&A %l,$`C`$l' H 0`Tl" 2`Oql B 0`Ԁ%%l(R0a^2H l(Z0a^+lja^Aqlra^M|rb_#| 0bR? pbRzy `H" }bVw1d2 0cZЄhGcZ4 yhHzcZ-qx(:0cVd20dRЀpB 0d^IVoRP^qlh0d^|hz0e^l(&e]\%lH(0e^Ufu l.e^ۀlȪ00f^qK|2sfR`_40fVEqt.fVy tGg00gZc zHI2gV{yf("5gRr{qb"gRe`:"p~l>h^ހl40h^q|2h]%~Mi]1%5l2i^Yl(0i]5%|Ȣ6i^3qK'G"R`}`h*jRֶ cǧ# U>db6"P} h"PKh(l]&%lH"P"} lh@p"P~|H0m^cl$P@pqTl$mY3x:P0mQg%qt2RnRq`JTk"O%`?RVnUN%=f"nV}%db^"S%Qd d0oUL%` bo^oylfo^ljpV2Ҁ|l0p]?%|p0p]"%l t0p]čo7"qRs%q` l0qRO}Q`zbgqV+2ug"IqZ]h/t"c%!h\0rZ1}x^rT&5gIPQ%`)vsY2K%oiP^X}lj"`Aqlrs][%5l|0t]t%n"t\).t 0t)#l֮RI볦< >$^  ,oAoAoA+moA+oAoNlZ|.!t*tԀkqap ^u찅T "uTсT **0usy duZmy h|0vVȀd2~vR*pBvRglq`R0v^Հlj*0w^ljw^>lJ*0w^SqlJ"0w^9|*B0x^ހ|*"~x^!|)0x^qKlX R5%y `0yR4 `&Ox0yV7d麌0yZuhJl0yZnh:[z^Tl%l0z^0l_2nz^dq-lj0zZÀhr{Vd r{Ra`J0{^^ql 0{^jl 0|^?ʀ|z0|^Iɀlr0|^?ZqoT ]ׅ|*r}^0s |j0}^v?l²}^Vqlʴ0}^ljʸ0~^d l򶭰~^,lj򾯰~^qlj~]q+l °^|m |Jʾ^b~JT ^Ҭq|ʰ0\m6|*0@Sct`E@Zeh VHR}_yr_pZ`hQA^@~oe A^ Lok t ^sHylo0A^xl隴0B^yl`H^lJ®TB^&yl7d ^=5lfC^KuWlJƱDZ]hKȲ0CV ydK"M@ V}q gYDRj` 20DR` :̳DR[up:дD^^y lBNER`_"] EVfdQ!EZEyh]E^-u!lBP0FZh"RFV %dJLL R+up+JDD^6|KJT0G^4q'|IRRkGR`JHD V5}dZԵDVgk*YvHVnydk"LHVde']UHVfG}d Bγ@ Vu>gIZ]4IVdIRҴIRgq`'orHRy`\0IV{d?b*JYOhXjH]qld ^qlr&D ^l0K^gl_K^l D ^v.ylH:D ^Jl'U L^ o"&$L^MuWlZض0LZuhbֵLV~ydYMVddzڶMV~dz0MUdrL VydGNV^t?HVud0NVud˪L Vd 0OR`KO^nlKL ^q'B@ Qj`_򼰀PV doY'PZykQOPZq hdUOPZq kk]vQVgUiQR_߈`AQVazq gKQ\QRcURR@`RR Nq`kDHRq p DQ r˒]-SQpjSRA4q`GASR%q`ܷ0SRq `'0TVdBQpTZh? TY% "hEH^Nu l?U U^@Il0U^lEU^](yl?ꂔD ^lZV]blZH^ led ]%lR0V^u o''mPW^ٕlJDW^CoE#%$W^ylPT ^o&?#X^䮈l)yEX_#](l.XR]y `i*LmX R!y `.tYVd?d0YZ̜hw"YVoy d?w" YZy h0ZVjB d_E)ZVdZZ6yhg"=ZV2y dH[ZhU[Y%]h0[Vug#M[U%edʲ\RS `R"y\^U-l"M \^2jl+C@^ӫlD'U ]^/l" $]^vn<lY(]R}`#+]TW&iTxF@e" CjR202020 20 20 20 20 20202020202020202020202020202020202020 20!20"20#20$20%20&20'20(20)20*20+20,20-20.20/20020120220320420520620720820920:20;20<20=20>20?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@21A21B21C21D21E21F21G21H21I21J21K21L21M21N21O21P21Q21R21S21T21U21V21W21X21Y21Z21[21\21]21^21_21`21a21b21c21d21e21f21g21h21i21j21k21l21m21n21o21p21q21r21s21t21u21v21w21x21y21z21{21|20((@#;X f|Ry #,f3Ȃm/8o4efR4 #d!DgD6)d\h RT #<t CBFa Qhh Rq |,2,]0Dyx$ f R |,%B )2?zf R ,CM?J_~f J!W |,8zHS(hRC|,!e%8V6hRmu~,|YץD>hB } ,|Y47CͿ hJ!i ,ɷFqfRNq |,8B1, vfYN |, }B^ ±fBeπ ,8}ɖ2e\f" |,|jCCR1q |,ѿˠ A镝JN- |,8+ ׊?R |,9seV*PÕJNú |,켛ʈ{{N,qq , F_ |,`8 ӉDR |,!0.R0q |,Y'uוN,q ,MYpŕpFc ,Q bܑ NYx; |,`8 !A8%) |, *~u "F8ju ,3#NF ,\Y\~VZDh$JN@ |, x ۧ*n-tANmxVh%AY |,Yf=D9NS޾rh&Bu |, =ʈYVE~^zh'R |,W$Vf"(F |,D z1N"AU[f)R검 ,XTIN"f*Nq |,dp ӳYQNTh+F |, /7#NGڑ>Ph,Be& |, BQėj?qND)f-J{ |,h! q0$1INUm1".FCR q , VEp/N,d[ |,d 0ѧNC3"0Rɀ |, "C1!V4,uE1N,Y , 3Nb+nA82B 'q |, @U*xجNS6W|A 3B } , INK\TA 4N0 |,H7UP!Nn\YN5FC: |,&a,,6B q |, YhlP,ڝ,7B [$ |,,؝,8B  |, eEe9Be/L -ve8e:JNq |, "*dЂՓ;J!\E |, f GB *u|,' !8?B |, L{瘉{@B K |,*%"%AB I |,&(F%&BB Pq |,p%&C"y) |,HAb% &DNYX |,WON$%}EJ!ܷ |,&J,%^&FB q ,%&GB |,C)p=JHB |,C@Sb8ZIB l |, >۴ $s8H2)hJE% !,%+ 6k@KFu|,!Ŷp/t1LEh%y)~,$* B骬<ۂMEL%|,ᑏm`婢NB y!,%+PXt1aOA %|, 8¨Jh㬘S?rPB|,!6Z,b8ؑ8vB q ~, #WM%)&)wB ,MxB ? |,%#ށe eyA %7~,$B%n&zB u ,$8&{A %9 |,N/%&|A %( ,>͑}B !|,8#.qy~B kq !|, !FX#!l, (`$!l'H 0`TBZ#!l" H" }`bu"`* 0`M $"tBaVzy"tJ0aVtRzaVu#t?Z0aVdbZty#h0bZkPVq$dH"bR`Z$0c^ڀlbc]%$$lȊ0c^}+%lRxcR}%`zdR7ـ`hR$0dQ$%rRT Ru &`HR&d^o|H&e^"l.e^};l00e^q2'|2seQd'`40fVG dg':fY$β'hh80fZ}(kPVd >gRz `H@0g]K$>(lH2g^-u )|00g^}}+)l:qhRP `.hRt`(@0hR=Jq*rT R`Bi^=l(>i^Wy%*lw<0iR;u+`_\ Vd"jYÍ+h @pj^Z l\ ^*Lu,l$0j^\q-,li"JkZhL0kV㈌t2NlkV/ju-d:P0kVq-d)RVlU-d)ZX0lVa d)bZlRq.`\RCy .`ZJmR1`irL0mQ$.p:`0mRu /`)^m^l)d0n^_lIh0n^*}+/oI"ynRu0`bP0nVq0tIB^oVЌ d bVjoZi xijh0oV'q1gbPR^`BNpRYԀpI*Vp]$R1| :L0p^u 2l 2\0p]$Č2lnq^ ll0q^l)p0q^^q3lIvq].%3l|0r^G l~r^uQ3~"ѢrRpy 4`*rQ$ڽ4`*0sR蠄 b*"sRq4r"sRQu5`"sU%i5d$tVx gF/U,tZ}5xJp0tV q6d*2v"̿a%6cI"Q1$nj6p~"̿ƣoP]7|鲀`#̿by 7p"v"̿r`ڌ0"̿'$ʌ7` l0"̿}>8rj"P"̿`fn"̿]RdGb##̿(z""'̿du9lrc"+̿Ȅl?\#/̿ࣄl bg"3̿VoOT "7̿.u:l)\ixZ_l/f";̿lZ";̿l_J:";̿:u;n#X";̿to&"X";̿Jlj6";̿}m;m#"7̿/~q|J0|Ve$|*z0"6̿Q%>nJ""7̿K lJ#7̿cq?lʢ"6̿%?l ʬ#6̿$z֌?}""7̿|Ҩ0"6̿I$Ό@oj"`^1Xu @l0"7̿=|Ҹ0"6̿.%M@|ꢦ^Ju A~*X^S$IAl/$:̿$BAdjY#;̿Y o"π@VyBd S"]]$޼Bo%d ";̿F od ";̿#Boj"AZFJIDQf$֭F`j"ܾ"/̿}y4Fg$#l"/̿FyFk+JPO"+̿q Gk#"+̿q Gk\v"+̿`gTi"+̿Ac"#FR5xq HgzQ\F]4 $vȌHcjT"/̿, `*޷$+̿;qH`jK"Rӊq IrKJ"GRocc "\-"+̿|` #'̿^%qI`"NHRq Jc"HRq J`","+̿cdPp"/̿_`hBJ$/̿ZyKkK2#"/̿?lT "/̿lZFJRlW"iJZ5yLl40J^5Ul誮#/̿zlh*u"T] %Ll7d ]|$Ml?Ҭ0K^EqMl"T".̿%Mlj"p"/̿a l:#3̿yNl B\$6̿$"ʌNo"E"6̿$~ތNl?R#7̿܀o$w"#:̿ύ5Ol_뒊$?̿lu Ol 0#?̿]lj_MN\P%ތOl%d ]P1Pl*@^Pr)uPoj""G̿pz""G̿q!Pg#]OVRXq QgZhRVl` ʘ0#B̿Y$͌Qc ""?̿J c+"P">̿$FRn+$\"?̿ u'R`\ "C̿d$WP!"G̿vhG\"G̿C!u!SoK""G̿ڄkk""G̿ t0#G̿H`"R^N3PuTo+QiR]NUT~K""C̿y-TlH*~$G̿`"]SV؟uUg2""G̿JgP}"C̿UyUf$"C̿deT\"C̿G}Vgk"T^4J:g2\4";̿l8g*"4"6̿$RΌV`'(0#6̿%$&W`$7̿+Qy'Wd:|0#6̿%WhHB|%7̿* ld ZOByXl_bx$6̿$ʌXoD#"7̿g lb\5"6̿$Xl?""6̿xYl_z"WUP$ӌYoe#x"7̿}Yo#"7̿$5YlGx R6#}Z`HXUZg#P"7̿biuZd_""3̿؈gg"5"2̿3[`ff"x^7u [o#`"/̿㺈lHX@"+̿{le,0#&̿D$.ό\l,uX Rlq=\`_"T"+̿^y\d"X$"'̿ dƷO"^QcZ}]h#x"/̿h#"3̿zy]kk#"3̿s h"# "7̿u}^h"\V7 y^hT";̿Lj d"d">̿%^hķ0":̿%#_dK]"4 "6̌d"4 %1@_#4p #421212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212122222222222222222222 22 22 22 22 22222222222222222222222222222222222222 22!22"22#22$22%22&22'22(22)22*22+22,22-22.22/2"12P322422522622722822922:22;22<22=22>22?22@22A22B22C22D22E22F22G22H22I22J22K22L22M22N22O22P22Q22R22S22T22U22V22W22X22Y22Z22[22\22]22^22_22`22a22b22c22d22e22f22g22h22i22j22k22l22m22n22o22p22q22r22s22t22u22v22w22x22y22z22{22|22}22~222222222221~9%a`buc㷕Yao{|~"$=sal ߿*#p :! R%%al b  Rp!h!bZ  R+q b|, C&ƌG  RV |,b 8  RL%b|,a `z) J!|, aCR%Ec, OЪ'R"%ao,0Y?J%uo1A @"!%o,.eAFDŽ,z{BNBq p|,!CIp|, DJN,"` NEB ^π -` FA %yq|,GB .uq|,dM,HB , .eIAe%q|,NEJNMur,Ph!CKJ!Ҁ |,`8TpP p#ˀ ,#%-r|,p,NFCus,T/eOB8 ,H0EPB8Q |,'"ez&QJ!{ʀ |,CH#Q Ց RA %t|,0^2U%@%SRbut- 5 TA/t-8y!DUJ!f|,!_xSs~VB 'q u|,C&ƀH0WA %51u|, /XB $Ձuo,'"GVTA:`( H"~V_:Wvd#VԀlq#WKAd0WZIh'"ͬW^,ywlW^TlyX^sˈ| 0X^lLJ"WX^eyxl?"egX^(lw&Y^0l")ZY^kl_"RY^ fyylg"Y^[Bl_g"-Z^ֈlG_&vZ^lO"]SZ^yzl?40Z^l/"i[^`&l/"=[^p~'m[^JSy{|_'6[^|'4s\^"R\^W lZ }D ^~u|o"m\Z"k'Q]VQd@0]RVcQ]^'u}o'"s]^ՃoU^^-%lgH0^^>Մ~Qc^^u~|GL0^^laoQU_^NM~W)_^:DoU_^BulPl_^vo/"yx`^3oy,`]b%l7F"} l*Hn`]%%lB"s lzDoa^m/|G>a^3u~r"Ua]%U~"b^3b l(քlgh0e^c l&oe^Aul(Rhf"Ilbf^5l(dg"/υlG'^f]&l`hL ^3gu|_Zg^oH"Eg^3Q og"g]{o"Yg^h} lR"lZTkh^f„~G"]lh^/$ljhRG$`ɺp0i^3遀l)t0iZhix"%Ɖdini]%ݭn"Mj^Uyl j^ | 0jV2Wq|rj^ |Il0k^E|I0k^l)|0k]z%Ŝ|zk^ԨqXlfW0lR`t0lVXv?"klZuz%ytl^8|/0m^lezm^El&"&8u||0m^Roe"n^o%"n^~"qn^33 ulEp0n^*?oJ"ՠo^1flo^l)Zo^ulo]Zl["7%|F"80li\L ]Z|'p]%~)"rq^3ҁuo7Iq^3xo"%q^CulG"PylrRl`?"-rVFmdrZ1yhUr^4o#}s^]|s^yle"-s^yl"s^rlYpt_`#E0l"0tRs rExRycxRB`"|uRHcx^4oex^yl&je"ü%)oFoiv^ ofgx^l&wXyoFx^5]$~iw^R~x^53lw^5yl"9w^@DfUx^|ul_Yx^ J}rlUqxROy `"xQ恎`"=yR3yʘc_9Yy]%ۘlzWyV1ud0yV?d"MzVE7dYzZsLjhQz]KlY!z^Du oi{^ox^' l"i{^}y~Gx]l}m ~x^5ox^\}xlEg%hW"Vb dw"R7'`JUlj[%,lʺVDZ44 } ~]^hoO"]%>lO"Q4N%reQ'R$s%T'h_#@R$cE_X"Y9y `_"'@ZPvy kG\5y d&_VCAV#d_lA]6Z_| ^Ht%p%t)p22222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222223232323232323232323 23 23 23 23 23232323232323232323232323232323232323 23!23"23#23$23%23&23'23(23)23*23+23,23-23.23/23023123223323423523623723823923:23;23<23=23>23?23@23A23B23C23D23E23F23G23H23I23J23K23L23M23N23O23P23Q23R23S23T23U23V23W23X23Y23Z23[23\23]23^23_23`23a23b23c23d23e23f23g23h23i23j23k23l23m23n23o23p23q23r23s23t23u23v23w23x23y23z23{23|23}23~23232323232323232323232322@$1Vdš"O&`RTJq deT`  #q h. "r\ `. "rv |,t`x''7 "rq |,c h, "rx |,` `W^' "ru |, CJNH , xD"q%,0"qt%Qr, tx,"q % z|, v"x0"r },|, B9Uc` "rJq ,pb Y"q%o,l0JNz1|,nYxx!"r߀ |,8Oĝ"rq |,-ĝ"rYˀ ,`!Y"q^ES, !"rJ(|,`8h*;Bo"q|,c x0"qǍY,l0 "ry!|,N hN%,i"q%g,p"QeՐ "ru,TC)"rep ,P8 "r8j |,&D! "BCR ,\Y "qۍ|,-g8"qJ%s,p!ّ %J!=y!|,gp`ȃ "rA ,2} "qC0}, "r{u,xȥ "r |,&X{)r -S հ "r&q |,CdÔ"r^ ,t%"p&|,d,"r,l0d"rnq |,-eŸ!"rK ,\Y/4"rɀ |,-7ǔC"q !,%!"rMu|,-,"qz`,t0d"r,HMxE,"qe|,CςCXN` %qON|,CP XNo)rwy!,dP "q^C,XV)#l֮RIpH LLhA{hA{hAKiAKLhAȄ1_̳]bU :RU((@tz)?Np ;R.r !` + X Rq ,f!f(F,?J!?q 1X @R΀ ,z0dAR( ,`,BQ8e |,CςChN!CRq |, YDFCџ ,ttNERM 1XVNFRɍ|,dp0lGR|,5lHB8iy!,0lIB8 |,NJNY׀ ,0 KRq |,`80LN| ,-lMJN |,p,NN, ,0 ORq |,  D(MxE`PN,, ,`HEp 55QV~QBe? |,  RR , `Hn&USFCYq - 5 TQ81 ,%\,p2FM^j!DUNA~ }, ߉>jSs~VRq ~, 2xN b WFʂq , /X@<$.l, 'VT`( H"~V| d# VԀcyl WGmd0WZ#Gh' }W^l0W^"ylyX^0| 0X^݈lLJ|D ^&.l?X^ylw&Y^`l(0Y^l_,0Y^]lgyY^+yl_g"Z^lG_&vZ^ߋlO,uZ^l?40Z^&yl/2s[^kl/80[^~'m[^|_'6[^Uy|'4s\^|0\^߯lZ }D ^A3ul<0\Z'uk'Q]VZd@0]R@cQ]^l'D0]^IuoU^^ulgH0^^m~Qc^^|GL0^^QuoQU_^;|WP0_^.toU_]7lPl_^} l/J`^lLm`^vMl7F`^d)l*HnL ^1^ulBa^ ˄lzDoa^|G>a^~|r@pL ^0u|:b^Hl(+ulJYo^sHlo^bl)ZL ]%ylo^-} l[p^́|Fp^Kli\L ^ާ|'p^u|)Ҍ]q]Wl7q^(( lˆ^L ^QlGq^@sylrQ%%`?"-rUdrZHthUr^yo#}s^>]|s^MleVjs^dgl"s]%*lYpt_#9l"0tQ%U-rExREyqcxaMy`uR1cx^doex^ol&je@^yoFoiv^^ofgx^AVl&wXv^܈oFx^I+y~iw^~x^v)l[w^bl"9w^>yfUx^l_Yx^JP}rlRkxR=ƈ `"xRy`bgyRJjy`_y^VlzWL Vtd0yVROyd0zV<dYzZ#hz^2|lY!z^Pyoi{^xox^[lX{^ox] ~fi|^u lW|^0~&x^~Gx^ylV}^p~x^ox]%%1lEg0}Zs}xhW0~V:dw0~Rw`JU~^plʺVD^ u~]^oO"]%lO"Rkɀ reQ'Pn6s%V'@Z h_@Sz| cE_Z@R|ψ `_"'@Z_yy kG^5AVy d&_VCAVhd_AXR&| X%1@"[p R2323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232324242424242424242424 24 24 24 24 24242424242424242424242424242424242424 24!24"24#24$24%24&24'24(24)24*24+24,24-24.24/24024124224324424524624724824924:24;24<24=24>24?24@24A24B24C24D24E24F24G24H24I24J24K24L24M24N24O24P24Q24R24S24T24U24V24W24X24Y24Z24[24\24]24^24_24`24a24b24c24d24e24f24g24h24i24j24k24l24m24n24o24p24q24r24s24t24u24v24w24x24y24z24{24|24}24~2424242424242424242424242424242424242423A$}Ud骈OUo{|~Rv d#shjp Y Nڪwq k M B [ `.Q B Ô |,KiFJ`x''7O B H |,b ,S A %i|,` W^'] B +u|, hNCB Ȣ , DRme,0F`yu, JxW,B r |,$߭CpB ŀ |,W JxNB c , r Y"bq ,1F |,mY,B ~,tp8Oŝ"eR |,-ŝF q ,8IYFp , !F |,`8*;BoB  |,a 2B q ,1 Bet |,N hN%-iF; , " B \ ,TCI B Xq ,P8; !A %yh},%!# "B ,\Y? #B # |,&ϑ $B 9!q ,C %NY䳀 |,ep &F ,2n 'B ͚ |,,Ǒ (B x3q , )B ڀ |,&X{&s*A ;%p-P \ +B g|,Cd,B /q ,J%!-B B€ |,d,.B ,1e/B f |,-eŹ!0B q ,\Y/51A ҍ|,-7C2B j,%!3A -%a|,-,4A %x,J0e5B ky!, ')|o,6B z |, `Jj#"M_` 7A )%9|,C""LAc"8B Wu,dP 9B M̀ ,L` " "r |,k!' "r |,,˪1"rq ,j1d"r ,t8"rSo ,j',"r؀ 1" "qy%,1d"ru, |,"p"r |,!"q%]|, %rKu,Jx!N%r̀ 1%r7 |,5l%q5%|,5l%rBu,0l%r< |,N%rÀ ,/ %q%|,`8ʴp%rlu,- %rR |,p,"q%-*,0 $rDل,2D"rq , &U&"rE |,eC 5 "r ,"`%u%@%"q%m5- U "ru-&U>*rr , &q &"r ,2"rݻ ,'q:!"q7%QMl,*ri$uJ`(*q%YRd#+rڑ$Nl+q%Yd+rZu h+rKl+rzm*r]Py|*rl~l+rvel+rZl+rtyl+qE%=l+r` l+rl+r,yl+rWl+rl+qJ%qgl+rdu l+r|*rU|*r,h|*q؅ |*r u l+rxum)rfh*qN$6td*rdn `*rol*q$l*rE} l*rI|)r)\|)rl1r|)r} l*r`l*r3l*r?Sul*rl*q$l*r l1rl*rY} |)qυn|)rn |)q$Jl*r} l*rX"l*r<[m0rl*r\]} l*r|)r|l*q$l|)qvɍl*rrul*r[Ol1rl*r|} l*rl*rl*qv l*rz} l*q$B l*r!, |0r l*r} l*rH}l*rl*ru l*qЅ |)q$fp l+r#& `0r l)ru h)rd)rl)rDq l)r~|(rD|(rz|/r|(ru l)ri߀|(q$l*q$p`*rlykt)rx)rX|0rl*r5/} l*rR|)rYĄl*q$&l*q-$|)rgul*qh$Σl1rl*r ul*qM$ul*q$ l*rl9u|)rl*q.%I|)q$|0rl*q$꒍l*qw$l*r#"l+ry`+rd+rh+r)l2r|*q !l+r #ql+rl+r#Bl,ry p*r=`+r`2r`+ru l+rzl+r@l+q<l+r?u l+rɈl+r7ֈ|1r|*ru l+q$Rl+rS |*ro?yl+r'}rl,ry `+rW`2r`*q%l*q$V5d+rue*ryd+rh+rl+q̐m1rl+rql+rl+q͔ |*rBu l+rb|*r|*r5l2r |*qx l+r=e$A l*r.Th*q$ ō!d*r} !`*rhl*r}}/r"l*qo$ȍ"l+q/%1)"p)rv#ڋ"p+q#h,rǗ##`+r8y#`,r2 h2r$d,ry$d,r8$q| "r$s$-p4242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242425252525252525252525 25 25 25 25 25252525252525252525252525252525252525 25!25"25#25$25%25&25'25(25)25*25+25,25-25.25/25025125225325425525625725825925:25;25<25=25>25?25@25A25B25C25D25E25F25G25H25I25J25K25L25M25N25O25P25Q25R25S25T25U25V25W25X25Y25Z25[25\25]25^25_25`25a25b25c25d25e25f25g25h25i25j25k25l25m25n25o25p25q25r25s25t25u25v25w25x25y25z25{25|25}25~252525252525252525252525252525252525252525252525252524#~U&d bIHA'h"q$nt&d4"l(p O'"rUh J'0"qD$'c !I'"ru'|,l+q(>l+q%]Z>l+q~%v>l+q.$?l+qz%e?l+r}5?l+rȈl2r@|*q$@|*r!q@|*q |*q^Al+r5NuAl*rh*qAd*rp} B`*r'ׄl*r峄l*r|l*ruC|)r|)q%YCl*r- |)q%Dl*qDl*q%uDl*r}Dl*r|uEl*qP3El*qzEl*rBl*rMuF|)rJ܄|)r>|)ryl*rzuGl*rݚl*r l*rFl*rHIuHl*qf H|)r[ l*r|)q%cIl*r4} Il*r|Ll*rql*qh%1Jl*q#zJl*qJ%Jl*q%fJl*r,u Kl*r5l*qōK|)q?%Kl*ruLl*rl*r*l*qЍLl*q$%َM|)rk $Ml+rn$%M`)r@l)rqNh)r3Ȁd)r l)rl)rg qO|(r|(rA|(rm|(rqPl)r]|(roqePl*r`*ruQt)r:x)r|)rl*r!;uRl*r|)qRl*qq%&Rl*q%uS|)r}Sl*rAl*qSl*q%Tl*qTl*qZTl*ru T|)qv%Ul*q%U|)q%U|)qUl*ru Vl*rl*rtyVl+r `+qWd+q2 Wh+q^$ƻWl+r}W|*r4yXl+rJшl+q&Xl+rS$AXl,ruYp*rkψ`+q&Y`+r[ `+ryZl+rوl+r l+rl+rRy[l+rjl+qge[|*r |*ry\l+q$z\l+ru |*r笈l+r{}r]l,ry ]`+r>,`+ry]`*q%U^l*r@Dy^d+rd+rͿd+rҧy_h+q%_l+q%9_m*r3l+ry`l+rl+q%-`|*rݴ l+qS$ɍa|*ru a|*q'al+rUU |*rXybl+rD}xbl*rh*q%bd*r;+} c`*rgЄl*r|)r:4l*r{q4dl+rq dp)rӣ$ًdp+rch,s@e`+ry e`,r, h+r& d,r}fd,rZ#r$| "r%rfe-p52525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252526262626262626262626 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@26A26B26C26D26E26F26G26H26I26J26K26L26M26N26O26P26Q26R26S26T26U26V26W26X26Y26Z26[26\26]26^26_26`26a26b26c26d26e26f26g26h26i26j26k26l26m26n26o26p26q26r26s26t26u26v26w26x26y26z26{26|26}26~26262626262626262626262626262626262626262626262626262626262626262625%bhddmW Jc!w&`"r:$1Vhd% B} "q%bhk  "i "qe$rh`!"bo "rmy!i|,Ji5bk "r |,a ,"s 햀 |,b p8  "q%ei|, !C"r@uj, b萺"rn ,0"qcfj, ʈt1Z{"qm%E~j|,mhjp8,"q%qk|,<|9骀 ܆"r>},k,NY"q8k,J."r|,lYHNh"q6l~,8"r7ul|,8"q%gl,#aY"qZl, !"r.y!m|,`8qR("qm|,a 2Rh,MY/ "q%шm|,N["(N]%,i"rAun,X{P Qe I!%n,TCP Yխ "r:_,J{Džʗ "q!|,'T]e "r"uo, "r |,'T"+q-%Qo, ` "qJv'o|,dpC#+rׯy!p,}+qp|,k!+rg,P+q?%шp|,'s\'&Ј"q%Yyq,P \ "r3y!q|,CP Up)"q0q,ʈ%"qL!q|,d,"r)y!r,F.d"qr|,"!"q&r,L04"q"!r|,C"%C"ry]},s,E%!"qѐ |,p,"qLNs,"/d"q%s,@C%#"q%-t|,K˪Ԅp~g`8%q3%t|,C` *qB%}t,u"ryNt,\e9 "rq u|,x!jsY "rw |,(Jj1"rˀ ,P/d"q%au,@l,8"r5uv,\Y"ql% v1`Y "rh̄,j.d"qzv,Y`"rwuw|,!"q%w|, %rؐ,ʀeNH"qb&w1g%rlJux|,5l%r˶ |,5l%rj ,] %qW|,N%q%Ay,0 %q"y|,q8 xNp%r},y,-l%q%y|,p,"r/uz,0 Dp"q%(z,2D"r,"""+r- |,dCT +r,lq {, @l+qE%{, +rdD,ǯu*r( ,4nJF*rxq |,/"q%I|-/"q%u|l,*q%!|`(*q%m_}d#+rF$K}l+q%Y}d+rw h+rey~l+qby~l+r |*q%Q~l+rNu l+r@l+q%Sl+q<%=l+q%=l+ql+qNl+q7nl+rwq/l+rl+rLjl+rA|*ry|*qq%|*q%Ŕ|*rSl+rq'$Tl*q'%h*rˉ d*rk `*q%Xl*r} l*rtl*r㄄|)rqu|)rl*q2 tWP0)#lP lhAFhAFhAkiAkhAo-E_TF.t&_>v!d Pl_Ԁ:'aT /J`6bT Lm`T,l7F`^̠ul*HnL ^ÄlBa^)lzDoa^ᦄ|G>a^w u|r@pL ^k=|:b^l(x`ɺp0i^ Ll)t0iZ^Ehix0iVb4qdini^(wlɺ~j^ʀl j^o`| 0j^ݮq|rj^+|Il0k^n|I0k^l)|0k^Qq|zk]^%lfW0lRU2qe`t0lVt?0lZr~ux%x0l^2΄|/0m^ulezm^kl&0m^,u||0m^Ple0n^Xl%0n^uM|0n]فlEp0n]a%YlJYo^zyulo^l)ZL ^ulo] Zl[p]eږ|Fp^*li\L ^v.u|'p^|)Ҍ]q]^l7q^@ lˆ^L ^`ulGq^ylrRɈ`?rV!drZӛyhUr^No#}s^lY]|s^wleVjs^wyl"s^ЈlYpt_#9l~tR߈ rExR/ycxa`uR"acx^^}oex^yl&je@^FoFoiv^tofgx^Ql&wXv^{3yoFx]ƁQ~iw]~C~x^ǀl[w^>dyl"9w]<fUx^9 l_Yx^}rlRkxRy `"xQnC`bgyRlyʟ`_y^>)lzWL V}ud0yVd0zVdYzZޏhz^ylY!z]oi{^$ ox]ylX{^u ox^~fi|\&qlW|^ ~&x^vy~Gx^VlV}^,~x^%ox^yurlEg0}Z'ehW0~Vdw0~Q%m,`JU~^} lʺVD^t؄~]^oO"^q4lO"Rq reQ'P6s%V'@Z7Fh_@S=| cE_Z@Rqy `_"'@Zy kG^5AV d&_VCAVԌd_AXJ&f| X+ @%#7 bR262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626((@\8 ;&Ll:x~RECq ldp |D4Csi|RMG `is  F h!ͫCh!k u B > |,/ R^q ,hdi2-u B >& ,8 RX 1h}uF) 1hʾYRtiq , ;)uJ!Y@ ,8VFr |,{ 4q StRhK |,/@RÏq ,,ݍ,UC ,8 FCE |,Vdp^Y㵍YNU$ |,.ҔRcq |,DDd^{Rg ,8$R$o,'"|F%.`("0FԀ<} d# Gdh 0GT֏~HB")G^|g G^iuo'"UBH^66lG0H^|b|H^|H]K%#|I]%M@~ǟ"mHI^culHzI]%KlgI^P]} o'w"UOJ] %NoG"=IJ^ь |ȢxJ^wS|g"J^u|W.K^Ɛ|_00K]t%=lH&vK^Z ogG"JK^F u|".tL]% ~"5L^ j$lQ'LR"`]LU%i:gUMVyq dYMZ!h']'MY%1$h?Q5MZu h?o]oN^A<};o]HNZ2 hg_yNZ=ƈh_UNZsyh_"%OZh_WUO^u!~Gg]pOZ hg,0OY%}*hLJ~PZ*u h0PYn!h"-QP^*u!l2|LZ}x{QZih]QZ$Y#iV * %Z#"&X#262626262626262626262626262626262626262626262627272727272727272727 27 27 27 27 27272727272727272727272727272727272727 27!27"27#27$27%27&27'27(27)27*27+26$l=E馋 aG 0}|#Y#3%lcp ʈRH<'O" $"Z#ROdhr J ]t"Z#q `m @* "Z#Ѿ |,.t"Z#< ,t"r"Z#5 ,8:,"Z#q 1#""Z#[ 1#"|,"Z#* , ʈ-=/Y"Z#] ,83t"Z#q |,{lY$B"Z# |,/t"Z# ,J,"Z# ,8sbt"Z#q |, j.tp]Y Y"Z#! |,.Rt"Z# ,͆~"Z#nJ ,8t"Z#n$yl,*Z#7`(*Z#!d#*Z#(h*Y#|)Z#} |)Z#tl*Z#l*Z#Ju|)Y#A%"|)Y#%#|)Z#[|)Z#bul*Z#W-l*Z#քl*Y# %ml*Z#} |)Z#|)Z#?E|)Y# |)Z#} l*Z#l*Y#݅G|)Y#*%q)|)Z#&$el+Z#`+Y#%^d*Z# d+Z#yh+Y#%IDh+Z#4 h+Z#uBl*Z#\q h+Z#$ h+Z#j_h+Z#h+Z#5u!|)Z#-q h+Z#^h+Y#%1$h+Z# `u h+Z# u!l*Z#l3 x*Z#)h+Z#š$Y#h#Z#}%Y#+F7.27/27027127227327427527627727827927:27;27<27=27>27?27@27A27B27C27D27E27F27G27H27I27J27K27L27M27N27O27P27Q27R27S27T27U27V27W27X27Y27Z27[27\27]27^27_27`27a27b27c27d27e27f27g27h27i27j27k27l27m27n27o27p27q27-$l=$LE >ޒ$"F q lcp L]m&"Z#̀ dhs k"Z# am&Fh!F"Z#NQ |,/$N|,"Z#Ƣq ,hd"Y#% ,8[t"Z#u,6Ɣ"Z#e~ , t"Z#q , BjI("Z#: ,8l|t"Y#%F|,&Fp"Z#=|,/.t"Z#q ,,ޔ"Y#I%!,8t"Z#|,&Fdp]Y"Z#ـ |,/rt"Z#Sq |,&Fd]h"Z# ,8t"Z#$yl,*Z#`(*Z#Uud#*Y#%#h*Z#^ |)Y#>%Qu|)Z#l} l*Z#ll*Z#.߄|)Y#u%_|)Y#%G|)Y#%c|)Z#}l*Z#ul*Z#^ul*Z# l*Y#y%|)Z#8 |)Z# u|)Z#C|)Z#z<l*Z# l*Z#Hu|)Z#|)Z#0$el+Z#@n`+Z#}d*Y#%vd+Z#}h+Y#-%1$h+Z#> u h+Z#!u!l*Z# h+Z#ۈh+Z#yh+Z#*h+Y#%t|)Z# D h+Z#1yh+Z#5fh+Y#%Qsh+Z#V}Bl*Z#X}x*Z#Lh+Z#9$Y#h#Z#I%Y#+F7t27u27v27w27x27y27z27{27|27}27~27272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727s a$l=$OE %g*Z# 3 lcr 5Z# dhr J *Z#q `m'Fh!/Z#l |,&F 2*Z#Mɀ ,8-Z# ,8q*Z#Yq ,&",Z#$A , *Y#N,5Z#„,8,Z# q |,&F4Z#~2 |,.,)Y#%-l,J,+Z#,8u*Z#q }, %F{+Z#,Ā |,/*Y#S,̆+Y#N,8*Z#$yl,*Z#,`(*Z# d#*Z#ӟh*Z#au|)Y# |)Z#s l*Z#l*Z#Mu|)Z#ӄ|)Y#+%|)Z# |)Z#ثul*Y#L%nl*Y#%Ail*Y#%5l*Y#%|)Y#% |)Z#}&|)Y#:|)Y#E% l*Y#%El*Y#D%G|)Y#{|)Y#%l+Z#Lk$`+Z#u4d*Z#] d+Y#%m@h+Z#2u h+Y#!%]Ch+Y#%'l*Y#%]h+Z#yh+Y#%9Ih+Y#q%q%h+Z#9}B|)Z#*yh+Z#ZUh+Z#h+Y#gdh+Y#% l*Z#֌}x*Y#%h+Z#)$Y#i"j%Y#,F2727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727%5l=OY&g\L,j%a@lcp "h][,jD$dhq + +j. `m(h!N+j |,.,jq ,=wI,j ,8+jܓ 1KA,j 1KA,jq ,"h,7 ,j< ,8+j.%&|,{M,j!%!|,/+j-.q ,+,+j_ ,8+j!|,|x\Y+j|,.,jq ,Y/\+j+%H,8+j&Bl,*Z#$`(*Z#Rud#*Z#V;h*Z#D|)Z#N|)Z#֢ul*Y#%Yl*Z#5، |)Y#n%C|)Z#1} |)Y#%%|)Z#> l*Y#x%]Jl*Z#} l*Y#%Il*Y#%I|)Y#A%|)Y#%K|)Z#u |)Y#B{l*Z#1T l*Z#pu|)Y#w%J|)Y#{%}l+Z#$=`+Z#nud*Z#q d+Z#^h+Z#h+Y#%gh+Y#%*l*Y#h+Z#yh+Z#yh+Z#h+Y#%!2|)Z# h+Z#yh+Z#rmh+Z#h+Y#l*Z#Cq x*Z#.h+Z#h$Y#h#X#aE,@#F R 28282828282828282828 28 28 28 28 28282828282828282828282828282828282828 28!28"28#28$28%28&28'28(28)28*28+28,28-28.28/28028128228328428528628728828928:28;28<28=28>28?28@28A28B28C28D28E28F28G28H28I28J28K28L28M28N28O28P28Q28R28S28T28U28V28W28X28Y28Z28[28\28]28^28_28`28a28b28c28d28e28f28g28h28i28j28k28l28m28n28o28p28q28r28s28t28u28v28w28x28y28z28{28|28}28~2828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282828282827U$ l=̆J6"O m#l ˠ j " e d 8 -8 R L$^J`- Jނ|u|,qוjrJU7%  R ,,0! R D |,NS{vp8˕C J!}q |, Ћץ{"CR + |,iN!YT$t|, 4fۛLRT$6R o$,|, J&'*_S˒k^`R Y|,h!pYR h,,N:NJ! q8|,d8BeF |,Y R $Fx,-L *VR Xu|, TE*KC8&`VJ{q ,1̳ PVJ!O |, + ,?{?VR $P, ,TR #u|,jN rEcTR $ ,- dCeUp' |,Y\XNa N<q ,pTʠ R z |,r+Qʬa-ETA8$Fx|,!p Bea|,C"\e!FCdPq ,\Y§8fV"Be]π |,d8V#N,Gb |,{c]bV$\,$5~,*PG;>V%Bɤu ,YXխY&A8t$R@ |,N a'B~|,8 P8(R |,` )B e0q |,  TBڍjYNÝ*Nր |, b*_'{+FCI |,[&,]T |,"1ˆcI[ѝ-Fq ~,{EE*.X{$Ԏ |,K1 B!/FC%,vE%EŕC0Be ~,p 8` Qe1J! q ,1V)b[r8ӕ2A 'e |,g!e3A $a ,!LX!a 4Nq!|, H您-k5Fq |,뷔w$\6M$ |,It&7E$m ~,c֝hNm,8B H!|,fC89B Lq |, x{TTC#):B cd |,` ";B |,` !m,F+ |,: :%?F\ ,T&@B [k |,U"$QpB\AA P%}~,@X,BA %~,r $,* CA %(1\tCDB Ra},~,#8 ER q |,pc  FMYq$NŽ|,UPR%,*y晀ECGF |,{HA % !|,h!T eIA $,N$,*#DJB \y!|,d"`p8A KB t |,{$,**LB ; ~,%)$*&-*MB ^q ,$EdPx!NB a ~,CpQ mOR X |,8P tPB 0 |,` YP YQB l, (Tl'H 0TB43l" 2Ul B 0UTql(R0U^xl(Z0U^ԻljV^0qlrV^q|rV^#K~"VR} pWRR/ `H" }WVwud2 0WY$kG"WZXyhHzXZpx(:0XVqg2PRBpB 0X^dlR 0Y^lh0Y]%|hz0Y^y8l",UYRb`ZVpdb(0ZYcB*hhrzZ]"/n-Z]&B*lZ$0[^!u3l.[Z*qxȪ00[VhԀd(6[Rf`(40\^l80\^ql<0\^1l >\^T/l B]^Fl)F]^rfqRl&H0]R&y p)">]Q$Ǝ`4s^Vd_H0^Z/uk7^YW&h.^Z7}x00_VYghPRiq`HH0_^vAoP^l"<0`^氀lD0`^ >q2 l:`R h`2>`VH@d?P0aZ҄k<:^u!\ ^lL0a^ Jq-!l)RV;<hIJX0bVq"dr^;`\: ΀|ɂbcZ29lIh0c^[q#lIjcR2ClIl:_" Ind]$樎#o dRGy $`ɪ^dR%uK$`IbledVK7djeY$$zF_9eYR%xIV:}%hp0eV#dizh0fQ%%rP^ u &|i`0fY2%-&l X0f^DŽ l bR:%%&o&7?gRqq?'`:cdJx0gY$'zih]2$q'o&3h^lu(lZt0hV3Ϸq-(l~hZրxꀠ:j% (d*iRf`u )`*":)l20i]L%} )l:0jV2Vl Jj^q*l Rj^1l*Rj^y>*o%%kR6 p*bkRy +`_kU$J+d_0kZ6 kŧ5lZ@"y+hZ~lZq,x:[gjPR-?`J":Ono2P^q-lb:4 oZ;^uoq2-o96nR2ۄ`rnV9u.d?B0nRLHkR7n^~qo^Ql:0o]{$/ofw7o]&/l钂o^ju/l"n:HWo *8p^Yu0l\ l$0l? d0p]$v0og_UHq]3U$}0o"Uq] %1lj.q^u 1lIZi:)o)r]%1l?z*:F} 2l6:$~2l 2r]3$}2l_s]w>O2l8rs]33o?s]3^$3ls]$~3oft]6 l? : }34lB~t^"OoHJt]4l~x: l?*zu]3$5lvu^Pz} 5lvbl:Qmo&5Zv^3|ڄl Nlv]6oe]gv]$n6|h:6rL ^30u6o!,w^#Nx6nX:V87`?9 wZy 7i "w^V6l?QBxQ$ǎ7`rcxR5q}8l?JmX:q8l*Y!x^o;y]$ꭎ8oYVy^&q 9l]VyZ5 hgg"wyY%9kUzV d?rzYP:kobzVud:ti*:qzRrcE{R`{{^7$~eP 6aG@;#TuR 28282828282828282828282828282828282829292929292929292929 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@29A29B29C29D29E29F29G29H29I29J29K29L29M29N29O29P29Q29R29S29T29U29V29W29X29Y29Z29[29\29]29^29_29`29a29b29c29d29e29f29g29h29i29j29k29l29m29n29o29p29q29r29s29t29u29v29w29x29y29z29{29|29}29~2929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292:2:2:2:2:2:2:2:2:2: 2: 2: 2: 2: 2:2:2:2:2:2:2:2:2:2:2: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:i28$Q<##JFN6#Dž 1q =# „'Q/ɮc #ƅ %]W=#*`䗁 a #ƅ %m=#t](d&jK;A?:wJ R B!|,`HX! S"Dž )q >|,EHu\9lWh@  R , \ H"C%il, R $2>|,8]uH,,N,y},P抄uLn"Dž d,q ?|, _(=G_|,*9ȸn#Dž 1L }, eTCR ѐ |, ;M5bM^7knN,= |,pbh.eB Gvq @|,MhO.R ^u |,aCA z.4R L |,ǔg|Bh\,J!# |,l,XCA NA,8 luM n#Dž UHuA|,CTa Fȳ ~,Xhh{R 6 },`-D\YUT` R %wB},Nh!R uB~,Ya B4 },\ X/A8%oB|,l Nm,Fp,:uC~, Y%. N,pq ~, r l,!R k |,{!P{"EC,",M]#FBuD,_#bĈ!:M~n#ƅ 6D|,x!Dp!e%Fp,vCC&NYMo ,@\S 'B ?q E,\ pCi!(A $fŎE,Hd)A 9SE,h8!*A !|,(/+R },F|, Ht.,F |, (!O}}N-A |,ip p.B sՄ},!1"(m/MG~,t)*A-&0I/%=G,)1Uy!G},"(tX!a2F |,CHJ m,3E{%H|,YOH= M4FCuH|, k.Dhf]%4n5B |,&~`hpe) _n6B z ~,P$OpeP8m,7B Mq I|,فiBH zn8FC |, ,KU"H m(˒n9ET:I~,F%=qTn:A W%%#I~,$t\+I!;B +y!J~,߅C/%@%"0epJj1 ,5LfC%.?M%1K~,x{I;ӌAu{@J!fcuK|,ig.AJ! ,`k.BFp_ |,&xwGG.CJ!'q L|,Xk@.U DJ! |,[!gY.EFqY ,gu`{FA dAL,#&-! GB >uM,k!ᦵ-Y HM,Z%*M~,vC$+IF,˺#^'D|,JA %]'M,gfp)KA ~!N,gp-LM,*$N,#j%`MA %!N~, 8$x!#%#)NJ!.q8N|,'$"41"$$1OA "%ɟO|,'-*%y)#/#ƅ $~ڎO~, yx!#2",QN,y!O|,#X!" RJ!/ |,p #$5"4SB Oq P,%#&#b TB ׀ ~,_Yz# UB . ,(h1!VA P%+P|,%L( WA Y%y)Q|,s8/5XB ay!Q~,$` ]YeYA c%U Q,$+hp$ 6ZB |,'*[A r%0R|,%HB-\B juR},%0-Q]A >%R|,Nh/^A %R|,'41" ;_F*y!S|, L0`"h.$Ɇn`F}( ~,@$2$6"ejaB OĀ |,%71h%&?bB C |,{h\Y],&=cB Qq T|, O#t|wM,dB Dž ~,$*=%ņ<>deB w ,jH`X!'aAfJNڗ |,pECgFp6q U|,&$#q "hA hB H |,{Hw!%BiB |, (pjA y%ɟU~,$T g"$F2MkB `uV|,z!lA eV|,(ʡq8mA %V,#%|A%ECnB ݺ!~,U$% А$AoA g%BW},&!#&pB uW,#`Am<_~G\zNqA %W,t#@{F!rA w%ɟW~, SZșsA %%X,S;#8tA ?%*X~,"// uA G%X,8#! |,NvA l%!X,#!uuCICwA %9KY, o,6}YYxA sYY},%!Zp$yB qeY~, k%!>i{YzB - ,S#!q•{B Pq Z|,'m5%h |A U%Z|,'6&}A Q%yZ, #'#oy8~B J!|,&8$8!R (()#l֮RI볦< >$^ hAhA+hAjAhAǐ@[!t!R Z((@[a`  „'mp 5ɮc R :.[P (`¿B`H 0`Br\!` 2a¿l B 0aT¿ew|Ba^lHZ0a]ҁ]lhRb^S1u ]lz 0b^lr"b^h lH(0b^Wq^lh*c_TiD^l_00cR̄`.tcVIpd80cZfu_hH6rd^%l_@0d^l >pL ^|lFH0d^Bu`lJe^ oo]e^l*Fe^y|Ne^ua|?2P0f^#|f80f^Z |BL0f^|T0f^`ublJVg^l00g^clZRg^llbZg^$uclIRXjh^TlƏ`0h^h6lzbh^lZh^wudl^i^qdlIfiZ.3hIh0iVE/dIjiRqe`Il0j^]lbj^)TRnj^(|Rp0j^#bq2f|Gh0kRy f`bkRx`VkRf`(t0kR`qg`)jelRG`h0lV d&gp0lZۏygx)VlZ6qhhɪ2mV'd fmRc)P^߀liT0m^sl2\xR&&`:0xV-qtdB<0yUtdJJFyV d)0yQ|%t`%0yR$y u`*2FzQ%upIj0zR?G `Z^zRt!`bz^}qv|B0{^l0{^FlB{]V%'vl:{^u wlZ|^lԀl:0|^UlRZ|^*udwlX Q|%!x`j2@0}R9.y x`G0}VMd_r}Y%]$xh 0}Z'h} yx*X~^al 0~]ylz0~^ʌ l'~^uzlʒW^zlş0^ׄlj^l_ꢘ0\]6{lʪV@R#ƈ`o0@V=)dꚚD ZֈhW\D ^[y|lʪ\iA^oF""*A^al:TkT ^lw@^Uy}l?蒰0B^0l(H^P5lҲSB^Ĉl%Gd ^#y~l$0C^=%lwH^{l_钶C^DllD ^hyl*RD]΍Pl/U D^Є l_d0D]l'W@^u lʺQE^~lE:H^pl:qT \Qlʺ@ ZHuh0FVzzd°FRF` ıL ^a~+]~F^%u|*ƱG^ ljȲ0G^q4oda'GR ckQGREq `hjOHVWd Q;HZdheU!HYHhk"0HZ؄o˺]3Y^'|Y^uhlWQ ZRq `ZR& `ħHV_dbYZZjyh"[ZGh+A[^hl/d ^&lض0[]K5l0\^W u l*Qj\^bl"\^.l*@\^pylU ]^ˆl? ]^݈l$"!]^lB"U&]^Wyl̳0^^a"lQMP^^ld ^}_" ^]2kn$}P_^u lBB_\V&;iT NG@"VuR 2: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:k$uy#C` #JFN6R #b)XQ/%(zR qр #4t  `  R X_q #|^jK;A?:w~ R er , h!S%| R x |,Ju\9lWh R  ,"C%il, F%q |,H73Y| ,,R y ,  uLnR  |,1*_|,*9ȸnN,஀ ~,؀eTCR bvq |, ^&:5bM^7knB R |,Μj.eB8G |,=qʨO.Fr |,d z.4R 2q |,ʨ\,F! |,g l,XCA~,s8l$uM nNYf~,r T` R $q |,`Y!i{B k ,T\YUT` R 7 |,a8-i!JN |, ` R q ,"(X/NY ,P8 Nm,B84 |,'. B8( ~,x~m,!B3q , P{"B . ,-M]#B |׀ |,epEĈ!:M~n$Bր |,Y!e%FJq , vCC&F̀ ,pes8S 'JNŀ ,p pCi!(J! ,p )A k,@8!*B ru,_ i!+J ,Q A t.,B ,P  !O}}N-FC7zq ,p ip p.N,#8 ,!1"(m/B < ,  )*A-&0B c ,U)1Tʅ,tX!a2FHu, J m,3F |,1*= M4F |, uhLo^Jf]%4n5B Pq |, fj?jpe) _n6B b ~,$peP8m,7FC? |,[- zI!8Fڀ |, (|2J m(˒n9A !~,c%=qTn:B "u~,I$t\+I!;A ~, C/%@%"0epA B~, hvC%.?A %~,x{I;ӌAu{@B {!|,`8;j.A]q |,#T ʈ.BF" |,`8G.CB ] |,A8*.U DA s%M|,vY.EB Ku~,wu`{F" |,h*-! GFȃ ~,{!-Y HB { |,`$+I]Yq ~,$^'D|,JE%+|,`;j)KB |,dʈ-LB  |,&j%`MJNjq ~,$y! N8|,'"41"$$1OJ!\|,` "-*%y)#/PA 8%*|,'p"T",QA H%(|,d"!P " RB ty!,"Q +SA %|,&#&#b#TFC玄|,Yz# UFq ,X!"#1$VF݀ ," WFpe |,dC"+/5XB j |,',P ]YeYN,}q ,"$# p$ 6Z"U ,P "*[F> ,TC"B-\B -߀ ,%0-Q]B q ,T /^B  |,C/)=_JN΀ |,6B?.$Ɇn`F䝀 |,&2$6"ejaB 8q ,XN"%%&?bB F |,h{Ae\YQ&=cB . |, O#t|wdFp鈀 |,&*=%ņ<>deFLq ,X{PX!'aAfB  |,&7#2(gI!!|,#` ?jq "hhF|,lUCt(iB &nq ,\X՜pjI{%i|,#L*g"$F2MkR %|,h!"=8z&-lB !, ʡq8mB dq |,#|ANnB U |,&%А$oB ޷ |,&{)#&pB dA |,#ʨm<_~G\zNqB puq |,&&{F!rA uշ|,#kHJșsB Ȅ|,&!8tB 7 |,`"TM/ uA ^%J|,&! |,NvM%2|,l*uuCICwNWy!,&!6}YYxI!%#|,h{"%Zp$y"bu|,'!>i{YzF}H |,h"(q•{B8 |,%h |J!"N |, '}J!Ѡq |,`ʈoy8~JNy| |,$:EW%UM,X{3=N%51|,&3>=L$ᢻl,)>m'(>րm"(> l)>q|(>Ol)=m(>* m(=υ%l)>@\u l)>рl)>$l*>Vu`*>nd*=0%%h*>ϝnj m)>ul*=%1ſl*>T\ l*>`il*>ul*>:Є|)>ϲl|)= %|)>H} |)>S|)>#vl*>Bl*>ul*>/Vl*>l*>Fl*>zul*>ωl*>@l*>ql)=υ%h)=\%e(>Eya(>l)>[;ql)>|(>:r2š"~y(>Ϣ `)>ϑq`)> `)>q`*>χq`*>ϋ:ud*=ϘEx(>Ϻ}h)>ϫVd)>Sq`)>]l)>%m(=U?l)>Ϟu l)>[l)>>l)>t l)>ϟq|(>(؀|(>jl)> >}]l*>ϱy `)>1Fy `*>ϯd*>&jh*=3Rh)>5}x(>Ad)>_`)>πql)=+%l)=+d|(>ϋl)>=l)=%l)>ڄ |(>q|(> l)=a%l*> `)=%`*>ϲqqd*>Ԅh*>ϼyh)=PXx(=d%1 d)>p@y`)>ϼ+l)>aql)>ϼـl)>Ϗql)>ϊl)>Zy>l*>e`*=%)d)=8d)>,yd)=e%`*=g%q`)>=p(=w%`)>mu a(>dg|(==%l)>ϯu l)=Ol)=%*l)>$ƈl)=P%]l)=3jl*>?}`)>_qq`*>φud*=A%]$h*>d x)>ϽWl*>~ul*=ϑ%%#l*>φ) l*>+l*>SYul*>Ul*> $ul+>ϕˈ`+>ϋ$yd+>'h+>?l+>l+>_uyl+=%Ul+=Ϙ%l+>:=l+>8yl+=F%l+>p҄ l+>l+>ϴyl+>ϑm*=%l+>x l+=(%l+=σl+>`ql+=D%%l+>u l+> u$l*>ϗh*>Tpd*=h%`*>Ͽ} |)>ZB|)>τl*>ύq4l+>|q `*>Ϸ `+>݀d+>sxyh+>Jyh*>CWh*>Ӳd*>u`*>Ϝ}(>v|)>&l*=K|l*=%l*>ul*>yl*=/%l*>)} l*>ϙq|)>πya|*=%p)>gy`*>`*>0{q`+>y`+>d+=%x)>Jq!h*>G\ud*> `*=ϗl*>m l*=I%|)>} l*=ϯ%l*=J l*>bul*>kqNl+>ϙ `*=n%a*=Ϡ%d+>yx*>Kdyx)>#h*=Ͼd*>q} p)>ϸ҄|)=Ͽ|)>%} l*>q4l+>!`+>υd+=_%h+>m(u l+>ϐ׈l+>R}.l*>ehuh*>yd+>ϯId+>"d*=ϙ%=d*=ce)>Ϯq`+=`*>϶!y (>*p)>ρp)=Ӂ4l*><} l*>N|)>Ϯ|)>Cl*>[ul*>Ϝф|)>Ϣ9qNl+>(ƀ `*>q `+=%yd+> i*=ϴ%E&h+>ϛu l+>oƈl+>/l+><l+=6%-,l+=%l+>:ql+>!7l+=^l+>Ϭu l+>Al+>>l+>kyl+>v|*=υkl+>Z^ l+>*$=Ϛh#<X @He"UD?6~ @kaP(D,(gP@T ̏  1* ꀠ ( `(L-(P Qf D)p P@OC{EEJ e 0P(H 9`b0@hhX0P AD=GD[)Gu:%j5$оCv%:,/W.TE @Dkr"|BO_p D! \#@?O6@EH RxpDHpxLD@\ APՏ,@kh C3S0J#S4$"D '% D     tU:Hd= +H :`L;XJ6}k`T|(L@z5 !t`0 ʮl#Ā7e# 8Y{P:BtB333|/?x?|yHHPp-"p%"SSR@ `  @c'D `  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 `jj,Standard(((`a@Mҕ @D@L`P| ``L1H` R6FFj"!~@&z j"I (E ":!PRtr N0@x @$  ,B(rHX)L "`ʮRmI_~S- @| T*p$PBm$ @K(5 ISO-25rlB#`$ (dL``(ODX8L"xp P 10Q5$ !" /#/) $7 $ Z PK<P  RHh#8H`j`hA A "s"   Cd o0H p@.H D P 0kpCИL@P0]\E.PD   @`"( ` @ $G 6k8` h"QRHH * ԁ( X| y#JMMFffd!X :fff`rANYH2BpH\,8Hh   @4#%#T##0M|HX\@X8TX`H@0HPC0@PPPS pUKMM@L Ps@Rl@MP@P00MMEpDT  M0`'TapP M\MA$\Du00MyM0MPMzlSRzhkl\Xl P@L\tx U#6cA  R+4ޟ]s2hsBpMMUUH[p"L$( (H(6hPdb`\``OGrnR #h#@\ U`>B@{d( T5HMSTT6 @ -ST *5MRT,L# UCPZZ~cq$ &'`$} B}Se 0@ 0`P@  $.`P 0#H/#. @P$@d"P33?@@\b?D A@` @PP#X@P$0 (  22+49HC39062]pA{̏?e1 @d<5!p 0< 0941-D.P{̏V.~ !  %H $ 2!943"%27EpC{̏?hU2 &"u24(  09( ! <7679!4073}D\1?i7"G"qb(G(L%FMD /}  ?B82  "q _k} C~* Ĉ8+ Ȉ} ̈(G} ܈'6,qi !q Wdq pq 7q KZvq Ȉsq ^ 񟨩}K O ؈WJq- Ĉ&AQPWWTtd)* '" )"E ^a$3pIWx&2:#,1bt, $ $#owL  iG\pnrl`ppjj",MnlT! "R T4$[&؈ĈȈ̈Ј, d 1"1DK9$#2#\& :@::2)14260 *\N!l  s $ͽ&H%"~@ 'TQ ` "m@2>@v"03*Ъ+xS$g#GBRX$D<&4JBf$Y #Y7"=Eg Ra#!ep< g[=6x|Rd/ #ăѿˠthMRf€ # DʈS]voR\R  /fv $Y 4Mz],Xf/x!Ci`x4fc8$ z!;` OK,=fc8 xNfI&LfB8} 0#i l@ L`DRԁu0|, ,f3Ȃl@ Xc8!q y! 0-68s8+[p /5PRnH)HЕdc83S y!C @AP\Pmdc86 xN4HAC?@Bs8I: ,p8 嶰^H.5xfc8ub q tpzB^v fp ~Yt ZBs1J^Pc8 uq8p8q]@s#c*c8tހ p8 0IϟGk4 ,[p HtWim-Ȁb8BF_p  s@D(o"qߗbU b8$5/,[*c8y!`p8 C&ƀH0dK p8/Rvj |,` 㷕Yao{|~^Rt`H#8Bt.8obx!@  D(0dQ8 tC.R86,, pO8&p $KiF ![86 t.8 tCa 2dR8Kp $x! RV((@at)#Ѝ hAKhA+hA1jAhA`=KiF OSo{|~R.((@%!t*8/ x!.4x!R7q x!lY L]mR8h xNph!BtR8 |,gȀ ,R8>q x!e` /D1 x!.B8[߀ x!oYJ4 xNc h!/tq |,a DRe-Nq x! |g\NI x!.5q x! OY+h][t!xNY/x!"`(|,e& Lb x!ˠ -L6#  x!jKC6ӞP# zՎx! NS{vjR UxN |> u,?{T$6R eq ,/" Y*q ;x!*C%i/ɮc c8  x! u\7lWhc8 %q ds8 e , T QܔR Yvx!C` 3$2x!6B;3Wy!x!3 xN^32q , 3'"!@  @ `D) ` @Zo#4 (_ 5b9Ep͘mhSTXJ@ ׫p.t0@  MMT((( (4 @#T4 D?5g $ $  `q  O+ $.:;E$L0 ^+^+\fd Q?@lCG t BP  @ Z%<\AcVar ViewType \f "%tc1">% 8 DetailIdl \PSCALE;SGal-sn V! ((((RP$PLGDE0LZDDpNX@#.ML@dM0P 7  (9>)a;;%C*  ( X(D`xD@hpD H`poj  "~!^#~nB0EED% (PD"v }T2GĊ \ꂠ (Bh.9H`(#!, ))"*!i  ` rUH0icxpl`(ԈЈ؈U82 *V-DW\[ZlYp L_ H wr ob  Ĉq hF$pX $U7Zw Ԉ} Ј} G^G} 0g  $3 )*+)(79:(978 3 >' #\ iI i jT- k hT- B T- i         -P   F$t  x   -l0  T u?L !76"H $722<- eL )#!  5L&  - 4 T 4d Zd   DL DX xB ;  PD PT   C  %"$ ' &5$3 t  ]$! &'l T @ "4# u (!# *97529/739:43  ] !@* z P n %! (#įE$i0 k0L$i0 h0/$i0 h0o$$i0 h0ï7$j0d %h0 `^$i0 `ϴ$i0 h0 ,hAhAKhA+kA+hA]c8 79:(978F3 )*+)(791' #3 >Ex  -h0 T u?L !76\C$722<- 3 )#!  5M&l& 4tC 4L -T> t. 4d Zd  7 X hB   -      "$ Z. v 5' $ _UC 'l U ##  "4d  \/ #97529/739:43  ] ^ Q P n $| (#ď $" , ,X L "  X jT- i& BT- } t g T- h H  ?  H    H T h :h08$j0d k0O$i0 h0$i0 h0$i0 h0Ϛ$i0 Ư$i0 `OC%h0 `oI$i0 h0)#l֮RI볦< ̺hAhA˳hAkA˺hA?c|,.39:433 )*+)(79:(978'8#3 >N X i hFsx   l0 (#/c $  X L Xc X jT- j T- | X T- i  h       -P T '    -#  T uH !76" $722<- md )#!  5L&  L - T 4d Zd   DL DX xB v!  R PT   C  %"$ ' %6$3 t  o""$ &'l *#4 "4# u (!#/"/ 529/739 ;h0o$j0d h0CƏwNE, d 1"1/*4:617046/)142603= **))"!'L*# P "9D 920:22 9'1521N"U0"TA3><3&2301$^  ̡hA4hAhA˵lAˡhA4v S$ ^` (#/K?&4d nY^dflxT 1 3X L 2Ta 2X  2l T ) hAhAKhA(lAhAϷ*4 V# U ]|c U ;)#l֮RI볦< ̧hAեhAhA[lA˧hAՃa] / /H <  . .H  2l T #M P@U 3 >4\`]  (,Pr3X :  3878 .L c\2 \ 7  l  30ތwX. X\\ < :P\\  <܊)< x  <Pge\\\<, >X\22 L <[d\\0 0h l&D R (<X؍>l\  $66\0 <6 6\  $<P^.p\\2\.L Y [#,M =)# hA hAKhAmAhA=?\'!6 9x6 *\:L\2\? ?' ' '( / (l.0M ]+ 8 7 Ta ] r<[0p6; 4<\h\\#(X܀ H, <\\, :l\7 <<]g%<.x ( .t ((+"T 2X' l#(.}\܅ TG\/, /o $d%5, KPe\"X\\ , .t  K42x}\܅ TG\\\/, /r l Oe\)| x:TB\\  PN 0 O0;< \}\\:TK\ .0< L Sc쁜p>TB\\  PQ  S-0+}\>2\TQl d.r ,\ Wa3:\TC\\ \j30L\}\\\. \.m|4/ )1 q ;\m\2X\\\\  |  * K2,}\\2\\ \n\o\\\\; ;\~ \\\l \n\lo\\܅2<\l T?d:- W8 ;( /\2,\".2x GL (lo5\   <>*L <:\|7x80" N $ <p:\ 3|3h B \ B&,X <<\%&< 3 \-< < v\ l <f<+ <C\%@X\\ /, )| .`Pn\.\\\\5\h BL\ Z% "<#T% M <L a`v8@h9 9>| | a`j <j ?>, l:\>L | l \2:l. t:\., < t <\2:l |:\r  | \\2:l :\2 L  , \2l 2w\   \\ \\.  o6l\.l:< :<2l\6|"52 2LT 2X L<3 i>l:| <z\X\ J <iPn\\.,.X J< " \-X\ B6)#l֮RI볦< >$^ G ̭hAhAhAImA˭hA$'Z A  B9(9x \2\22X JO ]  \5X\ h  2Pn\20\5 >, 2 \Ta X h T 2  \\w\2t\\ <́\X. \\.\ "< :<gPn\\\Wa N,T N-l \ T-\X2:l2 L J:Ta%(X -0 CT R1 <d\:l , R2)\\  L R2ṕ2x\:|2l L Zv1\ , l Zw1\:l 1, bPoTa5@X1  T :x5, 06`\2\\2l5L m\n\2\ :  :x#d<| $<( )G 4=|T=>X:2l-LT -H5 x:9L \|2` . <:2l u<f'}\ , } L\29l 9'\2 L  ,'0.\21l 1 2< m:L\2\_ \n\:l\ @>52x EL 2 2l LL 8@>o*<  EL <:l 0,L D?+qb&@v =L <:l\ 0X L D<P_0'ܺ6X \X\  S12(1}\\\..\\ _cX\o\\l\ -L | .<܌\\\\L P| P`- .<o\\l\\\\\"\ n $}\\\\\8l rl.\\\\v L | .<\\\\\\^"d#KX L =  < Ta`c\do )#l֮RI볦`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#8@[9.L=*D .. .4C" y\)((h.p> $DQ6 Z.8Z:y\1"l+7(p"%x\  6h.2&"( 2..p-&(=E#L:)-4%x\=$;,'$^ 0o kiAphiAhiA nA kiA##,*+)(79:(978 3 )*+8' #^ >- wu t!76P6$722<-3 )#!g 7O+3 7FL&Zx TD - ]/ `X529/739:43 \5   Q Q  l0 (#/x $dT   XX @ 8L Xc  X jT- h' BT- %t BT- hh h  ?  H    I T i 'X  L T "@"  T t B5A #H @)@ Y#@ o y# D"1 T 4$d Zd n  DL DX xB c  PD PT   B h0~?$i0 h0"`-"Ll*"N"\a.T,d3"$"o& ,' &"$68294063#\ #)"m ,#P`:`&2:Z1"p5P4#ω?h. g)#Pk moiAoiAoiAkoiAkoiA*7cB@ %%t2|d )#l֮RI볦< >k oiA oiAKoiAoiAoiAkoR M)#l֮RI볦< >$^ j niAmfiA+fiAniAniAYt ٬ J [B B˙J߱ JA.ӧ F7Il Jڴ sLA@ܧJ  AJOLP JJJ J J R.6 dZ.C[.7^ ##JF%'lk#% JM GA RΨS@J  R fJI  @{I BJVTP6 J;;?^ ;Z7? 7Tk11\7`?7?l^T466tT6 t465+#-I % pVtUJvl |6l T \\\|.\\ T |\\ \t22|6ee/0  -\+t.\t>T \ \\ . \\2 t||"t\\T| 2\\ T.\|TT\T\\| .H X,z;Z a( %PXb  " - $"0lT&t ttTX< $$< t\T"TtT6 >T| t0\\ |:\HtH,XT|\tt0.G X P|\\S\\\ŜT T2 t Tt t T \T>$8\T\ tT\T \\|T\\\t<TƜ|ʔ /F P at T\X\\|\ |T\T|TT\T|t|.l|T0T4 \ ]aڻ#.5,؇P\\X|  \\tt|\T\!\ptT. B9>,\ ; 5L X 0$\m0Tt\2,\TT"]/nE a8\42:L\ ; O OD8 Ddi(T'0X:h2l\ ; ᵻC gh;\v2:L\ ; L륺 H pPk(t,6$.$ bB$ bB(T bB$B;8( 7 ?$ @& E$0;" =xE|tT o|) 0q \"3$&5t"l4P- w ?8 P0 TI PTtT6 T Tt\t\T 0 T \|T T:\2||t\"|.t 8.gA ? m|.l>< |\Tt T6 T Tt\t\T 0 82dT T|T0 \2||tT T\ " I C\ %DAP"ޜDJ SGɘAAAASSCA9sBYTCB@SSSBB@ڝCCCC@l T: )#l֮RI볦< >$^ iAiAkiAiAiAUg:aĸĩ_϶V`JB' @HAu@'xFy(G @&$}7`260 A TCE*@"@PJ0 \Ho@ |X&D3P 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:2l/\\@Il]$oRevn254LpCAD ![ZT̿u|SPObjects-I.18.0o</^CP|^1I\QH|\q7\e@VbBM|^|@MDVE]ѠQ |^*M,PbQ|]WKVI U|]AY}M|Q1pqM ,QQ}M] XP]|e/A@P{Y"}YHXd7_t_ObjFreeSpace_vers=\"dTb\UndaaP.t3TemplatWegLty_lo#leID033\M7Z`'T|ܳtWHandlesT Y:\: .|X\T lClass\: MQM:{ .XXlAuxHeader;\: M\2.lLl1<3( };cA;cA K < \L L DLI LH \7 \B L@ L L`a L ML @L`L\ML/\L]L]'LLLL!`";cAh@* ߦ< >$^ G޳MB=Z} d(]H; ۮ2P`x6I2}I܏ODkk0;""ͫ$