Or et or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en
Voir l'original
中国黄金China Gold
MC:$3.6KDétenteurs:2
0.00%
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
Or et or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en or en