ELF><@@8 @@@Qtd88Ptdd6d60y0Rtd$$     c cXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ` ii "`_ ui ,`` h8``C`ui ,`?>  T%%$%J%0&&&"&' &)(&l0&/8&k@&5H&=P&EX&K`&Qh&Vp&Zx&^&d&j&&q&&$&J&0&w&y&~&&"&'&)'l'/'k'5 '=('E0'K8'H@'VH'ZP'^X'd`'jh'''V(p)*P,-0/0234`67@9: < =?p@#A)PC/D50F<GDILJUK^`Mc@PQpQhQ QSЊSUST*T`TTгT U8H$PX`YhpxOo 67} (08@HPX ` h p x  ! "(#0%8&@'H(P)X*`+h,p-x./0123456789:;<=>?@AB C(D0E8F@GHHPIXJ`KhLpMxNOPQRSTUVWXYZ[\]^_`ab c(d0e8f@gHhPiXj`khlpmxnopqrstuvwxyz{|}~ (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08@ H P X ` hpx !"#$ %(&0'8(@)H*P+X,`-h.p/x0123456789:;<=>?@ABCD E(F0G8H@IHJPKXL`MhNpOxPQRSTUVWXYZ[\]^_`abcd e(f0g8h@iHjPkXl`mhnpoxpqrstuvwxyz{|}~ (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx  ( 0 8 @ HPX`hpx !"#$%&'( )(*0+8,@-H.P/X0`1h2p3x456789:;<=>?@ABCDEFGH I(J0K8L@MHNPPXQ`RhSpTxUVWXYZ[\]^_`abcdefghi j(k0l8m@nHoPpXq`rhsptxuvwxyz{|}~ (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx      (08@HPX`hpx !"#$%&'()*+, -(.0/80@1H2P3X4`5h6p7x89:;<=>?@ABCDEFGHIJKL M(N0O8P@QHRPSXT`UhVpWxXYZ[\]^_`abcdefghijkl m(n0o8p@qHrPsXt`uhvpwxxyz{|}~ (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx      (08@HPX`hpx !"#$%&'()*+, -(.0/80@1H2P3X4`5h6p7x89:;<=>?@ABCDEFGHIJKL M(N0O8P@QHRPSXT`UhVpWxXYZ[\]^_`abcdefghijkl m(n0p8q@rHsPtXu`vhwpxxyz{|}~ (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx (08@HPX`hpx      (08@HPX`hpx !"#$%&'()*+ , - . / 0( 10 28 3@ 4H 5P 6X 7` 8h 9p :x ; < = > ? @ A B C D E F G H I J K L M N O P( Q0 R8 S@ TH UP VX W` Xh Yp Zx [ \ ] ^ _ ` a b c d e f g h i j k l m n o p( q0 r8 s@ tH uP vX w` xh yp zx { | } ~                  ( 0 8 @ H P X ` h p x                      ( 0 8 @ H P X ` h p x                  (08@HPX`hpx (08@HPX`hpx     (08@HPX`hpx !"#$%&'()*+,-./01 2(30485@8H9P:X;`<h=p>x?@ABCDEFGHIJKLMNOPQRS T(U0V8W@XHYPZX[`\h]p^x_`abcdefghijklmnopqrs t(u0v8w@xHyPzX{`|h}p~x (08@HPX`hpx (08@HPX`hpxHHHtfH5%@%h%h%h%h%h%h%h%hp%h`%h P%h @%h 0%h %zh %rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h %h!%h"%h#%h$%h%%h&%h'p%h(`%h)P%h*@%h+0%h, %zh-%rh.%jh/%bh0%Zh1%Rh2%Jh3%Bh4%:h5%2h6%*h7p%"h8`%h9P%h:@% h;0%h< % h=% h>% h?% h@% hA% hB% hC% hD% hE% hF% hGp% hH`% hIP% hJ@% hK0% hL %z hM%r hN%j hO%b hP%Z hQ%R hR%J hS%B hT%: hU%2 hV%* hWp%" hX`% hYP% hZ@% h[0% h\ % h]% h^% h_% h`% ha% hb% hc% hd% he% hf% hgp% hh`% hiP% hj@% hk0% hl %z hm%r hn%j ho%b hp%Z hq%R hr%J hs%B ht%: hu%2 hv%* hwp%" hx`% hyP% hz@% h{0% h| % h}% h~% h% h% h% h% h% h% h% h% hp% h`% hP% h@% h0% h %z h%r h%j h%b h%Z h%R h%J h%B h%: h%2 h%* hp%" h`% hP% h@% h0% h % h% h% h% h% h% h% h% h% h% h% hp% h`% hP% h@% h0% h %z h%r h%j h%b h%Z h%R h%J h%B h%: h%2 h%* hp%" h`% hP% h@% h0% h % h% h% h% h% h% h% h% h% h% h% hp% h`% hP% h@% h0% h %z h%r h%j h%b h%Z h%R h%J h%B h%: h%2 h%* hp%" h`% hP% h@% h0% h %h%h%h%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h%h%h%h%h%h%h%hp%h`%h P%h @%h 0%h  %zh %rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h %h!%h"%h#%h$%h%%h&%h'p%h(`%h)P%h*@%h+0%h, %zh-%rh.%jh/%bh0%Zh1%Rh2%Jh3%Bh4%:h5%2h6%*h7p%"h8`%h9P%h:@% h;0%h< %h=%h>%h?%h@%hA%hB%hC%hD%hE%hF%hGp%hH`%hIP%hJ@%hK0%hL %zhM%rhN%jhO%bhP%ZhQ%RhR%JhS%BhT%:hU%2hV%*hWp%"hX`%hYP%hZ@% h[0%h\ %h]%h^%h_%h`%ha%hb%hc%hd%he%hf%hgp%hh`%hiP%hj@%hk0%hl %zhm%rhn%jho%bhp%Zhq%Rhr%Jhs%Bht%:hu%2hv%*hwp%"hx`%hyP%hz@% h{0%h| %h}%h~%h%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h%h%h%h%h%h%h%hp%h`%h P%h @%h 0%h  %zh %rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h %h!%h"%h#%h$%h%%h&%h'p%h(`%h)P%h*@%h+0%h, %zh-%rh.%jh/%bh0%Zh1%Rh2%Jh3%Bh4%:h5%2h6%*h7p%"h8`%h9P%h:@% h;0%h< %h=%h>%h?%h@%hA%hB%hC%hD%hE%hF%hGp%hH`%hIP%hJ@%hK0%hL %zhM%rhN%jhO%bhP%ZhQ%RhR%JhS%BhT%:hU%2hV%*hWp%"hX`%hYP%hZ@% h[0%h\ %h]%h^%h_%h`%ha%hb%hc%hd%he%hf%hgp%hh`%hiP%hj@%hk0%hl %zhm%rhn%jho%bhp%Zhq%Rhr%Jhs%Bht%:hu%2hv%*hwp%"hx`%hyP%hz@% h{0%h| %h}%h~%h%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h%h%h%h%h%h%h%hp%h`%h P%h @%h 0%h  %zh %rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h %h!%h"%h#%h$%h%%h&%h'p%h(`%h)P%h*@%h+0%h, %zh-%rh.%jh/%bh0%Zh1%Rh2%Jh3%Bh4%:h5%2h6%*h7p%"h8`%h9P%h:@% h;0%h< %h=%h>%h?%h@%hA%hB%hC%hD%hE%hF%hGp%hH`%hIP%hJ@%hK0%hL %zhM%rhN%jhO%bhP%ZhQ%RhR%JhS%BhT%:hU%2hV%*hWp%"hX`%hYP%hZ@% h[0%h\ %h]%h^%h_%h`%ha%hb%hc%hd%he%hf%hgp%hh`%hiP%hj@%hk0%hl %zhm%rhn%jho%bhp%Zhq%Rhr%Jhs%Bht%:hu%2hv%*hwp%"hx`%hyP%hz@% h{0%h| %h}%h~%h%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h%h%h%h%h%h%h%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h%hп%h%h鰿%h頿%h鐿%h逿%hp%h`%h P%h @%h 0%h  %zh %rh%jh%bh%Zhо%Rh%Jh鰾%Bh頾%:h鐾%2h逾%*hp%"h`%hP%h@% h0%h %h%h%h%h %h!н%h"%h#鰽%h$頽%h%鐽%h&逽%h'p%h(`%h)P%h*@%h+0%h, %zh-%rh.%jh/%bh0%Zh1м%Rh2%Jh3鰼%Bh4頼%:h5鐼%2h6逼%*h7p%"h8`%h9P%h:@% h;0%h< %h=%h>%h?%h@%hAл%hB%hC鰻%hD頻%hE鐻%hF逻%hGp%hH`%hIP%hJ@%hK0%hL %zhM%rhN%jhO%bhP%ZhQк%RhR%JhS鰺%BhT頺%:hU鐺%2hV逺%*hWp%"hX`%hYP%hZ@% h[0%h\ %h]%h^%h_%h`%haй%hb%hc鰹%hd頹%he鐹%hf逹%hgp%hh`%hiP%hj@%hk0%hl %zhm%rhn%jho%bhp%Zhqи%Rhr%Jhs鰸%Bht頸%:hu鐸%2hv逸%*hwp%"hx`%hyP%hz@% h{0%h| %h}%h~%h%h%hз%h%h鰷%h頷%h鐷%h逷%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zhж%Rh%Jh鰶%Bh頶%:h鐶%2h逶%*hp%"h`%hP%h@% h0%h %h%h%h%h%hе%h%h鰵%h頵%h鐵%h逵%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zhд%Rh%Jh鰴%Bh頴%:h鐴%2h逴%*hp%"h`%hP%h@% h0%h %h%h%h%h%hг%h%h鰳%h頳%h鐳%h逳%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zhв%Rh%Jh鰲%Bh頲%:h鐲%2h進%*hp%"h`%hP%h@% h0%h %h%h%h%h%hб%h%h鰱%h頱%h鐱%h週%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%Zhа%Rh%Jh鰰%Bh頰%:h鐰%2h逰%*hp%"h`%hP%h@% h0%h %h%h%h%h%hЯ%h%h鰯%h頯%h鐯%h逯%hp%h`%h P%h @%h 0%h  %zh %rh%jh%bh%ZhЮ%Rh%Jh鰮%Bh頮%:h鐮%2h逮%*hp%"h`%hP%h@% h0%h %h%h%h%h %h!Э%h"%h#鰭%h$頭%h%鐭%h&逭%h'p%h(`%h)P%h*@%h+0%h, %zh-%rh.%jh/%bh0%Zh1Ь%Rh2%Jh3鰬%Bh4頬%:h5鐬%2h6逬%*h7p%"h8`%h9P%h:@% h;0%h< %h=%h>%h?%h@%hAЫ%hB%hC鰫%hD頫%hE鐫%hF逫%hGp%hH`%hIP%hJ@%hK0%hL %zhM%rhN%jhO%bhP%ZhQЪ%RhR%JhS鰪%BhT頪%:hU鐪%2hV逪%*hWp%"hX`%hYP%hZ@% h[0%h\ %h]%h^%h_%h`%haЩ%hb%hc鰩%hd頩%he鐩%hf逩%hgp%hh`%hiP%hj@%hk0%hl %zhm%rhn%jho%bhp%ZhqШ%Rhr%Jhs鰨%Bht頨%:hu鐨%2hv逨%*hwp%"hx`%hyP%hz@% h{0%h| %h}%h~%h%h%hЧ%h%h鰧%h頧%h鐧%h逧%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%ZhЦ%Rh%Jh鰦%Bh頦%:h鐦%2h逦%*hp%"h`%hP%h@% h0%h %h%h%h%h%hХ%h%h鰥%h頥%h鐥%h逥%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%ZhФ%Rh%Jh鰤%Bh頤%:h鐤%2h逤%*hp%"h`%hP%h@% h0%h %h%h%h%h%hУ%h%h鰣%h頣%h鐣%h連%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%ZhТ%Rh%Jh鰢%Bh頢%:h鐢%2h逢%*hp%"h`%hP%h@% h0%h %h%h%h%h%hС%h%h鰡%h頡%h鐡%h逡%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%ZhР%Rh%Jh鰠%Bh頠%:h鐠%2h造%*hp%"h`%hP%h@% h0%h %h%h%h%h%hП%h%h鰟%h頟%h鐟%h速%hp%h`%h P%h @%h 0%h  %zh %rh%jh%bh%ZhО%Rh%Jh鰞%Bh頞%:h鐞%2h逞%*hp%"h`%hP%h@% h0%h %h%h%h%h %h!Н%h"%h#鰝%h$頝%h%鐝%h&逝%h'p%h(`%h)P%h*@%h+0%h, %zh-%rh.%jh/%bh0%Zh1М%Rh2%Jh3鰜%Bh4頜%:h5鐜%2h6逜%*h7p%"h8`%h9P%h:@% h;0%h< %h=%h>%h?%h@%hAЛ%hB%hC鰛%hD頛%hE鐛%hF逛%hGp%hH`%hIP%hJ@%hK0%hL %zhM%rhN%jhO%bhP%ZhQК%RhR%JhS鰚%BhT頚%:hU鐚%2hV通%*hWp%"hX`%hYP%hZ@% h[0%h\ %h]%h^%h_%h`%haЙ%hb%hc鰙%hd頙%he鐙%hf這%hgp%hh`%hiP%hj@%hk0%hl %zhm%rhn%jho%bhp%ZhqИ%Rhr%Jhs鰘%Bht領%:hu鐘%2hv逘%*hwp%"hx`%hyP%hz@% h{0%h| %h}%h~%h%h%hЗ%h%h鰗%h頗%h鐗%h逗%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%ZhЖ%Rh%Jh鰖%Bh頖%:h鐖%2h逖%*hp%"h`%hP%h@% h0%h %h%h%h%h%hЕ%h%h鰕%h頕%h鐕%h逕%hp%h`%hP%h@%h0%h %zh%rh%jh%bh%ZhД%Rh%Jh鰔%Bh頔%:h鐔%2h途%*hp%"h`%hP%h@% h0%h LHII)I)IvBMfHnLT 1IflIA AD H L9uLHHL9:HJLBHtL9$Ht H9Ht( HT$HcE}HD$8H$IHILdHD$xHkIL$HLD$PHk`HD`HD$PHHHHD$pH$MIHzLHHIHHHH)H)HLD$HH;$u|$ E~ot$h9t$ L`LD$XLHL1ffAf<fYfXHI9uHHH9uHL$HL$uL$IH`H;\$P E~HD$p`L$MH$I<IHHL1L良uLH$ML$fH=HH9tHfHt H=H5H)HH?HHHtHEHtfD=yu/UH=Ht H=B蝦hQ]{f.HD$H=<H5HHD$HH+HD$H _HHD$ LHHD$(L HBHD$0HHD$8H HD$@HnHD$HHHD$PH6HD$XHHD$`HHD$hHbHD$pHHD$xH*H$HH$HH$HM H$H H$H H$HpH=t>@HtHx HHt f.˷ff.AVAUATIUHHHFHIcIHH}H5$H9t :HH5֝HHt,LHLHEDxHHEjLHHHD=dH1]A\A]A^fHt$ HT$ OHH99A$IxHIA$tOH]A\A]A^DHt$ H+L$ HH9A$HuHH]A\A]A^DHEHHFH15fHc$hL1LHӋ{H)LH詋{|LLH{RHT$0HME1HHxjhjHH H:L%{H\HT$8HE1HxjhjLL$(HH HL蹊{HHT$(HE1HxjhjLL$8HH HtvLYue{0HHT$ HE1HxjhjL$HH HtLfH0H=PyHD$H([]A\A]A^A_fLH=6H5?HT$UHT$HHHVH5xH= 0H H=xH@H;tLHL⋜$hLS$hLL$(LD$Y^NfH=H5轖HHt=HMIHEx HHEtpD$H5yxMbA3H=e1IHH5xDHH=O1ׯHH蠯HH58H8L%I $0H=wHNHEBHHE4H<'HL8DHEx HHEtgH=1 HHcX ;H-HH=KHM6HM0H=vH蟮L%H=I $H{ ID$HD$ff.AWAVIAUIATUSHHH;:H- HzHHpH9|HEHEtEHcLeL} I2D#MfDHtHExHHE0LHHHD= jH1[]A\A]A^A_fE@=O HE8L`(HB uH} L}1ILHIHc:I9LOMI;?HctIIHHcL9LLLHtHExHHE<H[]A\A]A^A_>tIE1L=1vLc` H1H5uH8*D1E1L=+@L)J< 1HD$MLD$.HثNHufaIH0H]HI$x HI$tUHf.HɒH5rtH8jD HfDHHL;HZH5H8#~ff.AVIAUIHATUHH褞HH}H5H9t V HH5:HHH}H5H9t H蹨 AEf.z f/#HExHHE%H]A\A]A^@HEH LHHHD=mH1]A\A]A^fIH%I$AEx HI$t} f.vf/llHH]A\A]A^LHLHESHHEEHh8LXAEpDHufH(HKH1AHBfAWAVIAUIATUHSHH(HH9GH5)teH5wHAE1H,HEH5qHPHH81TH1H([]A\A]A^A_DH5H豴HEH;tHpH=AMt L:LxEJEAHD$"fDEE1E1HD$H5Ht0H5|HH5vHHD$H|$ H5aHҳLE1tMt!LHT$LD$}HT$LD$HD$HL$LaM9MOLH)ȹHHI9LܖIHHcIH~*H51ɋHcHtHIH9Mt7I9 0DHcLLH)tIJDIM9uHExHHEH([]A\A]A^A_HQHtIH9}fDHLLH5oH81HLHEHHEH1H5ЇHLD$L|$GLD$HT$IH@ I$IHI$;LHT$LD$}HT$LD$fDHD$HH5HH5HHD$蝱LD$EtEH}H5JE1H9tLD$E1uLD$AAMtLLD$LD$LxMtIx HIHD$fL؝LIH)f.HD$E1E1@H5L܊H|$IHx HHMLLD$jLD$L)IIHILf.HtH=4H55nи1_fH=H5n譸HD$AHgML諜HD$HEEAALD$3LD$LH5蚉LD$Mt9M8Ex1IAM8t E1THLHD$HD$:AE1,HD$^AAH >H=lHDUIHfvS1HX H|HL$H$xHHH$0H LHDŽ$ H$@H$PH$XH$`H$hH$pH$xH$H$x)$XH$H$DŽ$HDŽ$(HDŽ$8HDŽ$HDŽ$DŽ$DŽ$DŽ$DŽ$DŽ$HDŽ$DŽ$HDŽ$)$hH$H$H$H$H$H$H$H$H$H$ H$0H$@H$PHZkHDŽ$DŽ$ HDŽ$HDŽ$DŽ$HDŽ$DŽ$HDŽ$DŽ$HDŽ$HDŽ$(DŽ$HDŽ$8HDŽ$HH$P5H$ PH$PH$PH$PH$PH$PH$PH$PH$PH$xPH$hPH$XPH$HPH$@PH$0PH$PH$PH$PH$PH$PH$PH$PH$P1L$L$HA1EH$(H$H$ DŽ$H i$$Hc$H$ уx*HcHTHH) HH9t8tH$8H$H$0DŽ$H i $$ Hc$H$0уx$HcHTHH) HH9t8tH$HH$H$@DŽ$H ui$$tHc$H$@уx(HcHTHH)D HH9t8tH$PH$Hhi$$uPH$@HtH$0Ht H$ HtH$H$HX []H$XH$H2i5$$tH$hH$HLi$$PH$pH$Hbi$$H$xH$Hxi$$H$pHy`H\$H$pt 3`HD$H$H$pH$xH$H$pH=ʂ=SH$PH5alAHHH|$pH$AQH$UL$?JHD$(AZA[HHD$H$H5тH@H}HD$xH9辆H$HhH$$u]H=aH\$pH$xHHHHtКjvHuH=H貯H$H5kVAH$ VH$UL$&IHD$0_AXHtHD$ H$0H$WH5kAH@H$SH$8UL$HHD$8ZYH3HD$(H$H$WH5mkAH@H$AQH$UL$RHHD$@AZA[HHD$0YH$H5_kH$AHDŽ$H@ H$VH$UL$(GHD$H_AXH HD$8H$HDŽ$ H$ H58kYAH@H$SH$UL$8aGHD$PZYHpHD$@H$H$0WH5(kAH@H$AQH$UL$HFHD$XAZA[HHD$HWH$PH5kH$@AH@H$VH$XUL$XFHD$`_AXHRHD$PH$`H;5~H@H$H$H2e$$tI$AHH9$XH$PH:eH5?yH1!uH=H"HD$PH9$HtHHD$HH9$8tHHD$@H9$(tHHD$8H9$tHHD$0H9$tHHD$(H9$tHH|$ H9$xn$X$HLH=HH8HAH=H&-H6H=dH"H+H=BHH H= H fHH=H螪H z$f.zf/tyKH$H;5s|JH$Hvc$$ Hc$HH9$Pt.H$PHcH5wHHc$H$H$H5,hH{A H$ASIٿ H$UKCHD$hZYHHD$XNIH$pH$H5hH@ H$Hc$H$APA H$xUBHD$pAYAZH,HD$`SH$pH5gH$`AH@H$Hc$H$hQH$xUL$WBHD$x^_HHD$hH$H@H$H9{H$Ha$$Hc$HH9$`t/H$P HbH5BuH$P$H$H;5zH$Ha$$Hc$H$P H bH5tHH9$NH$H;5ybH$ Ha$$(Hc$ H$P HbH5tHH9$H$H;5$yH$Hb2$$Hc$H$P H%bH59tHH9$rH$tfDŽ$Ls'I4$LHHoHExHHEIpI<$uH5vH='HHt9HH5 _LP%t"HEx HHEtiL豟0E1]A\LA]A^A_f {:fDHzHzHzUHzfDHz(HaH8}u-HH!bE1H5_XH8]LA\A]A^A_f諅H=]}IH봐HaH5UH8:HExHHEuH z~H5UHdaH81ZvXHNaH5gWH8ߎ=H1aH5UH81vHaH5VH8蠎H`H5\H8腎HIH=HGhLOPHGdLGPHG`HO PHG\HWPHGXHwPHGTPHGPPHGLPHGHPHGDPHG@PHGȔD$PiDT$(HLLD\$(LCH CjH=>$HH$xP$H$dP$$$($@$@H$PL$PVH`DT$(D\$ Ld$D\$HCH$HBDŽ$-LH$;a"H5BL H5}ALӜHLPL{ED\$H$hH$8EH$H$IHHA9rLdf(XY\f/wHAHڹHD$XAWIIAVMAUATUSHL$HT$L|$dH|$0L$A$LT$ LL$(L$rH$ډt$xLމ$xH$,|$jHT$dR$8SHT$xRHD$HLPATHcD$@IDPATL$ H$LL$P(A$LLL@H=;$$HPHl$`HjHHD$hPH@SAWAUPATLL$@L\$PH@H5[;L<LT$ u;H|$H54;HĈ[]A\A]A^A_fDH|$0H5 CL$ِL$LA$H$H=:D$`D$dHt$LHL$dA L$THjHD$lP$(AWRL$L$HT$XW5H0+fDH|$0H5mB=AEtH\$(A$+H$H=X:Ht$LHT$dAT$TjHT$lR$(ATL$dDLHIDPL$(L$ HT$X4H0fDHt$(+HcITf. ff.ff.ˍff.[ff.ff.IHIc~,Hc t%t'PHHH9ufDH1LIHIc~+Hc t$t'PHH9uH1QLIHA~1Hc1t*t#HH9uÐǃt1f(HfHH HH9u@9tƃHff.fATHcMLL$IIcIHc fAf.f.LLLA\8G>ƃtQf(f(1ffHDfAfAfYfYfXAHH9uڃ@9tHAYAY XAA\f.f.;Rƃt?f(1fHDfA fYA HH9u@9mA\HAYA@f. 8;H4HcʃHfAAIYYXAI9uBHDII9uf.XLMLA\f.LMLLA\ƃ?f(f(1ffHfAfAfYfYfXAHH9uDH1LA\H@HHA IYA I9uƃMf(1fHfA fYA HH9u IHHIcIc Hc6f.B9EHfII9ufD@VMǃtCf(1fH@f fA$fYfYA HH9u߃@9tHYAYA@@ǃAD!f._8a[@u}uxǃt:1HfAf fYAHH9u@9tHAYAH1LFfDH<H@AYHAI9u@HH HYAYAI9uÉǃV1HfAf, fYAHH9uǃf(1fHff fA4fYfYA HH9u;f.IHIc~+Hc t$t'PHH9uH1aEIHIc~,Hc t%t'PHHH9ufDH1EIHIc~+Hc t$t'PHH9uH1DAWAVAUATUSHA8HT$0HL$8LD$@E1HH$H50MMHcHIHHD$PHHD$XH$Hc蚆HH50D$}AMD$H$YH$f(YYAD$\$$YHD$L$Hl$hIHL$Ld$xL$HH$HD$(H$H$HD$PHHD$ H$LxHD$pHD$HfDLLHLת#L\$L$hAGT$xf(HD$ f(t$D$YI YHL$YY\XAGCY$Y$Ct,HD$0~!HLHIATL^4LA[XLLIHLAgCL$hT$xf(f(H4$HD$(YDT$YH YY\XCAGYA_$Y$AGEt1H|$8DE~$HL3IATLHL$:_AXH $H $|$HIL\$9|$t |$L\$MMLD$HCHD$@D$LLLH$HLDHHD$@H$d$h\$xHcf(HHH$ f(YYYY\XH$Ƌt$uHĘ[]A\A]A^A_fH|$0~Ht$PH\$XIHcH$HLk2HHDH)H HDH$ATH4LXZLd$xHl$hL$L$AWAVAUATUSHHL$H H|$XHT$`LD$PLL$pH$IHӹLHc0HHIH51HD$hIHHD$x6HD$`D$D|$DlHL$hH\$HL$H$Ld$PHL4HD$ HD$xHt$HDHL<ƍGHD$(H$HD$8H$HD$0(fDHD$HHIL|$ H;l$(HL$8HT$0LHLD$褦L$H50$$CT$f($YYA $C$T$LD$MHD$f(ʃYYfW 50HL9ufA\$DHD$XHĨ[]A\A]A^A_D$DGL$HJLl$ $H{H,AMfMMILH1A=H.IIFMD;<$uLl$L|$`Lt$PH$H$Hl$HL$IcHI4H|IcL$$H5.$HIDHD$pT$H$ $UDL$DT$~. $AAIcHcHD$hH)LH$HDfуYfWDYLA9uHD$hH$HHD$xHH D$DAWAVAUATUSH8D.A5HHIA~ ^-f(DA~ABDf(B\\AYfTf/v AAf/vA^f/JM~9EIME9}}~,LcǸiLDd\_fT\9t$\ _fT\]f/vf(^YLpHL9THu\B _IfT\H8[]A\A]A^A_ÐBDf(B\AYfTf/ AAf/A^f/LLLL$ LD$HL$HT$ɟLL$ LD$IHL$~+AFHT$f(9H~+D Hcf(@H9$D9upHct_D@ McBB,\_fT\9t,\ _fT\]f/vf(^Y \BI_ fT\@>IvLLL$(LD$ HL$HT$Dd$衞ILL$(LD$ HL$AF~}*HT$D$f([f.AWAVAUATUSHHt$6H|$(H$H$L$HL$0LD$8LL$@HHȋ ;1H$98H$/99HcHH|$xHH$1)AÉ$$A$IcH\$fHt$PHD$ H4HD$`$Ht$XH4D$H$HD$hH%*HD$HHCH$HD$pHH5'jjHT$ RATt$p$8t$H$0$L$L$H$H|$xwH$HHPf.L$P$ƅ~xHD$Hc~lH|$pHL$ L$H,L$H$E1HL,ωfLLHADMID9uH$L$|$Ht$XHL$`Ht$HL$ Gt D$$$H$DlIcHD$xHDHH$D)H5w&AH$H$jjLt$ AVATt$p$8RL$0$L$L$H|$x-vH$HHPf.L$PH$xrD)Ax]Ic~VHL$xMcH$AL4IL,HTH,1LHLgCLMA9uHĸ[]A\A]A^A_f.D$E|HD$DEkDEMcEAf(HT$ Dt$Hl$xI1Lt$pLHAE1fAtfDM<1f.fAffYfXAHH9uE9t'D|$IcE|HMcYCXADHLE9AuAD)H|$DEHl$xDPDDIcMcEƃf(ILHՉD$HA1LkfE1H$AtsM|1fAf$fYfXAHH9uE9t'D|$IcE|HMcYCXADHLE9AuAH%fHAHD$Ht$P1Ҿ"H=%%K1ҾH=b%}Kff.fAWHAVAUATUSHxHL$(H|$Ht$HHT$ LD$0LL$T2J@H$9=H$HcHHHIH|$P1)ƉÉD$XD$dD$\D$ HD$dH,HD$@H$D$HD$8DD$HL$HH=jjHT$XHL,R$t$`$$$AUH\$pL$LD$xHt$hHrHP~;HcT$d~2L$L<E1fLLLA?IMD9uL$ |$X|$At D$ 7D$\Ht$Ǎ\HHHD$HLT$hH)H=D$pD$tjjH$P$t$`$$$RLLt$pL$LD$xHt$hL)qA.HP~[HD$H)AxMCLl$PHt$E1AHH$McIL4IHLLA>MLD9uHx[]A\A]A^A_1Ҿ'H=~"HH"LʻHD$8tff.tff.vff.HcHc Ic9tyuzulugHcf~1fHfff fA,fffYf(fYf(fXf\fXAHH9uffH~1Hff.ff HfA0fffYf(fYf(fXf\fXAI9uff(H1fffDf f(fA<fYffYf(f\fXfXAHH9ufsff.pff.{hff.jff.IHA~>Hc t7t7  PHGH9u@Hc1H".fIHA~6Hc1t/Ot&HHfJH9u@HHD@HJH9uDATHcMLL$IIcIHc fAf.f.LLLA\WNf(D~~1ffHfAfA fAfffAYff(fYf(fAfYffYf(fXf\f(fXf\fXAHH9uA\f.f.f. q_V~fH1fAfA fffYfYf(f\fXAHH9udf.0f(H~~fHf1ffAfA fAfffYffYf(fAIfYffYfD(f(fA\fAXf(fXf\fXAI9u! iH]DA ABI9uYfDLMLA\f.XLMLLA\gf(~fHf1ffDfAfA fff(f(fA fYfYf(ffYfYfD(fD\fXf(f\fXAf(fXAHH9uzHc1LA\H)DH~fH1fDfAfA IfffYfYf(f\fXAI9ufH1fffAf(fYffYf(f\fXAHH9ufDAUMATUSHcLL$(IIcIHc ffA(Apf.ADEf.@E@trEtmf.@Ef.AAD݄^@U HA ABI9u[]A\A]@f.A@AEf.ADEE$f.ADEEf.-GADEEt @L[f(HfffHf1@fAfAff(ffYf(fAIfYfYffYfD(fD\fXf(fXf\AfXAI9uf.AAE݄uf.AE݄ [L]LA\LA]@f.ADEE@f. @Dބt"Et[L]MA\LLA]~fD*ffH1fDfAf(fYffYf(f\fXAHH9ufDfffHf1f.fAf(fYff(fAfYf(ffYfYfD(fD\fXf(f\fXAf(fXAHH9uE[L]MA\LA]L@f(ffHf1f@fAfAff(ffYf(fAfYfYffYfD(fD\fXf(fXf\AfXAHH9uHc[1]HA\LA]$fHffH1fDfAf(уIfYffYf(f\fXAI9uffH1fDfAf(fYffYf(f\fXAHH9uff.HcIc9~Lc Er^fAf.AEf.@AE@C;R HfDAA@I9uf@;AulAf(f(HffLHHf&fNH H fNfDAfff(f(fDAfYfYfYfYf\fififXf(fAYfD(fDYfYfAYfA\fXf(ffQaH9m@A9AA@ƃAD!f.AEEE@AHcAH1Ef fAf ffYfffYf(f\fXAHH9u@Hf(f(HHLbRYYY`YX\Xf(YYf(YY\XP@DHc1LHg!IHffAf LffYfffYf(f\fXAI9u@H0AULcAf(ATf(AfULfISIcHHILHE1I&NADAf$fLLf(f(fFDfYfYfYfYf\9fXfB<f(fYfD(fEYfAYfYfA\fXf!fB$fIfBLHE9htzDf(f(McIHcLHJIYYYYA\XAPf(YYf(YY\XAA@[]A\A]H1f fAf ffYfffYf(f\fXAHH9uf(fH1ff.f$ f f(fA4fffYf(fYfYfYf\fXfYffYf(f\fXA HH9uIH@"Jf(Ѓf(ApLYYYY\A(Xf(YYf(YY\XA AHI9uff.IHHIcIc Hc6f.2EHfII9ufD@VMǃtCf(1fH@f fA$fYfYA HH9u߃@9tHYAYA@@ǃAD!f.Oa[@u}uxǃt:1HfAf fYAHH9u@9tHAYAH1LfDH<H@AYHAI9u@HH HYAYAI9uÉǃV1HfAf, fYAHH9uǃf(1fHff fA4fYfYA HH9u;f.IHA~>Hc t7t7  PHGH9u@Hc1HBfAUHIHATLhLUHSHc1LMcIc9A`HHHHMLHHIHHHLHKtM1ffDfffYfXHH=uHHL9uLLAu[]A\A]ff.@AWAVAUILATILUSHD$PHc*HT$@Lc1Lc2L\$HMLHHHHMLH~eA$~]LMD{A U U HpfDLк@H9uIIM9uEmEA$HT$8pHAN$IALDHcfHHH@J<Lff(1~ffDff f4fffYf(fYf(f(f\fXfXHH9uHLL9uAMHE9q[]A\A]A^A_fDAWHAVAUATUSHhHL$(H|$Ht$8HT$ LD$LL$)2H$9IcHHHIH|$@1)ƉÉD$HD$\D$LD$HD$\H$HHD$0$HD@HD$jHt$@McIVN,$M$$H\$PLL$@HL$XH|$HHAH0~DD$\~t$ H$HHHH)H$YH$؉$$HL$xH$DFHH$HcH\$XX$HcH\$PH$D$pHHD$`FH)H$HՉ$AGH$L$INH$HD$8H$HD$XJ40HD$PHH$J 0HD$`HH$J0H$HH$HD$HH$HD$(AS|$xAff(LD$(H|$HHD$8ffA8fA`H@H@fAH fEH0I@f(fD(fDofDoffYfDfD(fYfDfE(fYfEfDYfYfDYfD(fD\fXfhfDYfDYAfDgfXf(fA\fDXf(fA\fAXfDXfDgDfhfA(fDXfhfAXfXfA(fE(fA\fDYfDYfofDXfgfgfofD(fD(fDYfYfDYfYfE\fD(fAfEfAXfEXfE(fDYfXfDYfE\fD(fAfAXfEfEXfXfA(fDfDP`fA(ffD`DHH;$2$9$sH|$XfI9HfLI:|$ Hf(fl$ffYfYf(ffYfYf(f\fXf(f\fXf>fXfX9LD$PKHfLKHf(fdffYfYf(ffYfYf(f\fXf(f\fXf9fXfX 9|$prH|$`f:I9HfdI:Hf(ffYfTfYf(ffYfYf(f\fXf(fXf\fXfX H$CIL$LD$(LD$HIIA9GHT$ HH$K >HH$HHT$@NLHHA11ff2f<1f(ffYfYf(f\fXfX 1H9$wHH$A9}D$H$D$Ht$8Ld$0Lt$;D$hHX[]A\A]A^A_L¾`HzH1HHǂHHH)Hu@|$ ED9Lc`t$h9t$ ADLA}LL$pH$L$)N0IL$K47MLHHt$(@A11fff$fYfXH9wIHM9uLL$HL|$ Aul$PD$P`tLH$(H$HD$pH$`H$H$H$A_OEU$D$@H$AD8Aa|$ }E9HD$Mc8H\$xDOHt$XD)HITH$HHLl$HLTH\$8LNL+`IL$OLʅ~6A 1fff<fYfXHH9uIHM9uLT$HH$uD$h$@H$H$ Ht$XH$H$Ht$xH$D$ H$H$H$9U$@aD$ HD$`HcD$ 9H$HL$0D;HH\$HD$ HD$@HD$HBIݺD$pAGH$IHH[HL$PHH HH$H&H\$x@a|$ D$`,A_HD$SHt$PHH$D$@DKILTHt$HH&DRHAHAa_DNH$IcHL$XJE)H|$hHHt$(H$HHDHH$_Lt$X1MHLmLLH H$1fff4fYfXHH=uHLL9uHIH9$uA9D$@`H$MHL$XD$@Ld$x;D$`LHcD$`D9H\$LcHT$H\$8IH|$PHL$HHHHTH$HH$HAE1҅~ V1ɸA9PHcAfTf/v߅AN9HcYI4DH9tFfTf/v˃IcA 9HcIDQH9@QfTf/vArAMcC9ALc9CCL\ADZHD$(I<D$H4iZL$\$HD$xXADf(fT%f(YHD$pHD$YHc8HHwXfT fVXA^DADHfTA_AH9\$ \$ HcADYDADHM6I<4LYH\$D$PD$HcHI4I|uYHD$x\$ f(XT$HcHD$pHJYADYf(fT5XfT )fVXA^ADfT A_AHIDH8[]A\A]A^A_LLXHD$xHD$A^AEfTHcAf.AWAVAUATUHSH( IHD$hIIIHMM1AHHHD$ fLT$ADA HcItAY I<LT$AYD\$XALAY \AWE$HHcH It I| W $\$HD$hHc}XAHHwf(fT%f(YHD$`YXfT |fVXA^DAHfT[A_AH9\$HIH([]A\A]A^A_ff.AWIAVAUIATIUSHHHH$H$H$Ht$Hc(1LD$pHc9H$LL$ HHHHHHIH|$0HIH|$8Hc>HHIH=;HD$XHHD$`SUAA9$AM$f($ff(H=d$*YQYt$x$TH$ff/vfd$A*E^f(QH$f$@f/v=H$f ~T$*Q$D$T$^$f/D$$sf1f.EƒD$H$fhf/,$$H$fH$f.0H$L$0H$HLT$(L|$hDhHCD-$$0菢H$H$LHD$0賢Ht$HsLH$A9$AM$$0T$(H$A$HDŽ$Ht$$D$9BHHLHjLH HH=1HH$PH$P$$$$$$t$pH$xPL$(gD$hH`5$Yf_ $f. $$-f/#%McH$DŽ$HD$BH$$HDŽ$(HDŽ$$9UInH$=HD$@HH$HH$H$$JH$L@$ff.f/$f/V $G D$xY$DŽ$D$A_f/R H$IcD$HD$@D99~,$ $Y$Yf/v H$D>f.H$E„tLff.DЄt:HcHD$0Ht$8LHTH$HHT$ $DH$$9$Hl$XLcHD$`H=Ht$8IL|HD$0IL$IMHL1LHHL$ j$L$HT$(L$AHTAXAY+ DkH+l$XHt$hMIcLl$$L ~HD$HHD$`Lf(fWLL$(Hl($0HH$H޺H3LLL$f(؃~3H$DPE~"%!L$(Yd$Pf/7t$H$$_B\Yt$z HHD$HHL$@HcTHH, ^^YY^f(YXXf(^YXQY_$$$|$Sf1f.E…*H$\$(L$H$(PLH$PL$L$H$H$B^_$(f/$ $\$($4$ Hc$Ht$`DŽ$IHD$(HD$XIL\IL$MD$xY$f/vH$D98. A~HD$u@H$D98~3$ $Y$Yf/vH$D8HD$(fH$Hf.H$tf/jf(fW-fI~A_H|$8LLHcHD$0\$HHlH=1HHl$ jI$HT$(L$L$AHD$@H|$HIHD$8H PL L$@Ht$xLLtLILt$0L胷HHLH$$f(A]DXXE~"%\$HYd$Pf/ d$H$Ll$(Ll$@_Bd$AHH$f(^ HD$@^YYY^XXQY_$DT$$$E}ff._f/UD$xY$f/H$BeDH$HcH$d$;}!H$D$Y$Yf/Ht$8L|$ LMcH$H Fd$(BBHHD$0HTH$HL$Ht$8LH= HHD$0$$WL$HDL$HH$HM*Ht$XH LHHD$0HTH$HLL$ H$HLH$eH$HLH$J4FH$I4nH$Hc$HH…E=KHHD$Hd$(HH$@$f(YN \2^^^f(YYZ^Yf(YXXf(XHHQY_$$H9tIDJ__L$L$H_$HHY_$$H9u$$$DŽ$DT$ff.f/Hc$H\$`IHD$(HD$XIL\IL$MMD$L$D$(ILLH$DxXHT$$P$H$HT$@L$H H$LH$H$D$($$$D$xY$f/D$A_H$D98T$IcD$HD$@DH|$HpL茳$f($Y_$$$f.H|$H$L$f(fW=fI~s@$f$f.4$ $t L$H$LH$H$,H\$8LL狄$HHHD$0$$R$HDH\$@H$HLHL$H H$LH$H$$DŽ$$$D$xY$D$A_f/H$D98H$HcH\$0LL$HHDŽ$LHD$@LH=j$HDHH$R$$$$$$H\$pSL L$HAVHT$xH`ff.$ Hc$HL$8LL]HcHD$0HTHHT$ jf$$fHDŽ$DŽ$f.FD$Hl$@4$D$H$HH$HT$(jDT$()H$^f(^Yf(YX@^YXQYDD$$H$A]Ef(XDhIcHt$`D$HHD$(HD$X$0L\HIL$$$MMP$H$H$H|$8H$HL$ $PH H$H$H$H D$H$$$(fD$$$$f1D$f.f(EA]E…D$$L$Ht$hH$H$H$$0$$(f/$w$ff.5f/9&A_HMLH$$8LH=8HDŽ$j$H$P$$$$$$$H$0UH$HT$x7H`ff.$H|$LH ff$H$HDŽ$f.FD$DŽ$L-D$HD$(HH$H@fH$$L$T$(H$LPH$PL$L$H$H$AXAY$$f/W$T$($$$$ff.D$HT$8A_HcHD$0HlHHl$ kfD$L$A_.D$L-$H\$hD$ADMHLLLT$H覫MILfLHLfW)$0軩LHL]L$HYL$P$ f(f/s$AD9$s$H$$H$$D$:IcHD$@D$L-$H\$L$Ld$hL$AMLLHH\$(膪MMLfHLHfWh)$0蛨LLH=L$(YL$P$ f(f/s$AD9$s$$$H$L$$DL$HUH$EAډH$DH$,$hHH[]A\A]A^A_fD$H$1t fHH;LP9~HcHL$0LLHD$8HD$($$HDSH$HT$@H$LL$'H H$LH$H$D$(DŽ$$$}f(^^f(YYXG^YH$ DDEHDŽ$H$DHt$8T$(HHLH=HHD$8j$HDLH$HR$$$$$$HT$pRL $HT$x*d$`_$Hd$`$@H`T$( HLHjLH HH=iHH$PH$P$$$$$$$H$xPL$(HT$xtH`D$H$D$H$IDnT$(H4Ho:fT$(f/$$ H$HT$ H$L$H$$H$<$PHD$fAWAVAUATMUSLHhHcH|$@Hc?IH1Ht$MIHT$HL$HHHHHHL$0HHHL$8HDWHc D|$\HHD$Dl$T0}9uHD$XL-<HLL$\HD$L=ODHcKH9=5)ʃAUT$X~HD$@HL$0Ht$TH=.HD$8LDHT$TILD$HjH AWUPAWATHT$8LL$XLD$PHt$H<Hc$1H0Ht$LD$ HHLL$(~@fLA HH9uH}jH AWH=UPAWAVHT$8LL$HHc$H0LL$~'H1fAfDfXAHH9uHD$HcKH09HhH[]A\A]A^A_DAWAVAUATUSH(DLL$EH?HD$xAHID$L%%;IMŃ8T$thLL$`MLLHHEAD$LHHV!HD$L$HD$hYf/wal$tHDHHX@AWHO1AVAUATUHSHHHL$PDd$HyHHH9L|H)A~HAD$Lt$XLl`L%>O@ILHL1UyHHx>H9}9IIH)M9uH~%H$A)IGt2HH)[]A\A]A^A_HH[]A\A]A^A_f.H~foVIGAGAUATUHSHHtHHpH9t PAąt;=LHE8D` HD[]A\A]@D`(H[]DA\A]fDHEHHkH5(OHxIHHXH~kH@1Ht/IEH<"A9DLHH9t:IEHuI|fDeH[]DA\A]fDIE HIEL&dAfDAWAVAUIATLcUHSHHH $OHIcMH4$IA9IE 1A%I~ M9zM MHH9t)LLLMyMMLDHH9uHHfDHDHA9~HLHyHcHA9xLHIHDLM9LLH5MHIH81C_HH[]A\A]A^A_@EtmIcLLM1MHIEH5XNH81^HDf.AD1kH:IH5LH81^IHILH5LH81l^$AA1EIM 1 I9tH`MtPIHI9t#LlHAMyH\HHI9uI97LH5LHDLt$HtLjLNILDI<H5L1 ?H!HLH8v61AωA91Df.9{IU HcHH9IHH~9}LƒM9|E=1Af.L\HA9M9(Lt$QLWEMHLL1E1ڏY^LMJLHH`IH)I<I1觏E9L1۽MH3II<H)1yA}~3LXMIU HH)I<1H HHHDA9]L&MHHH)I<1WM9MI Lt$QHKEWMйL1ÎXZA1~1IU yHBL1 fDHH:HI9uIcLLMMx A9 EH1E1fD9~lME HcIH9tMLI~L9~=CMxMM9uLMuHAHE9uD9MG@LAMyLDLt$HtLL\$L$9gL\$L$LL\$L$oKL\$ADL$I<H5I1L;ȉʉ@HHGxu"L`Mt6HXHAHDH5JH81Y1HÐHDH5FH81YfDAWAVAUATIUHSHH Ht@ˈIHt#AEtAEHĸL[]A\A]A^A_Ð蛍HufDAD$$LcMt$1MipDHpL9I4HM<huIcGI`HMGHLQIL=HL$@ILHՃ|$@I\$sLXMH%HHSE1PHxjhjIH D H=/EHH=6?H؅t} H=EHu <$OHa`LHHSIHENHHE@H>[3fMl$ fDH=<`AL$IDžHD$@Ld$LHD$HD$0Hl$8,HDhHL$ LLD@IH1D1nIUHIƅxHIUH;HL$H9-H)H|$(M,I$HarAEscalIUIfAEI0 HrLL)贜LIBLL>IIx HIIx HIkHD$HD$p;XMHHD$HB.H|$0HHHHHhDPHT$ HX $HT$(HHFLpdLt$L0[IH<$bHHFLt$II9HHLJ\MK,M)IL)MIHD$dAdt@HDŽ$Hp.H$HHLLL$pHpHL$ITI)>fDL`XLPXdME1H?HL$LH5DH81}L@1LPH% fDLHD$ WHD$ ]fHl$8II|$ LHKE1MMcD[III\$Cp\MG$HL$ HH@L1jHH HL$H9H)IIL-G>$ID$11HXpIH1Db'IUHH HtHx HHtH]yf.VH]yfATH5?@UH=HaHtxHEu3H=*@g[IHEx HHEt2HL]A\HH=?1KIf.H(VHL]A\DHH=?]A\ZDHtJHHS=HH5?H81z肆Ht xaHfAVIAUATUHHqHLHIS4IHtHC2IHHhHHtdHLLTIu?HEx HHEtHL]A\A]A^HUHL]A\A]A^H5BH=cEDH5BH=PEDH5AH==EDH5)BH=*EDDATIpHt.LHf3IHtHV1I.HuLA\H5BH=DPDH5BH=D=Dff.fATSHH=HNIHtSgID$ HtcCI\$H==AD$H3t:H==u(#II|$ H5o=HGHL[A\@H==1DLE1uAWAVAUATUSHHHtH=ѯMIHf gID$ H=AD$H;*HpfDH1HpHHuAD$1E1I\$HXDPHHcTDhIAHID$LҰE1LHIzPLXHHjhAIXZMID$I|$ LH4(}FIx HIAD$AHpA9}=I\$H<+)IHu@I$xHI$E1HL[]A\A]A^A_DHHIMtIx HIt@Mt=̯~"I^(MfDLQBA^ M@LQLvQgIEHI8LPQ+ff.AWAAVIAUMATAUSDHH $H&DhHAH=RD`(LL;-7HЮI}HpH9t &<TAE@IM8IcD=M AHq(H9~H$4$LLG t AEtAEHEHHEsHPMD<$E$MMlL HI9H8yfo@D$ht (Hs but goLt$HD$`H9D$fo@D$ fo@D$0fo@D$@fo@D$PfLI ={HJ(IcH $Lt$H9t%L6H $DH5R8I<1'IU8B- `AA v*LH$6H$MH528I<1R&IEA|L.6DH52I<1&Z@fo9AayD$BfDT$@D$fo9D$ fo9D$0Lh(IEH57HPH/H81DHE HEHHEHL$GL$fo8D$8Lt$He) arrayH\$0D$foq8D$ A~qLi(I9gL5LDH5t6I<1q%BD9` fo 8yD$0arrafT$4D$fo8D$ Lch Lci fo7D$8He) arrayH\$0D$fo7D$ Lt$HLHL$H$k4HL$H$fo7L@ fo7@ HcG bA1IH ~u AW_AU eAG%fo6yD$0arrafL$4D$fo7D$ AW%=u z>fo6D$XD$8fo6D$H\D HcJ Vt  AOA kAA]foM6D$PHntiguousHD$HD$8L7EhAwt}%=91ɀ>+AG1A DAAA%1=%1=|ff.@AWIAVAUATUSHxHcoH|$H$HipLw1HpH9I4LM,fAąuE}AM`MH$H;+L-Q3EIcHl$0HH!9EPHˡDh=Hp Hx HHHDDAjLL$H$Y^IHL|$Iu HL$,HIGHHx`MGIMcxIxJHQFHD$HxHHXHHAuHuHAuI} H=ǠIU8HR(HL$HIuHIHXEL;,$tIExHIEHxD[]A\A]A^A_f.HD$Hx Ht2H<$t[H$HxL[]A\A]A^A_.6fDp(yUHHD$Hx HuSDHcR >L|Aą^H(H51H8VCfE}IcHl$01LD$HH6LD$HL$,I}HE1HAHD$L@IAHLc.LcHLD$JE16LD$E1H`AAAPHIUHT$h=HT$Hjp Hx HHHADjLL$pIXZMA(t$@t$L}@ p(H'H5s*AH8WUfHl$0t$HT$8@t$HT$_Hl$0L;,$tIEhHIEZL?Mff.@AVMAUAATIUSHH؝h=ÝH~>p(Hx HHt3HMADjLBH []A\A]A^Dp t$ _?t$ fHaIHLHAWAVAUIATUHSH8HH%HHHpPH9\*HH}HpH97*H}HHpH9*HrEHEHILpGfH5(LHL1@"fDHOIHU1H5_(LLLQGH8[]A\A]A^A_f.H}=LGHE8#HcH PIH5 (1LDHH(fEtu(IL5'f $aHE=H]8LpLc{ L*SMLI<H5'1G&fL* fAL*HU LI<1HH 9]zfDEEXfDL{(tHEIH5&'LHP1HXHt$(HD$`HcT$(HD$HD$ wD$HD$t>HcH~H9HG RHHXÐH#H5R,H818a1HXÐHaH HXf.HH1UHt HHD$FGHD$Hff.H1YHtHHD$GHD$H@H"H9GHHPython int too large to convert to C intcb: Callback zaprod not defined (as an argument or module _zpropack attribute). Call-back cb_zaprod_in___user__routines failed. Failed to convert _zpropack.zaprod_extra_args to tuple. Callback zaprod argument list is not set. array object is non-contiguous.object too large for a 32-bit intCall-back argument must be function|instance|instance.__call__|f2py-function but got %s. extra arguments tuple cannot be used with PyCapsule call-back create_cb_arglist: Failed to build argument list (siz) with enough arguments (tot-opt) required by user-supplied function (siz,tot,opt=%zd, %zd, %zd). failed in processing argument list for call-back aprod.OOOOOOOOOOOOOOOOOOO|OOOOOOO!:_zpropack.zlansvd_irlstring_from_pyobj failed in converting 1st argument`which' of _zpropack.zlansvd_irl to C stringstring_from_pyobj failed in converting 2nd argument`jobu' of _zpropack.zlansvd_irl to C stringstring_from_pyobj failed in converting 3rd argument`jobv' of _zpropack.zlansvd_irl to C string_zpropack.zlansvd_irl() 4th argument (m) can't be converted to int_zpropack.zlansvd_irl() 5th argument (n) can't be converted to int_zpropack.zlansvd_irl() 6th argument (p) can't be converted to int_zpropack.zlansvd_irl() 7th argument (neig) can't be converted to int_zpropack.zlansvd_irl() 8th argument (maxiter) can't be converted to int_zpropack.zlansvd_irl() 12nd argument (tolin) can't be converted to double_zpropack.zlansvd_irl() 1st keyword (dim) can't be converted to int(shape(u, 1) == 1 + dim) failed for 1st keyword dim_zpropack.zlansvd_irl() 2nd keyword (ldu) can't be converted to int(shape(u,0)==ldu) failed for 2nd keyword ldu_zpropack.zlansvd_irl() 3rd keyword (ldv) can't be converted to int(shape(v,0)==ldv) failed for 3rd keyword ldv_zpropack.zlansvd_irl() 4th keyword (lwork) can't be converted to int(len(work)>=lwork) failed for 4th keyword lwork_zpropack.zlansvd_irl() 5th keyword (lzwrk) can't be converted to int(len(zwork)>=lzwrk) failed for 5th keyword lzwrk_zpropack.zlansvd_irl() 6th keyword (liwork) can't be converted to int(len(iwork)>=liwork) failed for 6th keyword liwork_zpropack._zpropack.zlansvd_irl: failed to create array from the 10th argument `u`_zpropack._zpropack.zlansvd_irl: failed to create array from the 13rd argument `work`_zpropack._zpropack.zlansvd_irl: failed to create array from the 14th argument `zwork`_zpropack._zpropack.zlansvd_irl: failed to create array from the 15th argument `iwork`_zpropack._zpropack.zlansvd_irl: failed to create array from the 16th argument `doption`_zpropack._zpropack.zlansvd_irl: failed to create array from the 17th argument `ioption`_zpropack._zpropack.zlansvd_irl: failed to create array from the 18th argument `zparm`_zpropack._zpropack.zlansvd_irl: failed to create array from the 19th argument `iparm`_zpropack._zpropack.zlansvd_irl: failed to create array from the hidden `sigma`_zpropack._zpropack.zlansvd_irl: failed to create array from the hidden `bnd`_zpropack._zpropack.zlansvd_irl: failed to create array from the 11st argument `v`OOOOOOOOOOOOOOOO|OOOOOOO!:_zpropack.zlansvdstring_from_pyobj failed in converting 1st argument`jobu' of _zpropack.zlansvd to C stringstring_from_pyobj failed in converting 2nd argument`jobv' of _zpropack.zlansvd to C string_zpropack.zlansvd() 3rd argument (m) can't be converted to int_zpropack.zlansvd() 4th argument (n) can't be converted to int_zpropack.zlansvd() 5th argument (k) can't be converted to int_zpropack.zlansvd() 9th argument (tolin) can't be converted to double_zpropack.zlansvd() 1st keyword (kmax) can't be converted to int(shape(u, 1) == 1 + kmax) failed for 1st keyword kmax_zpropack.zlansvd() 2nd keyword (ldu) can't be converted to int_zpropack.zlansvd() 3rd keyword (ldv) can't be converted to int_zpropack.zlansvd() 4th keyword (lwork) can't be converted to int_zpropack.zlansvd() 5th keyword (lzwrk) can't be converted to int_zpropack.zlansvd() 6th keyword (liwork) can't be converted to int_zpropack._zpropack.zlansvd: failed to create array from the 10th argument `work`_zpropack._zpropack.zlansvd: failed to create array from the 11st argument `zwork`_zpropack._zpropack.zlansvd: failed to create array from the 12nd argument `iwork`_zpropack._zpropack.zlansvd: failed to create array from the 13rd argument `doption`_zpropack._zpropack.zlansvd: failed to create array from the 14th argument `ioption`_zpropack._zpropack.zlansvd: failed to create array from the 15th argument `zparm`_zpropack._zpropack.zlansvd: failed to create array from the 16th argument `iparm`_zpropack._zpropack.zlansvd: failed to create array from the hidden `sigma`_zpropack._zpropack.zlansvd: failed to create array from the hidden `bnd`_zpropack._zpropack.zlansvd: failed to create array from the 8th argument `v`_ARRAY_API is not PyCapsule objectmodule compiled against ABI version 0x%x but this version of numpy is 0x%xmodule was compiled against NumPy C-API version 0x%x (NumPy 1.23) but the running NumPy has C-API version 0x%x. Check the section C-API incompatibility at the Troubleshooting ImportError section at https://numpy.org/devdocs/user/troubleshooting-importerror.html#c-api-incompatibility for indications on how to solve this problem.FATAL: module compiled as unknown endianFATAL: module compiled as little endian, but detected different endianness at runtimenumpy._core.multiarray failed to importcan't initialize module _zpropack (failed to import numpy)This module '_zpropack' is auto-generated with f2py (version:2.3.4). Functions: u,sigma,bnd,v,info = zlansvd(jobu,jobv,m,n,k,aprod,u,v,tolin,work,zwork,iwork,doption,ioption,zparm,iparm,kmax=-1 + shape(u, 1),ldu=shape(u,0),ldv=shape(v,0),lwork=len(work),lzwrk=len(zwork),liwork=len(iwork),aprod_extra_args=()) u,sigma,bnd,v,info = zlansvd_irl(which,jobu,jobv,m,n,p,neig,maxiter,aprod,u,v,tolin,work,zwork,iwork,doption,ioption,zparm,iparm,dim=-1 + shape(u, 1),ldu=shape(u,0),ldv=shape(v,0),lwork=len(work),lzwrk=len(zwork),liwork=len(iwork),aprod_extra_args=()) COMMON blocks: /timing/ nopx,nreorth,ndot,nreorthu,nreorthv,nitref,nrestart,nbsvd,tmvopx,tgetu0,tupdmu,tupdnu,tintv,tlanbpro,treorth,treorthu,treorthv,telru,telrv,tbsvd,tnorm2,tlansvd,nlandim,tritzvec,trestart,tdot,nsing .realzaprodzaprod_extra_args()capi_return is NULL (N)rv_cb_arr is NULL NULL pointer foundout of memoryim_func__call__fortran__code__co_argcount__defaults__%s: zlansvd_irl:dim=%d%s: zlansvd_irl:ldu=%d%s: zlansvd_irl:ldv=%d%s: zlansvd_irl:lwork=%d%s: zlansvd_irl:lzwrk=%d%s: zlansvd_irl:liwork=%dNNNNi%s: zlansvd:kmax=%d%s: zlansvd:ldu=%d%s: zlansvd:ldv=%d%s: zlansvd:lwork=%d%s: zlansvd:lzwrk=%d%s: zlansvd:liwork=%dnumpy._core._multiarray_umathnumpy.core._multiarray_umath_ARRAY_API_ARRAY_API is NULL pointer2.3.4__version____doc____f2py_numpy_version___zpropack.error__zpropack_errortimingjobujobvtolinzworkdoptionioptionzparmiparmkmaxlduldvlworklzwrkliworkwhichpneigmaxiter_zpropackzlansvdzlansvd_irlnopxnreorthndotnreorthunreorthvnitrefnrestartnbsvdtmvopxtgetu0tupdmutupdnutintvtlanbprotreorthtreorthutreorthvtelrutelrvtbsvdtnorm2tlansvdnlandimtritzvectrestarttdotnsing_zpropack._zpropack.zlansvd: failed to create array from the 7thN Dimension = Try increasing KMAX.neig = L../scipy/sparse/linalg/_propack/PROPACK/complex16/zlansvd.FWARNING: Invariant subspace found.WARNING: Maximum dimension of Krylov subspace exceeded prior to convergence.??0@?../scipy/sparse/linalg/_propack/PROPACK/complex16/zlansvd_irl.F?YToo little workspace in DGEMM_OVWRToo little workspace in DGEMM_OVWR_LEFTm>ldb in DGEMM_OVWR`Too little workspace in ZDGEMM_OVWR_LEFTTl?../scipy/sparse/linalg/_propack/PROPACK/complex16/zlanbpro.FWarning deltaError loading %s function %sscalar %sarray %s%ld, -- input not %d-alignedover-writing fortran routine%d-%s%c%ld-%s-scalar)-%c%ld-%s%s instancef2py:fortranobject.c:get_elsize%d-th dimension must be fixed to %ld but got %ld %d-th dimension must be %ld but got 0 (not defined). unexpected array size: new_size=%ld, got array with arr_size=%ld (maybe too many free indices) -- %d-th dimension must be fixed to %ld but got %ldunexpected array size: new_size=%ld, got array with arr_size=%ld too many axes: %d (effrank=%d), expected rank=%d -- %d-th dimension must be fixed to %ld but got %ld (real index=%d) unexpected array size: size=%ld, arr_size=%ld, rank=%d, effrank=%d, arr.nd=%d, dims=[this fortran object is not callablefortranobject.c: fortran_doc: len(p)=%zd>%zd=size: too long docstring required, increase size F2PySwapThreadLocalCallbackPtr: PyThreadState_GetDict failedF2PySwapThreadLocalCallbackPtr: PyLong_AsVoidPtr failedF2PySwapThreadLocalCallbackPtr: PyLong_FromVoidPtr failedF2PySwapThreadLocalCallbackPtr: PyDict_SetItemString failedF2PyGetThreadLocalCallbackPtr: PyThreadState_GetDict failedF2PyGetThreadLocalCallbackPtr: PyLong_AsVoidPtr failed -- failed to determine element size from %s -- expected elsize=%d got %ld -- expected at least elsize=%d but got %ld -- expected elsize=%d but got %ld -- input '%c' not compatible to '%c'failed to initialize intent(inout|inplace|cache) array, input '%s' object is not an arraydelete non-existing fortran attributef2py_size: 2nd argument value=%ld fails to satisfy 1<=value<=%ld. Result will be 0. F2PyGetThreadLocalCallbackPtrF2PySwapThreadLocalCallbackPtr, not allocatedfailed to initialize intent(cach -- input must be in one segmentlize intent(inou -- input not co -- input not fortran contiguousfailed to create intent(cache|hide)|optional array-- must have defined dimensionlize intent(in) ;d6P60RH9RpH@U6V6V6V60YH7@`7pc\8e8l\9~$;`<8==> @xAAAжAAA@AB BXB0lBBоB B(CxCCpDE,E@ETE hE0|E@EPE`EE0EFFF@FFp,G pGGH I ,IP hIIJ`/L1L2L3@M8M=M?M@M@N @$N0@8N@@LNP@`N@N@NAN0ANpANAOA,OA@OATOAhOA|OAOBOBO BO0BO@BOPBP`BPpB0PBDPBXPBlPBPBPBPBPBPCPCP C Q0C Q@C4QPCHQ`C\QpCpQCQCQCQCQCQCQCQCRD$RD8R DLR0D`R@DtRPDR`DRpDRDRDRDRDSDSD(SD >4>H>\>p>>>>>>>>?$?8?L?`?t???????@@(@<@P@d@x@|@x@t@p@l@h@dA`A\,AX@ATTAPhAL|AHADA@A<A8A4A0B,B(0B$DB XBlBBBB BBBB C C4CHC\CpCCCCCCCCD$D8DLD`DtDDDDDDDEE(EA` O I<BHD D DBH l DBF DHB4GNxLlBEB A(G0u (D BBBH L (D BBBA HcBz A (dpBAN d DBE TUBBB B(A0A8G@HEPKHA@ 8D0A(B BBBF l BEE E(D0A8J 8D0A(B BBBK aAKA.AKBX<BEB B(A0A8GNNA 8D0A(B BBBK ` 8D0A(B BBBK QMNADTBEE D(C0F@pHKPN0A(A BBBF@(H<iBBB E(A0D8G 8F0A(B BBBK D`J B ^ B U84D S I S̝X,D P D Sh?> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXT(6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv  & 6 F V f v           & 6 F V f v           & 6 F V f v           & 6 F V f v           & 6 F V f v         &6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv&6FVfv  & 6 F V f v         !!&!6!F!V!f!v!!!!!!!!!""&"6"F"V"f"v"""""""""##&#6#F#V#f#v#########$$&$6$F$V$f$v$$$$$$$$$%%&%6%F%V%f%v%%%%%%%%%&&&&6&F&V&f&v&&&&&&&&&''&'6'F'V'f'v'''''''''((&(6(F(V(f(v((((((((())&)6)F)V)f)v)))))))))**&*6*F*V*f*v*********++&+6+F+V+f+v+++++++++,,&,6,F,V,f,v,,,,,,,,,--&-6-F-V-f-v---------..&.6.F.V.f.v.........//&/6/F/V/f/v/////////00&060F0V0f0v00000000011&161F1V1f1v11111111122&262F2V2f2v22222222233&363F3V3f3v33333333344&464F4V4f4v44444444455&565F5V5f5v55555555566&666F6V6f6v66666666677&767F7V7f7v77777777788&868F8V8f8v88888888899&969F9V9f9v999999999::&:6:F:V:f:v:::::::::;;&;6;F;V;f;v;;;;;;;;;u,sigma,bnd,v,info = zlansvd_irl(which,jobu,jobv,m,n,p,neig,maxiter,aprod,u,v,tolin,work,zwork,iwork,doption,ioption,zparm,iparm,[dim,ldu,ldv,lwork,lzwrk,liwork,aprod_extra_args]) Wrapper for ``zlansvd_irl``. Parameters ---------- which : input string(len=1) jobu : input string(len=1) jobv : input string(len=1) m : input int n : input int p : input int neig : input int maxiter : input int aprod : call-back function => zaprod u : input rank-2 array('D') with bounds (ldu,1 + dim) v : input rank-2 array('D') with bounds (ldv,dim) tolin : input float work : input rank-1 array('d') with bounds (lwork) zwork : input rank-1 array('D') with bounds (lzwrk) iwork : input rank-1 array('i') with bounds (liwork) doption : input rank-1 array('d') with bounds (4) ioption : input rank-1 array('i') with bounds (2) zparm : input rank-1 array('D') with bounds (*) iparm : input rank-1 array('i') with bounds (*) Other Parameters ---------------- dim : input int, optional Default: -1 + shape(u, 1) aprod_extra_args : input tuple, optional Default: () ldu : input int, optional Default: shape(u,0) ldv : input int, optional Default: shape(v,0) lwork : input int, optional Default: len(work) lzwrk : input int, optional Default: len(zwork) liwork : input int, optional Default: len(iwork) Returns ------- u : rank-2 array('D') with bounds (ldu,1 + dim) sigma : rank-1 array('d') with bounds (neig) bnd : rank-1 array('d') with bounds (neig) v : rank-2 array('D') with bounds (ldv,dim) info : int Notes ----- Call-back functions:: def zaprod(transa,m,n,x,y,zparm,iparm): return y Required arguments: transa : input string(len=1) m : input int n : input int x : input rank-1 array('D') with bounds ((transa[0] == 'n'?n:m)) y : input rank-1 array('D') with bounds ((transa[0] == 'n'?m:n)) zparm : input rank-1 array('D') with bounds (*) iparm : input rank-1 array('i') with bounds (*) Return objects: y : rank-1 array('D') with bounds ((transa[0] == 'n'?m:n))u,sigma,bnd,v,info = zlansvd(jobu,jobv,m,n,k,aprod,u,v,tolin,work,zwork,iwork,doption,ioption,zparm,iparm,[kmax,ldu,ldv,lwork,lzwrk,liwork,aprod_extra_args]) Wrapper for ``zlansvd``. Parameters ---------- jobu : input string(len=1) jobv : input string(len=1) m : input int n : input int k : input int aprod : call-back function => zaprod u : input rank-2 array('D') with bounds (ldu,1 + kmax) v : input rank-2 array('D') with bounds (ldv,kmax) tolin : input float work : input rank-1 array('d') with bounds (lwork) zwork : input rank-1 array('D') with bounds (lzwrk) iwork : input rank-1 array('i') with bounds (liwork) doption : input rank-1 array('d') with bounds (3) ioption : input rank-1 array('i') with bounds (2) zparm : input rank-1 array('D') with bounds (*) iparm : input rank-1 array('i') with bounds (*) Other Parameters ---------------- kmax : input int, optional Default: -1 + shape(u, 1) aprod_extra_args : input tuple, optional Default: () ldu : input int, optional Default: shape(u,0) ldv : input int, optional Default: shape(v,0) lwork : input int, optional Default: len(work) lzwrk : input int, optional Default: len(zwork) liwork : input int, optional Default: len(iwork) Returns ------- u : rank-2 array('D') with bounds (ldu,1 + kmax) sigma : rank-1 array('d') with bounds (k) bnd : rank-1 array('d') with bounds (k) v : rank-2 array('D') with bounds (ldv,kmax) info : int Notes ----- Call-back functions:: def zaprod(transa,m,n,x,y,zparm,iparm): return y Required arguments: transa : input string(len=1) m : input int n : input int x : input rank-1 array('D') with bounds ((transa[0] == 'n'?n:m)) y : input rank-1 array('D') with bounds ((transa[0] == 'n'?m:n)) zparm : input rank-1 array('D') with bounds (*) iparm : input rank-1 array('i') with bounds (*) Return objects: y : rank-1 array('D') with bounds ((transa[0] == 'n'?m:n))$J0"')l/k5=EKQVZ^djq$J0wy~"')l/k5=EKHVZ^djV          # ) / 5 < DL U ^ cph ЊU*(`гGCC: (GNU) 10.2.1 20210130 (Red Hat 10.2.1-11)(P (`  <   8     8@V?9%(@(5P@ F`@%Q@f`VxCp VJ"@M`Ok<U&oh-%;'hE@PPWV k  <P>>>@V 3?? ^wTVV,CS\VepZ{@\jI`>  г 4/ZOLG[bXVD~2pzp2;N a `+PV=@w0^8 }cSRa@S9/5uADN dOFF,"/rOJu60;Pkg`+~E Inj6Їq[^ ~>@;4@^:p4M v JoY >8:]0}Z5+Y;fRPЀd+0[21'C:>Y>;1$pIA$J.eqhV#:^P{]pW_&@mW>16@\B41 4-aUPzfMa@ V2 PL&C[ T`[xeXN921<)e"mMdObC@. 4oIZ0p5`@UL`aogbS`V^;^-*pBZYL;4G<0JP7 E'PG+;b_56S\ p(. `Us^0lK~bOx:7KWTx.z2:_> .`2B{Y0 bip\ :@4X 90PYBXs< [7B=Vp:RTPg)Z5G<`G\p=m!OXTZZuSpe899/0{Qj{>P>Zf._ g\80:S. Ah7p7TP@t5.ui[i  Ru^gPcbPUPec\^*p,09c LrP#~UU{ [Qg 5h)G@pO]NHX)6WT^47pDLD0}C4`PA6d0vg&i;YpKbES@1g6@kP6'PZwJ-H_LY0O9IU mngv k0@hHY P'Nb0647_>0qgVG,CB >0:vd_[Pod0jyYVO60-0F |O0.`=aU o?p mpt 4XeM0%EId>pq!<?#W@/&Ok$ TO[J:6@1`37Qp%C04$ PvHJau)ЋF<U;`Y{@GH,`lK@pmP{hdwP\b2@0Kw)x7`E84KE3xH@IGf.YG|@ [:w[w73_8`3rPh@BK@K7miBP5`0W=Uj: -V`.)oA qA7u(@HdhTf05V+4H/B[3$?7Y p hOd@oZe qL?QQ@2XO^S>PqPNecPtl@ap2#'pfIu'pbkN^p/0ldv5 B-f4p&@p>/^@v@z%|LpJ]PD3dHPpYQRpvHP$I0c h`6c@y QGB5 :4AFU DaPW`NR1B_9.HQ4V`1Q0LU3`52O9O M[`Sp].?P:X VPS@C20K5[p}^`POFl,m\@a$Us 0`aZOheHA/0NO$@Va5`NpZ p`ZQ( 18cI%PE**PX z^X ;7 p2+I3@[p!KRbf0EW}cP1,q!@_d,\D]R8=a?n _6pE;60/x'* x/O`00b`M6nZ0S5$p}Ak)>)5Y[s Z}5p=5RV `fvbІFP @0]b`7\U)o +3`,I =]M.VpN48?S5?KVJNBM3D07&=)v pgZ/ph\eZYT*P[hx>`aЊ AN@WY: ,?Cap>p+X<ld:!)1K(0`s%eASPyC@qu{)ZMOPt/{TPZf_ OeD0S>_n*=\ [\PC^LaV-ga;`x'#;hD0ЅTRPiKP?b uw(`uDc_ f0Wzt@f z|gI`7)`p(l@Mi>[bE68 `cB, 2lTPJ$:pSe5;N s'"QpD-o/3E0EJ<`R\7|WG"I' Y!p<G>zKtib4X o#+nP0pa6apd]DRbD|kNf;O`4%[/!_V@jeZp1Yr1@h ^o`5D4 Dy4rN)7epGGN6S'@@) 4  p*\6Vzh0\ XC>lFc@l0Yi8x N75`JD@ M[ -v2@ses) pHA7w,`F Tgp^8@kc3ZK>W,64SHmfe@dTDP0P(@a!3f<0mMbtG@ 0;Z[? iC`ix$hC`BbVEiM`] "g`GpV]$@u\T\spCp%Cj8j.)`Otr^GUtQ 2P9a}5[?GC`\.0]h61 w`Opp1@,' Wp90,7iJ@CtGgS0|7PZJ"P5*^,<*glVl1d0vp-gKLPI~FyR<WpFDp}9a@*n(@(g@Go;`@c= j#`M`T6`a@1d#{$7GWcI7 4Q`,x8`8Wr|V0hH1` U,W@2SJ1arA0B_`;\m>p@yPQ/0Y9IP;F =N[P<2 p`Pg]5SpR:1:P.X+&Xl q ~ 3fh`V3JBD@:+I9L/k@BHka|aYN J"p.0M-01PNV|UI0HOD@ $p|M*#]DX*`Z @B O &KPW1 SvY<KBp9T;1G;+XqT=r@3w+/d'B0i=p* 0 6s0j.p,A$,=W]0+Z.0^e}R _ ^(la@JO72c0 g`|=F|S0 0p!Ld}PAPG67T3 YL?40k6]@e*p&P`?39Q*PaW_w;pP01. fv%h1U-c)n_4#=  KN: }3<BLd^p?(PIbpk5,y:L@|Q H>*p+h@}ST@9t<icp`g0A@y {;RgI5>ZrCYK j*cPMEo5jL0?.b#00/LpcV[EZE9E\w[ @IH@r`gPX10P@P@.~ 1p{?0WCRMPj  8XO;cH`>M@Z9W4 dz,P`n2`eeG4XD`@?p;}2"Ibc`/A@c<`6PRe?qIzI;OM^"FqT c\+J@6PBN+hPw,mddb9i=<-HE70eYRЉ50Cz F hcGv9;C&0Us3MQ 64 06.-c&GL=@<A`x]0}f03E}6`}bRЄyr\7]pR1eЍ`XYf`-d%_`=cG?[|2n0P=.V@. X=- Em(Ig3P/(4v@V^V'cFNMj&#p~lhwQU~ ?0IO< ЊQ&sRVP}F6WUr>pl <}RpNkQ`w*=iH^0`Ѓ\  AH]]YW Je0!xGu$<$z5P yRU0.6 H 0yK/!V2pLTXPm\Ђ: `p6Z5S@Pxk0g0Q5PB_=k4 { XPSAE5 <t4EIO8P @,~g? XTCpT!P`tMuVP|?b@HTp_ i -p2 `v)EJq3@AJ%1[ B>K"P_90nT`kT9l\[Ќ:2{D-8RcV0Ff6^HApuz&pU@\#@`bE O9= ] PSX%-3u#X.1`!z*ttL`yM`3Y PBP&D@Lm]_Wp3 p `T3NApU\@87vN``c`! 4.M. a\hOc \~Co1o*1|*+ G3@o LT={3ZHCb%`b=Sj n?9C`s%P3lD}f+DTL/NQ6&$P-LT^<(v ,,,<CA0ct_0X4`V#Y03@?d{r10sd\`HV1U9CrЁ?6@7`L TQJP~ !k@E8=@=S? BR@+"`8j=PU^@DA0_GI08/Jr:3?\gA^p J > %BC :D`D*30W`AV` po9FP4`*# QhwPKPF PJ)pQ8R!E PuZ  # 7E `@W`UP] 5``?3P@t#0(Sp0j 68UTEHnap\+p@:=2@L )XJ`=e<ab P9DBj4pi,};|I_c/(0GgrFR_@T\aI}FZdqwMb+~~! 6I7 xVUP.Kvy<KЏkwPrHeUW0&Pby_ aL" 0'>`0<m&2`t:0KpjS0=b!mg)d+_+ZJ%zNi8b&;]1bV`hP [ ,0@Pvn8h $ ]@QDP F)T8N(0ZTU}9CM(!9+R e+@i_`{ON@ ^J/V\J<KCb0+ptAJU#"u?px';\ay-(nKP5];p-#LgW.P]AES8i'pRX)` @].  *`@{SpUpn1V0|PCgpv'{X@+& FD]2yXo\Xf^b/3FN.f@Oa*P3m<p5`W~e2F9Z?@-9@~%Bp/(2\K/<o"@`Ad;_@b-e%N!~_0zS0wUjWJ7xJPMaq OB N*920o Pje/R G`d9 #{X?A;ЎCpC8 2Da R<kRGD9[p5&, ?D?:\kE5 enf pm#P^I]I@z`0uz[cL0fy pd1Q3P26g >/iQ-0xd-P,H\>`P `C10VY/7Yz"0ad DY lYb0/JHx`~VO@M'p?Kuo@pyAC}@`\`N'&@)5CP,802(a 4il"Jt`mRpY^\/`<R\ Ki`g7>Q`@X8trF}Hprh/--`$ ^ t?fe@4?Z=sZ}EpDeJps0PUЈ#bYj7PO*Uq] rU tQ>[O *=YcDgF+-XAY`#ORPnMv'uc+f/<HjC`rI]]Hw)6!sG3O;1pE:gx+|1VDS0 `zBw":VpA `j8@m @\$ 7hm#VVT* /Ei4,Y:y[p8{8ZqTUhPABeAP85pM MPPh, PZ_`K\Pl&40#0r%JTF ]u0.sMbfG Gj+0t DFE},8=h|yN@F~d@Y['V `2%P<_H1 C*.b`:P`BQ@>CMpfP0^K@NMHO0>_]Ii @=L6-0D7]wQcfPs@@FZza0T<PCy R*PKB ayRАk T Q( <MP N?tF>.)#tPg@=ABA:*<(]0D!@nL=OcE\I[ fqNk#QA`Ej VlX:f`_62@ ,p L)9P'P@ @x-`9t(`q^pfF`o"WE`l.%`Iap_J-;]8F3hS>`>?pwW8@5IpXm` 3T-_CJ:dbrmx#QdFfrOZM@6&x%hh?,5Pf8 H90RDX(gfK0F -%gfG,Woc`QR0n]PdBD<% S\J`apb=T0~ePH: n[@s8 PTNp;7oLTcuW@gx6`^.K#1?M[iw  " / = K Y g t             . < J W e s             ( 6 D R ` n |            # 1 ? P _ m {            $ 2 A V d r ~          )7DSan|#1?M[hv '4BP^lz"0>LYgu )7ESao} &4BP^ly+8FTbp~"/=JWes '4BP]ky+9GUcq~*8ESao}$2CQ^lz$2@O]ky" !/=Ucq$2@N\jw3AM`n} %3BP_m{"0>KWes  , : H V d s          !!!"!0!>!L!\!j!x!!!!!!!!""!"/"D"R"f"t""""""""""## #.#<#H#V#d#r##########$$ $-$;$I$W$e$r$$$$$$$$$$$ %%(%6%D%R%^%m%z%%%%%%%%%%&&!&/&=&K&Y&g&t&&&&&&&&&&'''+'9'G'U'c's''''''''''' (('(6(D(R(`(n(|(((((((((( ))()6)D)R)a)o)|))))))))))**!*/*=*N*[*i*v**********+++,+:+H+V+d+r+++++++++++, ,.,<,J,X,f,t,,,,,,,,,,- --(-6-P-^-j-x---------- ..#.:.H.V.d.r..........//*/8/F/T/b/n/|//////////00"000>0L0Z0h0v000000000 11(151B1P1^1l1z111111111122"2/2=2K2\2j2x222222222233$313A3O3]3k3y333333333344 404>4L4`4n4{444444444455#515?5M5[5i5w5555555555666+696G6V6d6r6666666666677$7;7I7V7d7r77777777777 88&848V8d8r8888888888899$929@9N9\9j9w9999999999:::,:::H:U:d:r::::::::::: ;;%;3;A;N;[;i;w;;;;;;;;;;; <<)<7<D<R<`<n<|<<<<<<<<<<==$=2=@=N=\=j=}==========>>!>/>=>K>Y>g>u>>>>>>>>>>> ??(?8?F?T?a?o?|??????????@@"@0@>@M@[@i@w@@@@@@@@@@AAA.APLPZPhPvPPPPPPPPPPQ'Q:QHQUQcQqQQQQQQQQQQQ RR%R2R@RNR\RjRwRRRRRRRRRRS"S0S>SLSaSoS}SSSSSSSSSSTT#T1T>TLTZThTyTT0zTTTTTTTTUU$U2U@UNU[UjUxUUUUUUUUUUVVV+V7VEVSVaVoV}VVVVVVVVVWWW*W8WEWSWaWoW}WWWWWWWWWXX X.X]K]Y]g]u]]]]]]]]]]] ^^ 5^B^P^^^l^z^^^^^^^^^^__'_5_C_Q_`_n_|__________ ``/`=`K`Y`g`t``````````aa"a0a>aLaZahavaaaaaaaaaabbb+b9bGbUbcbpb~bbbbbbbbbbcc$c2c@cNc\cicwcccccccccc ddd+d9dGdTdbdpd~dddddddd d ee(e6eDeRe`eme{eeeeeeeeeeffAfNf\fjfwffffffffffgg"g0g>gLgZghgvggggggggghhh-h;hIhWhfhthhhhhhh_zpropackmodule.cf2py_setup_timingf2py_timing_deff2py_init_timingPy_XDECREFint_from_pyobj_zpropack_error_active_cb_zaprod_in___user__routines_zpropack_modulestring_from_pyobj.constprop.0double_from_pyobj.part.0create_cb_arglist.constprop.0create_cb_arglist.constprop.0.coldcapi_kwlist.1capi_kwlist.0moduledeff2py_routine_defsf2py_module_methodsdoc_f2py_rout__zpropack_zlansvddoc_f2py_rout__zpropack_zlansvd_irlzgemm_ovwr.Fzdgemm1_.coldcrtstuff.cderegister_tm_clones__do_global_dtors_auxcompleted.0__do_global_dtors_aux_fini_array_entryframe_dummy__frame_dummy_init_array_entry_zpropack-f2pywrappers.fzlansvd.Fzlansvd_irl.Fzritzvec.Fdblasext.Fdbsvd.Fdgemm_ovwr.Fzblasext.Fzgetu0.Fzlanbpro.Fzreorth.Fzsafescal.Fsfmin.2info.0i.1zmgs.risc.Fzzdotc.fwrap_dummy_g77_abi.cblas_lapack_wrappers.cfortranobject.cset_datasave_defformat_defget_elsizecheck_and_fix_dimensionsfortran_callfortran_getattrfortran_deallocfortran_repr__func__.2__func__.1fortran_setattr__FRAME_END__ndarray_from_pyobjpzdotu__npy_f2py_ARRAY_APIF2PyCapsule_FromVoidPtrpzdaxpby_pdset_pdcopy_szero_zlansvd_zreorth___GNU_EH_FRAME_HDRPyFortranObject_NewAsAttrpzscal_drefinebounds_wzdotu_cladivwrp_pddot_F2PySwapThreadLocalCallbackPtrF2PyCapsule_Checkdcompute_int_zdgemm_ovwr_left_wzladiv_F2PyCapsule_AsVoidPtr__dso_handlezdgemmblk_zlansvd_irl_cdotuwrp_zzdotc_zdgemm1_pdnrm2__finipdaxty_pzcopy_copy_ND_arrayzdgemm_pzaxty_f2py_size_impl_npy_f2py_ARRAY_APIPyArray_RUNTIME_VERSIONzdotuwrp_pizero_zcgs_pzzero_F2PyDict_SetItemStringpzdotc_wcladiv_zritzvec_dupdate_mu__initzlanbpro__DYNAMIC__TMC_END__PyFortranObject_Newpzset_PyFortran_Typedbdqr_dupdate_nu_f2py_describezgetu0_pzaxpy_pzdscal_dset_mu_zladivwrp_zdotcwrp_bbcom_wcdotu_f2pyinittiming_pzmgs_pzaxpby_pdaxpby_pdaxpy_zsafescal_cdotcwrp_F2PyGetThreadLocalCallbackPtrwzdotc__GLOBAL_OFFSET_TABLE_pdznrm2_wcdotc_pdzero_pzdaxty_dbsvdstep_pzdaxpy_dgemm_ovwr_pdscal_scipy_cgghrd_scipy_dsymm_scipy_cdotu_scipy_dlaed7_scipy_zbdsqr_scipy_cheevd_scipy_ssygs2_scipy_ztpqrt_scipy_zlar2v_scipy_slatps_scipy_cgecon_scipy_csytri2x_scipy_dlasq6_scipy_dstegr_PyTuple_SetItemscipy_zgerqf_scipy_chetri_scipy_sposv_scipy_dormqr_scipy_zlaed0_scipy_zpbrfs_scipy_zhbevd_scipy_dorgtr_scipy_zgtsv_scipy_cpoequ_scipy_chetrf_scipy_cungbr_scipy_sgesvj_scipy_drscl_scipy_ctftri_scipy_slatrd_scipy_ssygvd_scipy_dggbak_scipy_cppsvx_scipy_zhegvd_PyExc_ValueErrorscipy_dgeqrfp_scipy_ztrtri_scipy_zpotri_scipy_dstevx_scipy_slarzt_scipy_ctgex2_scipy_cgelss_scipy_dgetrs_scipy_clarf_scipy_dlaqps_scipy_dlarrc_scipy_zlags2_scipy_zlaqr4_scipy_stbcon_scipy_cpbtrs_scipy_zlansp_scipy_zgghrd_scipy_dgelsd_scipy_sggbal_scipy_zlanht_scipy_zlaev2_scipy_cstedc_scipy_cggevx_scipy_ztpsv_scipy_ztbrfs_scipy_zppsvx_scipy_claqge_scipy_slasdq_scipy_slarfg_scipy_cgbbrd_scipy_dspgv_scipy_sptts2_scipy_zhemv_scipy_dsyevd_scipy_dpbrfs_scipy_cgbsvx_scipy_cung2l_scipy_dpptrs_scipy_slacn2_scipy_zgbbrd_scipy_dgbtrf_scipy_zhetrs2_scipy_ctrttf_scipy_slatbs_PyLong_AsVoidPtrscipy_sgeqrt2_scipy_sorgql_scipy_dtbcon_scipy_dsyequb_scipy_cunmql_scipy_slagtf_scipy_dlar1v_scipy_zhbgst_scipy_ilaver_scipy_dtgsna_scipy_spstf2_scipy_dorglq_scipy_claesy_scipy_slags2_scipy_dgeqr2_scipy_zlarzt_scipy_dlarfgp_sprintf@@GLIBC_2.2.5scipy_claswp_scipy_dlasdt_scipy_zspr_scipy_dlaln2_scipy_zdotc_scipy_slasd6_scipy_ctbmv_scipy_dgbmv_scipy_csscal_scipy_chpev_scipy_zunmlq_scipy_dtptrs_scipy_dlaqtr_PyDict_GetItemStringscipy_ssyevx_scipy_sgbequ_scipy_strmm_scipy_zgeqrt2_scipy_zhesvx_scipy_caxpy_scipy_slarfb_scipy_ssytrd_scipy_claqhb_scipy_dlalsd_scipy_cgemqrt_scipy_sgbtrs_scipy_stpmv_scipy_chpmv_scipy_dlagtm_scipy_zlabrd_scipy_dorm2r_scipy_zungbr_scipy_slamrg_scipy_cgetri_scipy_dpbequ_scipy_zpftrf_scipy_claqr5_scipy_zdrot_scipy_ctptrs_scipy_zlaqps_scipy_ztrsna_scipy_dgerfs_scipy_sgesc2_scipy_dsbev_scipy_zlagtm_scipy_sptsvx_scipy_zsyr_scipy_zherk_scipy_dpbtf2_scipy_cungl2_scipy_dstevr_scipy_dgesv_scipy_zgges_scipy_zposvx_scipy_zlaesy_scipy_slag2d_scipy_zlaein_scipy_slargv_scipy_zpptrs_scipy_ssprfs_scipy_chbgv_scipy_slantb_scipy_dormbr_scipy_cgtts2_scipy_dtgsen_scipy_csytf2_scipy_cgeevx_scipy_dgeqrt2_scipy_slaqsy_scipy_dsytf2_scipy_ctrti2_scipy_dlatrz_scipy_clar2v_scipy_zspsv_scipy_sgetf2_scipy_strtrs_scipy_ctpmqrt_scipy_ssptri_scipy_slarf_scipy_cgetrf_scipy_claqr2_scipy_zsptrf_scipy_cunmtr_scipy_dgglse_PyTuple_Typescipy_sgeesx_scipy_sgemv_scipy_stgevc_scipy_stpttr_scipy_ztrtrs_scipy_zpotrs_scipy_zungr2_scipy_zggevx_scipy_clasyf_scipy_zlar1v_scipy_ctgsja_scipy_chpevx_scipy_spprfs_scipy_dlantb_scipy_clacpy_scipy_dlansb_scipy_zgeqrfp_scipy_cgesvx_scipy_strtri_scipy_cung2r_scipy_dopmtr_scipy_strsna_scipy_dlatps_scipy_dlapy3_scipy_dlarrd_scipy_sgtsvx_scipy_shseqr_scipy_sgtsv_scipy_scsum1_scipy_dgelss_scipy_csycon_scipy_zher_scipy_ztbtrs_scipy_dposvx_scipy_zunmtr_scipy_dlaed0_scipy_zunm2l_scipy_saxpy_PyObject_Strscipy_slasdt_scipy_dgtsvx_scipy_dggev_scipy_chpevd_scipy_claqhp_scipy_dpteqr_scipy_ssytri_scipy_stgexc_scipy_zlanhs_scipy_dsbtrd_scipy_dgttrf_scipy_clabrd_scipy_zgelqf_PyObject_GetAttrStringscipy_dcabs1_PyCapsule_Typescipy_dtpttr_scipy_ssytrf_scipy_zggbal_scipy_srscl_scipy_ctptri_scipy_ztrmv_scipy_clasr_scipy_csptrf_scipy_dtgsyl_scipy_dlapll_scipy_clarfb_scipy_dstemr_scipy_ztzrzf_scipy_dsysv_scipy_clahr2_scipy_dgetf2_scipy_slarrv_scipy_cgeqlf_scipy_slagts_scipy_lsame_scipy_isamax_scipy_sgecon_scipy_ssygv_scipy_sgglse_scipy_slarrb_scipy_dscal_scipy_csytri_scipy_zgeqrf_scipy_strevc_scipy_slamch_PyMem_Freescipy_cgtcon_scipy_dtrsen_scipy_cporfs_scipy_dsfrk_scipy_dlaed3_scipy_clarzb_scipy_cunml2_scipy_zsycon_scipy_dggqrf_scipy_dorm2l_scipy_dlasdq_scipy_dlasv2_scipy_ztrsyl_scipy_spbtf2_scipy_clapll_scipy_chemm_scipy_zlaqhp_longjmp@@GLIBC_2.2.5scipy_slas2_scipy_sormr2_scipy_slapmr_scipy_clarz_scipy_cgebd2_scipy_dlapmt_scipy_zgemm_scipy_sppsvx_scipy_spbequ_scipy_dsygvx_scipy_zlaqsb_scipy_ccopy_scipy_cpocon_scipy_sormrz_scipy_slaqr4_scipy_zcposv_scipy_strexc_scipy_chetd2_scipy_zlag2c_scipy_sgehrd_scipy_dspsv_scipy_zpprfs_scipy_clascl_scipy_dgelq2_scipy_dtgevc_scipy_dgtts2_scipy_dlaed5_scipy_zpbstf_scipy_cpftrs_PyType_IsSubtypescipy_zlanhb_scipy_zhpr2_scipy_cpttrs_scipy_zhetd2_scipy_zlals0_scipy_dlantp_scipy_cgeqr2_scipy_dsposv_scipy_stpqrt_scipy_dlarrr_scipy_cgges_scipy_zptrfs_PyModule_GetDictscipy_ctfttp_scipy_clantb_scipy_drotmg_scipy_slarre_scipy_ilaclr_scipy_zgbequb_scipy_spptrs_scipy_sgsvj1_scipy_zunm2r_scipy_dgeqr2p_scipy_idamax_scipy_cggev_scipy_dtgexc___cxa_finalize@@GLIBC_2.2.5scipy_dlaqsb_scipy_stfttr_scipy_chla_transtype_scipy_cheevr_strlen@@GLIBC_2.2.5scipy_clarfx_scipy_dlasyf_PyUnicode_AsASCIIStringscipy_ssyevd_scipy_sggbak_scipy_sorml2_scipy_zgeqrt3_scipy_dgeev_scipy_checon_scipy_chbev_scipy_zgehd2_scipy_dlasy2_scipy_zunmrz_scipy_sggev_scipy_sspmv_scipy_dptsvx_scipy_zgetc2_scipy_zhseqr_scipy_dpftri_scipy_slahqr_scipy_zlatbs_scipy_dpftrf_scipy_dlasq4_scipy_chpsv_scipy_stpsv_scipy_clarfgp_scipy_cpbstf_scipy_slals0_scipy_slaqr5_scipy_dlaqr3_scipy_dgeqrt_scipy_stgsen_scipy_slarz_scipy_cgeql2_scipy_dsprfs__PyArg_ParseTupleAndKeywords_SizeTscipy_dsyr2k_PyTuple_New_Py_FatalErrorFuncscipy_spbtrf_scipy_sgeqrfp_scipy_ssbevx_scipy_dtrti2_scipy_sger_scipy_clangt_scipy_zlange_scipy_cpstrf_scipy_ztrttf_scipy_dsytri2x_scipy_ztrrfs_scipy_zporfs_scipy_zlacrm_scipy_sstevr_scipy_slasyf_scipy_zhetri2_scipy_sgelsd_scipy_csytrs2_scipy_cgbtrs_scipy_dstedc_scipy_slasr_scipy_dhgeqz_scipy_dlaqge_scipy_ztgsyl_scipy_dlagtf_scipy_dorgbr_scipy_zpftri_scipy_cgeru_PyErr_NoMemoryscipy_dgeqlf_scipy_zhpevd_scipy_cgetf2_scipy_slaqr2_scipy_cgttrf_scipy_cspmv_scipy_cspr_scipy_zgetrs_scipy_sgetrf_scipy_dlagv2_scipy_zhpsv_scipy_chemv_scipy_dsptrf_scipy_dgerq2__Py_NoneStructscipy_srotg_scipy_zhpev_scipy_dpftrs_scipy_cgesv_scipy_dlaeda_PyExc_AttributeErrorscipy_ztgsja_scipy_sspgvd_scipy_zlalsa_scipy_dtrrfs_scipy_dgehd2_scipy_cgeqr2p_scipy_zstein_strncpy@@GLIBC_2.2.5scipy_zcopy_scipy_dptcon_scipy_stprfb_PyNumber_Floatscipy_dlarft_scipy_zgesv_scipy_ctrevc_scipy_dlartgs_scipy_slansp_scipy_dlasd3_scipy_chegst_scipy_spocon_scipy_slarrk_scipy_csyswapr_scipy_slarnv_scipy_dgbtf2_scipy_cgelsd_scipy_dsytrd_scipy_zgeqr2p__gfortran_transfer_integer_write@@GFORTRAN_8scipy_dlag2_scipy_zsyrk_scipy_dsygvd_scipy_clacp2_scipy_sgges_scipy_zptts2_scipy_zpttrs_PyUnicode_FromFormatscipy_zstedc_memset@@GLIBC_2.2.5scipy_dgbbrd_scipy_dtpmqrt_scipy_dlatbs_scipy_chegvx_scipy_cunmlq_scipy_dsdot_PyExc_MemoryErrorscipy_cunglq_scipy_zhetrs_scipy_slaqsp_scipy_dsytrs_scipy_zung2l_scipy_strsen_scipy_zgerfs_scipy_clalsa_PyType_Typescipy_cgelq2_scipy_dtbrfs_scipy_dgesc2_scipy_dlamch_scipy_chegvd_scipy_dsterf_scipy_xerbla_array_scipy_dgejsv_scipy_zlantp_scipy_scasum_scipy_zunmql_scipy_sormbr_scipy_spteqr_scipy_zgbtrf_scipy_zggglm_scipy_ctrsm_scipy_claqsy_scipy_dbdsqr_scipy_dlasd6_scipy_spttrs_scipy_dlarf_scipy_slabrd_scipy_cunm2l_scipy_dlarrk_scipy_dstein_scipy_cgetc2_scipy_cgerqf_scipy_stptrs_scipy_chptrs_scipy_cunmqr_scipy_cher2_scipy_sgttrs_scipy_csyconv_scipy_cpotrf_scipy_cungtr_scipy_ztptrs_scipy_zpftrs_scipy_dger_scipy_ztpmqrt_scipy_zhpmv_scipy_stpttf_scipy_cptrfs_scipy_cstein_scipy_dtrttf_scipy_sgelsy_scipy_zgbcon_scipy_dgghrd_PyTuple_Sizescipy_zpoequ_scipy_zlaqhb_scipy_dgeequ_scipy_dtrtrs_scipy_claset_scipy_chpgvd_scipy_dlarrv_scipy_spoequ_scipy_slar2v_scipy_zhbmv_scipy_dlartv_scipy_slacon_scipy_ssytri2_scipy_clalsd_scipy_cpteqr_scipy_dtbtrs_scipy_dlabad__PyObject_Newscipy_zgttrs_scipy_chpgvx_scipy_ctpqrt_scipy_stzrzf_scipy_zlassq_scipy_cpotri_PyNumber_Longscipy_zhgeqz_scipy_dlaset_scipy_zsytri2x_scipy_dlaexc_scipy_zlacrt_scipy_dormhr_scipy_clarft_scipy_sbdsqr_scipy_dtrttp_scipy_sptsv_scipy_chgeqz_scipy_dlassq_scipy_dgsvj1_scipy_sscal_scipy_dpbtrf_scipy_slaqsb_scipy_slartgs_scipy_ssptrd_scipy_zpptri_scipy_zlaqp2_scipy_sgbrfs_scipy_sorg2l_scipy_drot_PyFunction_Typescipy_clarzt_PyErr_Formatscipy_cgbtf2_scipy_cungrq_scipy_ctpcon_scipy_zlaqhe_PyObject_CallObjectscipy_slasv2_scipy_dpocon_scipy_stbsv_scipy_dhsein_scipy_sgeqlf_scipy_dlahr2_scipy_cgeqrt3_scipy_sgebal_scipy_zspmv_scipy_dpotf2_scipy_slarzb_scipy_clapmr_scipy_cgehrd_scipy_slascl_scipy_sstebz_scipy_ctrcon_scipy_ztrmm_scipy_zungtr_scipy_zptsv_scipy_dpptrf_scipy_dsymv_scipy_ssygst_scipy_zstemr_PyFloat_AsDoublescipy_dtbmv_scipy_dlaed8_scipy_ssbmv_scipy_cgbmv_scipy_crotg_scipy_clacrt_scipy_ztftri_scipy_spptri_scipy_zggesx_scipy_dppsv_scipy_dgebal_scipy_ztpttf_scipy_dtpqrt2_scipy_ztgevc_scipy_dsytri2_scipy_zheequb_scipy_cunmbr_scipy_ztpcon_scipy_zlauu2_scipy_dgbrfs_scipy_spotrs_scipy_zgbequ_scipy_ctpmv_scipy_dlasd7_scipy_sppsv_scipy_dpbstf_scipy_shsein_scipy_dppequ__Py_Deallocscipy_slaebz_PyCFunction_Type_Py_BuildValue_SizeTscipy_clauu2_scipy_claqp2_scipy_dormtr_scipy_zlaed7_scipy_zspcon_scipy_claed8_scipy_slarrc_scipy_ztrexc_scipy_zsteqr_scipy_zgesdd_scipy_ssytri2x_scipy_ctbtrs_scipy_slarft_scipy_sgemm_scipy_sorglq_scipy_csrot_scipy_dlatdf_scipy_srotm_scipy_sgees_scipy_slasy2_scipy_sbbcsd_PyExc_ModuleNotFoundErrorscipy_sggglm_scipy_chpr_scipy_sggevx_PyExc_OverflowErrorscipy_slaset_scipy_cptts2_scipy_sdisna_PyMem_Mallocscipy_cstemr_scipy_chbtrd_scipy_ssptrf_scipy_zgtrfs_scipy_zhpsvx_scipy_cgeqrt_scipy_zrot_PyErr_ExceptionMatchesscipy_zgesvx_scipy_sgeqr2_scipy_zheevx_scipy_zptsvx_scipy_stgsy2_scipy_spoequb_scipy_dgeevx_scipy_ctrsen_scipy_dgeequb_scipy_dlasd2_scipy_iladlc_scipy_sgeqr2p_scipy_dspgvd_memcpy@@GLIBC_2.14PyImport_ImportModulescipy_sorgtr_scipy_ssytf2_scipy_zhbgvd_scipy_slantp_scipy_sgttrf_scipy_ddot_scipy_zbbcsd_scipy_dgges_scipy_clacon_scipy_zlapmr_scipy_dorml2_scipy_zpbtrs_scipy_zlacpy_scipy_ztbsv_scipy_strti2_scipy_chsein_scipy_slapy2_scipy_zlanhp_scipy_dormql_scipy_spbtrs_scipy_zlatrd_scipy_zlantb_scipy_slaruv_scipy_dlasrt_scipy_clahqr_PyUnicode_FromStringscipy_zsyequb__gfortran_st_write@@GFORTRAN_8scipy_dlaev2_scipy_dtrsyl_scipy_sspev_scipy_dtprfs_scipy_zgelsy_scipy_sgtrfs_scipy_zhptrs_scipy_strttp_scipy_zhbev_scipy_csymv_scipy_cppcon_scipy_dlarrj_scipy_dlaneg_scipy_spbsvx_scipy_sgghrd_scipy_sstein_scipy_dlasd5_scipy_sgebak_scipy_dlascl_scipy_cpoequb_scipy_zsprfs_scipy_dlaqgb_scipy_csyrk_scipy_dlaed2_scipy_chbgvx_scipy_zpbequ_scipy_dsbgv_scipy_disnan_scipy_dgbtrs_PySequence_Checkscipy_scnrm2_scipy_chprfs_scipy_stprfs_scipy_zpoequb_scipy_zlartg_scipy_zhpgvd_scipy_dgelsy_scipy_slasd2_scipy_sgejsv_scipy_ztprfs_scipy_ssyr2k_pow@@GLIBC_2.2.5scipy_dgetrf_scipy_sgbcon_scipy_sgbmv_scipy_dsyswapr_scipy_dladiv_scipy_zungl2_scipy_ztbcon_scipy_clatbs_scipy_zlarrv_scipy_ssysvx_scipy_csytri2_scipy_dtpsv_scipy_clartg_scipy_ssbtrd_scipy_zunmr2_scipy_zaxpy_scipy_slasd3_scipy_dpprfs_scipy_slaeda_scipy_dorgl2_scipy_zhetri2x_scipy_dlapy2_scipy_zheevr_strcpy@@GLIBC_2.2.5scipy_ztgsy2_scipy_csysv_scipy_slasq2_scipy_sormtr_scipy_slaed2_scipy_sgbequb_scipy_slangb_scipy_dtfttp_scipy_dsteqr_scipy_strsyl_scipy_dlasd8_scipy_dswap_scipy_shgeqz_scipy_dsptrs_scipy_dormrz_scipy_dbbcsd_scipy_chseqr_scipy_claqhe_scipy_dggevx_scipy_slagv2_scipy_claic1_scipy_sgeqrt_scipy_zlaset_scipy_dgesdd_scipy_dpotrs_scipy_cppequ_scipy_cherfs_scipy_zhprfs_scipy_dlangb_scipy_ssbevd_scipy_spftri_scipy_zgelq2_PyErr_Clearscipy_zggbak_scipy_cgesdd_scipy_slartgp_scipy_dlasq1_scipy_zlarnv_scipy_dstev_scipy_sgeequ_scipy_cpftrf_scipy_cgbequ_scipy_dlansf_scipy_sspr_scipy_cladiv_scipy_dlaqr4_scipy_zdscal_scipy_ctrmm_scipy_dlaein_scipy_dlag2s_scipy_clantp_PyObject_HasAttrStringscipy_sptrfs_scipy_zgerc_scipy_zgecon_scipy_zlacon_scipy_zlasr_scipy_zppsv_scipy_sstevx_scipy_dsptrd_scipy_sspsv_scipy_slasd8_scipy_slarfgp_scipy_sgeevx_scipy_cpotf2_scipy_zpptrf_scipy_ztgsen_scipy_ctrsna_scipy_claqsp_scipy_clals0__gfortran_stop_string@@GFORTRAN_8scipy_ztgexc_scipy_slahr2_scipy_cggqrf_scipy_ctgevc_scipy_strsm_scipy_spstrf_scipy_zlarfgp_scipy_slange_scipy_zhpr_scipy_ssyr2_scipy_ssytd2_scipy_strmv_scipy_zgeqrt_scipy_cptcon_scipy_dlauum_scipy_zpstf2_scipy_chbevx_scipy_zlartv_scipy_slaqr3_scipy_slaed8_scipy_cherk_scipy_dtrexc_scipy_cunmr2_scipy_cpttrf_scipy_zlarz_scipy_csprfs_scipy_dlals0_scipy_dlanhs_scipy_slarrj_scipy_zhetf2_scipy_dlacon_scipy_cbdsqr_scipy_ztrti2_scipy_dlaqr1_scipy_dsytd2_scipy_zggrqf_scipy_zgeev_scipy_ssyconv_scipy_zhegvx_scipy_cggbal_scipy_dspevd_scipy_zgbmv_scipy_zsysv_scipy_dsbmv_scipy_zsyr2k_scipy_slarrf_scipy_zgttrf_scipy_srotmg_scipy_stgsja_scipy_sgerq2_scipy_slangt_scipy_ztprfb_scipy_ieeeck_scipy_zhecon_scipy_chbmv_scipy_stbmv_scipy_dtfttr_scipy_clargv_scipy_zgebak_scipy_iladlr_scipy_zlahr2_scipy_sgsvj0_scipy_dsptri_scipy_dlaed6_scipy_zhpevx_scipy_ssyr_scipy_zrotg_scipy_dasum_scipy_slalsd_scipy_dgeesx_scipy_claqr4_scipy_slasda_scipy_daxpy_scipy_dlansp_scipy_slaqr0_scipy_slar1v_scipy_slacpy_scipy_dgecon_scipy_zhetrf_scipy_ctpqrt2_scipy_dlaed9_scipy_cptsv_scipy_dgesvj_scipy_dsysvx_scipy_cpbsv_scipy_zsytri2_scipy_clacgv_scipy_slasq3_scipy_zpstrf_scipy_slaed3_scipy_dtrcon_PyOS_snprintfscipy_sormqr_scipy_dlargv_PyLong_FromVoidPtrPyDict_Newscipy_cpbequ_scipy_sporfs_scipy_slarra_scipy_dlaqr2_scipy_dlauu2_scipy_clahef_scipy_slansf_scipy_dlarzt_scipy_ssteqr_scipy_chesv_scipy_slaqp2_scipy_zpotrf_scipy_dporfs_scipy_slapll_scipy_dpptri_scipy_sopmtr_scipy_clarnv_scipy_clansp_scipy_dsyr2_scipy_chbgst_scipy_sorg2r_PyErr_SetStringscipy_dtgex2_scipy_sorcsd_scipy_dgees_scipy_drotg_scipy_zlarf_scipy_chegv_scipy_spotf2_scipy_cungqr_scipy_cheswapr_scipy_sstevd_scipy_dlamrg_scipy_ctrmv_scipy_dorbdb_scipy_ssysv_scipy_sgesdd_scipy_zswap_scipy_dpoequ_scipy_cpptrs_scipy_slartv_scipy_zhpgst_scipy_dsbgvd_scipy_zunmrq_scipy_sladiv_scipy_cswap_scipy_dspgst_scipy_zpbtrf_scipy_dtptri_scipy_slansy_scipy_dgeqrt3_scipy_ssygvx_scipy_dlasd4_scipy_stftri_scipy_dsbevd_scipy_dgeql2_scipy_cher2k_scipy_ssytrs_scipy_dhseqr_scipy_zsptrs_scipy_sspgv_scipy_cdotc_scipy_spotrf_scipy_zgemv_scipy_ztrttp_scipy_cpptri_free@@GLIBC_2.2.5scipy_zpbtf2_scipy_chetri2_scipy_csyequb_scipy_sgeequb_scipy_sopgtr_scipy_slantr_scipy_cpbtrf_scipy_dsygv_scipy_ilatrans_scipy_csysvx_scipy_ssyrfs_scipy_ilaslr_scipy_zunmbr_scipy_cgglse_scipy_ssbev_scipy_dlanv2_scipy_dpstf2_scipy_dtrmv_scipy_zdrscl_scipy_ctrttp_scipy_dgetri_scipy_ztpmv_scipy_cgebrd_scipy_zgesvd_scipy_dtpcon_scipy_slae2_scipy_sgelqf_scipy_slaic1_scipy_ssyevr_scipy_cspsvx_PyCapsule_Newscipy_zgglse_scipy_dsytri_scipy_zhetrd_scipy_cpftri_scipy_sormlq_scipy_cposv_scipy_dgesvd_scipy_zhegv_scipy_dlarfx_scipy_clartv_scipy_slatrs_scipy_slasq1_scipy_cpptrf_scipy_sorbdb_scipy_slaed1_scipy_icmax1_scipy_dlantr_scipy_dormr3_scipy_dgetc2_scipy_zlargv_scipy_zunbdb_scipy_dtgsy2_scipy_zgeevx_scipy_dgels_scipy_cgesc2_scipy_dgtrfs_scipy_zsytrf_scipy_zsytrs2_scipy_zsyconv_scipy_dcopy_scipy_chesvx_scipy_slatdf_scipy_dgeqp3_scipy_stfttp_scipy_sbdsdc_scipy_zgebal_scipy_sgelss_scipy_zheev_PyThreadState_GetDictscipy_zlansy_scipy_chbevd_scipy_cunmrq_scipy_dsytrs2_scipy_zgeqp3_scipy_cuncsd_scipy_zlauum_scipy_chptrd_scipy_cungql_scipy_cgbtrf_scipy_slasq4_scipy_dpbsvx_scipy_cgtrfs_scipy_dsbgvx_scipy_zgels_scipy_slaqge_scipy_slaed4_scipy_zposv_scipy_ztrsv_scipy_cscal_scipy_sorgrq_scipy_ctpsv_scipy_zgebd2_PyLong_AsLongAndOverflowscipy_sgerfs_scipy_zgeqlf_PyCapsule_GetPointerscipy_claed0_scipy_stgex2_PyExc_RuntimeErrorscipy_clags2_scipy_dgtcon_scipy_zlarcm_scipy_dspevx_scipy_slasd5_scipy_sgbtf2_scipy_dpstrf_scipy_dgehrd_scipy_claed7_malloc@@GLIBC_2.2.5PySequence_Fastscipy_zggqrf_scipy_zsyrfs_scipy_dlatrd_scipy_zgbtrs_scipy_zhbgvx_scipy_dggrqf_scipy_clapmt_scipy_ctgsyl_scipy_dlasda_scipy_zpteqr_scipy_ssbgvx_scipy_sormql_scipy_clansy_scipy_cher_stderr@@GLIBC_2.2.5scipy_ztpttr_scipy_ssyswapr_scipy_zlarfg_scipy_zpbsvx_scipy_ddisna_scipy_zlansb_scipy_dtrsv_scipy_dsyevx_scipy_slassq_scipy_cpbcon_scipy_slaein_scipy_cungr2_scipy_sormhr_scipy_dspsvx_scipy_dstebz_scipy_sggesx_scipy_slaed7_scipy_chegs2_scipy_zungqr_scipy_cggglm_scipy_ctrsyl_scipy_cgetrs_scipy_stptri_scipy_chptri_scipy_dorghr_scipy_dptrfs_scipy_sgebrd_scipy_cgerq2_scipy_dspev_scipy_zgesc2_scipy_clantr_scipy_ssbgvd_scipy_zunmr3_scipy_slasd0_scipy_dsyrk_scipy_dlarrb_scipy_cposvx_scipy_dlaruv_scipy_ssbgv_scipy_zhfrk_scipy_cpprfs_scipy_dgemm_scipy_dgbsvx_PyObject_Freescipy_chetrs_scipy_ssymv_scipy_dgemv_scipy_sormrq_scipy_spftrf_scipy_dgerqf_scipy_chetri2x_strcmp@@GLIBC_2.2.5scipy_sstegr_PyExc_TypeErrorscipy_csyrfs_scipy_dgebak_scipy_ctbrfs_scipy_dggesx_scipy_zgeqr2_scipy_spptrf_scipy_claqr1_scipy_zuncsd_scipy_zhegst_scipy_slasrt_scipy_slaexc_scipy_ssbgst_scipy_dznrm2_scipy_slagtm_scipy_zhpgvx_scipy_sgeqrf_scipy_zhesv_scipy_zunmhr_scipy_ilazlc_scipy_cgeqp3_scipy_zgtts2_scipy_chptrf_scipy_dspmv_scipy_stfsm_scipy_claqps_PyType_Readyscipy_zgbsv_scipy_clag2z_scipy_dlarre_scipy_dbdsdc_scipy_dtprfb_fprintf@@GLIBC_2.2.5scipy_dtpttf_scipy_cgelsy_scipy_zstegr_scipy_dlaed4_scipy_dspr__setjmp@@GLIBC_2.2.5scipy_dsycon_scipy_dsyr_scipy_dspgvx_scipy_iladiag_scipy_ssptrs_scipy_dpbtrs_scipy_cstegr_scipy_zung2r_scipy_sspevd_scipy_slaln2_scipy_ztpqrt2_scipy_cunbdb_scipy_zsysvx_scipy_cheev_scipy_slaed5_PySequence_GetItemscipy_cpbrfs_scipy_dlaswp_scipy_zhptrf_scipy_ctzrzf_scipy_dsyevr_scipy_ctbcon_scipy_chpgv_scipy_dtfsm_scipy_spbsv_scipy_sgesv_scipy_dlansy_scipy_cunmrz_scipy_slanv2_scipy_cgbcon_scipy_sgemqrt_PyLong_AsSsize_tscipy_cheevx_scipy_dorgqr_scipy_sdot_scipy_cbbcsd_scipy_cgtsv_scipy_zlascl_scipy_ctfttr_scipy_dposv_scipy_slaswp_PySequence_Sizescipy_dpotri_scipy_zunghr_scipy_zdotu_scipy_zggev_scipy_drotm_scipy_clanht_scipy_zungql_scipy_zupgtr_scipy_dpoequb_scipy_sppcon_scipy_dpotrf_scipy_ssytrs2_scipy_csytrs_scipy_zhbtrd_scipy_sgetc2_scipy_zlaqr5_scipy_cpstf2_scipy_sggqrf_scipy_dlatrs_scipy_dggbal_PyLong_FromLongscipy_zlatrs_scipy_dppcon_scipy_dlas2_scipy_zupmtr_scipy_classq__gfortran_st_write_done@@GFORTRAN_8PyErr_NewExceptionscipy_zladiv_scipy_cgels_scipy_sgesvx_scipy_zhbevx_scipy_ilaprec_scipy_chpr2_scipy_dgelqf_scipy_clansb_scipy_zlalsd_scipy_strsv_scipy_cgbequb_scipy_slalsa_scipy_ctgsy2_scipy_sstev_scipy_ssfrk_scipy_dsygst_scipy_dtrsna_scipy_sgeev_scipy_izmax1_scipy_zhetri_scipy_slaed0_scipy_zlaic1_scipy_ssyrk_scipy_dggglm_scipy_ztrsen_scipy_zgetrf_scipy_ctgsna_scipy_dopgtr_scipy_clacrm_scipy_slarrr_scipy_dormr2_scipy_zlacn2__PyDict_GetItemStringWithErrorscipy_clagtm_scipy_sdsdot_scipy_dpttrf_scipy_zlaed8_strnlen@@GLIBC_2.2.5scipy_zgbrfs_scipy_sgelq2_scipy_dlanst_scipy_cgtsvx_scipy_cgehd2_scipy_sstemr_scipy_zsptri_scipy_stbtrs_scipy_clauum_scipy_ztrevc_scipy_zpbsv_scipy_cspsv_scipy_dlalsa_scipy_zlahqr_scipy_cgttrs_scipy_zsymm_scipy_dgeqrf_scipy_sgetrs_scipy_cgeqrf_PyModule_Create2scipy_dlasd0_PyInit__zpropackscipy_zspsvx_scipy_cupmtr_scipy_slanhs_scipy_ilaslc_scipy_dppsvx_scipy_chbgvd_scipy_clangb_scipy_slasd1_scipy_spotri_scipy_chpsvx_scipy_sorgqr_scipy_zlat2c_scipy_ztfttp_scipy_zgees_scipy_stpqrt2_scipy_dsbgst_scipy_dlarz_scipy_zlatps_scipy_zpotf2_scipy_dlasr_scipy_dlaebz_scipy_zlangt_scipy_slaev2_scipy_slaqtr_scipy_zgerq2_scipy_slartg_scipy_dptsv_scipy_sgtcon_scipy_dlasq3_scipy_srot_scipy_chetf2_scipy_dgbequ_scipy_dlacpy_scipy_ctrexc_scipy_zgbsvx_snprintf@@GLIBC_2.2.5scipy_clatrd_scipy_sswap_scipy_zsytri_scipy_csrscl_scipy_zpttrf_scipy_zlanhf_scipy_zgeequ_scipy_zgehrd_scipy_dgbsv_scipy_zgeql2_scipy_dtpmv_scipy_stgsyl_scipy_csymm_scipy_dlarrf_scipy_zlaqsy_scipy_zppcon_scipy_sgetri_PyErr_Occurredscipy_sormr3_scipy_cggesx_scipy_ctfsm_PyObject_GenericGetAttrscipy_dlar2v_scipy_ctprfs_scipy_clatps_scipy_clanhf_scipy_clange_scipy_cgemv_scipy_slaqr1_scipy_cptsvx_scipy_spbrfs_scipy_stpcon_scipy_chpcon_scipy_chfrk_scipy_slasd7_scipy_sorgl2_scipy_zlantr_scipy_clatrs_scipy_dlabrd_scipy_claqsb_scipy_zlatdf_scipy_dgbequb_scipy_zppequ_scipy_zlarzb_scipy_slasq6_scipy_chetrs2_scipy_sasum_scipy_slaed6_scipy_claqgb_scipy_dgttrs_scipy_dlarra_scipy_zunmqr_scipy_zlahef_scipy_dlags2_scipy_dtgsja_scipy_slapmt_scipy_clanhs_scipy_dlaed1_scipy_dgebrd_scipy_dlapmr_scipy_zsytrs_scipy_dzasum_scipy_ztrcon_scipy_zpocon_scipy_ssymm_scipy_dspr2_scipy_sorgr2_scipy_strcon_scipy_dpbsv_scipy_zlaqsp_scipy_zlacgv_scipy_cgees_scipy_cgeesx_scipy_zgtsvx_scipy_dlacn2_scipy_dlaic1___tls_get_addr@@GLIBC_2.3scipy_sgerqf_scipy_dgbcon_scipy_zgeesx_scipy_zsyswapr_scipy_dtrsm_scipy_ctgexc_scipy_cpbtf2_scipy_zgeequb_scipy_clacn2_scipy_zsymv_scipy_slaed9_scipy_clarfg_scipy_cgeequ_scipy_sposvx_scipy_dsyconv_scipy_zgetri_scipy_slasd4_scipy_dlaqr0_scipy_cggrqf_scipy_clar1v_scipy_sgbbrd_scipy_dtpqrt_scipy_sgels_scipy_cppsv_scipy_csptrs_scipy_slanst_scipy_clanhp_scipy_cunmr3_scipy_ctrtrs_scipy_cggbak_scipy_dlarnv_scipy_zhpgv_scipy_zunglq_scipy_spftrs_scipy_slaqgb_scipy_zgtcon_scipy_sgtts2_scipy_dtrevc_scipy_dlarzb_scipy_dorgr2_scipy_dlagts_scipy_cgeequb_scipy_zpbcon_scipy_sgehd2_scipy_zgeru_scipy_strrfs_scipy_zlaqr1_scipy_dsytrf_scipy_dlat2s_scipy_zhbgv_scipy_sorm2r_scipy_dlasd1_scipy_cspcon_PyFloat_Typescipy_cunghr_scipy_cgebak_scipy_dlange_scipy_sgbsvx_scipy_ctrrfs_scipy_crot__ITM_deregisterTMCloneTablescipy_ctbsv_scipy_zptcon_scipy_zlatrz_scipy_claqr3_scipy_ctpttr_scipy_sspgst_scipy_sgeqrt3_scipy_dspcon_scipy_dlasq2_scipy_zhpcon_scipy_zlaqr2_scipy_dlaqr5_scipy_zlarfb_scipy_zlanhe_scipy_cgbrfs_scipy_cgeqrt2_PySequence_Tuplescipy_cpotrs_scipy_dtrtri_scipy_ilazlr_scipy_ssyequb_scipy_zlaqr0_scipy_dorcsd_scipy_cheequb_scipy_dlarfg_scipy_stpmqrt_scipy_chpgst_scipy_zheswapr_scipy_cgeev_scipy_zheevd_scipy_dgebd2_scipy_strttf_scipy_clanhe_PyExc_SystemErrorPyExc_ImportErrorscipy_dlartg_scipy_zlaswp_scipy_dorg2l_scipy_claev2_scipy_zher2_scipy_spttrf_scipy_cpbsvx_scipy_zlacp2_scipy_claqr0_scipy_dgsvj0_PyDict_DelItemStringscipy_zscal_scipy_slaqps_scipy_ztbmv_scipy_zungrq_scipy_dgemqrt_scipy_zhsein_scipy_zherfs_scipy_sgbtrf_scipy_dlangt_scipy_dlaqp2_scipy_zhegs2_scipy_dsbevx_scipy_dpbcon_scipy_cupgtr_scipy_zunml2_scipy_slatrz_scipy_dtzrzf_scipy_sorm2l_scipy_stgsna_scipy_dlarfb_scipy_zgelsd_scipy_sorghr_scipy_dtbsv_scipy_zlangb_scipy_dormrq_scipy_ztptri_scipy_zlaqge_scipy_sgeqp3_scipy_csytrf_scipy_cgbsv_scipy_zlaqr3_scipy_cgesvd_scipy_csyr_scipy_dorgql_scipy_dlartgp_scipy_snrm2_scipy_sptcon_scipy_zhptrd_scipy_slansb_scipy_izamax_scipy_dtftri_scipy_zsytf2_scipy_clanhb_scipy_zhptri_scipy_cunm2r_scipy_slapy3_scipy_zlarfx_scipy_dtrmm_scipy_dlahqr_scipy_dlaqsy_scipy_dsgesv_scipy_sppequ_scipy_dpttrs_scipy_zlasyf_scipy_stbrfs_scipy_sspr2_scipy_ztgsna_scipy_cgerc___gmon_start__scipy_dzsum1_scipy_zgemqrt_PyErr_Printscipy_sspevx_scipy_zcgesv_scipy_dgtsv_scipy_slauum_scipy_ssycon_scipy_dsygs2_scipy_chetrd_PyTuple_GetItemPyUnicode_Concatscipy_dormlq_scipy_sgebd2_scipy_slag2_scipy_sspcon__ITM_registerTMCloneTablescipy_zgelss_scipy_ctpttf_scipy_slarrd_scipy_slauu2_scipy_ztfttr_scipy_zlaqgb_scipy_zgetf2_scipy_sgbsv_scipy_spbstf_scipy_ztfsm_scipy_ctprfb_scipy_claein_scipy_csptri_scipy_zhemm_scipy_clarcm_scipy_icamax_scipy_dorgrq_scipy_ztrsm_scipy_ctrtri_scipy_sorgbr__gfortran_transfer_character_write@@GFORTRAN_8scipy_dnrm2_scipy_cgebal_scipy_csteqr_scipy_scopy_scipy_cgemm_scipy_zher2k_scipy_zlarft_scipy_cgelqf_scipy_sggrqf_fwrite@@GLIBC_2.2.5scipy_ctrsv_scipy_dsyev_scipy_dsyrfs_scipy_dgesvx_scipy_zgbtf2_scipy_dstevd_scipy_clarrv_scipy_zlapmt_scipy_ctgsen_scipy_cunmhr_scipy_dorg2r_scipy_sspsvx_scipy_zlapll_scipy_sgesvd_scipy_ilauplo_PyComplex_Typescipy_sspgvx_scipy_ilaclc_scipy_clatrz_PyUnicode_FromStringAndSizescipy_spbcon_scipy_dlae2_scipy_ssterf_scipy_slabad_scipy_dlaqsp_scipy_cgerfs_scipy_sgeql2_scipy_cgeqrfp_scipy_sstedc_scipy_dptts2_scipy_ssyev_scipy_slarfx_scipy_csyr2k_scipy_zgebrd_scipy_clatdf_scipy_ztgex2_.symtab.strtab.shstrtab.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.tbss.init_array.fini_array.data.rel.ro.dynamic.got.got.plt.data.bss.commentHo(( Uod``( nB  xs  k~<< )d68 8   886@@ @V@Fa 0@F/pFN h$.o(($8 PPȣ  @ "`GNUߡ?/M`ᩦKN%JGz[TQAf *0kM D,5RV Oq,Nu8b/__AG#O"[\W`1?"'(RTHSdNu!19S{RE ZXd@k> =0LEh 1Q- Y.~:Km P5A7_B81B21G;.(&O5x3D+, ;!Us(l*Y &,@v3]4 ("_G;6 1MP0]>GH6&66 %Q,\f<nC-,WU ]eT1\>"8o/R"EY -R1" NWmR;_R>CXPF<,u\3  ">]2+Y8JFP>`+8Yo#7{ IIi\W-]HNT|D&&M6|Jg+RJY+\'(:T:96!Du Z".]$W] 1r@#8#/cH*IwS/#akLi"4UHNZEO_ 3$' 1\$2k">?S;6G9>MJX<^"h4/$^+Y}#,^**?\CIT?B8=QJ @' D;C2T=C=K(JRR70WzL!23$%V~?S N=PR&of0I*)XmY>5FKD9e]!N3F"'I`)N^!+>G#9B@M!AL+]Z9 */MQ-;?V-* g.<='"8I?Et0 [_C%8E4 #Sw\2\WR.G'AP7 0@$x'O[%,:W~^!PR=YM8%VQ0L"E P-I%_%[4FRZ4"!}~Y .IV(Mc)<)SC"?>_  k2L% 1?9XX^bY*3=+|9P >2\DJOMG 2h"D&n)1J>!S ]BDKVN&*>EJ(p:)0DI7U:RF[HWFk[ I47*Ka#TdW-T 48)CB>N r):qH 2N$n_NJVTaPz*_Zs%'R,54ER*# -=i?yF5XWTX6A_lJ ;T1@-} $$7%6X0.? ?FR I]X.GYr;-% J ZD-N. [3Z2yO][V6 RD8K4*D_-F:v.U:!'-CRX>\YMHD>n #B&K+ 7A5u9g9@\6^(FNcQXM7OXbIC! );58J0qSiB9HAO=:J#S,W R+ nJET=iS,CiVS?*]Y[e%4E3L9QJNpp)`&rC9F*6)Yj'i$V/@${ , IrWU,Q!?`7[U W"-6a ?2$\ZU Hb5E] @.];,PN'OG^A[@C:I6t<31`JB*8:0-SE#;y48Uv"Z.~HQn&tEC]LN Z?*}U716 & ' W%%gE4 KQU X678'X[q [< DDU< H +H #M+QXU=A;L4c@U&&?KPx$ M\'O2N&LXGO0 Y ?N FIn8<[5kOp $3 KI5R90%Q<  J< GV@&=4>: gP$;%%"12uPZo@_X:04)^B(H_|_KC>'+O<)F=W.*=.A=A@3A kUa(D GR&+H8 -x?Q/]:A/0W3</"G *H|/!H2$TY'F6D' \W a6A=15Gt5s]gE'.|K!"8 X M3:|7<G^rN2YPB"O(CmA@A:4',"oU\33Lh!#4Z}ZYCA!H5K7O _S2LKV  @z-0/yL~= ;Wy [BK`8LxI73# U!0@6.0! 7^NYg+KOO#P*{XEBK[H6UVS1@=k;B00L93;E]|I),/60yMuE]?.(*)EP,Q ^(/ 9CCZ"^FU^ 6*#LD\O@;E;:Q8P]5aNHcK%(34(pY$n1X0,5F- \E <[=Z;Y+Q/1(2eC8&= 77G,G  >U{. A_L.\;Nx!] ^-`D>.H ]O8T9u+#wVh.)^" 8OW5Z!/S  <<GE1v4)75uP:Rc S##\M+0?,Qe^AS 8/QRUKn7&K FFYH/[V(&Rg !96)*Y<f5.?DD?B1VZ LI/)[VW*$1Sy;&>]ML?/9*  $pK.^ BZX[SKOLD LUpIN)TW9BR^<(Ad=2IC~IvE:@BS\$cMV' WU@6 %;#(]R%j3F=$ 2'oZ[VW" MB Jm-TQ  Nj$%"|8 LZK}YO;t D|1M@'637<q(Q]Cp=N*:>4)U,% VD7A 6JTy2/+4OB)ve. |&s6j mXV9yFQ8/*PT'(UMS b45gGsT+e(I-P O J_F)V+ 0EQ#_ = ;]!QP6&'O/5-]{A4wBTIW(LBHS -[T7 T(}9,T) DqQ<3&ZQb=aUo%(/nDF/#VH 3[q 4L+ FJ#AJG1a^,6;E, Lk>AZTMf6WCZ3[ c,l AnR< 6: W SU 912"~KD1'T+kFS85oBF5x-C$Gb:(7FT/vG>[KZ%0zXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX```_` `  o( P `  `( ooo(o`__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalize_Py_DeallocPyNumber_LongPyComplex_TypePyType_IsSubtypePyErr_ClearPyObject_GetAttrStringPyErr_OccurredPyErr_SetStringPyLong_AsLongAndOverflowPySequence_CheckPySequence_GetItemPyExc_OverflowError__tls_get_addrPyObject_CallObject_Py_NoneStructPyTuple_SizePyTuple_GetItemmemcpyPyUnicode_FromStringAndSizePyTuple_SetItemPyLong_FromLongstderrfwritePySequence_Tuple_Py_BuildValue_SizeTPyExc_MemoryErrorlongjmpstrnlenmallocstrncpyPyExc_ValueErrormemsetPyObject_StrPyUnicode_AsASCIIStringPyNumber_FloatPyFloat_TypePyFloat_AsDoublePyFunction_TypePyObject_HasAttrStringfprintfPyTuple_NewPyCFunction_TypePyLong_AsSsize_tPyTuple_Type_PyArg_ParseTupleAndKeywords_SizeTfreesprintf_setjmpPyInit__zpropackPyModule_Create2PyType_TypePyImport_ImportModulePyCapsule_TypePyCapsule_GetPointerPyExc_ImportErrorPyModule_GetDictPyUnicode_FromStringPyDict_SetItemStringPyErr_NewExceptionPyType_ReadyPyExc_ModuleNotFoundErrorPyErr_ExceptionMatchesPyErr_PrintPyExc_RuntimeErrorPyErr_Formatpow_gfortran_st_write_gfortran_transfer_character_write_gfortran_st_write_done_gfortran_transfer_integer_write_gfortran_stop_stringscipy_cdotc_scipy_zdotc_scipy_cdotu_scipy_zdotu_scipy_cladiv_scipy_zladiv_scipy_caxpy_scipy_ccopy_scipy_cgbmv_scipy_cgemm_scipy_cgemv_scipy_cgerc_scipy_cgeru_scipy_chbmv_scipy_chemm_scipy_chemv_scipy_cher_scipy_cher2_scipy_cher2k_scipy_cherk_scipy_chpmv_scipy_chpr_scipy_chpr2_scipy_crotg_scipy_cscal_scipy_csrot_scipy_csscal_scipy_cswap_scipy_csymm_scipy_csyr2k_scipy_csyrk_scipy_ctbmv_scipy_ctbsv_scipy_ctpmv_scipy_ctpsv_scipy_ctrmm_scipy_ctrmv_scipy_ctrsm_scipy_ctrsv_scipy_dasum_scipy_daxpy_scipy_dcabs1_scipy_dcopy_scipy_ddot_scipy_dgbmv_scipy_dgemm_scipy_dgemv_scipy_dger_scipy_dnrm2_scipy_drot_scipy_drotg_scipy_drotm_scipy_drotmg_scipy_dsbmv_scipy_dscal_scipy_dsdot_scipy_dspmv_scipy_dspr_scipy_dspr2_scipy_dswap_scipy_dsymm_scipy_dsymv_scipy_dsyr_scipy_dsyr2_scipy_dsyr2k_scipy_dsyrk_scipy_dtbmv_scipy_dtbsv_scipy_dtpmv_scipy_dtpsv_scipy_dtrmm_scipy_dtrmv_scipy_dtrsm_scipy_dtrsv_scipy_dzasum_scipy_dznrm2_scipy_icamax_scipy_idamax_scipy_isamax_scipy_izamax_scipy_lsame_scipy_sasum_scipy_saxpy_scipy_scasum_scipy_scnrm2_scipy_scopy_scipy_sdot_scipy_sdsdot_scipy_sgbmv_scipy_sgemm_scipy_sgemv_scipy_sger_scipy_snrm2_scipy_srot_scipy_srotg_scipy_srotm_scipy_srotmg_scipy_ssbmv_scipy_sscal_scipy_sspmv_scipy_sspr_scipy_sspr2_scipy_sswap_scipy_ssymm_scipy_ssymv_scipy_ssyr_scipy_ssyr2_scipy_ssyr2k_scipy_ssyrk_scipy_stbmv_scipy_stbsv_scipy_stpmv_scipy_stpsv_scipy_strmm_scipy_strmv_scipy_strsm_scipy_strsv_scipy_zaxpy_scipy_zcopy_scipy_zdrot_scipy_zdscal_scipy_zgbmv_scipy_zgemm_scipy_zgemv_scipy_zgerc_scipy_zgeru_scipy_zhbmv_scipy_zhemm_scipy_zhemv_scipy_zher_scipy_zher2_scipy_zher2k_scipy_zherk_scipy_zhpmv_scipy_zhpr_scipy_zhpr2_scipy_zrotg_scipy_zscal_scipy_zswap_scipy_zsymm_scipy_zsyr2k_scipy_zsyrk_scipy_ztbmv_scipy_ztbsv_scipy_ztpmv_scipy_ztpsv_scipy_ztrmm_scipy_ztrmv_scipy_ztrsm_scipy_ztrsv_scipy_cbbcsd_scipy_cbdsqr_scipy_cgbbrd_scipy_cgbcon_scipy_cgbequ_scipy_cgbequb_scipy_cgbrfs_scipy_cgbsv_scipy_cgbsvx_scipy_cgbtf2_scipy_cgbtrf_scipy_cgbtrs_scipy_cgebak_scipy_cgebal_scipy_cgebd2_scipy_cgebrd_scipy_cgecon_scipy_cgeequ_scipy_cgeequb_scipy_cgees_scipy_cgeesx_scipy_cgeev_scipy_cgeevx_scipy_cgehd2_scipy_cgehrd_scipy_cgelq2_scipy_cgelqf_scipy_cgels_scipy_cgelsd_scipy_cgelss_scipy_cgelsy_scipy_cgemqrt_scipy_cgeql2_scipy_cgeqlf_scipy_cgeqp3_scipy_cgeqr2_scipy_cgeqr2p_scipy_cgeqrf_scipy_cgeqrfp_scipy_cgeqrt_scipy_cgeqrt2_scipy_cgeqrt3_scipy_cgerfs_scipy_cgerq2_scipy_cgerqf_scipy_cgesc2_scipy_cgesdd_scipy_cgesv_scipy_cgesvd_scipy_cgesvx_scipy_cgetc2_scipy_cgetf2_scipy_cgetrf_scipy_cgetri_scipy_cgetrs_scipy_cggbak_scipy_cggbal_scipy_cgges_scipy_cggesx_scipy_cggev_scipy_cggevx_scipy_cggglm_scipy_cgghrd_scipy_cgglse_scipy_cggqrf_scipy_cggrqf_scipy_cgtcon_scipy_cgtrfs_scipy_cgtsv_scipy_cgtsvx_scipy_cgttrf_scipy_cgttrs_scipy_cgtts2_scipy_chbev_scipy_chbevd_scipy_chbevx_scipy_chbgst_scipy_chbgv_scipy_chbgvd_scipy_chbgvx_scipy_chbtrd_scipy_checon_scipy_cheequb_scipy_cheev_scipy_cheevd_scipy_cheevr_scipy_cheevx_scipy_chegs2_scipy_chegst_scipy_chegv_scipy_chegvd_scipy_chegvx_scipy_cherfs_scipy_chesv_scipy_chesvx_scipy_cheswapr_scipy_chetd2_scipy_chetf2_scipy_chetrd_scipy_chetrf_scipy_chetri_scipy_chetri2_scipy_chetri2x_scipy_chetrs_scipy_chetrs2_scipy_chfrk_scipy_chgeqz_scipy_chla_transtype_scipy_chpcon_scipy_chpev_scipy_chpevd_scipy_chpevx_scipy_chpgst_scipy_chpgv_scipy_chpgvd_scipy_chpgvx_scipy_chprfs_scipy_chpsv_scipy_chpsvx_scipy_chptrd_scipy_chptrf_scipy_chptri_scipy_chptrs_scipy_chsein_scipy_chseqr_scipy_clabrd_scipy_clacgv_scipy_clacn2_scipy_clacon_scipy_clacp2_scipy_clacpy_scipy_clacrm_scipy_clacrt_scipy_claed0_scipy_claed7_scipy_claed8_scipy_claein_scipy_claesy_scipy_claev2_scipy_clag2z_scipy_clags2_scipy_clagtm_scipy_clahef_scipy_clahqr_scipy_clahr2_scipy_claic1_scipy_clals0_scipy_clalsa_scipy_clalsd_scipy_clangb_scipy_clange_scipy_clangt_scipy_clanhb_scipy_clanhe_scipy_clanhf_scipy_clanhp_scipy_clanhs_scipy_clanht_scipy_clansb_scipy_clansp_scipy_clansy_scipy_clantb_scipy_clantp_scipy_clantr_scipy_clapll_scipy_clapmr_scipy_clapmt_scipy_claqgb_scipy_claqge_scipy_claqhb_scipy_claqhe_scipy_claqhp_scipy_claqp2_scipy_claqps_scipy_claqr0_scipy_claqr1_scipy_claqr2_scipy_claqr3_scipy_claqr4_scipy_claqr5_scipy_claqsb_scipy_claqsp_scipy_claqsy_scipy_clar1v_scipy_clar2v_scipy_clarcm_scipy_clarf_scipy_clarfb_scipy_clarfg_scipy_clarfgp_scipy_clarft_scipy_clarfx_scipy_clargv_scipy_clarnv_scipy_clarrv_scipy_clartg_scipy_clartv_scipy_clarz_scipy_clarzb_scipy_clarzt_scipy_clascl_scipy_claset_scipy_clasr_scipy_classq_scipy_claswp_scipy_clasyf_scipy_clatbs_scipy_clatdf_scipy_clatps_scipy_clatrd_scipy_clatrs_scipy_clatrz_scipy_clauu2_scipy_clauum_scipy_cpbcon_scipy_cpbequ_scipy_cpbrfs_scipy_cpbstf_scipy_cpbsv_scipy_cpbsvx_scipy_cpbtf2_scipy_cpbtrf_scipy_cpbtrs_scipy_cpftrf_scipy_cpftri_scipy_cpftrs_scipy_cpocon_scipy_cpoequ_scipy_cpoequb_scipy_cporfs_scipy_cposv_scipy_cposvx_scipy_cpotf2_scipy_cpotrf_scipy_cpotri_scipy_cpotrs_scipy_cppcon_scipy_cppequ_scipy_cpprfs_scipy_cppsv_scipy_cppsvx_scipy_cpptrf_scipy_cpptri_scipy_cpptrs_scipy_cpstf2_scipy_cpstrf_scipy_cptcon_scipy_cpteqr_scipy_cptrfs_scipy_cptsv_scipy_cptsvx_scipy_cpttrf_scipy_cpttrs_scipy_cptts2_scipy_crot_scipy_cspcon_scipy_cspmv_scipy_cspr_scipy_csprfs_scipy_cspsv_scipy_cspsvx_scipy_csptrf_scipy_csptri_scipy_csptrs_scipy_csrscl_scipy_cstedc_scipy_cstegr_scipy_cstein_scipy_cstemr_scipy_csteqr_scipy_csycon_scipy_csyconv_scipy_csyequb_scipy_csymv_scipy_csyr_scipy_csyrfs_scipy_csysv_scipy_csysvx_scipy_csyswapr_scipy_csytf2_scipy_csytrf_scipy_csytri_scipy_csytri2_scipy_csytri2x_scipy_csytrs_scipy_csytrs2_scipy_ctbcon_scipy_ctbrfs_scipy_ctbtrs_scipy_ctfsm_scipy_ctftri_scipy_ctfttp_scipy_ctfttr_scipy_ctgevc_scipy_ctgex2_scipy_ctgexc_scipy_ctgsen_scipy_ctgsja_scipy_ctgsna_scipy_ctgsy2_scipy_ctgsyl_scipy_ctpcon_scipy_ctpmqrt_scipy_ctpqrt_scipy_ctpqrt2_scipy_ctprfb_scipy_ctprfs_scipy_ctptri_scipy_ctptrs_scipy_ctpttf_scipy_ctpttr_scipy_ctrcon_scipy_ctrevc_scipy_ctrexc_scipy_ctrrfs_scipy_ctrsen_scipy_ctrsna_scipy_ctrsyl_scipy_ctrti2_scipy_ctrtri_scipy_ctrtrs_scipy_ctrttf_scipy_ctrttp_scipy_ctzrzf_scipy_cunbdb_scipy_cuncsd_scipy_cung2l_scipy_cung2r_scipy_cungbr_scipy_cunghr_scipy_cungl2_scipy_cunglq_scipy_cungql_scipy_cungqr_scipy_cungr2_scipy_cungrq_scipy_cungtr_scipy_cunm2l_scipy_cunm2r_scipy_cunmbr_scipy_cunmhr_scipy_cunml2_scipy_cunmlq_scipy_cunmql_scipy_cunmqr_scipy_cunmr2_scipy_cunmr3_scipy_cunmrq_scipy_cunmrz_scipy_cunmtr_scipy_cupgtr_scipy_cupmtr_scipy_dbbcsd_scipy_dbdsdc_scipy_dbdsqr_scipy_ddisna_scipy_dgbbrd_scipy_dgbcon_scipy_dgbequ_scipy_dgbequb_scipy_dgbrfs_scipy_dgbsv_scipy_dgbsvx_scipy_dgbtf2_scipy_dgbtrf_scipy_dgbtrs_scipy_dgebak_scipy_dgebal_scipy_dgebd2_scipy_dgebrd_scipy_dgecon_scipy_dgeequ_scipy_dgeequb_scipy_dgees_scipy_dgeesx_scipy_dgeev_scipy_dgeevx_scipy_dgehd2_scipy_dgehrd_scipy_dgejsv_scipy_dgelq2_scipy_dgelqf_scipy_dgels_scipy_dgelsd_scipy_dgelss_scipy_dgelsy_scipy_dgemqrt_scipy_dgeql2_scipy_dgeqlf_scipy_dgeqp3_scipy_dgeqr2_scipy_dgeqr2p_scipy_dgeqrf_scipy_dgeqrfp_scipy_dgeqrt_scipy_dgeqrt2_scipy_dgeqrt3_scipy_dgerfs_scipy_dgerq2_scipy_dgerqf_scipy_dgesc2_scipy_dgesdd_scipy_dgesv_scipy_dgesvd_scipy_dgesvj_scipy_dgesvx_scipy_dgetc2_scipy_dgetf2_scipy_dgetrf_scipy_dgetri_scipy_dgetrs_scipy_dggbak_scipy_dggbal_scipy_dgges_scipy_dggesx_scipy_dggev_scipy_dggevx_scipy_dggglm_scipy_dgghrd_scipy_dgglse_scipy_dggqrf_scipy_dggrqf_scipy_dgsvj0_scipy_dgsvj1_scipy_dgtcon_scipy_dgtrfs_scipy_dgtsv_scipy_dgtsvx_scipy_dgttrf_scipy_dgttrs_scipy_dgtts2_scipy_dhgeqz_scipy_dhsein_scipy_dhseqr_scipy_disnan_scipy_dlabad_scipy_dlabrd_scipy_dlacn2_scipy_dlacon_scipy_dlacpy_scipy_dladiv_scipy_dlae2_scipy_dlaebz_scipy_dlaed0_scipy_dlaed1_scipy_dlaed2_scipy_dlaed3_scipy_dlaed4_scipy_dlaed5_scipy_dlaed6_scipy_dlaed7_scipy_dlaed8_scipy_dlaed9_scipy_dlaeda_scipy_dlaein_scipy_dlaev2_scipy_dlaexc_scipy_dlag2_scipy_dlag2s_scipy_dlags2_scipy_dlagtf_scipy_dlagtm_scipy_dlagts_scipy_dlagv2_scipy_dlahqr_scipy_dlahr2_scipy_dlaic1_scipy_dlaln2_scipy_dlals0_scipy_dlalsa_scipy_dlalsd_scipy_dlamch_scipy_dlamrg_scipy_dlaneg_scipy_dlangb_scipy_dlange_scipy_dlangt_scipy_dlanhs_scipy_dlansb_scipy_dlansf_scipy_dlansp_scipy_dlanst_scipy_dlansy_scipy_dlantb_scipy_dlantp_scipy_dlantr_scipy_dlanv2_scipy_dlapll_scipy_dlapmr_scipy_dlapmt_scipy_dlapy2_scipy_dlapy3_scipy_dlaqgb_scipy_dlaqge_scipy_dlaqp2_scipy_dlaqps_scipy_dlaqr0_scipy_dlaqr1_scipy_dlaqr2_scipy_dlaqr3_scipy_dlaqr4_scipy_dlaqr5_scipy_dlaqsb_scipy_dlaqsp_scipy_dlaqsy_scipy_dlaqtr_scipy_dlar1v_scipy_dlar2v_scipy_dlarf_scipy_dlarfb_scipy_dlarfg_scipy_dlarfgp_scipy_dlarft_scipy_dlarfx_scipy_dlargv_scipy_dlarnv_scipy_dlarra_scipy_dlarrb_scipy_dlarrc_scipy_dlarrd_scipy_dlarre_scipy_dlarrf_scipy_dlarrj_scipy_dlarrk_scipy_dlarrr_scipy_dlarrv_scipy_dlartg_scipy_dlartgp_scipy_dlartgs_scipy_dlartv_scipy_dlaruv_scipy_dlarz_scipy_dlarzb_scipy_dlarzt_scipy_dlas2_scipy_dlascl_scipy_dlasd0_scipy_dlasd1_scipy_dlasd2_scipy_dlasd3_scipy_dlasd4_scipy_dlasd5_scipy_dlasd6_scipy_dlasd7_scipy_dlasd8_scipy_dlasda_scipy_dlasdq_scipy_dlasdt_scipy_dlaset_scipy_dlasq1_scipy_dlasq2_scipy_dlasq3_scipy_dlasq4_scipy_dlasq6_scipy_dlasr_scipy_dlasrt_scipy_dlassq_scipy_dlasv2_scipy_dlaswp_scipy_dlasy2_scipy_dlasyf_scipy_dlat2s_scipy_dlatbs_scipy_dlatdf_scipy_dlatps_scipy_dlatrd_scipy_dlatrs_scipy_dlatrz_scipy_dlauu2_scipy_dlauum_scipy_dopgtr_scipy_dopmtr_scipy_dorbdb_scipy_dorcsd_scipy_dorg2l_scipy_dorg2r_scipy_dorgbr_scipy_dorghr_scipy_dorgl2_scipy_dorglq_scipy_dorgql_scipy_dorgqr_scipy_dorgr2_scipy_dorgrq_scipy_dorgtr_scipy_dorm2l_scipy_dorm2r_scipy_dormbr_scipy_dormhr_scipy_dorml2_scipy_dormlq_scipy_dormql_scipy_dormqr_scipy_dormr2_scipy_dormr3_scipy_dormrq_scipy_dormrz_scipy_dormtr_scipy_dpbcon_scipy_dpbequ_scipy_dpbrfs_scipy_dpbstf_scipy_dpbsv_scipy_dpbsvx_scipy_dpbtf2_scipy_dpbtrf_scipy_dpbtrs_scipy_dpftrf_scipy_dpftri_scipy_dpftrs_scipy_dpocon_scipy_dpoequ_scipy_dpoequb_scipy_dporfs_scipy_dposv_scipy_dposvx_scipy_dpotf2_scipy_dpotrf_scipy_dpotri_scipy_dpotrs_scipy_dppcon_scipy_dppequ_scipy_dpprfs_scipy_dppsv_scipy_dppsvx_scipy_dpptrf_scipy_dpptri_scipy_dpptrs_scipy_dpstf2_scipy_dpstrf_scipy_dptcon_scipy_dpteqr_scipy_dptrfs_scipy_dptsv_scipy_dptsvx_scipy_dpttrf_scipy_dpttrs_scipy_dptts2_scipy_drscl_scipy_dsbev_scipy_dsbevd_scipy_dsbevx_scipy_dsbgst_scipy_dsbgv_scipy_dsbgvd_scipy_dsbgvx_scipy_dsbtrd_scipy_dsfrk_scipy_dsgesv_scipy_dspcon_scipy_dspev_scipy_dspevd_scipy_dspevx_scipy_dspgst_scipy_dspgv_scipy_dspgvd_scipy_dspgvx_scipy_dsposv_scipy_dsprfs_scipy_dspsv_scipy_dspsvx_scipy_dsptrd_scipy_dsptrf_scipy_dsptri_scipy_dsptrs_scipy_dstebz_scipy_dstedc_scipy_dstegr_scipy_dstein_scipy_dstemr_scipy_dsteqr_scipy_dsterf_scipy_dstev_scipy_dstevd_scipy_dstevr_scipy_dstevx_scipy_dsycon_scipy_dsyconv_scipy_dsyequb_scipy_dsyev_scipy_dsyevd_scipy_dsyevr_scipy_dsyevx_scipy_dsygs2_scipy_dsygst_scipy_dsygv_scipy_dsygvd_scipy_dsygvx_scipy_dsyrfs_scipy_dsysv_scipy_dsysvx_scipy_dsyswapr_scipy_dsytd2_scipy_dsytf2_scipy_dsytrd_scipy_dsytrf_scipy_dsytri_scipy_dsytri2_scipy_dsytri2x_scipy_dsytrs_scipy_dsytrs2_scipy_dtbcon_scipy_dtbrfs_scipy_dtbtrs_scipy_dtfsm_scipy_dtftri_scipy_dtfttp_scipy_dtfttr_scipy_dtgevc_scipy_dtgex2_scipy_dtgexc_scipy_dtgsen_scipy_dtgsja_scipy_dtgsna_scipy_dtgsy2_scipy_dtgsyl_scipy_dtpcon_scipy_dtpmqrt_scipy_dtpqrt_scipy_dtpqrt2_scipy_dtprfb_scipy_dtprfs_scipy_dtptri_scipy_dtptrs_scipy_dtpttf_scipy_dtpttr_scipy_dtrcon_scipy_dtrevc_scipy_dtrexc_scipy_dtrrfs_scipy_dtrsen_scipy_dtrsna_scipy_dtrsyl_scipy_dtrti2_scipy_dtrtri_scipy_dtrtrs_scipy_dtrttf_scipy_dtrttp_scipy_dtzrzf_scipy_dzsum1_scipy_icmax1_scipy_ieeeck_scipy_ilaclc_scipy_ilaclr_scipy_iladiag_scipy_iladlc_scipy_iladlr_scipy_ilaprec_scipy_ilaslc_scipy_ilaslr_scipy_ilatrans_scipy_ilauplo_scipy_ilaver_scipy_ilazlc_scipy_ilazlr_scipy_izmax1_scipy_sbbcsd_scipy_sbdsdc_scipy_sbdsqr_scipy_scsum1_scipy_sdisna_scipy_sgbbrd_scipy_sgbcon_scipy_sgbequ_scipy_sgbequb_scipy_sgbrfs_scipy_sgbsv_scipy_sgbsvx_scipy_sgbtf2_scipy_sgbtrf_scipy_sgbtrs_scipy_sgebak_scipy_sgebal_scipy_sgebd2_scipy_sgebrd_scipy_sgecon_scipy_sgeequ_scipy_sgeequb_scipy_sgees_scipy_sgeesx_scipy_sgeev_scipy_sgeevx_scipy_sgehd2_scipy_sgehrd_scipy_sgejsv_scipy_sgelq2_scipy_sgelqf_scipy_sgels_scipy_sgelsd_scipy_sgelss_scipy_sgelsy_scipy_sgemqrt_scipy_sgeql2_scipy_sgeqlf_scipy_sgeqp3_scipy_sgeqr2_scipy_sgeqr2p_scipy_sgeqrf_scipy_sgeqrfp_scipy_sgeqrt_scipy_sgeqrt2_scipy_sgeqrt3_scipy_sgerfs_scipy_sgerq2_scipy_sgerqf_scipy_sgesc2_scipy_sgesdd_scipy_sgesv_scipy_sgesvd_scipy_sgesvj_scipy_sgesvx_scipy_sgetc2_scipy_sgetf2_scipy_sgetrf_scipy_sgetri_scipy_sgetrs_scipy_sggbak_scipy_sggbal_scipy_sgges_scipy_sggesx_scipy_sggev_scipy_sggevx_scipy_sggglm_scipy_sgghrd_scipy_sgglse_scipy_sggqrf_scipy_sggrqf_scipy_sgsvj0_scipy_sgsvj1_scipy_sgtcon_scipy_sgtrfs_scipy_sgtsv_scipy_sgtsvx_scipy_sgttrf_scipy_sgttrs_scipy_sgtts2_scipy_shgeqz_scipy_shsein_scipy_shseqr_scipy_slabad_scipy_slabrd_scipy_slacn2_scipy_slacon_scipy_slacpy_scipy_sladiv_scipy_slae2_scipy_slaebz_scipy_slaed0_scipy_slaed1_scipy_slaed2_scipy_slaed3_scipy_slaed4_scipy_slaed5_scipy_slaed6_scipy_slaed7_scipy_slaed8_scipy_slaed9_scipy_slaeda_scipy_slaein_scipy_slaev2_scipy_slaexc_scipy_slag2_scipy_slag2d_scipy_slags2_scipy_slagtf_scipy_slagtm_scipy_slagts_scipy_slagv2_scipy_slahqr_scipy_slahr2_scipy_slaic1_scipy_slaln2_scipy_slals0_scipy_slalsa_scipy_slalsd_scipy_slamch_scipy_slamrg_scipy_slangb_scipy_slange_scipy_slangt_scipy_slanhs_scipy_slansb_scipy_slansf_scipy_slansp_scipy_slanst_scipy_slansy_scipy_slantb_scipy_slantp_scipy_slantr_scipy_slanv2_scipy_slapll_scipy_slapmr_scipy_slapmt_scipy_slapy2_scipy_slapy3_scipy_slaqgb_scipy_slaqge_scipy_slaqp2_scipy_slaqps_scipy_slaqr0_scipy_slaqr1_scipy_slaqr2_scipy_slaqr3_scipy_slaqr4_scipy_slaqr5_scipy_slaqsb_scipy_slaqsp_scipy_slaqsy_scipy_slaqtr_scipy_slar1v_scipy_slar2v_scipy_slarf_scipy_slarfb_scipy_slarfg_scipy_slarfgp_scipy_slarft_scipy_slarfx_scipy_slargv_scipy_slarnv_scipy_slarra_scipy_slarrb_scipy_slarrc_scipy_slarrd_scipy_slarre_scipy_slarrf_scipy_slarrj_scipy_slarrk_scipy_slarrr_scipy_slarrv_scipy_slartg_scipy_slartgp_scipy_slartgs_scipy_slartv_scipy_slaruv_scipy_slarz_scipy_slarzb_scipy_slarzt_scipy_slas2_scipy_slascl_scipy_slasd0_scipy_slasd1_scipy_slasd2_scipy_slasd3_scipy_slasd4_scipy_slasd5_scipy_slasd6_scipy_slasd7_scipy_slasd8_scipy_slasda_scipy_slasdq_scipy_slasdt_scipy_slaset_scipy_slasq1_scipy_slasq2_scipy_slasq3_scipy_slasq4_scipy_slasq6_scipy_slasr_scipy_slasrt_scipy_slassq_scipy_slasv2_scipy_slaswp_scipy_slasy2_scipy_slasyf_scipy_slatbs_scipy_slatdf_scipy_slatps_scipy_slatrd_scipy_slatrs_scipy_slatrz_scipy_slauu2_scipy_slauum_scipy_sopgtr_scipy_sopmtr_scipy_sorbdb_scipy_sorcsd_scipy_sorg2l_scipy_sorg2r_scipy_sorgbr_scipy_sorghr_scipy_sorgl2_scipy_sorglq_scipy_sorgql_scipy_sorgqr_scipy_sorgr2_scipy_sorgrq_scipy_sorgtr_scipy_sorm2l_scipy_sorm2r_scipy_sormbr_scipy_sormhr_scipy_sorml2_scipy_sormlq_scipy_sormql_scipy_sormqr_scipy_sormr2_scipy_sormr3_scipy_sormrq_scipy_sormrz_scipy_sormtr_scipy_spbcon_scipy_spbequ_scipy_spbrfs_scipy_spbstf_scipy_spbsv_scipy_spbsvx_scipy_spbtf2_scipy_spbtrf_scipy_spbtrs_scipy_spftrf_scipy_spftri_scipy_spftrs_scipy_spocon_scipy_spoequ_scipy_spoequb_scipy_sporfs_scipy_sposv_scipy_sposvx_scipy_spotf2_scipy_spotrf_scipy_spotri_scipy_spotrs_scipy_sppcon_scipy_sppequ_scipy_spprfs_scipy_sppsv_scipy_sppsvx_scipy_spptrf_scipy_spptri_scipy_spptrs_scipy_spstf2_scipy_spstrf_scipy_sptcon_scipy_spteqr_scipy_sptrfs_scipy_sptsv_scipy_sptsvx_scipy_spttrf_scipy_spttrs_scipy_sptts2_scipy_srscl_scipy_ssbev_scipy_ssbevd_scipy_ssbevx_scipy_ssbgst_scipy_ssbgv_scipy_ssbgvd_scipy_ssbgvx_scipy_ssbtrd_scipy_ssfrk_scipy_sspcon_scipy_sspev_scipy_sspevd_scipy_sspevx_scipy_sspgst_scipy_sspgv_scipy_sspgvd_scipy_sspgvx_scipy_ssprfs_scipy_sspsv_scipy_sspsvx_scipy_ssptrd_scipy_ssptrf_scipy_ssptri_scipy_ssptrs_scipy_sstebz_scipy_sstedc_scipy_sstegr_scipy_sstein_scipy_sstemr_scipy_ssteqr_scipy_ssterf_scipy_sstev_scipy_sstevd_scipy_sstevr_scipy_sstevx_scipy_ssycon_scipy_ssyconv_scipy_ssyequb_scipy_ssyev_scipy_ssyevd_scipy_ssyevr_scipy_ssyevx_scipy_ssygs2_scipy_ssygst_scipy_ssygv_scipy_ssygvd_scipy_ssygvx_scipy_ssyrfs_scipy_ssysv_scipy_ssysvx_scipy_ssyswapr_scipy_ssytd2_scipy_ssytf2_scipy_ssytrd_scipy_ssytrf_scipy_ssytri_scipy_ssytri2_scipy_ssytri2x_scipy_ssytrs_scipy_ssytrs2_scipy_stbcon_scipy_stbrfs_scipy_stbtrs_scipy_stfsm_scipy_stftri_scipy_stfttp_scipy_stfttr_scipy_stgevc_scipy_stgex2_scipy_stgexc_scipy_stgsen_scipy_stgsja_scipy_stgsna_scipy_stgsy2_scipy_stgsyl_scipy_stpcon_scipy_stpmqrt_scipy_stpqrt_scipy_stpqrt2_scipy_stprfb_scipy_stprfs_scipy_stptri_scipy_stptrs_scipy_stpttf_scipy_stpttr_scipy_strcon_scipy_strevc_scipy_strexc_scipy_strrfs_scipy_strsen_scipy_strsna_scipy_strsyl_scipy_strti2_scipy_strtri_scipy_strtrs_scipy_strttf_scipy_strttp_scipy_stzrzf_scipy_xerbla_array_scipy_zbbcsd_scipy_zbdsqr_scipy_zcgesv_scipy_zcposv_scipy_zdrscl_scipy_zgbbrd_scipy_zgbcon_scipy_zgbequ_scipy_zgbequb_scipy_zgbrfs_scipy_zgbsv_scipy_zgbsvx_scipy_zgbtf2_scipy_zgbtrf_scipy_zgbtrs_scipy_zgebak_scipy_zgebal_scipy_zgebd2_scipy_zgebrd_scipy_zgecon_scipy_zgeequ_scipy_zgeequb_scipy_zgees_scipy_zgeesx_scipy_zgeev_scipy_zgeevx_scipy_zgehd2_scipy_zgehrd_scipy_zgelq2_scipy_zgelqf_scipy_zgels_scipy_zgelsd_scipy_zgelss_scipy_zgelsy_scipy_zgemqrt_scipy_zgeql2_scipy_zgeqlf_scipy_zgeqp3_scipy_zgeqr2_scipy_zgeqr2p_scipy_zgeqrf_scipy_zgeqrfp_scipy_zgeqrt_scipy_zgeqrt2_scipy_zgeqrt3_scipy_zgerfs_scipy_zgerq2_scipy_zgerqf_scipy_zgesc2_scipy_zgesdd_scipy_zgesv_scipy_zgesvd_scipy_zgesvx_scipy_zgetc2_scipy_zgetf2_scipy_zgetrf_scipy_zgetri_scipy_zgetrs_scipy_zggbak_scipy_zggbal_scipy_zgges_scipy_zggesx_scipy_zggev_scipy_zggevx_scipy_zggglm_scipy_zgghrd_scipy_zgglse_scipy_zggqrf_scipy_zggrqf_scipy_zgtcon_scipy_zgtrfs_scipy_zgtsv_scipy_zgtsvx_scipy_zgttrf_scipy_zgttrs_scipy_zgtts2_scipy_zhbev_scipy_zhbevd_scipy_zhbevx_scipy_zhbgst_scipy_zhbgv_scipy_zhbgvd_scipy_zhbgvx_scipy_zhbtrd_scipy_zhecon_scipy_zheequb_scipy_zheev_scipy_zheevd_scipy_zheevr_scipy_zheevx_scipy_zhegs2_scipy_zhegst_scipy_zhegv_scipy_zhegvd_scipy_zhegvx_scipy_zherfs_scipy_zhesv_scipy_zhesvx_scipy_zheswapr_scipy_zhetd2_scipy_zhetf2_scipy_zhetrd_scipy_zhetrf_scipy_zhetri_scipy_zhetri2_scipy_zhetri2x_scipy_zhetrs_scipy_zhetrs2_scipy_zhfrk_scipy_zhgeqz_scipy_zhpcon_scipy_zhpev_scipy_zhpevd_scipy_zhpevx_scipy_zhpgst_scipy_zhpgv_scipy_zhpgvd_scipy_zhpgvx_scipy_zhprfs_scipy_zhpsv_scipy_zhpsvx_scipy_zhptrd_scipy_zhptrf_scipy_zhptri_scipy_zhptrs_scipy_zhsein_scipy_zhseqr_scipy_zlabrd_scipy_zlacgv_scipy_zlacn2_scipy_zlacon_scipy_zlacp2_scipy_zlacpy_scipy_zlacrm_scipy_zlacrt_scipy_zlaed0_scipy_zlaed7_scipy_zlaed8_scipy_zlaein_scipy_zlaesy_scipy_zlaev2_scipy_zlag2c_scipy_zlags2_scipy_zlagtm_scipy_zlahef_scipy_zlahqr_scipy_zlahr2_scipy_zlaic1_scipy_zlals0_scipy_zlalsa_scipy_zlalsd_scipy_zlangb_scipy_zlange_scipy_zlangt_scipy_zlanhb_scipy_zlanhe_scipy_zlanhf_scipy_zlanhp_scipy_zlanhs_scipy_zlanht_scipy_zlansb_scipy_zlansp_scipy_zlansy_scipy_zlantb_scipy_zlantp_scipy_zlantr_scipy_zlapll_scipy_zlapmr_scipy_zlapmt_scipy_zlaqgb_scipy_zlaqge_scipy_zlaqhb_scipy_zlaqhe_scipy_zlaqhp_scipy_zlaqp2_scipy_zlaqps_scipy_zlaqr0_scipy_zlaqr1_scipy_zlaqr2_scipy_zlaqr3_scipy_zlaqr4_scipy_zlaqr5_scipy_zlaqsb_scipy_zlaqsp_scipy_zlaqsy_scipy_zlar1v_scipy_zlar2v_scipy_zlarcm_scipy_zlarf_scipy_zlarfb_scipy_zlarfg_scipy_zlarfgp_scipy_zlarft_scipy_zlarfx_scipy_zlargv_scipy_zlarnv_scipy_zlarrv_scipy_zlartg_scipy_zlartv_scipy_zlarz_scipy_zlarzb_scipy_zlarzt_scipy_zlascl_scipy_zlaset_scipy_zlasr_scipy_zlassq_scipy_zlaswp_scipy_zlasyf_scipy_zlat2c_scipy_zlatbs_scipy_zlatdf_scipy_zlatps_scipy_zlatrd_scipy_zlatrs_scipy_zlatrz_scipy_zlauu2_scipy_zlauum_scipy_zpbcon_scipy_zpbequ_scipy_zpbrfs_scipy_zpbstf_scipy_zpbsv_scipy_zpbsvx_scipy_zpbtf2_scipy_zpbtrf_scipy_zpbtrs_scipy_zpftrf_scipy_zpftri_scipy_zpftrs_scipy_zpocon_scipy_zpoequ_scipy_zpoequb_scipy_zporfs_scipy_zposv_scipy_zposvx_scipy_zpotf2_scipy_zpotrf_scipy_zpotri_scipy_zpotrs_scipy_zppcon_scipy_zppequ_scipy_zpprfs_scipy_zppsv_scipy_zppsvx_scipy_zpptrf_scipy_zpptri_scipy_zpptrs_scipy_zpstf2_scipy_zpstrf_scipy_zptcon_scipy_zpteqr_scipy_zptrfs_scipy_zptsv_scipy_zptsvx_scipy_zpttrf_scipy_zpttrs_scipy_zptts2_scipy_zrot_scipy_zspcon_scipy_zspmv_scipy_zspr_scipy_zsprfs_scipy_zspsv_scipy_zspsvx_scipy_zsptrf_scipy_zsptri_scipy_zsptrs_scipy_zstedc_scipy_zstegr_scipy_zstein_scipy_zstemr_scipy_zsteqr_scipy_zsycon_scipy_zsyconv_scipy_zsyequb_scipy_zsymv_scipy_zsyr_scipy_zsyrfs_scipy_zsysv_scipy_zsysvx_scipy_zsyswapr_scipy_zsytf2_scipy_zsytrf_scipy_zsytri_scipy_zsytri2_scipy_zsytri2x_scipy_zsytrs_scipy_zsytrs2_scipy_ztbcon_scipy_ztbrfs_scipy_ztbtrs_scipy_ztfsm_scipy_ztftri_scipy_ztfttp_scipy_ztfttr_scipy_ztgevc_scipy_ztgex2_scipy_ztgexc_scipy_ztgsen_scipy_ztgsja_scipy_ztgsna_scipy_ztgsy2_scipy_ztgsyl_scipy_ztpcon_scipy_ztpmqrt_scipy_ztpqrt_scipy_ztpqrt2_scipy_ztprfb_scipy_ztprfs_scipy_ztptri_scipy_ztptrs_scipy_ztpttf_scipy_ztpttr_scipy_ztrcon_scipy_ztrevc_scipy_ztrexc_scipy_ztrrfs_scipy_ztrsen_scipy_ztrsna_scipy_ztrsyl_scipy_ztrti2_scipy_ztrtri_scipy_ztrtrs_scipy_ztrttf_scipy_ztrttp_scipy_ztzrzf_scipy_zunbdb_scipy_zuncsd_scipy_zung2l_scipy_zung2r_scipy_zungbr_scipy_zunghr_scipy_zungl2_scipy_zunglq_scipy_zungql_scipy_zungqr_scipy_zungr2_scipy_zungrq_scipy_zungtr_scipy_zunm2l_scipy_zunm2r_scipy_zunmbr_scipy_zunmhr_scipy_zunml2_scipy_zunmlq_scipy_zunmql_scipy_zunmqr_scipy_zunmr2_scipy_zunmr3_scipy_zunmrq_scipy_zunmrz_scipy_zunmtr_scipy_zupgtr_scipy_zupmtr_PyOS_snprintfPySequence_FaststrcpystrlenPyExc_TypeError_PyDict_GetItemStringWithErrorstrcmpPyObject_GenericGetAttrPyMem_FreePyUnicode_ConcatPyMem_MallocPyErr_NoMemoryPyCapsule_NewPyObject_FreePyUnicode_FromFormatPyThreadState_GetDictPyDict_GetItemStringPyLong_AsVoidPtrPyLong_FromVoidPtr_Py_FatalErrorFunc_PyObject_NewPyDict_NewPyExc_SystemErrorPyDict_DelItemStringPyExc_AttributeErrorPySequence_Sizelibscipy_openblas.solibgfortran.so.5libm.so.6libc.so.6ld-linux-x86-64.so.2GLIBC_2.3GLIBC_2.2.5GFORTRAN_8GLIBC_2.14/opt/_internal/cpython-3.12.11/lib/python3.12/site-packages/scipy_openblas32/liblibscipy_openblas-b75cc656.solibgfortran-040039e1.so.5.0.0$ORIGIN/../../../../scipy.libs