建筑设计资质承揽范围综合

建筑设计资质承揽范围涵盖多个专业领域,包括建筑结构设计、建筑工程施工、建筑装饰装修、建筑智能化系统、建筑幕墙工程、建筑给排水工程、建筑电气安装工程、建筑暖通空调工程、建筑消防工程、建筑景观设计、建筑工程勘察、建筑工程监理、建筑工程造价咨询、建筑检测试验、建筑信息化工程、建筑模型制作、建筑模型检测、建筑模型制作检测、建筑模型检测检测、建筑模型检测检测检测、建筑模型检测检测检测检测、建筑模型检测检测检测检测检测、建筑模型检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测、建筑模型检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测检测