ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffebdf0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x20024, 0xfffe0}, {&(0x7f00000104a0)="00000000000000270000000000000000000000000000000000000000000002", 0x1f, 0x4045de}], 0x2, &(0x7f0000003580)=ANY=[], 0x1) ioctl$AUTOFS_DEV_IOCTL_PROTOVER(0xffffffffffffffff, 0xc0189372, &(0x7f0000000180)={{0x1, 0x1, 0x18, 0xffffffffffffffff, {0x3}}, './file0\x00'}) dup3(r0, r1, 0x0) ioctl$EVIOCGBITSW(r1, 0x80404525, &(0x7f0000000580)=""/145) syz_mount_image$fuse(0x0, &(0x7f0000000180)='./file0\x00', 0x0, 0x0, &(0x7f0000000000), 0x0, &(0x7f0000000200)=ANY=[@ANYBLOB='fd=', @ANYRESDEC=0x0], 0x0) mount(0x0, &(0x7f0000000080)='./file0\x00', &(0x7f00000000c0)='autofs\x00', 0x0, &(0x7f0000000200)) r2 = openat(0xffffffffffffff9c, &(0x7f0000004280)='./file0\x00', 0x0, 0x0) fchdir(r2) r3 = openat(0xffffffffffffff9c, &(0x7f0000000100)='.\x00', 0x0, 0x0) symlinkat(&(0x7f00000006c0)='/\x00', r3, &(0x7f00000001c0)='./file0\x00') getdents64(r3, &(0x7f0000000000)=""/42, 0x2a) r4 = openat(0xffffffffffffff9c, &(0x7f0000000100)='.\x00', 0x0, 0x0) ioctl$AUTOFS_IOC_FAIL(r4, 0x810c9365, 0x0) ioctl$AUTOFS_DEV_IOCTL_CLOSEMOUNT(0xffffffffffffffff, 0xc0189375, &(0x7f0000000040)={{0x1, 0x1, 0x18, r0}, './file0\x00'}) bind$rxrpc(r5, &(0x7f0000000140)=@in4={0x21, 0x1, 0x2, 0x10, {0x2, 0x4e23, @local}}, 0x24) r6 = openat$zero(0xffffffffffffff9c, &(0x7f0000000440), 0x0, 0x0) clock_gettime(0x0, &(0x7f0000000480)={0x0, 0x0}) clock_gettime(0x0, &(0x7f0000000640)={0x0, 0x0}) clock_gettime(0x0, &(0x7f0000000680)={0x0, 0x0}) write$evdev(r6, &(0x7f00000006c0)=[{{0x0, 0x2710}, 0x12, 0xe703, 0x401}, {{r7, r8/1000+10000}, 0x1f, 0x400}, {{0x0, 0xea60}, 0x19, 0x1000}, {{r9, r10/1000+10000}, 0x1f, 0x4, 0x1}, {{}, 0x2, 0x7fff}, {{}, 0x3, 0xf8e, 0x9}, {{r11, r12/1000+10000}, 0x0, 0x1, 0xd1}, {{}, 0x0, 0x200, 0xf2}, {{0x0, 0x2710}, 0x17, 0x10, 0x800}], 0xbb) ioctl$SNDCTL_SEQ_NRSYNTHS(r6, 0x8004510a, &(0x7f00000001c0)) 00:14:38 executing program 3: r0 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000000040)={'wlan0\x00', 0x0}) r2 = socket$netlink(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f0000000300)={0x0, 0x0, &(0x7f00000002c0)={&(0x7f0000000440)=@newtaction={0x8c, 0x30, 0x1, 0x0, 0x0, {}, [{0x78, 0x1, [@m_police={0x74, 0x1, 0x0, 0x0, {{0xb}, {0x48, 0x2, 0x0, 0x1, [[@TCA_POLICE_TBF={0x3c}, @TCA_POLICE_RESULT={0x8, 0x5, 0x1ffffffd}]]}, {0x4}, {0xc}, {0xc}}}]}]}, 0x8c}}, 0x0) r3 = syz_genetlink_get_family_id$devlink(&(0x7f0000000100), 0xffffffffffffffff) r4 = gettid() r5 = socket$nl_generic(0x10, 0x3, 0x10) sendmsg$DEVLINK_CMD_RELOAD(r5, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000380)={&(0x7f00000002c0)={0x3c, r3, 0x1, 0x0, 0x0, {}, [{@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, @DEVLINK_ATTR_NETNS_PID={0x8, 0x8b, r4}}]}, 0x3c}}, 0x0) sendmsg$DEVLINK_CMD_SB_PORT_POOL_GET(r2, &(0x7f0000000240)={&(0x7f0000000140)={0x10, 0x0, 0x0, 0x100}, 0xc, &(0x7f0000000200)={&(0x7f0000000180)={0x7c, r3, 0x300, 0x70bd2d, 0x25dfdbfc, {}, [{{@pci={{0x8}, {0x11}}, {0x8, 0x3, 0x3}}, {0x8, 0xb, 0x7fffffff}, {0x6, 0x11, 0x6}}, {{@pci={{0x8}, {0x11}}, {0x8}}, {0x8}, {0x6}}]}, 0x7c}}, 0x8001) r6 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000000), 0xffffffffffffffff) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f00000002c0)={0x0, 0x0, &(0x7f0000000280)={&(0x7f0000000080)={0x90, r6, 0x1, 0x0, 0x0, {{}, {@val={0x8, 0x3, r1}, @void}}, [@NL80211_ATTR_FRAME={0x72, 0x33, @beacon={@wo_ht={{}, {}, @device_b}, 0x0, @random, 0x0, @void, @val, @void, @val={0x4, 0x6}, @void, @val={0x5, 0x3}, @val={0x25, 0x3}, @val={0x2a, 0x1}, @val={0x3c, 0x4}, @val={0x2d, 0x1a}, @val={0x72, 0x6}, @val={0x71, 0x7}, @void}}]}, 0x90}}, 0x0) r7 = socket(0x22, 0x2, 0x10) ioctl$sock_SIOCGIFBR(r7, 0x8940, &(0x7f0000000040)=@add_del={0x2, &(0x7f0000000000)='veth0_to_batadv\x00'}) r8 = syz_genetlink_get_family_id$nl80211(&(0x7f00000000c0), r7) sendmsg$NL80211_CMD_GET_SCAN(r7, &(0x7f0000000180)={&(0x7f0000000080)={0x10, 0x0, 0x0, 0x40000}, 0xc, &(0x7f0000000140)={&(0x7f0000000100)={0x20, r8, 0x200, 0x70bd2a, 0x25dfdbfc, {{}, {@void, @val={0xc, 0x99, {0xb93b, 0x27}}}}, ["", "", "", "", "", "", "", ""]}, 0x20}, 0x1, 0x0, 0x0, 0x20004084}, 0x4000000) r9 = socket$nl_generic(0x10, 0x3, 0x10) r10 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000040), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r9, 0x8933, &(0x7f0000000000)={'wlan0\x00', 0x0}) sendmsg$NL80211_CMD_GET_SCAN(r9, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000140)={0x1c, r10, 0x303, 0x0, 0x0, {{}, {@val={0x8, 0x3, r11}, @void}}}, 0x1c}}, 0x0) sendmsg$NL80211_CMD_ADD_NAN_FUNCTION(r5, &(0x7f0000005440)={&(0x7f0000000340), 0xc, &(0x7f0000000400)={&(0x7f0000000500)={0x4f3c, r8, 0x8, 0x70bd25, 0x25dfdbfd, {{}, {@val={0x8, 0x3, r11}, @val={0xc, 0x99, {0x3, 0x59}}}}, [@NL80211_ATTR_NAN_FUNC={0x2a0, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_RX_MATCH_FILTER={0x178, 0xd, 0x0, 0x1, [{0xfb, 0x0, "3d6c690b29e2b4cf9055f6884d1f2910596958979be543fc8e48fd18ca7d4fc0906ce178dde8063f49fc92965fc338009af4ee3f9369eb81fde2d5e8ec34404caf54006cb6e51ec969ba8e0fd66e924955271814418f7de1b698f0c6c291aad6049d7947c41f08b2aa71270e3626424902f914a34d60c8b8321095605d365e434c53bf15e59eb701254f366c65202c5f07d3155467bdeee026763d1814cd43a3282d82a53a73b2d7f6ad099cb55a68705e537fb82ea06a264c4e70607e2431d45af5f228c17fdd2d7493cc0dd59e2abf425c35d85df943c4133c164d6aed6f9c224f0dd55a9cb79356d6b57ebc69c79a2ed39d6add6eab"}, {0x76, 0x0, "be0945f55590e92ec773906de1e7ff4bcf8d5dddafd7201d1fed3e4bd4b3a597008c5714f2c98b70f2246209b6b72ab867cc15fab76f208ee79e012d93acd8605db2e0758bb8f59713b494bf8a604c0d469806155da12a0fac60355c62216bd7c8f49305bd83359dbc0ef7dc11142d91365f"}]}, @NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID={0x5, 0x7, 0x3}, @NL80211_NAN_FUNC_FOLLOW_UP_DEST={0xa, 0x8, @device_b}, @NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE={0x4}, @NL80211_NAN_FUNC_SERVICE_INFO={0xd8, 0xb, "839e5b49891e95807ef2bd3b463d1155969d912adc0b8ef0d10d5594a8f965be7b29aee8d2c4cbda898a46fbfb6e9ff3767e5a1a53ec20a5f61f90507211ab5e524a1917beac74528f55a4df3483ffc10f18eb12b3f04db2925a04654e274c94f688f5374d4adca4e226d96f0d96ce4470c8080817c25146d4a8a25d187f5f7e572da2f43b5e1bfa064390d31f888bde5cf0fb2ee77c49290587691d9f8fed781fd465fb6028263aeeb71b8bb37795e95d48a4d85745693a07b2e75f08ce361ef89d101165b59ac63c5aa02f385f83895fdf9043"}, @NL80211_NAN_FUNC_SERVICE_INFO={0x33, 0xb, "c6b259aab8f6f205ed6e151bd082ff0a86250f2cf80e86203614c907c184af857e79cd92c9f4728ded154906cab28a"}]}, @NL80211_ATTR_NAN_FUNC={0x164, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_FOLLOW_UP_DEST={0xa, 0x8, @device_b}, @NL80211_NAN_FUNC_TX_MATCH_FILTER={0x14c, 0xe, 0x0, 0x1, [{0xc0, 0x0, "26f6d54ce7c429e6e751f520d07f4eef0c2d98bf27502600b2854b0c8ffa923df06d227cd619b8c85c14688f6e06bed7c36008710995b08e666b7ec259f14756ca2f6af064e23c78f3e5c945b46f813b2adc8b4061613a2c1e65d0f0171795fecf1d1632849ed838665c977b80e63ecfeeab89dfdda28802fde92d87dd79e3700466ec95617d87b03e8b1d54a622494b7d59b5dc57668e71884a6dfd81d7a64b716268f5515224e3d3abf4af47a9b2f059056940f5283e9366a24fe4"}, {0x86, 0x0, "1737aa5216bcbd3f1aa1e3cc4130ab047a57f0aa454d07f8b6fa860df5e508c13d50c793c42381d7a63458ee5f86dc192a512ef07cd4e819a60ae11a7e464aff73fef627ed0fd947adc89a38ad9cf91f4861ac15dc582fa36a8793dcde762a00205b29f686f6cee7416ae8b5d52f0f78ecd754b7646dd924234ab12e621c8febbbc9"}]}, @NL80211_NAN_FUNC_PUBLISH_TYPE={0x5, 0x3, 0x8}]}, @NL80211_ATTR_NAN_FUNC={0x1338, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_SERVICE_INFO={0x102, 0xb, "73b916c2c516e323414abc8b1022fee230aa7aa15d91f93ebd09a803f8f38c527c3d719f778f410057e73228bca0c0a95d8016331dc3a58865ada579699a632fd9cfe60126ae9aa4a64ad3df5bc6bfd22711dfa7b015580731ac65195a2dfa95fd3b83ef4c0f08d864e79823ca32cec4be49eaa5c99fe60aa316074312eba5bb64cbe854ab4e4b9467d00f7fab496720dd3575c51071bc38d23925dc69fbd81c106f5fa147e5e4e76170278e8ce64ecf41d11d741e76835ff78856067d535b0d591c8c98dd62ab78f21aa308e2459eb9865716dce9fc4f104c53387ca62ce3b1482b6d655aad88467ea1482af15bef6e2a1464b9d82f41d49c1ee6b891fc"}, @NL80211_NAN_FUNC_RX_MATCH_FILTER={0x11e0, 0xd, 0x0, 0x1, [{0x1004, 0x0, "d57972542784b1e85ab84b1f443964b1d1437ce3699ae28bc2a84aefc0a50cdf4dfe1cbb932361cb5407f5e2ea432f773af04a72607de2b6220b3f6bb7725e8ae7f21078ca8fe1f25c7f2d748e3e683c518b26e407ac0e0c792b8fc33e2975a580336e3ab54b3e52c18992107d22c2be3bbb91b8418a2125c81cfc4c9bc2ce16ce06d3a004948ff35077c20f0aed319f28a80070be369ef03393d41d5f0c1b1081d3252e248c4abf3da7cdcc57191191a1eb4e2856986521f3899db3a30aea3ba18ebb0a4a9e12c4bc6efdf0255dbc44e1dc03699c5ff00fdafc9940934dfbe5aa3a9fd8df185cfe7ed21709378bf34173d8da746e1d1d120b01f94f4493aa03d8a240cbc30bf591d9a9603b48fb01d7271ddb1f6a04dce08bc53fdefc22af8fb2f19fa6d9f090b173031232a595d51c5739d57072f7903aef7852a7114d5fbe63f6b92767076edccda80c3ead0320e127ef32d000cc0348475bf3e68b51047e2074cd70a092bc300a5c5c3a3de087069fbef078e3b84332df1306cf821d9952003b1279ea6947c2e5717a7d62cfe091bc566b80467efd2a577f5192f60c14e03acc4e4b449e9265af06bae6fd07bd31688904d2943de678bad3a4085047652199794f35c0796398f0b847e69e48d38922ab31d1128db0fe6977d2c8d97a090b907544d3781b0a3a77fadaceb5595d6ca1e30dd9fdbb8258d79be38768d8d3d9255b3a4a9bfdaa0360da42cb6cb9b22186379ac821ca8848ede6037dc7e1d86483a010f6c273e6227f454b97f4d80bacdec23df2de5696bd94244c3da00af082a49eb877b89ce9eb295da3660bcb258e003893d70d20986b746fb85aa48b0cf65b9a435a55b1b45e00927a371ff003d5c29c57360a831d7fd9544c1ce04abfd404bb7a849b44849839d5f6f012b194d4424aae72f7cd206acd25dd31efc059c883cccf3510277059a984f4e0d15e48656b60b155f752aa0c913fc9f90f72ac3d65d7c3ba1dd390a8014ce4222b1206a0dc2b3191c0e29e2bb4ec04e3a86c5fa290f54c3565a18101762c86ddb50b1932b391e6020a170c3ecd4b173adbd06ade3fc6113165487bbf00a4673aa07a6974c4738490e3011e9d8cfd8ee6d556f453af4142e467348e44b7ead729da8426ba418609ac56b382c01f1885dfe4f0bdb6e67e9a1d0b3b551590ac2d83c9944b645b7f132794d5aef5ed23ade7f9b6cefe31410456e203b27114d5aa0156a663341336b9ae5f319140244070765acf7fb5c7614231269b349083ec87f2b2b566170eda2bec7c2c7f74108b7c073e7270f7cafb72157965a9ee12da638a3510a181b7b69dcf011470b7b49d6b7f31d5dc68d939d051e7b483b569ed7906d996794cfc554fa772600570bc081b663fc46506dcefa41cfb08a4849d2e6a66b288fe1bf9fb7693b363cbd981c7bf7de9c9eb53ff01dc2ba19d7dbc44883114419802d3684498a66f4bc03592a4adb782069b03ed14a9450a47990e55d4e32d2fa9e017ffe01354721833f8bc89b2b1a3e490b630855a82c860edfabaf9e63a38415c5f99f35798d98d932cb07334965b9c6d71bf95caae243ed90fcf30ee19a1acd75536cc0a25216b4c9f58175272e32f0ae6d4242c7c214554118570d8654f667b5e7805542188bd58c9b5d02928fca2380bb5c751e4896518a9d1b4f288d2640071305ed3803512d11e5dcb3508164106fc1bfb11f281b67370492ed58b6f34ab9f05316fdbd405345c09b6095a51986b7e0776daebebf7f93e45b2f92d18d499a7518a619ce91b7272aa7a5f59270c5082e7c83187ba24bc755d75a790db322e57b4b057d47d4ba90efb0d824187eed667aa2bfeb679fff4c28176c6d8ca88a6782e1fa66a27a8724dfb59b88c9a8e4b700d4c1679f5f319a925436667bcbd16434716886499d59fbb45d233c20ba3209c25ab25bce0544d93d118aed511c51032e54426adb042db660c5e16c47095ff869778b0725aafb003892f412df709e94c6dddd1822fa40673290a4fbd560c1c62dd1222605dded2e875e353f2bc4806938ac8eee6b9375a05cc7f9bec3ea16232b334b4b583e784e6f307cc8bae79751a33d5a9702413f697b1baa5305aefea7201486395760996b74891a8bb0fb8af7a58326356186a6b0acac2ba37a088cb64a3c49fdb029309854c0e05956ac98d08388598339b2adb7113c9f5d965b89b089084023e88010013fb75145bd8013ad3bdfad371177e6fb0ca9ddd069d2f8e8267d33ca172cb2d107c65c06a1598a9446c83dfcadcc1cd9a70e4c05031a8111545244129011791e34477e7745b0e7688e0be519408a089df387ecf30dbadc8fd478f8930f54950313af08c456d50adfe67abcc238a8ea86c8c3be1e41187c01ad1c75f99e31c9ec16d0f4588feb26bb55634abfbedf00a835caa7aaf8f29bac6285577132492462a36bb983d9815f798febe5ad520d087ddfd457ab0bbb9604a3e6052cab679247b078920f496d64e6278556aec53cfd24b8772baa55e47c36542aa16ecbc30133dbebd4a8d9ba1fafbc27644d5eed3b1675082161bd670c6a9034a7819e90e9b259fe854650e1157a0390060d744bc5e0ac905cf66f4447f414a97e6be6810bdb562c3caf5da36d7e00dc96f26bde53dd78bdcbfe876661a910d9d0a99ee99372a1018759c826000c5c69cf8bf75ab258df1c6b96f62317521b4df75ca94fc630b56ff579ab88226f71dedf9b0d967974c8af27c26d4b9c1ba4a7d24c216a437ceb0f3a39da128ca08305a2cf96e82d8e393a1d2502b1f4f91607bf18b503a84db9b0a7f8b749f5ca00a4f02285500f853894c7f08d2979c8e11af30b485d1d3100d3f7271b9a405cd270fe3816ebcec4d8657467601b2392b759ab6c7ca26b8482edb6576ee64da4e2e3090d0241736e0bc5aa9882efed3ad30772cc8bd73b9a46e1d0ec5954c8bfa7facba9c2ce0a64de04519af54f88459e89d96d6e0da74a69c72c1de1ea4bed874adeefe29d31a87771dfb6b7ea69b7aa4ada571b9c76a8ae5907129b1046e5316a6d0a6c4ca0a4af405f2db541d689149c8da81c075be2002052191709d05321b87508c4803ad2da83406f5ca46048eca598f6c7b067814b14b5d92bf7dfe2d3d29480083e33fa8b37044d445b23e0f2d72832d1000661c5b7b152d5ea1a83050b20ff92cda1abd5a6b3a5a383d9da32f937ff771a63133431592ed5980960439ddd2bb422e3d604cee2383f87abed79587a9c79e0c7d595dcbdf45296c688f602096a3b8d4a914f2a88af4a0a92b03a3a643b5636a416c9c5597419e2697d26b8a4c4d984451b7e9e9cdc97ef596c95ad1777115515baed70139af86a25bfcaf5289e9a6b325fc1956171f26e20900838b99aa2e3d10d845c1aa970c78a25df0e88294446b2ebb0cfcac479a78ad719d8ec0bab460efaa33486a00ecacbea291a99f1f3e1e808826d26b16d6efde4fca0146b99c05b90ff17329e02ca12712573a7f4c51b9de03f07133d4f8da0f0bcb48c33699bb0e50c1280dc635467804ab2532f8d9358d57e215ea785fd4c25c0fc57ca3f68fe671bdb205f2dc5e34ba912843585f09f2bc26c03c67a61b3ae1825ea0e9607afced54ef8bc5acc383ef31c180184a76f011fa2f1b0a6578fec90b51ace7de3cb0441e7233ff94fc493552a6ce99b55cbecbb91b5d6ad93ab5a8819c3fd21e6c555ef65b5a876e83c2bed93e53e52d029ee1051e783a61bfced097651a53105efc53d77fcd068301313831145bbec1651dcd32ee49d995df26d2d41db14008fe0f9dd81bc1419425722c1e582bec9a5badd0ef4cf8bff97106a73f278080f9b2c51cfae7b189ba94c852fdb8006f8cb68d302deddea786c71ccbbffdac3914bc43c494619be5d8672e26b19cee8800a4050355b30362e49dd7c2cd86a7f26e9856905c04a65b156406dee45f51c5a7a3bd8ea5c3a7d039e1ecff142095bf5fd81da4088353fce4a448780bca5f24cd9f22af5e98c4d178ead2b062b5ef9119b0934c8c105c7aac0da84f7b1a4bd8c1f9fa0aaf58cc6c3d31a078c9d29e4040e78f01e04c09b7ea6f3eee86535781005ccca14d1adf53012d5b58458305f1f2ab5cfbade463a1a7ca4f2ef12e09d228b972effc62746dafae04d4de75c9bf2903d1ba22c92fe7ff2db1925c216a4a8559b5f986a5e53f372befccfd95c9413df60985d129fb7e62546db5fac91127341eafdf731206d76cc4954bde97622eac9d8fd2f1d784ea2029250db44292f1a4427750c140a9355d85d9ccb57156a3e9f04e394cc0b4ef0ea340686b6da6e511ee207d62c81a7d4af4b4d1e02a18edcb60b3af02cea3d37160f3443a946de7793edb0d163c574bd6f4b014c1ce01f8dfdbf0e4d76b5ff917f0ef7ed694aec8c6a60776617789bc4e6f6ab814f8be4268a86bb7bcb54ba8cb72ec31a10d2afe4932a3b5c21db3afd22550c14d263cb7fcfd4a2191d9df8b16851d8d19c69c4f68e2bd562bc8efc91aa6935a809d15e70fd8fe91613062086af8e4577bad0e7f1be7ce8bd580340922b4d6322e9bf488b6dab8ac54e12c53c3fae9c90b507bf743dcd80ea34a645d3e3024051a141d21853072865e40188ad89dfcc75f3a552494ca6ac2c13bb01aca46fbfa2a65829aefb3e04f6c82823e5bcfb2f724e05ef1fe96c13d85447fae61144a8090eced9f98d70b1b641352d5111347b189e09aa5a45991e09ce1762a9b8e2cb342e6cd81a3bd026f6fb12130b2051a61b0af57029ce5df4598dbcd4497efb2bc057d871d601d36647a08d29f20554d4f1766bd66e62636107a6485848ab872005136cc8ad667d7ab39151998541b9d5b8bac4a09571faca8b955aa5775e93580420857b5fffc2e496787439cd6c3f50e75cb76d7e109e3adea2d9c9f3a0b70ad291aed4e66abe9afd7df371e7861a35c86861df5e4837c05c634342e811f522e4c10426da39fd785f306ec0c278d5f163323e645dbf81f6ee8d3aec739dd72db3c28f97e2766848d8cf023b0477cd9571c94af07f4a5ad67f551c2b9694a9cb08dee229ce7081b936781c3e102ceca4449a21421bd47b67e2d6bebbe99a75e2548ec0f4743342b82b820cb9653c09be0f5d5d771c41b0dc4b019e77fb68bd1cfd3065240f2eb1e2b054ccbdce7d8581e29ab62990b819a992c95851d94d5272d79305488c799d539df1e37f7e57efdac94be1d46c8b274eee79161f08c042f5e2a8ca42ae547038414194fc24764680c15f1d11e5b067290c1f144920b407b0a07340dde7f4cc19f6335d66811263c11bb541836810a61abcc8b8e0a43c922f083c23e19f22ea40ddea5bf4bb39eac6bf4e85fab4f60f6024ee3cf06b2bae8dfb3480bf61dd98a809e4adb18bf1e35ed884ba81565f5f15a0dc0fa45641daf08f3101c66e2ad51014822a486b45214a70108e56578bf17beddcbde011227d4e45866c4995230cd15be46f5c35b956fbd5f9d11a312aef6ecbd693a96dd4ebac5467770c725a46b7a463357424e6883f5b032f751d7b428a36f85fa2cf13158e80b174bfb70179cffad7f6a9730db86b10e14d6f9e1587a711a5548d285113140936140c103cb21e49f09c114f5a766e00e818e410fc48d9b5fe25de7b2fa216e899d0e313b926bed98939164e758909370c49bf304b65d3b03e8b9602183268e4887deef9d59b69bc1e623e226e125ae9ccecc95389fd75d6389fd3534e91fef744b9e5fa77ea95e8a917fa6caa8c95eaa2920edff008674ae3bea152330cb5f"}, {0xc5, 0x0, "4ea4c93945de72a7087a358e110601e95eb217367d5026a5068161b84475880550450ac5c9d7068f713d07083fac9f92719fb6e86d0d2fa1cd71abe6591c3809963b82dde0198212b7a6d75af67f646cd20b60cb09edc18deb1911e4d3cfdf59f2478f243366fdfbbb76a28b1f3809422695ca6a983d043f8f00cf9d1d5b192d0ddb3291e5ec9b9321f126156bd304dd108fd2fe878877a0c77739e661c2812c2def93e82abf44bf0a184a1aec361ab2d62b97831eb125390e8609c4c44d628dd9"}, {0xe4, 0x0, "9edf1e30bb4d66cea7a112479e2c23d7b0e6563f4f3b41f8b2dd3c24ec76b34c44999df534e04569fa66190e6b4fce238ae745b2d092b8089f39c1a0eaa985a4fb3b604287b320ac1c1923fa7154c84f223cc9f8fdf8cc2af8308d6b91bcf5c804c45271764a17efc5e9fc5393ed95d08ac07850f1501335ca781df23d01c385cd4dd6bbf9f78e6f812efbf14843d7267e9fc2bf9ae8775c6111bdd454827090a113a2921a19ca38489f70b1255b03357825cfa0ce094fb98a39103c5410605c9999ae4c606dafc16ec724fa989bcc7ccaea4ee7389e8532f9a8488ad60656c9"}, {0x2c, 0x0, "6cdeb2993655d05f18e356b17618f2236165e7a7314fd6d817edb5e200c0bf951e9abe2fbb084b09"}]}, @NL80211_NAN_FUNC_INSTANCE_ID={0x5, 0xf, 0xff}, @NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE={0x4}, @NL80211_NAN_FUNC_INSTANCE_ID={0x5, 0xf, 0x2}, @NL80211_NAN_FUNC_TTL={0x8}, @NL80211_NAN_FUNC_TERM_REASON={0x5, 0x10, 0x80}, @NL80211_NAN_FUNC_SRF={0x2c, 0xc, 0x0, 0x1, [@NL80211_NAN_SRF_MAC_ADDRS={0x28, 0x4, 0x0, 0x1, [{0xa, 0x6, @device_b}, {0xa, 0x6, @broadcast}, {0xa, 0x6, @device_b}]}]}]}, @NL80211_ATTR_NAN_FUNC={0x326c, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_TX_MATCH_FILTER={0x325c, 0xe, 0x0, 0x1, [{0xaf, 0x0, "7603627795ccc562639807ebcf1bb92afdeee341e6c2e8779644925ade256c3c9a328ad6fb1a710035cbff91a179ecd9a9fd1935c36f929d30d0d3c42b8d224acd861af74eabee7846c0c4d40ad2d39636a795034a5e8f523e98e47b77ee3209c4ea63d6a80eb5ee4bfcd8c724c11e8ffd670a5a33ba89e7cb0402a6d879b54e8f819025412e1dea9ecbb4a856dff31757c2f835a0fb3bbe0c8c7de5f5927fe0526decba7d429a6e2acec6"}, {0xf5, 0x0, "f471018f5db37ab3eb3d963adcef7f3da187a236742ef09105e10295f56e3065d793cf861daf934bb03567febfae8e1859085705256b07092a7cb8698ac5b0066d1a6a819de8e2903ae645d456e0b202c5e4af1d3cf0dd39b05dbe6deadf2e2892cc43b2b2d7c47740a0bcf4628267fec49ae418222b2ce2ddb053feaaad49f723dfe55b69b423103af66be93a261ee7150a40a0e8e31baeb753cb4419f3dd4487977f18f01bd6e7a9d32c5591009ad75b88190b4d624d553c3aec77690dbebcca3d3b5427bc447f6668ef16c9e847ebdcd3220451c2290b16c6f64beab0a033ee51402b0db98b7ffb5ca0092bc66f942a"}, {0x1004, 0x0, "34835d7d3ea240f9c7f806210dbbc3ccfb25a83b0a1b2aa0cdef8ba2be62fc0c74e87b0f372fd6a96b4927ef6edad4f960e93a4d6cd89b4b380745fb50f7f3fc612c810606c617a305408f71fb7a678b53ae3a79529180787b92062ddaffa037a6124b42314e67f8ee18b2d543733aca18aeac7354a615d817fb80df0391837c5accefab7740c3361c663d7fa663e911a3d16eafb7fbfd8be154da9bb908f096612f66d1f310bc9e0ce36778f9caaf7bf265258611879c919e5348e90f15e4b57d3a7fb0bffb704b2a98c63fcaffcd35dae499ce94cb9dd64958ef5413366f98bc7a4a66fa9090b5c1f1e9f509e673e36059dbe98b21d90cfb6dba09498fd6fb32d13fc031aadbfe5ca63cbffda072debd721c41f8b59173028ce269f8b5c979bb472280022edd4830cb5696fcf11c86f440ed7db60fa98cf8facbb814b009f1e3ffb4eff6c3b88f6290ca3e30f1f22eba6eb9ffecfb59978457ad7b2c79bd02fa7e7c01939302d56a700308bd37b21aea924fe27d0e3de6368fa0540bb7a12a5b1d90af094a15453eee8f5065204017c80b0156a937ef524f766f9485cbcff11acd4e271842c1ad914e6f441c56f1d3279b16aca64af06fa0d1c7169536bb8cb5a3c2e3f4fc67cbba31208b9bc2eca82dbdda3ca4217dd84aef32aa57ec2bf918b895eccd3f78e6cd6d38d4af7ceb92a9f771b64f35b6ae9dd7fc2996f2c98e9217ada62ea415b65082043a2139aaace2dba56c15c2aa75d6b72e55cb4a03c033f9ac09b962c35030cdca1ebd1f720ef921b01197cc1624340c9e799b4eb445910b06e3c9a0c049bfe74c0ce422699471df5c55f8218928238d8a20517f5c27b217ebf7a22cf5218f8a79bb36f046b827a2b9871dbd33d0c5f513c16aba44270366a1861154b8a9305e7f0e2edfb10214966bfd87a5964e4d83eae047591da2444a11071cc1dbf592dee86a0fed5723a05446a0b899ba3c40987c4944bc8d97e572de48fa0d43df8852a60b8ad000d33a621717890ad57ec73b10231d1f3f47751d69527d68589a3e876ed80d40fdcecb86674de7caca593aa808f1dda0134cc210c964c70bd3c291044ff5f4456dbcf4b79ebf2ecb36b40a996c144f05ef28e7628b6467860ed50e9cf6f8559880dda4ccc841d456380da82022dd542cb82e884388aaa12781d8161d02a75f0e32149f6cf59105a2acbbb77af0959bba1e9b66b19f8d00d320e5ce604d87c0c35d1a99cf58e4ac33a0f8ad72f37171006901004a23bcb5fa05639b1b8c0fb386403968f0e45796bbe0b0a4fb1793bf37d19402c98661c04034f9de17c11bd13a88d711fd49fd0376585f4d405a14e3ccef51a11d56da33bb6f24ac43a03980f7d7782934555b5738f4796e28a6b2c22bfb5cf1ca1121629e4f136d578b76445e3707527673128a6dbaa711ad1cf4a4dd31179c19ae808fa8785ba8aaec2548cf733ae7d8bc6fafb87b7394591be52bafd22360b79b92bb9597f0e52a2507d63cae1de6c19f3086e55f58c440474de4819298953ab996804d3c057ae1f5d25a3fbe6226f9fad7e057d61eb012479899299dc42c4c1323361a59fd3ebcb411cf466701760c1db550ab49f79dfdb618d2c383901445d912467083d1c57790b091e30e6223b05bba88cc1f39703a95275e68ccd1446fd4adf85604a098f008fbb628cc42745e1e7e83496958876937139a2e613beffdf4ec2af997e7e9c6fc90042a8517f45aa47397678c341abf050af3c51fdadecbbb67af0fe124d8ed37d591732e0ff25cc799c6f9ed9d975737d3cf61017b51637e90d465624d86f9182be1fc00d26ce3ba671a49e5b8f324f331e2d56658adc521b67cf29703c53b64a5b62c830c8577cf259c91135f2cf54e42271583233a4f141c98de809de03319558ee1505e1ffd87a1604aa777ad83d3d3726e8c8072ef5ec2e3b31a672300083cde07e5917cca0b41ef6ccf6396aad00417be6f4e630270853c5e80579393f50cb152a1285ddd87ad687e7d2cf1e755e5dd4a1297a6ab5bfce209a4355773e1f535907c6b3e3a00da4fa512bc1a8885a3b6d4c433f413eb1e52a32f37b8d4f1f8d7f848fb0a47e1a11fcbf1445adc386d906e2b85611716596d9dcb2750a6cfb99134ff87cbc22352228fc08520ef81f60c630831d878bd87d9faf2ccb55973090e573912799b6182062cc4b08de00efcf8d04ea1efc2bdee22896e92fc945e7428b94d908d032178ef716b062b6ced27d1b18874d7969831c4eca580b6b86b93a15e1dd59aad629e8a5386914bfd27be32c0f9ec78cd7d164ad8a64f219aa91ba2e5a974592f5f0d7a5e27aec13fe634ebb02a4649185cc7d7875db48ebbb2a640c5dc55100233f66a9bb74598dbe1da8d44ea3762167307fba484f80ee6b9b0259bac3891a1833b54b82855489f0c7b1ed355a8b8515e37f4a9a25078cf9a54ea1dd53b3f11c93bc99b9acc356fedc3bc5b885d40e3592812a39cb6bcea8dca519fd04f36bcd29e258cd63c61e5ce2e215d0544f69f6f1ba9272f587629ea381fd9a67c8ff6f740d143537935ed6d0e38709228106e878b7b9d14ad77897113267de742fc93365456afbe8851029e523948942c5b496ad088d09543f462417f9b00c07bd19f2f5f2ab18a3cd8ee8b3af4a3da6e39193e3703eda00c8b632808ba339265d0333498602f909a7414cb8bf1083e573a7ae5dcff1261ede926e59c606ebdafbe183df958ebe689aaddfed9bbc3e816a5241fccd5eb399879b23070bcdea20934eab7d352a21b327be2b92c1fb11c1f28f06366ef6e204b5550dbea830464d273c3934da3c30c39fa48d3b113596c393eb096059a4af32e602a7b9f155e84e63ac891c2a78fcf8e9e12d06a14633777fb91b9b5a8cac22eaf43da04be9ec9447ef779bfc1bbe34ae0fccca10ce30d9a907b1449e4007a0c4e26e54406816b9d70f10fa7576de26e8aaff701815202495a13eda3f122d60f2f21bb308639cf5fee7f9b8c604856b63376584ee2a43198f48e27095a1d7d3f964cf79a912eb6530a9a9b4463c89d2eed996021d908d482288d215722cfc18c2ed289f4453e99cc5a5bf3d54d6b198c59d64eb64de8e39545574a01e5fe6b9c411570a038d89983c408c2a91f5b7c8495a1706230b5cb1bd7b20002acf9f13dcc24fe5c12c825754e88fedec5161de28b3b84c79bad4aaeead08b6ad400789bf5adef1476efae7c3c72a701a151908c09410509e40095e6fcadcf8d662b87de7458c3f505c09cc8197ecd0d6ed01f0acebbbff9d714478196dc2e6e68640c5b197b50b7bee21f4dab5ab7dee57eccb07b3ceaa2a08fdeac81ca1a224af3239f59177948a152a239062db21330c85e38f4fe4fdd8e8c7dc6ff5e9a45b48fa0ccdf1eae78288920c08febcff84cad97b22d035a2f0a2456c6c1922617e2777514b75eac869ec14bd1155ee27806e057138ecd25c23cda6af516c52c7ba5e3af0def9b56e9b70e63b43475b674b2703a448bcd5065431247d29c023fc696bf6808e8beaa2b96c31a9b4e0b4a61323c93665298b0ef6451205ff03464fdf12603060970d7e436585d08c627c9e455bb8a2278f487abd85f0654a05b3e7cecdaea093e3ab2c1e78709cad1b481222f825e03c02e84e2a722dfc4b97ce4bc7b8e1c755ba9a642fd3ce6ba452929d232759d07a4ed2c64102a1b5efd425f5128d8ad2ddaf6dc000024751874128cc1b11a81c2b12a818eacd8ca9dcabfe25adef3f60e7ccf020e7b57d0fbbd791d5c0097d981c8acbfba5c3523b13ca435b3f9c7bae6d9134860b175c1c6b8d13a7d84c4e6ffc4af602ed9a10aa5e50302d39addf087344afdabfb0c395974b1518cc3fc9ae38347e9388de8a757435b7e10922fafd1908267e293f965526d3847a28e34ed55a149df83346a4542296f636d30f3c9c238db8df52efe1d7abbe409b1690ab35ddd572725cd19eda35f1028afe2c158cc37e894bf8371e2cb5c63055dd7695f7faaaf9de276b3a2e17cd2b72d1b21c02a27be8a96abcc982d4cb75ba9d29971a8b0df7141f048ead08ad094fed3ab1093b49302a354bfa657d0a44301a3b864b76ee0ffc000950b72c644a0f2ed39f9f61a741f874e48a1e31b97cc502bfdfec4ca3bc8da22c3d967d7ece886c00cf3f3fc19647d9c7b82cf0cf3821a32c5773522c4b5e8f08f214290d2f38571a86440173ef802807bda10d29716339cf915e58584278b3878d239b70ff6061c64c9790131c011c2aea936431254cbbe29e2dcd4ebb27206eabf27e59450291a0448a5b44dd07d457f3c5ba10be86a4d8807588f5d9ecacf99f33340e75faf941917a2f83341de3430ce22181685db1f1d06e399884ed8d2cb447fcd9b299b1d4071483d54da33a6914ef0ecc733e96aaf8712c3d8adefe7cb2c8961b1b54dd0d69f7a1888c4a79a4d50b1f854b4eab95dcd88873b3eda025a1347b30e202fdb8dc1a3f121a1e7470a60dc274866cf754b3cb9259f57c6a92e0d5a60005448df4872596e717ec616087d1e9001bf1bfb5d1397e0287e74a8b8d980126b44aaf3dff2522cffc4b60d66a895551c94a5a0f36b166a98cca4db4a18a5d0b5f2f526930791b48892a3e3097490b3d56bf79df5e59226c1ec1c47e660e5da78c64d92780fbcef1c4c63e7c7b077f81f12d5ee01040d54157ba91e5025215ea3df82473e103ca38d099ad609f268e5917323ab2efc9beae16ccfc6db88117e9726170bcfee9765016ae2d1381eb2b7143eb8d00a9612911dd80f9eebd3785f503464dc3471c0ed50cddcee0546e76d6b621e5783337dd23fae91c188f0b0c2210397ac122905711cfbc24ce52570aab86cf8983b0d6c528e03179aeaebdcaede7581f035766478b0360293425c5a11bbaa26e151f02338dfb26e0e01d908ef25ff92c60bf1c82ae2cbd2344f0faa24556de863589761322bc0c54b18d86fd9f50f82de99e9868b8a201aec7c2d343c9c061df22458d2cd7d62b466bd704b7d9b5b2b0490e9e1ac8a3f8997cab66cd95d93f91309ae3280a5043cf3090a414aeca5837e52421b4b4c17fc25f961f8b875d67b7b5d2395c0cb194213a943a977dc988f8775a8feccaaf32e7e7012cb24d262e540edabc282187371cc915f0446083e58bd18b04a60619a1e8fda46758347ba82ede48d011e8c1a9d75e13986cfcd1af7386f262bb1131de2c28faa08c647fc23b4b2f5c38dc0f4cd8e9064f30bd45489380a834ac12dc1a9a9e9dad8a4e2c7e03178483a3c26a01ecec0cbbe0bc7097afc81cb08abfd874dbc5fb2d25ca40fb9ef9394780469bdce2d4897c3b84585487525fb8882d41308d0abf5ffb740c485ce1a530f25e251ca49f9d78d3490e5e665657dc6434b4479bde4dc014c3cb756891828ca0a2affe741714ac8d81d0887d9065cda31455b11a29b9f5f5ddf914576e968acb417f1f2473e9e31adaa6afd0f83efd71e526efd4b8739f67fe3d435856c07cfbfb9c63b15de56ed44eb20f45e50a99bdfce7c5b387c09582458dd2c5ac1260560dc0bb96eb4fca51862ca02c0fd20308e2726f1a7674a1f1843f0c526350a100d1ee3e4bd4aa128a0ed5f07f2a2495bc5f8a2c505ac421c084a8d2494ce1c14679a3d5f957d613a29d947a414a238368a0a028e2314a838296ee560fe2fff9e47598f48d5ac0f74f3603bbbcb19990694ff2b09b353b8427b253d1e8382914e1686ebaef2bc88a4de2dc2b5ba457ecbbf5ce5e40ca653e949dfb7c6375689b6a6f6ba537a97eccb"}, {0x1004, 0x0, "7ae053add5fc3337511b6f1d45056bdf70688e06f10aa72a7b0b79546d616fde606ff437d532dd6f7472dbceb3c85d216756bc558007d4babbd2b792da0fd8c66f4eb35afe425e05cb4b2f4ad8e433fe0c822941e30a706443be5345c9dc5b7f9cdd715277d930b3cfacb51befde4660e393e0fba769399aea11c2fbb0d3783bcf33d7bb014d6154d016c6fa02d39ff59e65cc7339696e5665b1892546a34b3d44197d7602b8cc3adcf2e581e45b3488a1a457c2a5a777705d9b770544651ed0245bb0b2653c51d77fb5d6bcf083ef6ec1dc26c688cdb9991846c416cfae762807cd537cd8309598cc952d86a50df32e037fbbf15f7ab3a4d7645fb0525ab448035e34b42d4376b22d69496f3506be10f7f3e4bc6aa4297bce14d4b4a28e7b90dbf8eb6219f9db53207bc2b919f2308a326f95d6889f7bd74602a76cb3992ec39f2e9a089afac5b996bc1ef34a3198f0ee3958dd59e683d05093244d525fbd3a5ae6b36f9cf5ad0c03a21b32d60f5345e84992884369206e5101596086ededca4fbbb1336aa5b5c0d4e190a5cfe658e5429ef390813c6240abbd5bb21bf631f09f39449af094a2eb60bed5e20273fd0d6349795a81bc268036820b484ce71c31a9d2327ee8964edfba7cb3baf50a8c53da3568ce954af99c79a755c31bf87591b81ca21f684ed366dc354f0ea4f44245451b35edb938c512fa06be06cd49229667390ac5f3ed9ec74d0f8ecd96b359e447a1a68e43751923c2a25da9aaf1d1d7aafd87e4e773577c34108ff9f2c011fe222a0f714ec7eb97dbc459ef7bcfad7509fd2ef1bb6dab222b304c862379d1844c56d490c2ed755ca561e26bc2c79313d041e62eda8c1dd4ebbfb16952be3e2da2e9eca579432029177cf7899446eeb3b5dc8067bb20d995e02ccf0d28e40f54200c11323b3e5f71938b746bb4a7acc733f5f8f1d2e0422d8cda0733964ff53d72c97b28a561f8e5a9b3039fbe5ef39aead59bf133b16ff62ceb9dfa26924700c48acddae8223139f17c77648d6e455b87b2f16a1cf79fcab340a25796bbed13f78490db88d6a53918655a96b2ef31875fc29238a68572a104df88a36101d2c33abefbb06d6b5efb63c415d232b4837e3ff7530cca944d98d8985f4e2c9a5f92b4d0c310b2a10d70c3f8275fa869e918cc76a6e7a2e360b82d094bfffd6ffeb0f4c4ee8d6c6e1183868ae09ee1d7c1d4e3810a02d4399fa2c6eed1187180d88b06b5fe51d20408ebe8c07453f7ce4f1a268e4c069f559640a4d936117cc4d020224ab3090737f81f97889882a756a7ae82ba14ab2c00f7f52db17ebe9c4d989b018cd352d756b093c1b0275a92548950242638171d526dfc88c5e6daae11a3dce37d5ede5a5320c0f7864b24e7135c96bb76bd377f9ee2051b8222474ae65387fa7a4373a67e374a870ef2bd4ec8ab8c4d3b1e806f2ac105f7ed485c09affc95d0d81c13f5cc05a9240f27d48a7e337b966d3de447bc4b1878167f0adcbf085eb3a8c6e956c431c7402e5c7a46a12b18af56ef2b5f8508eaa51207cc54ebae2e3401645f2067f65abeec0f18491f0565eafe89e27b0a365f92155776523abc0975890f4d78ed5c614524977b0a435782888e99e5c52a813cfc78ba671409cc724435ff9bce8bec7204fec9b1e12a39da1d513c6e76b359234fe30fbcfc78dbf404574bd798a15c9d57101d4186306069dde7baaddef52a9c5372197a18d1822c3910cbb15b3e7b8479804e7b209cc558b864e519ff34e801edc7947409f6687da3cda8f876df0f75908fedd6eff7ae867df26b1653e9acc3248f41880c43051d55c863c3e168106ab9fa8c06bbfd4ae76a6cc94fc564c33295c20a4d67d17ef8056448260678f53c95f07b0c79211a8f10a412e3e0f58ee407e286f23634b4239c3f31780205be2050ffa8b9bb86720df0c73a0ae49309fa39468f711a1be34023e6aef74ed9069923a7e8892bd5b8fb00c995dae2c68635faa472c31569d60b534c9f4c87d29a443423d762d0fd2298e8eb1da27f2e431a7b4ffdc621dfdb2e9e0cdfa8dd8836e0ad3082f094be4cbe750f5a1f103844238c28298ec15ebb661edb398db1e7e1135cc7c6114868eba8ba86166a07f27f205eaf91cb3ff1bce7a36c6dec50f753808986493bcab1a5eb38b778d5f86ed43d270f4e8a248793af135045436c037c6d744cead4dd96942a448de081164f65982f9fd53a185ed92e65c84b24a3e625bbb9e0e6f261c4683a6ec39cc7c4e97d11bfb737c6f3cca914095417b961183f15f3f9a0d4bae1c1025ebbc0a0a3c40ab60d985cb269b81b43e60ddb2fd7ea3c2e09611b19ef4e9779ad60caf5b399f27eb0a2b2c44933346ca4c7b2ec9e138ec763561fb965418185614378fed18fbd40573cef2c4d7e2b579a4c4a3e0a758802068b6846e62644c52c28ef5ab214e7c8f504a7d52a50c7c247855cd30d6d9a8a4723a433d118e044f5b8c1feb73223dd8b162eda1b15da30deba22e4f6f365831f286172f579cbda39dfdbe39fa91aa364984246b4a5a5aa43838f1177550c2b4d4450d4bb84f17197cdfd2338979fcfe08dc603a55fc2ce3a0f3f3bbf92d3de187e1bf5d7ddb792924ae24a588be713824d54efe9ca410b0717bc13a6d35f0ea1ad8e26bda1532607756a6ba20edc64a53582ad18c0ff17cac17fa109b32ec4b19a9f17b0b3a086afb05da1949a1dd1f014af82eb6d469dddf587d16ea9d6876e2baf2be663c34411b7aa93e12df896a9ea4955ee1a651ec493bb7a0490af0d3f00f5abb2c08c1c1ed5572fd11370c24895fc8362c96668abdb1f3e34b8ae0a70dd8ed2aae34cc88bdd5f3e9994a2942ebae7ba9da7233490940448d1527758016379fed83eaec21bfc5ca213390ee1d31cef8252d0a769e71887b86bd589c8d3e689d60400641bb99da39f49bc78985477d3123276eb104dd05aaf0a19aafc97a69f0f6b91087d54517a462d3eb3328eaa495ae694c55afe00373242ac0b7099cc891fa08eb579c380edb5817b10871eef37b2ae515166764db8d66f1e7b50b08f096043adea43a5aa4396f06e4c5e6486d5b77689e1054ffbd40087b956d7b2d606104653a7b46079bd4bbaecba953ea5f2a2f88f78cc9828700cac2042eb904abf0436af1cc3d984335e3e0e47bda69cb35e63cd047229fa042e1a0d417a2363afebd1f94214c976d1d2d726375ead23a2d706de4ff0903ec9fe52285b06ea4d734dfc1f2c85770893d6d88e92ce94f090c77d0496490f663a67179b3b146c3c63d5a99695d492d7733acd529e7fcc7abcb427cbc2aba11671b10de346c0bcf8aaa42a13bae0c80ece12e22ef73613c581bb2545c2e7387736703a92c2d25aef1d3ed3b26fff39d9e4d6dc5d4f6f09db123dc54639f9fd5291640b8ea75ecc6fc4f236a0c2e8347470f16d0fee5bde7793afbf067b2553e5e50228c44c65dd7f7cac952d1b744f31462d8b6eccd82407c6efdb885fafcb1c8c641e1afb5b43cdccaf444bb580410294121b8985e82012f7d7c436c7e68559263d126dd3f85745b463110454b322869b98c937df328ed2e69a591796200950473f7caeaea58a5d4f893bc92360a73bd2aa2b4abe05f134a26167613df01833839767879cd2ce8a9c42870921b51e67960b7b885d84aa68bfc69e10fe41afb115a7f37b5d0f5c5a4d669773944e8900550b46b077757aa4b2484b4e474b75cd579f645987f89a8cc45afad408dee3951949aa497396ef49726f0f7a1b5617c1914fac6525235692b2163e2962f397a0f2db218426fbd59f81f66922b010b98f237b0b180b85027e87fe40c884d077cd2c1341dcf7da0f26d962415b881974866488da97de65a4ae27677e9002222fb8d20edf2fa2194a7a7f7b0195b22ccdfad9033196da357829733a84af796c91c8ef17ab5ecc377f2dfc2aecf309a3aff7872252200f910895e32ded00ccf79ac69b022c3644ed4b7cff4718b396bc8918477ecb6e354e4fb038d911832417754c91c2a6ae45426e81e900108b7c4baf2396b019bd0280e8595490bfe024c8b78184ecce2ada0a32ff325345e664248c53ffa733a2b662c3eef1af6777d3bf5308a4302ef6271be92a54425e901d18441dfc31e4e65ddfd2521f1c05a44fae2d8afb5fa24be5f29e1246d9e201d503090852ffbe6844e3f38043ac0a2402791f88a105aa024f1f4b8339ac4403afbc47ad3e67a504ae52ca2c65ad14b05ac2f2585d40e62907e841b6ecedaeb8890075c11ddd9d868d6e890e6db61cc47ee6a03eeb461220f2b8ad0bd8324000d5cc5177cb18dcf8c3a9b6fbda9257076758d5f52513911ff83399cf85beb64cb09814272bba1d279187ba182c4492ce34d7bf1d2b6208505655614788fc0fd86aa9709b89a43079a69d8722e4fb04643f9fd24abc60e8f8ef9053cef3ada856012e18ffc1009b7dcf656781886d1d69470c5f5ffe2af2f1a7a89666505810a568ecf2d6a00bb7cac8f6a6856ddb4c80453c7fda2977b9426a07489118bd2c04e6fe5f4232efda005a424ceb79dd4c764f5f045f1398af36ddbf87a6c88ffa526f77477727055e31fbeaab0fdd33804de1935160f7e9b0199a9e9c3c9c74283007718384a80aa60b4d5e7af3cd2a1710ab21a0679c3e61c382630e0b05d7d8ccd43875c4baf65f1da5f537340919fbc4d04c9a7e8a0cf4d3d2d3d0905d1beee021dbdf397effaa6f859de2c037034eb86fe051e6350ae9bf41dc0239932eda45fb02d298205df9e286cf7fd4810dac8945fb7260b23503fcb025ca844cd1ee0d08ee97596d0f80f78af82536fce0ae744e9bf5b302ed37df6a1be267c8a120b326d024a7ddc999273ff758ce4061db35bcdd38839946b9fd0c36788f857d67c8cbf45f168b4234bbc353609c22d89e51cc9e80e42f0119b50b8c417e3fbfc4b09bdcb20307463a6699a1ad78552f07ce11c380eba755fb864de414ff523cc49e6525b04d91dccf0df96cf0bb59a21977de35fc7fe34b558bfdeb71c0cdb02bec13b529f3675ba6a6a775e351b710fbda45f3c016ca64f9ae3cf17871e14e1caa8117f9d9e53011a3259d00353d72cc48a214343d796429b258c653ceade5bcd8b9e4a16ec4d291762dcaeb6ff0aff2592b9b40bddf327dec9b33da5706c20d815697733d788e2dc7a66720a416a4d95566dde4bc6cfe2e782b23c7aaf4b22d5e0d62c2206e1f14c96625330fac5b70558be5ee500ae61aef7da03ee0cb4f3a45de2d79c228c9c0609a93595d8a8ae1a7689d3f1c76733b234c1622534acb2f9f7fe59d41e5cb7ee91a720ecaeb5c290cbdfa3bb02ef937e20e2f07fdd166d46fba039a20f65f1fc47df36a81db9ebc09dae500dac54a1e3a1541fe097886a6ff763e782e6ebe4bb0cd4ad7eb9e19267a4c17153c8b179184652e1cabe1b1626b528c6be71c2995f498e80156a5629bfd3dd377f0c29549ab41c1da9caa66a3d3ba2598dd471f707610d2ba21f8c4f567f9594c3ead259613d93bd6f147c87cc791a060fbb43e5023e2d268e4710287ddcdf015fd496c62ff9a77f77ec00484fa31451662bc176eb3160de4feae436b9d3f5e49f82a57de56a5685fc73d86a06b575d7e0fad04c8a1bffc74c0ed78d97f41508d2cf72bc671866417a52e7897e996fff6ad2bf66ac51b724d1e34f8407d3a75999f2e1caae904fddad66b0c104fdce1a2197ac72077d967fe475fad9b914df3873366b05c2bfaf582f0ff436687fe3afb8b1cf906e28e76de20e216d7739df6"}, {0x78, 0x0, "563c0fc916aa62cac157fe1b1c83c57e2b2513a771dbe87f732ed278123d18afe3d9ade8539269000023ee2109cd92a34317327c333ec3dd8208b7a57c289daa6e62819287d124b1091d234db39954cc3d89bc8d8d0142a3c2bb51b72a5faded8d145a4349328dad09f4c7cafa2e5a10879d9bad"}, {0x2b, 0x0, "0e668290c6e5cac67a69dc92e46a1c2481e0cc0dcbbcce0c2091d84f7730e0cc07981a5d422bf1"}, {0x1004, 0x0, "83faf92f16b48e05ba24f26cd8a7092d4a07cefdc77abc63ab596f96e9e31d41d162574ddffc9507bf43e6100e370c8732db629b34cb31acff95b79e171847ca9799f279bfc6b5affc2711f6bf54530d7ae0eacf253e5672ff581d52f9b0ca29eb12b557593b370872ae718fc94ad9b573d36e87bc92af4915bba88d5a2d1178d8b0583a77c8f36f715ddc2dd6432fc4f14f72dbe624c9e654ebcdb884163cf5b9e5c353c080e6143b734d78b93a6c30a1f89efd203260d8cb2bd9316ca5686f3e64adf54f2639d353f5a2867616b1e8accd8bebdc6cb88c90780652497738579b945f084ca743caaf375cda98358bd557d9d2167ece1f7a3361cfa748f6822017f3f7716c6794cf9c934ed3353d7ec57d0ad8c7202bb2d8721d248de4d025c932cf020043dedd787b1a0d85a3cee1cb853cff96ab29f4c05e9d998b796dff4a0ed347baf9b2dadfb0c736769a8cd93542701934ca4cf3acdbc398975bd6fa818611ca81cf1beb82686a1d38c446ceff222c8ff0ccf2da66251d97768ca42144c283234b695eab2910363281f4597471257341a62dfefc5a1fcd89d72259332e0758d77115e2b0e5e05ace5b2e63361f0b91596049e328169cafc98987825017936bbaf6fc3b4ee39e4956ff4514174457bed8dcc8c73877eb03d87b345f694452acceafd9fd76851f33bb1e85c5aa771b781668c0f2246b675aa5bf5c2bbd5cf909e2f039cb82b9ceff9f5964d6848462bab5b2c22492f37c8a20632e7987b0532a13cd8fea26e03283a4c1299105165580f61167c56ea35e45e088ef7f60c536a16081777836bf7c2caaba1d52bc767aee9f4e5314101d0aa22b0b0fef075c303c9f2fe85852aed1cd30713e65044489550f92fb8b7f96dcd800071be1879f6179796fed61f999a90b2ea5ae992b5420241f57179a0babbec7d44a9a3c240c0a18ed006de3aef98130c4482b7567ad0ff227fcaf6c54af3dfdacc70bf88c2231c1e8b29b81ec9bc40e3e93d46037c4eb01f37688ab84639e46d7b12c568ceff4b0f84fa5bb36a9d4c830afbf63235a93c487b4d3a3e3ca71eceb4034c1ba635ddeccd7e9a6065fdfb4d25ef9c95c5e549806032299a44de5a8300cfecd45c3e810b004d8fcf8e5e91f109779df62337edf15f0394777b65839d5ed3861e8a0abb58943b9aa901edaba2079bd7a55b79f09b7de5097f269214cd4f2b19f72d369715f0cb6e7e3adb0597561488eb585670804c05b9b30c5cbf55b1441642e37148c555270d804fab0e95ea4d5fdad0cdc61102498e12258374397a712ade3392767df180af179bc73f53d6fd67371677c234cb84d609089bc1ac8201e25f7edbfda73f6189aeebd195b36700ddaf7ae4fc0b2b5a576e712b85b85cb37f6a5fa480e4d5cd534d5959ad0c8cb0ba1c7b2623556264ea11556765e9f5308f3922ab26a369d978388c3243f471aa36be0c6f5b63f16bb12bca30fa93e5ae04ae1efca0e8e033f717d42973ca7762016119c81c0ed79cc1073e4e8c19a44f6e324b4df4c8eefedb0cd96e913575ab3e3d80419c21e4935dd16f77980797ca47ad74ec182f9f1aad250c169c1a539c83523d58e1f24223048da5f37d1bda3dad03e08b07bd593ab827b63486fb784a5467b84b70a9dbc18df7c623f91724d2335c3e3ae3ce3889ccfa19e85e1fdb4facf235d27c6b6322c1b0e845e9e004d5edecfa1a41c5335109f0e6157ec8b0685236a8142ce6c6f829731cb9619625252947a5928c8309f179e10911ee6013364624ac51e676664f7e0df945c6e1b630730add2cb4f36c309fc9a97873ba6cac96fa0a11dda66e509eb33c6c0d1065213308e1188dd69da97a8ad81b14e3c12ba180ecdf1bd8516aec4d51b896eedd3ccad05054c7a10923403ba48ac19705aa8193db77967016192d07a3e83d5548b1c6e4735e2e59907ef3c3df5ab4bde734600d92ce6c8851c8b4e2035699acea4060df80ce53e23fc1e282ec47f486837833c03bce7c66b0fda2238d49d1e5defe58ee72639414e5767a8fd571d5f0a2fc879ed62ed661b331f8f39c3eb59d4af546ca38ccf87d26c190fc8bfddd4ff49db136437aaa8ddafd04165d957b200cc6bb35a7e0d9820dc488791e2b4f4bd374fffa156ba39ecc88139f747d4b68e14e1479c722dfd807156719d538999ddf1d679972af618078323998557b1505bc5f0c15d607b90d17f80f8a94c22f742132d0bdfddd23a930e517eba66dc37197409601257db3f195b4b83596fec523af974945f683ba3a15e334a5a31a64b6c794d3a44f022af0498e51b949f7ecaf0f7f7fd353cec21fb5419acdf4c9fe9a6bfbd28f0a33b74cbc58d0891b8711010eeba17aa7acdd2b7f00d920d17861a8d5f1aa7f1e30876b658bfa8b922e7f47911d2be9200e8578a83347d9f76d796dcaeaaa0c7aee5e657c6066f51a28590929de5784231acf3a903b5f46f00909b78da191a1c14b27f3b88314ca5ae490e37a613e6371289ab5538bbc5e9d1732741e16d13e250939ec1899823d87c29d26b88e304a5c439e330ac8c65f5fbf189e73cd0a61b3b474a4d182331fbdc433c57e0e85a429f2ee8005416b1c33f66854994a8a76408a503d9aaad6110d94dde6b7dd7542531be42a3103c2a17b6dd07b5422922662bb87266aa5acee2e26c4d1636e9eedc62ca89950e8418e25570851d0428850fbd1955fc93fcc72d919adbfc61d8ccf5e160c08b7a8962241b275fe4dc9cc01df7f5dd65ecf3c8dab930f7743578585f6a4b0ad7492839e63df83b80967f1af375e5825f7abf71734ac2b60a23af84ccad766b02e31427a5ba3c533599aadd842770cff0c82ce3b8ef48f8d2fb171cd604db1d8f16ab6a2043cca7fe1d35fa0d7153d702bce1b91c06317d570a5a5b76cfb6aed2e019d1e6c3d6fd81bff58791744b0b5049bc5524d3cff1d2c25034ddc5e324f91e5a880b528f4409c29443d850384fc448dba894783324bd98934afd1f4192cc5be3a4a9e48fdcf34cc573c6532f3eb4fa81d97ea150bbf98cbbc14d5c43bff58944e0259332c81206f7464e58f39c0815072e65054cb2984a0f0762e2f8ac634d11b72e0ac8b44f05c1eb23d1217a1bd6fee3d1106d61595970fc28589a963c98374df980059d70c170bd4882194fa2bd65bdd96507e9337893b456e096e1d678269fbe12346876c74ca0270722413090eba6df17cb4c42efb1555851fa28c0fe5a39fa3e09d557eca308ffdf7a91754ebe658d083846b8d1dbc7fbf6c9de5b373a802ff49d0e2c01aa22095bb60e75d8506a736c54699a663737b93d68f40f053e2c55b46e47ccebdc6c4990451fac2a6a00365460c7eb1da8cc5561fb8d88800ec479079f75062bac769a90be021b647ebb21d2b6fb65d6516a37ff365feb405f77d56f2a37f7ca32d7fc94a690d819bb3fbd69d089a8fb6139e67d40f3f01fc7cb6dcc8b954741f1740f08e5d25710ae22907be833322659e71ce214c48b58011599af1822a3827bd727e0ca014097671a2f66ce1cd45aaf4d20130bae5e26d5481249ea25ed5cfda27270359374d340533059ee31c94e94418288c8adbcbaf30fc10676b028deb0ce4d4d2f6015b3c634f32b357d0bd04503734ae952da9e88a5a28544b9dc38ebcf3de07828581aa9aecbf2aba732dc8577cf80c6b9f18afff624afbf89024544bb5f290d58bc3be9f71b9dad4143e408b37124add43558958b4303fb5ee42018b63da838fe4a69392acbab85f68061862246513f90e33535657ff7d038ba5b5ee2df830b86a9a896834aa561fdfa47ff109ce0b8a0af33a2c6914daeda4b3d3e398a1ecd053ccbc75b43a1f1482eda8cef94519ab12d3ab557062058db80f79a203a4c20c8be0d317fb7e96a12ae5f43c8336aa0c08a84778dad622ee023cba0fea513af14c466543b4d5efc8370fd6460846a1d99e0868a6e5df90d3e368b3ab813a303e484ba9dc5202e67cf0999dad827e8e36bf84d01c0b5f8c9a63f7b8e8d858c9a8b0f405c610aaa6f78316fed41b0d3c24fa17eba67c0ff5a216f7e7cad7ef2c2f749dd30df0df0fb0279b49b9c0d5a52ce561775e4362473042ee7ec0892ecb62322f3bd22937c49b430c0e813ac0787933585e9691f68b9b2f82b83907dfc5fb468349fa8d1d3616b9ff292172047781a8ce8d5eb38b9ed2de9d7b448a0e10065ca1a34d91bf21499f7f409949b85ac55864a904163e317f773da50277f5253b615abf6d62abd1cbdb2d162d21f71ab0c091e8406efe12061dce136405ddafb79da46c434f67eebd7dc8405877be606a0338c31c208d8f443c562717468693c74a98fa81bea452c3f659072569a27678e3c86d0377439510b52857001b9f2e924026067312683159d00efc8aea1913bf9b2e5886eabf5cf5cd42e125fb1e5673622e1d1eac1af30247004bffe36479f7eb13dedf1e584a024e12982e8ea3dba68811d4c680f6ca27ed573ea60537c3f91c2ab995fa7d73526ec1b9025f4252fdfaedf33b55bca10eb8e7ea2531044b6513e682ac458915d64b0e3aef2412ea0355675dff089e5fa3012f18a266d4eb535bd60a577dc1751f9b910aa473dd484f7bfc0755bece8d99859f9fc9778bee237eb4a1075cefaf6d61810b441552bf855b59fa1cfab50df1ba9dbf2d321167aaaad7c0d5581a45937141bbe8fa549eb436bfbe87464f921221e515105c5021a6aaf5fe7af3c4221ac37ffb1aca3bbef269c6e068720df4b006b964ea46c5ab374a97aed159354643868a1ed6ec151a6005f0721d5cda8784059388f97cace7e47bcad502ee3cfed67afaabcd3a1392b24384f020d204d54aabebb02a9d1cda9b3b583dd0161d913e1f9630070ecee084ed11e0da309164f6696da5c40f9b674d05d6846f4b5b6eb7f6a0b2c2145d23b002e6e4737b45493d6184c80bb4d93fcf74ccc591615fce92818fff91d122472d8297b8238f326cb81b9a123574ec468ba7ca82994c3a69ad2c3dc897a93d7734b6b8af3e249306595c8ab28d489cd46843d8a8ad988987ec8f25d2492b4227b45c4e1562848953d512b1eaf5915519e728efc3c4b577cf094fc6f78d05819b93015a535116c5800d37e99d2d11d4fc8f8442174f569414127e1a2d7ab7f67d48dba6daee3937f2b41bc6e286955c8f1d98c90ca29aec1ec3da2cbadf700074328d765c93a74100f52f8220156fa09c868aa088677467259a62f2fbdbb9cbaf1ab131cb50385767613d0c212a10128e7bb34598db998d9732495a83a0e2660ec97b22f5308a3e5db5c8329096269e551ed3d1b602dbb557974009b356af907fc7e1498346982b87abf9b025f4c9951b53484c3da2910294db89c4ac6177c7ea31799b05e855fd492295066309abe4a28b2b4954e4c73a6941679769e690329029cfa1d7b13bf83c991ba7d8392e16a5839a56a59333f998ff761d666ec2d99485d320357293431144a8ef906f08f3b50a47a261b040c622f19e432db27fc15a47d98e6f02046485dea03d375f9c1fa11810ac8c33088edb6405c7bfdceb2410c5dd475052e22cfe30a8ef3d172fa1b71f287be14067d96bd4652a9cea411ea2f64d6b08fa7569272c43d7dd329164f2e9a2600324958eaafdfb5be31d3f3a72847c2552f5a61111acd5d243f04dda4a7a945025e37d7904d8b063ffdab9c9409893c3f29817a0fff373002450637a2bbb102f29a9642959974229c724b3ba1a087539166e440608fe392f98bbfcdf04f017fe0a4133c4a53fc347c88756dfa"}]}, @NL80211_NAN_FUNC_SERVICE_ID={0xa, 0x2, "62f932ebfd00"}]}, @NL80211_ATTR_NAN_FUNC={0x1b0, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_SRF={0x1a4, 0xc, 0x0, 0x1, [@NL80211_NAN_SRF_INCLUDE={0x4}, @NL80211_NAN_SRF_BF={0x103, 0x2, "4d590b1a4998842db4b09554c5065b981bcfcf03d727187399c80387bb2f6e08643471f8f8c40c0764f5429ae20722c079b9c5114f4827662a1b3d40d66260f00bc6c63ee25f0bd4132051b39a5911c15daa1364e07907c4298bb44b8798bcd0805f7d693be0247becf3d9e374854ba6f8e997b9536714295390eadde908d5e4c6c8842b6b4ddd27869ce481b5d88d7ede1b4e4ebc980a1c400c20cc7f0e0e3dd347e6e346ad0796f7b464fdb492c3b670f3d4b62e67edbee1c0294ececeb7f6200cb9a96a36343e7474225cd5e1e04affbeb484248bcc07b11fba870130d3e848f918a7d7263edef15bbee78872812988581a7b7c4897642bf2f97e36e79d"}, @NL80211_NAN_SRF_BF_IDX={0x5, 0x3, 0x7f}, @NL80211_NAN_SRF_MAC_ADDRS={0x10, 0x4, 0x0, 0x1, [{0xa, 0x6, @device_b}]}, @NL80211_NAN_SRF_MAC_ADDRS={0x70, 0x4, 0x0, 0x1, [{0xa, 0x6, @broadcast}, {0xa}, {0xa, 0x6, @broadcast}, {0xa, 0x6, @device_b}, {0xa, 0x6, @broadcast}, {0xa, 0x6, @broadcast}, {0xa}, {0xa, 0x6, @device_b}, {0xa, 0x6, @broadcast}]}, @NL80211_NAN_SRF_BF_IDX={0x5, 0x3, 0x26}, @NL80211_NAN_SRF_INCLUDE={0x4}, @NL80211_NAN_SRF_INCLUDE={0x4}]}, @NL80211_NAN_FUNC_TYPE={0x5, 0x1, 0x2}]}, @NL80211_ATTR_NAN_FUNC={0xc, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_FOLLOW_UP_ID={0x5, 0x6, 0x1}]}, @NL80211_ATTR_NAN_FUNC={0x118, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE={0x4}, @NL80211_NAN_FUNC_SRF={0x10c, 0xc, 0x0, 0x1, [@NL80211_NAN_SRF_BF={0x103, 0x2, "27dd0deb4da26be7b2cb056db37fc588e74bacdac7a841562bddbba1adff58ddb0697d165b7d12543e2215ba69042c35ef7caba8e2e4c9d365226b0d026599f3ac3a17d430efc474cf00004e0abc985e286708311b9c6a1f2a113bac11d881e249cbd0e456c764cd048f0abfd946a3ad1723e97a86644824c89b03a4985752ab7f8d9e9ccdaeab80288133004be3fe8ae3573b3bd689f4dc59ab749213058a55b01f1e6a9a82552ccd1a771d42435e2dd1c6cc1f2c2e48d6381e815c828776ea6ba14e730ab04747e833134728a764e67f67626f9bd9f52c0ee308ed3bbf9e5625e77aa898012eb54035cc0ac59297840a4e19c057ec978835b718f54fdb86"}, @NL80211_NAN_SRF_INCLUDE={0x4}]}, @NL80211_NAN_FUNC_CLOSE_RANGE={0x4}]}, @NL80211_ATTR_NAN_FUNC={0x1e8, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_FOLLOW_UP_ID={0x5, 0x6, 0x5}, @NL80211_NAN_FUNC_SERVICE_INFO={0xd0, 0xb, "2b7a439b67ec3a66b411e0d2e4749208caa705ab110fa37438d3400c596a699f82c6584f1e0b1b54a4bcb90008d58ea8be0dd9cc49b4c7c9d33627e63c50eda5159d5242aca9ef57fa609419ec650bdc05234672db426252a6bc8c51b4ae1b9ddf8319dae77f0cf6794f85b9993d6e5fc51b7c7a381ea240b9f54d35bf21cbaf5e335ed5bca4ab334798291521b7d03e2522838600b6627036e91b856bafb727dd14b7ba5861a7d976fd04be82cfcc416d89e62ee5a6e95dd190ee49d57f9b4adc24a03abc60977e94ff7632"}, @NL80211_NAN_FUNC_RX_MATCH_FILTER={0xf8, 0xd, 0x0, 0x1, [{0xf2, 0x0, "a419222dbb6cbde7d5dbbc80fdb10c28e806f03323bed74df5bfd17faf3999327ae1d599eca8081d62959dd69d9ca074ba88dcd37b21f0911be98cbe0c35da5fe14ba1e2c9251204ba52dcc9f7e4236db35fd2ec8603cf21aec8a5e26c37d941b2c68af85c9b2679e1dd16c0dc4b29f58b984f217a4998be0f32e92ab54e57f37d1f684b9d56533d4582697b675a18778495f1fdcb56d2f17cce6056fe82a9577efc528c0e5c124332f4b0119f4e8a904c7b396dadfc5254769cc752e74cc95289e7f850bc0bc87a72e1f29c270589ef88150a763cb7d99632a9542a3d8c25387f565b063f31c8a9834c206b9aef"}]}, @NL80211_NAN_FUNC_PUBLISH_TYPE={0x5, 0x3, 0x5}, @NL80211_NAN_FUNC_SERVICE_ID={0xa, 0x2, "fae631f2ab83"}]}, @NL80211_ATTR_NAN_FUNC={0xb0, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_CLOSE_RANGE={0x4}, @NL80211_NAN_FUNC_TERM_REASON={0x5, 0x10, 0x73}, @NL80211_NAN_FUNC_SERVICE_INFO={0x8b, 0xb, "4cb6aa34c2b8960d458a5f80e11badf41cc1930def9ccaf80d717691cd829d90ca0f3abf47b6036434560d638fa01618aca75cbc960e086b9d20e47caca26b77c73b628a2b7d23e8e69c09b237e0cdb5afaaaf31f05d6fe53fe96ac4f73e2e6e1a546cabbd52ca91b5562f91f25b6a5acfffaf362522b91572460e5fc388943865369f97df4be7"}, @NL80211_NAN_FUNC_TTL={0x8, 0xa, 0x9}, @NL80211_NAN_FUNC_FOLLOW_UP_DEST={0xa, 0x8, @device_b}]}]}, 0x4f3c}}, 0x4090) 00:14:38 executing program 5: fremovexattr(0xffffffffffffffff, &(0x7f0000000140)=@known='com.apple.FinderInfo\x00') r0 = socket$netlink(0x10, 0x3, 0x0) sendmsg$AUDIT_TTY_GET(r0, &(0x7f0000000100)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x4000}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)={0x10, 0x3f8, 0x20, 0x70bd2d, 0x25dfdbfd, "", ["", ""]}, 0x10}, 0x1, 0x0, 0x0, 0x80}, 0xc0) sendmsg$nl_route(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000340)=ANY=[@ANYBLOB="4400000010001fff00"/20, @ANYRES32=0x0, @ANYBLOB="0000000000000000240012800800010067726100180002e78005000a00000000689b38190001b70000040012"], 0x44}}, 0x0) [ 878.213259][T11882] netdevsim netdevsim3 netdevsim3 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0 00:14:38 executing program 5: fremovexattr(0xffffffffffffffff, &(0x7f0000000140)=@known='com.apple.FinderInfo\x00') r0 = socket$netlink(0x10, 0x3, 0x0) sendmsg$AUDIT_TTY_GET(r0, &(0x7f0000000100)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x4000}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)={0x10, 0x3f8, 0x20, 0x70bd2d, 0x25dfdbfd, "", ["", ""]}, 0x10}, 0x1, 0x0, 0x0, 0x80}, 0xc0) sendmsg$nl_route(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000340)=ANY=[@ANYBLOB="4400000010001fff00"/20, @ANYRES32=0x0, @ANYBLOB="0000000000000000240012800800010067726100180002e78005000a00000000689b38190001b70000040012"], 0x44}}, 0x0) fremovexattr(0xffffffffffffffff, &(0x7f0000000140)=@known='com.apple.FinderInfo\x00') (async) socket$netlink(0x10, 0x3, 0x0) (async) sendmsg$AUDIT_TTY_GET(r0, &(0x7f0000000100)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x4000}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)={0x10, 0x3f8, 0x20, 0x70bd2d, 0x25dfdbfd, "", ["", ""]}, 0x10}, 0x1, 0x0, 0x0, 0x80}, 0xc0) (async) sendmsg$nl_route(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000340)=ANY=[@ANYBLOB="4400000010001fff00"/20, @ANYRES32=0x0, @ANYBLOB="0000000000000000240012800800010067726100180002e78005000a00000000689b38190001b70000040012"], 0x44}}, 0x0) (async) 00:14:38 executing program 1: prctl$PR_SET_SECUREBITS(0x1c, 0x1e) setuid(0xee00) setgroups(0x0, 0x0) read$FUSE(0xffffffffffffffff, &(0x7f00000008c0)={0x2020, 0x0, 0x0, 0x0, 0x0}, 0x161d) r1 = syz_genetlink_get_family_id$batadv(&(0x7f0000007580), 0xffffffffffffffff) r2 = socket$netlink(0x10, 0x3, 0x0) sendmsg$BATADV_CMD_GET_GATEWAYS(0xffffffffffffffff, &(0x7f0000007680)={0x0, 0x0, &(0x7f0000007640)={&(0x7f0000000000)=ANY=[@ANYBLOB="46040000", @ANYRES16=r1, @ANYBLOB="ff830500000000000000", @ANYRES32=r2], 0x4}}, 0x0) sendmsg$netlink(0xffffffffffffffff, &(0x7f0000000140)={0x0, 0x0, &(0x7f00000015c0)=[{&(0x7f0000000480)=ANY=[@ANYBLOB="0003000011009f9e0000db6e6c8d5e85080045f00d80722124818ada00000000"], 0x300}, {&(0x7f00000004c0)=ANY=[@ANYRESDEC, @ANYRES32=r0, @ANYRES16=r1], 0xcfc}], 0x10000000000000f4}, 0xc4) read$FUSE(0xffffffffffffffff, &(0x7f00000008c0)={0x2020, 0x0, 0x0, 0x0, 0x0}, 0x161d) r4 = syz_genetlink_get_family_id$batadv(&(0x7f0000007580), 0xffffffffffffffff) r5 = socket$netlink(0x10, 0x3, 0x0) sendmsg$BATADV_CMD_GET_GATEWAYS(0xffffffffffffffff, &(0x7f0000007680)={0x0, 0x0, &(0x7f0000007640)={&(0x7f0000000000)=ANY=[@ANYBLOB="46040000", @ANYRES16=r4, @ANYBLOB="ff830500000000000000", @ANYRES32=r5], 0x4}}, 0x0) sendmsg$netlink(0xffffffffffffffff, &(0x7f0000000140)={0x0, 0x0, &(0x7f00000015c0)=[{&(0x7f00000001c0)=ANY=[@ANYBLOB="0003000011009f9e0000db6e6c3cac264d1b10fd435a9744eba58d5e85080045f00d80722124818ada00000000", @ANYRESOCT=r1], 0x300}, {&(0x7f00000004c0)=ANY=[@ANYRESDEC, @ANYRES32=r3, @ANYRES16=r4], 0xcfc}], 0x2}, 0xc4) r6 = getegid() newfstatat(0xffffffffffffff9c, &(0x7f0000000000)='./file0\x00', &(0x7f0000000080)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 0x5000) read$FUSE(0xffffffffffffffff, &(0x7f00000008c0)={0x2020, 0x0, 0x0, 0x0, 0x0}, 0x161d) r9 = syz_genetlink_get_family_id$batadv(&(0x7f0000007580), 0xffffffffffffffff) r10 = socket$netlink(0x10, 0x3, 0x0) sendmsg$BATADV_CMD_GET_GATEWAYS(0xffffffffffffffff, &(0x7f0000007680)={0x0, 0x0, &(0x7f0000007640)={&(0x7f0000000000)=ANY=[@ANYBLOB="46040000", @ANYRES16=r9, @ANYBLOB="ff830500000000000000", @ANYRES32=r10], 0x4}}, 0x0) sendmsg$netlink(0xffffffffffffffff, &(0x7f0000000140)={0x0, 0x0, &(0x7f00000015c0)=[{&(0x7f0000000480)=ANY=[@ANYBLOB="0003000011009f9e0000db6e6c8d5e85080045f00d80722124818ada00000000"], 0x300}, {&(0x7f00000004c0)=ANY=[@ANYRESDEC, @ANYRES32=r8, @ANYRES16=r9], 0xcfc}], 0x10000000000000f4}, 0xc4) setgroups(0x7, &(0x7f0000000140)=[r0, r3, r6, r7, 0xee00, r8, 0xee00]) getgroups(0x1, &(0x7f0000000100)=[0xee00]) setregid(0x0, r11) r12 = openat$tcp_congestion(0xffffff9c, &(0x7f0000000040), 0x1, 0x0) write$tcp_congestion(r12, 0x0, 0x0) 00:14:38 executing program 1: prctl$PR_SET_SECUREBITS(0x1c, 0x1e) (async) setuid(0xee00) setgroups(0x0, 0x0) (async) read$FUSE(0xffffffffffffffff, &(0x7f00000008c0)={0x2020, 0x0, 0x0, 0x0, 0x0}, 0x161d) r1 = syz_genetlink_get_family_id$batadv(&(0x7f0000007580), 0xffffffffffffffff) (async) r2 = socket$netlink(0x10, 0x3, 0x0) sendmsg$BATADV_CMD_GET_GATEWAYS(0xffffffffffffffff, &(0x7f0000007680)={0x0, 0x0, &(0x7f0000007640)={&(0x7f0000000000)=ANY=[@ANYBLOB="46040000", @ANYRES16=r1, @ANYBLOB="ff830500000000000000", @ANYRES32=r2], 0x4}}, 0x0) (async) sendmsg$netlink(0xffffffffffffffff, &(0x7f0000000140)={0x0, 0x0, &(0x7f00000015c0)=[{&(0x7f0000000480)=ANY=[@ANYBLOB="0003000011009f9e0000db6e6c8d5e85080045f00d80722124818ada00000000"], 0x300}, {&(0x7f00000004c0)=ANY=[@ANYRESDEC, @ANYRES32=r0, @ANYRES16=r1], 0xcfc}], 0x10000000000000f4}, 0xc4) read$FUSE(0xffffffffffffffff, &(0x7f00000008c0)={0x2020, 0x0, 0x0, 0x0, 0x0}, 0x161d) (async) r4 = syz_genetlink_get_family_id$batadv(&(0x7f0000007580), 0xffffffffffffffff) (async) r5 = socket$netlink(0x10, 0x3, 0x0) sendmsg$BATADV_CMD_GET_GATEWAYS(0xffffffffffffffff, &(0x7f0000007680)={0x0, 0x0, &(0x7f0000007640)={&(0x7f0000000000)=ANY=[@ANYBLOB="46040000", @ANYRES16=r4, @ANYBLOB="ff830500000000000000", @ANYRES32=r5], 0x4}}, 0x0) (async) sendmsg$netlink(0xffffffffffffffff, &(0x7f0000000140)={0x0, 0x0, &(0x7f00000015c0)=[{&(0x7f00000001c0)=ANY=[@ANYBLOB="0003000011009f9e0000db6e6c3cac264d1b10fd435a9744eba58d5e85080045f00d80722124818ada00000000", @ANYRESOCT=r1], 0x300}, {&(0x7f00000004c0)=ANY=[@ANYRESDEC, @ANYRES32=r3, @ANYRES16=r4], 0xcfc}], 0x2}, 0xc4) r6 = getegid() newfstatat(0xffffffffffffff9c, &(0x7f0000000000)='./file0\x00', &(0x7f0000000080)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 0x5000) (async) read$FUSE(0xffffffffffffffff, &(0x7f00000008c0)={0x2020, 0x0, 0x0, 0x0, 0x0}, 0x161d) r9 = syz_genetlink_get_family_id$batadv(&(0x7f0000007580), 0xffffffffffffffff) r10 = socket$netlink(0x10, 0x3, 0x0) sendmsg$BATADV_CMD_GET_GATEWAYS(0xffffffffffffffff, &(0x7f0000007680)={0x0, 0x0, &(0x7f0000007640)={&(0x7f0000000000)=ANY=[@ANYBLOB="46040000", @ANYRES16=r9, @ANYBLOB="ff830500000000000000", @ANYRES32=r10], 0x4}}, 0x0) (async) sendmsg$netlink(0xffffffffffffffff, &(0x7f0000000140)={0x0, 0x0, &(0x7f00000015c0)=[{&(0x7f0000000480)=ANY=[@ANYBLOB="0003000011009f9e0000db6e6c8d5e85080045f00d80722124818ada00000000"], 0x300}, {&(0x7f00000004c0)=ANY=[@ANYRESDEC, @ANYRES32=r8, @ANYRES16=r9], 0xcfc}], 0x10000000000000f4}, 0xc4) setgroups(0x7, &(0x7f0000000140)=[r0, r3, r6, r7, 0xee00, r8, 0xee00]) getgroups(0x1, &(0x7f0000000100)=[0xee00]) setregid(0x0, r11) (async) r12 = openat$tcp_congestion(0xffffff9c, &(0x7f0000000040), 0x1, 0x0) write$tcp_congestion(r12, 0x0, 0x0) 00:14:38 executing program 1: prctl$PR_SET_SECUREBITS(0x1c, 0x1e) (async) setuid(0xee00) (async) setgroups(0x0, 0x0) read$FUSE(0xffffffffffffffff, &(0x7f00000008c0)={0x2020, 0x0, 0x0, 0x0, 0x0}, 0x161d) (async) r1 = syz_genetlink_get_family_id$batadv(&(0x7f0000007580), 0xffffffffffffffff) r2 = socket$netlink(0x10, 0x3, 0x0) sendmsg$BATADV_CMD_GET_GATEWAYS(0xffffffffffffffff, &(0x7f0000007680)={0x0, 0x0, &(0x7f0000007640)={&(0x7f0000000000)=ANY=[@ANYBLOB="46040000", @ANYRES16=r1, @ANYBLOB="ff830500000000000000", @ANYRES32=r2], 0x4}}, 0x0) (async) sendmsg$netlink(0xffffffffffffffff, &(0x7f0000000140)={0x0, 0x0, &(0x7f00000015c0)=[{&(0x7f0000000480)=ANY=[@ANYBLOB="0003000011009f9e0000db6e6c8d5e85080045f00d80722124818ada00000000"], 0x300}, {&(0x7f00000004c0)=ANY=[@ANYRESDEC, @ANYRES32=r0, @ANYRES16=r1], 0xcfc}], 0x10000000000000f4}, 0xc4) read$FUSE(0xffffffffffffffff, &(0x7f00000008c0)={0x2020, 0x0, 0x0, 0x0, 0x0}, 0x161d) r4 = syz_genetlink_get_family_id$batadv(&(0x7f0000007580), 0xffffffffffffffff) (async) r5 = socket$netlink(0x10, 0x3, 0x0) sendmsg$BATADV_CMD_GET_GATEWAYS(0xffffffffffffffff, &(0x7f0000007680)={0x0, 0x0, &(0x7f0000007640)={&(0x7f0000000000)=ANY=[@ANYBLOB="46040000", @ANYRES16=r4, @ANYBLOB="ff830500000000000000", @ANYRES32=r5], 0x4}}, 0x0) (async) sendmsg$netlink(0xffffffffffffffff, &(0x7f0000000140)={0x0, 0x0, &(0x7f00000015c0)=[{&(0x7f00000001c0)=ANY=[@ANYBLOB="0003000011009f9e0000db6e6c3cac264d1b10fd435a9744eba58d5e85080045f00d80722124818ada00000000", @ANYRESOCT=r1], 0x300}, {&(0x7f00000004c0)=ANY=[@ANYRESDEC, @ANYRES32=r3, @ANYRES16=r4], 0xcfc}], 0x2}, 0xc4) r6 = getegid() newfstatat(0xffffffffffffff9c, &(0x7f0000000000)='./file0\x00', &(0x7f0000000080)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 0x5000) (async) read$FUSE(0xffffffffffffffff, &(0x7f00000008c0)={0x2020, 0x0, 0x0, 0x0, 0x0}, 0x161d) (async) r9 = syz_genetlink_get_family_id$batadv(&(0x7f0000007580), 0xffffffffffffffff) r10 = socket$netlink(0x10, 0x3, 0x0) sendmsg$BATADV_CMD_GET_GATEWAYS(0xffffffffffffffff, &(0x7f0000007680)={0x0, 0x0, &(0x7f0000007640)={&(0x7f0000000000)=ANY=[@ANYBLOB="46040000", @ANYRES16=r9, @ANYBLOB="ff830500000000000000", @ANYRES32=r10], 0x4}}, 0x0) (async) sendmsg$netlink(0xffffffffffffffff, &(0x7f0000000140)={0x0, 0x0, &(0x7f00000015c0)=[{&(0x7f0000000480)=ANY=[@ANYBLOB="0003000011009f9e0000db6e6c8d5e85080045f00d80722124818ada00000000"], 0x300}, {&(0x7f00000004c0)=ANY=[@ANYRESDEC, @ANYRES32=r8, @ANYRES16=r9], 0xcfc}], 0x10000000000000f4}, 0xc4) (async) setgroups(0x7, &(0x7f0000000140)=[r0, r3, r6, r7, 0xee00, r8, 0xee00]) (async) getgroups(0x1, &(0x7f0000000100)=[0xee00]) setregid(0x0, r11) r12 = openat$tcp_congestion(0xffffff9c, &(0x7f0000000040), 0x1, 0x0) write$tcp_congestion(r12, 0x0, 0x0) 00:14:38 executing program 1: r0 = syz_mount_image$f2fs(&(0x7f0000000000), &(0x7f0000000140)='./file0\x00', 0x8000000, 0x45, &(0x7f0000000200)=[{&(0x7f0000011860)="00000000000000002400320000000000abf0a9c7661f1f6300000000412f651b000000000000000000000000000000002f746d702f73797a2d696d61676567656e323938323031313634362f66696c65302f66696c6530000000000000000000", 0x60, 0x1b}, {&(0x7f0000010000)="1020f5f201000e0009000000030000000c0000000900000002000000010000000000000000800000000000001b0000003e00000002000000020000000200000001000000360000000004000000100000001400000300000001000000020000002b1cb9e3996e42d4987ddb8c29eb8b3000000000", 0x74, 0x400}, {&(0x7f0000010080)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00%\x00\x00\x00mp\x00\x00\x00\x00\x00\x00wm\x00\x00\x00\x00\x00\x00og\x00\x00\x00\x00\x00\x00jp\x00\x00\x00\x00\x00\x00avi\x00\x00\x00\x00\x00m4v\x00\x00\x00\x00\x00m4p\x00\x00\x00\x00\x00mkv\x00\x00\x00\x00\x00mov\x00\x00\x00\x00\x00webm\x00\x00\x00\x00wav\x00\x00\x00\x00\x00m4a\x00\x00\x00\x00\x003gp\x00\x00\x00\x00\x00opus\x00\x00\x00\x00flac\x00\x00\x00\x00gif\x00\x00\x00\x00\x00png\x00\x00\x00\x00\x00svg\x00\x00\x00\x00\x00webp\x00\x00\x00\x00jar\x00\x00\x00\x00\x00deb\x00\x00\x00\x00\x00iso\x00\x00\x00\x00\x00gz\x00\x00\x00\x00\x00\x00xz\x00\x00\x00\x00\x00\x00zst\x00\x00\x00\x00\x00pdf\x00\x00\x00\x00\x00pyc\x00\x00\x00\x00\x00ttc\x00\x00\x00\x00\x00ttf\x00\x00\x00\x00\x00exe\x00\x00\x00\x00\x00apk\x00\x00\x00\x00\x00cnt\x00\x00\x00\x00\x00exo\x00\x00\x00\x00\x00odex\x00\x00\x00\x00vdex\x00\x00\x00\x00so\x00\x00\x00\x00\x00\x00cold\x00\x00\x00\x00db\x00'/352, 0x160, 0x860}, {&(0x7f00000101e0)='\x00\x00\x00\x00Linux version 5.17.11-1rodete2-amd64 (glinux-team@google.com) (gcc-11 (Debian 11.2.0-20) 11.2.0, GNU ld (GNU Binutils for Debian) 2.38) #1 SMP PREEMPT Debian 5.17.11-1rodete2 (2022-06-09)\x00', 0xc0, 0xa80}, {&(0x7f00000102a0)='\x00\x00\x00\x00Linux version 5.17.11-1rodete2-amd64 (glinux-team@google.com) (gcc-11 (Debian 11.2.0-20) 11.2.0, GNU ld (GNU Binutils for Debian) 2.38) #1 SMP PREEMPT Debian 5.17.11-1rodete2 (2022-06-09)\x00', 0xc0, 0xb80}, {&(0x7f00000009c0)="00400000780100000000000000000000c4884579995d87a5025f4cd19ac581dd000000007e47e69a2daf0c886af2c929ea077f2e0bd396f00f6c8b97142901f3411bacfec60300d52b34c37149ac730009af16eccee063bc270726c978adf39ae7416d54bc4d7543f11fd10000000000000000000000b45a0af576ef07e36faff8b2b273a30e885f2a9fb02b73f1813d82a5c991536d50f90f7df3d3a255db72ad265690fccb4d3a92af599c53be58213f85f61a69eed8a23ac18f96c4f5dec16e43f98e700e557720341cdf97af11c949ab4a5eb8ff0bec70a32da384bed350f99ffcda78c281a7dcd700892ceb940d71b5572e3b832096643a27a943c34c34a7a7bf447121c80099e912620c8baa3b1e551b97def829a76110a0183df1034be167f4f0f56569d1c86889d06fb91b91c0400a367c6dcdeddf943d82826e32c8fcade41b4f", 0x145, 0xc80}, {&(0x7f0000010380)="00000000000100"/32, 0x20, 0xec0}, {&(0x7f00000103a0)="1020f5f201000e0009000000030000000c0000000900000002000000010000000000000000800000000000001b0000003e0000000200000002000000020000000200000036000000000400000004000000080000000c000000100000001400000300000001000000020000002b1cb9e3996e42d4987ddb8c29eb8b3000000000", 0x80, 0x1400}, {&(0x7f0000010420)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00%\x00\x00\x00mp\x00\x00\x00\x00\x00\x00wm\x00\x00\x00\x00\x00\x00og\x00\x00\x00\x00\x00\x00jp\x00\x00\x00\x00\x00\x00avi\x00\x00\x00\x00\x00m4v\x00\x00\x00\x00\x00m4p\x00\x00\x00\x00\x00mkv\x00\x00\x00\x00\x00mov\x00\x00\x00\x00\x00webm\x00\x00\x00\x00wav\x00\x00\x00\x00\x00m4a\x00\x00\x00\x00\x003gp\x00\x00\x00\x00\x00opus\x00\x00\x00\x00flac\x00\x00\x00\x00gif\x00\x00\x00\x00\x00png\x00\x00\x00\x00\x00svg\x00\x00\x00\x00\x00webp\x00\x00\x00\x00jar\x00\x00\x00\x00\x00deb\x00\x00\x00\x00\x00iso\x00\x00\x00\x00\x00gz\x00\x00\x00\x00\x00\x00xz\x00\x00\x00\x00\x00\x00zst\x00\x00\x00\x00\x00pdf\x00\x00\x00\x00\x00pyc\x00\x00\x00\x00\x00ttc\x00\x00\x00\x00\x00ttf\x00\x00\x00\x00\x00exe\x00\x00\x00\x00\x00apk\x00\x00\x00\x00\x00cnt\x00\x00\x00\x00\x00exo\x00\x00\x00\x00\x00odex\x00\x00\x00\x00vdex\x00\x00\x00\x00so\x00\x00\x00\x00\x00\x00cold\x00\x00\x00\x00db\x00'/352, 0x160, 0x1860}, {&(0x7f0000010580)='\x00\x00\x00\x00Linux version 5.17.11-1rodete2-amd64 (glinux-team@google.com) (gcc-11 (Debian 11.2.0-20) 11.2.0, GNU ld (GNU Binutils for Debian) 2.38) #1 SMP PREEMPT Debian 5.17.11-1rodete2 (2022-06-09)\x00', 0xc0, 0x1a80}, {&(0x7f0000010640)='\x00\x00\x00\x00Linux version 5.17.11-1rodete2-amd64 (glinux-team@google.com) (gcc-11 (Debian 11.2.0-20) 11.2.0, GNU ld (GNU Binutils for Debian) 2.38) #1 SMP PREEMPT Debian 5.17.11-1rodete2 (2022-06-09)\x00', 0xc0, 0x1b80}, {&(0x7f0000010700)="00000000780100"/32, 0x20, 0x1c80}, {&(0x7f0000010720)="00000000000100"/32, 0x20, 0x1ec0}, {&(0x7f0000010ba0)="b0da173e0000000000240000000000000b000000000000001b0000002400000030000000000000000200000004000000ffffffffffffffffffffffffffffffffffffffff0300060000000000000000000000000006000000180000000a000000ffffffffffffffffffffffffffffffffffffffff05000000000000000000000000000000c5000000060000000100000007000000070000000a0000004000000040000000fc0f00"/192, 0xc0, 0x31e7}, {&(0x7f0000010740)="b1da173e0000000000240000000000000b000000000000001b0000002400000030000000000000000200000004000000ffffffffffffffffffffffffffffffffffffffff0300060000000000000000000000000006000000180000000a000000ffffffffffffffffffffffffffffffffffffffff05000000000000000000000000000000c5010000060000000100000007000000070000000a0000004000000040000000fc0f00"/192, 0xc0, 0x400000}, {&(0x7f0000010800)="0000000000000000000000000000000000000000000000000000000025b607ec0000030000000003000000001400"/64, 0x40, 0x400fe0}, {&(0x7f0000010840)="000000000000000000000000000000000000000000000000000000060000000000020c6000"/64, 0x40, 0x4011e0}, {&(0x7f0000010880)="0000000000000000000000090000000510ec00"/32, 0x20, 0x401240}, {&(0x7f00000108a0)="0000000000000000000000000000000000000000000000000004000000001400", 0x20, 0x401280}, {&(0x7f00000108c0)="000000000000000600000004007800"/32, 0x20, 0x4012e0}, {&(0x7f00000108e0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\b\x00\x00\x00\x00\x00', 0x20, 0x401320}, {&(0x7f0000010900)="00000018000000000400"/32, 0x20, 0x401380}, {&(0x7f0000010920)="00000000000000000000000000000000000000000000030000000000000300000000000008000000000000080000000001000800000000020000000000000000", 0x40, 0x4013e0}, {&(0x7f0000010960)="03000000000000030000000000000400"/32, 0x20, 0x402000}, {&(0x7f0000010980)='\x00'/20, 0x14, 0x402dff}, {&(0x7f00000109a0)="000000000000000000000000000000000000000000000000000000010000000005000000000000060000000000000700000000000008000000000000090000000000000800"/96, 0x60, 0x402fe0}, {&(0x7f0000010a00)="0000000000000000000000000000000000000000000000000000000100000000", 0x20, 0x403fe0}, {&(0x7f0000010a20)="0000000000000000000000000000000000000000000000000000000100000000b1da173e0000000000240000000000000b000000000000001b0000002400000030000000000000000200000004000000ffffffffffffffffffffffffffffffffffffffff0300060000000000000000000000000006000000180000000a000000ffffffffffffffffffffffffffffffffffffffff05000000000000000000000000000000c5010000060000000100000007000000070000000a0000004000000040000000fc0f00"/224, 0xe0, 0x404fe0}, {&(0x7f0000010b00)="0000000000000000000000000000000000000000000000000000000025b607ec", 0x20, 0x405fe0}, {&(0x7f0000010b20)="b1da173e25b607ec00"/32, 0x20, 0x5ff000}, {&(0x7f0000000880)="000000000000ffffffff7fffffffffffffffffffffffffacff53d7c677a96050492a4fffffffffffffffffffffffffffffffffff2100ffffffffffffffffffffffffffffffff9d7a54098bee48ffffff0000000000000000000040000000001ef8e348f925fb74189c3908695f43d40000000000000000", 0x77, 0x5ff040}, {&(0x7f0000010c60)="0000000000000000000000000000000000000000000000000000000043b4bb250000030000000003000000001400"/64, 0x40, 0x600fe0}, {&(0x7f0000010ca0)="000000000000000000000000000000000000000000000000000000060000000000020c6000"/64, 0x40, 0x6011e0}, {&(0x7f0000010ce0)="0000000000000000000000020000000510ec00"/32, 0x20, 0x601240}, {&(0x7f0000010d00)="0000000000000000000000000000000000000000000000000004000000001400", 0x20, 0x601280}, {&(0x7f00000001c0)="000000000000000600000004007800"/32, 0x20, 0x6012e0}, {&(0x7f0000010d40)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\b\x00\x00\x00\x00\x00', 0x20, 0x601320}, {&(0x7f0000010d60)="00000018000000000400"/32, 0x20, 0x601380}, {&(0x7f0000010d80)="00000000000000000000000000000000000000000000030000000000000300000000000008000000000000080000000001000800000000020000000000000000", 0x40, 0x6013e0}, {&(0x7f0000010dc0)="03000000000000030000000000000400"/32, 0x20, 0x602000}, {&(0x7f0000010de0)='\x00\x00p\x00'/32, 0x20, 0x602e00}, {&(0x7f0000000040)="00000000000000000000000000000000000000000000000000000001000000000500000000000006000000000004070000000000000800000000000009000000000000080000000000000000000000000000000000000000000000000000b0eb263e3a5851768ca10000", 0x6a, 0x602fe0}, {&(0x7f0000010e60)="00000000000e00000000001300"/28, 0x1c, 0x603fe0}, {&(0x7f0000010e80)="0000000000000000000000000000000000000000000000000000000100000000b0da173e0000000000240000000000000b000000000000001b0000002400000030000000000000000200000004000000ffffffffffffffffffffffffffffffffffffffff0300060000000000000000000000000006000000180000000a000000ffffffffffffffffffffffffffffffffffffffff05000000000000000000000000000000c5000000060000000100000007000000070000000a0000004000000040000000fc0f00"/224, 0xe0, 0x604fe0}, {&(0x7f0000010f60)="0000000000000000000000000000000000000000000000000000000043b4bb25", 0x20, 0x605fe0}, {&(0x7f0000010f80)="b0da173e43b4bb2500"/32, 0x20, 0x7ff000}, {&(0x7f0000010fa0)="0000000000000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"/96, 0x60, 0x7ff040}, {&(0x7f0000011000)="000000000000000000000100000001000000000200000001000000000300000001140000000400000002140000000500000000180000000600000001180000000700000002180000000800000005180000000900000004180000000000000000", 0x60, 0xc00000}, {&(0x7f0000011060)="000000000000000000000100000001000000000200000001000000000300000001140000000400000002140000000500000000180000000600000001180000000700000002180000000800000003180000000900000004180000000000000000", 0x60, 0xe00000}, {&(0x7f00000110c0)="ed41002080761000535f010003000000001000000000000002000000000000005e1f1f6300000000661f1f6300000000661f1f630000000000000000412f651b412f651b000000000100"/96, 0x60, 0x1401000}, {&(0x7f0000011120)="00000000000000001800000000000000793947565e1f1f630000000000000000012000"/64, 0x40, 0x1401160}, {&(0x7f0000011160)="0000000000000000030000000300000000000000adda173e0000000002140000ed4100250000000000000000020000007c0d0000000000000100000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651b4c282be9000000000000000000100000030000000500000066696c653000"/160, 0xa0, 0x1401fe0}, {&(0x7f0000011200)="0000000000000000240032000000000069bc06b3661f1f6300000000412f651b000000000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000000000000000400000001000200000000030000000200024a8113ed050000000500018dcece450600000005000700000000", 0x80, 0x1402160}, {&(0x7f0000011280)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00.\x00\x00\x00\x00\x00\x00\x00..\x00\x00\x00\x00\x00\x00file0\x00\x00\x00file1\x00'/64, 0x40, 0x1402960}, {&(0x7f0000000180)="0000000000000000040000000400000000000000adda173e07000000031400003294e50c204962a8f757578f1df78a7e15f5ba10ded1bea9b1e747", 0x3b, 0x1402fe0}, {&(0x7f00000112e0)="ed81002b0000000000000000010000001a040000000000000100000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651ba02206c7000000000000000000000000040000000500000066696c653000"/128, 0x80, 0x1800000}, {&(0x7f0000011360)="00000000000000002400320000000000a12a48b8661f1f6300000000412f651b0000000000000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c00"/1120, 0x460, 0x1800160}, {&(0x7f00000117c0)="0000000000000000050000000500000001000000adda173e0000000001180000ffa1002b00000000000000000100000027000000000000000100000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651bc8e3acae000000000000000000000000040000000500000066696c653100"/160, 0xa0, 0x1800fe0}, {&(0x7f00000118c0)="0000000000000000060000000600000001000000adda173e0000000002180000ed81002b0000000000000000010000000a000000000000000100000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651bda36aa72000000000000000000000000030000000500000066696c653100"/160, 0xa0, 0x1801fe0}, {&(0x7f0000011960)="0000000000000000240032000000000020d3f802661f1f6300000000412f651b0000000000000000000000000000000073797a6b616c6c657273000000000000", 0x40, 0x1802160}, {&(0x7f00000119a0)="0000000000000000000000001120f5f20100000000000000000000000000000000000000010606007861747472317861747472310106060078617474723278617474723200"/96, 0x60, 0x1802f00}, {&(0x7f0000011a00)="0000000000000000070000000700000001000000adda173e0000000003180000", 0x20, 0x1802fe0}, {&(0x7f0000011a20)="ed81012b00000000000000000100000064000000000000000100000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651bb0519ecf000000000000000000000000030000000900000066696c652e636f6c6400"/128, 0x80, 0x1804000}, {&(0x7f0000011aa0)="0000000000000000240032000000000048b53521661f1f6300000000412f651b0000000000000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c65727300"/160, 0xa0, 0x1804160}, {&(0x7f0000011b40)="0000000000000000090000000900000001000000adda173e0000000005180000ed81022100000000000000000200000028230000000000000400000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651b2421c896000000000000000000000000030000000500000066696c653300"/160, 0xa0, 0x1804fe0}, {&(0x7f0000011be0)="02200000030000002400320000000000f1e1ed3b661f1f6300000000412f651b0000000000000000000000000220000003200000042000"/64, 0x40, 0x1805160}, {&(0x7f0000011c20)="0000000000000000080000000800000001000000aeda173eaa594c5706180000", 0x20, 0x1805fe0}, {&(0x7f0000011c40)="ff0000000000000000000000000000000000000000000000000000000000000000000300000001000200000000030000000200024a8113ed040000000500028dcece4507000000050001baeed06f0800000005000153bfc55008000000050001120052230900000009000100"/128, 0x80, 0x2001000}, {&(0x7f0000011cc0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00.\x00\x00\x00\x00\x00\x00\x00..\x00\x00\x00\x00\x00\x00file0\x00\x00\x00file1\x00\x00\x00file2\x00\x00\x00file3\x00\x00\x00file.cold\x00'/96, 0x60, 0x2001940}], 0x0, &(0x7f0000000c00)=ANY=[@ANYBLOB="0053e8fbde24a9b5327e440644446d115f8a08a4f91bc33a27984d54a47519c507f0168b57bda7ea2c728be41c5b95e451eb1dff3898c7506d0375324a4ba2b960ceef9edd05b4ffc3cc0d35d95cfcfea982e92b86949ce31a7dc5577f3e2ca0a612a05b8f094fd18f80079acb98a3a168d39bd645d801680e60ec98044151af7a583580ff4119ccb9afebb9a774777ce79d9fe6790ebd279eeecf6d98710cc75a4f3177500df102f6768e3663cfeb3bc4b905fcfd5885ba896413836bd71d8e7c165791ff83b4ffd04d8f77ed1174dce1669b887f777368f00542bf2ec09046eec948a17e141d134c9a6dd5ce10878bf36e5fd089552aac1b8b68fe398e1450a4f9ff86f478bf4c07dff21d158956c57fdc012aada8581ac7d172627083bbdf5daa507c9cfa7f89031904a2da59a0f9d9ec685fbf1d7da9f9009f8d147335601063e3594b437525dbebf61cb6bc08b620c57403968536801dec07785311e898bd216d9b5c197362b8eaadeff7086c61445e9c24354d8afe0d70002886e0d083925df4acdbb68e"], 0x1) fcntl$setflags(r0, 0x2, 0x0) getsockopt$inet_sctp_SCTP_RECVNXTINFO(0xffffffffffffffff, 0x84, 0x21, &(0x7f00000000c0), &(0x7f0000000100)=0x4) [ 878.342589][T11882] netdevsim netdevsim3 netdevsim2 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0 [ 878.348355][T11905] loop1: detected capacity change from 0 to 262144 [ 878.355932][T11905] F2FS-fs (loop1): Segment count (62) mismatch with total segments from devices (1743284064) [ 878.358916][T11905] F2FS-fs (loop1): Can't find valid F2FS filesystem in 1th superblock [ 878.378383][T11905] F2FS-fs (loop1): invalid crc_offset: 0 [ 878.385305][T11905] F2FS-fs (loop1): Found nat_bits in checkpoint [ 878.395135][T11905] F2FS-fs (loop1): Try to recover 1th superblock, ret: 0 [ 878.397091][T11905] F2FS-fs (loop1): Mounted with checkpoint version = 3e17dab1 [ 878.411086][T11882] netdevsim netdevsim3 netdevsim1 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0 [ 878.513087][T11882] netdevsim netdevsim3 netdevsim0 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0 [ 878.650872][T11882] netdevsim netdevsim3 eth0: set [1, 0] type 2 family 0 port 6081 - 0 [ 878.656307][T11882] netdevsim netdevsim3 eth1: set [1, 0] type 2 family 0 port 6081 - 0 [ 878.660989][T11882] netdevsim netdevsim3 eth2: set [1, 0] type 2 family 0 port 6081 - 0 [ 878.665783][T11882] netdevsim netdevsim3 eth3: set [1, 0] type 2 family 0 port 6081 - 0 [ 878.670409][T11881] delete_channel: no stack [ 879.619140][T10159] wlan0: No active IBSS STAs - trying to scan for other IBSS networks with same SSID (merge) 00:14:50 executing program 0: r0 = bpf$PROG_LOAD(0x5, &(0x7f000000e000)={0x8, 0x4, &(0x7f00000020c0)=ANY=[@ANYBLOB="b4000000020000006600000000000000730135000000000095000000000000004bb5eea0a6ec9fcd4b0a008a8443f22772d945c7e6dd329e4a0587536a966992ae7011d6e6c00000717e9912e0dd1a59541f7cbb1548ee5bd627f5b0b8ec77bd6d5f7b543f9aafaabe53339b12fbbe7decc4aa61b8aad0359083bdd61543fbeee8d560bb4b5925fae801f4c91e31674b124a1b3b000000bc4da4a9b3d5cc9e0000f6a7a729009973ff07000000000000ac79e5d84abbec7d96629490727275b853f6308a980f0061fbe0131f3c7a026d8f000008000000000000000b0bd724e9fc3cc004a1097fddc65c1b1b328277ff85ed56b9261eb7bcee28ec2d3616689ab3f31f849eebce6f21e6302003c0467844e000000000db0700bd694a09b253a1c6c7c138b3ec6ee9b83edcc55d3403acd5c50e2740a7ab7069790d5b8f7ab45184caffff00009bc7e2e4d219e1d7ebeb51511d9df85a648b1b85f93cb6cd21f93d5ea3da2b31657c065d052d9b9ee00320c9f97ebac25b929b3c15e33be6e7d54e622b427ef03fde9ed018df48b5c58a936620ba1f5fbb48703ab211f442697edc165b449db2e3c221fbf270a6db414516bd7c1a3e60c2e294f828e06f1b2cb70328f151f949e387aae9d7d2800c8eff7f93c05adc9086d3f143a7b87d06838c6525cafdc01820a8912a1641b38333ce1c84b0d9d033edc9da00c8a2b42e8adfeff69ece7a35f79748e3e5b235269310988a05379498dbef3d1aa550c83d6328eb000000044a6458c31431d58973c93f5e9452258a7098bc3d014afe638a40948498faa261213bc20845526e054d6b3ba5ca8f357df67c41acc28edacb31d38994544c3511ea1e8a448e66039425cfb03efb5d5eb81a306746adb8809ef969187763c00085e2dc401325327e54cbfceb400c2663466cd4a79c94b62c9882626499a8a29c564464f2a7aee6a929f831c93d23005787d272b5eaf0c6e11a7f0f1f39f68df44f6bf2ebe448cbe850efd24bf7b96ad33abbd3a8b5814b5e7f85d1a47ee604ccef20bda53c9ce06910568fc200eedb2fc6ef2734a6e9af5132f0c507e277fd97f9b48c840697289d38e454467f4d2f6d06edd083dafefd76deb251b5818de9c27d0df6e7b8862fe42f6c453f551f35b6d76395a1d205f276ae628fbdb8081905a1d7c2805532d3387b88f2997e8ce41c5dca83659cfb7f3a1c7b2bec8a7575dc4241dde6c680ee9a2752eead42d4954bef864586ad02c27858d63efc4987b0f2a8b14054e30f30fedf536d63769a1d6fc3b472195d0a1a13ecf803136d751cefb0edb5794cab8681214b39f86d88f3aebea4d465ef05f975b09f264d6c8d8e3bb6ea7d0bc6602bcc8f76f2546cccc074f55c22aa8b5029681913d6241c34462f47c8a50036dd268a1aeff951f5090492b5e941feb1323182627f6faec04947d3785aafe1655876e5a36c40fb5afcfd1eb28952662782097836a4d1aa3de0c06bb7dc27cf1a546b6aa6ce9932f3c6a013bc3791da4d8a33680ba8f1334d75a43e991ebd4582d786ec05cdd3af7e622015fc7595cbd339f730d2ec8e37e6c500c4c30280a6af986f62a22d9c5c275e7798c165545abfcd304243274db15924a136a0896d56576ed5de90b1bda90f4024b9a0b3b33f688db8e38f784ae394eb0438cc272133fac718a6553710e4ca97df646b21d02652c54eade2e99344e11a2671cf274d397650fba8fcfb7e51a926e37b3980a1732111175dd99b9d979042b3ea411a7b6c9081ae9b82974d5eb6fd4e4bcd95e4f897dfba4e49f3d3e302a896b650a66d9139696b926c36a33eb3adc092bf4586bfab34002f802bbfe6a7679cec20cc25e01f129bbe92a65961fac7bffa3d8feda6ac927743d2bce57ee39b671948576337535180aa754e035421cf1709bc1b5e46c35515fb1fcda637a6405e9b216d2c0000000000000000"], &(0x7f0000003ff6)='GPL\x00', 0x5, 0xfd90, &(0x7f000000cf3d)=""/195, 0x0, 0x0, '\x00', 0x0, 0x1, 0xffffffffffffffff, 0x8, &(0x7f0000000000), 0x21e, 0x10, &(0x7f00000002c0), 0xfffffffffffffd02}, 0x48) (async, rerun: 32) r1 = openat$cgroup_root(0xffffffffffffff9c, &(0x7f0000000080)='./cgroup/syz1\x00', 0x200002, 0x0) (rerun: 32) r2 = openat$vcsu(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) read$qrtrtun(r2, &(0x7f00000000c0)=""/68, 0x44) (async) bpf$BPF_GET_PROG_INFO(0xf, &(0x7f00000007c0)={r2, 0xe0, &(0x7f00000006c0)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, &(0x7f0000000500)=[0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0], ""/16, 0x0, 0x0, 0x0, 0x0, 0x3, 0x2, &(0x7f0000000540)=[0x0, 0x0, 0x0], &(0x7f0000000580)=[0x0, 0x0], 0x0, 0x8, &(0x7f00000005c0)=[{}], 0x8, 0x10, &(0x7f0000000600), &(0x7f0000000640), 0x8, 0x10, 0x8, 0x8, &(0x7f0000000680)}}, 0x10) (async, rerun: 64) r3 = openat$ipvs(0xffffffffffffff9c, &(0x7f0000000040)='/proc/sys/net/ipv4/vs/sync_retries\x00', 0x2, 0x0) (rerun: 64) bpf$BPF_PROG_TEST_RUN(0xa, &(0x7f0000000440)={r3, 0x0, 0xdc, 0x8c, &(0x7f0000000100)="a63f8b97aeaac0fdefcbfe66fe97b463f8965940996845a4d6d2c1a91f0ee0ac99cabf38720e6839f60f0fe23d08efcb0732cee77178ea0769fc36a61018e1dcbef051273add39fec8e6ba0505ff2041895fb2d8c947cc05b99b2224fb512e677f872a94974aa11b3da414e50f6fe6b41d3d2c3dc5c5bdebf72bb27238a90ae97b4fb1ef99029b9d3482f937b067a11f101c7accc5f77da4da9f744ba0da66501df45de356c57031f5fb456dfd53f95eed9bd1607000e95cc2d94c3022e2ccc3b92ef511f3a266fefc4e4d0f4cdc4962f10153698af46c5916b15891", &(0x7f0000000200)=""/140, 0x1b98, 0x0, 0x21, 0xce, &(0x7f0000000300)="9fbf8f12eb06bfeca8b5c59dd17bafb77df722355022e6444ebff43ca986da31b5", &(0x7f0000000340)="7f16f2542bc821e09341736122d611742a60c1ebcc6be336681ad6b8ce1430125846fec6a38f17d412683b6dfe161f00ba10fc10740fd29e9d3273760588a29a8fbfd5012db1992509179a0663f0047d1de86b1ababba36d13efa3c77ac5b09c1621ca8921eb4d5074fe5f8d18570b03ef2cd91b66e6371861480ac344139cc431c6d3bdc57815aec6cf55ec32da284a0dee5adea3364940ddb0c2bc0f44563003212f0f76698ce1e5de52052bacc32009e04b938a325db1360fb53b3d07c9986e0ef1875c7f33b5d011d186eec6", 0x1, 0x390}, 0x48) (async) r4 = openat$vcsu(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) read$qrtrtun(r4, &(0x7f00000000c0)=""/68, 0x44) (async) openat$cgroup_int(r4, &(0x7f00000004c0)='cpuset.sched_load_balance\x00', 0x2, 0x0) (async) bpf$BPF_PROG_ATTACH(0x8, &(0x7f00000000c0)={@cgroup=r1, r0, 0x1}, 0x14) 00:14:50 executing program 5: fremovexattr(0xffffffffffffffff, &(0x7f0000000140)=@known='com.apple.FinderInfo\x00') r0 = socket$netlink(0x10, 0x3, 0x0) sendmsg$AUDIT_TTY_GET(r0, &(0x7f0000000100)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x4000}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)={0x10, 0x3f8, 0x20, 0x70bd2d, 0x25dfdbfd, "", ["", ""]}, 0x10}, 0x1, 0x0, 0x0, 0x80}, 0xc0) sendmsg$nl_route(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000340)=ANY=[@ANYBLOB="4400000010001fff00"/20, @ANYRES32=0x0, @ANYBLOB="0000000000000000240012800800010067726100180002e78005000a00000000689b38190001b70000040012"], 0x44}}, 0x0) fremovexattr(0xffffffffffffffff, &(0x7f0000000140)=@known='com.apple.FinderInfo\x00') (async) socket$netlink(0x10, 0x3, 0x0) (async) sendmsg$AUDIT_TTY_GET(r0, &(0x7f0000000100)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x4000}, 0xc, &(0x7f0000000080)={&(0x7f0000000040)={0x10, 0x3f8, 0x20, 0x70bd2d, 0x25dfdbfd, "", ["", ""]}, 0x10}, 0x1, 0x0, 0x0, 0x80}, 0xc0) (async) sendmsg$nl_route(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000300)={&(0x7f0000000340)=ANY=[@ANYBLOB="4400000010001fff00"/20, @ANYRES32=0x0, @ANYBLOB="0000000000000000240012800800010067726100180002e78005000a00000000689b38190001b70000040012"], 0x44}}, 0x0) (async) 00:14:50 executing program 1: r0 = syz_mount_image$f2fs(&(0x7f0000000000), &(0x7f0000000140)='./file0\x00', 0x8000000, 0x45, &(0x7f0000000200)=[{&(0x7f0000011860)="00000000000000002400320000000000abf0a9c7661f1f6300000000412f651b000000000000000000000000000000002f746d702f73797a2d696d61676567656e323938323031313634362f66696c65302f66696c6530000000000000000000", 0x60, 0x1b}, {&(0x7f0000010000)="1020f5f201000e0009000000030000000c0000000900000002000000010000000000000000800000000000001b0000003e00000002000000020000000200000001000000360000000004000000100000001400000300000001000000020000002b1cb9e3996e42d4987ddb8c29eb8b3000000000", 0x74, 0x400}, {&(0x7f0000010080)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00%\x00\x00\x00mp\x00\x00\x00\x00\x00\x00wm\x00\x00\x00\x00\x00\x00og\x00\x00\x00\x00\x00\x00jp\x00\x00\x00\x00\x00\x00avi\x00\x00\x00\x00\x00m4v\x00\x00\x00\x00\x00m4p\x00\x00\x00\x00\x00mkv\x00\x00\x00\x00\x00mov\x00\x00\x00\x00\x00webm\x00\x00\x00\x00wav\x00\x00\x00\x00\x00m4a\x00\x00\x00\x00\x003gp\x00\x00\x00\x00\x00opus\x00\x00\x00\x00flac\x00\x00\x00\x00gif\x00\x00\x00\x00\x00png\x00\x00\x00\x00\x00svg\x00\x00\x00\x00\x00webp\x00\x00\x00\x00jar\x00\x00\x00\x00\x00deb\x00\x00\x00\x00\x00iso\x00\x00\x00\x00\x00gz\x00\x00\x00\x00\x00\x00xz\x00\x00\x00\x00\x00\x00zst\x00\x00\x00\x00\x00pdf\x00\x00\x00\x00\x00pyc\x00\x00\x00\x00\x00ttc\x00\x00\x00\x00\x00ttf\x00\x00\x00\x00\x00exe\x00\x00\x00\x00\x00apk\x00\x00\x00\x00\x00cnt\x00\x00\x00\x00\x00exo\x00\x00\x00\x00\x00odex\x00\x00\x00\x00vdex\x00\x00\x00\x00so\x00\x00\x00\x00\x00\x00cold\x00\x00\x00\x00db\x00'/352, 0x160, 0x860}, {&(0x7f00000101e0)='\x00\x00\x00\x00Linux version 5.17.11-1rodete2-amd64 (glinux-team@google.com) (gcc-11 (Debian 11.2.0-20) 11.2.0, GNU ld (GNU Binutils for Debian) 2.38) #1 SMP PREEMPT Debian 5.17.11-1rodete2 (2022-06-09)\x00', 0xc0, 0xa80}, {&(0x7f00000102a0)='\x00\x00\x00\x00Linux version 5.17.11-1rodete2-amd64 (glinux-team@google.com) (gcc-11 (Debian 11.2.0-20) 11.2.0, GNU ld (GNU Binutils for Debian) 2.38) #1 SMP PREEMPT Debian 5.17.11-1rodete2 (2022-06-09)\x00', 0xc0, 0xb80}, {&(0x7f00000009c0)="00400000780100000000000000000000c4884579995d87a5025f4cd19ac581dd000000007e47e69a2daf0c886af2c929ea077f2e0bd396f00f6c8b97142901f3411bacfec60300d52b34c37149ac730009af16eccee063bc270726c978adf39ae7416d54bc4d7543f11fd10000000000000000000000b45a0af576ef07e36faff8b2b273a30e885f2a9fb02b73f1813d82a5c991536d50f90f7df3d3a255db72ad265690fccb4d3a92af599c53be58213f85f61a69eed8a23ac18f96c4f5dec16e43f98e700e557720341cdf97af11c949ab4a5eb8ff0bec70a32da384bed350f99ffcda78c281a7dcd700892ceb940d71b5572e3b832096643a27a943c34c34a7a7bf447121c80099e912620c8baa3b1e551b97def829a76110a0183df1034be167f4f0f56569d1c86889d06fb91b91c0400a367c6dcdeddf943d82826e32c8fcade41b4f", 0x145, 0xc80}, {&(0x7f0000010380)="00000000000100"/32, 0x20, 0xec0}, {&(0x7f00000103a0)="1020f5f201000e0009000000030000000c0000000900000002000000010000000000000000800000000000001b0000003e0000000200000002000000020000000200000036000000000400000004000000080000000c000000100000001400000300000001000000020000002b1cb9e3996e42d4987ddb8c29eb8b3000000000", 0x80, 0x1400}, {&(0x7f0000010420)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00%\x00\x00\x00mp\x00\x00\x00\x00\x00\x00wm\x00\x00\x00\x00\x00\x00og\x00\x00\x00\x00\x00\x00jp\x00\x00\x00\x00\x00\x00avi\x00\x00\x00\x00\x00m4v\x00\x00\x00\x00\x00m4p\x00\x00\x00\x00\x00mkv\x00\x00\x00\x00\x00mov\x00\x00\x00\x00\x00webm\x00\x00\x00\x00wav\x00\x00\x00\x00\x00m4a\x00\x00\x00\x00\x003gp\x00\x00\x00\x00\x00opus\x00\x00\x00\x00flac\x00\x00\x00\x00gif\x00\x00\x00\x00\x00png\x00\x00\x00\x00\x00svg\x00\x00\x00\x00\x00webp\x00\x00\x00\x00jar\x00\x00\x00\x00\x00deb\x00\x00\x00\x00\x00iso\x00\x00\x00\x00\x00gz\x00\x00\x00\x00\x00\x00xz\x00\x00\x00\x00\x00\x00zst\x00\x00\x00\x00\x00pdf\x00\x00\x00\x00\x00pyc\x00\x00\x00\x00\x00ttc\x00\x00\x00\x00\x00ttf\x00\x00\x00\x00\x00exe\x00\x00\x00\x00\x00apk\x00\x00\x00\x00\x00cnt\x00\x00\x00\x00\x00exo\x00\x00\x00\x00\x00odex\x00\x00\x00\x00vdex\x00\x00\x00\x00so\x00\x00\x00\x00\x00\x00cold\x00\x00\x00\x00db\x00'/352, 0x160, 0x1860}, {&(0x7f0000010580)='\x00\x00\x00\x00Linux version 5.17.11-1rodete2-amd64 (glinux-team@google.com) (gcc-11 (Debian 11.2.0-20) 11.2.0, GNU ld (GNU Binutils for Debian) 2.38) #1 SMP PREEMPT Debian 5.17.11-1rodete2 (2022-06-09)\x00', 0xc0, 0x1a80}, {&(0x7f0000010640)='\x00\x00\x00\x00Linux version 5.17.11-1rodete2-amd64 (glinux-team@google.com) (gcc-11 (Debian 11.2.0-20) 11.2.0, GNU ld (GNU Binutils for Debian) 2.38) #1 SMP PREEMPT Debian 5.17.11-1rodete2 (2022-06-09)\x00', 0xc0, 0x1b80}, {&(0x7f0000010700)="00000000780100"/32, 0x20, 0x1c80}, {&(0x7f0000010720)="00000000000100"/32, 0x20, 0x1ec0}, {&(0x7f0000010ba0)="b0da173e0000000000240000000000000b000000000000001b0000002400000030000000000000000200000004000000ffffffffffffffffffffffffffffffffffffffff0300060000000000000000000000000006000000180000000a000000ffffffffffffffffffffffffffffffffffffffff05000000000000000000000000000000c5000000060000000100000007000000070000000a0000004000000040000000fc0f00"/192, 0xc0, 0x31e7}, {&(0x7f0000010740)="b1da173e0000000000240000000000000b000000000000001b0000002400000030000000000000000200000004000000ffffffffffffffffffffffffffffffffffffffff0300060000000000000000000000000006000000180000000a000000ffffffffffffffffffffffffffffffffffffffff05000000000000000000000000000000c5010000060000000100000007000000070000000a0000004000000040000000fc0f00"/192, 0xc0, 0x400000}, {&(0x7f0000010800)="0000000000000000000000000000000000000000000000000000000025b607ec0000030000000003000000001400"/64, 0x40, 0x400fe0}, {&(0x7f0000010840)="000000000000000000000000000000000000000000000000000000060000000000020c6000"/64, 0x40, 0x4011e0}, {&(0x7f0000010880)="0000000000000000000000090000000510ec00"/32, 0x20, 0x401240}, {&(0x7f00000108a0)="0000000000000000000000000000000000000000000000000004000000001400", 0x20, 0x401280}, {&(0x7f00000108c0)="000000000000000600000004007800"/32, 0x20, 0x4012e0}, {&(0x7f00000108e0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\b\x00\x00\x00\x00\x00', 0x20, 0x401320}, {&(0x7f0000010900)="00000018000000000400"/32, 0x20, 0x401380}, {&(0x7f0000010920)="00000000000000000000000000000000000000000000030000000000000300000000000008000000000000080000000001000800000000020000000000000000", 0x40, 0x4013e0}, {&(0x7f0000010960)="03000000000000030000000000000400"/32, 0x20, 0x402000}, {&(0x7f0000010980)='\x00'/20, 0x14, 0x402dff}, {&(0x7f00000109a0)="000000000000000000000000000000000000000000000000000000010000000005000000000000060000000000000700000000000008000000000000090000000000000800"/96, 0x60, 0x402fe0}, {&(0x7f0000010a00)="0000000000000000000000000000000000000000000000000000000100000000", 0x20, 0x403fe0}, {&(0x7f0000010a20)="0000000000000000000000000000000000000000000000000000000100000000b1da173e0000000000240000000000000b000000000000001b0000002400000030000000000000000200000004000000ffffffffffffffffffffffffffffffffffffffff0300060000000000000000000000000006000000180000000a000000ffffffffffffffffffffffffffffffffffffffff05000000000000000000000000000000c5010000060000000100000007000000070000000a0000004000000040000000fc0f00"/224, 0xe0, 0x404fe0}, {&(0x7f0000010b00)="0000000000000000000000000000000000000000000000000000000025b607ec", 0x20, 0x405fe0}, {&(0x7f0000010b20)="b1da173e25b607ec00"/32, 0x20, 0x5ff000}, {&(0x7f0000000880)="000000000000ffffffff7fffffffffffffffffffffffffacff53d7c677a96050492a4fffffffffffffffffffffffffffffffffff2100ffffffffffffffffffffffffffffffff9d7a54098bee48ffffff0000000000000000000040000000001ef8e348f925fb74189c3908695f43d40000000000000000", 0x77, 0x5ff040}, {&(0x7f0000010c60)="0000000000000000000000000000000000000000000000000000000043b4bb250000030000000003000000001400"/64, 0x40, 0x600fe0}, {&(0x7f0000010ca0)="000000000000000000000000000000000000000000000000000000060000000000020c6000"/64, 0x40, 0x6011e0}, {&(0x7f0000010ce0)="0000000000000000000000020000000510ec00"/32, 0x20, 0x601240}, {&(0x7f0000010d00)="0000000000000000000000000000000000000000000000000004000000001400", 0x20, 0x601280}, {&(0x7f00000001c0)="000000000000000600000004007800"/32, 0x20, 0x6012e0}, {&(0x7f0000010d40)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\b\x00\x00\x00\x00\x00', 0x20, 0x601320}, {&(0x7f0000010d60)="00000018000000000400"/32, 0x20, 0x601380}, {&(0x7f0000010d80)="00000000000000000000000000000000000000000000030000000000000300000000000008000000000000080000000001000800000000020000000000000000", 0x40, 0x6013e0}, {&(0x7f0000010dc0)="03000000000000030000000000000400"/32, 0x20, 0x602000}, {&(0x7f0000010de0)='\x00\x00p\x00'/32, 0x20, 0x602e00}, {&(0x7f0000000040)="00000000000000000000000000000000000000000000000000000001000000000500000000000006000000000004070000000000000800000000000009000000000000080000000000000000000000000000000000000000000000000000b0eb263e3a5851768ca10000", 0x6a, 0x602fe0}, {&(0x7f0000010e60)="00000000000e00000000001300"/28, 0x1c, 0x603fe0}, {&(0x7f0000010e80)="0000000000000000000000000000000000000000000000000000000100000000b0da173e0000000000240000000000000b000000000000001b0000002400000030000000000000000200000004000000ffffffffffffffffffffffffffffffffffffffff0300060000000000000000000000000006000000180000000a000000ffffffffffffffffffffffffffffffffffffffff05000000000000000000000000000000c5000000060000000100000007000000070000000a0000004000000040000000fc0f00"/224, 0xe0, 0x604fe0}, {&(0x7f0000010f60)="0000000000000000000000000000000000000000000000000000000043b4bb25", 0x20, 0x605fe0}, {&(0x7f0000010f80)="b0da173e43b4bb2500"/32, 0x20, 0x7ff000}, {&(0x7f0000010fa0)="0000000000000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"/96, 0x60, 0x7ff040}, {&(0x7f0000011000)="000000000000000000000100000001000000000200000001000000000300000001140000000400000002140000000500000000180000000600000001180000000700000002180000000800000005180000000900000004180000000000000000", 0x60, 0xc00000}, {&(0x7f0000011060)="000000000000000000000100000001000000000200000001000000000300000001140000000400000002140000000500000000180000000600000001180000000700000002180000000800000003180000000900000004180000000000000000", 0x60, 0xe00000}, {&(0x7f00000110c0)="ed41002080761000535f010003000000001000000000000002000000000000005e1f1f6300000000661f1f6300000000661f1f630000000000000000412f651b412f651b000000000100"/96, 0x60, 0x1401000}, {&(0x7f0000011120)="00000000000000001800000000000000793947565e1f1f630000000000000000012000"/64, 0x40, 0x1401160}, {&(0x7f0000011160)="0000000000000000030000000300000000000000adda173e0000000002140000ed4100250000000000000000020000007c0d0000000000000100000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651b4c282be9000000000000000000100000030000000500000066696c653000"/160, 0xa0, 0x1401fe0}, {&(0x7f0000011200)="0000000000000000240032000000000069bc06b3661f1f6300000000412f651b000000000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000000000000000400000001000200000000030000000200024a8113ed050000000500018dcece450600000005000700000000", 0x80, 0x1402160}, {&(0x7f0000011280)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00.\x00\x00\x00\x00\x00\x00\x00..\x00\x00\x00\x00\x00\x00file0\x00\x00\x00file1\x00'/64, 0x40, 0x1402960}, {&(0x7f0000000180)="0000000000000000040000000400000000000000adda173e07000000031400003294e50c204962a8f757578f1df78a7e15f5ba10ded1bea9b1e747", 0x3b, 0x1402fe0}, {&(0x7f00000112e0)="ed81002b0000000000000000010000001a040000000000000100000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651ba02206c7000000000000000000000000040000000500000066696c653000"/128, 0x80, 0x1800000}, {&(0x7f0000011360)="00000000000000002400320000000000a12a48b8661f1f6300000000412f651b0000000000000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c00"/1120, 0x460, 0x1800160}, {&(0x7f00000117c0)="0000000000000000050000000500000001000000adda173e0000000001180000ffa1002b00000000000000000100000027000000000000000100000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651bc8e3acae000000000000000000000000040000000500000066696c653100"/160, 0xa0, 0x1800fe0}, {&(0x7f00000118c0)="0000000000000000060000000600000001000000adda173e0000000002180000ed81002b0000000000000000010000000a000000000000000100000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651bda36aa72000000000000000000000000030000000500000066696c653100"/160, 0xa0, 0x1801fe0}, {&(0x7f0000011960)="0000000000000000240032000000000020d3f802661f1f6300000000412f651b0000000000000000000000000000000073797a6b616c6c657273000000000000", 0x40, 0x1802160}, {&(0x7f00000119a0)="0000000000000000000000001120f5f20100000000000000000000000000000000000000010606007861747472317861747472310106060078617474723278617474723200"/96, 0x60, 0x1802f00}, {&(0x7f0000011a00)="0000000000000000070000000700000001000000adda173e0000000003180000", 0x20, 0x1802fe0}, {&(0x7f0000011a20)="ed81012b00000000000000000100000064000000000000000100000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651bb0519ecf000000000000000000000000030000000900000066696c652e636f6c6400"/128, 0x80, 0x1804000}, {&(0x7f0000011aa0)="0000000000000000240032000000000048b53521661f1f6300000000412f651b0000000000000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c65727300"/160, 0xa0, 0x1804160}, {&(0x7f0000011b40)="0000000000000000090000000900000001000000adda173e0000000005180000ed81022100000000000000000200000028230000000000000400000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651b2421c896000000000000000000000000030000000500000066696c653300"/160, 0xa0, 0x1804fe0}, {&(0x7f0000011be0)="02200000030000002400320000000000f1e1ed3b661f1f6300000000412f651b0000000000000000000000000220000003200000042000"/64, 0x40, 0x1805160}, {&(0x7f0000011c20)="0000000000000000080000000800000001000000aeda173eaa594c5706180000", 0x20, 0x1805fe0}, {&(0x7f0000011c40)="ff0000000000000000000000000000000000000000000000000000000000000000000300000001000200000000030000000200024a8113ed040000000500028dcece4507000000050001baeed06f0800000005000153bfc55008000000050001120052230900000009000100"/128, 0x80, 0x2001000}, {&(0x7f0000011cc0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00.\x00\x00\x00\x00\x00\x00\x00..\x00\x00\x00\x00\x00\x00file0\x00\x00\x00file1\x00\x00\x00file2\x00\x00\x00file3\x00\x00\x00file.cold\x00'/96, 0x60, 0x2001940}], 0x0, &(0x7f0000000c00)=ANY=[@ANYBLOB="0053e8fbde24a9b5327e440644446d115f8a08a4f91bc33a27984d54a47519c507f0168b57bda7ea2c728be41c5b95e451eb1dff3898c7506d0375324a4ba2b960ceef9edd05b4ffc3cc0d35d95cfcfea982e92b86949ce31a7dc5577f3e2ca0a612a05b8f094fd18f80079acb98a3a168d39bd645d801680e60ec98044151af7a583580ff4119ccb9afebb9a774777ce79d9fe6790ebd279eeecf6d98710cc75a4f3177500df102f6768e3663cfeb3bc4b905fcfd5885ba896413836bd71d8e7c165791ff83b4ffd04d8f77ed1174dce1669b887f777368f00542bf2ec09046eec948a17e141d134c9a6dd5ce10878bf36e5fd089552aac1b8b68fe398e1450a4f9ff86f478bf4c07dff21d158956c57fdc012aada8581ac7d172627083bbdf5daa507c9cfa7f89031904a2da59a0f9d9ec685fbf1d7da9f9009f8d147335601063e3594b437525dbebf61cb6bc08b620c57403968536801dec07785311e898bd216d9b5c197362b8eaadeff7086c61445e9c24354d8afe0d70002886e0d083925df4acdbb68e"], 0x1) fcntl$setflags(r0, 0x2, 0x0) getsockopt$inet_sctp_SCTP_RECVNXTINFO(0xffffffffffffffff, 0x84, 0x21, &(0x7f00000000c0), &(0x7f0000000100)=0x4) syz_mount_image$f2fs(&(0x7f0000000000), &(0x7f0000000140)='./file0\x00', 0x8000000, 0x45, &(0x7f0000000200)=[{&(0x7f0000011860)="00000000000000002400320000000000abf0a9c7661f1f6300000000412f651b000000000000000000000000000000002f746d702f73797a2d696d61676567656e323938323031313634362f66696c65302f66696c6530000000000000000000", 0x60, 0x1b}, {&(0x7f0000010000)="1020f5f201000e0009000000030000000c0000000900000002000000010000000000000000800000000000001b0000003e00000002000000020000000200000001000000360000000004000000100000001400000300000001000000020000002b1cb9e3996e42d4987ddb8c29eb8b3000000000", 0x74, 0x400}, {&(0x7f0000010080)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00%\x00\x00\x00mp\x00\x00\x00\x00\x00\x00wm\x00\x00\x00\x00\x00\x00og\x00\x00\x00\x00\x00\x00jp\x00\x00\x00\x00\x00\x00avi\x00\x00\x00\x00\x00m4v\x00\x00\x00\x00\x00m4p\x00\x00\x00\x00\x00mkv\x00\x00\x00\x00\x00mov\x00\x00\x00\x00\x00webm\x00\x00\x00\x00wav\x00\x00\x00\x00\x00m4a\x00\x00\x00\x00\x003gp\x00\x00\x00\x00\x00opus\x00\x00\x00\x00flac\x00\x00\x00\x00gif\x00\x00\x00\x00\x00png\x00\x00\x00\x00\x00svg\x00\x00\x00\x00\x00webp\x00\x00\x00\x00jar\x00\x00\x00\x00\x00deb\x00\x00\x00\x00\x00iso\x00\x00\x00\x00\x00gz\x00\x00\x00\x00\x00\x00xz\x00\x00\x00\x00\x00\x00zst\x00\x00\x00\x00\x00pdf\x00\x00\x00\x00\x00pyc\x00\x00\x00\x00\x00ttc\x00\x00\x00\x00\x00ttf\x00\x00\x00\x00\x00exe\x00\x00\x00\x00\x00apk\x00\x00\x00\x00\x00cnt\x00\x00\x00\x00\x00exo\x00\x00\x00\x00\x00odex\x00\x00\x00\x00vdex\x00\x00\x00\x00so\x00\x00\x00\x00\x00\x00cold\x00\x00\x00\x00db\x00'/352, 0x160, 0x860}, {&(0x7f00000101e0)='\x00\x00\x00\x00Linux version 5.17.11-1rodete2-amd64 (glinux-team@google.com) (gcc-11 (Debian 11.2.0-20) 11.2.0, GNU ld (GNU Binutils for Debian) 2.38) #1 SMP PREEMPT Debian 5.17.11-1rodete2 (2022-06-09)\x00', 0xc0, 0xa80}, {&(0x7f00000102a0)='\x00\x00\x00\x00Linux version 5.17.11-1rodete2-amd64 (glinux-team@google.com) (gcc-11 (Debian 11.2.0-20) 11.2.0, GNU ld (GNU Binutils for Debian) 2.38) #1 SMP PREEMPT Debian 5.17.11-1rodete2 (2022-06-09)\x00', 0xc0, 0xb80}, {&(0x7f00000009c0)="00400000780100000000000000000000c4884579995d87a5025f4cd19ac581dd000000007e47e69a2daf0c886af2c929ea077f2e0bd396f00f6c8b97142901f3411bacfec60300d52b34c37149ac730009af16eccee063bc270726c978adf39ae7416d54bc4d7543f11fd10000000000000000000000b45a0af576ef07e36faff8b2b273a30e885f2a9fb02b73f1813d82a5c991536d50f90f7df3d3a255db72ad265690fccb4d3a92af599c53be58213f85f61a69eed8a23ac18f96c4f5dec16e43f98e700e557720341cdf97af11c949ab4a5eb8ff0bec70a32da384bed350f99ffcda78c281a7dcd700892ceb940d71b5572e3b832096643a27a943c34c34a7a7bf447121c80099e912620c8baa3b1e551b97def829a76110a0183df1034be167f4f0f56569d1c86889d06fb91b91c0400a367c6dcdeddf943d82826e32c8fcade41b4f", 0x145, 0xc80}, {&(0x7f0000010380)="00000000000100"/32, 0x20, 0xec0}, {&(0x7f00000103a0)="1020f5f201000e0009000000030000000c0000000900000002000000010000000000000000800000000000001b0000003e0000000200000002000000020000000200000036000000000400000004000000080000000c000000100000001400000300000001000000020000002b1cb9e3996e42d4987ddb8c29eb8b3000000000", 0x80, 0x1400}, {&(0x7f0000010420)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00%\x00\x00\x00mp\x00\x00\x00\x00\x00\x00wm\x00\x00\x00\x00\x00\x00og\x00\x00\x00\x00\x00\x00jp\x00\x00\x00\x00\x00\x00avi\x00\x00\x00\x00\x00m4v\x00\x00\x00\x00\x00m4p\x00\x00\x00\x00\x00mkv\x00\x00\x00\x00\x00mov\x00\x00\x00\x00\x00webm\x00\x00\x00\x00wav\x00\x00\x00\x00\x00m4a\x00\x00\x00\x00\x003gp\x00\x00\x00\x00\x00opus\x00\x00\x00\x00flac\x00\x00\x00\x00gif\x00\x00\x00\x00\x00png\x00\x00\x00\x00\x00svg\x00\x00\x00\x00\x00webp\x00\x00\x00\x00jar\x00\x00\x00\x00\x00deb\x00\x00\x00\x00\x00iso\x00\x00\x00\x00\x00gz\x00\x00\x00\x00\x00\x00xz\x00\x00\x00\x00\x00\x00zst\x00\x00\x00\x00\x00pdf\x00\x00\x00\x00\x00pyc\x00\x00\x00\x00\x00ttc\x00\x00\x00\x00\x00ttf\x00\x00\x00\x00\x00exe\x00\x00\x00\x00\x00apk\x00\x00\x00\x00\x00cnt\x00\x00\x00\x00\x00exo\x00\x00\x00\x00\x00odex\x00\x00\x00\x00vdex\x00\x00\x00\x00so\x00\x00\x00\x00\x00\x00cold\x00\x00\x00\x00db\x00'/352, 0x160, 0x1860}, {&(0x7f0000010580)='\x00\x00\x00\x00Linux version 5.17.11-1rodete2-amd64 (glinux-team@google.com) (gcc-11 (Debian 11.2.0-20) 11.2.0, GNU ld (GNU Binutils for Debian) 2.38) #1 SMP PREEMPT Debian 5.17.11-1rodete2 (2022-06-09)\x00', 0xc0, 0x1a80}, {&(0x7f0000010640)='\x00\x00\x00\x00Linux version 5.17.11-1rodete2-amd64 (glinux-team@google.com) (gcc-11 (Debian 11.2.0-20) 11.2.0, GNU ld (GNU Binutils for Debian) 2.38) #1 SMP PREEMPT Debian 5.17.11-1rodete2 (2022-06-09)\x00', 0xc0, 0x1b80}, {&(0x7f0000010700)="00000000780100"/32, 0x20, 0x1c80}, {&(0x7f0000010720)="00000000000100"/32, 0x20, 0x1ec0}, {&(0x7f0000010ba0)="b0da173e0000000000240000000000000b000000000000001b0000002400000030000000000000000200000004000000ffffffffffffffffffffffffffffffffffffffff0300060000000000000000000000000006000000180000000a000000ffffffffffffffffffffffffffffffffffffffff05000000000000000000000000000000c5000000060000000100000007000000070000000a0000004000000040000000fc0f00"/192, 0xc0, 0x31e7}, {&(0x7f0000010740)="b1da173e0000000000240000000000000b000000000000001b0000002400000030000000000000000200000004000000ffffffffffffffffffffffffffffffffffffffff0300060000000000000000000000000006000000180000000a000000ffffffffffffffffffffffffffffffffffffffff05000000000000000000000000000000c5010000060000000100000007000000070000000a0000004000000040000000fc0f00"/192, 0xc0, 0x400000}, {&(0x7f0000010800)="0000000000000000000000000000000000000000000000000000000025b607ec0000030000000003000000001400"/64, 0x40, 0x400fe0}, {&(0x7f0000010840)="000000000000000000000000000000000000000000000000000000060000000000020c6000"/64, 0x40, 0x4011e0}, {&(0x7f0000010880)="0000000000000000000000090000000510ec00"/32, 0x20, 0x401240}, {&(0x7f00000108a0)="0000000000000000000000000000000000000000000000000004000000001400", 0x20, 0x401280}, {&(0x7f00000108c0)="000000000000000600000004007800"/32, 0x20, 0x4012e0}, {&(0x7f00000108e0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\b\x00\x00\x00\x00\x00', 0x20, 0x401320}, {&(0x7f0000010900)="00000018000000000400"/32, 0x20, 0x401380}, {&(0x7f0000010920)="00000000000000000000000000000000000000000000030000000000000300000000000008000000000000080000000001000800000000020000000000000000", 0x40, 0x4013e0}, {&(0x7f0000010960)="03000000000000030000000000000400"/32, 0x20, 0x402000}, {&(0x7f0000010980)='\x00'/20, 0x14, 0x402dff}, {&(0x7f00000109a0)="000000000000000000000000000000000000000000000000000000010000000005000000000000060000000000000700000000000008000000000000090000000000000800"/96, 0x60, 0x402fe0}, {&(0x7f0000010a00)="0000000000000000000000000000000000000000000000000000000100000000", 0x20, 0x403fe0}, {&(0x7f0000010a20)="0000000000000000000000000000000000000000000000000000000100000000b1da173e0000000000240000000000000b000000000000001b0000002400000030000000000000000200000004000000ffffffffffffffffffffffffffffffffffffffff0300060000000000000000000000000006000000180000000a000000ffffffffffffffffffffffffffffffffffffffff05000000000000000000000000000000c5010000060000000100000007000000070000000a0000004000000040000000fc0f00"/224, 0xe0, 0x404fe0}, {&(0x7f0000010b00)="0000000000000000000000000000000000000000000000000000000025b607ec", 0x20, 0x405fe0}, {&(0x7f0000010b20)="b1da173e25b607ec00"/32, 0x20, 0x5ff000}, {&(0x7f0000000880)="000000000000ffffffff7fffffffffffffffffffffffffacff53d7c677a96050492a4fffffffffffffffffffffffffffffffffff2100ffffffffffffffffffffffffffffffff9d7a54098bee48ffffff0000000000000000000040000000001ef8e348f925fb74189c3908695f43d40000000000000000", 0x77, 0x5ff040}, {&(0x7f0000010c60)="0000000000000000000000000000000000000000000000000000000043b4bb250000030000000003000000001400"/64, 0x40, 0x600fe0}, {&(0x7f0000010ca0)="000000000000000000000000000000000000000000000000000000060000000000020c6000"/64, 0x40, 0x6011e0}, {&(0x7f0000010ce0)="0000000000000000000000020000000510ec00"/32, 0x20, 0x601240}, {&(0x7f0000010d00)="0000000000000000000000000000000000000000000000000004000000001400", 0x20, 0x601280}, {&(0x7f00000001c0)="000000000000000600000004007800"/32, 0x20, 0x6012e0}, {&(0x7f0000010d40)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\b\x00\x00\x00\x00\x00', 0x20, 0x601320}, {&(0x7f0000010d60)="00000018000000000400"/32, 0x20, 0x601380}, {&(0x7f0000010d80)="00000000000000000000000000000000000000000000030000000000000300000000000008000000000000080000000001000800000000020000000000000000", 0x40, 0x6013e0}, {&(0x7f0000010dc0)="03000000000000030000000000000400"/32, 0x20, 0x602000}, {&(0x7f0000010de0)='\x00\x00p\x00'/32, 0x20, 0x602e00}, {&(0x7f0000000040)="00000000000000000000000000000000000000000000000000000001000000000500000000000006000000000004070000000000000800000000000009000000000000080000000000000000000000000000000000000000000000000000b0eb263e3a5851768ca10000", 0x6a, 0x602fe0}, {&(0x7f0000010e60)="00000000000e00000000001300"/28, 0x1c, 0x603fe0}, {&(0x7f0000010e80)="0000000000000000000000000000000000000000000000000000000100000000b0da173e0000000000240000000000000b000000000000001b0000002400000030000000000000000200000004000000ffffffffffffffffffffffffffffffffffffffff0300060000000000000000000000000006000000180000000a000000ffffffffffffffffffffffffffffffffffffffff05000000000000000000000000000000c5000000060000000100000007000000070000000a0000004000000040000000fc0f00"/224, 0xe0, 0x604fe0}, {&(0x7f0000010f60)="0000000000000000000000000000000000000000000000000000000043b4bb25", 0x20, 0x605fe0}, {&(0x7f0000010f80)="b0da173e43b4bb2500"/32, 0x20, 0x7ff000}, {&(0x7f0000010fa0)="0000000000000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"/96, 0x60, 0x7ff040}, {&(0x7f0000011000)="000000000000000000000100000001000000000200000001000000000300000001140000000400000002140000000500000000180000000600000001180000000700000002180000000800000005180000000900000004180000000000000000", 0x60, 0xc00000}, {&(0x7f0000011060)="000000000000000000000100000001000000000200000001000000000300000001140000000400000002140000000500000000180000000600000001180000000700000002180000000800000003180000000900000004180000000000000000", 0x60, 0xe00000}, {&(0x7f00000110c0)="ed41002080761000535f010003000000001000000000000002000000000000005e1f1f6300000000661f1f6300000000661f1f630000000000000000412f651b412f651b000000000100"/96, 0x60, 0x1401000}, {&(0x7f0000011120)="00000000000000001800000000000000793947565e1f1f630000000000000000012000"/64, 0x40, 0x1401160}, {&(0x7f0000011160)="0000000000000000030000000300000000000000adda173e0000000002140000ed4100250000000000000000020000007c0d0000000000000100000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651b4c282be9000000000000000000100000030000000500000066696c653000"/160, 0xa0, 0x1401fe0}, {&(0x7f0000011200)="0000000000000000240032000000000069bc06b3661f1f6300000000412f651b000000000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000000000000000400000001000200000000030000000200024a8113ed050000000500018dcece450600000005000700000000", 0x80, 0x1402160}, {&(0x7f0000011280)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00.\x00\x00\x00\x00\x00\x00\x00..\x00\x00\x00\x00\x00\x00file0\x00\x00\x00file1\x00'/64, 0x40, 0x1402960}, {&(0x7f0000000180)="0000000000000000040000000400000000000000adda173e07000000031400003294e50c204962a8f757578f1df78a7e15f5ba10ded1bea9b1e747", 0x3b, 0x1402fe0}, {&(0x7f00000112e0)="ed81002b0000000000000000010000001a040000000000000100000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651ba02206c7000000000000000000000000040000000500000066696c653000"/128, 0x80, 0x1800000}, {&(0x7f0000011360)="00000000000000002400320000000000a12a48b8661f1f6300000000412f651b0000000000000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c00"/1120, 0x460, 0x1800160}, {&(0x7f00000117c0)="0000000000000000050000000500000001000000adda173e0000000001180000ffa1002b00000000000000000100000027000000000000000100000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651bc8e3acae000000000000000000000000040000000500000066696c653100"/160, 0xa0, 0x1800fe0}, {&(0x7f00000118c0)="0000000000000000060000000600000001000000adda173e0000000002180000ed81002b0000000000000000010000000a000000000000000100000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651bda36aa72000000000000000000000000030000000500000066696c653100"/160, 0xa0, 0x1801fe0}, {&(0x7f0000011960)="0000000000000000240032000000000020d3f802661f1f6300000000412f651b0000000000000000000000000000000073797a6b616c6c657273000000000000", 0x40, 0x1802160}, {&(0x7f00000119a0)="0000000000000000000000001120f5f20100000000000000000000000000000000000000010606007861747472317861747472310106060078617474723278617474723200"/96, 0x60, 0x1802f00}, {&(0x7f0000011a00)="0000000000000000070000000700000001000000adda173e0000000003180000", 0x20, 0x1802fe0}, {&(0x7f0000011a20)="ed81012b00000000000000000100000064000000000000000100000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651bb0519ecf000000000000000000000000030000000900000066696c652e636f6c6400"/128, 0x80, 0x1804000}, {&(0x7f0000011aa0)="0000000000000000240032000000000048b53521661f1f6300000000412f651b0000000000000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c65727300"/160, 0xa0, 0x1804160}, {&(0x7f0000011b40)="0000000000000000090000000900000001000000adda173e0000000005180000ed81022100000000000000000200000028230000000000000400000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651b2421c896000000000000000000000000030000000500000066696c653300"/160, 0xa0, 0x1804fe0}, {&(0x7f0000011be0)="02200000030000002400320000000000f1e1ed3b661f1f6300000000412f651b0000000000000000000000000220000003200000042000"/64, 0x40, 0x1805160}, {&(0x7f0000011c20)="0000000000000000080000000800000001000000aeda173eaa594c5706180000", 0x20, 0x1805fe0}, {&(0x7f0000011c40)="ff0000000000000000000000000000000000000000000000000000000000000000000300000001000200000000030000000200024a8113ed040000000500028dcece4507000000050001baeed06f0800000005000153bfc55008000000050001120052230900000009000100"/128, 0x80, 0x2001000}, {&(0x7f0000011cc0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00.\x00\x00\x00\x00\x00\x00\x00..\x00\x00\x00\x00\x00\x00file0\x00\x00\x00file1\x00\x00\x00file2\x00\x00\x00file3\x00\x00\x00file.cold\x00'/96, 0x60, 0x2001940}], 0x0, &(0x7f0000000c00)=ANY=[@ANYBLOB="0053e8fbde24a9b5327e440644446d115f8a08a4f91bc33a27984d54a47519c507f0168b57bda7ea2c728be41c5b95e451eb1dff3898c7506d0375324a4ba2b960ceef9edd05b4ffc3cc0d35d95cfcfea982e92b86949ce31a7dc5577f3e2ca0a612a05b8f094fd18f80079acb98a3a168d39bd645d801680e60ec98044151af7a583580ff4119ccb9afebb9a774777ce79d9fe6790ebd279eeecf6d98710cc75a4f3177500df102f6768e3663cfeb3bc4b905fcfd5885ba896413836bd71d8e7c165791ff83b4ffd04d8f77ed1174dce1669b887f777368f00542bf2ec09046eec948a17e141d134c9a6dd5ce10878bf36e5fd089552aac1b8b68fe398e1450a4f9ff86f478bf4c07dff21d158956c57fdc012aada8581ac7d172627083bbdf5daa507c9cfa7f89031904a2da59a0f9d9ec685fbf1d7da9f9009f8d147335601063e3594b437525dbebf61cb6bc08b620c57403968536801dec07785311e898bd216d9b5c197362b8eaadeff7086c61445e9c24354d8afe0d70002886e0d083925df4acdbb68e"], 0x1) (async) fcntl$setflags(r0, 0x2, 0x0) (async) getsockopt$inet_sctp_SCTP_RECVNXTINFO(0xffffffffffffffff, 0x84, 0x21, &(0x7f00000000c0), &(0x7f0000000100)=0x4) (async) 00:14:50 executing program 2: r0 = openat$audio1(0xffffffffffffff9c, &(0x7f0000000200), 0x0, 0x0) read$dsp(r0, &(0x7f0000000700)=""/4096, 0x1000) (async) mmap$dsp(&(0x7f0000ffa000/0x4000)=nil, 0x4000, 0x2000000, 0x4010, r0, 0x0) [ 890.580697][T11921] loop1: detected capacity change from 0 to 262144 [ 890.591364][T11921] F2FS-fs (loop1): Segment count (62) mismatch with total segments from devices (1743284064) [ 890.598977][T11921] F2FS-fs (loop1): Can't find valid F2FS filesystem in 1th superblock [ 890.601888][T11921] F2FS-fs (loop1): invalid crc_offset: 0 [ 890.612692][T11921] F2FS-fs (loop1): Found nat_bits in checkpoint [ 890.620911][T11921] F2FS-fs (loop1): Try to recover 1th superblock, ret: 0 [ 890.622927][T11921] F2FS-fs (loop1): Mounted with checkpoint version = 3e17dab1 00:14:55 executing program 4: r0 = syz_mount_image$ntfs3(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x4045ff, 0x15, &(0x7f0000000bc0)=[{&(0x7f0000010000)="eb52904e5446532020202000020800000000000000f8000000000000000000000000000080008000ff0f0000000000000400000000000000ff00000000000000f600000001", 0x45}, {&(0x7f0000000940)="1065b29e4c213c6b790669e882b38004e954381213cd5bdbe950e6d6f13be45f3a378ef9eb3be89b90f08d0b5dc0a876e9cf39d7436499d26eae9556a905681b918348e26ea5", 0x46, 0x7f}, {&(0x7f0000001080)="8e3e37f8f9bc993e82f1dfe7354fcd09930a92c992e6966329bbc6218ab5629a7d33e299719b300fdac1ba10427c39a282ce08e9acd66ee4a30644efe15b0000000000000000002b74f2eedb4c9ceba405eb376bf616c312a65fc70de042669a42bcfe57b8e858cba17a827b35441121d1b461", 0x73, 0x2000}, {&(0x7f0000010120)="46494c453000030000000000000000000100010038000100980100000004000000000000000000000400000000000000030000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000006800000000001800000002004a00000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010070000000000000006c0000000000000600000000000000040324004d00460054000000000000008000000048000000010040000000010000000000000000003e00000000000000400000000000000000f003000000000000f003000000000000f0030000000000113f040000000000b0000000480000000100400000000300000000000000000000000000000000004000000000000000001000000000000020000000000000002000000000000000110102", 0x18b, 0x4000}, {&(0x7f0000000540)="00000000000000000000000000000000000000000000000000000000000003", 0x1f, 0x41e0}, {&(0x7f00000102e0)="00000000000000000000000000000000b00000004800000001004000000003000000000000000000000000000000000040000000000000000010000000000000080000000000000008000000000000001101020000000000ffffffff0000030046494c453000030000000000000000000100010038000100580100000004000000000000000000000300000001000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000007000000000001800000002005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801001000000000000000100000000000000600000000000000080324004d00460054004d00690072007200000000000000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000001000000000000000100000000000002101ff", 0x1ab, 0x43a0}, {&(0x7f00000104c0)="000000000000000000000000000000000000000000000000000000000000020046494c45300003000000000000000000020000e538000100580100000004000000000000000000000300000002000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000007000000000001800000002005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000003f00000000000000400000000000000000000400000000000000040000000000e10004000000000021400001", 0x16c, 0x47e0}, {&(0x7f0000000080)="000000000000000000a6000000000000000000000000000000000000000002183e0554dcb08c0e703aaec8625c8a028b1926464a8597351517175b9782f5a3f868c5de1db6fa29", 0x47, 0x49e0}, {&(0x7f0000010660)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000300010038000100e00100000004000000000000000000000600000003000000040000000000000010000000480000000000180000000000300000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000300000006800000000001800000001005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c00000018000000000000000000000003010000000000008000000018", 0x1e5, 0x4be0}, {&(0x7f0000000240)="000000000000000000000000000000000000000000000000000000000000040046494c453000030000000000000000000400010038000100c00100000004000000000000000000000400000004000000020000000000000010000000480000000000180000000000300000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000300000007000000000001800000002005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010010000000000000000a00000000000006000000000000000803240041007400740072004400650066000000000000005000000080000000000018000000030064000000180000000100048048000000540000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000000a000000000000000a000000000000110146", 0x1d3, 0x4fe0}, {&(0x7f0000000dc0)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000500010038000300000200000004000000000000000000000600000005000000030000000000000010000000480000000000180000000000300000001800000000ab2bd24ec4d801132d87d24ec4d801132d87d24ec4d80100ab2bd24ec4d80126000010000000000000000000000000300000006000000000001800000001004400000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100000000000000000000000000000000060000100000000001032e00000000005000000048000000010040000000020000000000000000000100000000000000400000000000000000200000000000002c100000000000002c10000000000000110243000000000090000000580000000004180000000300380000002000000024004900330030003000000001000000001000000100000010000000280000002800000001000000000000000000000018000000030000000000000000000000a0000000500000000104400000000500000000000000000000000000000000004800000000000000001000000000000000100000000000000010000000000000240049003300300011014514cf8244d8904c65d5cca7768b3d8ac1e083a3bae2dd747271c29fa1f8eb81fd3599d7c5d371cc7849864c6ca4d96ae237cd5f9a50d22e87f1cb493d326c2ede7a2c1cab71e9a1916c5ab505f16664d1646d96c4a7f989ddc515579de39e63ee81aa4296461fbe7faeaa32fbf2f716d7f47e54df2af18e805ea9c7dede64b84757c06359c1e070ebe670356593d6a10b01e5eac80038e9053298523d4e4e683335070076d2017c6a78d4e5c9ba", 0x298, 0x53e0}, {&(0x7f0000001100)="000000000000000000000000000000000000000000000000000000000000030046494c453000030000000000000000000600010038000100500100000004000000000000000000000300000006000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000006800000000001800000002005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801001000000000000040000000000000000600000000000000070324004200690074006d00610070008000000048000000010040000000010000000000000000000000000000000000400000000000000000100000000000004000000000000000400000000000000011014707875eca2fc58363fbd39f319545758c4c67f36a77311c91c8fee75525308f04f01d867076ffe00036101a1c6dfcd2a21bff2a6bddd8aa17d8e906b5dd458949e07beec997ba7c8031616c3b412e324e2e2e27ae55120134f6d22a3a1f84612ae73a7be9c2deb614fffe9ea052efa2fb6a65294222490be004d57efcafc805069886a4bee3da2e39fc3dc17adca647503fc68531028eb20b2c829c93d7fab00b0d7ab6f60df485e56f896dfceb4265dde72d07ad2ff4f2cad3c47a58cdd4c94209", 0x224, 0x57e0}, {&(0x7f0000011040)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000800010038000100780100000004000000000000000000000400000008000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000007000000000001800000003005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000803240042006100640043006c0075007300ffff00000000800000001800000000001800000002000000000018000000800000005000000001044000000001000000000000000000fe01000000000000480000000000000000f01f000000000000f01f00000000000000000000000000240042006100640002ff01", 0x18b, 0x5fe0}, {&(0x7f0000011200)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000900010038000900000300000004000000000000000000000500000009000000030000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000020000000000000000000000000000000000101000000000000000000000000000000000000300000006800000000001800000001005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100000000000000000000000000000000060000200000000007032400530065006300750072006500800000005000000001044000000002000000000000000000400000000000000048000000000000000010040000000000700104000000000070010400000000002400530044005300114148000000000090000000e00000000004180000000300c00000002000000024005300440048000000000012000000001000000100000010000000b0000000b000000000000000180014000000000030000800000000005124b300010100005124b3000101000080000000000000007c0000004900490018001400000000003000080000000000a0ddde4202010000a0ddde42020100000001000000000000640000004900490018001400000000003000080000000300f01203f800010000f01203f80001000000000000000000007c000000490049000000000000000000100000000200000090000000c80000000004180000000400a800000020000000240053004900490000000000100000000010000001000000100000009800000098000000000000001400140000000000280004000000000000010000f01203f80001000000000000000000007c00000014001400000000002800040000000000010100005124b3000101000080000000000000007c0000001400140000000000280004000000000002010000a0ddde420201000000010000000000006400000000000000000000001000000002", 0x315, 0x63e0}, {&(0x7f0000011520)="0000000000000000ccd200000000000000000000000000000000000000000000030046494c453000030000000000000000000a0001003800010098010000000400000000000000000000040000000a000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801060000000000000000000000000000000000000000010000000000000000000000006800000000001800000003005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000002000000000000000200000000000600000000000000070324005500700043006100730065008000000048000000010040000000010000000000000000001f00000000000000400000000000000000000002000000000000000200000000002120890000000000", 0x159, 0x67e0}, {&(0x7f0000013b20)="d000000020000000000018000000030008000000180000002d0000003c000000e00000005800000000001800000004003c000000180000001400000000060400244c585549440000000000001400000000060400244c584749440000000000001400000000060400244c584d4f4400ed8100000000000000ffffffff0000e20046494c452a00030000000000000000000000000030000000380000000004", 0x9e, 0xc37c}, {&(0x7f000001aa40)="494e4458280009000000000000000000000000000000000028000000b8060000e80f0000000000000d00d801000000000000000000000000000000000000000004000000000004006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010010000000000000000a000000000000060000000000000008032400410074007400720044006500660000000000010008000000000008006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000803240042006100640043006c007500730000000000070006000000000006006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801001000000000000040000000000000000600000000000000070324004200690074006d0061007000070000000000070060004c0000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010020000000000000002000000000000006000000000000000503240042006f006f00740069006c000b00000000000b006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec40d0000ab2bd24ec4d8010000000000000000000000000000000006000010000000000703240045007800740065006e00640002000000000002006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c006500000000000100000000000000010060004a0000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010070000000000000006c0000000000000600000000000000040324004d004600540000000000000001000000000001006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801001000000000000000100000000000000600000000000000080324004d00460054004d0069007200720000000200000009000000000009006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000000000000000000000000000000000600002000000000070324005300650063007500720065000a00000000000a006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000020000000d00000002000000000006000000000000000703240055007000430061007300650003000000000003006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650005000000000005005800440000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100000000000000000000000000000000060000100000000001032e0000000000200000000000010068005400000000000500000000000500132d87d24ec4d801132d87d24ec4d801132d87d24ec4d801132d87d24ec4d80100100000000000006400000000000000200000002d0000000900660069006c0065002e0063006f006c006400000000001b0000000000010060004c0000000000050000000000050073a685d24ec4d80173a685d24ec4d80173a685d24ec4d80173a685d24ec4d80100000000000000000000000000000000200000102d0000000500660069006c0065003000000000001e0000000000010060004c0000000000050000000000050073a685d24ec4d801132d87d24ec4d801132d87d24ec4d80173a685d24ec4d80100100000000000000a0000000000000020000000590000000500660069006c006500310000000d001f0000000000010060004c00000000000500000000000500132d87d24ec4d801132d87d24ec4d801132d87d24ec4d801132d87d24ec4d80100300000000000002823000000000000200000002d0000000500660069006c0065003200000000001f0000000000010060004c00000000000500000000000500132d87d24ec4d801132d87d24ec4d801132d87d24ec4d801132d87d24ec4d80100300000000000002823000000000000200000002d0000000500660069006c00650033000000000000000000000000001000000002", 0x6cd, 0x45000}, {&(0x7f00000007c0)="f7ffffffffff6c85507e207950cbb02575507700fffb9a55fb8d253755da1453094bdf12f9dea56eca6103d9a0c7c7f10482f7433c1b819f5bfc850c99b3f9d627a7b397fdf4f0303f271f526a9a7890a9a155af4ff2f497feffaec1f6fc8abc8717cb83a803b225e2e5497563b268a3beb1f964000000000000002061dff0281b6dc6572ed135b36f9c052504062fc60097e40f9be0fb831dad3a996176570845730000000000000000000095fe28614719bf7f7be9f18fa6a54f848514c8763ad7e6e41e09dd208a22b79d97053f495ba598be066ec1de22bd9e79851d13117d3e8b8248ab4673f6b8f473bf4c1f5d730c7ededcd9705ef3dd745e531edb04fc1b861c2cb57e107c2eaa0a2ccbc67ba70b9af536564c93b73ab6cfafc58d339738640af0789756372a0b0d64ba25d4d1a703738459ff5a492de9f3ddce43b48b5e8d1228cb0600000000000000", 0x14e, 0x46ffe}, {&(0x7f000001b660)="f01203f80001000000000000000000007c0000000100048048000000580000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000102000000000005200000002002000001020000000000052000000020020000000000005124b30001010000007c00000001000480480000005800000000000000140000000200340002000000000014009f111200010100000000000512000000000018009f01120001020080000000052000000020020000010200000000000520000000200200000102000000000005200000002002000000000000a0ddde4202010000000100000000000064000000010004803000000040000000000000001400000002001c000100000000031400ff011f00010100000000000100000000010200000000000520000000200200000102000000000005200000002002", 0x15b, 0x48000}, {&(0x7f000003c0c0)="0000000000000000000000000000000000000000000000000000000000000400ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3fe5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffebdf0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x20024, 0xfffe0}, {&(0x7f00000104a0)="00000000000000270000000000000000000000000000000000000000000002", 0x1f, 0x4045de}], 0x2, &(0x7f0000003580)=ANY=[], 0x1) (async) ioctl$AUTOFS_DEV_IOCTL_PROTOVER(0xffffffffffffffff, 0xc0189372, &(0x7f0000000180)={{0x1, 0x1, 0x18, 0xffffffffffffffff, {0x3}}, './file0\x00'}) dup3(r0, r1, 0x0) (async) ioctl$EVIOCGBITSW(r1, 0x80404525, &(0x7f0000000580)=""/145) syz_mount_image$fuse(0x0, &(0x7f0000000180)='./file0\x00', 0x0, 0x0, &(0x7f0000000000), 0x0, &(0x7f0000000200)=ANY=[@ANYBLOB='fd=', @ANYRESDEC=0x0], 0x0) (async) mount(0x0, &(0x7f0000000080)='./file0\x00', &(0x7f00000000c0)='autofs\x00', 0x0, &(0x7f0000000200)) (async) r2 = openat(0xffffffffffffff9c, &(0x7f0000004280)='./file0\x00', 0x0, 0x0) fchdir(r2) (async) r3 = openat(0xffffffffffffff9c, &(0x7f0000000100)='.\x00', 0x0, 0x0) symlinkat(&(0x7f00000006c0)='/\x00', r3, &(0x7f00000001c0)='./file0\x00') (async) getdents64(r3, &(0x7f0000000000)=""/42, 0x2a) r4 = openat(0xffffffffffffff9c, &(0x7f0000000100)='.\x00', 0x0, 0x0) ioctl$AUTOFS_IOC_FAIL(r4, 0x810c9365, 0x0) (async) ioctl$AUTOFS_DEV_IOCTL_CLOSEMOUNT(0xffffffffffffffff, 0xc0189375, &(0x7f0000000040)={{0x1, 0x1, 0x18, r0}, './file0\x00'}) bind$rxrpc(r5, &(0x7f0000000140)=@in4={0x21, 0x1, 0x2, 0x10, {0x2, 0x4e23, @local}}, 0x24) (async) r6 = openat$zero(0xffffffffffffff9c, &(0x7f0000000440), 0x0, 0x0) (async) clock_gettime(0x0, &(0x7f0000000480)={0x0, 0x0}) clock_gettime(0x0, &(0x7f0000000640)={0x0, 0x0}) clock_gettime(0x0, &(0x7f0000000680)={0x0, 0x0}) write$evdev(r6, &(0x7f00000006c0)=[{{0x0, 0x2710}, 0x12, 0xe703, 0x401}, {{r7, r8/1000+10000}, 0x1f, 0x400}, {{0x0, 0xea60}, 0x19, 0x1000}, {{r9, r10/1000+10000}, 0x1f, 0x4, 0x1}, {{}, 0x2, 0x7fff}, {{}, 0x3, 0xf8e, 0x9}, {{r11, r12/1000+10000}, 0x0, 0x1, 0xd1}, {{}, 0x0, 0x200, 0xf2}, {{0x0, 0x2710}, 0x17, 0x10, 0x800}], 0xbb) (async) ioctl$SNDCTL_SEQ_NRSYNTHS(r6, 0x8004510a, &(0x7f00000001c0)) 00:14:55 executing program 2: syz_emit_ethernet(0x6e, &(0x7f0000000000)={@broadcast, @empty, @void, {@ipv6={0x86dd, @icmpv6={0x0, 0x6, "118a98", 0x38, 0x3a, 0x0, @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01', @mcast2, {[@hopopts], @param_prob={0x4, 0x0, 0x0, 0x0, {0x0, 0x6, "ac1647", 0x0, 0x0, 0x0, @mcast1, @private1}}}}}}}, 0x0) syz_emit_ethernet(0x10a, &(0x7f0000000080)={@empty, @multicast, @val={@void, {0x8100, 0x2, 0x0, 0x4}}, {@mpls_uc={0x8847, {[{0xfff, 0x0, 0x1}, {}, {0x9, 0x0, 0x1}], @generic="00192dd2a572a017b9a5fb8d6d17974f0273b30efe9836fbdd754d3265547db552374366af39716466aafd0f374cebea8f5a6d224806e834d0fb4a3a25f26261e942ab664b4ecb5b3b8343f2d5cb9087a52e89999c9c04ac69f3eb963c14bf00fc7be132f9e249df8a126208d59924fa5a0432cefcfcfe45b49f1b90e3e79a37c835f697266d9d301a231e3d41786abb86ba014790a089e121e782e7aebf36bb21aa655c7c488049bd67731ce12498386de8e51caea8b6374a34393594d53ed3c295ee24ff0eb7434b716da0659dd5f1f3949f8f0a39087f79441ae363eb7c09f9d1f3db646066376562676b"}}}}, &(0x7f00000001c0)={0x0, 0x4, [0x160, 0xf23, 0x40a, 0x399]}) 00:14:55 executing program 1: r0 = syz_mount_image$f2fs(&(0x7f0000000000), &(0x7f0000000140)='./file0\x00', 0x8000000, 0x45, &(0x7f0000000200)=[{&(0x7f0000011860)="00000000000000002400320000000000abf0a9c7661f1f6300000000412f651b000000000000000000000000000000002f746d702f73797a2d696d61676567656e323938323031313634362f66696c65302f66696c6530000000000000000000", 0x60, 0x1b}, {&(0x7f0000010000)="1020f5f201000e0009000000030000000c0000000900000002000000010000000000000000800000000000001b0000003e00000002000000020000000200000001000000360000000004000000100000001400000300000001000000020000002b1cb9e3996e42d4987ddb8c29eb8b3000000000", 0x74, 0x400}, {&(0x7f0000010080)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00%\x00\x00\x00mp\x00\x00\x00\x00\x00\x00wm\x00\x00\x00\x00\x00\x00og\x00\x00\x00\x00\x00\x00jp\x00\x00\x00\x00\x00\x00avi\x00\x00\x00\x00\x00m4v\x00\x00\x00\x00\x00m4p\x00\x00\x00\x00\x00mkv\x00\x00\x00\x00\x00mov\x00\x00\x00\x00\x00webm\x00\x00\x00\x00wav\x00\x00\x00\x00\x00m4a\x00\x00\x00\x00\x003gp\x00\x00\x00\x00\x00opus\x00\x00\x00\x00flac\x00\x00\x00\x00gif\x00\x00\x00\x00\x00png\x00\x00\x00\x00\x00svg\x00\x00\x00\x00\x00webp\x00\x00\x00\x00jar\x00\x00\x00\x00\x00deb\x00\x00\x00\x00\x00iso\x00\x00\x00\x00\x00gz\x00\x00\x00\x00\x00\x00xz\x00\x00\x00\x00\x00\x00zst\x00\x00\x00\x00\x00pdf\x00\x00\x00\x00\x00pyc\x00\x00\x00\x00\x00ttc\x00\x00\x00\x00\x00ttf\x00\x00\x00\x00\x00exe\x00\x00\x00\x00\x00apk\x00\x00\x00\x00\x00cnt\x00\x00\x00\x00\x00exo\x00\x00\x00\x00\x00odex\x00\x00\x00\x00vdex\x00\x00\x00\x00so\x00\x00\x00\x00\x00\x00cold\x00\x00\x00\x00db\x00'/352, 0x160, 0x860}, {&(0x7f00000101e0)='\x00\x00\x00\x00Linux version 5.17.11-1rodete2-amd64 (glinux-team@google.com) (gcc-11 (Debian 11.2.0-20) 11.2.0, GNU ld (GNU Binutils for Debian) 2.38) #1 SMP PREEMPT Debian 5.17.11-1rodete2 (2022-06-09)\x00', 0xc0, 0xa80}, {&(0x7f00000102a0)='\x00\x00\x00\x00Linux version 5.17.11-1rodete2-amd64 (glinux-team@google.com) (gcc-11 (Debian 11.2.0-20) 11.2.0, GNU ld (GNU Binutils for Debian) 2.38) #1 SMP PREEMPT Debian 5.17.11-1rodete2 (2022-06-09)\x00', 0xc0, 0xb80}, {&(0x7f00000009c0)="00400000780100000000000000000000c4884579995d87a5025f4cd19ac581dd000000007e47e69a2daf0c886af2c929ea077f2e0bd396f00f6c8b97142901f3411bacfec60300d52b34c37149ac730009af16eccee063bc270726c978adf39ae7416d54bc4d7543f11fd10000000000000000000000b45a0af576ef07e36faff8b2b273a30e885f2a9fb02b73f1813d82a5c991536d50f90f7df3d3a255db72ad265690fccb4d3a92af599c53be58213f85f61a69eed8a23ac18f96c4f5dec16e43f98e700e557720341cdf97af11c949ab4a5eb8ff0bec70a32da384bed350f99ffcda78c281a7dcd700892ceb940d71b5572e3b832096643a27a943c34c34a7a7bf447121c80099e912620c8baa3b1e551b97def829a76110a0183df1034be167f4f0f56569d1c86889d06fb91b91c0400a367c6dcdeddf943d82826e32c8fcade41b4f", 0x145, 0xc80}, {&(0x7f0000010380)="00000000000100"/32, 0x20, 0xec0}, {&(0x7f00000103a0)="1020f5f201000e0009000000030000000c0000000900000002000000010000000000000000800000000000001b0000003e0000000200000002000000020000000200000036000000000400000004000000080000000c000000100000001400000300000001000000020000002b1cb9e3996e42d4987ddb8c29eb8b3000000000", 0x80, 0x1400}, {&(0x7f0000010420)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00%\x00\x00\x00mp\x00\x00\x00\x00\x00\x00wm\x00\x00\x00\x00\x00\x00og\x00\x00\x00\x00\x00\x00jp\x00\x00\x00\x00\x00\x00avi\x00\x00\x00\x00\x00m4v\x00\x00\x00\x00\x00m4p\x00\x00\x00\x00\x00mkv\x00\x00\x00\x00\x00mov\x00\x00\x00\x00\x00webm\x00\x00\x00\x00wav\x00\x00\x00\x00\x00m4a\x00\x00\x00\x00\x003gp\x00\x00\x00\x00\x00opus\x00\x00\x00\x00flac\x00\x00\x00\x00gif\x00\x00\x00\x00\x00png\x00\x00\x00\x00\x00svg\x00\x00\x00\x00\x00webp\x00\x00\x00\x00jar\x00\x00\x00\x00\x00deb\x00\x00\x00\x00\x00iso\x00\x00\x00\x00\x00gz\x00\x00\x00\x00\x00\x00xz\x00\x00\x00\x00\x00\x00zst\x00\x00\x00\x00\x00pdf\x00\x00\x00\x00\x00pyc\x00\x00\x00\x00\x00ttc\x00\x00\x00\x00\x00ttf\x00\x00\x00\x00\x00exe\x00\x00\x00\x00\x00apk\x00\x00\x00\x00\x00cnt\x00\x00\x00\x00\x00exo\x00\x00\x00\x00\x00odex\x00\x00\x00\x00vdex\x00\x00\x00\x00so\x00\x00\x00\x00\x00\x00cold\x00\x00\x00\x00db\x00'/352, 0x160, 0x1860}, {&(0x7f0000010580)='\x00\x00\x00\x00Linux version 5.17.11-1rodete2-amd64 (glinux-team@google.com) (gcc-11 (Debian 11.2.0-20) 11.2.0, GNU ld (GNU Binutils for Debian) 2.38) #1 SMP PREEMPT Debian 5.17.11-1rodete2 (2022-06-09)\x00', 0xc0, 0x1a80}, {&(0x7f0000010640)='\x00\x00\x00\x00Linux version 5.17.11-1rodete2-amd64 (glinux-team@google.com) (gcc-11 (Debian 11.2.0-20) 11.2.0, GNU ld (GNU Binutils for Debian) 2.38) #1 SMP PREEMPT Debian 5.17.11-1rodete2 (2022-06-09)\x00', 0xc0, 0x1b80}, {&(0x7f0000010700)="00000000780100"/32, 0x20, 0x1c80}, {&(0x7f0000010720)="00000000000100"/32, 0x20, 0x1ec0}, {&(0x7f0000010ba0)="b0da173e0000000000240000000000000b000000000000001b0000002400000030000000000000000200000004000000ffffffffffffffffffffffffffffffffffffffff0300060000000000000000000000000006000000180000000a000000ffffffffffffffffffffffffffffffffffffffff05000000000000000000000000000000c5000000060000000100000007000000070000000a0000004000000040000000fc0f00"/192, 0xc0, 0x31e7}, {&(0x7f0000010740)="b1da173e0000000000240000000000000b000000000000001b0000002400000030000000000000000200000004000000ffffffffffffffffffffffffffffffffffffffff0300060000000000000000000000000006000000180000000a000000ffffffffffffffffffffffffffffffffffffffff05000000000000000000000000000000c5010000060000000100000007000000070000000a0000004000000040000000fc0f00"/192, 0xc0, 0x400000}, {&(0x7f0000010800)="0000000000000000000000000000000000000000000000000000000025b607ec0000030000000003000000001400"/64, 0x40, 0x400fe0}, {&(0x7f0000010840)="000000000000000000000000000000000000000000000000000000060000000000020c6000"/64, 0x40, 0x4011e0}, {&(0x7f0000010880)="0000000000000000000000090000000510ec00"/32, 0x20, 0x401240}, {&(0x7f00000108a0)="0000000000000000000000000000000000000000000000000004000000001400", 0x20, 0x401280}, {&(0x7f00000108c0)="000000000000000600000004007800"/32, 0x20, 0x4012e0}, {&(0x7f00000108e0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\b\x00\x00\x00\x00\x00', 0x20, 0x401320}, {&(0x7f0000010900)="00000018000000000400"/32, 0x20, 0x401380}, {&(0x7f0000010920)="00000000000000000000000000000000000000000000030000000000000300000000000008000000000000080000000001000800000000020000000000000000", 0x40, 0x4013e0}, {&(0x7f0000010960)="03000000000000030000000000000400"/32, 0x20, 0x402000}, {&(0x7f0000010980)='\x00'/20, 0x14, 0x402dff}, {&(0x7f00000109a0)="000000000000000000000000000000000000000000000000000000010000000005000000000000060000000000000700000000000008000000000000090000000000000800"/96, 0x60, 0x402fe0}, {&(0x7f0000010a00)="0000000000000000000000000000000000000000000000000000000100000000", 0x20, 0x403fe0}, {&(0x7f0000010a20)="0000000000000000000000000000000000000000000000000000000100000000b1da173e0000000000240000000000000b000000000000001b0000002400000030000000000000000200000004000000ffffffffffffffffffffffffffffffffffffffff0300060000000000000000000000000006000000180000000a000000ffffffffffffffffffffffffffffffffffffffff05000000000000000000000000000000c5010000060000000100000007000000070000000a0000004000000040000000fc0f00"/224, 0xe0, 0x404fe0}, {&(0x7f0000010b00)="0000000000000000000000000000000000000000000000000000000025b607ec", 0x20, 0x405fe0}, {&(0x7f0000010b20)="b1da173e25b607ec00"/32, 0x20, 0x5ff000}, {&(0x7f0000000880)="000000000000ffffffff7fffffffffffffffffffffffffacff53d7c677a96050492a4fffffffffffffffffffffffffffffffffff2100ffffffffffffffffffffffffffffffff9d7a54098bee48ffffff0000000000000000000040000000001ef8e348f925fb74189c3908695f43d40000000000000000", 0x77, 0x5ff040}, {&(0x7f0000010c60)="0000000000000000000000000000000000000000000000000000000043b4bb250000030000000003000000001400"/64, 0x40, 0x600fe0}, {&(0x7f0000010ca0)="000000000000000000000000000000000000000000000000000000060000000000020c6000"/64, 0x40, 0x6011e0}, {&(0x7f0000010ce0)="0000000000000000000000020000000510ec00"/32, 0x20, 0x601240}, {&(0x7f0000010d00)="0000000000000000000000000000000000000000000000000004000000001400", 0x20, 0x601280}, {&(0x7f00000001c0)="000000000000000600000004007800"/32, 0x20, 0x6012e0}, {&(0x7f0000010d40)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\b\x00\x00\x00\x00\x00', 0x20, 0x601320}, {&(0x7f0000010d60)="00000018000000000400"/32, 0x20, 0x601380}, {&(0x7f0000010d80)="00000000000000000000000000000000000000000000030000000000000300000000000008000000000000080000000001000800000000020000000000000000", 0x40, 0x6013e0}, {&(0x7f0000010dc0)="03000000000000030000000000000400"/32, 0x20, 0x602000}, {&(0x7f0000010de0)='\x00\x00p\x00'/32, 0x20, 0x602e00}, {&(0x7f0000000040)="00000000000000000000000000000000000000000000000000000001000000000500000000000006000000000004070000000000000800000000000009000000000000080000000000000000000000000000000000000000000000000000b0eb263e3a5851768ca10000", 0x6a, 0x602fe0}, {&(0x7f0000010e60)="00000000000e00000000001300"/28, 0x1c, 0x603fe0}, {&(0x7f0000010e80)="0000000000000000000000000000000000000000000000000000000100000000b0da173e0000000000240000000000000b000000000000001b0000002400000030000000000000000200000004000000ffffffffffffffffffffffffffffffffffffffff0300060000000000000000000000000006000000180000000a000000ffffffffffffffffffffffffffffffffffffffff05000000000000000000000000000000c5000000060000000100000007000000070000000a0000004000000040000000fc0f00"/224, 0xe0, 0x604fe0}, {&(0x7f0000010f60)="0000000000000000000000000000000000000000000000000000000043b4bb25", 0x20, 0x605fe0}, {&(0x7f0000010f80)="b0da173e43b4bb2500"/32, 0x20, 0x7ff000}, {&(0x7f0000010fa0)="0000000000000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00"/96, 0x60, 0x7ff040}, {&(0x7f0000011000)="000000000000000000000100000001000000000200000001000000000300000001140000000400000002140000000500000000180000000600000001180000000700000002180000000800000005180000000900000004180000000000000000", 0x60, 0xc00000}, {&(0x7f0000011060)="000000000000000000000100000001000000000200000001000000000300000001140000000400000002140000000500000000180000000600000001180000000700000002180000000800000003180000000900000004180000000000000000", 0x60, 0xe00000}, {&(0x7f00000110c0)="ed41002080761000535f010003000000001000000000000002000000000000005e1f1f6300000000661f1f6300000000661f1f630000000000000000412f651b412f651b000000000100"/96, 0x60, 0x1401000}, {&(0x7f0000011120)="00000000000000001800000000000000793947565e1f1f630000000000000000012000"/64, 0x40, 0x1401160}, {&(0x7f0000011160)="0000000000000000030000000300000000000000adda173e0000000002140000ed4100250000000000000000020000007c0d0000000000000100000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651b4c282be9000000000000000000100000030000000500000066696c653000"/160, 0xa0, 0x1401fe0}, {&(0x7f0000011200)="0000000000000000240032000000000069bc06b3661f1f6300000000412f651b000000000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000000000000000400000001000200000000030000000200024a8113ed050000000500018dcece450600000005000700000000", 0x80, 0x1402160}, {&(0x7f0000011280)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00.\x00\x00\x00\x00\x00\x00\x00..\x00\x00\x00\x00\x00\x00file0\x00\x00\x00file1\x00'/64, 0x40, 0x1402960}, {&(0x7f0000000180)="0000000000000000040000000400000000000000adda173e07000000031400003294e50c204962a8f757578f1df78a7e15f5ba10ded1bea9b1e747", 0x3b, 0x1402fe0}, {&(0x7f00000112e0)="ed81002b0000000000000000010000001a040000000000000100000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651ba02206c7000000000000000000000000040000000500000066696c653000"/128, 0x80, 0x1800000}, {&(0x7f0000011360)="00000000000000002400320000000000a12a48b8661f1f6300000000412f651b0000000000000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c00"/1120, 0x460, 0x1800160}, {&(0x7f00000117c0)="0000000000000000050000000500000001000000adda173e0000000001180000ffa1002b00000000000000000100000027000000000000000100000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651bc8e3acae000000000000000000000000040000000500000066696c653100"/160, 0xa0, 0x1800fe0}, {&(0x7f00000118c0)="0000000000000000060000000600000001000000adda173e0000000002180000ed81002b0000000000000000010000000a000000000000000100000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651bda36aa72000000000000000000000000030000000500000066696c653100"/160, 0xa0, 0x1801fe0}, {&(0x7f0000011960)="0000000000000000240032000000000020d3f802661f1f6300000000412f651b0000000000000000000000000000000073797a6b616c6c657273000000000000", 0x40, 0x1802160}, {&(0x7f00000119a0)="0000000000000000000000001120f5f20100000000000000000000000000000000000000010606007861747472317861747472310106060078617474723278617474723200"/96, 0x60, 0x1802f00}, {&(0x7f0000011a00)="0000000000000000070000000700000001000000adda173e0000000003180000", 0x20, 0x1802fe0}, {&(0x7f0000011a20)="ed81012b00000000000000000100000064000000000000000100000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651bb0519ecf000000000000000000000000030000000900000066696c652e636f6c6400"/128, 0x80, 0x1804000}, {&(0x7f0000011aa0)="0000000000000000240032000000000048b53521661f1f6300000000412f651b0000000000000000000000000000000073797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c65727300"/160, 0xa0, 0x1804160}, {&(0x7f0000011b40)="0000000000000000090000000900000001000000adda173e0000000005180000ed81022100000000000000000200000028230000000000000400000000000000661f1f6300000000661f1f6300000000661f1f6300000000412f651b412f651b412f651b2421c896000000000000000000000000030000000500000066696c653300"/160, 0xa0, 0x1804fe0}, {&(0x7f0000011be0)="02200000030000002400320000000000f1e1ed3b661f1f6300000000412f651b0000000000000000000000000220000003200000042000"/64, 0x40, 0x1805160}, {&(0x7f0000011c20)="0000000000000000080000000800000001000000aeda173eaa594c5706180000", 0x20, 0x1805fe0}, {&(0x7f0000011c40)="ff0000000000000000000000000000000000000000000000000000000000000000000300000001000200000000030000000200024a8113ed040000000500028dcece4507000000050001baeed06f0800000005000153bfc55008000000050001120052230900000009000100"/128, 0x80, 0x2001000}, {&(0x7f0000011cc0)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00.\x00\x00\x00\x00\x00\x00\x00..\x00\x00\x00\x00\x00\x00file0\x00\x00\x00file1\x00\x00\x00file2\x00\x00\x00file3\x00\x00\x00file.cold\x00'/96, 0x60, 0x2001940}], 0x0, &(0x7f0000000c00)=ANY=[@ANYBLOB="0053e8fbde24a9b5327e440644446d115f8a08a4f91bc33a27984d54a47519c507f0168b57bda7ea2c728be41c5b95e451eb1dff3898c7506d0375324a4ba2b960ceef9edd05b4ffc3cc0d35d95cfcfea982e92b86949ce31a7dc5577f3e2ca0a612a05b8f094fd18f80079acb98a3a168d39bd645d801680e60ec98044151af7a583580ff4119ccb9afebb9a774777ce79d9fe6790ebd279eeecf6d98710cc75a4f3177500df102f6768e3663cfeb3bc4b905fcfd5885ba896413836bd71d8e7c165791ff83b4ffd04d8f77ed1174dce1669b887f777368f00542bf2ec09046eec948a17e141d134c9a6dd5ce10878bf36e5fd089552aac1b8b68fe398e1450a4f9ff86f478bf4c07dff21d158956c57fdc012aada8581ac7d172627083bbdf5daa507c9cfa7f89031904a2da59a0f9d9ec685fbf1d7da9f9009f8d147335601063e3594b437525dbebf61cb6bc08b620c57403968536801dec07785311e898bd216d9b5c197362b8eaadeff7086c61445e9c24354d8afe0d70002886e0d083925df4acdbb68e"], 0x1) fcntl$setflags(r0, 0x2, 0x0) (async) getsockopt$inet_sctp_SCTP_RECVNXTINFO(0xffffffffffffffff, 0x84, 0x21, &(0x7f00000000c0), &(0x7f0000000100)=0x4) 00:14:55 executing program 5: r0 = syz_init_net_socket$nl_rdma(0x10, 0x3, 0x10) sendmsg$netlink(r0, &(0x7f0000001ac0)={0x0, 0x0, &(0x7f0000000000)=[{&(0x7f0000000040)={0x114, 0x13, 0x1, 0x0, 0x0, "", [@nested={0x103, 0x0, 0x0, 0x1, [@typed={0xc, 0x0, 0x0, 0x0, @u64}, @generic="9a8aa489160a116092", @generic="50bb2d6f67d29d6fabadb107d0def49c88ea04abde1d5e8d3fb22a1b5046778bdafefc46b0449ade68bf84b36ec72dd71265fc2e882348c26c2126237dd5b37f5ae655b1086cda40e00aec58754734be31d750351dc076eb47d96219c08c029d1608a487f26fbe816b89f7cb81bff81a8b7a82565856555ee923c65973deb0a99b962bc0fe94a3fcae3697bd7b85b3a682167c43dbf137115a40ebddcad74875cf0d972df9e99f07976773f4d98fe3fa370d47eb640dc5061dc35817c8a66c29be82fdc2f4393c05a007d12b505a84dfdb98d568175b62421d726d1e5331e1ddfd4d770b57e091511131"]}]}, 0x11f}], 0x1}, 0x0) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000001780)={'wlan1\x00'}) sendmsg$netlink(r0, &(0x7f0000001740)={0x0, 0x0, &(0x7f0000001700)=[{&(0x7f0000000180)={0x22c, 0x15, 0x10, 0x70bd25, 0x25dfdbfb, "", [@generic="aa53c2396b4de57014fbd700586709e8308d140b52c5c4af61389696bf98a709a1565bce53310b1ead7a60fc8ae24cf41c5acc2825147c1842e5f21972716b6cc412ffb08758078688fcded6db5ab16b000323afea621c90e2db61be8199326288ac2fa75962a066b20d8471eb2b84d290d4ca721e5101", @generic="10789c6d6351ddbd39d9ad50aed4a5eae36a18e3147c0457de8bfac6a26a9fa313859d195b0c332a83e720a12ca44183d76d7b5320ab1c010d4621dec66886a9d98f139b35fdcdfceeec11892083c7c4f04a2e3902147f50445604f77f553a363041d1f3551cfa9a76940abddc0e9a86848e430ad4c84f7525b38dc976cc5c298217b4480e3e242923884888ddc0933db558bf4d98acaca5000d83ab17a9eaa46d56e42683bf675d", @nested={0x32, 0x2d, 0x0, 0x1, [@generic="2a4d87476b4a56f0c1bd86676351baf8ec794cacbd8e6a9a9462", @typed={0x14, 0x95, 0x0, 0x0, @ipv6=@local}]}, @generic="a4edf6c22fab00ab4ea7d3fb51579b9833763216b150c323dfd50f7543fca90d8ed979afd82f73058190a07a625f0a293e8181f270a654c895e45b63807062026594fa847e9c85f79a4d9c2634e6442606f79e8964cd0f050647a1c8bc4d651771076f3241f462f98c5ed7d0777f02e6bfbc12e620d96d5bf7370e38834349f4dc325661", @nested={0x41, 0x2b, 0x0, 0x1, [@typed={0x8, 0x58, 0x0, 0x0, @ipv4=@initdev={0xac, 0x1e, 0x0, 0x0}}, @generic="d33adb29", @generic, @typed={0x8, 0x3d, 0x0, 0x0, @u32=0x2}, @generic="a8a67b127efb0d1d71be5a69c1194f7b742db6f2d7c979a37c0b8be666c9031f7b6abeaed650a124f9"]}]}, 0x22c}, {&(0x7f0000001b00)={0x21bc, 0x3a, 0x400, 0x70bd2c, 0x25dfdbff, "", [@nested={0x10c3, 0x7, 0x0, 0x1, [@generic="5f3914b6a06c97aab390312ef30eda1f52a61ef232061b93f177090a18bbc6a3f489402ea6a51c93a444fd43b1f3ec5f34b854781c3d63ea096d40d840efacef7fa0a8a684afb9b717c2a6e48891d0eced7a3fad5fa9422e6f5be9885c33f405d2c82c6cabb0d9ec7a27125e5c2a7538fd96a734a487bc0d292d2c5ff5156bde566581ac443f68b1bf11724a65ba7af63751cb6482e84d22fd290e79b6e9144e5171544bf518a191cf2e", @generic="5ca707a71b9db1da948539f98b63f758e2a89091ce", @generic="693dafa3f74a904d6882d3ec723f0eae39e89980ed4e9163853f87fe4c7555b2c3faca27cc091732ece1a4b2a7aeab78ea401d9e93a769b9c2904398d5e7aa70d5e3d329a5e9db6a23d8bf11bd4dd01b42bcbe0ea072b9491d5b6166bef175e2f3c3a1fb55c8c3020535124fb217aac83a079e8ecf7168712677813ae877d3bcea2ae3988e112ecf031e57f02aee4f7a80011052aff51c179e4221af105914bdd4ed3ed87ce9c2020c0c2379d749bd0c261238f6a36694e04e9b1c8dc62c8c9008082d6f2c92c059799408634d00ce486a744ef6e61869e8ee1f47063c5813054aa59b87149a15e9e82a09b04bfdb323c5902193b5eee9c1fb7d81750212d4bf1317c882ed67954eb934b732b217b9296989ac0e68bfebaf366caa1b69d3872f2bf58ed08d28e48506bbafce031fb030db0b801d46cdca893bc600547770b90f2e1c07904bbc500f34d50e3fa5f35969ca3ea5ed78215d082115b0888a61c9dca728238811c0ed2308cb31b108e3ebf9e0be6728fcd26c966994b39e72e2790d26465d909fc8e7600812a768d8d6a19fe62a2b601d130e83cfad7d9004e18fbb112ab4a084dee92af1bd95c8ce038c1ad868deb6e187027ec9af00acb906f06229b9b77df4e71887ccaecfd4e13e48c9f3f2129aaf05d3af066914a80bf4857e01218b109ccba0fbb9db0cc245e9b8bc487914f7709df749ddedfcd1ddb7a964fcb20a49a6144a1337347b181c37b75b7c2041f6ae4c5dabba988a1db35e5cf9911b48bd81b225a5292da3fbe7cd55707d4df2b7de06dfcd9a540d20224e15c8d26cdaaf4af5e32731426d1bf1284a4e95671592f3431532b8c466dd7f0915c2a77ae29d38096fc68bf50222c7990f03c441a911d7a32373638fca7e275d95aef4aae53332140459780e475a4c1e5b634e44e5f0380981a9f04caa7c4f83467683ba53d14af87e325b8ebf3aded5fdd178d03955133d270686532453b943e680de7964347ea48908b3dbffb3c463cf2a69c74886ef5c583fff4ee8b84cb4fb33f3d78ba0acddd4d7ce5e593f975a6e058012743b06b9e23f3dda8a1d1b5aa78da9865291e032a003550166d41a9bc4cf7735a9aeb03af499ae53c14144a9c7bf64a98f6d896fa6d73fc3fbd71d82a7c66ddf112ed6eb9a13c47033e054fad2a01519d50751f4f0c8f7a305581ed672db59f400909d33b7dfa4b3b7702ec5e75d655dea03fa8992ce676ff719f538337f4b53894a5c23b8a53235106bf64fc83af85211363abb282a2e125dcd9ed78e70ba74c72b01fd9d40207862beca062e897f55d531ad8918b67eff8b5070a8ec11b528a7ccf3a7019f480c164a9ba7b1a4f99c584b1600612fd2b8052c36a53dc63e46a26006eb3bf29c677972953d70f671c758e84fd6bd6151a7b6c18fed54e15d1e38a8b4bb61a3854bef5e2026167f3034b3f819efe4d4fcd2a25821a7757ff5883c3318e3b169b356ae20db0afdee892eb39d95c8c2c1477e28a2808d72bbb276443e725c1fac40546c07cba301a9e8f9f0aef976e654efd13378ca0cb61a1a291045a5493dceb6f474e310c83a6f8d633da6a4e846ee1320ccd4a7e521647da754994f57344d67f18caa785132c49a93110afd81c9e1d3d631f8384cbf4688eb09f03d1988c37e3b33801cb3a061dc95231121e525cf828d9453e61454c3f195e8c874c2bcd07ae5dc0b5a856b938b97c5e0d6626e8d944a2fdee3abab76e5a2ad30ef3a73c4bf9c362d8acc5331702379d5740b45b301e4c1c690f0a1bf3a56b891f1d080adadfc240644d564d79bb1f082a132edbd314486cd341ef78f506a8ac63641f56a2821265c9c072753f959bcbbd8a2ec6545b2097283aa3567b6d1b5a2faed07c10f303774577bc066933d17f11c4733ed0a9a93036239a881bc5c35f668dcb6242e7aef4fd2719960a16cbbf178454c93cf1dc88f7ed497b1a43611ede09981f542d561107d6fa4860e0c14dd09f62e741163c8aa2d20189fa4acc2e7f598958e5206b785f20bedd5605df35be42ee28066849452578e8ef955dd25c144d8c4ca833afec219ce72ba21dc98e2520791234072ffd2448d05b6e714e222038e08a0c3a5b6262dace5a4c9f7d9e8eb1864a2d71d69d404193c0da6384f7bd3124b652c63a28ccdbf7a21150f87651a0a86ffad394d94ae30e71a00437ee32aa2d235c9488f2275e6c2f12ba8b6a1c79770c8232e4d5d01d9cd66999cbac3a7139489ccbf259fb0f4a0a72e0eba0579b74e5968c5f1c662ab5d1e85cbe5cbac7eeab839faf8b42a79b9d8b670544ee54cb1b2f6d1d210f647f18fe9dea0d3d529ae00e97e3da39a7bc220e057d3a7b5a35ac9736a78e29ef02a57fc534b873a28a36fc87d6a944d2ec90099945bbc5edcec845f857e8292a92608ff71a398a522fc9875db67a41a91fd1b5d9283caaa8bc7d7ea4f0fa5a73a32ef627575e83a8655f814cd1d77237652a04af81ee0a3cd70db77f49def73edf36e8fd3e7160274dbe3de0a9e8687a57a19a3ca4a7060f8e1cef3c0b688a122826cb6fdd8fc28d6da01e58a44a71a1ac472b2c523544598306780f92672cd205ca894d9d9a5db3a5c3064595bd829550a3e8913712ecfecc6966d8e85b69052b4dbfee6a0abd5fa65fc558ccb359cc783f9d0754d87fe993b1cfdc0c72cd22108094240378a8fdbb7dad41d2e6f171e9beae9a69a7875c18ff3b2f2f1c04ed0e278f296face95bd646af9abdfcf5d5e56be95134468ce6e16ae095b80cdcef6af865cce8ac39814001bfe4fd451f32c0ac875ba621bddf1b5ccb53d6be578b143a1516e7f64642c800aac4c608c144cc040fc77537edf68fa665bdd784a973c15f64c0de01479395bc2e12e7a90fa60c253cc832ecc44e4f54167725df514159fcff6c88b8f4925c26409f182d05613dda4494fe02a04bafa1b73e45c88351fd1ab8695e727e24d38f30c361f541fb3c4259f6dc1c5bd3fdd334dce2e60f16663b176d98f44401b52f3f90f1b53750b73c9ea864cbbb55cf91235a3217a6683e1833c4e58772ad0ce04658ce33c12951334b2f9e1fe2100a3da08227a3048e5843586a36a418b0a4a5cb2d892a1b5ef771187ac9b7485e316cd2feb71427bbb7ddb897adff0e6b92750a80210aa4688ce65f6b01d70104ac7f7edd15fcb99e5bcf3a6158e37458cf29e4af2e105613bd223f925163507bef5f475242efe7d3fa3bd9348fe8da782d8c2e3c671c678613caf8ba8c93ef065bebb4860b00d392169c1c46f1bd3ef407c6a1dce1677861131fc627a93361a11fcacb418972a0a89033f1abe371ab159b30ee8905c80fe88bf1ca4a5758bf45228afe8aa259341122254f88784c3399822bb3eeb54b5056b7f067bc049f03c22e945b3b098bc76f77829c6c3827492905ede9c7a4b3b952bf594495fa29e0f5a374efe8cffb15d6f3da80d8c9ebd397e30083463faa48553230e49f7d1392e52a0b7ea388e22f369ca75f72757716eebe06c5afb210d09ffb44d50d702dd8921d524116f2fe3cc4f9111a62d3bad4cc7249b141b4176ea35cfa59a408d04f8d480a5913bb330d643b4c5b9f4f3abf36c28ef9f54f48c5dd3fe38d1d7b1cdfbbe30e11e649440bc28e7987e156b6253f181bd0a1cb1a43943e9de7c278af9c5a40d31a888b38f29c9b3826be1def7629b1ba9f914a5ac76cbc9ffb76d3d1683abc00feb61dbf4bc147e0c2984baeec54f150ade633a20f30465eed82753c8a82fda892d9be069cba43b76cf07509315ff87f2373680eecf539cc178a7ee872e8cabd2c3f802805a66d77c29318685eb484e44851de01e652295dd16ce515cfd16b17ed762c3eb0ae90499e7d93c125580469ac6058c032d6732b4fb43e30dcd68fd16107b768891eb82f09ca94e2cae58263bb1f4ac4278e083440a882b5dadf0a22cbd8f4b8a5b6f6b55490482190e4331327d23dd681f4e543b715568798f0a3a58db11977047daae87b3b1c89786220ed9e42f0fdac88b8ede499b867bac1ae86f8f69e84b89f6378ff30a5fcf85b84358248a8e14cafcedaca78117e5b6579091ce271222ec1a885d48b5fae5995b6ea3d55d275455f9c409b4f3c3ab54830b5d6a8e7073415dc62a5df3fb42092599f8584412677afda19df0633d6aa512ac3b0bce608b77d393b680b0c19fe0e29a94621f7901081a827b229fbd7ad814f836eeaab0223087778e649a928af41fd2ef692c18c9578aef805a31c979343fc5f94b5ec202fba590f9787eb8759d2c469a905bb60bb38680cc503f475e86e6a624c7b0a60ab2b68890d0a94565dbdef8d690b833d1dd7e7eb44d1b3eb06caffa1b6b0b46d1d1e9c44c63c9c6d7646f769454fc1fa16ffb28ff5eb58f51b95c4720491412dc295a9c340b8549d243d1b6fd8ad0e0d380589bd1d0810e58a4055dd494d7ba65587fc1a7a19b2c0a52df4630e6c3b36ff5ea525a35f982f6a3c93d8d08699ee37c3d92421f2055169cd641157a1b32aab72a3b4252e7edc1e7175741810cd33c312d7f0c7fcf5a9f06c0bca54fb07ad65641d34a23bdc7454ba1f186f53e1335168726ac00dc8e82caed1ed69a28caa42696754fb6b8623bbacfa9ff8a4a95e46e9200be87aac5df78bb32fc2fcb4d9255976709a06605e70149fe0a9393dc11728b03a9fdd6c432a7d52a2b42a7ce0b2c47939e5f2105427b8c5cd03853a33dbae218658d8a2d9330b24ac021f70e7438039ebf9046d6943f61858610ca84b08df1ebc4a8ade23da9e097f815f5568abdac9fa7bc37e2f7c2e5fd748cd65a3c42ebaee5d6529b1d9bd538daf8713fd9b3adba32fc0a14bb148c3821417d33fa4aa471060bfd910919b2a322bc1844666e0b1bdbdea69b02318545d07f6367bca0eeba2f4cb1b772792a6f7bcc0f219e381eda278e96b411f696518bcd61d266f0df9f1b001ea360a0b945c6e41c92692eda91db9fc387e206d54b88650b9b0c02ecc0d243b2fb6c6053c802449db10fe10f30f122c4156af225f73dcb8f57c565e94ee7ba6205e6c99cdd61290c94e52bf5062548ba519d47a00c19d6f3c9fe92a4d5f839f2acfa624e7cc5fd511cfbc8aa627397570362d2f6ac951fe4f9091ac8fd163e49bc74c086fc15e2c7d638360dbe3b04f00c682450045ea9bb000840453d7051029cbed5bbbc8d2cc0a838bbc0a0fc00140308cc95f1a4e53e4211c377fa1efcc2e1792b8b218c1e601ea2f572a4d0bc9a4f4a6560d3ec36cef46ec10b3f27612778dfd3e782cfa16036e7153cbf8ab15b095c78d6ff03538674791df9c57cc3baa107f03dc6374e80d1c850433ad41483154729de464d3082000fa6c01db1fbf5da24b847ebc5a498b553363d2e12ba3073e283b795490e17dae23d611cafc07c641b2baeca46ed4566ae07383471a481a75088ba23d39f3d42ab6c52a10701d63c1c8b6576a641a198f09507f38cb09b2d66ca0c4d071092358a8ec869ea1e5c377c1e04f3dc616d764fa181d29d7c4430bdbdbe908fa9bed948c339b6bb12c822b43e4f7c470577c72c50d4e49c925644184b328cf5e1d0fd621bd4262e862ea833bb1756139bf4b37a1561378a65d35621dbb0123157a311ac94e1374d7e9ed8f82afc59e8e18d58b11a60b3fc5e441e3bc5d15b0ea6fb9c78d3c32295dd4d78a431b1b1f77493602727d82cc186d776b593285f08b5817b1b6dc24945d1a58c2ef9cc00036575e96f1ac29cfb5797f70ba9fd176a280b545641f16d7bc471a3ed0df23361592fb612011888aa"]}, @typed={0xc, 0x81, 0x0, 0x0, @u64=0x7}, @nested={0x89, 0x7f, 0x0, 0x1, [@generic="fe2d41cb89b942f2d6eedbb1ddad9adc56da363eac088eba920e92a4c1a2169abeba8baf33c72aa11542be6bb832db39ef688d00822bfa599b20ba9b3da3043dca5fff7564666a544a68523acf7659d026cc1e8f3e50a766c7f88946fecbc50c7e47be8689907a2967ac76f795fecd43127875d3214717a8d7c6f4f92ddb48b9521d3b3d8a"]}, @generic="a3e19699f758d004fffb02f4f7815f88ce4e34573973bf22aae055453923569636b7a4239f21f629846851a141b4b57e69d424718d119206e020f0f18fccb837d15ae3aa7a5ae9fe23d076caf32bcdb8ca5ef36993017c1fd6cdcd1bc40cf586e8cda9d30cc7944b65e77c7e9879b588187988fd9ac87a68b7a68f0b27511ab28af0414c32a2af2936a5ae728add9c93736731e4d80b699466b28e8b4550db1ca97ea4e077b66d7b07134ff2d86c5c2f04d16739136d610d0ea8d3b3b47c6fbff7dde81057dfd160d6b280f1cfcbf0aaf4d3bf0b61c4b27dbabca51ab3b4cf081c7b88598e7568651abd05af7f1c430ee36de59f4e16b0f5ba04de05d638666fb2d2769e82700e2f04603f454bc576607a6b0ee66ddcf5625b43144e2684764058ccb14f2b5fa245515214115c9036f28ae931b985d6ac5cfcdb892c5253e60c217a80b953c55e11a4b8191aede9b59ac42a0cfe0b2e564842420c3b9b4f3a74b467d7c72db597596c4f71ffcd75036a1948f5d0ac38891a23db9d10a7f8826a099494f6bfe40e4c0d44d489d827548027735f5b0fcf9e06c02db15770a148c49ec8bd72d546872d06099f9c7d78b1344b5f91a5f80060b3f1956e0270120304f0b028f5df67a2f255eff0de8036845ff19d4f6e0e84209cea90f572c8bea6a188a16d9c623cfaf029c24a60adc14674c9be92221849001799e2e7a6c5c1daafc615481f8fb7a3b177e5fe38a1f6f301ad55d7b468e17084936aca938fb418b12ff0c4df0d3afa84a1abeb7a151f0ebc3e2492bdce731d28cfe2cd3d7909062e8888b675ccfd4b7f7d44f231031947df3afcc23a0b70009b9cabb4624a48eb597c5ac30356db325543453703bdfbd709c3e9bf103bedd8413ac295ab22240c3a21bd6c94f2a3610d83747ddec45d76eb3f2e06220752eaee6dfd356456915e25db0a1edab5f8cdc2d637f8a4833e5a13239231517352655efad32564a873ff9a02f4339d6c8d4cc59b6d14077b259a1c7d79aec2bd5acf5a98e5fb172f9be80e5032ea8111bdae564298027f5064511a08b98646a8cbd061a3b84d90b088ddf0f36e9f09d986c4082ae8d5c01221f1df812e4f5c8cf0c4b1594b98b3b510b5eadf96652e933a424636145c9a5e7f5f0c84effc26a3bfb7b44147c69e2fe5272a38c77e213336d938e6d5914d5abd17e99b6d28058b7df205845c49c86a6988f9b2b19b44aa19a004fbdbf10028c0a865c48b4131e04b3e8d9958935e88333c30d67439eb70dd332a944ed3f13b591697235377f16a9eff5ee80ca1d031aa699865bfe759e765648ea68618234d0b2c234fe70829080c411004e27394f4beb20f7afb595f070aacd1ad6cd3f3daacde18e3f8c5e0d6f5a770a1387dbcfffd90a4b1126f6ea6cba6dc9e6d6ed33f831c0f82b08ef950b0c46f84f4f073219829f0e2c62c5c8c2ff8d66b4354cb0962bd29508413970a393ab69e99ea45d31625e18faa232ec32ee21aa1492919e9396fa7882e0474b3b4d72cd72c8724580521e8aef28c5e629eb0e1768ca7735f7559f1e9cbea966b334e721ace7c560f356cdeffe48cb7bc2f2e6aea8294eabf5e6b354f896504261a9d336fc66e80b54172d856896b4e6bdacfe03984d2a97d96f07a556931075e8e06020c618c4cfb42879e20dac943efb61e7ca2db3ea4e9798aa49428f9f3c9e701003a5be9626b3864a87d13eb5f053b6285553ce6308fccc775f83a0c954ce04ce6934217f617e6e600d64f8cb78338032ae51f16421976e9cfd2b73476c091ba13dad3d1c4649ea9f71aa18b44f21e729ba67c9873b17bac4d8214189faef18df3aa91a7fd3f08fcbf1d8422802456ffd523b3a0666a6d33a35a3e6de18992887bff9c6158b4d248c0da73b01632610b19c5d9acd788aa1f2aa13438342933005399c41c58fc3d664c5f88d5c31d2f3c795aef8e8f780014ee0c4e4119a881e187b6833549fb75484bcbb5b8f93e6861d448cb60cc00144df7c852af0e0e238f10270023028ea5c02942d38a653e37c7ecd79eafe709122b230b48e054c1e2bca2d9eca3a90e72723d56306da30d69ecfddb2b5c1223149e2834be44cbaa44c9fcdde89a6f64cbfc9dea31257c727f0ae0356734534f2d7d0a544d41f7558297eb3786f048ed830e4f8eba101bdc241f609af3f71fcf90c1f9df23ca9450332e777e1a108d31648a2748dc741faa5ac33a607d8481a91d21e0b7e364f876ccc7a10da16f9f64fa12e4b5c9ac14ad2f6f26e86d70a0dcd1e2ca70686c00c6f6d08f0eb54dcd70b29a02f1cd90c464220a6b96ee9026bab966b6d0731fdffd57e6da12453561a69de2a499307d04478b9b82d1df9c1f836b1cd17ad0296bae16953801cff0b9d121fcfbe954b012adbf04069ccf748278e796a9f42c6af5988ca9e2ba54f5be1c76f02b0898009d84ef4ca7246dd763077aa7c2c7bc3493beaa9d5bc349ac115396ecf4b19f0dafa67a240381b0921705554651061c39830b78821642c2b42f95d7cb9ee51d9131ae73ff39c7762bd9c17827a37888adda03de255abb8456625733393e0cca82d0cfb3b883b3644a9f59f9da83615471c000f741577d78739c68901ef730449ae73179f7acc124e488164dcae59ce9406da567434afaba31d43e86c8fc6bfbac5f1e3991770ba629fe491cff1d17096d3fb6f116b4fc3eebcf2fb779843af2f44436fd2c0a8db2ab9fcfd9413de206120697d0069a1f323851f2cb2bf7442ae75bcdb9305a12ada67963f14b9e302289da45ae139ecab92770bfde33f631c9f08725d50604d249e36dbf3165fd7949b1a81e6576022a5ab7d2d850c673777fb673fb1f7fe5272316ac26a18db44661ae1bd2358b4c03a4b220bcc57e8825918177bbd2655ab4f1a9be41c1fad7e6c57152136a16d8256b1f394b34b57ed3e52cba44efdb008617977976f65c6dfd51962d1499af966c4dd4af6a5597c4b586d1e4400ad876beb1cbc3cae69b7244713bef6ac8652f32b26cd10b249d589fad051d91c5c8de3df1d90164ff7fa81f3690fd924cb010911c345b62d44447f98b291899792c763281c095ed509830679eeb6a11fd9f3aabfc520f9ae1bef6078e1abf3607f7ee088fd31422d4959c5fb12bad529d493e105f7b162bfdf43d6cc1e7eefd5019aa8c5be0e22a2694046951a9eede0baf184907ab890ba2d5fe2df74ef933bae848e2c77a3a3df4214044a1eb6489905781b417dce8cd239c7709f7735cdad73b281b77272a08536f73b590871a0464b41faea9b0c63532ec0270e763f54260113a46fcce27b4f3f67c3a0778ea65e24b9e493229ea0f63ea0d0c0a003ca7399c3046fe65d904b1a79ee0ee0adc5dc3211a3972e1619a9684808fd6a3e9636a022da55d8c2e4933c815e14c8708fbb61f8363945431359d3e8c73a2065fb04bd06475dcbb8d543c57a59c6b4c2a0fdad0aaefa61d28260b47c87401861de408aa615e9085695d64c65ae048fbbf277a52f2a83a64129bebd101980c104ae6e41554e53a5dc5332a1b0b47da009de0140516e8782a0f9aa3aacff75d96dfeb0b153dcbf4a77a624cdfb80540fee6ca3a55077a1a186c0569eb666b2bfdb81db9eb6a2f5b903fd919c1cd9993d2b90aed7506e243e8e7083b4aa13ca517acef0a69866991176ff79a2f664c228f815bb8633c95fecfa6777a676efbf07b740ae5c873c160df4f8b9d17316ebb26d37233859fd5f81e229f8339cd2f6166c5afc21dd60ce3312223956d6b460128b65479432798c497d862ffb19bfa0d07ccf8d6b7a69bfa0dca27910b3bdd0acf1bf960e13cb1498b26e3eb010d2c6e508d34e7518f5cbb69e80ec17e8b39b0f1f0e54a37dd13cb61908efabd6607e5658d85f05990e3823bc8121a93f037280aa39797f4a6711995c0997872159771f299170c8b3798a80e185f32d3126ee3c8a7dd8b45c13a1e04415c2143e7461f0035eec1295d974d2f3b409b054b1797d94f5667f8fcc9aa72bc3dce572e8e8081d00924980161c226120d9d40b3f2e593f6b89e23b28d141a2211cc995d5e9a1bc33c4300450310380c9b99bbac0fe755040562667d8b9e48ad7228142129e21701abae5ba117fc2326760ff6ee5db67b6a2a63e2cc7fbca966551098de52a9f76a1765b4892466ec4bcb597beca373f86daf447401d9c4e41d2e129f1846de4677549591283a172290d78b89e1fb364aad5155028a013d1c047e93420d61dd9a555ae877dd3a9ffaabc456109fb28fee6044a573bc2438b3716650a707933e88bbee67fb69832ca6e9fdf11d0f80e49b0274e7b77adeb6d13524a6fa4813f400adb087eca451bf8762a6237c232f42df27b040b4d297fb60ca26119c9d5827e2c0346bbbdd36266fa6e658da9e098f1e62e40e3b807a8cd1c1b5b86c371189c57f02cddceea6358f7d6ef1859e9d5d80e5fd914b7b601c7c3e7587ff27d70c9f73bef0cc95d81cde22c734f5adb5fc9c21ee20b53ee4ffe42b62c0b0329375636a7593ea4b5e972ca0008577e400e22b52237aa14a88f40c63c633c777dd1fe7025277b73661b81470ba46440ed36cb2b9aad93566205939c2131158b94361fcfa6f6e2b0e6d325f4099ecfe890f8a93eecf9e0f0fa2d2775cab76f10aacba5ce736fb4b0fb63203da03718c85116259811bd0a4adb30e5389d5fefe4a7dd072cfe9c5761335489ee0f6a23234f805e5e6f7e8640070b350155d6489840894d0641709d09754d3c472e5ba02d4c663ca795829122df6cbe7091e596d710ffb29356e7046d32988a531f489cada1bda30a20a478f160dab76ec9fb2d8cbbe9d936ea726eee2c98f57bdda7bd216beb15cf5dab7ed95404bd81bf01e63842e37cca546862217000b11f1c9a373a318276c1b099845786079b93e6d9ae2d67e1ba6679524bfa55ac100a8fc81dfd65e3223ed65b8f443d4a9658698cf676df1eb6d5d68067a4d634380b0d109ffb670bfcc265d513babcb1799b55032ca513206f5aa53832734768e1e43b52663957ea5270b2babfc24d49a5031eca289d36358d9ad17acf8dfc5d69e2b145ee0fa80c87ec325ec507850524c1c7339b09411935a40ce6fc59f9f6a5f156b6d033c14f7f414098bc5f5d007452ac28dc195124e1eb9e1539295599cb5e4fb3c69ee56aafe9d1d25ea248afabdc9d7eed1decf1b87e029f6ece1d5940d1d0f1bd5070e9ec543af5bf886de295a7dcf76182b3ea1719061969423bcb0f1bf74cbbc6c134d99b1b481079ca4d1ccc7aa35da852cdda66ee9e587ecadeff7282ff2398033ff01a4f9e1a01fc1d7ff762ffca9b7e3fea5e2dd314ecd5fb2cc2cbb8e7d1d698d0d5c7d1d445f4c486fe370813c932bd32a41ba489d9942f8b8993ac816ca345e591925f5ceaf2883f1e4777d9e40b466a87a82e3e15edde80b0b7731b15d3f161184874d131938ff98b23c6d18245c7cc2ed3151fabeabaf92e60872c2bf1fa58129dede7f677117c70a8b5d78b0f670de2b10559b7b27d3e1489c4f12d2f86bd03a8a850146a4ad268ae3f986e6bfc87ae7639338206c29dab46b0a23cae3b4027ec98df65d9425aa6a81989fde9bde02dd4c80f34d5aa39c4038d24bdf8e091ac9b973c38aefa3b90f19e13ccc683c820821fa5530254902c0507410f55f5c7fb1b678fb949824dc96da07bef71ec66ea9cbe7c369af1995d9f1011267683ff47f99cac78e1837cebc4b1e13ac55363353e39f34446b5e393986e42554bb98ee33d9ffc0fd12fc3625341c9e95", @nested={0x4f, 0x5, 0x0, 0x1, [@generic="ee665653fd72d8530d337726b607426fa3dadf9ea248ad73798a029a775db9af6abb3c2388e328a3203f6d", @typed={0x18, 0x69, 0x0, 0x0, @binary="50d5ad0613f5f5905b7d31eef3f6551e7b09d60d"}, @typed={0x8, 0x60, 0x0, 0x0, @ipv4=@empty}]}]}, 0x21bc}, {&(0x7f00000003c0)={0x133c, 0x2f, 0x4, 0x70bd28, 0x25dfdbff, "", [@generic="b3d590f30c691275c3549fcd5ecdf9685d2dadc2fb1d4c091d27a488b44b82cf937766daa02e0c1fdf2be312daaf2253df11e73da9a7a25ad129a541ebb2af0fcd95e4091d05c46ea2930a9764500a2d5108dacf55152eee833f0af64288078b26f9eee8e7d4eb3cd8163726e46e616951326106d81961ec6dec092466186d9dd194e87ebfd0de045c0070a05aea0f0d36fb18bb313f81458569d46f2a3257fc082f550af197cf61e7bfcc9c1fecf8cf4f5b0d695d68dc0640bf8dde9fab2f9df7531e2d75cb7bb63c78e775d2fad02fa85cfd98feedb86b575821827bff9b83628b3c56a035fb9c9dc5b4f515a801e84f83712abdf1ce71b73805a04ebfb0dbbedbdf68d2b06df69fae8fffc6735034cb24b3bc0462048d9d9735e76aaedfcc60c8fee74d811e92adca4e2f6baed1688f5bf14e3d34672d8c0805987ee5d3ec3794146507379effeff7d310c384528dabac98c1569df911c9452f4acf379be9bc5a23a389c9d8b9dd27f8190f24c4d4f3637cf70ae22a1b622119f876597f57c9aeb112bc5114f68492c89fff6dd765bc98039149a69348b476954a915cfd777676ef9755fc06105dbd3791ba494503513f62a8ee91cc14cd46f9062303114c8be74a41435d29d9193cf5b312bc4ac483d2190d6b5a66a42766a3d6dc294ecda180af0acb76146e739ac8c55d5a9e3ecc10ffb6e1a2d072f956741fb152cb8acc782792692aef9547fc9de8b92183a5a1d32bb516d9c462ec2f090c30b567468aeaa0bd9212dc74a4159b04d290d155f733e2e6cfd0e5e5aef0a389182fa2d818cce79122f040f09f454e53869a84094a7588e654956435c7e332e9e8485906623ca0a52b6813bd6569138e17c99ff917691d1fc1d5d2f5e082afad6592f4584b5a3d1c25170109474534f4a899ac5f69b0eb5aba5fabe61f2ad3b452af7da4faa0a220970d1536dbbe0dfa9b9b894f80504645ad83ea8a4f68b47a19c2d46cfd4027497dd9cda42b056cdd75846d627eeced235aa54a97c622615bcc80591c596b50d8dd495fc3a59706fdc0eb3785c9b93ce0494dbb9ad8470af3f7b457a76d211af04eb104b832c6f3940ba9221be5dae284fb45312f54d5db3d94e8bf7bf9c000a180918f00dad4a4dc0701e40fa387829eaa4a7e33cdc59717046e1433e13489821bca6c82ab63e5b9311a18f25c8af6a483f162f829a5e69d13377643e42ade5b96c18c03e357e2f95d387d252a16f8a40730f6b0549b517d3df79500c215516aa0df687fc02fb21b5b36fa83b33ca87b508c448e124cdeb3da7c85e3f37d16f292595e9addf33b9639a43d28509362f8be901ede7b0b09dd31378546a9a4f4cf0e853cc8b14881c49ede97c8d07937312ca7f52fc644fde336f4dc361030ffaa746f9bce298fc261c9a4e515b45cfd9a7f719114393ae29759be63adfbb95191dd505d19570fd8c43c3db8a9e7d0ca08811ac5d1fe2ccc16971cf6ad02301b26e2241e4a6c4a89edf9dfac434d12cd6cfce736b6667eaa810555cf869053924e15beb9f1ce958bf572a3ace143e0eb6b25ec3d66d91f82960cfda5e46a831c60ce7286aaf4c78e9fbf96dd171610e0f4345a237933ed6313aec47f0710cad38ab6e3a59ac5f09f230e0e4c8d33a4fb203a86c5176f64b8cb4bfe0f124f9bcecb6b917ce3d4609f644e5f85d0587b636a88f68e267d0fdd23df92aaa064f0388d61d24e83478f9920a6d1309cb0c6c3b5a5e17b1d4b61f5e6569336e2220e965c492eb13c75fb39a67ce35345e7fc8bba091f55baf9fc4314104648e0b6567d94a794a86dd347357d33e30de4fe41fefe15c7daac810c8af18711aab5e90e1a48e14fbff0d66b09419b047f759af05376cb2cbbe46dcea5556e53fb06af9debabb55baadb4d6c7c6b6c3dda9840cc34dc9bd0599139d88982a9ca4a1a025ed1391c2aa46f2cccb48d3f2e198abe4c0817a600a2db7fd00423877e12d6d717b26086c45bfe4dd8c96b1493d4228e92697ed53417725f5d08a49223412ec1bd2717eaa709707b551eeae564f06c9c463f51bcce89a589bafeb39cc4a26afb37d7fa2b15fa727e60093a5c5cb8d4b65c953fbd5783a21f980dd6183cd2f2b1023064950e603b4cfd7d511d5116ea1fcb89e6e98dbcc48853ae132202c646c3fdef1d1368b933ae34937cb84d6f9973184f3c25c6732478dc2466b4b92ab788f2110d8352908cf503d029cf1eda7a2e214046f0d67f8635d44f4036773b90a5999ac7e566fbe474302f6ff95369af62ac386a1d4770e4163004d62ad0ead552915e112cf8e9b1a1129dc6c0627331eacd665353e2fca29bf9e34baa35db1cbbda73ea3bc44a0e2508bdfd0234c15fe9a583ae48bc7ac17df759cfc0e319647621e17e3d8f26e508eb527a473f04850fac284d03280de290fdeb2ae88a495befb9a60ec443787e6c175abd4979dbb97adb2b0c554f8e2d5fe173b7ffdb63c89e89e74c2362f14893bebc1ce565c90596ad226bea5a25d0a005c8c9502d646685ed96f5776571902528b8fc72a8d31fc226687814a28e37438b58720f63edd38aaba5b00e734abbb312fcca38e455da7e4ca7b7eeff6fdbeeeaea27bc0600fc88c57d8974a113f4816f7bcc2389bd228c3154a3e73b21f4e1b7443fb642331f06df41e0ffc6b4432b4bad38b938b4e817508f73d807a56bbd2c0424d86a175d40041548a312d3d30ea53b7f5029aa750c0f503e17f7a9b7dccb5e2b50fd3a71fdd451390af398c82ef962c60c9a7c5931aafd7c4e962160bd926dfc44925907e3e1e64577a7973aaf448b2a58011507a8f8d14c0e661ff74e703ae13c5b4fb3d12c3cb1d0b04edb05294d884bd4fef25b0807bd813ad551a69b634e3f26938bc3bdc40d12f3cba025bef0ae2d409901acc43f53c3010bfa4b23db54c11512ce569a21948e0e150c984cc6b4cec737a43020eb630891166954c0e815070ad607dcafb03cc54f3bbcd86c3c0778d3f01fc811ab661731659b4830829ecfead080207c4e680ba16fcf297534fd8d25dca637551c67a672ea2d1f4fb262f1e4ef3dda295d13c569949a6e8e55d443b2e4467e814b051f229908a85ee671f68cb9500fa7d736a512db1de80c3a587fb9ac9d1e353e6f817ad7aef833cf8c96f76fceeb8fbb2a753847c2725a582e5fb8c444d54a343a27744a333393903560341dd1e21be30c11597544000c6e3c16febb385954da846e4a72cbd35ef90d6c643874133c86444ca820de3cf915aa8e44aca238ec0ac7351fd65b9e11e8d839769c89ba53d303963c807711a5e025ce9cce8da982a676e31c3b75ee0c04c6903290d62d176c0ec6fadaa92810dcce7ad0106db4ff1a9a97eb1fdbc1a1358c35dd3a750d5e0623cc88c28ac4012df546a20993a788f5620a9ad9b25b81e843607bf96752dd062adbf12e9e3f1c1aea4747be6d8982e04c123544838558b512da44af6d0bfc0bbfa732171a78232a0afbb4af4681634abe71c606bdd52c4cf09ab2d9b37d5f153d3535bd03f9a66b89c44be0871f7a0394311ba404ef767f309876160549eb93d84cfa4758d96e12e15f0ba92ae03259fa04bb1152105e38bf39516fb80daa8ee5770613a0c5352405a7e9be6a1f10b9d5db6d08dd70aaf65a3de74b90831e31826ecd5a86a0293c41da4f7e44818ba0e16ab534cee84c871c811e50a0b9e533762632f8419e3b944f9a8e24ebde35d4ee499b4b80448b5f1cf50d5bd32b780d2d8e628c4599b25062cdcedee73a4cb1ca25d7820dad9f56ee0a59715f2dc81c837120a771ff2235b70b981f29873e410ebcf15a825f283121f51e4e9a1c39bea69b4ef11defc1602ee6ca64777eb76322f10dce604bfac1faf4cb34cfc2d0cb565fe1962f320a2ad9167759110899c7bcb01f62dd53ac085d6db389bab07d8ec9fec6b61292444ac3e27dbd948694f0b2fbe503efb6bfe0096d185bb9d1b768fe0cdfd9f95e4ab6b779e6ee8dee4b190f5f4fb40bd394c1bbfd17b8a9f9db3a2e0e22307a38c8d95513022c21dbb85859f6b8008d1a315f9c75f820605f6598b23adffa34db57889e1b3c57a9f5946aa2c198fecb9f974901b3d3033728657a2196697a887a5a36ed60a1b093c0353f424d65be2a56828a89d96957983b0d504807a54f94b28ec5248bd9e61be1d33f00a0ac95967d03e8c5e99b6f4d41f44d0708969b82923cf6acf2068b029a37d45592bb29b3bf244e950b204071d585db30aab397926178f0089dfd5fdb57b833d6f13993f2b11a4e8b550fdeacee0fc3a2addebda1fa6d964fa42b21123d91c9a1fe42493b6b4857250791eac991925498e513007c13e1c9dbbd1d5edc1d1c76dac5139daf26aa3b516a52996ced04894f451d52aeb13f1d8607dd9ed724fd706c4ab2271ff1b8f871cc2907750c6e91a5543e11d9fc2c12bfa71f230192b95f9c6e4c320a931316c2ef8af564538379e1a8d439c301c49df0ea723d2347e13a558e9f47ea3370b574d5ac3234b1f1b8ae10a7eb5e5492c465d857add924dbefbafe3b7438e03aab4642db799f00154a653299ed34d2125283540d874e8316e396a35417e00ef258ebb94ddab67aa76463b81e00c2650f871b64e9077bbe875000072dc04532b866fb610e5d8ca3733ba4f799aa9314e6d15a24753965ea301d7f9407601dca2b8f8c6ef2c63e4cfb3864efef6038fdcb763ef06b096981f4b445a5b3734b76d5dbbea7f1ec21ade973d6bb5c43cfb9508451c8c463a205b4c0396fa8fba55aba9c8a3a90984f55b3c66e3200c4b9643c7bdbef89be8e09fc208c8b572ec799dd3680d703d9f5b8fbb86c7c474590554acb90a9de17e4af6d93d8315de00d58c3809a07a31c37fe82104977be1a80b30cc5c87601cd0dec0a4aae6611340590b42f3a5ef9b80d3fbd8e2a9af8704f9069d8c68399856e336ab70cfe31658dcc1b1306575844afb3fd3779001ddd913b45e0b98c6ae19aecbaeab1c876485745f0986184bb8242880ed057a657c273d4f8dcf2d547293f60e274dc518c2f2896fdacbaf593c27a5a37372616308af359c0d78292f9f560762151ca2018a31f5d4b60825e31dddeee5c245ff83d46d5c467dd78bb06cd44d9e0bf650f4f4ef4ea07dcda61a67052b1c9576e182d4af513f10a41b65ca3d5e01e55c4b17c3b3002bb61826dd9534f205d95059f8cd341a963b8f49d36e0f6112ed57e8019f76b3b919b36e2424a05e839bdd9f6830b924d75498877a67b41346eee5afb9edd0b38ac7e91f27e77d97b7eaf9eed77eb3132a273d75982fa4bc79f5afc76cc030463a72cc85178fdd9f2ad4c60e137f56652690bfe79947b8c91ee52c61948071002f0b9b566bf9e938ba468fa58b4d59dea095671b83295a71e78c9ce931a90a3ae803e1ecd4fe72a54ab48a7753ec0023ae88001c87de145913dceda7a2e1099e5b1ab91cf6cb07007da840ae821db082fe567c46c66ac9b663e5d2c8db982798d2a623e87189371b71585b7feb9e263dbbb61004f9a0c5a82cf49ec76784a1421a37d78337d9af0d1198344b411b439fb79f952ee7642d444d5a23ab913d74a16842160e68a588ddf850491dac4e9b0bcc0e264fa46e450b9a9732c81f128664ce90083180ff6d0f5fbdd215bc0584247b4876d1bb00c80d69b0a3af61b3f840e69234bdb3377b346800cd644bb5d594e2e37d5a6695cad4686867dbdc1454d29d30413a295cc790ea137ca8533c8ba1dc7b92fb734cc8b9dd653cf0b8db965511a43b46b7140d4", @typed={0x4, 0x53}, @typed={0x6, 0x73, 0x0, 0x0, @str='[\x00'}, @typed={0x8, 0x17, 0x0, 0x0, @u32=0x2}, @typed={0x14, 0x3f, 0x0, 0x0, @ipv6=@mcast2}, @nested={0x14a, 0x63, 0x0, 0x1, [@typed={0x4, 0x8d}, @generic="579412156691baf55f1c006ba3d4f825107228de101122e3a35d573112845cfb5883cb55313169359b77ffe99bb2f3fddc67b3ce326e9fea14e029b9d3b8989b430a6a98961911178b59cce63b57572bb7dfbce5d7ef4abf8e9e96f05bfda937f5476eff2dde6ca1aac6ca5ce8e7c75dc181bb2989e2", @generic="f03b2799eaea651917f16e45e7035f7c01c95392c3725b7cba1dd701e8fdfc3369633e01679b59abae2e0e47094d754047f6bfec08c5f19d3766bc0773bfa91830cb07cdc7394e983ab62cb0c8e16c997ecd401ff6294d686cd499bd83968fd016ff69c23b987bd1f79944924193ece50055ce632a4e39fe1e1696c8ad7305291d14f2dbd7b088ea876ddaac", @typed={0x14, 0x49, 0x0, 0x0, @ipv6=@dev={0xfe, 0x80, '\x00', 0x2d}}, @generic="9a5154808af47c2399e5eb952dcbc5396060f7ec2168be2f67bb708e95c255fa7976c6153284f5fa248648f3"]}, @typed={0x101, 0x2e, 0x0, 0x0, @binary="8d03a3e007ded5d05e347aacb6f0728e749f53d0ecd4f7fb256b8a43440381a65abd9e15736d0927444bda49090ee7add951daece359cc4e5f60fc4128ee5a30e16e292fa07cc3f6738bb1edccfcc51f57f4c2a586b6ee09745bbaafe4e313886b5c867bcd552b10ccd0ae1a03877f96eed48d2456fcff0ef501976473374e5f295ac41b6af2fa3deffe394da85fbb601403dfba868af5c83305c325e1689562f773babb207d6e03a5705eebfb7550d6cc2c8735ff611d72413d458870b857e3ac41e1914d6a51b9e24b020b9a6f5a2e8dc84e777917bfb886a683c0c3d778e2adfd3d5a58283dd8a156686510f206911a118251ebe0e34db8354dee78"}, @nested={0x82, 0x46, 0x0, 0x1, [@typed={0x8, 0x3d, 0x0, 0x0, @pid}, @typed={0x8, 0x76, 0x0, 0x0, @fd=r0}, @generic="a63ac7666ae58ef7190cb7a9f8fb8e030aada47cf41058c9f9925a3906e589ad556586f8a77bd62f7088dc16bc53bdeee41da230ede450e35be88d5185bd4e36b86f6394b3ec9288fa37fd1f860c8629fb260e40611826e66fdd", @typed={0xc, 0xe, 0x0, 0x0, @u64=0x80000000}, @typed={0x8, 0x1e, 0x0, 0x0, @u32}]}, @typed={0x30, 0x7e, 0x0, 0x0, @binary="665eba1f6906973454fd38b0b6adf76af5505124f1627982018776b8ba25b6e4c08f31ff2a458d3110b31192"}]}, 0x133c}], 0x3, 0x0, 0x0, 0x4000000}, 0x84) 00:14:55 executing program 3: r0 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000000040)={'wlan0\x00', 0x0}) r2 = socket$netlink(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f0000000300)={0x0, 0x0, &(0x7f00000002c0)={&(0x7f0000000440)=@newtaction={0x8c, 0x30, 0x1, 0x0, 0x0, {}, [{0x78, 0x1, [@m_police={0x74, 0x1, 0x0, 0x0, {{0xb}, {0x48, 0x2, 0x0, 0x1, [[@TCA_POLICE_TBF={0x3c}, @TCA_POLICE_RESULT={0x8, 0x5, 0x1ffffffd}]]}, {0x4}, {0xc}, {0xc}}}]}]}, 0x8c}}, 0x0) r3 = syz_genetlink_get_family_id$devlink(&(0x7f0000000100), 0xffffffffffffffff) r4 = gettid() r5 = socket$nl_generic(0x10, 0x3, 0x10) sendmsg$DEVLINK_CMD_RELOAD(r5, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000380)={&(0x7f00000002c0)={0x3c, r3, 0x1, 0x0, 0x0, {}, [{@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, @DEVLINK_ATTR_NETNS_PID={0x8, 0x8b, r4}}]}, 0x3c}}, 0x0) sendmsg$DEVLINK_CMD_SB_PORT_POOL_GET(r2, &(0x7f0000000240)={&(0x7f0000000140)={0x10, 0x0, 0x0, 0x100}, 0xc, &(0x7f0000000200)={&(0x7f0000000180)={0x7c, r3, 0x300, 0x70bd2d, 0x25dfdbfc, {}, [{{@pci={{0x8}, {0x11}}, {0x8, 0x3, 0x3}}, {0x8, 0xb, 0x7fffffff}, {0x6, 0x11, 0x6}}, {{@pci={{0x8}, {0x11}}, {0x8}}, {0x8}, {0x6}}]}, 0x7c}}, 0x8001) r6 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000000), 0xffffffffffffffff) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f00000002c0)={0x0, 0x0, &(0x7f0000000280)={&(0x7f0000000080)={0x90, r6, 0x1, 0x0, 0x0, {{}, {@val={0x8, 0x3, r1}, @void}}, [@NL80211_ATTR_FRAME={0x72, 0x33, @beacon={@wo_ht={{}, {}, @device_b}, 0x0, @random, 0x0, @void, @val, @void, @val={0x4, 0x6}, @void, @val={0x5, 0x3}, @val={0x25, 0x3}, @val={0x2a, 0x1}, @val={0x3c, 0x4}, @val={0x2d, 0x1a}, @val={0x72, 0x6}, @val={0x71, 0x7}, @void}}]}, 0x90}}, 0x0) r7 = socket(0x22, 0x2, 0x10) ioctl$sock_SIOCGIFBR(r7, 0x8940, &(0x7f0000000040)=@add_del={0x2, &(0x7f0000000000)='veth0_to_batadv\x00'}) r8 = syz_genetlink_get_family_id$nl80211(&(0x7f00000000c0), r7) sendmsg$NL80211_CMD_GET_SCAN(r7, &(0x7f0000000180)={&(0x7f0000000080)={0x10, 0x0, 0x0, 0x40000}, 0xc, &(0x7f0000000140)={&(0x7f0000000100)={0x20, r8, 0x200, 0x70bd2a, 0x25dfdbfc, {{}, {@void, @val={0xc, 0x99, {0xb93b, 0x27}}}}, ["", "", "", "", "", "", "", ""]}, 0x20}, 0x1, 0x0, 0x0, 0x20004084}, 0x4000000) r9 = socket$nl_generic(0x10, 0x3, 0x10) r10 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000040), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r9, 0x8933, &(0x7f0000000000)={'wlan0\x00', 0x0}) sendmsg$NL80211_CMD_GET_SCAN(r9, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000140)={0x1c, r10, 0x303, 0x0, 0x0, {{}, {@val={0x8, 0x3, r11}, @void}}}, 0x1c}}, 0x0) sendmsg$NL80211_CMD_ADD_NAN_FUNCTION(r5, &(0x7f0000005440)={&(0x7f0000000340), 0xc, &(0x7f0000000400)={&(0x7f0000000500)={0x4f3c, r8, 0x8, 0x70bd25, 0x25dfdbfd, {{}, {@val={0x8, 0x3, r11}, @val={0xc, 0x99, {0x3, 0x59}}}}, [@NL80211_ATTR_NAN_FUNC={0x2a0, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_RX_MATCH_FILTER={0x178, 0xd, 0x0, 0x1, [{0xfb, 0x0, "3d6c690b29e2b4cf9055f6884d1f2910596958979be543fc8e48fd18ca7d4fc0906ce178dde8063f49fc92965fc338009af4ee3f9369eb81fde2d5e8ec34404caf54006cb6e51ec969ba8e0fd66e924955271814418f7de1b698f0c6c291aad6049d7947c41f08b2aa71270e3626424902f914a34d60c8b8321095605d365e434c53bf15e59eb701254f366c65202c5f07d3155467bdeee026763d1814cd43a3282d82a53a73b2d7f6ad099cb55a68705e537fb82ea06a264c4e70607e2431d45af5f228c17fdd2d7493cc0dd59e2abf425c35d85df943c4133c164d6aed6f9c224f0dd55a9cb79356d6b57ebc69c79a2ed39d6add6eab"}, {0x76, 0x0, "be0945f55590e92ec773906de1e7ff4bcf8d5dddafd7201d1fed3e4bd4b3a597008c5714f2c98b70f2246209b6b72ab867cc15fab76f208ee79e012d93acd8605db2e0758bb8f59713b494bf8a604c0d469806155da12a0fac60355c62216bd7c8f49305bd83359dbc0ef7dc11142d91365f"}]}, @NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID={0x5, 0x7, 0x3}, @NL80211_NAN_FUNC_FOLLOW_UP_DEST={0xa, 0x8, @device_b}, @NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE={0x4}, @NL80211_NAN_FUNC_SERVICE_INFO={0xd8, 0xb, "839e5b49891e95807ef2bd3b463d1155969d912adc0b8ef0d10d5594a8f965be7b29aee8d2c4cbda898a46fbfb6e9ff3767e5a1a53ec20a5f61f90507211ab5e524a1917beac74528f55a4df3483ffc10f18eb12b3f04db2925a04654e274c94f688f5374d4adca4e226d96f0d96ce4470c8080817c25146d4a8a25d187f5f7e572da2f43b5e1bfa064390d31f888bde5cf0fb2ee77c49290587691d9f8fed781fd465fb6028263aeeb71b8bb37795e95d48a4d85745693a07b2e75f08ce361ef89d101165b59ac63c5aa02f385f83895fdf9043"}, @NL80211_NAN_FUNC_SERVICE_INFO={0x33, 0xb, "c6b259aab8f6f205ed6e151bd082ff0a86250f2cf80e86203614c907c184af857e79cd92c9f4728ded154906cab28a"}]}, @NL80211_ATTR_NAN_FUNC={0x164, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_FOLLOW_UP_DEST={0xa, 0x8, @device_b}, @NL80211_NAN_FUNC_TX_MATCH_FILTER={0x14c, 0xe, 0x0, 0x1, [{0xc0, 0x0, "26f6d54ce7c429e6e751f520d07f4eef0c2d98bf27502600b2854b0c8ffa923df06d227cd619b8c85c14688f6e06bed7c36008710995b08e666b7ec259f14756ca2f6af064e23c78f3e5c945b46f813b2adc8b4061613a2c1e65d0f0171795fecf1d1632849ed838665c977b80e63ecfeeab89dfdda28802fde92d87dd79e3700466ec95617d87b03e8b1d54a622494b7d59b5dc57668e71884a6dfd81d7a64b716268f5515224e3d3abf4af47a9b2f059056940f5283e9366a24fe4"}, {0x86, 0x0, "1737aa5216bcbd3f1aa1e3cc4130ab047a57f0aa454d07f8b6fa860df5e508c13d50c793c42381d7a63458ee5f86dc192a512ef07cd4e819a60ae11a7e464aff73fef627ed0fd947adc89a38ad9cf91f4861ac15dc582fa36a8793dcde762a00205b29f686f6cee7416ae8b5d52f0f78ecd754b7646dd924234ab12e621c8febbbc9"}]}, @NL80211_NAN_FUNC_PUBLISH_TYPE={0x5, 0x3, 0x8}]}, @NL80211_ATTR_NAN_FUNC={0x1338, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_SERVICE_INFO={0x102, 0xb, "73b916c2c516e323414abc8b1022fee230aa7aa15d91f93ebd09a803f8f38c527c3d719f778f410057e73228bca0c0a95d8016331dc3a58865ada579699a632fd9cfe60126ae9aa4a64ad3df5bc6bfd22711dfa7b015580731ac65195a2dfa95fd3b83ef4c0f08d864e79823ca32cec4be49eaa5c99fe60aa316074312eba5bb64cbe854ab4e4b9467d00f7fab496720dd3575c51071bc38d23925dc69fbd81c106f5fa147e5e4e76170278e8ce64ecf41d11d741e76835ff78856067d535b0d591c8c98dd62ab78f21aa308e2459eb9865716dce9fc4f104c53387ca62ce3b1482b6d655aad88467ea1482af15bef6e2a1464b9d82f41d49c1ee6b891fc"}, @NL80211_NAN_FUNC_RX_MATCH_FILTER={0x11e0, 0xd, 0x0, 0x1, [{0x1004, 0x0, "d57972542784b1e85ab84b1f443964b1d1437ce3699ae28bc2a84aefc0a50cdf4dfe1cbb932361cb5407f5e2ea432f773af04a72607de2b6220b3f6bb7725e8ae7f21078ca8fe1f25c7f2d748e3e683c518b26e407ac0e0c792b8fc33e2975a580336e3ab54b3e52c18992107d22c2be3bbb91b8418a2125c81cfc4c9bc2ce16ce06d3a004948ff35077c20f0aed319f28a80070be369ef03393d41d5f0c1b1081d3252e248c4abf3da7cdcc57191191a1eb4e2856986521f3899db3a30aea3ba18ebb0a4a9e12c4bc6efdf0255dbc44e1dc03699c5ff00fdafc9940934dfbe5aa3a9fd8df185cfe7ed21709378bf34173d8da746e1d1d120b01f94f4493aa03d8a240cbc30bf591d9a9603b48fb01d7271ddb1f6a04dce08bc53fdefc22af8fb2f19fa6d9f090b173031232a595d51c5739d57072f7903aef7852a7114d5fbe63f6b92767076edccda80c3ead0320e127ef32d000cc0348475bf3e68b51047e2074cd70a092bc300a5c5c3a3de087069fbef078e3b84332df1306cf821d9952003b1279ea6947c2e5717a7d62cfe091bc566b80467efd2a577f5192f60c14e03acc4e4b449e9265af06bae6fd07bd31688904d2943de678bad3a4085047652199794f35c0796398f0b847e69e48d38922ab31d1128db0fe6977d2c8d97a090b907544d3781b0a3a77fadaceb5595d6ca1e30dd9fdbb8258d79be38768d8d3d9255b3a4a9bfdaa0360da42cb6cb9b22186379ac821ca8848ede6037dc7e1d86483a010f6c273e6227f454b97f4d80bacdec23df2de5696bd94244c3da00af082a49eb877b89ce9eb295da3660bcb258e003893d70d20986b746fb85aa48b0cf65b9a435a55b1b45e00927a371ff003d5c29c57360a831d7fd9544c1ce04abfd404bb7a849b44849839d5f6f012b194d4424aae72f7cd206acd25dd31efc059c883cccf3510277059a984f4e0d15e48656b60b155f752aa0c913fc9f90f72ac3d65d7c3ba1dd390a8014ce4222b1206a0dc2b3191c0e29e2bb4ec04e3a86c5fa290f54c3565a18101762c86ddb50b1932b391e6020a170c3ecd4b173adbd06ade3fc6113165487bbf00a4673aa07a6974c4738490e3011e9d8cfd8ee6d556f453af4142e467348e44b7ead729da8426ba418609ac56b382c01f1885dfe4f0bdb6e67e9a1d0b3b551590ac2d83c9944b645b7f132794d5aef5ed23ade7f9b6cefe31410456e203b27114d5aa0156a663341336b9ae5f319140244070765acf7fb5c7614231269b349083ec87f2b2b566170eda2bec7c2c7f74108b7c073e7270f7cafb72157965a9ee12da638a3510a181b7b69dcf011470b7b49d6b7f31d5dc68d939d051e7b483b569ed7906d996794cfc554fa772600570bc081b663fc46506dcefa41cfb08a4849d2e6a66b288fe1bf9fb7693b363cbd981c7bf7de9c9eb53ff01dc2ba19d7dbc44883114419802d3684498a66f4bc03592a4adb782069b03ed14a9450a47990e55d4e32d2fa9e017ffe01354721833f8bc89b2b1a3e490b630855a82c860edfabaf9e63a38415c5f99f35798d98d932cb07334965b9c6d71bf95caae243ed90fcf30ee19a1acd75536cc0a25216b4c9f58175272e32f0ae6d4242c7c214554118570d8654f667b5e7805542188bd58c9b5d02928fca2380bb5c751e4896518a9d1b4f288d2640071305ed3803512d11e5dcb3508164106fc1bfb11f281b67370492ed58b6f34ab9f05316fdbd405345c09b6095a51986b7e0776daebebf7f93e45b2f92d18d499a7518a619ce91b7272aa7a5f59270c5082e7c83187ba24bc755d75a790db322e57b4b057d47d4ba90efb0d824187eed667aa2bfeb679fff4c28176c6d8ca88a6782e1fa66a27a8724dfb59b88c9a8e4b700d4c1679f5f319a925436667bcbd16434716886499d59fbb45d233c20ba3209c25ab25bce0544d93d118aed511c51032e54426adb042db660c5e16c47095ff869778b0725aafb003892f412df709e94c6dddd1822fa40673290a4fbd560c1c62dd1222605dded2e875e353f2bc4806938ac8eee6b9375a05cc7f9bec3ea16232b334b4b583e784e6f307cc8bae79751a33d5a9702413f697b1baa5305aefea7201486395760996b74891a8bb0fb8af7a58326356186a6b0acac2ba37a088cb64a3c49fdb029309854c0e05956ac98d08388598339b2adb7113c9f5d965b89b089084023e88010013fb75145bd8013ad3bdfad371177e6fb0ca9ddd069d2f8e8267d33ca172cb2d107c65c06a1598a9446c83dfcadcc1cd9a70e4c05031a8111545244129011791e34477e7745b0e7688e0be519408a089df387ecf30dbadc8fd478f8930f54950313af08c456d50adfe67abcc238a8ea86c8c3be1e41187c01ad1c75f99e31c9ec16d0f4588feb26bb55634abfbedf00a835caa7aaf8f29bac6285577132492462a36bb983d9815f798febe5ad520d087ddfd457ab0bbb9604a3e6052cab679247b078920f496d64e6278556aec53cfd24b8772baa55e47c36542aa16ecbc30133dbebd4a8d9ba1fafbc27644d5eed3b1675082161bd670c6a9034a7819e90e9b259fe854650e1157a0390060d744bc5e0ac905cf66f4447f414a97e6be6810bdb562c3caf5da36d7e00dc96f26bde53dd78bdcbfe876661a910d9d0a99ee99372a1018759c826000c5c69cf8bf75ab258df1c6b96f62317521b4df75ca94fc630b56ff579ab88226f71dedf9b0d967974c8af27c26d4b9c1ba4a7d24c216a437ceb0f3a39da128ca08305a2cf96e82d8e393a1d2502b1f4f91607bf18b503a84db9b0a7f8b749f5ca00a4f02285500f853894c7f08d2979c8e11af30b485d1d3100d3f7271b9a405cd270fe3816ebcec4d8657467601b2392b759ab6c7ca26b8482edb6576ee64da4e2e3090d0241736e0bc5aa9882efed3ad30772cc8bd73b9a46e1d0ec5954c8bfa7facba9c2ce0a64de04519af54f88459e89d96d6e0da74a69c72c1de1ea4bed874adeefe29d31a87771dfb6b7ea69b7aa4ada571b9c76a8ae5907129b1046e5316a6d0a6c4ca0a4af405f2db541d689149c8da81c075be2002052191709d05321b87508c4803ad2da83406f5ca46048eca598f6c7b067814b14b5d92bf7dfe2d3d29480083e33fa8b37044d445b23e0f2d72832d1000661c5b7b152d5ea1a83050b20ff92cda1abd5a6b3a5a383d9da32f937ff771a63133431592ed5980960439ddd2bb422e3d604cee2383f87abed79587a9c79e0c7d595dcbdf45296c688f602096a3b8d4a914f2a88af4a0a92b03a3a643b5636a416c9c5597419e2697d26b8a4c4d984451b7e9e9cdc97ef596c95ad1777115515baed70139af86a25bfcaf5289e9a6b325fc1956171f26e20900838b99aa2e3d10d845c1aa970c78a25df0e88294446b2ebb0cfcac479a78ad719d8ec0bab460efaa33486a00ecacbea291a99f1f3e1e808826d26b16d6efde4fca0146b99c05b90ff17329e02ca12712573a7f4c51b9de03f07133d4f8da0f0bcb48c33699bb0e50c1280dc635467804ab2532f8d9358d57e215ea785fd4c25c0fc57ca3f68fe671bdb205f2dc5e34ba912843585f09f2bc26c03c67a61b3ae1825ea0e9607afced54ef8bc5acc383ef31c180184a76f011fa2f1b0a6578fec90b51ace7de3cb0441e7233ff94fc493552a6ce99b55cbecbb91b5d6ad93ab5a8819c3fd21e6c555ef65b5a876e83c2bed93e53e52d029ee1051e783a61bfced097651a53105efc53d77fcd068301313831145bbec1651dcd32ee49d995df26d2d41db14008fe0f9dd81bc1419425722c1e582bec9a5badd0ef4cf8bff97106a73f278080f9b2c51cfae7b189ba94c852fdb8006f8cb68d302deddea786c71ccbbffdac3914bc43c494619be5d8672e26b19cee8800a4050355b30362e49dd7c2cd86a7f26e9856905c04a65b156406dee45f51c5a7a3bd8ea5c3a7d039e1ecff142095bf5fd81da4088353fce4a448780bca5f24cd9f22af5e98c4d178ead2b062b5ef9119b0934c8c105c7aac0da84f7b1a4bd8c1f9fa0aaf58cc6c3d31a078c9d29e4040e78f01e04c09b7ea6f3eee86535781005ccca14d1adf53012d5b58458305f1f2ab5cfbade463a1a7ca4f2ef12e09d228b972effc62746dafae04d4de75c9bf2903d1ba22c92fe7ff2db1925c216a4a8559b5f986a5e53f372befccfd95c9413df60985d129fb7e62546db5fac91127341eafdf731206d76cc4954bde97622eac9d8fd2f1d784ea2029250db44292f1a4427750c140a9355d85d9ccb57156a3e9f04e394cc0b4ef0ea340686b6da6e511ee207d62c81a7d4af4b4d1e02a18edcb60b3af02cea3d37160f3443a946de7793edb0d163c574bd6f4b014c1ce01f8dfdbf0e4d76b5ff917f0ef7ed694aec8c6a60776617789bc4e6f6ab814f8be4268a86bb7bcb54ba8cb72ec31a10d2afe4932a3b5c21db3afd22550c14d263cb7fcfd4a2191d9df8b16851d8d19c69c4f68e2bd562bc8efc91aa6935a809d15e70fd8fe91613062086af8e4577bad0e7f1be7ce8bd580340922b4d6322e9bf488b6dab8ac54e12c53c3fae9c90b507bf743dcd80ea34a645d3e3024051a141d21853072865e40188ad89dfcc75f3a552494ca6ac2c13bb01aca46fbfa2a65829aefb3e04f6c82823e5bcfb2f724e05ef1fe96c13d85447fae61144a8090eced9f98d70b1b641352d5111347b189e09aa5a45991e09ce1762a9b8e2cb342e6cd81a3bd026f6fb12130b2051a61b0af57029ce5df4598dbcd4497efb2bc057d871d601d36647a08d29f20554d4f1766bd66e62636107a6485848ab872005136cc8ad667d7ab39151998541b9d5b8bac4a09571faca8b955aa5775e93580420857b5fffc2e496787439cd6c3f50e75cb76d7e109e3adea2d9c9f3a0b70ad291aed4e66abe9afd7df371e7861a35c86861df5e4837c05c634342e811f522e4c10426da39fd785f306ec0c278d5f163323e645dbf81f6ee8d3aec739dd72db3c28f97e2766848d8cf023b0477cd9571c94af07f4a5ad67f551c2b9694a9cb08dee229ce7081b936781c3e102ceca4449a21421bd47b67e2d6bebbe99a75e2548ec0f4743342b82b820cb9653c09be0f5d5d771c41b0dc4b019e77fb68bd1cfd3065240f2eb1e2b054ccbdce7d8581e29ab62990b819a992c95851d94d5272d79305488c799d539df1e37f7e57efdac94be1d46c8b274eee79161f08c042f5e2a8ca42ae547038414194fc24764680c15f1d11e5b067290c1f144920b407b0a07340dde7f4cc19f6335d66811263c11bb541836810a61abcc8b8e0a43c922f083c23e19f22ea40ddea5bf4bb39eac6bf4e85fab4f60f6024ee3cf06b2bae8dfb3480bf61dd98a809e4adb18bf1e35ed884ba81565f5f15a0dc0fa45641daf08f3101c66e2ad51014822a486b45214a70108e56578bf17beddcbde011227d4e45866c4995230cd15be46f5c35b956fbd5f9d11a312aef6ecbd693a96dd4ebac5467770c725a46b7a463357424e6883f5b032f751d7b428a36f85fa2cf13158e80b174bfb70179cffad7f6a9730db86b10e14d6f9e1587a711a5548d285113140936140c103cb21e49f09c114f5a766e00e818e410fc48d9b5fe25de7b2fa216e899d0e313b926bed98939164e758909370c49bf304b65d3b03e8b9602183268e4887deef9d59b69bc1e623e226e125ae9ccecc95389fd75d6389fd3534e91fef744b9e5fa77ea95e8a917fa6caa8c95eaa2920edff008674ae3bea152330cb5f"}, {0xc5, 0x0, "4ea4c93945de72a7087a358e110601e95eb217367d5026a5068161b84475880550450ac5c9d7068f713d07083fac9f92719fb6e86d0d2fa1cd71abe6591c3809963b82dde0198212b7a6d75af67f646cd20b60cb09edc18deb1911e4d3cfdf59f2478f243366fdfbbb76a28b1f3809422695ca6a983d043f8f00cf9d1d5b192d0ddb3291e5ec9b9321f126156bd304dd108fd2fe878877a0c77739e661c2812c2def93e82abf44bf0a184a1aec361ab2d62b97831eb125390e8609c4c44d628dd9"}, {0xe4, 0x0, "9edf1e30bb4d66cea7a112479e2c23d7b0e6563f4f3b41f8b2dd3c24ec76b34c44999df534e04569fa66190e6b4fce238ae745b2d092b8089f39c1a0eaa985a4fb3b604287b320ac1c1923fa7154c84f223cc9f8fdf8cc2af8308d6b91bcf5c804c45271764a17efc5e9fc5393ed95d08ac07850f1501335ca781df23d01c385cd4dd6bbf9f78e6f812efbf14843d7267e9fc2bf9ae8775c6111bdd454827090a113a2921a19ca38489f70b1255b03357825cfa0ce094fb98a39103c5410605c9999ae4c606dafc16ec724fa989bcc7ccaea4ee7389e8532f9a8488ad60656c9"}, {0x2c, 0x0, "6cdeb2993655d05f18e356b17618f2236165e7a7314fd6d817edb5e200c0bf951e9abe2fbb084b09"}]}, @NL80211_NAN_FUNC_INSTANCE_ID={0x5, 0xf, 0xff}, @NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE={0x4}, @NL80211_NAN_FUNC_INSTANCE_ID={0x5, 0xf, 0x2}, @NL80211_NAN_FUNC_TTL={0x8}, @NL80211_NAN_FUNC_TERM_REASON={0x5, 0x10, 0x80}, @NL80211_NAN_FUNC_SRF={0x2c, 0xc, 0x0, 0x1, [@NL80211_NAN_SRF_MAC_ADDRS={0x28, 0x4, 0x0, 0x1, [{0xa, 0x6, @device_b}, {0xa, 0x6, @broadcast}, {0xa, 0x6, @device_b}]}]}]}, @NL80211_ATTR_NAN_FUNC={0x326c, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_TX_MATCH_FILTER={0x325c, 0xe, 0x0, 0x1, [{0xaf, 0x0, "7603627795ccc562639807ebcf1bb92afdeee341e6c2e8779644925ade256c3c9a328ad6fb1a710035cbff91a179ecd9a9fd1935c36f929d30d0d3c42b8d224acd861af74eabee7846c0c4d40ad2d39636a795034a5e8f523e98e47b77ee3209c4ea63d6a80eb5ee4bfcd8c724c11e8ffd670a5a33ba89e7cb0402a6d879b54e8f819025412e1dea9ecbb4a856dff31757c2f835a0fb3bbe0c8c7de5f5927fe0526decba7d429a6e2acec6"}, {0xf5, 0x0, "f471018f5db37ab3eb3d963adcef7f3da187a236742ef09105e10295f56e3065d793cf861daf934bb03567febfae8e1859085705256b07092a7cb8698ac5b0066d1a6a819de8e2903ae645d456e0b202c5e4af1d3cf0dd39b05dbe6deadf2e2892cc43b2b2d7c47740a0bcf4628267fec49ae418222b2ce2ddb053feaaad49f723dfe55b69b423103af66be93a261ee7150a40a0e8e31baeb753cb4419f3dd4487977f18f01bd6e7a9d32c5591009ad75b88190b4d624d553c3aec77690dbebcca3d3b5427bc447f6668ef16c9e847ebdcd3220451c2290b16c6f64beab0a033ee51402b0db98b7ffb5ca0092bc66f942a"}, {0x1004, 0x0, "34835d7d3ea240f9c7f806210dbbc3ccfb25a83b0a1b2aa0cdef8ba2be62fc0c74e87b0f372fd6a96b4927ef6edad4f960e93a4d6cd89b4b380745fb50f7f3fc612c810606c617a305408f71fb7a678b53ae3a79529180787b92062ddaffa037a6124b42314e67f8ee18b2d543733aca18aeac7354a615d817fb80df0391837c5accefab7740c3361c663d7fa663e911a3d16eafb7fbfd8be154da9bb908f096612f66d1f310bc9e0ce36778f9caaf7bf265258611879c919e5348e90f15e4b57d3a7fb0bffb704b2a98c63fcaffcd35dae499ce94cb9dd64958ef5413366f98bc7a4a66fa9090b5c1f1e9f509e673e36059dbe98b21d90cfb6dba09498fd6fb32d13fc031aadbfe5ca63cbffda072debd721c41f8b59173028ce269f8b5c979bb472280022edd4830cb5696fcf11c86f440ed7db60fa98cf8facbb814b009f1e3ffb4eff6c3b88f6290ca3e30f1f22eba6eb9ffecfb59978457ad7b2c79bd02fa7e7c01939302d56a700308bd37b21aea924fe27d0e3de6368fa0540bb7a12a5b1d90af094a15453eee8f5065204017c80b0156a937ef524f766f9485cbcff11acd4e271842c1ad914e6f441c56f1d3279b16aca64af06fa0d1c7169536bb8cb5a3c2e3f4fc67cbba31208b9bc2eca82dbdda3ca4217dd84aef32aa57ec2bf918b895eccd3f78e6cd6d38d4af7ceb92a9f771b64f35b6ae9dd7fc2996f2c98e9217ada62ea415b65082043a2139aaace2dba56c15c2aa75d6b72e55cb4a03c033f9ac09b962c35030cdca1ebd1f720ef921b01197cc1624340c9e799b4eb445910b06e3c9a0c049bfe74c0ce422699471df5c55f8218928238d8a20517f5c27b217ebf7a22cf5218f8a79bb36f046b827a2b9871dbd33d0c5f513c16aba44270366a1861154b8a9305e7f0e2edfb10214966bfd87a5964e4d83eae047591da2444a11071cc1dbf592dee86a0fed5723a05446a0b899ba3c40987c4944bc8d97e572de48fa0d43df8852a60b8ad000d33a621717890ad57ec73b10231d1f3f47751d69527d68589a3e876ed80d40fdcecb86674de7caca593aa808f1dda0134cc210c964c70bd3c291044ff5f4456dbcf4b79ebf2ecb36b40a996c144f05ef28e7628b6467860ed50e9cf6f8559880dda4ccc841d456380da82022dd542cb82e884388aaa12781d8161d02a75f0e32149f6cf59105a2acbbb77af0959bba1e9b66b19f8d00d320e5ce604d87c0c35d1a99cf58e4ac33a0f8ad72f37171006901004a23bcb5fa05639b1b8c0fb386403968f0e45796bbe0b0a4fb1793bf37d19402c98661c04034f9de17c11bd13a88d711fd49fd0376585f4d405a14e3ccef51a11d56da33bb6f24ac43a03980f7d7782934555b5738f4796e28a6b2c22bfb5cf1ca1121629e4f136d578b76445e3707527673128a6dbaa711ad1cf4a4dd31179c19ae808fa8785ba8aaec2548cf733ae7d8bc6fafb87b7394591be52bafd22360b79b92bb9597f0e52a2507d63cae1de6c19f3086e55f58c440474de4819298953ab996804d3c057ae1f5d25a3fbe6226f9fad7e057d61eb012479899299dc42c4c1323361a59fd3ebcb411cf466701760c1db550ab49f79dfdb618d2c383901445d912467083d1c57790b091e30e6223b05bba88cc1f39703a95275e68ccd1446fd4adf85604a098f008fbb628cc42745e1e7e83496958876937139a2e613beffdf4ec2af997e7e9c6fc90042a8517f45aa47397678c341abf050af3c51fdadecbbb67af0fe124d8ed37d591732e0ff25cc799c6f9ed9d975737d3cf61017b51637e90d465624d86f9182be1fc00d26ce3ba671a49e5b8f324f331e2d56658adc521b67cf29703c53b64a5b62c830c8577cf259c91135f2cf54e42271583233a4f141c98de809de03319558ee1505e1ffd87a1604aa777ad83d3d3726e8c8072ef5ec2e3b31a672300083cde07e5917cca0b41ef6ccf6396aad00417be6f4e630270853c5e80579393f50cb152a1285ddd87ad687e7d2cf1e755e5dd4a1297a6ab5bfce209a4355773e1f535907c6b3e3a00da4fa512bc1a8885a3b6d4c433f413eb1e52a32f37b8d4f1f8d7f848fb0a47e1a11fcbf1445adc386d906e2b85611716596d9dcb2750a6cfb99134ff87cbc22352228fc08520ef81f60c630831d878bd87d9faf2ccb55973090e573912799b6182062cc4b08de00efcf8d04ea1efc2bdee22896e92fc945e7428b94d908d032178ef716b062b6ced27d1b18874d7969831c4eca580b6b86b93a15e1dd59aad629e8a5386914bfd27be32c0f9ec78cd7d164ad8a64f219aa91ba2e5a974592f5f0d7a5e27aec13fe634ebb02a4649185cc7d7875db48ebbb2a640c5dc55100233f66a9bb74598dbe1da8d44ea3762167307fba484f80ee6b9b0259bac3891a1833b54b82855489f0c7b1ed355a8b8515e37f4a9a25078cf9a54ea1dd53b3f11c93bc99b9acc356fedc3bc5b885d40e3592812a39cb6bcea8dca519fd04f36bcd29e258cd63c61e5ce2e215d0544f69f6f1ba9272f587629ea381fd9a67c8ff6f740d143537935ed6d0e38709228106e878b7b9d14ad77897113267de742fc93365456afbe8851029e523948942c5b496ad088d09543f462417f9b00c07bd19f2f5f2ab18a3cd8ee8b3af4a3da6e39193e3703eda00c8b632808ba339265d0333498602f909a7414cb8bf1083e573a7ae5dcff1261ede926e59c606ebdafbe183df958ebe689aaddfed9bbc3e816a5241fccd5eb399879b23070bcdea20934eab7d352a21b327be2b92c1fb11c1f28f06366ef6e204b5550dbea830464d273c3934da3c30c39fa48d3b113596c393eb096059a4af32e602a7b9f155e84e63ac891c2a78fcf8e9e12d06a14633777fb91b9b5a8cac22eaf43da04be9ec9447ef779bfc1bbe34ae0fccca10ce30d9a907b1449e4007a0c4e26e54406816b9d70f10fa7576de26e8aaff701815202495a13eda3f122d60f2f21bb308639cf5fee7f9b8c604856b63376584ee2a43198f48e27095a1d7d3f964cf79a912eb6530a9a9b4463c89d2eed996021d908d482288d215722cfc18c2ed289f4453e99cc5a5bf3d54d6b198c59d64eb64de8e39545574a01e5fe6b9c411570a038d89983c408c2a91f5b7c8495a1706230b5cb1bd7b20002acf9f13dcc24fe5c12c825754e88fedec5161de28b3b84c79bad4aaeead08b6ad400789bf5adef1476efae7c3c72a701a151908c09410509e40095e6fcadcf8d662b87de7458c3f505c09cc8197ecd0d6ed01f0acebbbff9d714478196dc2e6e68640c5b197b50b7bee21f4dab5ab7dee57eccb07b3ceaa2a08fdeac81ca1a224af3239f59177948a152a239062db21330c85e38f4fe4fdd8e8c7dc6ff5e9a45b48fa0ccdf1eae78288920c08febcff84cad97b22d035a2f0a2456c6c1922617e2777514b75eac869ec14bd1155ee27806e057138ecd25c23cda6af516c52c7ba5e3af0def9b56e9b70e63b43475b674b2703a448bcd5065431247d29c023fc696bf6808e8beaa2b96c31a9b4e0b4a61323c93665298b0ef6451205ff03464fdf12603060970d7e436585d08c627c9e455bb8a2278f487abd85f0654a05b3e7cecdaea093e3ab2c1e78709cad1b481222f825e03c02e84e2a722dfc4b97ce4bc7b8e1c755ba9a642fd3ce6ba452929d232759d07a4ed2c64102a1b5efd425f5128d8ad2ddaf6dc000024751874128cc1b11a81c2b12a818eacd8ca9dcabfe25adef3f60e7ccf020e7b57d0fbbd791d5c0097d981c8acbfba5c3523b13ca435b3f9c7bae6d9134860b175c1c6b8d13a7d84c4e6ffc4af602ed9a10aa5e50302d39addf087344afdabfb0c395974b1518cc3fc9ae38347e9388de8a757435b7e10922fafd1908267e293f965526d3847a28e34ed55a149df83346a4542296f636d30f3c9c238db8df52efe1d7abbe409b1690ab35ddd572725cd19eda35f1028afe2c158cc37e894bf8371e2cb5c63055dd7695f7faaaf9de276b3a2e17cd2b72d1b21c02a27be8a96abcc982d4cb75ba9d29971a8b0df7141f048ead08ad094fed3ab1093b49302a354bfa657d0a44301a3b864b76ee0ffc000950b72c644a0f2ed39f9f61a741f874e48a1e31b97cc502bfdfec4ca3bc8da22c3d967d7ece886c00cf3f3fc19647d9c7b82cf0cf3821a32c5773522c4b5e8f08f214290d2f38571a86440173ef802807bda10d29716339cf915e58584278b3878d239b70ff6061c64c9790131c011c2aea936431254cbbe29e2dcd4ebb27206eabf27e59450291a0448a5b44dd07d457f3c5ba10be86a4d8807588f5d9ecacf99f33340e75faf941917a2f83341de3430ce22181685db1f1d06e399884ed8d2cb447fcd9b299b1d4071483d54da33a6914ef0ecc733e96aaf8712c3d8adefe7cb2c8961b1b54dd0d69f7a1888c4a79a4d50b1f854b4eab95dcd88873b3eda025a1347b30e202fdb8dc1a3f121a1e7470a60dc274866cf754b3cb9259f57c6a92e0d5a60005448df4872596e717ec616087d1e9001bf1bfb5d1397e0287e74a8b8d980126b44aaf3dff2522cffc4b60d66a895551c94a5a0f36b166a98cca4db4a18a5d0b5f2f526930791b48892a3e3097490b3d56bf79df5e59226c1ec1c47e660e5da78c64d92780fbcef1c4c63e7c7b077f81f12d5ee01040d54157ba91e5025215ea3df82473e103ca38d099ad609f268e5917323ab2efc9beae16ccfc6db88117e9726170bcfee9765016ae2d1381eb2b7143eb8d00a9612911dd80f9eebd3785f503464dc3471c0ed50cddcee0546e76d6b621e5783337dd23fae91c188f0b0c2210397ac122905711cfbc24ce52570aab86cf8983b0d6c528e03179aeaebdcaede7581f035766478b0360293425c5a11bbaa26e151f02338dfb26e0e01d908ef25ff92c60bf1c82ae2cbd2344f0faa24556de863589761322bc0c54b18d86fd9f50f82de99e9868b8a201aec7c2d343c9c061df22458d2cd7d62b466bd704b7d9b5b2b0490e9e1ac8a3f8997cab66cd95d93f91309ae3280a5043cf3090a414aeca5837e52421b4b4c17fc25f961f8b875d67b7b5d2395c0cb194213a943a977dc988f8775a8feccaaf32e7e7012cb24d262e540edabc282187371cc915f0446083e58bd18b04a60619a1e8fda46758347ba82ede48d011e8c1a9d75e13986cfcd1af7386f262bb1131de2c28faa08c647fc23b4b2f5c38dc0f4cd8e9064f30bd45489380a834ac12dc1a9a9e9dad8a4e2c7e03178483a3c26a01ecec0cbbe0bc7097afc81cb08abfd874dbc5fb2d25ca40fb9ef9394780469bdce2d4897c3b84585487525fb8882d41308d0abf5ffb740c485ce1a530f25e251ca49f9d78d3490e5e665657dc6434b4479bde4dc014c3cb756891828ca0a2affe741714ac8d81d0887d9065cda31455b11a29b9f5f5ddf914576e968acb417f1f2473e9e31adaa6afd0f83efd71e526efd4b8739f67fe3d435856c07cfbfb9c63b15de56ed44eb20f45e50a99bdfce7c5b387c09582458dd2c5ac1260560dc0bb96eb4fca51862ca02c0fd20308e2726f1a7674a1f1843f0c526350a100d1ee3e4bd4aa128a0ed5f07f2a2495bc5f8a2c505ac421c084a8d2494ce1c14679a3d5f957d613a29d947a414a238368a0a028e2314a838296ee560fe2fff9e47598f48d5ac0f74f3603bbbcb19990694ff2b09b353b8427b253d1e8382914e1686ebaef2bc88a4de2dc2b5ba457ecbbf5ce5e40ca653e949dfb7c6375689b6a6f6ba537a97eccb"}, {0x1004, 0x0, "7ae053add5fc3337511b6f1d45056bdf70688e06f10aa72a7b0b79546d616fde606ff437d532dd6f7472dbceb3c85d216756bc558007d4babbd2b792da0fd8c66f4eb35afe425e05cb4b2f4ad8e433fe0c822941e30a706443be5345c9dc5b7f9cdd715277d930b3cfacb51befde4660e393e0fba769399aea11c2fbb0d3783bcf33d7bb014d6154d016c6fa02d39ff59e65cc7339696e5665b1892546a34b3d44197d7602b8cc3adcf2e581e45b3488a1a457c2a5a777705d9b770544651ed0245bb0b2653c51d77fb5d6bcf083ef6ec1dc26c688cdb9991846c416cfae762807cd537cd8309598cc952d86a50df32e037fbbf15f7ab3a4d7645fb0525ab448035e34b42d4376b22d69496f3506be10f7f3e4bc6aa4297bce14d4b4a28e7b90dbf8eb6219f9db53207bc2b919f2308a326f95d6889f7bd74602a76cb3992ec39f2e9a089afac5b996bc1ef34a3198f0ee3958dd59e683d05093244d525fbd3a5ae6b36f9cf5ad0c03a21b32d60f5345e84992884369206e5101596086ededca4fbbb1336aa5b5c0d4e190a5cfe658e5429ef390813c6240abbd5bb21bf631f09f39449af094a2eb60bed5e20273fd0d6349795a81bc268036820b484ce71c31a9d2327ee8964edfba7cb3baf50a8c53da3568ce954af99c79a755c31bf87591b81ca21f684ed366dc354f0ea4f44245451b35edb938c512fa06be06cd49229667390ac5f3ed9ec74d0f8ecd96b359e447a1a68e43751923c2a25da9aaf1d1d7aafd87e4e773577c34108ff9f2c011fe222a0f714ec7eb97dbc459ef7bcfad7509fd2ef1bb6dab222b304c862379d1844c56d490c2ed755ca561e26bc2c79313d041e62eda8c1dd4ebbfb16952be3e2da2e9eca579432029177cf7899446eeb3b5dc8067bb20d995e02ccf0d28e40f54200c11323b3e5f71938b746bb4a7acc733f5f8f1d2e0422d8cda0733964ff53d72c97b28a561f8e5a9b3039fbe5ef39aead59bf133b16ff62ceb9dfa26924700c48acddae8223139f17c77648d6e455b87b2f16a1cf79fcab340a25796bbed13f78490db88d6a53918655a96b2ef31875fc29238a68572a104df88a36101d2c33abefbb06d6b5efb63c415d232b4837e3ff7530cca944d98d8985f4e2c9a5f92b4d0c310b2a10d70c3f8275fa869e918cc76a6e7a2e360b82d094bfffd6ffeb0f4c4ee8d6c6e1183868ae09ee1d7c1d4e3810a02d4399fa2c6eed1187180d88b06b5fe51d20408ebe8c07453f7ce4f1a268e4c069f559640a4d936117cc4d020224ab3090737f81f97889882a756a7ae82ba14ab2c00f7f52db17ebe9c4d989b018cd352d756b093c1b0275a92548950242638171d526dfc88c5e6daae11a3dce37d5ede5a5320c0f7864b24e7135c96bb76bd377f9ee2051b8222474ae65387fa7a4373a67e374a870ef2bd4ec8ab8c4d3b1e806f2ac105f7ed485c09affc95d0d81c13f5cc05a9240f27d48a7e337b966d3de447bc4b1878167f0adcbf085eb3a8c6e956c431c7402e5c7a46a12b18af56ef2b5f8508eaa51207cc54ebae2e3401645f2067f65abeec0f18491f0565eafe89e27b0a365f92155776523abc0975890f4d78ed5c614524977b0a435782888e99e5c52a813cfc78ba671409cc724435ff9bce8bec7204fec9b1e12a39da1d513c6e76b359234fe30fbcfc78dbf404574bd798a15c9d57101d4186306069dde7baaddef52a9c5372197a18d1822c3910cbb15b3e7b8479804e7b209cc558b864e519ff34e801edc7947409f6687da3cda8f876df0f75908fedd6eff7ae867df26b1653e9acc3248f41880c43051d55c863c3e168106ab9fa8c06bbfd4ae76a6cc94fc564c33295c20a4d67d17ef8056448260678f53c95f07b0c79211a8f10a412e3e0f58ee407e286f23634b4239c3f31780205be2050ffa8b9bb86720df0c73a0ae49309fa39468f711a1be34023e6aef74ed9069923a7e8892bd5b8fb00c995dae2c68635faa472c31569d60b534c9f4c87d29a443423d762d0fd2298e8eb1da27f2e431a7b4ffdc621dfdb2e9e0cdfa8dd8836e0ad3082f094be4cbe750f5a1f103844238c28298ec15ebb661edb398db1e7e1135cc7c6114868eba8ba86166a07f27f205eaf91cb3ff1bce7a36c6dec50f753808986493bcab1a5eb38b778d5f86ed43d270f4e8a248793af135045436c037c6d744cead4dd96942a448de081164f65982f9fd53a185ed92e65c84b24a3e625bbb9e0e6f261c4683a6ec39cc7c4e97d11bfb737c6f3cca914095417b961183f15f3f9a0d4bae1c1025ebbc0a0a3c40ab60d985cb269b81b43e60ddb2fd7ea3c2e09611b19ef4e9779ad60caf5b399f27eb0a2b2c44933346ca4c7b2ec9e138ec763561fb965418185614378fed18fbd40573cef2c4d7e2b579a4c4a3e0a758802068b6846e62644c52c28ef5ab214e7c8f504a7d52a50c7c247855cd30d6d9a8a4723a433d118e044f5b8c1feb73223dd8b162eda1b15da30deba22e4f6f365831f286172f579cbda39dfdbe39fa91aa364984246b4a5a5aa43838f1177550c2b4d4450d4bb84f17197cdfd2338979fcfe08dc603a55fc2ce3a0f3f3bbf92d3de187e1bf5d7ddb792924ae24a588be713824d54efe9ca410b0717bc13a6d35f0ea1ad8e26bda1532607756a6ba20edc64a53582ad18c0ff17cac17fa109b32ec4b19a9f17b0b3a086afb05da1949a1dd1f014af82eb6d469dddf587d16ea9d6876e2baf2be663c34411b7aa93e12df896a9ea4955ee1a651ec493bb7a0490af0d3f00f5abb2c08c1c1ed5572fd11370c24895fc8362c96668abdb1f3e34b8ae0a70dd8ed2aae34cc88bdd5f3e9994a2942ebae7ba9da7233490940448d1527758016379fed83eaec21bfc5ca213390ee1d31cef8252d0a769e71887b86bd589c8d3e689d60400641bb99da39f49bc78985477d3123276eb104dd05aaf0a19aafc97a69f0f6b91087d54517a462d3eb3328eaa495ae694c55afe00373242ac0b7099cc891fa08eb579c380edb5817b10871eef37b2ae515166764db8d66f1e7b50b08f096043adea43a5aa4396f06e4c5e6486d5b77689e1054ffbd40087b956d7b2d606104653a7b46079bd4bbaecba953ea5f2a2f88f78cc9828700cac2042eb904abf0436af1cc3d984335e3e0e47bda69cb35e63cd047229fa042e1a0d417a2363afebd1f94214c976d1d2d726375ead23a2d706de4ff0903ec9fe52285b06ea4d734dfc1f2c85770893d6d88e92ce94f090c77d0496490f663a67179b3b146c3c63d5a99695d492d7733acd529e7fcc7abcb427cbc2aba11671b10de346c0bcf8aaa42a13bae0c80ece12e22ef73613c581bb2545c2e7387736703a92c2d25aef1d3ed3b26fff39d9e4d6dc5d4f6f09db123dc54639f9fd5291640b8ea75ecc6fc4f236a0c2e8347470f16d0fee5bde7793afbf067b2553e5e50228c44c65dd7f7cac952d1b744f31462d8b6eccd82407c6efdb885fafcb1c8c641e1afb5b43cdccaf444bb580410294121b8985e82012f7d7c436c7e68559263d126dd3f85745b463110454b322869b98c937df328ed2e69a591796200950473f7caeaea58a5d4f893bc92360a73bd2aa2b4abe05f134a26167613df01833839767879cd2ce8a9c42870921b51e67960b7b885d84aa68bfc69e10fe41afb115a7f37b5d0f5c5a4d669773944e8900550b46b077757aa4b2484b4e474b75cd579f645987f89a8cc45afad408dee3951949aa497396ef49726f0f7a1b5617c1914fac6525235692b2163e2962f397a0f2db218426fbd59f81f66922b010b98f237b0b180b85027e87fe40c884d077cd2c1341dcf7da0f26d962415b881974866488da97de65a4ae27677e9002222fb8d20edf2fa2194a7a7f7b0195b22ccdfad9033196da357829733a84af796c91c8ef17ab5ecc377f2dfc2aecf309a3aff7872252200f910895e32ded00ccf79ac69b022c3644ed4b7cff4718b396bc8918477ecb6e354e4fb038d911832417754c91c2a6ae45426e81e900108b7c4baf2396b019bd0280e8595490bfe024c8b78184ecce2ada0a32ff325345e664248c53ffa733a2b662c3eef1af6777d3bf5308a4302ef6271be92a54425e901d18441dfc31e4e65ddfd2521f1c05a44fae2d8afb5fa24be5f29e1246d9e201d503090852ffbe6844e3f38043ac0a2402791f88a105aa024f1f4b8339ac4403afbc47ad3e67a504ae52ca2c65ad14b05ac2f2585d40e62907e841b6ecedaeb8890075c11ddd9d868d6e890e6db61cc47ee6a03eeb461220f2b8ad0bd8324000d5cc5177cb18dcf8c3a9b6fbda9257076758d5f52513911ff83399cf85beb64cb09814272bba1d279187ba182c4492ce34d7bf1d2b6208505655614788fc0fd86aa9709b89a43079a69d8722e4fb04643f9fd24abc60e8f8ef9053cef3ada856012e18ffc1009b7dcf656781886d1d69470c5f5ffe2af2f1a7a89666505810a568ecf2d6a00bb7cac8f6a6856ddb4c80453c7fda2977b9426a07489118bd2c04e6fe5f4232efda005a424ceb79dd4c764f5f045f1398af36ddbf87a6c88ffa526f77477727055e31fbeaab0fdd33804de1935160f7e9b0199a9e9c3c9c74283007718384a80aa60b4d5e7af3cd2a1710ab21a0679c3e61c382630e0b05d7d8ccd43875c4baf65f1da5f537340919fbc4d04c9a7e8a0cf4d3d2d3d0905d1beee021dbdf397effaa6f859de2c037034eb86fe051e6350ae9bf41dc0239932eda45fb02d298205df9e286cf7fd4810dac8945fb7260b23503fcb025ca844cd1ee0d08ee97596d0f80f78af82536fce0ae744e9bf5b302ed37df6a1be267c8a120b326d024a7ddc999273ff758ce4061db35bcdd38839946b9fd0c36788f857d67c8cbf45f168b4234bbc353609c22d89e51cc9e80e42f0119b50b8c417e3fbfc4b09bdcb20307463a6699a1ad78552f07ce11c380eba755fb864de414ff523cc49e6525b04d91dccf0df96cf0bb59a21977de35fc7fe34b558bfdeb71c0cdb02bec13b529f3675ba6a6a775e351b710fbda45f3c016ca64f9ae3cf17871e14e1caa8117f9d9e53011a3259d00353d72cc48a214343d796429b258c653ceade5bcd8b9e4a16ec4d291762dcaeb6ff0aff2592b9b40bddf327dec9b33da5706c20d815697733d788e2dc7a66720a416a4d95566dde4bc6cfe2e782b23c7aaf4b22d5e0d62c2206e1f14c96625330fac5b70558be5ee500ae61aef7da03ee0cb4f3a45de2d79c228c9c0609a93595d8a8ae1a7689d3f1c76733b234c1622534acb2f9f7fe59d41e5cb7ee91a720ecaeb5c290cbdfa3bb02ef937e20e2f07fdd166d46fba039a20f65f1fc47df36a81db9ebc09dae500dac54a1e3a1541fe097886a6ff763e782e6ebe4bb0cd4ad7eb9e19267a4c17153c8b179184652e1cabe1b1626b528c6be71c2995f498e80156a5629bfd3dd377f0c29549ab41c1da9caa66a3d3ba2598dd471f707610d2ba21f8c4f567f9594c3ead259613d93bd6f147c87cc791a060fbb43e5023e2d268e4710287ddcdf015fd496c62ff9a77f77ec00484fa31451662bc176eb3160de4feae436b9d3f5e49f82a57de56a5685fc73d86a06b575d7e0fad04c8a1bffc74c0ed78d97f41508d2cf72bc671866417a52e7897e996fff6ad2bf66ac51b724d1e34f8407d3a75999f2e1caae904fddad66b0c104fdce1a2197ac72077d967fe475fad9b914df3873366b05c2bfaf582f0ff436687fe3afb8b1cf906e28e76de20e216d7739df6"}, {0x78, 0x0, "563c0fc916aa62cac157fe1b1c83c57e2b2513a771dbe87f732ed278123d18afe3d9ade8539269000023ee2109cd92a34317327c333ec3dd8208b7a57c289daa6e62819287d124b1091d234db39954cc3d89bc8d8d0142a3c2bb51b72a5faded8d145a4349328dad09f4c7cafa2e5a10879d9bad"}, {0x2b, 0x0, "0e668290c6e5cac67a69dc92e46a1c2481e0cc0dcbbcce0c2091d84f7730e0cc07981a5d422bf1"}, {0x1004, 0x0, "83faf92f16b48e05ba24f26cd8a7092d4a07cefdc77abc63ab596f96e9e31d41d162574ddffc9507bf43e6100e370c8732db629b34cb31acff95b79e171847ca9799f279bfc6b5affc2711f6bf54530d7ae0eacf253e5672ff581d52f9b0ca29eb12b557593b370872ae718fc94ad9b573d36e87bc92af4915bba88d5a2d1178d8b0583a77c8f36f715ddc2dd6432fc4f14f72dbe624c9e654ebcdb884163cf5b9e5c353c080e6143b734d78b93a6c30a1f89efd203260d8cb2bd9316ca5686f3e64adf54f2639d353f5a2867616b1e8accd8bebdc6cb88c90780652497738579b945f084ca743caaf375cda98358bd557d9d2167ece1f7a3361cfa748f6822017f3f7716c6794cf9c934ed3353d7ec57d0ad8c7202bb2d8721d248de4d025c932cf020043dedd787b1a0d85a3cee1cb853cff96ab29f4c05e9d998b796dff4a0ed347baf9b2dadfb0c736769a8cd93542701934ca4cf3acdbc398975bd6fa818611ca81cf1beb82686a1d38c446ceff222c8ff0ccf2da66251d97768ca42144c283234b695eab2910363281f4597471257341a62dfefc5a1fcd89d72259332e0758d77115e2b0e5e05ace5b2e63361f0b91596049e328169cafc98987825017936bbaf6fc3b4ee39e4956ff4514174457bed8dcc8c73877eb03d87b345f694452acceafd9fd76851f33bb1e85c5aa771b781668c0f2246b675aa5bf5c2bbd5cf909e2f039cb82b9ceff9f5964d6848462bab5b2c22492f37c8a20632e7987b0532a13cd8fea26e03283a4c1299105165580f61167c56ea35e45e088ef7f60c536a16081777836bf7c2caaba1d52bc767aee9f4e5314101d0aa22b0b0fef075c303c9f2fe85852aed1cd30713e65044489550f92fb8b7f96dcd800071be1879f6179796fed61f999a90b2ea5ae992b5420241f57179a0babbec7d44a9a3c240c0a18ed006de3aef98130c4482b7567ad0ff227fcaf6c54af3dfdacc70bf88c2231c1e8b29b81ec9bc40e3e93d46037c4eb01f37688ab84639e46d7b12c568ceff4b0f84fa5bb36a9d4c830afbf63235a93c487b4d3a3e3ca71eceb4034c1ba635ddeccd7e9a6065fdfb4d25ef9c95c5e549806032299a44de5a8300cfecd45c3e810b004d8fcf8e5e91f109779df62337edf15f0394777b65839d5ed3861e8a0abb58943b9aa901edaba2079bd7a55b79f09b7de5097f269214cd4f2b19f72d369715f0cb6e7e3adb0597561488eb585670804c05b9b30c5cbf55b1441642e37148c555270d804fab0e95ea4d5fdad0cdc61102498e12258374397a712ade3392767df180af179bc73f53d6fd67371677c234cb84d609089bc1ac8201e25f7edbfda73f6189aeebd195b36700ddaf7ae4fc0b2b5a576e712b85b85cb37f6a5fa480e4d5cd534d5959ad0c8cb0ba1c7b2623556264ea11556765e9f5308f3922ab26a369d978388c3243f471aa36be0c6f5b63f16bb12bca30fa93e5ae04ae1efca0e8e033f717d42973ca7762016119c81c0ed79cc1073e4e8c19a44f6e324b4df4c8eefedb0cd96e913575ab3e3d80419c21e4935dd16f77980797ca47ad74ec182f9f1aad250c169c1a539c83523d58e1f24223048da5f37d1bda3dad03e08b07bd593ab827b63486fb784a5467b84b70a9dbc18df7c623f91724d2335c3e3ae3ce3889ccfa19e85e1fdb4facf235d27c6b6322c1b0e845e9e004d5edecfa1a41c5335109f0e6157ec8b0685236a8142ce6c6f829731cb9619625252947a5928c8309f179e10911ee6013364624ac51e676664f7e0df945c6e1b630730add2cb4f36c309fc9a97873ba6cac96fa0a11dda66e509eb33c6c0d1065213308e1188dd69da97a8ad81b14e3c12ba180ecdf1bd8516aec4d51b896eedd3ccad05054c7a10923403ba48ac19705aa8193db77967016192d07a3e83d5548b1c6e4735e2e59907ef3c3df5ab4bde734600d92ce6c8851c8b4e2035699acea4060df80ce53e23fc1e282ec47f486837833c03bce7c66b0fda2238d49d1e5defe58ee72639414e5767a8fd571d5f0a2fc879ed62ed661b331f8f39c3eb59d4af546ca38ccf87d26c190fc8bfddd4ff49db136437aaa8ddafd04165d957b200cc6bb35a7e0d9820dc488791e2b4f4bd374fffa156ba39ecc88139f747d4b68e14e1479c722dfd807156719d538999ddf1d679972af618078323998557b1505bc5f0c15d607b90d17f80f8a94c22f742132d0bdfddd23a930e517eba66dc37197409601257db3f195b4b83596fec523af974945f683ba3a15e334a5a31a64b6c794d3a44f022af0498e51b949f7ecaf0f7f7fd353cec21fb5419acdf4c9fe9a6bfbd28f0a33b74cbc58d0891b8711010eeba17aa7acdd2b7f00d920d17861a8d5f1aa7f1e30876b658bfa8b922e7f47911d2be9200e8578a83347d9f76d796dcaeaaa0c7aee5e657c6066f51a28590929de5784231acf3a903b5f46f00909b78da191a1c14b27f3b88314ca5ae490e37a613e6371289ab5538bbc5e9d1732741e16d13e250939ec1899823d87c29d26b88e304a5c439e330ac8c65f5fbf189e73cd0a61b3b474a4d182331fbdc433c57e0e85a429f2ee8005416b1c33f66854994a8a76408a503d9aaad6110d94dde6b7dd7542531be42a3103c2a17b6dd07b5422922662bb87266aa5acee2e26c4d1636e9eedc62ca89950e8418e25570851d0428850fbd1955fc93fcc72d919adbfc61d8ccf5e160c08b7a8962241b275fe4dc9cc01df7f5dd65ecf3c8dab930f7743578585f6a4b0ad7492839e63df83b80967f1af375e5825f7abf71734ac2b60a23af84ccad766b02e31427a5ba3c533599aadd842770cff0c82ce3b8ef48f8d2fb171cd604db1d8f16ab6a2043cca7fe1d35fa0d7153d702bce1b91c06317d570a5a5b76cfb6aed2e019d1e6c3d6fd81bff58791744b0b5049bc5524d3cff1d2c25034ddc5e324f91e5a880b528f4409c29443d850384fc448dba894783324bd98934afd1f4192cc5be3a4a9e48fdcf34cc573c6532f3eb4fa81d97ea150bbf98cbbc14d5c43bff58944e0259332c81206f7464e58f39c0815072e65054cb2984a0f0762e2f8ac634d11b72e0ac8b44f05c1eb23d1217a1bd6fee3d1106d61595970fc28589a963c98374df980059d70c170bd4882194fa2bd65bdd96507e9337893b456e096e1d678269fbe12346876c74ca0270722413090eba6df17cb4c42efb1555851fa28c0fe5a39fa3e09d557eca308ffdf7a91754ebe658d083846b8d1dbc7fbf6c9de5b373a802ff49d0e2c01aa22095bb60e75d8506a736c54699a663737b93d68f40f053e2c55b46e47ccebdc6c4990451fac2a6a00365460c7eb1da8cc5561fb8d88800ec479079f75062bac769a90be021b647ebb21d2b6fb65d6516a37ff365feb405f77d56f2a37f7ca32d7fc94a690d819bb3fbd69d089a8fb6139e67d40f3f01fc7cb6dcc8b954741f1740f08e5d25710ae22907be833322659e71ce214c48b58011599af1822a3827bd727e0ca014097671a2f66ce1cd45aaf4d20130bae5e26d5481249ea25ed5cfda27270359374d340533059ee31c94e94418288c8adbcbaf30fc10676b028deb0ce4d4d2f6015b3c634f32b357d0bd04503734ae952da9e88a5a28544b9dc38ebcf3de07828581aa9aecbf2aba732dc8577cf80c6b9f18afff624afbf89024544bb5f290d58bc3be9f71b9dad4143e408b37124add43558958b4303fb5ee42018b63da838fe4a69392acbab85f68061862246513f90e33535657ff7d038ba5b5ee2df830b86a9a896834aa561fdfa47ff109ce0b8a0af33a2c6914daeda4b3d3e398a1ecd053ccbc75b43a1f1482eda8cef94519ab12d3ab557062058db80f79a203a4c20c8be0d317fb7e96a12ae5f43c8336aa0c08a84778dad622ee023cba0fea513af14c466543b4d5efc8370fd6460846a1d99e0868a6e5df90d3e368b3ab813a303e484ba9dc5202e67cf0999dad827e8e36bf84d01c0b5f8c9a63f7b8e8d858c9a8b0f405c610aaa6f78316fed41b0d3c24fa17eba67c0ff5a216f7e7cad7ef2c2f749dd30df0df0fb0279b49b9c0d5a52ce561775e4362473042ee7ec0892ecb62322f3bd22937c49b430c0e813ac0787933585e9691f68b9b2f82b83907dfc5fb468349fa8d1d3616b9ff292172047781a8ce8d5eb38b9ed2de9d7b448a0e10065ca1a34d91bf21499f7f409949b85ac55864a904163e317f773da50277f5253b615abf6d62abd1cbdb2d162d21f71ab0c091e8406efe12061dce136405ddafb79da46c434f67eebd7dc8405877be606a0338c31c208d8f443c562717468693c74a98fa81bea452c3f659072569a27678e3c86d0377439510b52857001b9f2e924026067312683159d00efc8aea1913bf9b2e5886eabf5cf5cd42e125fb1e5673622e1d1eac1af30247004bffe36479f7eb13dedf1e584a024e12982e8ea3dba68811d4c680f6ca27ed573ea60537c3f91c2ab995fa7d73526ec1b9025f4252fdfaedf33b55bca10eb8e7ea2531044b6513e682ac458915d64b0e3aef2412ea0355675dff089e5fa3012f18a266d4eb535bd60a577dc1751f9b910aa473dd484f7bfc0755bece8d99859f9fc9778bee237eb4a1075cefaf6d61810b441552bf855b59fa1cfab50df1ba9dbf2d321167aaaad7c0d5581a45937141bbe8fa549eb436bfbe87464f921221e515105c5021a6aaf5fe7af3c4221ac37ffb1aca3bbef269c6e068720df4b006b964ea46c5ab374a97aed159354643868a1ed6ec151a6005f0721d5cda8784059388f97cace7e47bcad502ee3cfed67afaabcd3a1392b24384f020d204d54aabebb02a9d1cda9b3b583dd0161d913e1f9630070ecee084ed11e0da309164f6696da5c40f9b674d05d6846f4b5b6eb7f6a0b2c2145d23b002e6e4737b45493d6184c80bb4d93fcf74ccc591615fce92818fff91d122472d8297b8238f326cb81b9a123574ec468ba7ca82994c3a69ad2c3dc897a93d7734b6b8af3e249306595c8ab28d489cd46843d8a8ad988987ec8f25d2492b4227b45c4e1562848953d512b1eaf5915519e728efc3c4b577cf094fc6f78d05819b93015a535116c5800d37e99d2d11d4fc8f8442174f569414127e1a2d7ab7f67d48dba6daee3937f2b41bc6e286955c8f1d98c90ca29aec1ec3da2cbadf700074328d765c93a74100f52f8220156fa09c868aa088677467259a62f2fbdbb9cbaf1ab131cb50385767613d0c212a10128e7bb34598db998d9732495a83a0e2660ec97b22f5308a3e5db5c8329096269e551ed3d1b602dbb557974009b356af907fc7e1498346982b87abf9b025f4c9951b53484c3da2910294db89c4ac6177c7ea31799b05e855fd492295066309abe4a28b2b4954e4c73a6941679769e690329029cfa1d7b13bf83c991ba7d8392e16a5839a56a59333f998ff761d666ec2d99485d320357293431144a8ef906f08f3b50a47a261b040c622f19e432db27fc15a47d98e6f02046485dea03d375f9c1fa11810ac8c33088edb6405c7bfdceb2410c5dd475052e22cfe30a8ef3d172fa1b71f287be14067d96bd4652a9cea411ea2f64d6b08fa7569272c43d7dd329164f2e9a2600324958eaafdfb5be31d3f3a72847c2552f5a61111acd5d243f04dda4a7a945025e37d7904d8b063ffdab9c9409893c3f29817a0fff373002450637a2bbb102f29a9642959974229c724b3ba1a087539166e440608fe392f98bbfcdf04f017fe0a4133c4a53fc347c88756dfa"}]}, @NL80211_NAN_FUNC_SERVICE_ID={0xa, 0x2, "62f932ebfd00"}]}, @NL80211_ATTR_NAN_FUNC={0x1b0, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_SRF={0x1a4, 0xc, 0x0, 0x1, [@NL80211_NAN_SRF_INCLUDE={0x4}, @NL80211_NAN_SRF_BF={0x103, 0x2, "4d590b1a4998842db4b09554c5065b981bcfcf03d727187399c80387bb2f6e08643471f8f8c40c0764f5429ae20722c079b9c5114f4827662a1b3d40d66260f00bc6c63ee25f0bd4132051b39a5911c15daa1364e07907c4298bb44b8798bcd0805f7d693be0247becf3d9e374854ba6f8e997b9536714295390eadde908d5e4c6c8842b6b4ddd27869ce481b5d88d7ede1b4e4ebc980a1c400c20cc7f0e0e3dd347e6e346ad0796f7b464fdb492c3b670f3d4b62e67edbee1c0294ececeb7f6200cb9a96a36343e7474225cd5e1e04affbeb484248bcc07b11fba870130d3e848f918a7d7263edef15bbee78872812988581a7b7c4897642bf2f97e36e79d"}, @NL80211_NAN_SRF_BF_IDX={0x5, 0x3, 0x7f}, @NL80211_NAN_SRF_MAC_ADDRS={0x10, 0x4, 0x0, 0x1, [{0xa, 0x6, @device_b}]}, @NL80211_NAN_SRF_MAC_ADDRS={0x70, 0x4, 0x0, 0x1, [{0xa, 0x6, @broadcast}, {0xa}, {0xa, 0x6, @broadcast}, {0xa, 0x6, @device_b}, {0xa, 0x6, @broadcast}, {0xa, 0x6, @broadcast}, {0xa}, {0xa, 0x6, @device_b}, {0xa, 0x6, @broadcast}]}, @NL80211_NAN_SRF_BF_IDX={0x5, 0x3, 0x26}, @NL80211_NAN_SRF_INCLUDE={0x4}, @NL80211_NAN_SRF_INCLUDE={0x4}]}, @NL80211_NAN_FUNC_TYPE={0x5, 0x1, 0x2}]}, @NL80211_ATTR_NAN_FUNC={0xc, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_FOLLOW_UP_ID={0x5, 0x6, 0x1}]}, @NL80211_ATTR_NAN_FUNC={0x118, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE={0x4}, @NL80211_NAN_FUNC_SRF={0x10c, 0xc, 0x0, 0x1, [@NL80211_NAN_SRF_BF={0x103, 0x2, "27dd0deb4da26be7b2cb056db37fc588e74bacdac7a841562bddbba1adff58ddb0697d165b7d12543e2215ba69042c35ef7caba8e2e4c9d365226b0d026599f3ac3a17d430efc474cf00004e0abc985e286708311b9c6a1f2a113bac11d881e249cbd0e456c764cd048f0abfd946a3ad1723e97a86644824c89b03a4985752ab7f8d9e9ccdaeab80288133004be3fe8ae3573b3bd689f4dc59ab749213058a55b01f1e6a9a82552ccd1a771d42435e2dd1c6cc1f2c2e48d6381e815c828776ea6ba14e730ab04747e833134728a764e67f67626f9bd9f52c0ee308ed3bbf9e5625e77aa898012eb54035cc0ac59297840a4e19c057ec978835b718f54fdb86"}, @NL80211_NAN_SRF_INCLUDE={0x4}]}, @NL80211_NAN_FUNC_CLOSE_RANGE={0x4}]}, @NL80211_ATTR_NAN_FUNC={0x1e8, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_FOLLOW_UP_ID={0x5, 0x6, 0x5}, @NL80211_NAN_FUNC_SERVICE_INFO={0xd0, 0xb, "2b7a439b67ec3a66b411e0d2e4749208caa705ab110fa37438d3400c596a699f82c6584f1e0b1b54a4bcb90008d58ea8be0dd9cc49b4c7c9d33627e63c50eda5159d5242aca9ef57fa609419ec650bdc05234672db426252a6bc8c51b4ae1b9ddf8319dae77f0cf6794f85b9993d6e5fc51b7c7a381ea240b9f54d35bf21cbaf5e335ed5bca4ab334798291521b7d03e2522838600b6627036e91b856bafb727dd14b7ba5861a7d976fd04be82cfcc416d89e62ee5a6e95dd190ee49d57f9b4adc24a03abc60977e94ff7632"}, @NL80211_NAN_FUNC_RX_MATCH_FILTER={0xf8, 0xd, 0x0, 0x1, [{0xf2, 0x0, "a419222dbb6cbde7d5dbbc80fdb10c28e806f03323bed74df5bfd17faf3999327ae1d599eca8081d62959dd69d9ca074ba88dcd37b21f0911be98cbe0c35da5fe14ba1e2c9251204ba52dcc9f7e4236db35fd2ec8603cf21aec8a5e26c37d941b2c68af85c9b2679e1dd16c0dc4b29f58b984f217a4998be0f32e92ab54e57f37d1f684b9d56533d4582697b675a18778495f1fdcb56d2f17cce6056fe82a9577efc528c0e5c124332f4b0119f4e8a904c7b396dadfc5254769cc752e74cc95289e7f850bc0bc87a72e1f29c270589ef88150a763cb7d99632a9542a3d8c25387f565b063f31c8a9834c206b9aef"}]}, @NL80211_NAN_FUNC_PUBLISH_TYPE={0x5, 0x3, 0x5}, @NL80211_NAN_FUNC_SERVICE_ID={0xa, 0x2, "fae631f2ab83"}]}, @NL80211_ATTR_NAN_FUNC={0xb0, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_CLOSE_RANGE={0x4}, @NL80211_NAN_FUNC_TERM_REASON={0x5, 0x10, 0x73}, @NL80211_NAN_FUNC_SERVICE_INFO={0x8b, 0xb, "4cb6aa34c2b8960d458a5f80e11badf41cc1930def9ccaf80d717691cd829d90ca0f3abf47b6036434560d638fa01618aca75cbc960e086b9d20e47caca26b77c73b628a2b7d23e8e69c09b237e0cdb5afaaaf31f05d6fe53fe96ac4f73e2e6e1a546cabbd52ca91b5562f91f25b6a5acfffaf362522b91572460e5fc388943865369f97df4be7"}, @NL80211_NAN_FUNC_TTL={0x8, 0xa, 0x9}, @NL80211_NAN_FUNC_FOLLOW_UP_DEST={0xa, 0x8, @device_b}]}]}, 0x4f3c}}, 0x4090) socket$nl_generic(0x10, 0x3, 0x10) (async) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000000040)={'wlan0\x00'}) (async) socket$netlink(0x10, 0x3, 0x0) (async) sendmsg$nl_route_sched(r2, &(0x7f0000000300)={0x0, 0x0, &(0x7f00000002c0)={&(0x7f0000000440)=@newtaction={0x8c, 0x30, 0x1, 0x0, 0x0, {}, [{0x78, 0x1, [@m_police={0x74, 0x1, 0x0, 0x0, {{0xb}, {0x48, 0x2, 0x0, 0x1, [[@TCA_POLICE_TBF={0x3c}, @TCA_POLICE_RESULT={0x8, 0x5, 0x1ffffffd}]]}, {0x4}, {0xc}, {0xc}}}]}]}, 0x8c}}, 0x0) (async) syz_genetlink_get_family_id$devlink(&(0x7f0000000100), 0xffffffffffffffff) (async) gettid() (async) socket$nl_generic(0x10, 0x3, 0x10) (async) sendmsg$DEVLINK_CMD_RELOAD(r5, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000380)={&(0x7f00000002c0)={0x3c, r3, 0x1, 0x0, 0x0, {}, [{@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, @DEVLINK_ATTR_NETNS_PID={0x8, 0x8b, r4}}]}, 0x3c}}, 0x0) (async) sendmsg$DEVLINK_CMD_SB_PORT_POOL_GET(r2, &(0x7f0000000240)={&(0x7f0000000140)={0x10, 0x0, 0x0, 0x100}, 0xc, &(0x7f0000000200)={&(0x7f0000000180)={0x7c, r3, 0x300, 0x70bd2d, 0x25dfdbfc, {}, [{{@pci={{0x8}, {0x11}}, {0x8, 0x3, 0x3}}, {0x8, 0xb, 0x7fffffff}, {0x6, 0x11, 0x6}}, {{@pci={{0x8}, {0x11}}, {0x8}}, {0x8}, {0x6}}]}, 0x7c}}, 0x8001) (async) syz_genetlink_get_family_id$nl80211(&(0x7f0000000000), 0xffffffffffffffff) (async) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f00000002c0)={0x0, 0x0, &(0x7f0000000280)={&(0x7f0000000080)={0x90, r6, 0x1, 0x0, 0x0, {{}, {@val={0x8, 0x3, r1}, @void}}, [@NL80211_ATTR_FRAME={0x72, 0x33, @beacon={@wo_ht={{}, {}, @device_b}, 0x0, @random, 0x0, @void, @val, @void, @val={0x4, 0x6}, @void, @val={0x5, 0x3}, @val={0x25, 0x3}, @val={0x2a, 0x1}, @val={0x3c, 0x4}, @val={0x2d, 0x1a}, @val={0x72, 0x6}, @val={0x71, 0x7}, @void}}]}, 0x90}}, 0x0) (async) socket(0x22, 0x2, 0x10) (async) ioctl$sock_SIOCGIFBR(r7, 0x8940, &(0x7f0000000040)=@add_del={0x2, &(0x7f0000000000)='veth0_to_batadv\x00'}) (async) syz_genetlink_get_family_id$nl80211(&(0x7f00000000c0), r7) (async) sendmsg$NL80211_CMD_GET_SCAN(r7, &(0x7f0000000180)={&(0x7f0000000080)={0x10, 0x0, 0x0, 0x40000}, 0xc, &(0x7f0000000140)={&(0x7f0000000100)={0x20, r8, 0x200, 0x70bd2a, 0x25dfdbfc, {{}, {@void, @val={0xc, 0x99, {0xb93b, 0x27}}}}, ["", "", "", "", "", "", "", ""]}, 0x20}, 0x1, 0x0, 0x0, 0x20004084}, 0x4000000) (async) socket$nl_generic(0x10, 0x3, 0x10) (async) syz_genetlink_get_family_id$nl80211(&(0x7f0000000040), 0xffffffffffffffff) (async) ioctl$sock_SIOCGIFINDEX_80211(r9, 0x8933, &(0x7f0000000000)={'wlan0\x00'}) (async) sendmsg$NL80211_CMD_GET_SCAN(r9, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000140)={0x1c, r10, 0x303, 0x0, 0x0, {{}, {@val={0x8, 0x3, r11}, @void}}}, 0x1c}}, 0x0) (async) [ 895.669935][T11941] loop1: detected capacity change from 0 to 262144 [ 895.671795][T11942] netlink: 244 bytes leftover after parsing attributes in process `syz-executor.5'. sendmsg$NL80211_CMD_ADD_NAN_FUNCTION(r5, &(0x7f0000005440)={&(0x7f0000000340), 0xc, &(0x7f0000000400)={&(0x7f0000000500)={0x4f3c, r8, 0x8, 0x70bd25, 0x25dfdbfd, {{}, {@val={0x8, 0x3, r11}, @val={0xc, 0x99, {0x3, 0x59}}}}, [@NL80211_ATTR_NAN_FUNC={0x2a0, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_RX_MATCH_FILTER={0x178, 0xd, 0x0, 0x1, [{0xfb, 0x0, "3d6c690b29e2b4cf9055f6884d1f2910596958979be543fc8e48fd18ca7d4fc0906ce178dde8063f49fc92965fc338009af4ee3f9369eb81fde2d5e8ec34404caf54006cb6e51ec969ba8e0fd66e924955271814418f7de1b698f0c6c291aad6049d7947c41f08b2aa71270e3626424902f914a34d60c8b8321095605d365e434c53bf15e59eb701254f366c65202c5f07d3155467bdeee026763d1814cd43a3282d82a53a73b2d7f6ad099cb55a68705e537fb82ea06a264c4e70607e2431d45af5f228c17fdd2d7493cc0dd59e2abf425c35d85df943c4133c164d6aed6f9c224f0dd55a9cb79356d6b57ebc69c79a2ed39d6add6eab"}, {0x76, 0x0, "be0945f55590e92ec773906de1e7ff4bcf8d5dddafd7201d1fed3e4bd4b3a597008c5714f2c98b70f2246209b6b72ab867cc15fab76f208ee79e012d93acd8605db2e0758bb8f59713b494bf8a604c0d469806155da12a0fac60355c62216bd7c8f49305bd83359dbc0ef7dc11142d91365f"}]}, @NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID={0x5, 0x7, 0x3}, @NL80211_NAN_FUNC_FOLLOW_UP_DEST={0xa, 0x8, @device_b}, @NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE={0x4}, @NL80211_NAN_FUNC_SERVICE_INFO={0xd8, 0xb, "839e5b49891e95807ef2bd3b463d1155969d912adc0b8ef0d10d5594a8f965be7b29aee8d2c4cbda898a46fbfb6e9ff3767e5a1a53ec20a5f61f90507211ab5e524a1917beac74528f55a4df3483ffc10f18eb12b3f04db2925a04654e274c94f688f5374d4adca4e226d96f0d96ce4470c8080817c25146d4a8a25d187f5f7e572da2f43b5e1bfa064390d31f888bde5cf0fb2ee77c49290587691d9f8fed781fd465fb6028263aeeb71b8bb37795e95d48a4d85745693a07b2e75f08ce361ef89d101165b59ac63c5aa02f385f83895fdf9043"}, @NL80211_NAN_FUNC_SERVICE_INFO={0x33, 0xb, "c6b259aab8f6f205ed6e151bd082ff0a86250f2cf80e86203614c907c184af857e79cd92c9f4728ded154906cab28a"}]}, @NL80211_ATTR_NAN_FUNC={0x164, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_FOLLOW_UP_DEST={0xa, 0x8, @device_b}, @NL80211_NAN_FUNC_TX_MATCH_FILTER={0x14c, 0xe, 0x0, 0x1, [{0xc0, 0x0, "26f6d54ce7c429e6e751f520d07f4eef0c2d98bf27502600b2854b0c8ffa923df06d227cd619b8c85c14688f6e06bed7c36008710995b08e666b7ec259f14756ca2f6af064e23c78f3e5c945b46f813b2adc8b4061613a2c1e65d0f0171795fecf1d1632849ed838665c977b80e63ecfeeab89dfdda28802fde92d87dd79e3700466ec95617d87b03e8b1d54a622494b7d59b5dc57668e71884a6dfd81d7a64b716268f5515224e3d3abf4af47a9b2f059056940f5283e9366a24fe4"}, {0x86, 0x0, "1737aa5216bcbd3f1aa1e3cc4130ab047a57f0aa454d07f8b6fa860df5e508c13d50c793c42381d7a63458ee5f86dc192a512ef07cd4e819a60ae11a7e464aff73fef627ed0fd947adc89a38ad9cf91f4861ac15dc582fa36a8793dcde762a00205b29f686f6cee7416ae8b5d52f0f78ecd754b7646dd924234ab12e621c8febbbc9"}]}, @NL80211_NAN_FUNC_PUBLISH_TYPE={0x5, 0x3, 0x8}]}, @NL80211_ATTR_NAN_FUNC={0x1338, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_SERVICE_INFO={0x102, 0xb, "73b916c2c516e323414abc8b1022fee230aa7aa15d91f93ebd09a803f8f38c527c3d719f778f410057e73228bca0c0a95d8016331dc3a58865ada579699a632fd9cfe60126ae9aa4a64ad3df5bc6bfd22711dfa7b015580731ac65195a2dfa95fd3b83ef4c0f08d864e79823ca32cec4be49eaa5c99fe60aa316074312eba5bb64cbe854ab4e4b9467d00f7fab496720dd3575c51071bc38d23925dc69fbd81c106f5fa147e5e4e76170278e8ce64ecf41d11d741e76835ff78856067d535b0d591c8c98dd62ab78f21aa308e2459eb9865716dce9fc4f104c53387ca62ce3b1482b6d655aad88467ea1482af15bef6e2a1464b9d82f41d49c1ee6b891fc"}, @NL80211_NAN_FUNC_RX_MATCH_FILTER={0x11e0, 0xd, 0x0, 0x1, [{0x1004, 0x0, "d57972542784b1e85ab84b1f443964b1d1437ce3699ae28bc2a84aefc0a50cdf4dfe1cbb932361cb5407f5e2ea432f773af04a72607de2b6220b3f6bb7725e8ae7f21078ca8fe1f25c7f2d748e3e683c518b26e407ac0e0c792b8fc33e2975a580336e3ab54b3e52c18992107d22c2be3bbb91b8418a2125c81cfc4c9bc2ce16ce06d3a004948ff35077c20f0aed319f28a80070be369ef03393d41d5f0c1b1081d3252e248c4abf3da7cdcc57191191a1eb4e2856986521f3899db3a30aea3ba18ebb0a4a9e12c4bc6efdf0255dbc44e1dc03699c5ff00fdafc9940934dfbe5aa3a9fd8df185cfe7ed21709378bf34173d8da746e1d1d120b01f94f4493aa03d8a240cbc30bf591d9a9603b48fb01d7271ddb1f6a04dce08bc53fdefc22af8fb2f19fa6d9f090b173031232a595d51c5739d57072f7903aef7852a7114d5fbe63f6b92767076edccda80c3ead0320e127ef32d000cc0348475bf3e68b51047e2074cd70a092bc300a5c5c3a3de087069fbef078e3b84332df1306cf821d9952003b1279ea6947c2e5717a7d62cfe091bc566b80467efd2a577f5192f60c14e03acc4e4b449e9265af06bae6fd07bd31688904d2943de678bad3a4085047652199794f35c0796398f0b847e69e48d38922ab31d1128db0fe6977d2c8d97a090b907544d3781b0a3a77fadaceb5595d6ca1e30dd9fdbb8258d79be38768d8d3d9255b3a4a9bfdaa0360da42cb6cb9b22186379ac821ca8848ede6037dc7e1d86483a010f6c273e6227f454b97f4d80bacdec23df2de5696bd94244c3da00af082a49eb877b89ce9eb295da3660bcb258e003893d70d20986b746fb85aa48b0cf65b9a435a55b1b45e00927a371ff003d5c29c57360a831d7fd9544c1ce04abfd404bb7a849b44849839d5f6f012b194d4424aae72f7cd206acd25dd31efc059c883cccf3510277059a984f4e0d15e48656b60b155f752aa0c913fc9f90f72ac3d65d7c3ba1dd390a8014ce4222b1206a0dc2b3191c0e29e2bb4ec04e3a86c5fa290f54c3565a18101762c86ddb50b1932b391e6020a170c3ecd4b173adbd06ade3fc6113165487bbf00a4673aa07a6974c4738490e3011e9d8cfd8ee6d556f453af4142e467348e44b7ead729da8426ba418609ac56b382c01f1885dfe4f0bdb6e67e9a1d0b3b551590ac2d83c9944b645b7f132794d5aef5ed23ade7f9b6cefe31410456e203b27114d5aa0156a663341336b9ae5f319140244070765acf7fb5c7614231269b349083ec87f2b2b566170eda2bec7c2c7f74108b7c073e7270f7cafb72157965a9ee12da638a3510a181b7b69dcf011470b7b49d6b7f31d5dc68d939d051e7b483b569ed7906d996794cfc554fa772600570bc081b663fc46506dcefa41cfb08a4849d2e6a66b288fe1bf9fb7693b363cbd981c7bf7de9c9eb53ff01dc2ba19d7dbc44883114419802d3684498a66f4bc03592a4adb782069b03ed14a9450a47990e55d4e32d2fa9e017ffe01354721833f8bc89b2b1a3e490b630855a82c860edfabaf9e63a38415c5f99f35798d98d932cb07334965b9c6d71bf95caae243ed90fcf30ee19a1acd75536cc0a25216b4c9f58175272e32f0ae6d4242c7c214554118570d8654f667b5e7805542188bd58c9b5d02928fca2380bb5c751e4896518a9d1b4f288d2640071305ed3803512d11e5dcb3508164106fc1bfb11f281b67370492ed58b6f34ab9f05316fdbd405345c09b6095a51986b7e0776daebebf7f93e45b2f92d18d499a7518a619ce91b7272aa7a5f59270c5082e7c83187ba24bc755d75a790db322e57b4b057d47d4ba90efb0d824187eed667aa2bfeb679fff4c28176c6d8ca88a6782e1fa66a27a8724dfb59b88c9a8e4b700d4c1679f5f319a925436667bcbd16434716886499d59fbb45d233c20ba3209c25ab25bce0544d93d118aed511c51032e54426adb042db660c5e16c47095ff869778b0725aafb003892f412df709e94c6dddd1822fa40673290a4fbd560c1c62dd1222605dded2e875e353f2bc4806938ac8eee6b9375a05cc7f9bec3ea16232b334b4b583e784e6f307cc8bae79751a33d5a9702413f697b1baa5305aefea7201486395760996b74891a8bb0fb8af7a58326356186a6b0acac2ba37a088cb64a3c49fdb029309854c0e05956ac98d08388598339b2adb7113c9f5d965b89b089084023e88010013fb75145bd8013ad3bdfad371177e6fb0ca9ddd069d2f8e8267d33ca172cb2d107c65c06a1598a9446c83dfcadcc1cd9a70e4c05031a8111545244129011791e34477e7745b0e7688e0be519408a089df387ecf30dbadc8fd478f8930f54950313af08c456d50adfe67abcc238a8ea86c8c3be1e41187c01ad1c75f99e31c9ec16d0f4588feb26bb55634abfbedf00a835caa7aaf8f29bac6285577132492462a36bb983d9815f798febe5ad520d087ddfd457ab0bbb9604a3e6052cab679247b078920f496d64e6278556aec53cfd24b8772baa55e47c36542aa16ecbc30133dbebd4a8d9ba1fafbc27644d5eed3b1675082161bd670c6a9034a7819e90e9b259fe854650e1157a0390060d744bc5e0ac905cf66f4447f414a97e6be6810bdb562c3caf5da36d7e00dc96f26bde53dd78bdcbfe876661a910d9d0a99ee99372a1018759c826000c5c69cf8bf75ab258df1c6b96f62317521b4df75ca94fc630b56ff579ab88226f71dedf9b0d967974c8af27c26d4b9c1ba4a7d24c216a437ceb0f3a39da128ca08305a2cf96e82d8e393a1d2502b1f4f91607bf18b503a84db9b0a7f8b749f5ca00a4f02285500f853894c7f08d2979c8e11af30b485d1d3100d3f7271b9a405cd270fe3816ebcec4d8657467601b2392b759ab6c7ca26b8482edb6576ee64da4e2e3090d0241736e0bc5aa9882efed3ad30772cc8bd73b9a46e1d0ec5954c8bfa7facba9c2ce0a64de04519af54f88459e89d96d6e0da74a69c72c1de1ea4bed874adeefe29d31a87771dfb6b7ea69b7aa4ada571b9c76a8ae5907129b1046e5316a6d0a6c4ca0a4af405f2db541d689149c8da81c075be2002052191709d05321b87508c4803ad2da83406f5ca46048eca598f6c7b067814b14b5d92bf7dfe2d3d29480083e33fa8b37044d445b23e0f2d72832d1000661c5b7b152d5ea1a83050b20ff92cda1abd5a6b3a5a383d9da32f937ff771a63133431592ed5980960439ddd2bb422e3d604cee2383f87abed79587a9c79e0c7d595dcbdf45296c688f602096a3b8d4a914f2a88af4a0a92b03a3a643b5636a416c9c5597419e2697d26b8a4c4d984451b7e9e9cdc97ef596c95ad1777115515baed70139af86a25bfcaf5289e9a6b325fc1956171f26e20900838b99aa2e3d10d845c1aa970c78a25df0e88294446b2ebb0cfcac479a78ad719d8ec0bab460efaa33486a00ecacbea291a99f1f3e1e808826d26b16d6efde4fca0146b99c05b90ff17329e02ca12712573a7f4c51b9de03f07133d4f8da0f0bcb48c33699bb0e50c1280dc635467804ab2532f8d9358d57e215ea785fd4c25c0fc57ca3f68fe671bdb205f2dc5e34ba912843585f09f2bc26c03c67a61b3ae1825ea0e9607afced54ef8bc5acc383ef31c180184a76f011fa2f1b0a6578fec90b51ace7de3cb0441e7233ff94fc493552a6ce99b55cbecbb91b5d6ad93ab5a8819c3fd21e6c555ef65b5a876e83c2bed93e53e52d029ee1051e783a61bfced097651a53105efc53d77fcd068301313831145bbec1651dcd32ee49d995df26d2d41db14008fe0f9dd81bc1419425722c1e582bec9a5badd0ef4cf8bff97106a73f278080f9b2c51cfae7b189ba94c852fdb8006f8cb68d302deddea786c71ccbbffdac3914bc43c494619be5d8672e26b19cee8800a4050355b30362e49dd7c2cd86a7f26e9856905c04a65b156406dee45f51c5a7a3bd8ea5c3a7d039e1ecff142095bf5fd81da4088353fce4a448780bca5f24cd9f22af5e98c4d178ead2b062b5ef9119b0934c8c105c7aac0da84f7b1a4bd8c1f9fa0aaf58cc6c3d31a078c9d29e4040e78f01e04c09b7ea6f3eee86535781005ccca14d1adf53012d5b58458305f1f2ab5cfbade463a1a7ca4f2ef12e09d228b972effc62746dafae04d4de75c9bf2903d1ba22c92fe7ff2db1925c216a4a8559b5f986a5e53f372befccfd95c9413df60985d129fb7e62546db5fac91127341eafdf731206d76cc4954bde97622eac9d8fd2f1d784ea2029250db44292f1a4427750c140a9355d85d9ccb57156a3e9f04e394cc0b4ef0ea340686b6da6e511ee207d62c81a7d4af4b4d1e02a18edcb60b3af02cea3d37160f3443a946de7793edb0d163c574bd6f4b014c1ce01f8dfdbf0e4d76b5ff917f0ef7ed694aec8c6a60776617789bc4e6f6ab814f8be4268a86bb7bcb54ba8cb72ec31a10d2afe4932a3b5c21db3afd22550c14d263cb7fcfd4a2191d9df8b16851d8d19c69c4f68e2bd562bc8efc91aa6935a809d15e70fd8fe91613062086af8e4577bad0e7f1be7ce8bd580340922b4d6322e9bf488b6dab8ac54e12c53c3fae9c90b507bf743dcd80ea34a645d3e3024051a141d21853072865e40188ad89dfcc75f3a552494ca6ac2c13bb01aca46fbfa2a65829aefb3e04f6c82823e5bcfb2f724e05ef1fe96c13d85447fae61144a8090eced9f98d70b1b641352d5111347b189e09aa5a45991e09ce1762a9b8e2cb342e6cd81a3bd026f6fb12130b2051a61b0af57029ce5df4598dbcd4497efb2bc057d871d601d36647a08d29f20554d4f1766bd66e62636107a6485848ab872005136cc8ad667d7ab39151998541b9d5b8bac4a09571faca8b955aa5775e93580420857b5fffc2e496787439cd6c3f50e75cb76d7e109e3adea2d9c9f3a0b70ad291aed4e66abe9afd7df371e7861a35c86861df5e4837c05c634342e811f522e4c10426da39fd785f306ec0c278d5f163323e645dbf81f6ee8d3aec739dd72db3c28f97e2766848d8cf023b0477cd9571c94af07f4a5ad67f551c2b9694a9cb08dee229ce7081b936781c3e102ceca4449a21421bd47b67e2d6bebbe99a75e2548ec0f4743342b82b820cb9653c09be0f5d5d771c41b0dc4b019e77fb68bd1cfd3065240f2eb1e2b054ccbdce7d8581e29ab62990b819a992c95851d94d5272d79305488c799d539df1e37f7e57efdac94be1d46c8b274eee79161f08c042f5e2a8ca42ae547038414194fc24764680c15f1d11e5b067290c1f144920b407b0a07340dde7f4cc19f6335d66811263c11bb541836810a61abcc8b8e0a43c922f083c23e19f22ea40ddea5bf4bb39eac6bf4e85fab4f60f6024ee3cf06b2bae8dfb3480bf61dd98a809e4adb18bf1e35ed884ba81565f5f15a0dc0fa45641daf08f3101c66e2ad51014822a486b45214a70108e56578bf17beddcbde011227d4e45866c4995230cd15be46f5c35b956fbd5f9d11a312aef6ecbd693a96dd4ebac5467770c725a46b7a463357424e6883f5b032f751d7b428a36f85fa2cf13158e80b174bfb70179cffad7f6a9730db86b10e14d6f9e1587a711a5548d285113140936140c103cb21e49f09c114f5a766e00e818e410fc48d9b5fe25de7b2fa216e899d0e313b926bed98939164e758909370c49bf304b65d3b03e8b9602183268e4887deef9d59b69bc1e623e226e125ae9ccecc95389fd75d6389fd3534e91fef744b9e5fa77ea95e8a917fa6caa8c95eaa2920edff008674ae3bea152330cb5f"}, {0xc5, 0x0, "4ea4c93945de72a7087a358e110601e95eb217367d5026a5068161b84475880550450ac5c9d7068f713d07083fac9f92719fb6e86d0d2fa1cd71abe6591c3809963b82dde0198212b7a6d75af67f646cd20b60cb09edc18deb1911e4d3cfdf59f2478f243366fdfbbb76a28b1f3809422695ca6a983d043f8f00cf9d1d5b192d0ddb3291e5ec9b9321f126156bd304dd108fd2fe878877a0c77739e661c2812c2def93e82abf44bf0a184a1aec361ab2d62b97831eb125390e8609c4c44d628dd9"}, {0xe4, 0x0, "9edf1e30bb4d66cea7a112479e2c23d7b0e6563f4f3b41f8b2dd3c24ec76b34c44999df534e04569fa66190e6b4fce238ae745b2d092b8089f39c1a0eaa985a4fb3b604287b320ac1c1923fa7154c84f223cc9f8fdf8cc2af8308d6b91bcf5c804c45271764a17efc5e9fc5393ed95d08ac07850f1501335ca781df23d01c385cd4dd6bbf9f78e6f812efbf14843d7267e9fc2bf9ae8775c6111bdd454827090a113a2921a19ca38489f70b1255b03357825cfa0ce094fb98a39103c5410605c9999ae4c606dafc16ec724fa989bcc7ccaea4ee7389e8532f9a8488ad60656c9"}, {0x2c, 0x0, "6cdeb2993655d05f18e356b17618f2236165e7a7314fd6d817edb5e200c0bf951e9abe2fbb084b09"}]}, @NL80211_NAN_FUNC_INSTANCE_ID={0x5, 0xf, 0xff}, @NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE={0x4}, @NL80211_NAN_FUNC_INSTANCE_ID={0x5, 0xf, 0x2}, @NL80211_NAN_FUNC_TTL={0x8}, @NL80211_NAN_FUNC_TERM_REASON={0x5, 0x10, 0x80}, @NL80211_NAN_FUNC_SRF={0x2c, 0xc, 0x0, 0x1, [@NL80211_NAN_SRF_MAC_ADDRS={0x28, 0x4, 0x0, 0x1, [{0xa, 0x6, @device_b}, {0xa, 0x6, @broadcast}, {0xa, 0x6, @device_b}]}]}]}, @NL80211_ATTR_NAN_FUNC={0x326c, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_TX_MATCH_FILTER={0x325c, 0xe, 0x0, 0x1, [{0xaf, 0x0, "7603627795ccc562639807ebcf1bb92afdeee341e6c2e8779644925ade256c3c9a328ad6fb1a710035cbff91a179ecd9a9fd1935c36f929d30d0d3c42b8d224acd861af74eabee7846c0c4d40ad2d39636a795034a5e8f523e98e47b77ee3209c4ea63d6a80eb5ee4bfcd8c724c11e8ffd670a5a33ba89e7cb0402a6d879b54e8f819025412e1dea9ecbb4a856dff31757c2f835a0fb3bbe0c8c7de5f5927fe0526decba7d429a6e2acec6"}, {0xf5, 0x0, "f471018f5db37ab3eb3d963adcef7f3da187a236742ef09105e10295f56e3065d793cf861daf934bb03567febfae8e1859085705256b07092a7cb8698ac5b0066d1a6a819de8e2903ae645d456e0b202c5e4af1d3cf0dd39b05dbe6deadf2e2892cc43b2b2d7c47740a0bcf4628267fec49ae418222b2ce2ddb053feaaad49f723dfe55b69b423103af66be93a261ee7150a40a0e8e31baeb753cb4419f3dd4487977f18f01bd6e7a9d32c5591009ad75b88190b4d624d553c3aec77690dbebcca3d3b5427bc447f6668ef16c9e847ebdcd3220451c2290b16c6f64beab0a033ee51402b0db98b7ffb5ca0092bc66f942a"}, {0x1004, 0x0, "34835d7d3ea240f9c7f806210dbbc3ccfb25a83b0a1b2aa0cdef8ba2be62fc0c74e87b0f372fd6a96b4927ef6edad4f960e93a4d6cd89b4b380745fb50f7f3fc612c810606c617a305408f71fb7a678b53ae3a79529180787b92062ddaffa037a6124b42314e67f8ee18b2d543733aca18aeac7354a615d817fb80df0391837c5accefab7740c3361c663d7fa663e911a3d16eafb7fbfd8be154da9bb908f096612f66d1f310bc9e0ce36778f9caaf7bf265258611879c919e5348e90f15e4b57d3a7fb0bffb704b2a98c63fcaffcd35dae499ce94cb9dd64958ef5413366f98bc7a4a66fa9090b5c1f1e9f509e673e36059dbe98b21d90cfb6dba09498fd6fb32d13fc031aadbfe5ca63cbffda072debd721c41f8b59173028ce269f8b5c979bb472280022edd4830cb5696fcf11c86f440ed7db60fa98cf8facbb814b009f1e3ffb4eff6c3b88f6290ca3e30f1f22eba6eb9ffecfb59978457ad7b2c79bd02fa7e7c01939302d56a700308bd37b21aea924fe27d0e3de6368fa0540bb7a12a5b1d90af094a15453eee8f5065204017c80b0156a937ef524f766f9485cbcff11acd4e271842c1ad914e6f441c56f1d3279b16aca64af06fa0d1c7169536bb8cb5a3c2e3f4fc67cbba31208b9bc2eca82dbdda3ca4217dd84aef32aa57ec2bf918b895eccd3f78e6cd6d38d4af7ceb92a9f771b64f35b6ae9dd7fc2996f2c98e9217ada62ea415b65082043a2139aaace2dba56c15c2aa75d6b72e55cb4a03c033f9ac09b962c35030cdca1ebd1f720ef921b01197cc1624340c9e799b4eb445910b06e3c9a0c049bfe74c0ce422699471df5c55f8218928238d8a20517f5c27b217ebf7a22cf5218f8a79bb36f046b827a2b9871dbd33d0c5f513c16aba44270366a1861154b8a9305e7f0e2edfb10214966bfd87a5964e4d83eae047591da2444a11071cc1dbf592dee86a0fed5723a05446a0b899ba3c40987c4944bc8d97e572de48fa0d43df8852a60b8ad000d33a621717890ad57ec73b10231d1f3f47751d69527d68589a3e876ed80d40fdcecb86674de7caca593aa808f1dda0134cc210c964c70bd3c291044ff5f4456dbcf4b79ebf2ecb36b40a996c144f05ef28e7628b6467860ed50e9cf6f8559880dda4ccc841d456380da82022dd542cb82e884388aaa12781d8161d02a75f0e32149f6cf59105a2acbbb77af0959bba1e9b66b19f8d00d320e5ce604d87c0c35d1a99cf58e4ac33a0f8ad72f37171006901004a23bcb5fa05639b1b8c0fb386403968f0e45796bbe0b0a4fb1793bf37d19402c98661c04034f9de17c11bd13a88d711fd49fd0376585f4d405a14e3ccef51a11d56da33bb6f24ac43a03980f7d7782934555b5738f4796e28a6b2c22bfb5cf1ca1121629e4f136d578b76445e3707527673128a6dbaa711ad1cf4a4dd31179c19ae808fa8785ba8aaec2548cf733ae7d8bc6fafb87b7394591be52bafd22360b79b92bb9597f0e52a2507d63cae1de6c19f3086e55f58c440474de4819298953ab996804d3c057ae1f5d25a3fbe6226f9fad7e057d61eb012479899299dc42c4c1323361a59fd3ebcb411cf466701760c1db550ab49f79dfdb618d2c383901445d912467083d1c57790b091e30e6223b05bba88cc1f39703a95275e68ccd1446fd4adf85604a098f008fbb628cc42745e1e7e83496958876937139a2e613beffdf4ec2af997e7e9c6fc90042a8517f45aa47397678c341abf050af3c51fdadecbbb67af0fe124d8ed37d591732e0ff25cc799c6f9ed9d975737d3cf61017b51637e90d465624d86f9182be1fc00d26ce3ba671a49e5b8f324f331e2d56658adc521b67cf29703c53b64a5b62c830c8577cf259c91135f2cf54e42271583233a4f141c98de809de03319558ee1505e1ffd87a1604aa777ad83d3d3726e8c8072ef5ec2e3b31a672300083cde07e5917cca0b41ef6ccf6396aad00417be6f4e630270853c5e80579393f50cb152a1285ddd87ad687e7d2cf1e755e5dd4a1297a6ab5bfce209a4355773e1f535907c6b3e3a00da4fa512bc1a8885a3b6d4c433f413eb1e52a32f37b8d4f1f8d7f848fb0a47e1a11fcbf1445adc386d906e2b85611716596d9dcb2750a6cfb99134ff87cbc22352228fc08520ef81f60c630831d878bd87d9faf2ccb55973090e573912799b6182062cc4b08de00efcf8d04ea1efc2bdee22896e92fc945e7428b94d908d032178ef716b062b6ced27d1b18874d7969831c4eca580b6b86b93a15e1dd59aad629e8a5386914bfd27be32c0f9ec78cd7d164ad8a64f219aa91ba2e5a974592f5f0d7a5e27aec13fe634ebb02a4649185cc7d7875db48ebbb2a640c5dc55100233f66a9bb74598dbe1da8d44ea3762167307fba484f80ee6b9b0259bac3891a1833b54b82855489f0c7b1ed355a8b8515e37f4a9a25078cf9a54ea1dd53b3f11c93bc99b9acc356fedc3bc5b885d40e3592812a39cb6bcea8dca519fd04f36bcd29e258cd63c61e5ce2e215d0544f69f6f1ba9272f587629ea381fd9a67c8ff6f740d143537935ed6d0e38709228106e878b7b9d14ad77897113267de742fc93365456afbe8851029e523948942c5b496ad088d09543f462417f9b00c07bd19f2f5f2ab18a3cd8ee8b3af4a3da6e39193e3703eda00c8b632808ba339265d0333498602f909a7414cb8bf1083e573a7ae5dcff1261ede926e59c606ebdafbe183df958ebe689aaddfed9bbc3e816a5241fccd5eb399879b23070bcdea20934eab7d352a21b327be2b92c1fb11c1f28f06366ef6e204b5550dbea830464d273c3934da3c30c39fa48d3b113596c393eb096059a4af32e602a7b9f155e84e63ac891c2a78fcf8e9e12d06a14633777fb91b9b5a8cac22eaf43da04be9ec9447ef779bfc1bbe34ae0fccca10ce30d9a907b1449e4007a0c4e26e54406816b9d70f10fa7576de26e8aaff701815202495a13eda3f122d60f2f21bb308639cf5fee7f9b8c604856b63376584ee2a43198f48e27095a1d7d3f964cf79a912eb6530a9a9b4463c89d2eed996021d908d482288d215722cfc18c2ed289f4453e99cc5a5bf3d54d6b198c59d64eb64de8e39545574a01e5fe6b9c411570a038d89983c408c2a91f5b7c8495a1706230b5cb1bd7b20002acf9f13dcc24fe5c12c825754e88fedec5161de28b3b84c79bad4aaeead08b6ad400789bf5adef1476efae7c3c72a701a151908c09410509e40095e6fcadcf8d662b87de7458c3f505c09cc8197ecd0d6ed01f0acebbbff9d714478196dc2e6e68640c5b197b50b7bee21f4dab5ab7dee57eccb07b3ceaa2a08fdeac81ca1a224af3239f59177948a152a239062db21330c85e38f4fe4fdd8e8c7dc6ff5e9a45b48fa0ccdf1eae78288920c08febcff84cad97b22d035a2f0a2456c6c1922617e2777514b75eac869ec14bd1155ee27806e057138ecd25c23cda6af516c52c7ba5e3af0def9b56e9b70e63b43475b674b2703a448bcd5065431247d29c023fc696bf6808e8beaa2b96c31a9b4e0b4a61323c93665298b0ef6451205ff03464fdf12603060970d7e436585d08c627c9e455bb8a2278f487abd85f0654a05b3e7cecdaea093e3ab2c1e78709cad1b481222f825e03c02e84e2a722dfc4b97ce4bc7b8e1c755ba9a642fd3ce6ba452929d232759d07a4ed2c64102a1b5efd425f5128d8ad2ddaf6dc000024751874128cc1b11a81c2b12a818eacd8ca9dcabfe25adef3f60e7ccf020e7b57d0fbbd791d5c0097d981c8acbfba5c3523b13ca435b3f9c7bae6d9134860b175c1c6b8d13a7d84c4e6ffc4af602ed9a10aa5e50302d39addf087344afdabfb0c395974b1518cc3fc9ae38347e9388de8a757435b7e10922fafd1908267e293f965526d3847a28e34ed55a149df83346a4542296f636d30f3c9c238db8df52efe1d7abbe409b1690ab35ddd572725cd19eda35f1028afe2c158cc37e894bf8371e2cb5c63055dd7695f7faaaf9de276b3a2e17cd2b72d1b21c02a27be8a96abcc982d4cb75ba9d29971a8b0df7141f048ead08ad094fed3ab1093b49302a354bfa657d0a44301a3b864b76ee0ffc000950b72c644a0f2ed39f9f61a741f874e48a1e31b97cc502bfdfec4ca3bc8da22c3d967d7ece886c00cf3f3fc19647d9c7b82cf0cf3821a32c5773522c4b5e8f08f214290d2f38571a86440173ef802807bda10d29716339cf915e58584278b3878d239b70ff6061c64c9790131c011c2aea936431254cbbe29e2dcd4ebb27206eabf27e59450291a0448a5b44dd07d457f3c5ba10be86a4d8807588f5d9ecacf99f33340e75faf941917a2f83341de3430ce22181685db1f1d06e399884ed8d2cb447fcd9b299b1d4071483d54da33a6914ef0ecc733e96aaf8712c3d8adefe7cb2c8961b1b54dd0d69f7a1888c4a79a4d50b1f854b4eab95dcd88873b3eda025a1347b30e202fdb8dc1a3f121a1e7470a60dc274866cf754b3cb9259f57c6a92e0d5a60005448df4872596e717ec616087d1e9001bf1bfb5d1397e0287e74a8b8d980126b44aaf3dff2522cffc4b60d66a895551c94a5a0f36b166a98cca4db4a18a5d0b5f2f526930791b48892a3e3097490b3d56bf79df5e59226c1ec1c47e660e5da78c64d92780fbcef1c4c63e7c7b077f81f12d5ee01040d54157ba91e5025215ea3df82473e103ca38d099ad609f268e5917323ab2efc9beae16ccfc6db88117e9726170bcfee9765016ae2d1381eb2b7143eb8d00a9612911dd80f9eebd3785f503464dc3471c0ed50cddcee0546e76d6b621e5783337dd23fae91c188f0b0c2210397ac122905711cfbc24ce52570aab86cf8983b0d6c528e03179aeaebdcaede7581f035766478b0360293425c5a11bbaa26e151f02338dfb26e0e01d908ef25ff92c60bf1c82ae2cbd2344f0faa24556de863589761322bc0c54b18d86fd9f50f82de99e9868b8a201aec7c2d343c9c061df22458d2cd7d62b466bd704b7d9b5b2b0490e9e1ac8a3f8997cab66cd95d93f91309ae3280a5043cf3090a414aeca5837e52421b4b4c17fc25f961f8b875d67b7b5d2395c0cb194213a943a977dc988f8775a8feccaaf32e7e7012cb24d262e540edabc282187371cc915f0446083e58bd18b04a60619a1e8fda46758347ba82ede48d011e8c1a9d75e13986cfcd1af7386f262bb1131de2c28faa08c647fc23b4b2f5c38dc0f4cd8e9064f30bd45489380a834ac12dc1a9a9e9dad8a4e2c7e03178483a3c26a01ecec0cbbe0bc7097afc81cb08abfd874dbc5fb2d25ca40fb9ef9394780469bdce2d4897c3b84585487525fb8882d41308d0abf5ffb740c485ce1a530f25e251ca49f9d78d3490e5e665657dc6434b4479bde4dc014c3cb756891828ca0a2affe741714ac8d81d0887d9065cda31455b11a29b9f5f5ddf914576e968acb417f1f2473e9e31adaa6afd0f83efd71e526efd4b8739f67fe3d435856c07cfbfb9c63b15de56ed44eb20f45e50a99bdfce7c5b387c09582458dd2c5ac1260560dc0bb96eb4fca51862ca02c0fd20308e2726f1a7674a1f1843f0c526350a100d1ee3e4bd4aa128a0ed5f07f2a2495bc5f8a2c505ac421c084a8d2494ce1c14679a3d5f957d613a29d947a414a238368a0a028e2314a838296ee560fe2fff9e47598f48d5ac0f74f3603bbbcb19990694ff2b09b353b8427b253d1e8382914e1686ebaef2bc88a4de2dc2b5ba457ecbbf5ce5e40ca653e949dfb7c6375689b6a6f6ba537a97eccb"}, {0x1004, 0x0, "7ae053add5fc3337511b6f1d45056bdf70688e06f10aa72a7b0b79546d616fde606ff437d532dd6f7472dbceb3c85d216756bc558007d4babbd2b792da0fd8c66f4eb35afe425e05cb4b2f4ad8e433fe0c822941e30a706443be5345c9dc5b7f9cdd715277d930b3cfacb51befde4660e393e0fba769399aea11c2fbb0d3783bcf33d7bb014d6154d016c6fa02d39ff59e65cc7339696e5665b1892546a34b3d44197d7602b8cc3adcf2e581e45b3488a1a457c2a5a777705d9b770544651ed0245bb0b2653c51d77fb5d6bcf083ef6ec1dc26c688cdb9991846c416cfae762807cd537cd8309598cc952d86a50df32e037fbbf15f7ab3a4d7645fb0525ab448035e34b42d4376b22d69496f3506be10f7f3e4bc6aa4297bce14d4b4a28e7b90dbf8eb6219f9db53207bc2b919f2308a326f95d6889f7bd74602a76cb3992ec39f2e9a089afac5b996bc1ef34a3198f0ee3958dd59e683d05093244d525fbd3a5ae6b36f9cf5ad0c03a21b32d60f5345e84992884369206e5101596086ededca4fbbb1336aa5b5c0d4e190a5cfe658e5429ef390813c6240abbd5bb21bf631f09f39449af094a2eb60bed5e20273fd0d6349795a81bc268036820b484ce71c31a9d2327ee8964edfba7cb3baf50a8c53da3568ce954af99c79a755c31bf87591b81ca21f684ed366dc354f0ea4f44245451b35edb938c512fa06be06cd49229667390ac5f3ed9ec74d0f8ecd96b359e447a1a68e43751923c2a25da9aaf1d1d7aafd87e4e773577c34108ff9f2c011fe222a0f714ec7eb97dbc459ef7bcfad7509fd2ef1bb6dab222b304c862379d1844c56d490c2ed755ca561e26bc2c79313d041e62eda8c1dd4ebbfb16952be3e2da2e9eca579432029177cf7899446eeb3b5dc8067bb20d995e02ccf0d28e40f54200c11323b3e5f71938b746bb4a7acc733f5f8f1d2e0422d8cda0733964ff53d72c97b28a561f8e5a9b3039fbe5ef39aead59bf133b16ff62ceb9dfa26924700c48acddae8223139f17c77648d6e455b87b2f16a1cf79fcab340a25796bbed13f78490db88d6a53918655a96b2ef31875fc29238a68572a104df88a36101d2c33abefbb06d6b5efb63c415d232b4837e3ff7530cca944d98d8985f4e2c9a5f92b4d0c310b2a10d70c3f8275fa869e918cc76a6e7a2e360b82d094bfffd6ffeb0f4c4ee8d6c6e1183868ae09ee1d7c1d4e3810a02d4399fa2c6eed1187180d88b06b5fe51d20408ebe8c07453f7ce4f1a268e4c069f559640a4d936117cc4d020224ab3090737f81f97889882a756a7ae82ba14ab2c00f7f52db17ebe9c4d989b018cd352d756b093c1b0275a92548950242638171d526dfc88c5e6daae11a3dce37d5ede5a5320c0f7864b24e7135c96bb76bd377f9ee2051b8222474ae65387fa7a4373a67e374a870ef2bd4ec8ab8c4d3b1e806f2ac105f7ed485c09affc95d0d81c13f5cc05a9240f27d48a7e337b966d3de447bc4b1878167f0adcbf085eb3a8c6e956c431c7402e5c7a46a12b18af56ef2b5f8508eaa51207cc54ebae2e3401645f2067f65abeec0f18491f0565eafe89e27b0a365f92155776523abc0975890f4d78ed5c614524977b0a435782888e99e5c52a813cfc78ba671409cc724435ff9bce8bec7204fec9b1e12a39da1d513c6e76b359234fe30fbcfc78dbf404574bd798a15c9d57101d4186306069dde7baaddef52a9c5372197a18d1822c3910cbb15b3e7b8479804e7b209cc558b864e519ff34e801edc7947409f6687da3cda8f876df0f75908fedd6eff7ae867df26b1653e9acc3248f41880c43051d55c863c3e168106ab9fa8c06bbfd4ae76a6cc94fc564c33295c20a4d67d17ef8056448260678f53c95f07b0c79211a8f10a412e3e0f58ee407e286f23634b4239c3f31780205be2050ffa8b9bb86720df0c73a0ae49309fa39468f711a1be34023e6aef74ed9069923a7e8892bd5b8fb00c995dae2c68635faa472c31569d60b534c9f4c87d29a443423d762d0fd2298e8eb1da27f2e431a7b4ffdc621dfdb2e9e0cdfa8dd8836e0ad3082f094be4cbe750f5a1f103844238c28298ec15ebb661edb398db1e7e1135cc7c6114868eba8ba86166a07f27f205eaf91cb3ff1bce7a36c6dec50f753808986493bcab1a5eb38b778d5f86ed43d270f4e8a248793af135045436c037c6d744cead4dd96942a448de081164f65982f9fd53a185ed92e65c84b24a3e625bbb9e0e6f261c4683a6ec39cc7c4e97d11bfb737c6f3cca914095417b961183f15f3f9a0d4bae1c1025ebbc0a0a3c40ab60d985cb269b81b43e60ddb2fd7ea3c2e09611b19ef4e9779ad60caf5b399f27eb0a2b2c44933346ca4c7b2ec9e138ec763561fb965418185614378fed18fbd40573cef2c4d7e2b579a4c4a3e0a758802068b6846e62644c52c28ef5ab214e7c8f504a7d52a50c7c247855cd30d6d9a8a4723a433d118e044f5b8c1feb73223dd8b162eda1b15da30deba22e4f6f365831f286172f579cbda39dfdbe39fa91aa364984246b4a5a5aa43838f1177550c2b4d4450d4bb84f17197cdfd2338979fcfe08dc603a55fc2ce3a0f3f3bbf92d3de187e1bf5d7ddb792924ae24a588be713824d54efe9ca410b0717bc13a6d35f0ea1ad8e26bda1532607756a6ba20edc64a53582ad18c0ff17cac17fa109b32ec4b19a9f17b0b3a086afb05da1949a1dd1f014af82eb6d469dddf587d16ea9d6876e2baf2be663c34411b7aa93e12df896a9ea4955ee1a651ec493bb7a0490af0d3f00f5abb2c08c1c1ed5572fd11370c24895fc8362c96668abdb1f3e34b8ae0a70dd8ed2aae34cc88bdd5f3e9994a2942ebae7ba9da7233490940448d1527758016379fed83eaec21bfc5ca213390ee1d31cef8252d0a769e71887b86bd589c8d3e689d60400641bb99da39f49bc78985477d3123276eb104dd05aaf0a19aafc97a69f0f6b91087d54517a462d3eb3328eaa495ae694c55afe00373242ac0b7099cc891fa08eb579c380edb5817b10871eef37b2ae515166764db8d66f1e7b50b08f096043adea43a5aa4396f06e4c5e6486d5b77689e1054ffbd40087b956d7b2d606104653a7b46079bd4bbaecba953ea5f2a2f88f78cc9828700cac2042eb904abf0436af1cc3d984335e3e0e47bda69cb35e63cd047229fa042e1a0d417a2363afebd1f94214c976d1d2d726375ead23a2d706de4ff0903ec9fe52285b06ea4d734dfc1f2c85770893d6d88e92ce94f090c77d0496490f663a67179b3b146c3c63d5a99695d492d7733acd529e7fcc7abcb427cbc2aba11671b10de346c0bcf8aaa42a13bae0c80ece12e22ef73613c581bb2545c2e7387736703a92c2d25aef1d3ed3b26fff39d9e4d6dc5d4f6f09db123dc54639f9fd5291640b8ea75ecc6fc4f236a0c2e8347470f16d0fee5bde7793afbf067b2553e5e50228c44c65dd7f7cac952d1b744f31462d8b6eccd82407c6efdb885fafcb1c8c641e1afb5b43cdccaf444bb580410294121b8985e82012f7d7c436c7e68559263d126dd3f85745b463110454b322869b98c937df328ed2e69a591796200950473f7caeaea58a5d4f893bc92360a73bd2aa2b4abe05f134a26167613df01833839767879cd2ce8a9c42870921b51e67960b7b885d84aa68bfc69e10fe41afb115a7f37b5d0f5c5a4d669773944e8900550b46b077757aa4b2484b4e474b75cd579f645987f89a8cc45afad408dee3951949aa497396ef49726f0f7a1b5617c1914fac6525235692b2163e2962f397a0f2db218426fbd59f81f66922b010b98f237b0b180b85027e87fe40c884d077cd2c1341dcf7da0f26d962415b881974866488da97de65a4ae27677e9002222fb8d20edf2fa2194a7a7f7b0195b22ccdfad9033196da357829733a84af796c91c8ef17ab5ecc377f2dfc2aecf309a3aff7872252200f910895e32ded00ccf79ac69b022c3644ed4b7cff4718b396bc8918477ecb6e354e4fb038d911832417754c91c2a6ae45426e81e900108b7c4baf2396b019bd0280e8595490bfe024c8b78184ecce2ada0a32ff325345e664248c53ffa733a2b662c3eef1af6777d3bf5308a4302ef6271be92a54425e901d18441dfc31e4e65ddfd2521f1c05a44fae2d8afb5fa24be5f29e1246d9e201d503090852ffbe6844e3f38043ac0a2402791f88a105aa024f1f4b8339ac4403afbc47ad3e67a504ae52ca2c65ad14b05ac2f2585d40e62907e841b6ecedaeb8890075c11ddd9d868d6e890e6db61cc47ee6a03eeb461220f2b8ad0bd8324000d5cc5177cb18dcf8c3a9b6fbda9257076758d5f52513911ff83399cf85beb64cb09814272bba1d279187ba182c4492ce34d7bf1d2b6208505655614788fc0fd86aa9709b89a43079a69d8722e4fb04643f9fd24abc60e8f8ef9053cef3ada856012e18ffc1009b7dcf656781886d1d69470c5f5ffe2af2f1a7a89666505810a568ecf2d6a00bb7cac8f6a6856ddb4c80453c7fda2977b9426a07489118bd2c04e6fe5f4232efda005a424ceb79dd4c764f5f045f1398af36ddbf87a6c88ffa526f77477727055e31fbeaab0fdd33804de1935160f7e9b0199a9e9c3c9c74283007718384a80aa60b4d5e7af3cd2a1710ab21a0679c3e61c382630e0b05d7d8ccd43875c4baf65f1da5f537340919fbc4d04c9a7e8a0cf4d3d2d3d0905d1beee021dbdf397effaa6f859de2c037034eb86fe051e6350ae9bf41dc0239932eda45fb02d298205df9e286cf7fd4810dac8945fb7260b23503fcb025ca844cd1ee0d08ee97596d0f80f78af82536fce0ae744e9bf5b302ed37df6a1be267c8a120b326d024a7ddc999273ff758ce4061db35bcdd38839946b9fd0c36788f857d67c8cbf45f168b4234bbc353609c22d89e51cc9e80e42f0119b50b8c417e3fbfc4b09bdcb20307463a6699a1ad78552f07ce11c380eba755fb864de414ff523cc49e6525b04d91dccf0df96cf0bb59a21977de35fc7fe34b558bfdeb71c0cdb02bec13b529f3675ba6a6a775e351b710fbda45f3c016ca64f9ae3cf17871e14e1caa8117f9d9e53011a3259d00353d72cc48a214343d796429b258c653ceade5bcd8b9e4a16ec4d291762dcaeb6ff0aff2592b9b40bddf327dec9b33da5706c20d815697733d788e2dc7a66720a416a4d95566dde4bc6cfe2e782b23c7aaf4b22d5e0d62c2206e1f14c96625330fac5b70558be5ee500ae61aef7da03ee0cb4f3a45de2d79c228c9c0609a93595d8a8ae1a7689d3f1c76733b234c1622534acb2f9f7fe59d41e5cb7ee91a720ecaeb5c290cbdfa3bb02ef937e20e2f07fdd166d46fba039a20f65f1fc47df36a81db9ebc09dae500dac54a1e3a1541fe097886a6ff763e782e6ebe4bb0cd4ad7eb9e19267a4c17153c8b179184652e1cabe1b1626b528c6be71c2995f498e80156a5629bfd3dd377f0c29549ab41c1da9caa66a3d3ba2598dd471f707610d2ba21f8c4f567f9594c3ead259613d93bd6f147c87cc791a060fbb43e5023e2d268e4710287ddcdf015fd496c62ff9a77f77ec00484fa31451662bc176eb3160de4feae436b9d3f5e49f82a57de56a5685fc73d86a06b575d7e0fad04c8a1bffc74c0ed78d97f41508d2cf72bc671866417a52e7897e996fff6ad2bf66ac51b724d1e34f8407d3a75999f2e1caae904fddad66b0c104fdce1a2197ac72077d967fe475fad9b914df3873366b05c2bfaf582f0ff436687fe3afb8b1cf906e28e76de20e216d7739df6"}, {0x78, 0x0, "563c0fc916aa62cac157fe1b1c83c57e2b2513a771dbe87f732ed278123d18afe3d9ade8539269000023ee2109cd92a34317327c333ec3dd8208b7a57c289daa6e62819287d124b1091d234db39954cc3d89bc8d8d0142a3c2bb51b72a5faded8d145a4349328dad09f4c7cafa2e5a10879d9bad"}, {0x2b, 0x0, "0e668290c6e5cac67a69dc92e46a1c2481e0cc0dcbbcce0c2091d84f7730e0cc07981a5d422bf1"}, {0x1004, 0x0, "83faf92f16b48e05ba24f26cd8a7092d4a07cefdc77abc63ab596f96e9e31d41d162574ddffc9507bf43e6100e370c8732db629b34cb31acff95b79e171847ca9799f279bfc6b5affc2711f6bf54530d7ae0eacf253e5672ff581d52f9b0ca29eb12b557593b370872ae718fc94ad9b573d36e87bc92af4915bba88d5a2d1178d8b0583a77c8f36f715ddc2dd6432fc4f14f72dbe624c9e654ebcdb884163cf5b9e5c353c080e6143b734d78b93a6c30a1f89efd203260d8cb2bd9316ca5686f3e64adf54f2639d353f5a2867616b1e8accd8bebdc6cb88c90780652497738579b945f084ca743caaf375cda98358bd557d9d2167ece1f7a3361cfa748f6822017f3f7716c6794cf9c934ed3353d7ec57d0ad8c7202bb2d8721d248de4d025c932cf020043dedd787b1a0d85a3cee1cb853cff96ab29f4c05e9d998b796dff4a0ed347baf9b2dadfb0c736769a8cd93542701934ca4cf3acdbc398975bd6fa818611ca81cf1beb82686a1d38c446ceff222c8ff0ccf2da66251d97768ca42144c283234b695eab2910363281f4597471257341a62dfefc5a1fcd89d72259332e0758d77115e2b0e5e05ace5b2e63361f0b91596049e328169cafc98987825017936bbaf6fc3b4ee39e4956ff4514174457bed8dcc8c73877eb03d87b345f694452acceafd9fd76851f33bb1e85c5aa771b781668c0f2246b675aa5bf5c2bbd5cf909e2f039cb82b9ceff9f5964d6848462bab5b2c22492f37c8a20632e7987b0532a13cd8fea26e03283a4c1299105165580f61167c56ea35e45e088ef7f60c536a16081777836bf7c2caaba1d52bc767aee9f4e5314101d0aa22b0b0fef075c303c9f2fe85852aed1cd30713e65044489550f92fb8b7f96dcd800071be1879f6179796fed61f999a90b2ea5ae992b5420241f57179a0babbec7d44a9a3c240c0a18ed006de3aef98130c4482b7567ad0ff227fcaf6c54af3dfdacc70bf88c2231c1e8b29b81ec9bc40e3e93d46037c4eb01f37688ab84639e46d7b12c568ceff4b0f84fa5bb36a9d4c830afbf63235a93c487b4d3a3e3ca71eceb4034c1ba635ddeccd7e9a6065fdfb4d25ef9c95c5e549806032299a44de5a8300cfecd45c3e810b004d8fcf8e5e91f109779df62337edf15f0394777b65839d5ed3861e8a0abb58943b9aa901edaba2079bd7a55b79f09b7de5097f269214cd4f2b19f72d369715f0cb6e7e3adb0597561488eb585670804c05b9b30c5cbf55b1441642e37148c555270d804fab0e95ea4d5fdad0cdc61102498e12258374397a712ade3392767df180af179bc73f53d6fd67371677c234cb84d609089bc1ac8201e25f7edbfda73f6189aeebd195b36700ddaf7ae4fc0b2b5a576e712b85b85cb37f6a5fa480e4d5cd534d5959ad0c8cb0ba1c7b2623556264ea11556765e9f5308f3922ab26a369d978388c3243f471aa36be0c6f5b63f16bb12bca30fa93e5ae04ae1efca0e8e033f717d42973ca7762016119c81c0ed79cc1073e4e8c19a44f6e324b4df4c8eefedb0cd96e913575ab3e3d80419c21e4935dd16f77980797ca47ad74ec182f9f1aad250c169c1a539c83523d58e1f24223048da5f37d1bda3dad03e08b07bd593ab827b63486fb784a5467b84b70a9dbc18df7c623f91724d2335c3e3ae3ce3889ccfa19e85e1fdb4facf235d27c6b6322c1b0e845e9e004d5edecfa1a41c5335109f0e6157ec8b0685236a8142ce6c6f829731cb9619625252947a5928c8309f179e10911ee6013364624ac51e676664f7e0df945c6e1b630730add2cb4f36c309fc9a97873ba6cac96fa0a11dda66e509eb33c6c0d1065213308e1188dd69da97a8ad81b14e3c12ba180ecdf1bd8516aec4d51b896eedd3ccad05054c7a10923403ba48ac19705aa8193db77967016192d07a3e83d5548b1c6e4735e2e59907ef3c3df5ab4bde734600d92ce6c8851c8b4e2035699acea4060df80ce53e23fc1e282ec47f486837833c03bce7c66b0fda2238d49d1e5defe58ee72639414e5767a8fd571d5f0a2fc879ed62ed661b331f8f39c3eb59d4af546ca38ccf87d26c190fc8bfddd4ff49db136437aaa8ddafd04165d957b200cc6bb35a7e0d9820dc488791e2b4f4bd374fffa156ba39ecc88139f747d4b68e14e1479c722dfd807156719d538999ddf1d679972af618078323998557b1505bc5f0c15d607b90d17f80f8a94c22f742132d0bdfddd23a930e517eba66dc37197409601257db3f195b4b83596fec523af974945f683ba3a15e334a5a31a64b6c794d3a44f022af0498e51b949f7ecaf0f7f7fd353cec21fb5419acdf4c9fe9a6bfbd28f0a33b74cbc58d0891b8711010eeba17aa7acdd2b7f00d920d17861a8d5f1aa7f1e30876b658bfa8b922e7f47911d2be9200e8578a83347d9f76d796dcaeaaa0c7aee5e657c6066f51a28590929de5784231acf3a903b5f46f00909b78da191a1c14b27f3b88314ca5ae490e37a613e6371289ab5538bbc5e9d1732741e16d13e250939ec1899823d87c29d26b88e304a5c439e330ac8c65f5fbf189e73cd0a61b3b474a4d182331fbdc433c57e0e85a429f2ee8005416b1c33f66854994a8a76408a503d9aaad6110d94dde6b7dd7542531be42a3103c2a17b6dd07b5422922662bb87266aa5acee2e26c4d1636e9eedc62ca89950e8418e25570851d0428850fbd1955fc93fcc72d919adbfc61d8ccf5e160c08b7a8962241b275fe4dc9cc01df7f5dd65ecf3c8dab930f7743578585f6a4b0ad7492839e63df83b80967f1af375e5825f7abf71734ac2b60a23af84ccad766b02e31427a5ba3c533599aadd842770cff0c82ce3b8ef48f8d2fb171cd604db1d8f16ab6a2043cca7fe1d35fa0d7153d702bce1b91c06317d570a5a5b76cfb6aed2e019d1e6c3d6fd81bff58791744b0b5049bc5524d3cff1d2c25034ddc5e324f91e5a880b528f4409c29443d850384fc448dba894783324bd98934afd1f4192cc5be3a4a9e48fdcf34cc573c6532f3eb4fa81d97ea150bbf98cbbc14d5c43bff58944e0259332c81206f7464e58f39c0815072e65054cb2984a0f0762e2f8ac634d11b72e0ac8b44f05c1eb23d1217a1bd6fee3d1106d61595970fc28589a963c98374df980059d70c170bd4882194fa2bd65bdd96507e9337893b456e096e1d678269fbe12346876c74ca0270722413090eba6df17cb4c42efb1555851fa28c0fe5a39fa3e09d557eca308ffdf7a91754ebe658d083846b8d1dbc7fbf6c9de5b373a802ff49d0e2c01aa22095bb60e75d8506a736c54699a663737b93d68f40f053e2c55b46e47ccebdc6c4990451fac2a6a00365460c7eb1da8cc5561fb8d88800ec479079f75062bac769a90be021b647ebb21d2b6fb65d6516a37ff365feb405f77d56f2a37f7ca32d7fc94a690d819bb3fbd69d089a8fb6139e67d40f3f01fc7cb6dcc8b954741f1740f08e5d25710ae22907be833322659e71ce214c48b58011599af1822a3827bd727e0ca014097671a2f66ce1cd45aaf4d20130bae5e26d5481249ea25ed5cfda27270359374d340533059ee31c94e94418288c8adbcbaf30fc10676b028deb0ce4d4d2f6015b3c634f32b357d0bd04503734ae952da9e88a5a28544b9dc38ebcf3de07828581aa9aecbf2aba732dc8577cf80c6b9f18afff624afbf89024544bb5f290d58bc3be9f71b9dad4143e408b37124add43558958b4303fb5ee42018b63da838fe4a69392acbab85f68061862246513f90e33535657ff7d038ba5b5ee2df830b86a9a896834aa561fdfa47ff109ce0b8a0af33a2c6914daeda4b3d3e398a1ecd053ccbc75b43a1f1482eda8cef94519ab12d3ab557062058db80f79a203a4c20c8be0d317fb7e96a12ae5f43c8336aa0c08a84778dad622ee023cba0fea513af14c466543b4d5efc8370fd6460846a1d99e0868a6e5df90d3e368b3ab813a303e484ba9dc5202e67cf0999dad827e8e36bf84d01c0b5f8c9a63f7b8e8d858c9a8b0f405c610aaa6f78316fed41b0d3c24fa17eba67c0ff5a216f7e7cad7ef2c2f749dd30df0df0fb0279b49b9c0d5a52ce561775e4362473042ee7ec0892ecb62322f3bd22937c49b430c0e813ac0787933585e9691f68b9b2f82b83907dfc5fb468349fa8d1d3616b9ff292172047781a8ce8d5eb38b9ed2de9d7b448a0e10065ca1a34d91bf21499f7f409949b85ac55864a904163e317f773da50277f5253b615abf6d62abd1cbdb2d162d21f71ab0c091e8406efe12061dce136405ddafb79da46c434f67eebd7dc8405877be606a0338c31c208d8f443c562717468693c74a98fa81bea452c3f659072569a27678e3c86d0377439510b52857001b9f2e924026067312683159d00efc8aea1913bf9b2e5886eabf5cf5cd42e125fb1e5673622e1d1eac1af30247004bffe36479f7eb13dedf1e584a024e12982e8ea3dba68811d4c680f6ca27ed573ea60537c3f91c2ab995fa7d73526ec1b9025f4252fdfaedf33b55bca10eb8e7ea2531044b6513e682ac458915d64b0e3aef2412ea0355675dff089e5fa3012f18a266d4eb535bd60a577dc1751f9b910aa473dd484f7bfc0755bece8d99859f9fc9778bee237eb4a1075cefaf6d61810b441552bf855b59fa1cfab50df1ba9dbf2d321167aaaad7c0d5581a45937141bbe8fa549eb436bfbe87464f921221e515105c5021a6aaf5fe7af3c4221ac37ffb1aca3bbef269c6e068720df4b006b964ea46c5ab374a97aed159354643868a1ed6ec151a6005f0721d5cda8784059388f97cace7e47bcad502ee3cfed67afaabcd3a1392b24384f020d204d54aabebb02a9d1cda9b3b583dd0161d913e1f9630070ecee084ed11e0da309164f6696da5c40f9b674d05d6846f4b5b6eb7f6a0b2c2145d23b002e6e4737b45493d6184c80bb4d93fcf74ccc591615fce92818fff91d122472d8297b8238f326cb81b9a123574ec468ba7ca82994c3a69ad2c3dc897a93d7734b6b8af3e249306595c8ab28d489cd46843d8a8ad988987ec8f25d2492b4227b45c4e1562848953d512b1eaf5915519e728efc3c4b577cf094fc6f78d05819b93015a535116c5800d37e99d2d11d4fc8f8442174f569414127e1a2d7ab7f67d48dba6daee3937f2b41bc6e286955c8f1d98c90ca29aec1ec3da2cbadf700074328d765c93a74100f52f8220156fa09c868aa088677467259a62f2fbdbb9cbaf1ab131cb50385767613d0c212a10128e7bb34598db998d9732495a83a0e2660ec97b22f5308a3e5db5c8329096269e551ed3d1b602dbb557974009b356af907fc7e1498346982b87abf9b025f4c9951b53484c3da2910294db89c4ac6177c7ea31799b05e855fd492295066309abe4a28b2b4954e4c73a6941679769e690329029cfa1d7b13bf83c991ba7d8392e16a5839a56a59333f998ff761d666ec2d99485d320357293431144a8ef906f08f3b50a47a261b040c622f19e432db27fc15a47d98e6f02046485dea03d375f9c1fa11810ac8c33088edb6405c7bfdceb2410c5dd475052e22cfe30a8ef3d172fa1b71f287be14067d96bd4652a9cea411ea2f64d6b08fa7569272c43d7dd329164f2e9a2600324958eaafdfb5be31d3f3a72847c2552f5a61111acd5d243f04dda4a7a945025e37d7904d8b063ffdab9c9409893c3f29817a0fff373002450637a2bbb102f29a9642959974229c724b3ba1a087539166e440608fe392f98bbfcdf04f017fe0a4133c4a53fc347c88756dfa"}]}, @NL80211_NAN_FUNC_SERVICE_ID={0xa, 0x2, "62f932ebfd00"}]}, @NL80211_ATTR_NAN_FUNC={0x1b0, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_SRF={0x1a4, 0xc, 0x0, 0x1, [@NL80211_NAN_SRF_INCLUDE={0x4}, @NL80211_NAN_SRF_BF={0x103, 0x2, "4d590b1a4998842db4b09554c5065b981bcfcf03d727187399c80387bb2f6e08643471f8f8c40c0764f5429ae20722c079b9c5114f4827662a1b3d40d66260f00bc6c63ee25f0bd4132051b39a5911c15daa1364e07907c4298bb44b8798bcd0805f7d693be0247becf3d9e374854ba6f8e997b9536714295390eadde908d5e4c6c8842b6b4ddd27869ce481b5d88d7ede1b4e4ebc980a1c400c20cc7f0e0e3dd347e6e346ad0796f7b464fdb492c3b670f3d4b62e67edbee1c0294ececeb7f6200cb9a96a36343e7474225cd5e1e04affbeb484248bcc07b11fba870130d3e848f918a7d7263edef15bbee78872812988581a7b7c4897642bf2f97e36e79d"}, @NL80211_NAN_SRF_BF_IDX={0x5, 0x3, 0x7f}, @NL80211_NAN_SRF_MAC_ADDRS={0x10, 0x4, 0x0, 0x1, [{0xa, 0x6, @device_b}]}, @NL80211_NAN_SRF_MAC_ADDRS={0x70, 0x4, 0x0, 0x1, [{0xa, 0x6, @broadcast}, {0xa}, {0xa, 0x6, @broadcast}, {0xa, 0x6, @device_b}, {0xa, 0x6, @broadcast}, {0xa, 0x6, @broadcast}, {0xa}, {0xa, 0x6, @device_b}, {0xa, 0x6, @broadcast}]}, @NL80211_NAN_SRF_BF_IDX={0x5, 0x3, 0x26}, @NL80211_NAN_SRF_INCLUDE={0x4}, @NL80211_NAN_SRF_INCLUDE={0x4}]}, @NL80211_NAN_FUNC_TYPE={0x5, 0x1, 0x2}]}, @NL80211_ATTR_NAN_FUNC={0xc, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_FOLLOW_UP_ID={0x5, 0x6, 0x1}]}, @NL80211_ATTR_NAN_FUNC={0x118, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE={0x4}, @NL80211_NAN_FUNC_SRF={0x10c, 0xc, 0x0, 0x1, [@NL80211_NAN_SRF_BF={0x103, 0x2, "27dd0deb4da26be7b2cb056db37fc588e74bacdac7a841562bddbba1adff58ddb0697d165b7d12543e2215ba69042c35ef7caba8e2e4c9d365226b0d026599f3ac3a17d430efc474cf00004e0abc985e286708311b9c6a1f2a113bac11d881e249cbd0e456c764cd048f0abfd946a3ad1723e97a86644824c89b03a4985752ab7f8d9e9ccdaeab80288133004be3fe8ae3573b3bd689f4dc59ab749213058a55b01f1e6a9a82552ccd1a771d42435e2dd1c6cc1f2c2e48d6381e815c828776ea6ba14e730ab04747e833134728a764e67f67626f9bd9f52c0ee308ed3bbf9e5625e77aa898012eb54035cc0ac59297840a4e19c057ec978835b718f54fdb86"}, @NL80211_NAN_SRF_INCLUDE={0x4}]}, @NL80211_NAN_FUNC_CLOSE_RANGE={0x4}]}, @NL80211_ATTR_NAN_FUNC={0x1e8, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_FOLLOW_UP_ID={0x5, 0x6, 0x5}, @NL80211_NAN_FUNC_SERVICE_INFO={0xd0, 0xb, "2b7a439b67ec3a66b411e0d2e4749208caa705ab110fa37438d3400c596a699f82c6584f1e0b1b54a4bcb90008d58ea8be0dd9cc49b4c7c9d33627e63c50eda5159d5242aca9ef57fa609419ec650bdc05234672db426252a6bc8c51b4ae1b9ddf8319dae77f0cf6794f85b9993d6e5fc51b7c7a381ea240b9f54d35bf21cbaf5e335ed5bca4ab334798291521b7d03e2522838600b6627036e91b856bafb727dd14b7ba5861a7d976fd04be82cfcc416d89e62ee5a6e95dd190ee49d57f9b4adc24a03abc60977e94ff7632"}, @NL80211_NAN_FUNC_RX_MATCH_FILTER={0xf8, 0xd, 0x0, 0x1, [{0xf2, 0x0, "a419222dbb6cbde7d5dbbc80fdb10c28e806f03323bed74df5bfd17faf3999327ae1d599eca8081d62959dd69d9ca074ba88dcd37b21f0911be98cbe0c35da5fe14ba1e2c9251204ba52dcc9f7e4236db35fd2ec8603cf21aec8a5e26c37d941b2c68af85c9b2679e1dd16c0dc4b29f58b984f217a4998be0f32e92ab54e57f37d1f684b9d56533d4582697b675a18778495f1fdcb56d2f17cce6056fe82a9577efc528c0e5c124332f4b0119f4e8a904c7b396dadfc5254769cc752e74cc95289e7f850bc0bc87a72e1f29c270589ef88150a763cb7d99632a9542a3d8c25387f565b063f31c8a9834c206b9aef"}]}, @NL80211_NAN_FUNC_PUBLISH_TYPE={0x5, 0x3, 0x5}, @NL80211_NAN_FUNC_SERVICE_ID={0xa, 0x2, "fae631f2ab83"}]}, @NL80211_ATTR_NAN_FUNC={0xb0, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_CLOSE_RANGE={0x4}, @NL80211_NAN_FUNC_TERM_REASON={0x5, 0x10, 0x73}, @NL80211_NAN_FUNC_SERVICE_INFO={0x8b, 0xb, "4cb6aa34c2b8960d458a5f80e11badf41cc1930def9ccaf80d717691cd829d90ca0f3abf47b6036434560d638fa01618aca75cbc960e086b9d20e47caca26b77c73b628a2b7d23e8e69c09b237e0cdb5afaaaf31f05d6fe53fe96ac4f73e2e6e1a546cabbd52ca91b5562f91f25b6a5acfffaf362522b91572460e5fc388943865369f97df4be7"}, @NL80211_NAN_FUNC_TTL={0x8, 0xa, 0x9}, @NL80211_NAN_FUNC_FOLLOW_UP_DEST={0xa, 0x8, @device_b}]}]}, 0x4f3c}}, 0x4090) (async) 00:14:55 executing program 2: syz_emit_ethernet(0x6e, &(0x7f0000000000)={@broadcast, @empty, @void, {@ipv6={0x86dd, @icmpv6={0x0, 0x6, "118a98", 0x38, 0x3a, 0x0, @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01', @mcast2, {[@hopopts], @param_prob={0x4, 0x0, 0x0, 0x0, {0x0, 0x6, "ac1647", 0x0, 0x0, 0x0, @mcast1, @private1}}}}}}}, 0x0) syz_emit_ethernet(0x10a, &(0x7f0000000080)={@empty, @multicast, @val={@void, {0x8100, 0x2, 0x0, 0x4}}, {@mpls_uc={0x8847, {[{0xfff, 0x0, 0x1}, {}, {0x9, 0x0, 0x1}], @generic="00192dd2a572a017b9a5fb8d6d17974f0273b30efe9836fbdd754d3265547db552374366af39716466aafd0f374cebea8f5a6d224806e834d0fb4a3a25f26261e942ab664b4ecb5b3b8343f2d5cb9087a52e89999c9c04ac69f3eb963c14bf00fc7be132f9e249df8a126208d59924fa5a0432cefcfcfe45b49f1b90e3e79a37c835f697266d9d301a231e3d41786abb86ba014790a089e121e782e7aebf36bb21aa655c7c488049bd67731ce12498386de8e51caea8b6374a34393594d53ed3c295ee24ff0eb7434b716da0659dd5f1f3949f8f0a39087f79441ae363eb7c09f9d1f3db646066376562676b"}}}}, &(0x7f00000001c0)={0x0, 0x4, [0x160, 0xf23, 0x40a, 0x399]}) [ 895.692845][T11941] F2FS-fs (loop1): Segment count (62) mismatch with total segments from devices (1743284064) [ 895.695438][T11941] F2FS-fs (loop1): Can't find valid F2FS filesystem in 1th superblock 00:14:55 executing program 2: syz_emit_ethernet(0x6e, &(0x7f0000000000)={@broadcast, @empty, @void, {@ipv6={0x86dd, @icmpv6={0x0, 0x6, "118a98", 0x38, 0x3a, 0x0, @rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01', @mcast2, {[@hopopts], @param_prob={0x4, 0x0, 0x0, 0x0, {0x0, 0x6, "ac1647", 0x0, 0x0, 0x0, @mcast1, @private1}}}}}}}, 0x0) (async) syz_emit_ethernet(0x10a, &(0x7f0000000080)={@empty, @multicast, @val={@void, {0x8100, 0x2, 0x0, 0x4}}, {@mpls_uc={0x8847, {[{0xfff, 0x0, 0x1}, {}, {0x9, 0x0, 0x1}], @generic="00192dd2a572a017b9a5fb8d6d17974f0273b30efe9836fbdd754d3265547db552374366af39716466aafd0f374cebea8f5a6d224806e834d0fb4a3a25f26261e942ab664b4ecb5b3b8343f2d5cb9087a52e89999c9c04ac69f3eb963c14bf00fc7be132f9e249df8a126208d59924fa5a0432cefcfcfe45b49f1b90e3e79a37c835f697266d9d301a231e3d41786abb86ba014790a089e121e782e7aebf36bb21aa655c7c488049bd67731ce12498386de8e51caea8b6374a34393594d53ed3c295ee24ff0eb7434b716da0659dd5f1f3949f8f0a39087f79441ae363eb7c09f9d1f3db646066376562676b"}}}}, &(0x7f00000001c0)={0x0, 0x4, [0x160, 0xf23, 0x40a, 0x399]}) [ 895.710284][T11941] F2FS-fs (loop1): invalid crc_offset: 0 [ 895.712475][T11946] netdevsim netdevsim3 eth3 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0 00:14:55 executing program 5: r0 = syz_init_net_socket$nl_rdma(0x10, 0x3, 0x10) sendmsg$netlink(r0, &(0x7f0000001ac0)={0x0, 0x0, &(0x7f0000000000)=[{&(0x7f0000000040)={0x114, 0x13, 0x1, 0x0, 0x0, "", [@nested={0x103, 0x0, 0x0, 0x1, [@typed={0xc, 0x0, 0x0, 0x0, @u64}, @generic="9a8aa489160a116092", @generic="50bb2d6f67d29d6fabadb107d0def49c88ea04abde1d5e8d3fb22a1b5046778bdafefc46b0449ade68bf84b36ec72dd71265fc2e882348c26c2126237dd5b37f5ae655b1086cda40e00aec58754734be31d750351dc076eb47d96219c08c029d1608a487f26fbe816b89f7cb81bff81a8b7a82565856555ee923c65973deb0a99b962bc0fe94a3fcae3697bd7b85b3a682167c43dbf137115a40ebddcad74875cf0d972df9e99f07976773f4d98fe3fa370d47eb640dc5061dc35817c8a66c29be82fdc2f4393c05a007d12b505a84dfdb98d568175b62421d726d1e5331e1ddfd4d770b57e091511131"]}]}, 0x11f}], 0x1}, 0x0) (async) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000001780)={'wlan1\x00'}) sendmsg$netlink(r0, &(0x7f0000001740)={0x0, 0x0, &(0x7f0000001700)=[{&(0x7f0000000180)={0x22c, 0x15, 0x10, 0x70bd25, 0x25dfdbfb, "", [@generic="aa53c2396b4de57014fbd700586709e8308d140b52c5c4af61389696bf98a709a1565bce53310b1ead7a60fc8ae24cf41c5acc2825147c1842e5f21972716b6cc412ffb08758078688fcded6db5ab16b000323afea621c90e2db61be8199326288ac2fa75962a066b20d8471eb2b84d290d4ca721e5101", @generic="10789c6d6351ddbd39d9ad50aed4a5eae36a18e3147c0457de8bfac6a26a9fa313859d195b0c332a83e720a12ca44183d76d7b5320ab1c010d4621dec66886a9d98f139b35fdcdfceeec11892083c7c4f04a2e3902147f50445604f77f553a363041d1f3551cfa9a76940abddc0e9a86848e430ad4c84f7525b38dc976cc5c298217b4480e3e242923884888ddc0933db558bf4d98acaca5000d83ab17a9eaa46d56e42683bf675d", @nested={0x32, 0x2d, 0x0, 0x1, [@generic="2a4d87476b4a56f0c1bd86676351baf8ec794cacbd8e6a9a9462", @typed={0x14, 0x95, 0x0, 0x0, @ipv6=@local}]}, @generic="a4edf6c22fab00ab4ea7d3fb51579b9833763216b150c323dfd50f7543fca90d8ed979afd82f73058190a07a625f0a293e8181f270a654c895e45b63807062026594fa847e9c85f79a4d9c2634e6442606f79e8964cd0f050647a1c8bc4d651771076f3241f462f98c5ed7d0777f02e6bfbc12e620d96d5bf7370e38834349f4dc325661", @nested={0x41, 0x2b, 0x0, 0x1, [@typed={0x8, 0x58, 0x0, 0x0, @ipv4=@initdev={0xac, 0x1e, 0x0, 0x0}}, @generic="d33adb29", @generic, @typed={0x8, 0x3d, 0x0, 0x0, @u32=0x2}, @generic="a8a67b127efb0d1d71be5a69c1194f7b742db6f2d7c979a37c0b8be666c9031f7b6abeaed650a124f9"]}]}, 0x22c}, {&(0x7f0000001b00)={0x21bc, 0x3a, 0x400, 0x70bd2c, 0x25dfdbff, "", [@nested={0x10c3, 0x7, 0x0, 0x1, [@generic="5f3914b6a06c97aab390312ef30eda1f52a61ef232061b93f177090a18bbc6a3f489402ea6a51c93a444fd43b1f3ec5f34b854781c3d63ea096d40d840efacef7fa0a8a684afb9b717c2a6e48891d0eced7a3fad5fa9422e6f5be9885c33f405d2c82c6cabb0d9ec7a27125e5c2a7538fd96a734a487bc0d292d2c5ff5156bde566581ac443f68b1bf11724a65ba7af63751cb6482e84d22fd290e79b6e9144e5171544bf518a191cf2e", @generic="5ca707a71b9db1da948539f98b63f758e2a89091ce", @generic="693dafa3f74a904d6882d3ec723f0eae39e89980ed4e9163853f87fe4c7555b2c3faca27cc091732ece1a4b2a7aeab78ea401d9e93a769b9c2904398d5e7aa70d5e3d329a5e9db6a23d8bf11bd4dd01b42bcbe0ea072b9491d5b6166bef175e2f3c3a1fb55c8c3020535124fb217aac83a079e8ecf7168712677813ae877d3bcea2ae3988e112ecf031e57f02aee4f7a80011052aff51c179e4221af105914bdd4ed3ed87ce9c2020c0c2379d749bd0c261238f6a36694e04e9b1c8dc62c8c9008082d6f2c92c059799408634d00ce486a744ef6e61869e8ee1f47063c5813054aa59b87149a15e9e82a09b04bfdb323c5902193b5eee9c1fb7d81750212d4bf1317c882ed67954eb934b732b217b9296989ac0e68bfebaf366caa1b69d3872f2bf58ed08d28e48506bbafce031fb030db0b801d46cdca893bc600547770b90f2e1c07904bbc500f34d50e3fa5f35969ca3ea5ed78215d082115b0888a61c9dca728238811c0ed2308cb31b108e3ebf9e0be6728fcd26c966994b39e72e2790d26465d909fc8e7600812a768d8d6a19fe62a2b601d130e83cfad7d9004e18fbb112ab4a084dee92af1bd95c8ce038c1ad868deb6e187027ec9af00acb906f06229b9b77df4e71887ccaecfd4e13e48c9f3f2129aaf05d3af066914a80bf4857e01218b109ccba0fbb9db0cc245e9b8bc487914f7709df749ddedfcd1ddb7a964fcb20a49a6144a1337347b181c37b75b7c2041f6ae4c5dabba988a1db35e5cf9911b48bd81b225a5292da3fbe7cd55707d4df2b7de06dfcd9a540d20224e15c8d26cdaaf4af5e32731426d1bf1284a4e95671592f3431532b8c466dd7f0915c2a77ae29d38096fc68bf50222c7990f03c441a911d7a32373638fca7e275d95aef4aae53332140459780e475a4c1e5b634e44e5f0380981a9f04caa7c4f83467683ba53d14af87e325b8ebf3aded5fdd178d03955133d270686532453b943e680de7964347ea48908b3dbffb3c463cf2a69c74886ef5c583fff4ee8b84cb4fb33f3d78ba0acddd4d7ce5e593f975a6e058012743b06b9e23f3dda8a1d1b5aa78da9865291e032a003550166d41a9bc4cf7735a9aeb03af499ae53c14144a9c7bf64a98f6d896fa6d73fc3fbd71d82a7c66ddf112ed6eb9a13c47033e054fad2a01519d50751f4f0c8f7a305581ed672db59f400909d33b7dfa4b3b7702ec5e75d655dea03fa8992ce676ff719f538337f4b53894a5c23b8a53235106bf64fc83af85211363abb282a2e125dcd9ed78e70ba74c72b01fd9d40207862beca062e897f55d531ad8918b67eff8b5070a8ec11b528a7ccf3a7019f480c164a9ba7b1a4f99c584b1600612fd2b8052c36a53dc63e46a26006eb3bf29c677972953d70f671c758e84fd6bd6151a7b6c18fed54e15d1e38a8b4bb61a3854bef5e2026167f3034b3f819efe4d4fcd2a25821a7757ff5883c3318e3b169b356ae20db0afdee892eb39d95c8c2c1477e28a2808d72bbb276443e725c1fac40546c07cba301a9e8f9f0aef976e654efd13378ca0cb61a1a291045a5493dceb6f474e310c83a6f8d633da6a4e846ee1320ccd4a7e521647da754994f57344d67f18caa785132c49a93110afd81c9e1d3d631f8384cbf4688eb09f03d1988c37e3b33801cb3a061dc95231121e525cf828d9453e61454c3f195e8c874c2bcd07ae5dc0b5a856b938b97c5e0d6626e8d944a2fdee3abab76e5a2ad30ef3a73c4bf9c362d8acc5331702379d5740b45b301e4c1c690f0a1bf3a56b891f1d080adadfc240644d564d79bb1f082a132edbd314486cd341ef78f506a8ac63641f56a2821265c9c072753f959bcbbd8a2ec6545b2097283aa3567b6d1b5a2faed07c10f303774577bc066933d17f11c4733ed0a9a93036239a881bc5c35f668dcb6242e7aef4fd2719960a16cbbf178454c93cf1dc88f7ed497b1a43611ede09981f542d561107d6fa4860e0c14dd09f62e741163c8aa2d20189fa4acc2e7f598958e5206b785f20bedd5605df35be42ee28066849452578e8ef955dd25c144d8c4ca833afec219ce72ba21dc98e2520791234072ffd2448d05b6e714e222038e08a0c3a5b6262dace5a4c9f7d9e8eb1864a2d71d69d404193c0da6384f7bd3124b652c63a28ccdbf7a21150f87651a0a86ffad394d94ae30e71a00437ee32aa2d235c9488f2275e6c2f12ba8b6a1c79770c8232e4d5d01d9cd66999cbac3a7139489ccbf259fb0f4a0a72e0eba0579b74e5968c5f1c662ab5d1e85cbe5cbac7eeab839faf8b42a79b9d8b670544ee54cb1b2f6d1d210f647f18fe9dea0d3d529ae00e97e3da39a7bc220e057d3a7b5a35ac9736a78e29ef02a57fc534b873a28a36fc87d6a944d2ec90099945bbc5edcec845f857e8292a92608ff71a398a522fc9875db67a41a91fd1b5d9283caaa8bc7d7ea4f0fa5a73a32ef627575e83a8655f814cd1d77237652a04af81ee0a3cd70db77f49def73edf36e8fd3e7160274dbe3de0a9e8687a57a19a3ca4a7060f8e1cef3c0b688a122826cb6fdd8fc28d6da01e58a44a71a1ac472b2c523544598306780f92672cd205ca894d9d9a5db3a5c3064595bd829550a3e8913712ecfecc6966d8e85b69052b4dbfee6a0abd5fa65fc558ccb359cc783f9d0754d87fe993b1cfdc0c72cd22108094240378a8fdbb7dad41d2e6f171e9beae9a69a7875c18ff3b2f2f1c04ed0e278f296face95bd646af9abdfcf5d5e56be95134468ce6e16ae095b80cdcef6af865cce8ac39814001bfe4fd451f32c0ac875ba621bddf1b5ccb53d6be578b143a1516e7f64642c800aac4c608c144cc040fc77537edf68fa665bdd784a973c15f64c0de01479395bc2e12e7a90fa60c253cc832ecc44e4f54167725df514159fcff6c88b8f4925c26409f182d05613dda4494fe02a04bafa1b73e45c88351fd1ab8695e727e24d38f30c361f541fb3c4259f6dc1c5bd3fdd334dce2e60f16663b176d98f44401b52f3f90f1b53750b73c9ea864cbbb55cf91235a3217a6683e1833c4e58772ad0ce04658ce33c12951334b2f9e1fe2100a3da08227a3048e5843586a36a418b0a4a5cb2d892a1b5ef771187ac9b7485e316cd2feb71427bbb7ddb897adff0e6b92750a80210aa4688ce65f6b01d70104ac7f7edd15fcb99e5bcf3a6158e37458cf29e4af2e105613bd223f925163507bef5f475242efe7d3fa3bd9348fe8da782d8c2e3c671c678613caf8ba8c93ef065bebb4860b00d392169c1c46f1bd3ef407c6a1dce1677861131fc627a93361a11fcacb418972a0a89033f1abe371ab159b30ee8905c80fe88bf1ca4a5758bf45228afe8aa259341122254f88784c3399822bb3eeb54b5056b7f067bc049f03c22e945b3b098bc76f77829c6c3827492905ede9c7a4b3b952bf594495fa29e0f5a374efe8cffb15d6f3da80d8c9ebd397e30083463faa48553230e49f7d1392e52a0b7ea388e22f369ca75f72757716eebe06c5afb210d09ffb44d50d702dd8921d524116f2fe3cc4f9111a62d3bad4cc7249b141b4176ea35cfa59a408d04f8d480a5913bb330d643b4c5b9f4f3abf36c28ef9f54f48c5dd3fe38d1d7b1cdfbbe30e11e649440bc28e7987e156b6253f181bd0a1cb1a43943e9de7c278af9c5a40d31a888b38f29c9b3826be1def7629b1ba9f914a5ac76cbc9ffb76d3d1683abc00feb61dbf4bc147e0c2984baeec54f150ade633a20f30465eed82753c8a82fda892d9be069cba43b76cf07509315ff87f2373680eecf539cc178a7ee872e8cabd2c3f802805a66d77c29318685eb484e44851de01e652295dd16ce515cfd16b17ed762c3eb0ae90499e7d93c125580469ac6058c032d6732b4fb43e30dcd68fd16107b768891eb82f09ca94e2cae58263bb1f4ac4278e083440a882b5dadf0a22cbd8f4b8a5b6f6b55490482190e4331327d23dd681f4e543b715568798f0a3a58db11977047daae87b3b1c89786220ed9e42f0fdac88b8ede499b867bac1ae86f8f69e84b89f6378ff30a5fcf85b84358248a8e14cafcedaca78117e5b6579091ce271222ec1a885d48b5fae5995b6ea3d55d275455f9c409b4f3c3ab54830b5d6a8e7073415dc62a5df3fb42092599f8584412677afda19df0633d6aa512ac3b0bce608b77d393b680b0c19fe0e29a94621f7901081a827b229fbd7ad814f836eeaab0223087778e649a928af41fd2ef692c18c9578aef805a31c979343fc5f94b5ec202fba590f9787eb8759d2c469a905bb60bb38680cc503f475e86e6a624c7b0a60ab2b68890d0a94565dbdef8d690b833d1dd7e7eb44d1b3eb06caffa1b6b0b46d1d1e9c44c63c9c6d7646f769454fc1fa16ffb28ff5eb58f51b95c4720491412dc295a9c340b8549d243d1b6fd8ad0e0d380589bd1d0810e58a4055dd494d7ba65587fc1a7a19b2c0a52df4630e6c3b36ff5ea525a35f982f6a3c93d8d08699ee37c3d92421f2055169cd641157a1b32aab72a3b4252e7edc1e7175741810cd33c312d7f0c7fcf5a9f06c0bca54fb07ad65641d34a23bdc7454ba1f186f53e1335168726ac00dc8e82caed1ed69a28caa42696754fb6b8623bbacfa9ff8a4a95e46e9200be87aac5df78bb32fc2fcb4d9255976709a06605e70149fe0a9393dc11728b03a9fdd6c432a7d52a2b42a7ce0b2c47939e5f2105427b8c5cd03853a33dbae218658d8a2d9330b24ac021f70e7438039ebf9046d6943f61858610ca84b08df1ebc4a8ade23da9e097f815f5568abdac9fa7bc37e2f7c2e5fd748cd65a3c42ebaee5d6529b1d9bd538daf8713fd9b3adba32fc0a14bb148c3821417d33fa4aa471060bfd910919b2a322bc1844666e0b1bdbdea69b02318545d07f6367bca0eeba2f4cb1b772792a6f7bcc0f219e381eda278e96b411f696518bcd61d266f0df9f1b001ea360a0b945c6e41c92692eda91db9fc387e206d54b88650b9b0c02ecc0d243b2fb6c6053c802449db10fe10f30f122c4156af225f73dcb8f57c565e94ee7ba6205e6c99cdd61290c94e52bf5062548ba519d47a00c19d6f3c9fe92a4d5f839f2acfa624e7cc5fd511cfbc8aa627397570362d2f6ac951fe4f9091ac8fd163e49bc74c086fc15e2c7d638360dbe3b04f00c682450045ea9bb000840453d7051029cbed5bbbc8d2cc0a838bbc0a0fc00140308cc95f1a4e53e4211c377fa1efcc2e1792b8b218c1e601ea2f572a4d0bc9a4f4a6560d3ec36cef46ec10b3f27612778dfd3e782cfa16036e7153cbf8ab15b095c78d6ff03538674791df9c57cc3baa107f03dc6374e80d1c850433ad41483154729de464d3082000fa6c01db1fbf5da24b847ebc5a498b553363d2e12ba3073e283b795490e17dae23d611cafc07c641b2baeca46ed4566ae07383471a481a75088ba23d39f3d42ab6c52a10701d63c1c8b6576a641a198f09507f38cb09b2d66ca0c4d071092358a8ec869ea1e5c377c1e04f3dc616d764fa181d29d7c4430bdbdbe908fa9bed948c339b6bb12c822b43e4f7c470577c72c50d4e49c925644184b328cf5e1d0fd621bd4262e862ea833bb1756139bf4b37a1561378a65d35621dbb0123157a311ac94e1374d7e9ed8f82afc59e8e18d58b11a60b3fc5e441e3bc5d15b0ea6fb9c78d3c32295dd4d78a431b1b1f77493602727d82cc186d776b593285f08b5817b1b6dc24945d1a58c2ef9cc00036575e96f1ac29cfb5797f70ba9fd176a280b545641f16d7bc471a3ed0df23361592fb612011888aa"]}, @typed={0xc, 0x81, 0x0, 0x0, @u64=0x7}, @nested={0x89, 0x7f, 0x0, 0x1, [@generic="fe2d41cb89b942f2d6eedbb1ddad9adc56da363eac088eba920e92a4c1a2169abeba8baf33c72aa11542be6bb832db39ef688d00822bfa599b20ba9b3da3043dca5fff7564666a544a68523acf7659d026cc1e8f3e50a766c7f88946fecbc50c7e47be8689907a2967ac76f795fecd43127875d3214717a8d7c6f4f92ddb48b9521d3b3d8a"]}, @generic="a3e19699f758d004fffb02f4f7815f88ce4e34573973bf22aae055453923569636b7a4239f21f629846851a141b4b57e69d424718d119206e020f0f18fccb837d15ae3aa7a5ae9fe23d076caf32bcdb8ca5ef36993017c1fd6cdcd1bc40cf586e8cda9d30cc7944b65e77c7e9879b588187988fd9ac87a68b7a68f0b27511ab28af0414c32a2af2936a5ae728add9c93736731e4d80b699466b28e8b4550db1ca97ea4e077b66d7b07134ff2d86c5c2f04d16739136d610d0ea8d3b3b47c6fbff7dde81057dfd160d6b280f1cfcbf0aaf4d3bf0b61c4b27dbabca51ab3b4cf081c7b88598e7568651abd05af7f1c430ee36de59f4e16b0f5ba04de05d638666fb2d2769e82700e2f04603f454bc576607a6b0ee66ddcf5625b43144e2684764058ccb14f2b5fa245515214115c9036f28ae931b985d6ac5cfcdb892c5253e60c217a80b953c55e11a4b8191aede9b59ac42a0cfe0b2e564842420c3b9b4f3a74b467d7c72db597596c4f71ffcd75036a1948f5d0ac38891a23db9d10a7f8826a099494f6bfe40e4c0d44d489d827548027735f5b0fcf9e06c02db15770a148c49ec8bd72d546872d06099f9c7d78b1344b5f91a5f80060b3f1956e0270120304f0b028f5df67a2f255eff0de8036845ff19d4f6e0e84209cea90f572c8bea6a188a16d9c623cfaf029c24a60adc14674c9be92221849001799e2e7a6c5c1daafc615481f8fb7a3b177e5fe38a1f6f301ad55d7b468e17084936aca938fb418b12ff0c4df0d3afa84a1abeb7a151f0ebc3e2492bdce731d28cfe2cd3d7909062e8888b675ccfd4b7f7d44f231031947df3afcc23a0b70009b9cabb4624a48eb597c5ac30356db325543453703bdfbd709c3e9bf103bedd8413ac295ab22240c3a21bd6c94f2a3610d83747ddec45d76eb3f2e06220752eaee6dfd356456915e25db0a1edab5f8cdc2d637f8a4833e5a13239231517352655efad32564a873ff9a02f4339d6c8d4cc59b6d14077b259a1c7d79aec2bd5acf5a98e5fb172f9be80e5032ea8111bdae564298027f5064511a08b98646a8cbd061a3b84d90b088ddf0f36e9f09d986c4082ae8d5c01221f1df812e4f5c8cf0c4b1594b98b3b510b5eadf96652e933a424636145c9a5e7f5f0c84effc26a3bfb7b44147c69e2fe5272a38c77e213336d938e6d5914d5abd17e99b6d28058b7df205845c49c86a6988f9b2b19b44aa19a004fbdbf10028c0a865c48b4131e04b3e8d9958935e88333c30d67439eb70dd332a944ed3f13b591697235377f16a9eff5ee80ca1d031aa699865bfe759e765648ea68618234d0b2c234fe70829080c411004e27394f4beb20f7afb595f070aacd1ad6cd3f3daacde18e3f8c5e0d6f5a770a1387dbcfffd90a4b1126f6ea6cba6dc9e6d6ed33f831c0f82b08ef950b0c46f84f4f073219829f0e2c62c5c8c2ff8d66b4354cb0962bd29508413970a393ab69e99ea45d31625e18faa232ec32ee21aa1492919e9396fa7882e0474b3b4d72cd72c8724580521e8aef28c5e629eb0e1768ca7735f7559f1e9cbea966b334e721ace7c560f356cdeffe48cb7bc2f2e6aea8294eabf5e6b354f896504261a9d336fc66e80b54172d856896b4e6bdacfe03984d2a97d96f07a556931075e8e06020c618c4cfb42879e20dac943efb61e7ca2db3ea4e9798aa49428f9f3c9e701003a5be9626b3864a87d13eb5f053b6285553ce6308fccc775f83a0c954ce04ce6934217f617e6e600d64f8cb78338032ae51f16421976e9cfd2b73476c091ba13dad3d1c4649ea9f71aa18b44f21e729ba67c9873b17bac4d8214189faef18df3aa91a7fd3f08fcbf1d8422802456ffd523b3a0666a6d33a35a3e6de18992887bff9c6158b4d248c0da73b01632610b19c5d9acd788aa1f2aa13438342933005399c41c58fc3d664c5f88d5c31d2f3c795aef8e8f780014ee0c4e4119a881e187b6833549fb75484bcbb5b8f93e6861d448cb60cc00144df7c852af0e0e238f10270023028ea5c02942d38a653e37c7ecd79eafe709122b230b48e054c1e2bca2d9eca3a90e72723d56306da30d69ecfddb2b5c1223149e2834be44cbaa44c9fcdde89a6f64cbfc9dea31257c727f0ae0356734534f2d7d0a544d41f7558297eb3786f048ed830e4f8eba101bdc241f609af3f71fcf90c1f9df23ca9450332e777e1a108d31648a2748dc741faa5ac33a607d8481a91d21e0b7e364f876ccc7a10da16f9f64fa12e4b5c9ac14ad2f6f26e86d70a0dcd1e2ca70686c00c6f6d08f0eb54dcd70b29a02f1cd90c464220a6b96ee9026bab966b6d0731fdffd57e6da12453561a69de2a499307d04478b9b82d1df9c1f836b1cd17ad0296bae16953801cff0b9d121fcfbe954b012adbf04069ccf748278e796a9f42c6af5988ca9e2ba54f5be1c76f02b0898009d84ef4ca7246dd763077aa7c2c7bc3493beaa9d5bc349ac115396ecf4b19f0dafa67a240381b0921705554651061c39830b78821642c2b42f95d7cb9ee51d9131ae73ff39c7762bd9c17827a37888adda03de255abb8456625733393e0cca82d0cfb3b883b3644a9f59f9da83615471c000f741577d78739c68901ef730449ae73179f7acc124e488164dcae59ce9406da567434afaba31d43e86c8fc6bfbac5f1e3991770ba629fe491cff1d17096d3fb6f116b4fc3eebcf2fb779843af2f44436fd2c0a8db2ab9fcfd9413de206120697d0069a1f323851f2cb2bf7442ae75bcdb9305a12ada67963f14b9e302289da45ae139ecab92770bfde33f631c9f08725d50604d249e36dbf3165fd7949b1a81e6576022a5ab7d2d850c673777fb673fb1f7fe5272316ac26a18db44661ae1bd2358b4c03a4b220bcc57e8825918177bbd2655ab4f1a9be41c1fad7e6c57152136a16d8256b1f394b34b57ed3e52cba44efdb008617977976f65c6dfd51962d1499af966c4dd4af6a5597c4b586d1e4400ad876beb1cbc3cae69b7244713bef6ac8652f32b26cd10b249d589fad051d91c5c8de3df1d90164ff7fa81f3690fd924cb010911c345b62d44447f98b291899792c763281c095ed509830679eeb6a11fd9f3aabfc520f9ae1bef6078e1abf3607f7ee088fd31422d4959c5fb12bad529d493e105f7b162bfdf43d6cc1e7eefd5019aa8c5be0e22a2694046951a9eede0baf184907ab890ba2d5fe2df74ef933bae848e2c77a3a3df4214044a1eb6489905781b417dce8cd239c7709f7735cdad73b281b77272a08536f73b590871a0464b41faea9b0c63532ec0270e763f54260113a46fcce27b4f3f67c3a0778ea65e24b9e493229ea0f63ea0d0c0a003ca7399c3046fe65d904b1a79ee0ee0adc5dc3211a3972e1619a9684808fd6a3e9636a022da55d8c2e4933c815e14c8708fbb61f8363945431359d3e8c73a2065fb04bd06475dcbb8d543c57a59c6b4c2a0fdad0aaefa61d28260b47c87401861de408aa615e9085695d64c65ae048fbbf277a52f2a83a64129bebd101980c104ae6e41554e53a5dc5332a1b0b47da009de0140516e8782a0f9aa3aacff75d96dfeb0b153dcbf4a77a624cdfb80540fee6ca3a55077a1a186c0569eb666b2bfdb81db9eb6a2f5b903fd919c1cd9993d2b90aed7506e243e8e7083b4aa13ca517acef0a69866991176ff79a2f664c228f815bb8633c95fecfa6777a676efbf07b740ae5c873c160df4f8b9d17316ebb26d37233859fd5f81e229f8339cd2f6166c5afc21dd60ce3312223956d6b460128b65479432798c497d862ffb19bfa0d07ccf8d6b7a69bfa0dca27910b3bdd0acf1bf960e13cb1498b26e3eb010d2c6e508d34e7518f5cbb69e80ec17e8b39b0f1f0e54a37dd13cb61908efabd6607e5658d85f05990e3823bc8121a93f037280aa39797f4a6711995c0997872159771f299170c8b3798a80e185f32d3126ee3c8a7dd8b45c13a1e04415c2143e7461f0035eec1295d974d2f3b409b054b1797d94f5667f8fcc9aa72bc3dce572e8e8081d00924980161c226120d9d40b3f2e593f6b89e23b28d141a2211cc995d5e9a1bc33c4300450310380c9b99bbac0fe755040562667d8b9e48ad7228142129e21701abae5ba117fc2326760ff6ee5db67b6a2a63e2cc7fbca966551098de52a9f76a1765b4892466ec4bcb597beca373f86daf447401d9c4e41d2e129f1846de4677549591283a172290d78b89e1fb364aad5155028a013d1c047e93420d61dd9a555ae877dd3a9ffaabc456109fb28fee6044a573bc2438b3716650a707933e88bbee67fb69832ca6e9fdf11d0f80e49b0274e7b77adeb6d13524a6fa4813f400adb087eca451bf8762a6237c232f42df27b040b4d297fb60ca26119c9d5827e2c0346bbbdd36266fa6e658da9e098f1e62e40e3b807a8cd1c1b5b86c371189c57f02cddceea6358f7d6ef1859e9d5d80e5fd914b7b601c7c3e7587ff27d70c9f73bef0cc95d81cde22c734f5adb5fc9c21ee20b53ee4ffe42b62c0b0329375636a7593ea4b5e972ca0008577e400e22b52237aa14a88f40c63c633c777dd1fe7025277b73661b81470ba46440ed36cb2b9aad93566205939c2131158b94361fcfa6f6e2b0e6d325f4099ecfe890f8a93eecf9e0f0fa2d2775cab76f10aacba5ce736fb4b0fb63203da03718c85116259811bd0a4adb30e5389d5fefe4a7dd072cfe9c5761335489ee0f6a23234f805e5e6f7e8640070b350155d6489840894d0641709d09754d3c472e5ba02d4c663ca795829122df6cbe7091e596d710ffb29356e7046d32988a531f489cada1bda30a20a478f160dab76ec9fb2d8cbbe9d936ea726eee2c98f57bdda7bd216beb15cf5dab7ed95404bd81bf01e63842e37cca546862217000b11f1c9a373a318276c1b099845786079b93e6d9ae2d67e1ba6679524bfa55ac100a8fc81dfd65e3223ed65b8f443d4a9658698cf676df1eb6d5d68067a4d634380b0d109ffb670bfcc265d513babcb1799b55032ca513206f5aa53832734768e1e43b52663957ea5270b2babfc24d49a5031eca289d36358d9ad17acf8dfc5d69e2b145ee0fa80c87ec325ec507850524c1c7339b09411935a40ce6fc59f9f6a5f156b6d033c14f7f414098bc5f5d007452ac28dc195124e1eb9e1539295599cb5e4fb3c69ee56aafe9d1d25ea248afabdc9d7eed1decf1b87e029f6ece1d5940d1d0f1bd5070e9ec543af5bf886de295a7dcf76182b3ea1719061969423bcb0f1bf74cbbc6c134d99b1b481079ca4d1ccc7aa35da852cdda66ee9e587ecadeff7282ff2398033ff01a4f9e1a01fc1d7ff762ffca9b7e3fea5e2dd314ecd5fb2cc2cbb8e7d1d698d0d5c7d1d445f4c486fe370813c932bd32a41ba489d9942f8b8993ac816ca345e591925f5ceaf2883f1e4777d9e40b466a87a82e3e15edde80b0b7731b15d3f161184874d131938ff98b23c6d18245c7cc2ed3151fabeabaf92e60872c2bf1fa58129dede7f677117c70a8b5d78b0f670de2b10559b7b27d3e1489c4f12d2f86bd03a8a850146a4ad268ae3f986e6bfc87ae7639338206c29dab46b0a23cae3b4027ec98df65d9425aa6a81989fde9bde02dd4c80f34d5aa39c4038d24bdf8e091ac9b973c38aefa3b90f19e13ccc683c820821fa5530254902c0507410f55f5c7fb1b678fb949824dc96da07bef71ec66ea9cbe7c369af1995d9f1011267683ff47f99cac78e1837cebc4b1e13ac55363353e39f34446b5e393986e42554bb98ee33d9ffc0fd12fc3625341c9e95", @nested={0x4f, 0x5, 0x0, 0x1, [@generic="ee665653fd72d8530d337726b607426fa3dadf9ea248ad73798a029a775db9af6abb3c2388e328a3203f6d", @typed={0x18, 0x69, 0x0, 0x0, @binary="50d5ad0613f5f5905b7d31eef3f6551e7b09d60d"}, @typed={0x8, 0x60, 0x0, 0x0, @ipv4=@empty}]}]}, 0x21bc}, {&(0x7f00000003c0)={0x133c, 0x2f, 0x4, 0x70bd28, 0x25dfdbff, "", [@generic="b3d590f30c691275c3549fcd5ecdf9685d2dadc2fb1d4c091d27a488b44b82cf937766daa02e0c1fdf2be312daaf2253df11e73da9a7a25ad129a541ebb2af0fcd95e4091d05c46ea2930a9764500a2d5108dacf55152eee833f0af64288078b26f9eee8e7d4eb3cd8163726e46e616951326106d81961ec6dec092466186d9dd194e87ebfd0de045c0070a05aea0f0d36fb18bb313f81458569d46f2a3257fc082f550af197cf61e7bfcc9c1fecf8cf4f5b0d695d68dc0640bf8dde9fab2f9df7531e2d75cb7bb63c78e775d2fad02fa85cfd98feedb86b575821827bff9b83628b3c56a035fb9c9dc5b4f515a801e84f83712abdf1ce71b73805a04ebfb0dbbedbdf68d2b06df69fae8fffc6735034cb24b3bc0462048d9d9735e76aaedfcc60c8fee74d811e92adca4e2f6baed1688f5bf14e3d34672d8c0805987ee5d3ec3794146507379effeff7d310c384528dabac98c1569df911c9452f4acf379be9bc5a23a389c9d8b9dd27f8190f24c4d4f3637cf70ae22a1b622119f876597f57c9aeb112bc5114f68492c89fff6dd765bc98039149a69348b476954a915cfd777676ef9755fc06105dbd3791ba494503513f62a8ee91cc14cd46f9062303114c8be74a41435d29d9193cf5b312bc4ac483d2190d6b5a66a42766a3d6dc294ecda180af0acb76146e739ac8c55d5a9e3ecc10ffb6e1a2d072f956741fb152cb8acc782792692aef9547fc9de8b92183a5a1d32bb516d9c462ec2f090c30b567468aeaa0bd9212dc74a4159b04d290d155f733e2e6cfd0e5e5aef0a389182fa2d818cce79122f040f09f454e53869a84094a7588e654956435c7e332e9e8485906623ca0a52b6813bd6569138e17c99ff917691d1fc1d5d2f5e082afad6592f4584b5a3d1c25170109474534f4a899ac5f69b0eb5aba5fabe61f2ad3b452af7da4faa0a220970d1536dbbe0dfa9b9b894f80504645ad83ea8a4f68b47a19c2d46cfd4027497dd9cda42b056cdd75846d627eeced235aa54a97c622615bcc80591c596b50d8dd495fc3a59706fdc0eb3785c9b93ce0494dbb9ad8470af3f7b457a76d211af04eb104b832c6f3940ba9221be5dae284fb45312f54d5db3d94e8bf7bf9c000a180918f00dad4a4dc0701e40fa387829eaa4a7e33cdc59717046e1433e13489821bca6c82ab63e5b9311a18f25c8af6a483f162f829a5e69d13377643e42ade5b96c18c03e357e2f95d387d252a16f8a40730f6b0549b517d3df79500c215516aa0df687fc02fb21b5b36fa83b33ca87b508c448e124cdeb3da7c85e3f37d16f292595e9addf33b9639a43d28509362f8be901ede7b0b09dd31378546a9a4f4cf0e853cc8b14881c49ede97c8d07937312ca7f52fc644fde336f4dc361030ffaa746f9bce298fc261c9a4e515b45cfd9a7f719114393ae29759be63adfbb95191dd505d19570fd8c43c3db8a9e7d0ca08811ac5d1fe2ccc16971cf6ad02301b26e2241e4a6c4a89edf9dfac434d12cd6cfce736b6667eaa810555cf869053924e15beb9f1ce958bf572a3ace143e0eb6b25ec3d66d91f82960cfda5e46a831c60ce7286aaf4c78e9fbf96dd171610e0f4345a237933ed6313aec47f0710cad38ab6e3a59ac5f09f230e0e4c8d33a4fb203a86c5176f64b8cb4bfe0f124f9bcecb6b917ce3d4609f644e5f85d0587b636a88f68e267d0fdd23df92aaa064f0388d61d24e83478f9920a6d1309cb0c6c3b5a5e17b1d4b61f5e6569336e2220e965c492eb13c75fb39a67ce35345e7fc8bba091f55baf9fc4314104648e0b6567d94a794a86dd347357d33e30de4fe41fefe15c7daac810c8af18711aab5e90e1a48e14fbff0d66b09419b047f759af05376cb2cbbe46dcea5556e53fb06af9debabb55baadb4d6c7c6b6c3dda9840cc34dc9bd0599139d88982a9ca4a1a025ed1391c2aa46f2cccb48d3f2e198abe4c0817a600a2db7fd00423877e12d6d717b26086c45bfe4dd8c96b1493d4228e92697ed53417725f5d08a49223412ec1bd2717eaa709707b551eeae564f06c9c463f51bcce89a589bafeb39cc4a26afb37d7fa2b15fa727e60093a5c5cb8d4b65c953fbd5783a21f980dd6183cd2f2b1023064950e603b4cfd7d511d5116ea1fcb89e6e98dbcc48853ae132202c646c3fdef1d1368b933ae34937cb84d6f9973184f3c25c6732478dc2466b4b92ab788f2110d8352908cf503d029cf1eda7a2e214046f0d67f8635d44f4036773b90a5999ac7e566fbe474302f6ff95369af62ac386a1d4770e4163004d62ad0ead552915e112cf8e9b1a1129dc6c0627331eacd665353e2fca29bf9e34baa35db1cbbda73ea3bc44a0e2508bdfd0234c15fe9a583ae48bc7ac17df759cfc0e319647621e17e3d8f26e508eb527a473f04850fac284d03280de290fdeb2ae88a495befb9a60ec443787e6c175abd4979dbb97adb2b0c554f8e2d5fe173b7ffdb63c89e89e74c2362f14893bebc1ce565c90596ad226bea5a25d0a005c8c9502d646685ed96f5776571902528b8fc72a8d31fc226687814a28e37438b58720f63edd38aaba5b00e734abbb312fcca38e455da7e4ca7b7eeff6fdbeeeaea27bc0600fc88c57d8974a113f4816f7bcc2389bd228c3154a3e73b21f4e1b7443fb642331f06df41e0ffc6b4432b4bad38b938b4e817508f73d807a56bbd2c0424d86a175d40041548a312d3d30ea53b7f5029aa750c0f503e17f7a9b7dccb5e2b50fd3a71fdd451390af398c82ef962c60c9a7c5931aafd7c4e962160bd926dfc44925907e3e1e64577a7973aaf448b2a58011507a8f8d14c0e661ff74e703ae13c5b4fb3d12c3cb1d0b04edb05294d884bd4fef25b0807bd813ad551a69b634e3f26938bc3bdc40d12f3cba025bef0ae2d409901acc43f53c3010bfa4b23db54c11512ce569a21948e0e150c984cc6b4cec737a43020eb630891166954c0e815070ad607dcafb03cc54f3bbcd86c3c0778d3f01fc811ab661731659b4830829ecfead080207c4e680ba16fcf297534fd8d25dca637551c67a672ea2d1f4fb262f1e4ef3dda295d13c569949a6e8e55d443b2e4467e814b051f229908a85ee671f68cb9500fa7d736a512db1de80c3a587fb9ac9d1e353e6f817ad7aef833cf8c96f76fceeb8fbb2a753847c2725a582e5fb8c444d54a343a27744a333393903560341dd1e21be30c11597544000c6e3c16febb385954da846e4a72cbd35ef90d6c643874133c86444ca820de3cf915aa8e44aca238ec0ac7351fd65b9e11e8d839769c89ba53d303963c807711a5e025ce9cce8da982a676e31c3b75ee0c04c6903290d62d176c0ec6fadaa92810dcce7ad0106db4ff1a9a97eb1fdbc1a1358c35dd3a750d5e0623cc88c28ac4012df546a20993a788f5620a9ad9b25b81e843607bf96752dd062adbf12e9e3f1c1aea4747be6d8982e04c123544838558b512da44af6d0bfc0bbfa732171a78232a0afbb4af4681634abe71c606bdd52c4cf09ab2d9b37d5f153d3535bd03f9a66b89c44be0871f7a0394311ba404ef767f309876160549eb93d84cfa4758d96e12e15f0ba92ae03259fa04bb1152105e38bf39516fb80daa8ee5770613a0c5352405a7e9be6a1f10b9d5db6d08dd70aaf65a3de74b90831e31826ecd5a86a0293c41da4f7e44818ba0e16ab534cee84c871c811e50a0b9e533762632f8419e3b944f9a8e24ebde35d4ee499b4b80448b5f1cf50d5bd32b780d2d8e628c4599b25062cdcedee73a4cb1ca25d7820dad9f56ee0a59715f2dc81c837120a771ff2235b70b981f29873e410ebcf15a825f283121f51e4e9a1c39bea69b4ef11defc1602ee6ca64777eb76322f10dce604bfac1faf4cb34cfc2d0cb565fe1962f320a2ad9167759110899c7bcb01f62dd53ac085d6db389bab07d8ec9fec6b61292444ac3e27dbd948694f0b2fbe503efb6bfe0096d185bb9d1b768fe0cdfd9f95e4ab6b779e6ee8dee4b190f5f4fb40bd394c1bbfd17b8a9f9db3a2e0e22307a38c8d95513022c21dbb85859f6b8008d1a315f9c75f820605f6598b23adffa34db57889e1b3c57a9f5946aa2c198fecb9f974901b3d3033728657a2196697a887a5a36ed60a1b093c0353f424d65be2a56828a89d96957983b0d504807a54f94b28ec5248bd9e61be1d33f00a0ac95967d03e8c5e99b6f4d41f44d0708969b82923cf6acf2068b029a37d45592bb29b3bf244e950b204071d585db30aab397926178f0089dfd5fdb57b833d6f13993f2b11a4e8b550fdeacee0fc3a2addebda1fa6d964fa42b21123d91c9a1fe42493b6b4857250791eac991925498e513007c13e1c9dbbd1d5edc1d1c76dac5139daf26aa3b516a52996ced04894f451d52aeb13f1d8607dd9ed724fd706c4ab2271ff1b8f871cc2907750c6e91a5543e11d9fc2c12bfa71f230192b95f9c6e4c320a931316c2ef8af564538379e1a8d439c301c49df0ea723d2347e13a558e9f47ea3370b574d5ac3234b1f1b8ae10a7eb5e5492c465d857add924dbefbafe3b7438e03aab4642db799f00154a653299ed34d2125283540d874e8316e396a35417e00ef258ebb94ddab67aa76463b81e00c2650f871b64e9077bbe875000072dc04532b866fb610e5d8ca3733ba4f799aa9314e6d15a24753965ea301d7f9407601dca2b8f8c6ef2c63e4cfb3864efef6038fdcb763ef06b096981f4b445a5b3734b76d5dbbea7f1ec21ade973d6bb5c43cfb9508451c8c463a205b4c0396fa8fba55aba9c8a3a90984f55b3c66e3200c4b9643c7bdbef89be8e09fc208c8b572ec799dd3680d703d9f5b8fbb86c7c474590554acb90a9de17e4af6d93d8315de00d58c3809a07a31c37fe82104977be1a80b30cc5c87601cd0dec0a4aae6611340590b42f3a5ef9b80d3fbd8e2a9af8704f9069d8c68399856e336ab70cfe31658dcc1b1306575844afb3fd3779001ddd913b45e0b98c6ae19aecbaeab1c876485745f0986184bb8242880ed057a657c273d4f8dcf2d547293f60e274dc518c2f2896fdacbaf593c27a5a37372616308af359c0d78292f9f560762151ca2018a31f5d4b60825e31dddeee5c245ff83d46d5c467dd78bb06cd44d9e0bf650f4f4ef4ea07dcda61a67052b1c9576e182d4af513f10a41b65ca3d5e01e55c4b17c3b3002bb61826dd9534f205d95059f8cd341a963b8f49d36e0f6112ed57e8019f76b3b919b36e2424a05e839bdd9f6830b924d75498877a67b41346eee5afb9edd0b38ac7e91f27e77d97b7eaf9eed77eb3132a273d75982fa4bc79f5afc76cc030463a72cc85178fdd9f2ad4c60e137f56652690bfe79947b8c91ee52c61948071002f0b9b566bf9e938ba468fa58b4d59dea095671b83295a71e78c9ce931a90a3ae803e1ecd4fe72a54ab48a7753ec0023ae88001c87de145913dceda7a2e1099e5b1ab91cf6cb07007da840ae821db082fe567c46c66ac9b663e5d2c8db982798d2a623e87189371b71585b7feb9e263dbbb61004f9a0c5a82cf49ec76784a1421a37d78337d9af0d1198344b411b439fb79f952ee7642d444d5a23ab913d74a16842160e68a588ddf850491dac4e9b0bcc0e264fa46e450b9a9732c81f128664ce90083180ff6d0f5fbdd215bc0584247b4876d1bb00c80d69b0a3af61b3f840e69234bdb3377b346800cd644bb5d594e2e37d5a6695cad4686867dbdc1454d29d30413a295cc790ea137ca8533c8ba1dc7b92fb734cc8b9dd653cf0b8db965511a43b46b7140d4", @typed={0x4, 0x53}, @typed={0x6, 0x73, 0x0, 0x0, @str='[\x00'}, @typed={0x8, 0x17, 0x0, 0x0, @u32=0x2}, @typed={0x14, 0x3f, 0x0, 0x0, @ipv6=@mcast2}, @nested={0x14a, 0x63, 0x0, 0x1, [@typed={0x4, 0x8d}, @generic="579412156691baf55f1c006ba3d4f825107228de101122e3a35d573112845cfb5883cb55313169359b77ffe99bb2f3fddc67b3ce326e9fea14e029b9d3b8989b430a6a98961911178b59cce63b57572bb7dfbce5d7ef4abf8e9e96f05bfda937f5476eff2dde6ca1aac6ca5ce8e7c75dc181bb2989e2", @generic="f03b2799eaea651917f16e45e7035f7c01c95392c3725b7cba1dd701e8fdfc3369633e01679b59abae2e0e47094d754047f6bfec08c5f19d3766bc0773bfa91830cb07cdc7394e983ab62cb0c8e16c997ecd401ff6294d686cd499bd83968fd016ff69c23b987bd1f79944924193ece50055ce632a4e39fe1e1696c8ad7305291d14f2dbd7b088ea876ddaac", @typed={0x14, 0x49, 0x0, 0x0, @ipv6=@dev={0xfe, 0x80, '\x00', 0x2d}}, @generic="9a5154808af47c2399e5eb952dcbc5396060f7ec2168be2f67bb708e95c255fa7976c6153284f5fa248648f3"]}, @typed={0x101, 0x2e, 0x0, 0x0, @binary="8d03a3e007ded5d05e347aacb6f0728e749f53d0ecd4f7fb256b8a43440381a65abd9e15736d0927444bda49090ee7add951daece359cc4e5f60fc4128ee5a30e16e292fa07cc3f6738bb1edccfcc51f57f4c2a586b6ee09745bbaafe4e313886b5c867bcd552b10ccd0ae1a03877f96eed48d2456fcff0ef501976473374e5f295ac41b6af2fa3deffe394da85fbb601403dfba868af5c83305c325e1689562f773babb207d6e03a5705eebfb7550d6cc2c8735ff611d72413d458870b857e3ac41e1914d6a51b9e24b020b9a6f5a2e8dc84e777917bfb886a683c0c3d778e2adfd3d5a58283dd8a156686510f206911a118251ebe0e34db8354dee78"}, @nested={0x82, 0x46, 0x0, 0x1, [@typed={0x8, 0x3d, 0x0, 0x0, @pid}, @typed={0x8, 0x76, 0x0, 0x0, @fd=r0}, @generic="a63ac7666ae58ef7190cb7a9f8fb8e030aada47cf41058c9f9925a3906e589ad556586f8a77bd62f7088dc16bc53bdeee41da230ede450e35be88d5185bd4e36b86f6394b3ec9288fa37fd1f860c8629fb260e40611826e66fdd", @typed={0xc, 0xe, 0x0, 0x0, @u64=0x80000000}, @typed={0x8, 0x1e, 0x0, 0x0, @u32}]}, @typed={0x30, 0x7e, 0x0, 0x0, @binary="665eba1f6906973454fd38b0b6adf76af5505124f1627982018776b8ba25b6e4c08f31ff2a458d3110b31192"}]}, 0x133c}], 0x3, 0x0, 0x0, 0x4000000}, 0x84) [ 895.728727][T11941] F2FS-fs (loop1): Found nat_bits in checkpoint [ 895.728736][T11955] netlink: 244 bytes leftover after parsing attributes in process `syz-executor.5'. [ 895.743911][T11941] F2FS-fs (loop1): Try to recover 1th superblock, ret: 0 [ 895.745774][T11941] F2FS-fs (loop1): Mounted with checkpoint version = 3e17dab1 [ 895.765469][T11946] netdevsim netdevsim3 eth2 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0 [ 895.853244][T11946] netdevsim netdevsim3 eth1 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0 [ 895.900493][T11946] netdevsim netdevsim3 eth0 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0 [ 896.027503][T11946] netdevsim netdevsim3 eth0: set [1, 0] type 2 family 0 port 6081 - 0 [ 896.031749][T11946] netdevsim netdevsim3 eth1: set [1, 0] type 2 family 0 port 6081 - 0 [ 896.036200][T11946] netdevsim netdevsim3 eth2: set [1, 0] type 2 family 0 port 6081 - 0 [ 896.040539][T11946] netdevsim netdevsim3 eth3: set [1, 0] type 2 family 0 port 6081 - 0 [ 896.045764][T11946] delete_channel: no stack 00:15:07 executing program 2: r0 = openat$vcsu(0xffffffffffffff9c, &(0x7f0000000080), 0x0, 0x0) read$qrtrtun(r0, &(0x7f00000000c0)=""/68, 0x44) mount$overlay(0x0, &(0x7f0000000000)='.\x00', &(0x7f0000000140), 0x8, &(0x7f0000000180)=ANY=[]) chdir(&(0x7f0000000040)='./file0\x00') 00:15:07 executing program 5: r0 = syz_init_net_socket$nl_rdma(0x10, 0x3, 0x10) sendmsg$netlink(r0, &(0x7f0000001ac0)={0x0, 0x0, &(0x7f0000000000)=[{&(0x7f0000000040)={0x114, 0x13, 0x1, 0x0, 0x0, "", [@nested={0x103, 0x0, 0x0, 0x1, [@typed={0xc, 0x0, 0x0, 0x0, @u64}, @generic="9a8aa489160a116092", @generic="50bb2d6f67d29d6fabadb107d0def49c88ea04abde1d5e8d3fb22a1b5046778bdafefc46b0449ade68bf84b36ec72dd71265fc2e882348c26c2126237dd5b37f5ae655b1086cda40e00aec58754734be31d750351dc076eb47d96219c08c029d1608a487f26fbe816b89f7cb81bff81a8b7a82565856555ee923c65973deb0a99b962bc0fe94a3fcae3697bd7b85b3a682167c43dbf137115a40ebddcad74875cf0d972df9e99f07976773f4d98fe3fa370d47eb640dc5061dc35817c8a66c29be82fdc2f4393c05a007d12b505a84dfdb98d568175b62421d726d1e5331e1ddfd4d770b57e091511131"]}]}, 0x11f}], 0x1}, 0x0) (async) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000001780)={'wlan1\x00'}) (async, rerun: 64) sendmsg$netlink(r0, &(0x7f0000001740)={0x0, 0x0, &(0x7f0000001700)=[{&(0x7f0000000180)={0x22c, 0x15, 0x10, 0x70bd25, 0x25dfdbfb, "", [@generic="aa53c2396b4de57014fbd700586709e8308d140b52c5c4af61389696bf98a709a1565bce53310b1ead7a60fc8ae24cf41c5acc2825147c1842e5f21972716b6cc412ffb08758078688fcded6db5ab16b000323afea621c90e2db61be8199326288ac2fa75962a066b20d8471eb2b84d290d4ca721e5101", @generic="10789c6d6351ddbd39d9ad50aed4a5eae36a18e3147c0457de8bfac6a26a9fa313859d195b0c332a83e720a12ca44183d76d7b5320ab1c010d4621dec66886a9d98f139b35fdcdfceeec11892083c7c4f04a2e3902147f50445604f77f553a363041d1f3551cfa9a76940abddc0e9a86848e430ad4c84f7525b38dc976cc5c298217b4480e3e242923884888ddc0933db558bf4d98acaca5000d83ab17a9eaa46d56e42683bf675d", @nested={0x32, 0x2d, 0x0, 0x1, [@generic="2a4d87476b4a56f0c1bd86676351baf8ec794cacbd8e6a9a9462", @typed={0x14, 0x95, 0x0, 0x0, @ipv6=@local}]}, @generic="a4edf6c22fab00ab4ea7d3fb51579b9833763216b150c323dfd50f7543fca90d8ed979afd82f73058190a07a625f0a293e8181f270a654c895e45b63807062026594fa847e9c85f79a4d9c2634e6442606f79e8964cd0f050647a1c8bc4d651771076f3241f462f98c5ed7d0777f02e6bfbc12e620d96d5bf7370e38834349f4dc325661", @nested={0x41, 0x2b, 0x0, 0x1, [@typed={0x8, 0x58, 0x0, 0x0, @ipv4=@initdev={0xac, 0x1e, 0x0, 0x0}}, @generic="d33adb29", @generic, @typed={0x8, 0x3d, 0x0, 0x0, @u32=0x2}, @generic="a8a67b127efb0d1d71be5a69c1194f7b742db6f2d7c979a37c0b8be666c9031f7b6abeaed650a124f9"]}]}, 0x22c}, {&(0x7f0000001b00)={0x21bc, 0x3a, 0x400, 0x70bd2c, 0x25dfdbff, "", [@nested={0x10c3, 0x7, 0x0, 0x1, [@generic="5f3914b6a06c97aab390312ef30eda1f52a61ef232061b93f177090a18bbc6a3f489402ea6a51c93a444fd43b1f3ec5f34b854781c3d63ea096d40d840efacef7fa0a8a684afb9b717c2a6e48891d0eced7a3fad5fa9422e6f5be9885c33f405d2c82c6cabb0d9ec7a27125e5c2a7538fd96a734a487bc0d292d2c5ff5156bde566581ac443f68b1bf11724a65ba7af63751cb6482e84d22fd290e79b6e9144e5171544bf518a191cf2e", @generic="5ca707a71b9db1da948539f98b63f758e2a89091ce", @generic="693dafa3f74a904d6882d3ec723f0eae39e89980ed4e9163853f87fe4c7555b2c3faca27cc091732ece1a4b2a7aeab78ea401d9e93a769b9c2904398d5e7aa70d5e3d329a5e9db6a23d8bf11bd4dd01b42bcbe0ea072b9491d5b6166bef175e2f3c3a1fb55c8c3020535124fb217aac83a079e8ecf7168712677813ae877d3bcea2ae3988e112ecf031e57f02aee4f7a80011052aff51c179e4221af105914bdd4ed3ed87ce9c2020c0c2379d749bd0c261238f6a36694e04e9b1c8dc62c8c9008082d6f2c92c059799408634d00ce486a744ef6e61869e8ee1f47063c5813054aa59b87149a15e9e82a09b04bfdb323c5902193b5eee9c1fb7d81750212d4bf1317c882ed67954eb934b732b217b9296989ac0e68bfebaf366caa1b69d3872f2bf58ed08d28e48506bbafce031fb030db0b801d46cdca893bc600547770b90f2e1c07904bbc500f34d50e3fa5f35969ca3ea5ed78215d082115b0888a61c9dca728238811c0ed2308cb31b108e3ebf9e0be6728fcd26c966994b39e72e2790d26465d909fc8e7600812a768d8d6a19fe62a2b601d130e83cfad7d9004e18fbb112ab4a084dee92af1bd95c8ce038c1ad868deb6e187027ec9af00acb906f06229b9b77df4e71887ccaecfd4e13e48c9f3f2129aaf05d3af066914a80bf4857e01218b109ccba0fbb9db0cc245e9b8bc487914f7709df749ddedfcd1ddb7a964fcb20a49a6144a1337347b181c37b75b7c2041f6ae4c5dabba988a1db35e5cf9911b48bd81b225a5292da3fbe7cd55707d4df2b7de06dfcd9a540d20224e15c8d26cdaaf4af5e32731426d1bf1284a4e95671592f3431532b8c466dd7f0915c2a77ae29d38096fc68bf50222c7990f03c441a911d7a32373638fca7e275d95aef4aae53332140459780e475a4c1e5b634e44e5f0380981a9f04caa7c4f83467683ba53d14af87e325b8ebf3aded5fdd178d03955133d270686532453b943e680de7964347ea48908b3dbffb3c463cf2a69c74886ef5c583fff4ee8b84cb4fb33f3d78ba0acddd4d7ce5e593f975a6e058012743b06b9e23f3dda8a1d1b5aa78da9865291e032a003550166d41a9bc4cf7735a9aeb03af499ae53c14144a9c7bf64a98f6d896fa6d73fc3fbd71d82a7c66ddf112ed6eb9a13c47033e054fad2a01519d50751f4f0c8f7a305581ed672db59f400909d33b7dfa4b3b7702ec5e75d655dea03fa8992ce676ff719f538337f4b53894a5c23b8a53235106bf64fc83af85211363abb282a2e125dcd9ed78e70ba74c72b01fd9d40207862beca062e897f55d531ad8918b67eff8b5070a8ec11b528a7ccf3a7019f480c164a9ba7b1a4f99c584b1600612fd2b8052c36a53dc63e46a26006eb3bf29c677972953d70f671c758e84fd6bd6151a7b6c18fed54e15d1e38a8b4bb61a3854bef5e2026167f3034b3f819efe4d4fcd2a25821a7757ff5883c3318e3b169b356ae20db0afdee892eb39d95c8c2c1477e28a2808d72bbb276443e725c1fac40546c07cba301a9e8f9f0aef976e654efd13378ca0cb61a1a291045a5493dceb6f474e310c83a6f8d633da6a4e846ee1320ccd4a7e521647da754994f57344d67f18caa785132c49a93110afd81c9e1d3d631f8384cbf4688eb09f03d1988c37e3b33801cb3a061dc95231121e525cf828d9453e61454c3f195e8c874c2bcd07ae5dc0b5a856b938b97c5e0d6626e8d944a2fdee3abab76e5a2ad30ef3a73c4bf9c362d8acc5331702379d5740b45b301e4c1c690f0a1bf3a56b891f1d080adadfc240644d564d79bb1f082a132edbd314486cd341ef78f506a8ac63641f56a2821265c9c072753f959bcbbd8a2ec6545b2097283aa3567b6d1b5a2faed07c10f303774577bc066933d17f11c4733ed0a9a93036239a881bc5c35f668dcb6242e7aef4fd2719960a16cbbf178454c93cf1dc88f7ed497b1a43611ede09981f542d561107d6fa4860e0c14dd09f62e741163c8aa2d20189fa4acc2e7f598958e5206b785f20bedd5605df35be42ee28066849452578e8ef955dd25c144d8c4ca833afec219ce72ba21dc98e2520791234072ffd2448d05b6e714e222038e08a0c3a5b6262dace5a4c9f7d9e8eb1864a2d71d69d404193c0da6384f7bd3124b652c63a28ccdbf7a21150f87651a0a86ffad394d94ae30e71a00437ee32aa2d235c9488f2275e6c2f12ba8b6a1c79770c8232e4d5d01d9cd66999cbac3a7139489ccbf259fb0f4a0a72e0eba0579b74e5968c5f1c662ab5d1e85cbe5cbac7eeab839faf8b42a79b9d8b670544ee54cb1b2f6d1d210f647f18fe9dea0d3d529ae00e97e3da39a7bc220e057d3a7b5a35ac9736a78e29ef02a57fc534b873a28a36fc87d6a944d2ec90099945bbc5edcec845f857e8292a92608ff71a398a522fc9875db67a41a91fd1b5d9283caaa8bc7d7ea4f0fa5a73a32ef627575e83a8655f814cd1d77237652a04af81ee0a3cd70db77f49def73edf36e8fd3e7160274dbe3de0a9e8687a57a19a3ca4a7060f8e1cef3c0b688a122826cb6fdd8fc28d6da01e58a44a71a1ac472b2c523544598306780f92672cd205ca894d9d9a5db3a5c3064595bd829550a3e8913712ecfecc6966d8e85b69052b4dbfee6a0abd5fa65fc558ccb359cc783f9d0754d87fe993b1cfdc0c72cd22108094240378a8fdbb7dad41d2e6f171e9beae9a69a7875c18ff3b2f2f1c04ed0e278f296face95bd646af9abdfcf5d5e56be95134468ce6e16ae095b80cdcef6af865cce8ac39814001bfe4fd451f32c0ac875ba621bddf1b5ccb53d6be578b143a1516e7f64642c800aac4c608c144cc040fc77537edf68fa665bdd784a973c15f64c0de01479395bc2e12e7a90fa60c253cc832ecc44e4f54167725df514159fcff6c88b8f4925c26409f182d05613dda4494fe02a04bafa1b73e45c88351fd1ab8695e727e24d38f30c361f541fb3c4259f6dc1c5bd3fdd334dce2e60f16663b176d98f44401b52f3f90f1b53750b73c9ea864cbbb55cf91235a3217a6683e1833c4e58772ad0ce04658ce33c12951334b2f9e1fe2100a3da08227a3048e5843586a36a418b0a4a5cb2d892a1b5ef771187ac9b7485e316cd2feb71427bbb7ddb897adff0e6b92750a80210aa4688ce65f6b01d70104ac7f7edd15fcb99e5bcf3a6158e37458cf29e4af2e105613bd223f925163507bef5f475242efe7d3fa3bd9348fe8da782d8c2e3c671c678613caf8ba8c93ef065bebb4860b00d392169c1c46f1bd3ef407c6a1dce1677861131fc627a93361a11fcacb418972a0a89033f1abe371ab159b30ee8905c80fe88bf1ca4a5758bf45228afe8aa259341122254f88784c3399822bb3eeb54b5056b7f067bc049f03c22e945b3b098bc76f77829c6c3827492905ede9c7a4b3b952bf594495fa29e0f5a374efe8cffb15d6f3da80d8c9ebd397e30083463faa48553230e49f7d1392e52a0b7ea388e22f369ca75f72757716eebe06c5afb210d09ffb44d50d702dd8921d524116f2fe3cc4f9111a62d3bad4cc7249b141b4176ea35cfa59a408d04f8d480a5913bb330d643b4c5b9f4f3abf36c28ef9f54f48c5dd3fe38d1d7b1cdfbbe30e11e649440bc28e7987e156b6253f181bd0a1cb1a43943e9de7c278af9c5a40d31a888b38f29c9b3826be1def7629b1ba9f914a5ac76cbc9ffb76d3d1683abc00feb61dbf4bc147e0c2984baeec54f150ade633a20f30465eed82753c8a82fda892d9be069cba43b76cf07509315ff87f2373680eecf539cc178a7ee872e8cabd2c3f802805a66d77c29318685eb484e44851de01e652295dd16ce515cfd16b17ed762c3eb0ae90499e7d93c125580469ac6058c032d6732b4fb43e30dcd68fd16107b768891eb82f09ca94e2cae58263bb1f4ac4278e083440a882b5dadf0a22cbd8f4b8a5b6f6b55490482190e4331327d23dd681f4e543b715568798f0a3a58db11977047daae87b3b1c89786220ed9e42f0fdac88b8ede499b867bac1ae86f8f69e84b89f6378ff30a5fcf85b84358248a8e14cafcedaca78117e5b6579091ce271222ec1a885d48b5fae5995b6ea3d55d275455f9c409b4f3c3ab54830b5d6a8e7073415dc62a5df3fb42092599f8584412677afda19df0633d6aa512ac3b0bce608b77d393b680b0c19fe0e29a94621f7901081a827b229fbd7ad814f836eeaab0223087778e649a928af41fd2ef692c18c9578aef805a31c979343fc5f94b5ec202fba590f9787eb8759d2c469a905bb60bb38680cc503f475e86e6a624c7b0a60ab2b68890d0a94565dbdef8d690b833d1dd7e7eb44d1b3eb06caffa1b6b0b46d1d1e9c44c63c9c6d7646f769454fc1fa16ffb28ff5eb58f51b95c4720491412dc295a9c340b8549d243d1b6fd8ad0e0d380589bd1d0810e58a4055dd494d7ba65587fc1a7a19b2c0a52df4630e6c3b36ff5ea525a35f982f6a3c93d8d08699ee37c3d92421f2055169cd641157a1b32aab72a3b4252e7edc1e7175741810cd33c312d7f0c7fcf5a9f06c0bca54fb07ad65641d34a23bdc7454ba1f186f53e1335168726ac00dc8e82caed1ed69a28caa42696754fb6b8623bbacfa9ff8a4a95e46e9200be87aac5df78bb32fc2fcb4d9255976709a06605e70149fe0a9393dc11728b03a9fdd6c432a7d52a2b42a7ce0b2c47939e5f2105427b8c5cd03853a33dbae218658d8a2d9330b24ac021f70e7438039ebf9046d6943f61858610ca84b08df1ebc4a8ade23da9e097f815f5568abdac9fa7bc37e2f7c2e5fd748cd65a3c42ebaee5d6529b1d9bd538daf8713fd9b3adba32fc0a14bb148c3821417d33fa4aa471060bfd910919b2a322bc1844666e0b1bdbdea69b02318545d07f6367bca0eeba2f4cb1b772792a6f7bcc0f219e381eda278e96b411f696518bcd61d266f0df9f1b001ea360a0b945c6e41c92692eda91db9fc387e206d54b88650b9b0c02ecc0d243b2fb6c6053c802449db10fe10f30f122c4156af225f73dcb8f57c565e94ee7ba6205e6c99cdd61290c94e52bf5062548ba519d47a00c19d6f3c9fe92a4d5f839f2acfa624e7cc5fd511cfbc8aa627397570362d2f6ac951fe4f9091ac8fd163e49bc74c086fc15e2c7d638360dbe3b04f00c682450045ea9bb000840453d7051029cbed5bbbc8d2cc0a838bbc0a0fc00140308cc95f1a4e53e4211c377fa1efcc2e1792b8b218c1e601ea2f572a4d0bc9a4f4a6560d3ec36cef46ec10b3f27612778dfd3e782cfa16036e7153cbf8ab15b095c78d6ff03538674791df9c57cc3baa107f03dc6374e80d1c850433ad41483154729de464d3082000fa6c01db1fbf5da24b847ebc5a498b553363d2e12ba3073e283b795490e17dae23d611cafc07c641b2baeca46ed4566ae07383471a481a75088ba23d39f3d42ab6c52a10701d63c1c8b6576a641a198f09507f38cb09b2d66ca0c4d071092358a8ec869ea1e5c377c1e04f3dc616d764fa181d29d7c4430bdbdbe908fa9bed948c339b6bb12c822b43e4f7c470577c72c50d4e49c925644184b328cf5e1d0fd621bd4262e862ea833bb1756139bf4b37a1561378a65d35621dbb0123157a311ac94e1374d7e9ed8f82afc59e8e18d58b11a60b3fc5e441e3bc5d15b0ea6fb9c78d3c32295dd4d78a431b1b1f77493602727d82cc186d776b593285f08b5817b1b6dc24945d1a58c2ef9cc00036575e96f1ac29cfb5797f70ba9fd176a280b545641f16d7bc471a3ed0df23361592fb612011888aa"]}, @typed={0xc, 0x81, 0x0, 0x0, @u64=0x7}, @nested={0x89, 0x7f, 0x0, 0x1, [@generic="fe2d41cb89b942f2d6eedbb1ddad9adc56da363eac088eba920e92a4c1a2169abeba8baf33c72aa11542be6bb832db39ef688d00822bfa599b20ba9b3da3043dca5fff7564666a544a68523acf7659d026cc1e8f3e50a766c7f88946fecbc50c7e47be8689907a2967ac76f795fecd43127875d3214717a8d7c6f4f92ddb48b9521d3b3d8a"]}, @generic="a3e19699f758d004fffb02f4f7815f88ce4e34573973bf22aae055453923569636b7a4239f21f629846851a141b4b57e69d424718d119206e020f0f18fccb837d15ae3aa7a5ae9fe23d076caf32bcdb8ca5ef36993017c1fd6cdcd1bc40cf586e8cda9d30cc7944b65e77c7e9879b588187988fd9ac87a68b7a68f0b27511ab28af0414c32a2af2936a5ae728add9c93736731e4d80b699466b28e8b4550db1ca97ea4e077b66d7b07134ff2d86c5c2f04d16739136d610d0ea8d3b3b47c6fbff7dde81057dfd160d6b280f1cfcbf0aaf4d3bf0b61c4b27dbabca51ab3b4cf081c7b88598e7568651abd05af7f1c430ee36de59f4e16b0f5ba04de05d638666fb2d2769e82700e2f04603f454bc576607a6b0ee66ddcf5625b43144e2684764058ccb14f2b5fa245515214115c9036f28ae931b985d6ac5cfcdb892c5253e60c217a80b953c55e11a4b8191aede9b59ac42a0cfe0b2e564842420c3b9b4f3a74b467d7c72db597596c4f71ffcd75036a1948f5d0ac38891a23db9d10a7f8826a099494f6bfe40e4c0d44d489d827548027735f5b0fcf9e06c02db15770a148c49ec8bd72d546872d06099f9c7d78b1344b5f91a5f80060b3f1956e0270120304f0b028f5df67a2f255eff0de8036845ff19d4f6e0e84209cea90f572c8bea6a188a16d9c623cfaf029c24a60adc14674c9be92221849001799e2e7a6c5c1daafc615481f8fb7a3b177e5fe38a1f6f301ad55d7b468e17084936aca938fb418b12ff0c4df0d3afa84a1abeb7a151f0ebc3e2492bdce731d28cfe2cd3d7909062e8888b675ccfd4b7f7d44f231031947df3afcc23a0b70009b9cabb4624a48eb597c5ac30356db325543453703bdfbd709c3e9bf103bedd8413ac295ab22240c3a21bd6c94f2a3610d83747ddec45d76eb3f2e06220752eaee6dfd356456915e25db0a1edab5f8cdc2d637f8a4833e5a13239231517352655efad32564a873ff9a02f4339d6c8d4cc59b6d14077b259a1c7d79aec2bd5acf5a98e5fb172f9be80e5032ea8111bdae564298027f5064511a08b98646a8cbd061a3b84d90b088ddf0f36e9f09d986c4082ae8d5c01221f1df812e4f5c8cf0c4b1594b98b3b510b5eadf96652e933a424636145c9a5e7f5f0c84effc26a3bfb7b44147c69e2fe5272a38c77e213336d938e6d5914d5abd17e99b6d28058b7df205845c49c86a6988f9b2b19b44aa19a004fbdbf10028c0a865c48b4131e04b3e8d9958935e88333c30d67439eb70dd332a944ed3f13b591697235377f16a9eff5ee80ca1d031aa699865bfe759e765648ea68618234d0b2c234fe70829080c411004e27394f4beb20f7afb595f070aacd1ad6cd3f3daacde18e3f8c5e0d6f5a770a1387dbcfffd90a4b1126f6ea6cba6dc9e6d6ed33f831c0f82b08ef950b0c46f84f4f073219829f0e2c62c5c8c2ff8d66b4354cb0962bd29508413970a393ab69e99ea45d31625e18faa232ec32ee21aa1492919e9396fa7882e0474b3b4d72cd72c8724580521e8aef28c5e629eb0e1768ca7735f7559f1e9cbea966b334e721ace7c560f356cdeffe48cb7bc2f2e6aea8294eabf5e6b354f896504261a9d336fc66e80b54172d856896b4e6bdacfe03984d2a97d96f07a556931075e8e06020c618c4cfb42879e20dac943efb61e7ca2db3ea4e9798aa49428f9f3c9e701003a5be9626b3864a87d13eb5f053b6285553ce6308fccc775f83a0c954ce04ce6934217f617e6e600d64f8cb78338032ae51f16421976e9cfd2b73476c091ba13dad3d1c4649ea9f71aa18b44f21e729ba67c9873b17bac4d8214189faef18df3aa91a7fd3f08fcbf1d8422802456ffd523b3a0666a6d33a35a3e6de18992887bff9c6158b4d248c0da73b01632610b19c5d9acd788aa1f2aa13438342933005399c41c58fc3d664c5f88d5c31d2f3c795aef8e8f780014ee0c4e4119a881e187b6833549fb75484bcbb5b8f93e6861d448cb60cc00144df7c852af0e0e238f10270023028ea5c02942d38a653e37c7ecd79eafe709122b230b48e054c1e2bca2d9eca3a90e72723d56306da30d69ecfddb2b5c1223149e2834be44cbaa44c9fcdde89a6f64cbfc9dea31257c727f0ae0356734534f2d7d0a544d41f7558297eb3786f048ed830e4f8eba101bdc241f609af3f71fcf90c1f9df23ca9450332e777e1a108d31648a2748dc741faa5ac33a607d8481a91d21e0b7e364f876ccc7a10da16f9f64fa12e4b5c9ac14ad2f6f26e86d70a0dcd1e2ca70686c00c6f6d08f0eb54dcd70b29a02f1cd90c464220a6b96ee9026bab966b6d0731fdffd57e6da12453561a69de2a499307d04478b9b82d1df9c1f836b1cd17ad0296bae16953801cff0b9d121fcfbe954b012adbf04069ccf748278e796a9f42c6af5988ca9e2ba54f5be1c76f02b0898009d84ef4ca7246dd763077aa7c2c7bc3493beaa9d5bc349ac115396ecf4b19f0dafa67a240381b0921705554651061c39830b78821642c2b42f95d7cb9ee51d9131ae73ff39c7762bd9c17827a37888adda03de255abb8456625733393e0cca82d0cfb3b883b3644a9f59f9da83615471c000f741577d78739c68901ef730449ae73179f7acc124e488164dcae59ce9406da567434afaba31d43e86c8fc6bfbac5f1e3991770ba629fe491cff1d17096d3fb6f116b4fc3eebcf2fb779843af2f44436fd2c0a8db2ab9fcfd9413de206120697d0069a1f323851f2cb2bf7442ae75bcdb9305a12ada67963f14b9e302289da45ae139ecab92770bfde33f631c9f08725d50604d249e36dbf3165fd7949b1a81e6576022a5ab7d2d850c673777fb673fb1f7fe5272316ac26a18db44661ae1bd2358b4c03a4b220bcc57e8825918177bbd2655ab4f1a9be41c1fad7e6c57152136a16d8256b1f394b34b57ed3e52cba44efdb008617977976f65c6dfd51962d1499af966c4dd4af6a5597c4b586d1e4400ad876beb1cbc3cae69b7244713bef6ac8652f32b26cd10b249d589fad051d91c5c8de3df1d90164ff7fa81f3690fd924cb010911c345b62d44447f98b291899792c763281c095ed509830679eeb6a11fd9f3aabfc520f9ae1bef6078e1abf3607f7ee088fd31422d4959c5fb12bad529d493e105f7b162bfdf43d6cc1e7eefd5019aa8c5be0e22a2694046951a9eede0baf184907ab890ba2d5fe2df74ef933bae848e2c77a3a3df4214044a1eb6489905781b417dce8cd239c7709f7735cdad73b281b77272a08536f73b590871a0464b41faea9b0c63532ec0270e763f54260113a46fcce27b4f3f67c3a0778ea65e24b9e493229ea0f63ea0d0c0a003ca7399c3046fe65d904b1a79ee0ee0adc5dc3211a3972e1619a9684808fd6a3e9636a022da55d8c2e4933c815e14c8708fbb61f8363945431359d3e8c73a2065fb04bd06475dcbb8d543c57a59c6b4c2a0fdad0aaefa61d28260b47c87401861de408aa615e9085695d64c65ae048fbbf277a52f2a83a64129bebd101980c104ae6e41554e53a5dc5332a1b0b47da009de0140516e8782a0f9aa3aacff75d96dfeb0b153dcbf4a77a624cdfb80540fee6ca3a55077a1a186c0569eb666b2bfdb81db9eb6a2f5b903fd919c1cd9993d2b90aed7506e243e8e7083b4aa13ca517acef0a69866991176ff79a2f664c228f815bb8633c95fecfa6777a676efbf07b740ae5c873c160df4f8b9d17316ebb26d37233859fd5f81e229f8339cd2f6166c5afc21dd60ce3312223956d6b460128b65479432798c497d862ffb19bfa0d07ccf8d6b7a69bfa0dca27910b3bdd0acf1bf960e13cb1498b26e3eb010d2c6e508d34e7518f5cbb69e80ec17e8b39b0f1f0e54a37dd13cb61908efabd6607e5658d85f05990e3823bc8121a93f037280aa39797f4a6711995c0997872159771f299170c8b3798a80e185f32d3126ee3c8a7dd8b45c13a1e04415c2143e7461f0035eec1295d974d2f3b409b054b1797d94f5667f8fcc9aa72bc3dce572e8e8081d00924980161c226120d9d40b3f2e593f6b89e23b28d141a2211cc995d5e9a1bc33c4300450310380c9b99bbac0fe755040562667d8b9e48ad7228142129e21701abae5ba117fc2326760ff6ee5db67b6a2a63e2cc7fbca966551098de52a9f76a1765b4892466ec4bcb597beca373f86daf447401d9c4e41d2e129f1846de4677549591283a172290d78b89e1fb364aad5155028a013d1c047e93420d61dd9a555ae877dd3a9ffaabc456109fb28fee6044a573bc2438b3716650a707933e88bbee67fb69832ca6e9fdf11d0f80e49b0274e7b77adeb6d13524a6fa4813f400adb087eca451bf8762a6237c232f42df27b040b4d297fb60ca26119c9d5827e2c0346bbbdd36266fa6e658da9e098f1e62e40e3b807a8cd1c1b5b86c371189c57f02cddceea6358f7d6ef1859e9d5d80e5fd914b7b601c7c3e7587ff27d70c9f73bef0cc95d81cde22c734f5adb5fc9c21ee20b53ee4ffe42b62c0b0329375636a7593ea4b5e972ca0008577e400e22b52237aa14a88f40c63c633c777dd1fe7025277b73661b81470ba46440ed36cb2b9aad93566205939c2131158b94361fcfa6f6e2b0e6d325f4099ecfe890f8a93eecf9e0f0fa2d2775cab76f10aacba5ce736fb4b0fb63203da03718c85116259811bd0a4adb30e5389d5fefe4a7dd072cfe9c5761335489ee0f6a23234f805e5e6f7e8640070b350155d6489840894d0641709d09754d3c472e5ba02d4c663ca795829122df6cbe7091e596d710ffb29356e7046d32988a531f489cada1bda30a20a478f160dab76ec9fb2d8cbbe9d936ea726eee2c98f57bdda7bd216beb15cf5dab7ed95404bd81bf01e63842e37cca546862217000b11f1c9a373a318276c1b099845786079b93e6d9ae2d67e1ba6679524bfa55ac100a8fc81dfd65e3223ed65b8f443d4a9658698cf676df1eb6d5d68067a4d634380b0d109ffb670bfcc265d513babcb1799b55032ca513206f5aa53832734768e1e43b52663957ea5270b2babfc24d49a5031eca289d36358d9ad17acf8dfc5d69e2b145ee0fa80c87ec325ec507850524c1c7339b09411935a40ce6fc59f9f6a5f156b6d033c14f7f414098bc5f5d007452ac28dc195124e1eb9e1539295599cb5e4fb3c69ee56aafe9d1d25ea248afabdc9d7eed1decf1b87e029f6ece1d5940d1d0f1bd5070e9ec543af5bf886de295a7dcf76182b3ea1719061969423bcb0f1bf74cbbc6c134d99b1b481079ca4d1ccc7aa35da852cdda66ee9e587ecadeff7282ff2398033ff01a4f9e1a01fc1d7ff762ffca9b7e3fea5e2dd314ecd5fb2cc2cbb8e7d1d698d0d5c7d1d445f4c486fe370813c932bd32a41ba489d9942f8b8993ac816ca345e591925f5ceaf2883f1e4777d9e40b466a87a82e3e15edde80b0b7731b15d3f161184874d131938ff98b23c6d18245c7cc2ed3151fabeabaf92e60872c2bf1fa58129dede7f677117c70a8b5d78b0f670de2b10559b7b27d3e1489c4f12d2f86bd03a8a850146a4ad268ae3f986e6bfc87ae7639338206c29dab46b0a23cae3b4027ec98df65d9425aa6a81989fde9bde02dd4c80f34d5aa39c4038d24bdf8e091ac9b973c38aefa3b90f19e13ccc683c820821fa5530254902c0507410f55f5c7fb1b678fb949824dc96da07bef71ec66ea9cbe7c369af1995d9f1011267683ff47f99cac78e1837cebc4b1e13ac55363353e39f34446b5e393986e42554bb98ee33d9ffc0fd12fc3625341c9e95", @nested={0x4f, 0x5, 0x0, 0x1, [@generic="ee665653fd72d8530d337726b607426fa3dadf9ea248ad73798a029a775db9af6abb3c2388e328a3203f6d", @typed={0x18, 0x69, 0x0, 0x0, @binary="50d5ad0613f5f5905b7d31eef3f6551e7b09d60d"}, @typed={0x8, 0x60, 0x0, 0x0, @ipv4=@empty}]}]}, 0x21bc}, {&(0x7f00000003c0)={0x133c, 0x2f, 0x4, 0x70bd28, 0x25dfdbff, "", [@generic="b3d590f30c691275c3549fcd5ecdf9685d2dadc2fb1d4c091d27a488b44b82cf937766daa02e0c1fdf2be312daaf2253df11e73da9a7a25ad129a541ebb2af0fcd95e4091d05c46ea2930a9764500a2d5108dacf55152eee833f0af64288078b26f9eee8e7d4eb3cd8163726e46e616951326106d81961ec6dec092466186d9dd194e87ebfd0de045c0070a05aea0f0d36fb18bb313f81458569d46f2a3257fc082f550af197cf61e7bfcc9c1fecf8cf4f5b0d695d68dc0640bf8dde9fab2f9df7531e2d75cb7bb63c78e775d2fad02fa85cfd98feedb86b575821827bff9b83628b3c56a035fb9c9dc5b4f515a801e84f83712abdf1ce71b73805a04ebfb0dbbedbdf68d2b06df69fae8fffc6735034cb24b3bc0462048d9d9735e76aaedfcc60c8fee74d811e92adca4e2f6baed1688f5bf14e3d34672d8c0805987ee5d3ec3794146507379effeff7d310c384528dabac98c1569df911c9452f4acf379be9bc5a23a389c9d8b9dd27f8190f24c4d4f3637cf70ae22a1b622119f876597f57c9aeb112bc5114f68492c89fff6dd765bc98039149a69348b476954a915cfd777676ef9755fc06105dbd3791ba494503513f62a8ee91cc14cd46f9062303114c8be74a41435d29d9193cf5b312bc4ac483d2190d6b5a66a42766a3d6dc294ecda180af0acb76146e739ac8c55d5a9e3ecc10ffb6e1a2d072f956741fb152cb8acc782792692aef9547fc9de8b92183a5a1d32bb516d9c462ec2f090c30b567468aeaa0bd9212dc74a4159b04d290d155f733e2e6cfd0e5e5aef0a389182fa2d818cce79122f040f09f454e53869a84094a7588e654956435c7e332e9e8485906623ca0a52b6813bd6569138e17c99ff917691d1fc1d5d2f5e082afad6592f4584b5a3d1c25170109474534f4a899ac5f69b0eb5aba5fabe61f2ad3b452af7da4faa0a220970d1536dbbe0dfa9b9b894f80504645ad83ea8a4f68b47a19c2d46cfd4027497dd9cda42b056cdd75846d627eeced235aa54a97c622615bcc80591c596b50d8dd495fc3a59706fdc0eb3785c9b93ce0494dbb9ad8470af3f7b457a76d211af04eb104b832c6f3940ba9221be5dae284fb45312f54d5db3d94e8bf7bf9c000a180918f00dad4a4dc0701e40fa387829eaa4a7e33cdc59717046e1433e13489821bca6c82ab63e5b9311a18f25c8af6a483f162f829a5e69d13377643e42ade5b96c18c03e357e2f95d387d252a16f8a40730f6b0549b517d3df79500c215516aa0df687fc02fb21b5b36fa83b33ca87b508c448e124cdeb3da7c85e3f37d16f292595e9addf33b9639a43d28509362f8be901ede7b0b09dd31378546a9a4f4cf0e853cc8b14881c49ede97c8d07937312ca7f52fc644fde336f4dc361030ffaa746f9bce298fc261c9a4e515b45cfd9a7f719114393ae29759be63adfbb95191dd505d19570fd8c43c3db8a9e7d0ca08811ac5d1fe2ccc16971cf6ad02301b26e2241e4a6c4a89edf9dfac434d12cd6cfce736b6667eaa810555cf869053924e15beb9f1ce958bf572a3ace143e0eb6b25ec3d66d91f82960cfda5e46a831c60ce7286aaf4c78e9fbf96dd171610e0f4345a237933ed6313aec47f0710cad38ab6e3a59ac5f09f230e0e4c8d33a4fb203a86c5176f64b8cb4bfe0f124f9bcecb6b917ce3d4609f644e5f85d0587b636a88f68e267d0fdd23df92aaa064f0388d61d24e83478f9920a6d1309cb0c6c3b5a5e17b1d4b61f5e6569336e2220e965c492eb13c75fb39a67ce35345e7fc8bba091f55baf9fc4314104648e0b6567d94a794a86dd347357d33e30de4fe41fefe15c7daac810c8af18711aab5e90e1a48e14fbff0d66b09419b047f759af05376cb2cbbe46dcea5556e53fb06af9debabb55baadb4d6c7c6b6c3dda9840cc34dc9bd0599139d88982a9ca4a1a025ed1391c2aa46f2cccb48d3f2e198abe4c0817a600a2db7fd00423877e12d6d717b26086c45bfe4dd8c96b1493d4228e92697ed53417725f5d08a49223412ec1bd2717eaa709707b551eeae564f06c9c463f51bcce89a589bafeb39cc4a26afb37d7fa2b15fa727e60093a5c5cb8d4b65c953fbd5783a21f980dd6183cd2f2b1023064950e603b4cfd7d511d5116ea1fcb89e6e98dbcc48853ae132202c646c3fdef1d1368b933ae34937cb84d6f9973184f3c25c6732478dc2466b4b92ab788f2110d8352908cf503d029cf1eda7a2e214046f0d67f8635d44f4036773b90a5999ac7e566fbe474302f6ff95369af62ac386a1d4770e4163004d62ad0ead552915e112cf8e9b1a1129dc6c0627331eacd665353e2fca29bf9e34baa35db1cbbda73ea3bc44a0e2508bdfd0234c15fe9a583ae48bc7ac17df759cfc0e319647621e17e3d8f26e508eb527a473f04850fac284d03280de290fdeb2ae88a495befb9a60ec443787e6c175abd4979dbb97adb2b0c554f8e2d5fe173b7ffdb63c89e89e74c2362f14893bebc1ce565c90596ad226bea5a25d0a005c8c9502d646685ed96f5776571902528b8fc72a8d31fc226687814a28e37438b58720f63edd38aaba5b00e734abbb312fcca38e455da7e4ca7b7eeff6fdbeeeaea27bc0600fc88c57d8974a113f4816f7bcc2389bd228c3154a3e73b21f4e1b7443fb642331f06df41e0ffc6b4432b4bad38b938b4e817508f73d807a56bbd2c0424d86a175d40041548a312d3d30ea53b7f5029aa750c0f503e17f7a9b7dccb5e2b50fd3a71fdd451390af398c82ef962c60c9a7c5931aafd7c4e962160bd926dfc44925907e3e1e64577a7973aaf448b2a58011507a8f8d14c0e661ff74e703ae13c5b4fb3d12c3cb1d0b04edb05294d884bd4fef25b0807bd813ad551a69b634e3f26938bc3bdc40d12f3cba025bef0ae2d409901acc43f53c3010bfa4b23db54c11512ce569a21948e0e150c984cc6b4cec737a43020eb630891166954c0e815070ad607dcafb03cc54f3bbcd86c3c0778d3f01fc811ab661731659b4830829ecfead080207c4e680ba16fcf297534fd8d25dca637551c67a672ea2d1f4fb262f1e4ef3dda295d13c569949a6e8e55d443b2e4467e814b051f229908a85ee671f68cb9500fa7d736a512db1de80c3a587fb9ac9d1e353e6f817ad7aef833cf8c96f76fceeb8fbb2a753847c2725a582e5fb8c444d54a343a27744a333393903560341dd1e21be30c11597544000c6e3c16febb385954da846e4a72cbd35ef90d6c643874133c86444ca820de3cf915aa8e44aca238ec0ac7351fd65b9e11e8d839769c89ba53d303963c807711a5e025ce9cce8da982a676e31c3b75ee0c04c6903290d62d176c0ec6fadaa92810dcce7ad0106db4ff1a9a97eb1fdbc1a1358c35dd3a750d5e0623cc88c28ac4012df546a20993a788f5620a9ad9b25b81e843607bf96752dd062adbf12e9e3f1c1aea4747be6d8982e04c123544838558b512da44af6d0bfc0bbfa732171a78232a0afbb4af4681634abe71c606bdd52c4cf09ab2d9b37d5f153d3535bd03f9a66b89c44be0871f7a0394311ba404ef767f309876160549eb93d84cfa4758d96e12e15f0ba92ae03259fa04bb1152105e38bf39516fb80daa8ee5770613a0c5352405a7e9be6a1f10b9d5db6d08dd70aaf65a3de74b90831e31826ecd5a86a0293c41da4f7e44818ba0e16ab534cee84c871c811e50a0b9e533762632f8419e3b944f9a8e24ebde35d4ee499b4b80448b5f1cf50d5bd32b780d2d8e628c4599b25062cdcedee73a4cb1ca25d7820dad9f56ee0a59715f2dc81c837120a771ff2235b70b981f29873e410ebcf15a825f283121f51e4e9a1c39bea69b4ef11defc1602ee6ca64777eb76322f10dce604bfac1faf4cb34cfc2d0cb565fe1962f320a2ad9167759110899c7bcb01f62dd53ac085d6db389bab07d8ec9fec6b61292444ac3e27dbd948694f0b2fbe503efb6bfe0096d185bb9d1b768fe0cdfd9f95e4ab6b779e6ee8dee4b190f5f4fb40bd394c1bbfd17b8a9f9db3a2e0e22307a38c8d95513022c21dbb85859f6b8008d1a315f9c75f820605f6598b23adffa34db57889e1b3c57a9f5946aa2c198fecb9f974901b3d3033728657a2196697a887a5a36ed60a1b093c0353f424d65be2a56828a89d96957983b0d504807a54f94b28ec5248bd9e61be1d33f00a0ac95967d03e8c5e99b6f4d41f44d0708969b82923cf6acf2068b029a37d45592bb29b3bf244e950b204071d585db30aab397926178f0089dfd5fdb57b833d6f13993f2b11a4e8b550fdeacee0fc3a2addebda1fa6d964fa42b21123d91c9a1fe42493b6b4857250791eac991925498e513007c13e1c9dbbd1d5edc1d1c76dac5139daf26aa3b516a52996ced04894f451d52aeb13f1d8607dd9ed724fd706c4ab2271ff1b8f871cc2907750c6e91a5543e11d9fc2c12bfa71f230192b95f9c6e4c320a931316c2ef8af564538379e1a8d439c301c49df0ea723d2347e13a558e9f47ea3370b574d5ac3234b1f1b8ae10a7eb5e5492c465d857add924dbefbafe3b7438e03aab4642db799f00154a653299ed34d2125283540d874e8316e396a35417e00ef258ebb94ddab67aa76463b81e00c2650f871b64e9077bbe875000072dc04532b866fb610e5d8ca3733ba4f799aa9314e6d15a24753965ea301d7f9407601dca2b8f8c6ef2c63e4cfb3864efef6038fdcb763ef06b096981f4b445a5b3734b76d5dbbea7f1ec21ade973d6bb5c43cfb9508451c8c463a205b4c0396fa8fba55aba9c8a3a90984f55b3c66e3200c4b9643c7bdbef89be8e09fc208c8b572ec799dd3680d703d9f5b8fbb86c7c474590554acb90a9de17e4af6d93d8315de00d58c3809a07a31c37fe82104977be1a80b30cc5c87601cd0dec0a4aae6611340590b42f3a5ef9b80d3fbd8e2a9af8704f9069d8c68399856e336ab70cfe31658dcc1b1306575844afb3fd3779001ddd913b45e0b98c6ae19aecbaeab1c876485745f0986184bb8242880ed057a657c273d4f8dcf2d547293f60e274dc518c2f2896fdacbaf593c27a5a37372616308af359c0d78292f9f560762151ca2018a31f5d4b60825e31dddeee5c245ff83d46d5c467dd78bb06cd44d9e0bf650f4f4ef4ea07dcda61a67052b1c9576e182d4af513f10a41b65ca3d5e01e55c4b17c3b3002bb61826dd9534f205d95059f8cd341a963b8f49d36e0f6112ed57e8019f76b3b919b36e2424a05e839bdd9f6830b924d75498877a67b41346eee5afb9edd0b38ac7e91f27e77d97b7eaf9eed77eb3132a273d75982fa4bc79f5afc76cc030463a72cc85178fdd9f2ad4c60e137f56652690bfe79947b8c91ee52c61948071002f0b9b566bf9e938ba468fa58b4d59dea095671b83295a71e78c9ce931a90a3ae803e1ecd4fe72a54ab48a7753ec0023ae88001c87de145913dceda7a2e1099e5b1ab91cf6cb07007da840ae821db082fe567c46c66ac9b663e5d2c8db982798d2a623e87189371b71585b7feb9e263dbbb61004f9a0c5a82cf49ec76784a1421a37d78337d9af0d1198344b411b439fb79f952ee7642d444d5a23ab913d74a16842160e68a588ddf850491dac4e9b0bcc0e264fa46e450b9a9732c81f128664ce90083180ff6d0f5fbdd215bc0584247b4876d1bb00c80d69b0a3af61b3f840e69234bdb3377b346800cd644bb5d594e2e37d5a6695cad4686867dbdc1454d29d30413a295cc790ea137ca8533c8ba1dc7b92fb734cc8b9dd653cf0b8db965511a43b46b7140d4", @typed={0x4, 0x53}, @typed={0x6, 0x73, 0x0, 0x0, @str='[\x00'}, @typed={0x8, 0x17, 0x0, 0x0, @u32=0x2}, @typed={0x14, 0x3f, 0x0, 0x0, @ipv6=@mcast2}, @nested={0x14a, 0x63, 0x0, 0x1, [@typed={0x4, 0x8d}, @generic="579412156691baf55f1c006ba3d4f825107228de101122e3a35d573112845cfb5883cb55313169359b77ffe99bb2f3fddc67b3ce326e9fea14e029b9d3b8989b430a6a98961911178b59cce63b57572bb7dfbce5d7ef4abf8e9e96f05bfda937f5476eff2dde6ca1aac6ca5ce8e7c75dc181bb2989e2", @generic="f03b2799eaea651917f16e45e7035f7c01c95392c3725b7cba1dd701e8fdfc3369633e01679b59abae2e0e47094d754047f6bfec08c5f19d3766bc0773bfa91830cb07cdc7394e983ab62cb0c8e16c997ecd401ff6294d686cd499bd83968fd016ff69c23b987bd1f79944924193ece50055ce632a4e39fe1e1696c8ad7305291d14f2dbd7b088ea876ddaac", @typed={0x14, 0x49, 0x0, 0x0, @ipv6=@dev={0xfe, 0x80, '\x00', 0x2d}}, @generic="9a5154808af47c2399e5eb952dcbc5396060f7ec2168be2f67bb708e95c255fa7976c6153284f5fa248648f3"]}, @typed={0x101, 0x2e, 0x0, 0x0, @binary="8d03a3e007ded5d05e347aacb6f0728e749f53d0ecd4f7fb256b8a43440381a65abd9e15736d0927444bda49090ee7add951daece359cc4e5f60fc4128ee5a30e16e292fa07cc3f6738bb1edccfcc51f57f4c2a586b6ee09745bbaafe4e313886b5c867bcd552b10ccd0ae1a03877f96eed48d2456fcff0ef501976473374e5f295ac41b6af2fa3deffe394da85fbb601403dfba868af5c83305c325e1689562f773babb207d6e03a5705eebfb7550d6cc2c8735ff611d72413d458870b857e3ac41e1914d6a51b9e24b020b9a6f5a2e8dc84e777917bfb886a683c0c3d778e2adfd3d5a58283dd8a156686510f206911a118251ebe0e34db8354dee78"}, @nested={0x82, 0x46, 0x0, 0x1, [@typed={0x8, 0x3d, 0x0, 0x0, @pid}, @typed={0x8, 0x76, 0x0, 0x0, @fd=r0}, @generic="a63ac7666ae58ef7190cb7a9f8fb8e030aada47cf41058c9f9925a3906e589ad556586f8a77bd62f7088dc16bc53bdeee41da230ede450e35be88d5185bd4e36b86f6394b3ec9288fa37fd1f860c8629fb260e40611826e66fdd", @typed={0xc, 0xe, 0x0, 0x0, @u64=0x80000000}, @typed={0x8, 0x1e, 0x0, 0x0, @u32}]}, @typed={0x30, 0x7e, 0x0, 0x0, @binary="665eba1f6906973454fd38b0b6adf76af5505124f1627982018776b8ba25b6e4c08f31ff2a458d3110b31192"}]}, 0x133c}], 0x3, 0x0, 0x0, 0x4000000}, 0x84) (rerun: 64) 00:15:07 executing program 1: r0 = socket$inet(0x2, 0x3, 0x8d) setsockopt$inet_msfilter(r0, 0x0, 0x8, &(0x7f0000000480)=ANY=[@ANYRESHEX], 0x1) getsockopt$inet_pktinfo(r0, 0x0, 0x8, &(0x7f0000000040)={0x0, @local, @local}, &(0x7f0000000140)=0xc) r2 = socket$netlink(0x10, 0x3, 0x0) socket$inet(0x2, 0x3, 0x52) writev(r2, &(0x7f00000003c0)=[{&(0x7f0000000180)="390000001300034700bb65e1c3e4ffff01000000010000005600000025000000190004000400000007fd17e5ffff0800040000000000000000", 0x39}], 0x1) r3 = openat$vcsu(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) read$qrtrtun(r3, &(0x7f00000000c0)=""/68, 0x44) sendmsg$nl_route_sched(r3, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x2000}, 0xc, &(0x7f0000000080)={&(0x7f00000001c0)=@gettaction={0xd4, 0x32, 0x4, 0x70bd25, 0x25dfdbfb, {}, [@action_dump_flags=@TCA_ROOT_TIME_DELTA={0x8, 0x4, 0x5}, @action_gd=@TCA_ACT_TAB={0x18, 0x1, [{0x14, 0x9, 0x0, 0x0, @TCA_ACT_KIND={0xf, 0x1, 'tunnel_key\x00'}}]}, @action_gd=@TCA_ACT_TAB={0x94, 0x1, [{0x14, 0x11, 0x0, 0x0, @TCA_ACT_KIND={0xf, 0x1, 'tunnel_key\x00'}}, {0xc, 0x5, 0x0, 0x0, @TCA_ACT_INDEX={0x8}}, {0x10, 0x20, 0x0, 0x0, @TCA_ACT_KIND={0xa, 0x1, 'pedit\x00'}}, {0xc, 0x10, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0x8}}, {0x10, 0x1e, 0x0, 0x0, @TCA_ACT_KIND={0xc, 0x1, 'skbedit\x00'}}, {0x10, 0x1e, 0x0, 0x0, @TCA_ACT_KIND={0x9, 0x1, 'gact\x00'}}, {0x14, 0x7, 0x0, 0x0, @TCA_ACT_KIND={0xf, 0x1, 'tunnel_key\x00'}}, {0x10, 0x9, 0x0, 0x0, @TCA_ACT_KIND={0xb, 0x1, 'mirred\x00'}}, {0x10, 0x16, 0x0, 0x0, @TCA_ACT_KIND={0xa, 0x1, 'pedit\x00'}}]}, @action_dump_flags=@TCA_ROOT_FLAGS={0xc, 0x2, {0x1, 0x1}}]}, 0xd4}, 0x1, 0x0, 0x0, 0x8000}, 0x4000010) r4 = socket$packet(0x11, 0x3, 0x300) bind$packet(r4, &(0x7f0000000100)={0x11, 0x0, r1, 0x1, 0x0, 0x6, @random="df53d0de702d"}, 0x14) writev(r2, &(0x7f0000000040)=[{&(0x7f0000000400)="390000001300034700bb5be1c3e4feff06000000010000004500000025000000190004000400ad000200000000000006040000000000f93132", 0x39}], 0x1) ioctl$AUTOFS_DEV_IOCTL_FAIL(r3, 0xc0189377, &(0x7f00000002c0)={{0x1, 0x1, 0x18, r4, {0x6, 0x2}}, './file0\x00'}) ioctl$KDSKBMETA(r5, 0x4b63, &(0x7f0000000300)=0x3) 00:15:07 executing program 3: r0 = socket$nl_generic(0x10, 0x3, 0x10) ioctl$sock_SIOCGIFINDEX_80211(r0, 0x8933, &(0x7f0000000040)={'wlan0\x00', 0x0}) r2 = socket$netlink(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r2, &(0x7f0000000300)={0x0, 0x0, &(0x7f00000002c0)={&(0x7f0000000440)=@newtaction={0x8c, 0x30, 0x1, 0x0, 0x0, {}, [{0x78, 0x1, [@m_police={0x74, 0x1, 0x0, 0x0, {{0xb}, {0x48, 0x2, 0x0, 0x1, [[@TCA_POLICE_TBF={0x3c}, @TCA_POLICE_RESULT={0x8, 0x5, 0x1ffffffd}]]}, {0x4}, {0xc}, {0xc}}}]}]}, 0x8c}}, 0x0) r3 = syz_genetlink_get_family_id$devlink(&(0x7f0000000100), 0xffffffffffffffff) (async) r4 = gettid() (async) r5 = socket$nl_generic(0x10, 0x3, 0x10) sendmsg$DEVLINK_CMD_RELOAD(r5, &(0x7f00000003c0)={0x0, 0x0, &(0x7f0000000380)={&(0x7f00000002c0)={0x3c, r3, 0x1, 0x0, 0x0, {}, [{@nsim={{0xe}, {0xf, 0x2, {'netdevsim', 0x0}}}, @DEVLINK_ATTR_NETNS_PID={0x8, 0x8b, r4}}]}, 0x3c}}, 0x0) sendmsg$DEVLINK_CMD_SB_PORT_POOL_GET(r2, &(0x7f0000000240)={&(0x7f0000000140)={0x10, 0x0, 0x0, 0x100}, 0xc, &(0x7f0000000200)={&(0x7f0000000180)={0x7c, r3, 0x300, 0x70bd2d, 0x25dfdbfc, {}, [{{@pci={{0x8}, {0x11}}, {0x8, 0x3, 0x3}}, {0x8, 0xb, 0x7fffffff}, {0x6, 0x11, 0x6}}, {{@pci={{0x8}, {0x11}}, {0x8}}, {0x8}, {0x6}}]}, 0x7c}}, 0x8001) (async) r6 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000000), 0xffffffffffffffff) sendmsg$NL80211_CMD_FRAME(r0, &(0x7f00000002c0)={0x0, 0x0, &(0x7f0000000280)={&(0x7f0000000080)={0x90, r6, 0x1, 0x0, 0x0, {{}, {@val={0x8, 0x3, r1}, @void}}, [@NL80211_ATTR_FRAME={0x72, 0x33, @beacon={@wo_ht={{}, {}, @device_b}, 0x0, @random, 0x0, @void, @val, @void, @val={0x4, 0x6}, @void, @val={0x5, 0x3}, @val={0x25, 0x3}, @val={0x2a, 0x1}, @val={0x3c, 0x4}, @val={0x2d, 0x1a}, @val={0x72, 0x6}, @val={0x71, 0x7}, @void}}]}, 0x90}}, 0x0) (async) r7 = socket(0x22, 0x2, 0x10) ioctl$sock_SIOCGIFBR(r7, 0x8940, &(0x7f0000000040)=@add_del={0x2, &(0x7f0000000000)='veth0_to_batadv\x00'}) (async) r8 = syz_genetlink_get_family_id$nl80211(&(0x7f00000000c0), r7) sendmsg$NL80211_CMD_GET_SCAN(r7, &(0x7f0000000180)={&(0x7f0000000080)={0x10, 0x0, 0x0, 0x40000}, 0xc, &(0x7f0000000140)={&(0x7f0000000100)={0x20, r8, 0x200, 0x70bd2a, 0x25dfdbfc, {{}, {@void, @val={0xc, 0x99, {0xb93b, 0x27}}}}, ["", "", "", "", "", "", "", ""]}, 0x20}, 0x1, 0x0, 0x0, 0x20004084}, 0x4000000) (async) r9 = socket$nl_generic(0x10, 0x3, 0x10) r10 = syz_genetlink_get_family_id$nl80211(&(0x7f0000000040), 0xffffffffffffffff) ioctl$sock_SIOCGIFINDEX_80211(r9, 0x8933, &(0x7f0000000000)={'wlan0\x00', 0x0}) sendmsg$NL80211_CMD_GET_SCAN(r9, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000140)={0x1c, r10, 0x303, 0x0, 0x0, {{}, {@val={0x8, 0x3, r11}, @void}}}, 0x1c}}, 0x0) sendmsg$NL80211_CMD_ADD_NAN_FUNCTION(r5, &(0x7f0000005440)={&(0x7f0000000340), 0xc, &(0x7f0000000400)={&(0x7f0000000500)={0x4f3c, r8, 0x8, 0x70bd25, 0x25dfdbfd, {{}, {@val={0x8, 0x3, r11}, @val={0xc, 0x99, {0x3, 0x59}}}}, [@NL80211_ATTR_NAN_FUNC={0x2a0, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_RX_MATCH_FILTER={0x178, 0xd, 0x0, 0x1, [{0xfb, 0x0, "3d6c690b29e2b4cf9055f6884d1f2910596958979be543fc8e48fd18ca7d4fc0906ce178dde8063f49fc92965fc338009af4ee3f9369eb81fde2d5e8ec34404caf54006cb6e51ec969ba8e0fd66e924955271814418f7de1b698f0c6c291aad6049d7947c41f08b2aa71270e3626424902f914a34d60c8b8321095605d365e434c53bf15e59eb701254f366c65202c5f07d3155467bdeee026763d1814cd43a3282d82a53a73b2d7f6ad099cb55a68705e537fb82ea06a264c4e70607e2431d45af5f228c17fdd2d7493cc0dd59e2abf425c35d85df943c4133c164d6aed6f9c224f0dd55a9cb79356d6b57ebc69c79a2ed39d6add6eab"}, {0x76, 0x0, "be0945f55590e92ec773906de1e7ff4bcf8d5dddafd7201d1fed3e4bd4b3a597008c5714f2c98b70f2246209b6b72ab867cc15fab76f208ee79e012d93acd8605db2e0758bb8f59713b494bf8a604c0d469806155da12a0fac60355c62216bd7c8f49305bd83359dbc0ef7dc11142d91365f"}]}, @NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID={0x5, 0x7, 0x3}, @NL80211_NAN_FUNC_FOLLOW_UP_DEST={0xa, 0x8, @device_b}, @NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE={0x4}, @NL80211_NAN_FUNC_SERVICE_INFO={0xd8, 0xb, "839e5b49891e95807ef2bd3b463d1155969d912adc0b8ef0d10d5594a8f965be7b29aee8d2c4cbda898a46fbfb6e9ff3767e5a1a53ec20a5f61f90507211ab5e524a1917beac74528f55a4df3483ffc10f18eb12b3f04db2925a04654e274c94f688f5374d4adca4e226d96f0d96ce4470c8080817c25146d4a8a25d187f5f7e572da2f43b5e1bfa064390d31f888bde5cf0fb2ee77c49290587691d9f8fed781fd465fb6028263aeeb71b8bb37795e95d48a4d85745693a07b2e75f08ce361ef89d101165b59ac63c5aa02f385f83895fdf9043"}, @NL80211_NAN_FUNC_SERVICE_INFO={0x33, 0xb, "c6b259aab8f6f205ed6e151bd082ff0a86250f2cf80e86203614c907c184af857e79cd92c9f4728ded154906cab28a"}]}, @NL80211_ATTR_NAN_FUNC={0x164, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_FOLLOW_UP_DEST={0xa, 0x8, @device_b}, @NL80211_NAN_FUNC_TX_MATCH_FILTER={0x14c, 0xe, 0x0, 0x1, [{0xc0, 0x0, "26f6d54ce7c429e6e751f520d07f4eef0c2d98bf27502600b2854b0c8ffa923df06d227cd619b8c85c14688f6e06bed7c36008710995b08e666b7ec259f14756ca2f6af064e23c78f3e5c945b46f813b2adc8b4061613a2c1e65d0f0171795fecf1d1632849ed838665c977b80e63ecfeeab89dfdda28802fde92d87dd79e3700466ec95617d87b03e8b1d54a622494b7d59b5dc57668e71884a6dfd81d7a64b716268f5515224e3d3abf4af47a9b2f059056940f5283e9366a24fe4"}, {0x86, 0x0, "1737aa5216bcbd3f1aa1e3cc4130ab047a57f0aa454d07f8b6fa860df5e508c13d50c793c42381d7a63458ee5f86dc192a512ef07cd4e819a60ae11a7e464aff73fef627ed0fd947adc89a38ad9cf91f4861ac15dc582fa36a8793dcde762a00205b29f686f6cee7416ae8b5d52f0f78ecd754b7646dd924234ab12e621c8febbbc9"}]}, @NL80211_NAN_FUNC_PUBLISH_TYPE={0x5, 0x3, 0x8}]}, @NL80211_ATTR_NAN_FUNC={0x1338, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_SERVICE_INFO={0x102, 0xb, "73b916c2c516e323414abc8b1022fee230aa7aa15d91f93ebd09a803f8f38c527c3d719f778f410057e73228bca0c0a95d8016331dc3a58865ada579699a632fd9cfe60126ae9aa4a64ad3df5bc6bfd22711dfa7b015580731ac65195a2dfa95fd3b83ef4c0f08d864e79823ca32cec4be49eaa5c99fe60aa316074312eba5bb64cbe854ab4e4b9467d00f7fab496720dd3575c51071bc38d23925dc69fbd81c106f5fa147e5e4e76170278e8ce64ecf41d11d741e76835ff78856067d535b0d591c8c98dd62ab78f21aa308e2459eb9865716dce9fc4f104c53387ca62ce3b1482b6d655aad88467ea1482af15bef6e2a1464b9d82f41d49c1ee6b891fc"}, @NL80211_NAN_FUNC_RX_MATCH_FILTER={0x11e0, 0xd, 0x0, 0x1, [{0x1004, 0x0, "d57972542784b1e85ab84b1f443964b1d1437ce3699ae28bc2a84aefc0a50cdf4dfe1cbb932361cb5407f5e2ea432f773af04a72607de2b6220b3f6bb7725e8ae7f21078ca8fe1f25c7f2d748e3e683c518b26e407ac0e0c792b8fc33e2975a580336e3ab54b3e52c18992107d22c2be3bbb91b8418a2125c81cfc4c9bc2ce16ce06d3a004948ff35077c20f0aed319f28a80070be369ef03393d41d5f0c1b1081d3252e248c4abf3da7cdcc57191191a1eb4e2856986521f3899db3a30aea3ba18ebb0a4a9e12c4bc6efdf0255dbc44e1dc03699c5ff00fdafc9940934dfbe5aa3a9fd8df185cfe7ed21709378bf34173d8da746e1d1d120b01f94f4493aa03d8a240cbc30bf591d9a9603b48fb01d7271ddb1f6a04dce08bc53fdefc22af8fb2f19fa6d9f090b173031232a595d51c5739d57072f7903aef7852a7114d5fbe63f6b92767076edccda80c3ead0320e127ef32d000cc0348475bf3e68b51047e2074cd70a092bc300a5c5c3a3de087069fbef078e3b84332df1306cf821d9952003b1279ea6947c2e5717a7d62cfe091bc566b80467efd2a577f5192f60c14e03acc4e4b449e9265af06bae6fd07bd31688904d2943de678bad3a4085047652199794f35c0796398f0b847e69e48d38922ab31d1128db0fe6977d2c8d97a090b907544d3781b0a3a77fadaceb5595d6ca1e30dd9fdbb8258d79be38768d8d3d9255b3a4a9bfdaa0360da42cb6cb9b22186379ac821ca8848ede6037dc7e1d86483a010f6c273e6227f454b97f4d80bacdec23df2de5696bd94244c3da00af082a49eb877b89ce9eb295da3660bcb258e003893d70d20986b746fb85aa48b0cf65b9a435a55b1b45e00927a371ff003d5c29c57360a831d7fd9544c1ce04abfd404bb7a849b44849839d5f6f012b194d4424aae72f7cd206acd25dd31efc059c883cccf3510277059a984f4e0d15e48656b60b155f752aa0c913fc9f90f72ac3d65d7c3ba1dd390a8014ce4222b1206a0dc2b3191c0e29e2bb4ec04e3a86c5fa290f54c3565a18101762c86ddb50b1932b391e6020a170c3ecd4b173adbd06ade3fc6113165487bbf00a4673aa07a6974c4738490e3011e9d8cfd8ee6d556f453af4142e467348e44b7ead729da8426ba418609ac56b382c01f1885dfe4f0bdb6e67e9a1d0b3b551590ac2d83c9944b645b7f132794d5aef5ed23ade7f9b6cefe31410456e203b27114d5aa0156a663341336b9ae5f319140244070765acf7fb5c7614231269b349083ec87f2b2b566170eda2bec7c2c7f74108b7c073e7270f7cafb72157965a9ee12da638a3510a181b7b69dcf011470b7b49d6b7f31d5dc68d939d051e7b483b569ed7906d996794cfc554fa772600570bc081b663fc46506dcefa41cfb08a4849d2e6a66b288fe1bf9fb7693b363cbd981c7bf7de9c9eb53ff01dc2ba19d7dbc44883114419802d3684498a66f4bc03592a4adb782069b03ed14a9450a47990e55d4e32d2fa9e017ffe01354721833f8bc89b2b1a3e490b630855a82c860edfabaf9e63a38415c5f99f35798d98d932cb07334965b9c6d71bf95caae243ed90fcf30ee19a1acd75536cc0a25216b4c9f58175272e32f0ae6d4242c7c214554118570d8654f667b5e7805542188bd58c9b5d02928fca2380bb5c751e4896518a9d1b4f288d2640071305ed3803512d11e5dcb3508164106fc1bfb11f281b67370492ed58b6f34ab9f05316fdbd405345c09b6095a51986b7e0776daebebf7f93e45b2f92d18d499a7518a619ce91b7272aa7a5f59270c5082e7c83187ba24bc755d75a790db322e57b4b057d47d4ba90efb0d824187eed667aa2bfeb679fff4c28176c6d8ca88a6782e1fa66a27a8724dfb59b88c9a8e4b700d4c1679f5f319a925436667bcbd16434716886499d59fbb45d233c20ba3209c25ab25bce0544d93d118aed511c51032e54426adb042db660c5e16c47095ff869778b0725aafb003892f412df709e94c6dddd1822fa40673290a4fbd560c1c62dd1222605dded2e875e353f2bc4806938ac8eee6b9375a05cc7f9bec3ea16232b334b4b583e784e6f307cc8bae79751a33d5a9702413f697b1baa5305aefea7201486395760996b74891a8bb0fb8af7a58326356186a6b0acac2ba37a088cb64a3c49fdb029309854c0e05956ac98d08388598339b2adb7113c9f5d965b89b089084023e88010013fb75145bd8013ad3bdfad371177e6fb0ca9ddd069d2f8e8267d33ca172cb2d107c65c06a1598a9446c83dfcadcc1cd9a70e4c05031a8111545244129011791e34477e7745b0e7688e0be519408a089df387ecf30dbadc8fd478f8930f54950313af08c456d50adfe67abcc238a8ea86c8c3be1e41187c01ad1c75f99e31c9ec16d0f4588feb26bb55634abfbedf00a835caa7aaf8f29bac6285577132492462a36bb983d9815f798febe5ad520d087ddfd457ab0bbb9604a3e6052cab679247b078920f496d64e6278556aec53cfd24b8772baa55e47c36542aa16ecbc30133dbebd4a8d9ba1fafbc27644d5eed3b1675082161bd670c6a9034a7819e90e9b259fe854650e1157a0390060d744bc5e0ac905cf66f4447f414a97e6be6810bdb562c3caf5da36d7e00dc96f26bde53dd78bdcbfe876661a910d9d0a99ee99372a1018759c826000c5c69cf8bf75ab258df1c6b96f62317521b4df75ca94fc630b56ff579ab88226f71dedf9b0d967974c8af27c26d4b9c1ba4a7d24c216a437ceb0f3a39da128ca08305a2cf96e82d8e393a1d2502b1f4f91607bf18b503a84db9b0a7f8b749f5ca00a4f02285500f853894c7f08d2979c8e11af30b485d1d3100d3f7271b9a405cd270fe3816ebcec4d8657467601b2392b759ab6c7ca26b8482edb6576ee64da4e2e3090d0241736e0bc5aa9882efed3ad30772cc8bd73b9a46e1d0ec5954c8bfa7facba9c2ce0a64de04519af54f88459e89d96d6e0da74a69c72c1de1ea4bed874adeefe29d31a87771dfb6b7ea69b7aa4ada571b9c76a8ae5907129b1046e5316a6d0a6c4ca0a4af405f2db541d689149c8da81c075be2002052191709d05321b87508c4803ad2da83406f5ca46048eca598f6c7b067814b14b5d92bf7dfe2d3d29480083e33fa8b37044d445b23e0f2d72832d1000661c5b7b152d5ea1a83050b20ff92cda1abd5a6b3a5a383d9da32f937ff771a63133431592ed5980960439ddd2bb422e3d604cee2383f87abed79587a9c79e0c7d595dcbdf45296c688f602096a3b8d4a914f2a88af4a0a92b03a3a643b5636a416c9c5597419e2697d26b8a4c4d984451b7e9e9cdc97ef596c95ad1777115515baed70139af86a25bfcaf5289e9a6b325fc1956171f26e20900838b99aa2e3d10d845c1aa970c78a25df0e88294446b2ebb0cfcac479a78ad719d8ec0bab460efaa33486a00ecacbea291a99f1f3e1e808826d26b16d6efde4fca0146b99c05b90ff17329e02ca12712573a7f4c51b9de03f07133d4f8da0f0bcb48c33699bb0e50c1280dc635467804ab2532f8d9358d57e215ea785fd4c25c0fc57ca3f68fe671bdb205f2dc5e34ba912843585f09f2bc26c03c67a61b3ae1825ea0e9607afced54ef8bc5acc383ef31c180184a76f011fa2f1b0a6578fec90b51ace7de3cb0441e7233ff94fc493552a6ce99b55cbecbb91b5d6ad93ab5a8819c3fd21e6c555ef65b5a876e83c2bed93e53e52d029ee1051e783a61bfced097651a53105efc53d77fcd068301313831145bbec1651dcd32ee49d995df26d2d41db14008fe0f9dd81bc1419425722c1e582bec9a5badd0ef4cf8bff97106a73f278080f9b2c51cfae7b189ba94c852fdb8006f8cb68d302deddea786c71ccbbffdac3914bc43c494619be5d8672e26b19cee8800a4050355b30362e49dd7c2cd86a7f26e9856905c04a65b156406dee45f51c5a7a3bd8ea5c3a7d039e1ecff142095bf5fd81da4088353fce4a448780bca5f24cd9f22af5e98c4d178ead2b062b5ef9119b0934c8c105c7aac0da84f7b1a4bd8c1f9fa0aaf58cc6c3d31a078c9d29e4040e78f01e04c09b7ea6f3eee86535781005ccca14d1adf53012d5b58458305f1f2ab5cfbade463a1a7ca4f2ef12e09d228b972effc62746dafae04d4de75c9bf2903d1ba22c92fe7ff2db1925c216a4a8559b5f986a5e53f372befccfd95c9413df60985d129fb7e62546db5fac91127341eafdf731206d76cc4954bde97622eac9d8fd2f1d784ea2029250db44292f1a4427750c140a9355d85d9ccb57156a3e9f04e394cc0b4ef0ea340686b6da6e511ee207d62c81a7d4af4b4d1e02a18edcb60b3af02cea3d37160f3443a946de7793edb0d163c574bd6f4b014c1ce01f8dfdbf0e4d76b5ff917f0ef7ed694aec8c6a60776617789bc4e6f6ab814f8be4268a86bb7bcb54ba8cb72ec31a10d2afe4932a3b5c21db3afd22550c14d263cb7fcfd4a2191d9df8b16851d8d19c69c4f68e2bd562bc8efc91aa6935a809d15e70fd8fe91613062086af8e4577bad0e7f1be7ce8bd580340922b4d6322e9bf488b6dab8ac54e12c53c3fae9c90b507bf743dcd80ea34a645d3e3024051a141d21853072865e40188ad89dfcc75f3a552494ca6ac2c13bb01aca46fbfa2a65829aefb3e04f6c82823e5bcfb2f724e05ef1fe96c13d85447fae61144a8090eced9f98d70b1b641352d5111347b189e09aa5a45991e09ce1762a9b8e2cb342e6cd81a3bd026f6fb12130b2051a61b0af57029ce5df4598dbcd4497efb2bc057d871d601d36647a08d29f20554d4f1766bd66e62636107a6485848ab872005136cc8ad667d7ab39151998541b9d5b8bac4a09571faca8b955aa5775e93580420857b5fffc2e496787439cd6c3f50e75cb76d7e109e3adea2d9c9f3a0b70ad291aed4e66abe9afd7df371e7861a35c86861df5e4837c05c634342e811f522e4c10426da39fd785f306ec0c278d5f163323e645dbf81f6ee8d3aec739dd72db3c28f97e2766848d8cf023b0477cd9571c94af07f4a5ad67f551c2b9694a9cb08dee229ce7081b936781c3e102ceca4449a21421bd47b67e2d6bebbe99a75e2548ec0f4743342b82b820cb9653c09be0f5d5d771c41b0dc4b019e77fb68bd1cfd3065240f2eb1e2b054ccbdce7d8581e29ab62990b819a992c95851d94d5272d79305488c799d539df1e37f7e57efdac94be1d46c8b274eee79161f08c042f5e2a8ca42ae547038414194fc24764680c15f1d11e5b067290c1f144920b407b0a07340dde7f4cc19f6335d66811263c11bb541836810a61abcc8b8e0a43c922f083c23e19f22ea40ddea5bf4bb39eac6bf4e85fab4f60f6024ee3cf06b2bae8dfb3480bf61dd98a809e4adb18bf1e35ed884ba81565f5f15a0dc0fa45641daf08f3101c66e2ad51014822a486b45214a70108e56578bf17beddcbde011227d4e45866c4995230cd15be46f5c35b956fbd5f9d11a312aef6ecbd693a96dd4ebac5467770c725a46b7a463357424e6883f5b032f751d7b428a36f85fa2cf13158e80b174bfb70179cffad7f6a9730db86b10e14d6f9e1587a711a5548d285113140936140c103cb21e49f09c114f5a766e00e818e410fc48d9b5fe25de7b2fa216e899d0e313b926bed98939164e758909370c49bf304b65d3b03e8b9602183268e4887deef9d59b69bc1e623e226e125ae9ccecc95389fd75d6389fd3534e91fef744b9e5fa77ea95e8a917fa6caa8c95eaa2920edff008674ae3bea152330cb5f"}, {0xc5, 0x0, "4ea4c93945de72a7087a358e110601e95eb217367d5026a5068161b84475880550450ac5c9d7068f713d07083fac9f92719fb6e86d0d2fa1cd71abe6591c3809963b82dde0198212b7a6d75af67f646cd20b60cb09edc18deb1911e4d3cfdf59f2478f243366fdfbbb76a28b1f3809422695ca6a983d043f8f00cf9d1d5b192d0ddb3291e5ec9b9321f126156bd304dd108fd2fe878877a0c77739e661c2812c2def93e82abf44bf0a184a1aec361ab2d62b97831eb125390e8609c4c44d628dd9"}, {0xe4, 0x0, "9edf1e30bb4d66cea7a112479e2c23d7b0e6563f4f3b41f8b2dd3c24ec76b34c44999df534e04569fa66190e6b4fce238ae745b2d092b8089f39c1a0eaa985a4fb3b604287b320ac1c1923fa7154c84f223cc9f8fdf8cc2af8308d6b91bcf5c804c45271764a17efc5e9fc5393ed95d08ac07850f1501335ca781df23d01c385cd4dd6bbf9f78e6f812efbf14843d7267e9fc2bf9ae8775c6111bdd454827090a113a2921a19ca38489f70b1255b03357825cfa0ce094fb98a39103c5410605c9999ae4c606dafc16ec724fa989bcc7ccaea4ee7389e8532f9a8488ad60656c9"}, {0x2c, 0x0, "6cdeb2993655d05f18e356b17618f2236165e7a7314fd6d817edb5e200c0bf951e9abe2fbb084b09"}]}, @NL80211_NAN_FUNC_INSTANCE_ID={0x5, 0xf, 0xff}, @NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE={0x4}, @NL80211_NAN_FUNC_INSTANCE_ID={0x5, 0xf, 0x2}, @NL80211_NAN_FUNC_TTL={0x8}, @NL80211_NAN_FUNC_TERM_REASON={0x5, 0x10, 0x80}, @NL80211_NAN_FUNC_SRF={0x2c, 0xc, 0x0, 0x1, [@NL80211_NAN_SRF_MAC_ADDRS={0x28, 0x4, 0x0, 0x1, [{0xa, 0x6, @device_b}, {0xa, 0x6, @broadcast}, {0xa, 0x6, @device_b}]}]}]}, @NL80211_ATTR_NAN_FUNC={0x326c, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_TX_MATCH_FILTER={0x325c, 0xe, 0x0, 0x1, [{0xaf, 0x0, "7603627795ccc562639807ebcf1bb92afdeee341e6c2e8779644925ade256c3c9a328ad6fb1a710035cbff91a179ecd9a9fd1935c36f929d30d0d3c42b8d224acd861af74eabee7846c0c4d40ad2d39636a795034a5e8f523e98e47b77ee3209c4ea63d6a80eb5ee4bfcd8c724c11e8ffd670a5a33ba89e7cb0402a6d879b54e8f819025412e1dea9ecbb4a856dff31757c2f835a0fb3bbe0c8c7de5f5927fe0526decba7d429a6e2acec6"}, {0xf5, 0x0, "f471018f5db37ab3eb3d963adcef7f3da187a236742ef09105e10295f56e3065d793cf861daf934bb03567febfae8e1859085705256b07092a7cb8698ac5b0066d1a6a819de8e2903ae645d456e0b202c5e4af1d3cf0dd39b05dbe6deadf2e2892cc43b2b2d7c47740a0bcf4628267fec49ae418222b2ce2ddb053feaaad49f723dfe55b69b423103af66be93a261ee7150a40a0e8e31baeb753cb4419f3dd4487977f18f01bd6e7a9d32c5591009ad75b88190b4d624d553c3aec77690dbebcca3d3b5427bc447f6668ef16c9e847ebdcd3220451c2290b16c6f64beab0a033ee51402b0db98b7ffb5ca0092bc66f942a"}, {0x1004, 0x0, "34835d7d3ea240f9c7f806210dbbc3ccfb25a83b0a1b2aa0cdef8ba2be62fc0c74e87b0f372fd6a96b4927ef6edad4f960e93a4d6cd89b4b380745fb50f7f3fc612c810606c617a305408f71fb7a678b53ae3a79529180787b92062ddaffa037a6124b42314e67f8ee18b2d543733aca18aeac7354a615d817fb80df0391837c5accefab7740c3361c663d7fa663e911a3d16eafb7fbfd8be154da9bb908f096612f66d1f310bc9e0ce36778f9caaf7bf265258611879c919e5348e90f15e4b57d3a7fb0bffb704b2a98c63fcaffcd35dae499ce94cb9dd64958ef5413366f98bc7a4a66fa9090b5c1f1e9f509e673e36059dbe98b21d90cfb6dba09498fd6fb32d13fc031aadbfe5ca63cbffda072debd721c41f8b59173028ce269f8b5c979bb472280022edd4830cb5696fcf11c86f440ed7db60fa98cf8facbb814b009f1e3ffb4eff6c3b88f6290ca3e30f1f22eba6eb9ffecfb59978457ad7b2c79bd02fa7e7c01939302d56a700308bd37b21aea924fe27d0e3de6368fa0540bb7a12a5b1d90af094a15453eee8f5065204017c80b0156a937ef524f766f9485cbcff11acd4e271842c1ad914e6f441c56f1d3279b16aca64af06fa0d1c7169536bb8cb5a3c2e3f4fc67cbba31208b9bc2eca82dbdda3ca4217dd84aef32aa57ec2bf918b895eccd3f78e6cd6d38d4af7ceb92a9f771b64f35b6ae9dd7fc2996f2c98e9217ada62ea415b65082043a2139aaace2dba56c15c2aa75d6b72e55cb4a03c033f9ac09b962c35030cdca1ebd1f720ef921b01197cc1624340c9e799b4eb445910b06e3c9a0c049bfe74c0ce422699471df5c55f8218928238d8a20517f5c27b217ebf7a22cf5218f8a79bb36f046b827a2b9871dbd33d0c5f513c16aba44270366a1861154b8a9305e7f0e2edfb10214966bfd87a5964e4d83eae047591da2444a11071cc1dbf592dee86a0fed5723a05446a0b899ba3c40987c4944bc8d97e572de48fa0d43df8852a60b8ad000d33a621717890ad57ec73b10231d1f3f47751d69527d68589a3e876ed80d40fdcecb86674de7caca593aa808f1dda0134cc210c964c70bd3c291044ff5f4456dbcf4b79ebf2ecb36b40a996c144f05ef28e7628b6467860ed50e9cf6f8559880dda4ccc841d456380da82022dd542cb82e884388aaa12781d8161d02a75f0e32149f6cf59105a2acbbb77af0959bba1e9b66b19f8d00d320e5ce604d87c0c35d1a99cf58e4ac33a0f8ad72f37171006901004a23bcb5fa05639b1b8c0fb386403968f0e45796bbe0b0a4fb1793bf37d19402c98661c04034f9de17c11bd13a88d711fd49fd0376585f4d405a14e3ccef51a11d56da33bb6f24ac43a03980f7d7782934555b5738f4796e28a6b2c22bfb5cf1ca1121629e4f136d578b76445e3707527673128a6dbaa711ad1cf4a4dd31179c19ae808fa8785ba8aaec2548cf733ae7d8bc6fafb87b7394591be52bafd22360b79b92bb9597f0e52a2507d63cae1de6c19f3086e55f58c440474de4819298953ab996804d3c057ae1f5d25a3fbe6226f9fad7e057d61eb012479899299dc42c4c1323361a59fd3ebcb411cf466701760c1db550ab49f79dfdb618d2c383901445d912467083d1c57790b091e30e6223b05bba88cc1f39703a95275e68ccd1446fd4adf85604a098f008fbb628cc42745e1e7e83496958876937139a2e613beffdf4ec2af997e7e9c6fc90042a8517f45aa47397678c341abf050af3c51fdadecbbb67af0fe124d8ed37d591732e0ff25cc799c6f9ed9d975737d3cf61017b51637e90d465624d86f9182be1fc00d26ce3ba671a49e5b8f324f331e2d56658adc521b67cf29703c53b64a5b62c830c8577cf259c91135f2cf54e42271583233a4f141c98de809de03319558ee1505e1ffd87a1604aa777ad83d3d3726e8c8072ef5ec2e3b31a672300083cde07e5917cca0b41ef6ccf6396aad00417be6f4e630270853c5e80579393f50cb152a1285ddd87ad687e7d2cf1e755e5dd4a1297a6ab5bfce209a4355773e1f535907c6b3e3a00da4fa512bc1a8885a3b6d4c433f413eb1e52a32f37b8d4f1f8d7f848fb0a47e1a11fcbf1445adc386d906e2b85611716596d9dcb2750a6cfb99134ff87cbc22352228fc08520ef81f60c630831d878bd87d9faf2ccb55973090e573912799b6182062cc4b08de00efcf8d04ea1efc2bdee22896e92fc945e7428b94d908d032178ef716b062b6ced27d1b18874d7969831c4eca580b6b86b93a15e1dd59aad629e8a5386914bfd27be32c0f9ec78cd7d164ad8a64f219aa91ba2e5a974592f5f0d7a5e27aec13fe634ebb02a4649185cc7d7875db48ebbb2a640c5dc55100233f66a9bb74598dbe1da8d44ea3762167307fba484f80ee6b9b0259bac3891a1833b54b82855489f0c7b1ed355a8b8515e37f4a9a25078cf9a54ea1dd53b3f11c93bc99b9acc356fedc3bc5b885d40e3592812a39cb6bcea8dca519fd04f36bcd29e258cd63c61e5ce2e215d0544f69f6f1ba9272f587629ea381fd9a67c8ff6f740d143537935ed6d0e38709228106e878b7b9d14ad77897113267de742fc93365456afbe8851029e523948942c5b496ad088d09543f462417f9b00c07bd19f2f5f2ab18a3cd8ee8b3af4a3da6e39193e3703eda00c8b632808ba339265d0333498602f909a7414cb8bf1083e573a7ae5dcff1261ede926e59c606ebdafbe183df958ebe689aaddfed9bbc3e816a5241fccd5eb399879b23070bcdea20934eab7d352a21b327be2b92c1fb11c1f28f06366ef6e204b5550dbea830464d273c3934da3c30c39fa48d3b113596c393eb096059a4af32e602a7b9f155e84e63ac891c2a78fcf8e9e12d06a14633777fb91b9b5a8cac22eaf43da04be9ec9447ef779bfc1bbe34ae0fccca10ce30d9a907b1449e4007a0c4e26e54406816b9d70f10fa7576de26e8aaff701815202495a13eda3f122d60f2f21bb308639cf5fee7f9b8c604856b63376584ee2a43198f48e27095a1d7d3f964cf79a912eb6530a9a9b4463c89d2eed996021d908d482288d215722cfc18c2ed289f4453e99cc5a5bf3d54d6b198c59d64eb64de8e39545574a01e5fe6b9c411570a038d89983c408c2a91f5b7c8495a1706230b5cb1bd7b20002acf9f13dcc24fe5c12c825754e88fedec5161de28b3b84c79bad4aaeead08b6ad400789bf5adef1476efae7c3c72a701a151908c09410509e40095e6fcadcf8d662b87de7458c3f505c09cc8197ecd0d6ed01f0acebbbff9d714478196dc2e6e68640c5b197b50b7bee21f4dab5ab7dee57eccb07b3ceaa2a08fdeac81ca1a224af3239f59177948a152a239062db21330c85e38f4fe4fdd8e8c7dc6ff5e9a45b48fa0ccdf1eae78288920c08febcff84cad97b22d035a2f0a2456c6c1922617e2777514b75eac869ec14bd1155ee27806e057138ecd25c23cda6af516c52c7ba5e3af0def9b56e9b70e63b43475b674b2703a448bcd5065431247d29c023fc696bf6808e8beaa2b96c31a9b4e0b4a61323c93665298b0ef6451205ff03464fdf12603060970d7e436585d08c627c9e455bb8a2278f487abd85f0654a05b3e7cecdaea093e3ab2c1e78709cad1b481222f825e03c02e84e2a722dfc4b97ce4bc7b8e1c755ba9a642fd3ce6ba452929d232759d07a4ed2c64102a1b5efd425f5128d8ad2ddaf6dc000024751874128cc1b11a81c2b12a818eacd8ca9dcabfe25adef3f60e7ccf020e7b57d0fbbd791d5c0097d981c8acbfba5c3523b13ca435b3f9c7bae6d9134860b175c1c6b8d13a7d84c4e6ffc4af602ed9a10aa5e50302d39addf087344afdabfb0c395974b1518cc3fc9ae38347e9388de8a757435b7e10922fafd1908267e293f965526d3847a28e34ed55a149df83346a4542296f636d30f3c9c238db8df52efe1d7abbe409b1690ab35ddd572725cd19eda35f1028afe2c158cc37e894bf8371e2cb5c63055dd7695f7faaaf9de276b3a2e17cd2b72d1b21c02a27be8a96abcc982d4cb75ba9d29971a8b0df7141f048ead08ad094fed3ab1093b49302a354bfa657d0a44301a3b864b76ee0ffc000950b72c644a0f2ed39f9f61a741f874e48a1e31b97cc502bfdfec4ca3bc8da22c3d967d7ece886c00cf3f3fc19647d9c7b82cf0cf3821a32c5773522c4b5e8f08f214290d2f38571a86440173ef802807bda10d29716339cf915e58584278b3878d239b70ff6061c64c9790131c011c2aea936431254cbbe29e2dcd4ebb27206eabf27e59450291a0448a5b44dd07d457f3c5ba10be86a4d8807588f5d9ecacf99f33340e75faf941917a2f83341de3430ce22181685db1f1d06e399884ed8d2cb447fcd9b299b1d4071483d54da33a6914ef0ecc733e96aaf8712c3d8adefe7cb2c8961b1b54dd0d69f7a1888c4a79a4d50b1f854b4eab95dcd88873b3eda025a1347b30e202fdb8dc1a3f121a1e7470a60dc274866cf754b3cb9259f57c6a92e0d5a60005448df4872596e717ec616087d1e9001bf1bfb5d1397e0287e74a8b8d980126b44aaf3dff2522cffc4b60d66a895551c94a5a0f36b166a98cca4db4a18a5d0b5f2f526930791b48892a3e3097490b3d56bf79df5e59226c1ec1c47e660e5da78c64d92780fbcef1c4c63e7c7b077f81f12d5ee01040d54157ba91e5025215ea3df82473e103ca38d099ad609f268e5917323ab2efc9beae16ccfc6db88117e9726170bcfee9765016ae2d1381eb2b7143eb8d00a9612911dd80f9eebd3785f503464dc3471c0ed50cddcee0546e76d6b621e5783337dd23fae91c188f0b0c2210397ac122905711cfbc24ce52570aab86cf8983b0d6c528e03179aeaebdcaede7581f035766478b0360293425c5a11bbaa26e151f02338dfb26e0e01d908ef25ff92c60bf1c82ae2cbd2344f0faa24556de863589761322bc0c54b18d86fd9f50f82de99e9868b8a201aec7c2d343c9c061df22458d2cd7d62b466bd704b7d9b5b2b0490e9e1ac8a3f8997cab66cd95d93f91309ae3280a5043cf3090a414aeca5837e52421b4b4c17fc25f961f8b875d67b7b5d2395c0cb194213a943a977dc988f8775a8feccaaf32e7e7012cb24d262e540edabc282187371cc915f0446083e58bd18b04a60619a1e8fda46758347ba82ede48d011e8c1a9d75e13986cfcd1af7386f262bb1131de2c28faa08c647fc23b4b2f5c38dc0f4cd8e9064f30bd45489380a834ac12dc1a9a9e9dad8a4e2c7e03178483a3c26a01ecec0cbbe0bc7097afc81cb08abfd874dbc5fb2d25ca40fb9ef9394780469bdce2d4897c3b84585487525fb8882d41308d0abf5ffb740c485ce1a530f25e251ca49f9d78d3490e5e665657dc6434b4479bde4dc014c3cb756891828ca0a2affe741714ac8d81d0887d9065cda31455b11a29b9f5f5ddf914576e968acb417f1f2473e9e31adaa6afd0f83efd71e526efd4b8739f67fe3d435856c07cfbfb9c63b15de56ed44eb20f45e50a99bdfce7c5b387c09582458dd2c5ac1260560dc0bb96eb4fca51862ca02c0fd20308e2726f1a7674a1f1843f0c526350a100d1ee3e4bd4aa128a0ed5f07f2a2495bc5f8a2c505ac421c084a8d2494ce1c14679a3d5f957d613a29d947a414a238368a0a028e2314a838296ee560fe2fff9e47598f48d5ac0f74f3603bbbcb19990694ff2b09b353b8427b253d1e8382914e1686ebaef2bc88a4de2dc2b5ba457ecbbf5ce5e40ca653e949dfb7c6375689b6a6f6ba537a97eccb"}, {0x1004, 0x0, "7ae053add5fc3337511b6f1d45056bdf70688e06f10aa72a7b0b79546d616fde606ff437d532dd6f7472dbceb3c85d216756bc558007d4babbd2b792da0fd8c66f4eb35afe425e05cb4b2f4ad8e433fe0c822941e30a706443be5345c9dc5b7f9cdd715277d930b3cfacb51befde4660e393e0fba769399aea11c2fbb0d3783bcf33d7bb014d6154d016c6fa02d39ff59e65cc7339696e5665b1892546a34b3d44197d7602b8cc3adcf2e581e45b3488a1a457c2a5a777705d9b770544651ed0245bb0b2653c51d77fb5d6bcf083ef6ec1dc26c688cdb9991846c416cfae762807cd537cd8309598cc952d86a50df32e037fbbf15f7ab3a4d7645fb0525ab448035e34b42d4376b22d69496f3506be10f7f3e4bc6aa4297bce14d4b4a28e7b90dbf8eb6219f9db53207bc2b919f2308a326f95d6889f7bd74602a76cb3992ec39f2e9a089afac5b996bc1ef34a3198f0ee3958dd59e683d05093244d525fbd3a5ae6b36f9cf5ad0c03a21b32d60f5345e84992884369206e5101596086ededca4fbbb1336aa5b5c0d4e190a5cfe658e5429ef390813c6240abbd5bb21bf631f09f39449af094a2eb60bed5e20273fd0d6349795a81bc268036820b484ce71c31a9d2327ee8964edfba7cb3baf50a8c53da3568ce954af99c79a755c31bf87591b81ca21f684ed366dc354f0ea4f44245451b35edb938c512fa06be06cd49229667390ac5f3ed9ec74d0f8ecd96b359e447a1a68e43751923c2a25da9aaf1d1d7aafd87e4e773577c34108ff9f2c011fe222a0f714ec7eb97dbc459ef7bcfad7509fd2ef1bb6dab222b304c862379d1844c56d490c2ed755ca561e26bc2c79313d041e62eda8c1dd4ebbfb16952be3e2da2e9eca579432029177cf7899446eeb3b5dc8067bb20d995e02ccf0d28e40f54200c11323b3e5f71938b746bb4a7acc733f5f8f1d2e0422d8cda0733964ff53d72c97b28a561f8e5a9b3039fbe5ef39aead59bf133b16ff62ceb9dfa26924700c48acddae8223139f17c77648d6e455b87b2f16a1cf79fcab340a25796bbed13f78490db88d6a53918655a96b2ef31875fc29238a68572a104df88a36101d2c33abefbb06d6b5efb63c415d232b4837e3ff7530cca944d98d8985f4e2c9a5f92b4d0c310b2a10d70c3f8275fa869e918cc76a6e7a2e360b82d094bfffd6ffeb0f4c4ee8d6c6e1183868ae09ee1d7c1d4e3810a02d4399fa2c6eed1187180d88b06b5fe51d20408ebe8c07453f7ce4f1a268e4c069f559640a4d936117cc4d020224ab3090737f81f97889882a756a7ae82ba14ab2c00f7f52db17ebe9c4d989b018cd352d756b093c1b0275a92548950242638171d526dfc88c5e6daae11a3dce37d5ede5a5320c0f7864b24e7135c96bb76bd377f9ee2051b8222474ae65387fa7a4373a67e374a870ef2bd4ec8ab8c4d3b1e806f2ac105f7ed485c09affc95d0d81c13f5cc05a9240f27d48a7e337b966d3de447bc4b1878167f0adcbf085eb3a8c6e956c431c7402e5c7a46a12b18af56ef2b5f8508eaa51207cc54ebae2e3401645f2067f65abeec0f18491f0565eafe89e27b0a365f92155776523abc0975890f4d78ed5c614524977b0a435782888e99e5c52a813cfc78ba671409cc724435ff9bce8bec7204fec9b1e12a39da1d513c6e76b359234fe30fbcfc78dbf404574bd798a15c9d57101d4186306069dde7baaddef52a9c5372197a18d1822c3910cbb15b3e7b8479804e7b209cc558b864e519ff34e801edc7947409f6687da3cda8f876df0f75908fedd6eff7ae867df26b1653e9acc3248f41880c43051d55c863c3e168106ab9fa8c06bbfd4ae76a6cc94fc564c33295c20a4d67d17ef8056448260678f53c95f07b0c79211a8f10a412e3e0f58ee407e286f23634b4239c3f31780205be2050ffa8b9bb86720df0c73a0ae49309fa39468f711a1be34023e6aef74ed9069923a7e8892bd5b8fb00c995dae2c68635faa472c31569d60b534c9f4c87d29a443423d762d0fd2298e8eb1da27f2e431a7b4ffdc621dfdb2e9e0cdfa8dd8836e0ad3082f094be4cbe750f5a1f103844238c28298ec15ebb661edb398db1e7e1135cc7c6114868eba8ba86166a07f27f205eaf91cb3ff1bce7a36c6dec50f753808986493bcab1a5eb38b778d5f86ed43d270f4e8a248793af135045436c037c6d744cead4dd96942a448de081164f65982f9fd53a185ed92e65c84b24a3e625bbb9e0e6f261c4683a6ec39cc7c4e97d11bfb737c6f3cca914095417b961183f15f3f9a0d4bae1c1025ebbc0a0a3c40ab60d985cb269b81b43e60ddb2fd7ea3c2e09611b19ef4e9779ad60caf5b399f27eb0a2b2c44933346ca4c7b2ec9e138ec763561fb965418185614378fed18fbd40573cef2c4d7e2b579a4c4a3e0a758802068b6846e62644c52c28ef5ab214e7c8f504a7d52a50c7c247855cd30d6d9a8a4723a433d118e044f5b8c1feb73223dd8b162eda1b15da30deba22e4f6f365831f286172f579cbda39dfdbe39fa91aa364984246b4a5a5aa43838f1177550c2b4d4450d4bb84f17197cdfd2338979fcfe08dc603a55fc2ce3a0f3f3bbf92d3de187e1bf5d7ddb792924ae24a588be713824d54efe9ca410b0717bc13a6d35f0ea1ad8e26bda1532607756a6ba20edc64a53582ad18c0ff17cac17fa109b32ec4b19a9f17b0b3a086afb05da1949a1dd1f014af82eb6d469dddf587d16ea9d6876e2baf2be663c34411b7aa93e12df896a9ea4955ee1a651ec493bb7a0490af0d3f00f5abb2c08c1c1ed5572fd11370c24895fc8362c96668abdb1f3e34b8ae0a70dd8ed2aae34cc88bdd5f3e9994a2942ebae7ba9da7233490940448d1527758016379fed83eaec21bfc5ca213390ee1d31cef8252d0a769e71887b86bd589c8d3e689d60400641bb99da39f49bc78985477d3123276eb104dd05aaf0a19aafc97a69f0f6b91087d54517a462d3eb3328eaa495ae694c55afe00373242ac0b7099cc891fa08eb579c380edb5817b10871eef37b2ae515166764db8d66f1e7b50b08f096043adea43a5aa4396f06e4c5e6486d5b77689e1054ffbd40087b956d7b2d606104653a7b46079bd4bbaecba953ea5f2a2f88f78cc9828700cac2042eb904abf0436af1cc3d984335e3e0e47bda69cb35e63cd047229fa042e1a0d417a2363afebd1f94214c976d1d2d726375ead23a2d706de4ff0903ec9fe52285b06ea4d734dfc1f2c85770893d6d88e92ce94f090c77d0496490f663a67179b3b146c3c63d5a99695d492d7733acd529e7fcc7abcb427cbc2aba11671b10de346c0bcf8aaa42a13bae0c80ece12e22ef73613c581bb2545c2e7387736703a92c2d25aef1d3ed3b26fff39d9e4d6dc5d4f6f09db123dc54639f9fd5291640b8ea75ecc6fc4f236a0c2e8347470f16d0fee5bde7793afbf067b2553e5e50228c44c65dd7f7cac952d1b744f31462d8b6eccd82407c6efdb885fafcb1c8c641e1afb5b43cdccaf444bb580410294121b8985e82012f7d7c436c7e68559263d126dd3f85745b463110454b322869b98c937df328ed2e69a591796200950473f7caeaea58a5d4f893bc92360a73bd2aa2b4abe05f134a26167613df01833839767879cd2ce8a9c42870921b51e67960b7b885d84aa68bfc69e10fe41afb115a7f37b5d0f5c5a4d669773944e8900550b46b077757aa4b2484b4e474b75cd579f645987f89a8cc45afad408dee3951949aa497396ef49726f0f7a1b5617c1914fac6525235692b2163e2962f397a0f2db218426fbd59f81f66922b010b98f237b0b180b85027e87fe40c884d077cd2c1341dcf7da0f26d962415b881974866488da97de65a4ae27677e9002222fb8d20edf2fa2194a7a7f7b0195b22ccdfad9033196da357829733a84af796c91c8ef17ab5ecc377f2dfc2aecf309a3aff7872252200f910895e32ded00ccf79ac69b022c3644ed4b7cff4718b396bc8918477ecb6e354e4fb038d911832417754c91c2a6ae45426e81e900108b7c4baf2396b019bd0280e8595490bfe024c8b78184ecce2ada0a32ff325345e664248c53ffa733a2b662c3eef1af6777d3bf5308a4302ef6271be92a54425e901d18441dfc31e4e65ddfd2521f1c05a44fae2d8afb5fa24be5f29e1246d9e201d503090852ffbe6844e3f38043ac0a2402791f88a105aa024f1f4b8339ac4403afbc47ad3e67a504ae52ca2c65ad14b05ac2f2585d40e62907e841b6ecedaeb8890075c11ddd9d868d6e890e6db61cc47ee6a03eeb461220f2b8ad0bd8324000d5cc5177cb18dcf8c3a9b6fbda9257076758d5f52513911ff83399cf85beb64cb09814272bba1d279187ba182c4492ce34d7bf1d2b6208505655614788fc0fd86aa9709b89a43079a69d8722e4fb04643f9fd24abc60e8f8ef9053cef3ada856012e18ffc1009b7dcf656781886d1d69470c5f5ffe2af2f1a7a89666505810a568ecf2d6a00bb7cac8f6a6856ddb4c80453c7fda2977b9426a07489118bd2c04e6fe5f4232efda005a424ceb79dd4c764f5f045f1398af36ddbf87a6c88ffa526f77477727055e31fbeaab0fdd33804de1935160f7e9b0199a9e9c3c9c74283007718384a80aa60b4d5e7af3cd2a1710ab21a0679c3e61c382630e0b05d7d8ccd43875c4baf65f1da5f537340919fbc4d04c9a7e8a0cf4d3d2d3d0905d1beee021dbdf397effaa6f859de2c037034eb86fe051e6350ae9bf41dc0239932eda45fb02d298205df9e286cf7fd4810dac8945fb7260b23503fcb025ca844cd1ee0d08ee97596d0f80f78af82536fce0ae744e9bf5b302ed37df6a1be267c8a120b326d024a7ddc999273ff758ce4061db35bcdd38839946b9fd0c36788f857d67c8cbf45f168b4234bbc353609c22d89e51cc9e80e42f0119b50b8c417e3fbfc4b09bdcb20307463a6699a1ad78552f07ce11c380eba755fb864de414ff523cc49e6525b04d91dccf0df96cf0bb59a21977de35fc7fe34b558bfdeb71c0cdb02bec13b529f3675ba6a6a775e351b710fbda45f3c016ca64f9ae3cf17871e14e1caa8117f9d9e53011a3259d00353d72cc48a214343d796429b258c653ceade5bcd8b9e4a16ec4d291762dcaeb6ff0aff2592b9b40bddf327dec9b33da5706c20d815697733d788e2dc7a66720a416a4d95566dde4bc6cfe2e782b23c7aaf4b22d5e0d62c2206e1f14c96625330fac5b70558be5ee500ae61aef7da03ee0cb4f3a45de2d79c228c9c0609a93595d8a8ae1a7689d3f1c76733b234c1622534acb2f9f7fe59d41e5cb7ee91a720ecaeb5c290cbdfa3bb02ef937e20e2f07fdd166d46fba039a20f65f1fc47df36a81db9ebc09dae500dac54a1e3a1541fe097886a6ff763e782e6ebe4bb0cd4ad7eb9e19267a4c17153c8b179184652e1cabe1b1626b528c6be71c2995f498e80156a5629bfd3dd377f0c29549ab41c1da9caa66a3d3ba2598dd471f707610d2ba21f8c4f567f9594c3ead259613d93bd6f147c87cc791a060fbb43e5023e2d268e4710287ddcdf015fd496c62ff9a77f77ec00484fa31451662bc176eb3160de4feae436b9d3f5e49f82a57de56a5685fc73d86a06b575d7e0fad04c8a1bffc74c0ed78d97f41508d2cf72bc671866417a52e7897e996fff6ad2bf66ac51b724d1e34f8407d3a75999f2e1caae904fddad66b0c104fdce1a2197ac72077d967fe475fad9b914df3873366b05c2bfaf582f0ff436687fe3afb8b1cf906e28e76de20e216d7739df6"}, {0x78, 0x0, "563c0fc916aa62cac157fe1b1c83c57e2b2513a771dbe87f732ed278123d18afe3d9ade8539269000023ee2109cd92a34317327c333ec3dd8208b7a57c289daa6e62819287d124b1091d234db39954cc3d89bc8d8d0142a3c2bb51b72a5faded8d145a4349328dad09f4c7cafa2e5a10879d9bad"}, {0x2b, 0x0, "0e668290c6e5cac67a69dc92e46a1c2481e0cc0dcbbcce0c2091d84f7730e0cc07981a5d422bf1"}, {0x1004, 0x0, "83faf92f16b48e05ba24f26cd8a7092d4a07cefdc77abc63ab596f96e9e31d41d162574ddffc9507bf43e6100e370c8732db629b34cb31acff95b79e171847ca9799f279bfc6b5affc2711f6bf54530d7ae0eacf253e5672ff581d52f9b0ca29eb12b557593b370872ae718fc94ad9b573d36e87bc92af4915bba88d5a2d1178d8b0583a77c8f36f715ddc2dd6432fc4f14f72dbe624c9e654ebcdb884163cf5b9e5c353c080e6143b734d78b93a6c30a1f89efd203260d8cb2bd9316ca5686f3e64adf54f2639d353f5a2867616b1e8accd8bebdc6cb88c90780652497738579b945f084ca743caaf375cda98358bd557d9d2167ece1f7a3361cfa748f6822017f3f7716c6794cf9c934ed3353d7ec57d0ad8c7202bb2d8721d248de4d025c932cf020043dedd787b1a0d85a3cee1cb853cff96ab29f4c05e9d998b796dff4a0ed347baf9b2dadfb0c736769a8cd93542701934ca4cf3acdbc398975bd6fa818611ca81cf1beb82686a1d38c446ceff222c8ff0ccf2da66251d97768ca42144c283234b695eab2910363281f4597471257341a62dfefc5a1fcd89d72259332e0758d77115e2b0e5e05ace5b2e63361f0b91596049e328169cafc98987825017936bbaf6fc3b4ee39e4956ff4514174457bed8dcc8c73877eb03d87b345f694452acceafd9fd76851f33bb1e85c5aa771b781668c0f2246b675aa5bf5c2bbd5cf909e2f039cb82b9ceff9f5964d6848462bab5b2c22492f37c8a20632e7987b0532a13cd8fea26e03283a4c1299105165580f61167c56ea35e45e088ef7f60c536a16081777836bf7c2caaba1d52bc767aee9f4e5314101d0aa22b0b0fef075c303c9f2fe85852aed1cd30713e65044489550f92fb8b7f96dcd800071be1879f6179796fed61f999a90b2ea5ae992b5420241f57179a0babbec7d44a9a3c240c0a18ed006de3aef98130c4482b7567ad0ff227fcaf6c54af3dfdacc70bf88c2231c1e8b29b81ec9bc40e3e93d46037c4eb01f37688ab84639e46d7b12c568ceff4b0f84fa5bb36a9d4c830afbf63235a93c487b4d3a3e3ca71eceb4034c1ba635ddeccd7e9a6065fdfb4d25ef9c95c5e549806032299a44de5a8300cfecd45c3e810b004d8fcf8e5e91f109779df62337edf15f0394777b65839d5ed3861e8a0abb58943b9aa901edaba2079bd7a55b79f09b7de5097f269214cd4f2b19f72d369715f0cb6e7e3adb0597561488eb585670804c05b9b30c5cbf55b1441642e37148c555270d804fab0e95ea4d5fdad0cdc61102498e12258374397a712ade3392767df180af179bc73f53d6fd67371677c234cb84d609089bc1ac8201e25f7edbfda73f6189aeebd195b36700ddaf7ae4fc0b2b5a576e712b85b85cb37f6a5fa480e4d5cd534d5959ad0c8cb0ba1c7b2623556264ea11556765e9f5308f3922ab26a369d978388c3243f471aa36be0c6f5b63f16bb12bca30fa93e5ae04ae1efca0e8e033f717d42973ca7762016119c81c0ed79cc1073e4e8c19a44f6e324b4df4c8eefedb0cd96e913575ab3e3d80419c21e4935dd16f77980797ca47ad74ec182f9f1aad250c169c1a539c83523d58e1f24223048da5f37d1bda3dad03e08b07bd593ab827b63486fb784a5467b84b70a9dbc18df7c623f91724d2335c3e3ae3ce3889ccfa19e85e1fdb4facf235d27c6b6322c1b0e845e9e004d5edecfa1a41c5335109f0e6157ec8b0685236a8142ce6c6f829731cb9619625252947a5928c8309f179e10911ee6013364624ac51e676664f7e0df945c6e1b630730add2cb4f36c309fc9a97873ba6cac96fa0a11dda66e509eb33c6c0d1065213308e1188dd69da97a8ad81b14e3c12ba180ecdf1bd8516aec4d51b896eedd3ccad05054c7a10923403ba48ac19705aa8193db77967016192d07a3e83d5548b1c6e4735e2e59907ef3c3df5ab4bde734600d92ce6c8851c8b4e2035699acea4060df80ce53e23fc1e282ec47f486837833c03bce7c66b0fda2238d49d1e5defe58ee72639414e5767a8fd571d5f0a2fc879ed62ed661b331f8f39c3eb59d4af546ca38ccf87d26c190fc8bfddd4ff49db136437aaa8ddafd04165d957b200cc6bb35a7e0d9820dc488791e2b4f4bd374fffa156ba39ecc88139f747d4b68e14e1479c722dfd807156719d538999ddf1d679972af618078323998557b1505bc5f0c15d607b90d17f80f8a94c22f742132d0bdfddd23a930e517eba66dc37197409601257db3f195b4b83596fec523af974945f683ba3a15e334a5a31a64b6c794d3a44f022af0498e51b949f7ecaf0f7f7fd353cec21fb5419acdf4c9fe9a6bfbd28f0a33b74cbc58d0891b8711010eeba17aa7acdd2b7f00d920d17861a8d5f1aa7f1e30876b658bfa8b922e7f47911d2be9200e8578a83347d9f76d796dcaeaaa0c7aee5e657c6066f51a28590929de5784231acf3a903b5f46f00909b78da191a1c14b27f3b88314ca5ae490e37a613e6371289ab5538bbc5e9d1732741e16d13e250939ec1899823d87c29d26b88e304a5c439e330ac8c65f5fbf189e73cd0a61b3b474a4d182331fbdc433c57e0e85a429f2ee8005416b1c33f66854994a8a76408a503d9aaad6110d94dde6b7dd7542531be42a3103c2a17b6dd07b5422922662bb87266aa5acee2e26c4d1636e9eedc62ca89950e8418e25570851d0428850fbd1955fc93fcc72d919adbfc61d8ccf5e160c08b7a8962241b275fe4dc9cc01df7f5dd65ecf3c8dab930f7743578585f6a4b0ad7492839e63df83b80967f1af375e5825f7abf71734ac2b60a23af84ccad766b02e31427a5ba3c533599aadd842770cff0c82ce3b8ef48f8d2fb171cd604db1d8f16ab6a2043cca7fe1d35fa0d7153d702bce1b91c06317d570a5a5b76cfb6aed2e019d1e6c3d6fd81bff58791744b0b5049bc5524d3cff1d2c25034ddc5e324f91e5a880b528f4409c29443d850384fc448dba894783324bd98934afd1f4192cc5be3a4a9e48fdcf34cc573c6532f3eb4fa81d97ea150bbf98cbbc14d5c43bff58944e0259332c81206f7464e58f39c0815072e65054cb2984a0f0762e2f8ac634d11b72e0ac8b44f05c1eb23d1217a1bd6fee3d1106d61595970fc28589a963c98374df980059d70c170bd4882194fa2bd65bdd96507e9337893b456e096e1d678269fbe12346876c74ca0270722413090eba6df17cb4c42efb1555851fa28c0fe5a39fa3e09d557eca308ffdf7a91754ebe658d083846b8d1dbc7fbf6c9de5b373a802ff49d0e2c01aa22095bb60e75d8506a736c54699a663737b93d68f40f053e2c55b46e47ccebdc6c4990451fac2a6a00365460c7eb1da8cc5561fb8d88800ec479079f75062bac769a90be021b647ebb21d2b6fb65d6516a37ff365feb405f77d56f2a37f7ca32d7fc94a690d819bb3fbd69d089a8fb6139e67d40f3f01fc7cb6dcc8b954741f1740f08e5d25710ae22907be833322659e71ce214c48b58011599af1822a3827bd727e0ca014097671a2f66ce1cd45aaf4d20130bae5e26d5481249ea25ed5cfda27270359374d340533059ee31c94e94418288c8adbcbaf30fc10676b028deb0ce4d4d2f6015b3c634f32b357d0bd04503734ae952da9e88a5a28544b9dc38ebcf3de07828581aa9aecbf2aba732dc8577cf80c6b9f18afff624afbf89024544bb5f290d58bc3be9f71b9dad4143e408b37124add43558958b4303fb5ee42018b63da838fe4a69392acbab85f68061862246513f90e33535657ff7d038ba5b5ee2df830b86a9a896834aa561fdfa47ff109ce0b8a0af33a2c6914daeda4b3d3e398a1ecd053ccbc75b43a1f1482eda8cef94519ab12d3ab557062058db80f79a203a4c20c8be0d317fb7e96a12ae5f43c8336aa0c08a84778dad622ee023cba0fea513af14c466543b4d5efc8370fd6460846a1d99e0868a6e5df90d3e368b3ab813a303e484ba9dc5202e67cf0999dad827e8e36bf84d01c0b5f8c9a63f7b8e8d858c9a8b0f405c610aaa6f78316fed41b0d3c24fa17eba67c0ff5a216f7e7cad7ef2c2f749dd30df0df0fb0279b49b9c0d5a52ce561775e4362473042ee7ec0892ecb62322f3bd22937c49b430c0e813ac0787933585e9691f68b9b2f82b83907dfc5fb468349fa8d1d3616b9ff292172047781a8ce8d5eb38b9ed2de9d7b448a0e10065ca1a34d91bf21499f7f409949b85ac55864a904163e317f773da50277f5253b615abf6d62abd1cbdb2d162d21f71ab0c091e8406efe12061dce136405ddafb79da46c434f67eebd7dc8405877be606a0338c31c208d8f443c562717468693c74a98fa81bea452c3f659072569a27678e3c86d0377439510b52857001b9f2e924026067312683159d00efc8aea1913bf9b2e5886eabf5cf5cd42e125fb1e5673622e1d1eac1af30247004bffe36479f7eb13dedf1e584a024e12982e8ea3dba68811d4c680f6ca27ed573ea60537c3f91c2ab995fa7d73526ec1b9025f4252fdfaedf33b55bca10eb8e7ea2531044b6513e682ac458915d64b0e3aef2412ea0355675dff089e5fa3012f18a266d4eb535bd60a577dc1751f9b910aa473dd484f7bfc0755bece8d99859f9fc9778bee237eb4a1075cefaf6d61810b441552bf855b59fa1cfab50df1ba9dbf2d321167aaaad7c0d5581a45937141bbe8fa549eb436bfbe87464f921221e515105c5021a6aaf5fe7af3c4221ac37ffb1aca3bbef269c6e068720df4b006b964ea46c5ab374a97aed159354643868a1ed6ec151a6005f0721d5cda8784059388f97cace7e47bcad502ee3cfed67afaabcd3a1392b24384f020d204d54aabebb02a9d1cda9b3b583dd0161d913e1f9630070ecee084ed11e0da309164f6696da5c40f9b674d05d6846f4b5b6eb7f6a0b2c2145d23b002e6e4737b45493d6184c80bb4d93fcf74ccc591615fce92818fff91d122472d8297b8238f326cb81b9a123574ec468ba7ca82994c3a69ad2c3dc897a93d7734b6b8af3e249306595c8ab28d489cd46843d8a8ad988987ec8f25d2492b4227b45c4e1562848953d512b1eaf5915519e728efc3c4b577cf094fc6f78d05819b93015a535116c5800d37e99d2d11d4fc8f8442174f569414127e1a2d7ab7f67d48dba6daee3937f2b41bc6e286955c8f1d98c90ca29aec1ec3da2cbadf700074328d765c93a74100f52f8220156fa09c868aa088677467259a62f2fbdbb9cbaf1ab131cb50385767613d0c212a10128e7bb34598db998d9732495a83a0e2660ec97b22f5308a3e5db5c8329096269e551ed3d1b602dbb557974009b356af907fc7e1498346982b87abf9b025f4c9951b53484c3da2910294db89c4ac6177c7ea31799b05e855fd492295066309abe4a28b2b4954e4c73a6941679769e690329029cfa1d7b13bf83c991ba7d8392e16a5839a56a59333f998ff761d666ec2d99485d320357293431144a8ef906f08f3b50a47a261b040c622f19e432db27fc15a47d98e6f02046485dea03d375f9c1fa11810ac8c33088edb6405c7bfdceb2410c5dd475052e22cfe30a8ef3d172fa1b71f287be14067d96bd4652a9cea411ea2f64d6b08fa7569272c43d7dd329164f2e9a2600324958eaafdfb5be31d3f3a72847c2552f5a61111acd5d243f04dda4a7a945025e37d7904d8b063ffdab9c9409893c3f29817a0fff373002450637a2bbb102f29a9642959974229c724b3ba1a087539166e440608fe392f98bbfcdf04f017fe0a4133c4a53fc347c88756dfa"}]}, @NL80211_NAN_FUNC_SERVICE_ID={0xa, 0x2, "62f932ebfd00"}]}, @NL80211_ATTR_NAN_FUNC={0x1b0, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_SRF={0x1a4, 0xc, 0x0, 0x1, [@NL80211_NAN_SRF_INCLUDE={0x4}, @NL80211_NAN_SRF_BF={0x103, 0x2, "4d590b1a4998842db4b09554c5065b981bcfcf03d727187399c80387bb2f6e08643471f8f8c40c0764f5429ae20722c079b9c5114f4827662a1b3d40d66260f00bc6c63ee25f0bd4132051b39a5911c15daa1364e07907c4298bb44b8798bcd0805f7d693be0247becf3d9e374854ba6f8e997b9536714295390eadde908d5e4c6c8842b6b4ddd27869ce481b5d88d7ede1b4e4ebc980a1c400c20cc7f0e0e3dd347e6e346ad0796f7b464fdb492c3b670f3d4b62e67edbee1c0294ececeb7f6200cb9a96a36343e7474225cd5e1e04affbeb484248bcc07b11fba870130d3e848f918a7d7263edef15bbee78872812988581a7b7c4897642bf2f97e36e79d"}, @NL80211_NAN_SRF_BF_IDX={0x5, 0x3, 0x7f}, @NL80211_NAN_SRF_MAC_ADDRS={0x10, 0x4, 0x0, 0x1, [{0xa, 0x6, @device_b}]}, @NL80211_NAN_SRF_MAC_ADDRS={0x70, 0x4, 0x0, 0x1, [{0xa, 0x6, @broadcast}, {0xa}, {0xa, 0x6, @broadcast}, {0xa, 0x6, @device_b}, {0xa, 0x6, @broadcast}, {0xa, 0x6, @broadcast}, {0xa}, {0xa, 0x6, @device_b}, {0xa, 0x6, @broadcast}]}, @NL80211_NAN_SRF_BF_IDX={0x5, 0x3, 0x26}, @NL80211_NAN_SRF_INCLUDE={0x4}, @NL80211_NAN_SRF_INCLUDE={0x4}]}, @NL80211_NAN_FUNC_TYPE={0x5, 0x1, 0x2}]}, @NL80211_ATTR_NAN_FUNC={0xc, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_FOLLOW_UP_ID={0x5, 0x6, 0x1}]}, @NL80211_ATTR_NAN_FUNC={0x118, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE={0x4}, @NL80211_NAN_FUNC_SRF={0x10c, 0xc, 0x0, 0x1, [@NL80211_NAN_SRF_BF={0x103, 0x2, "27dd0deb4da26be7b2cb056db37fc588e74bacdac7a841562bddbba1adff58ddb0697d165b7d12543e2215ba69042c35ef7caba8e2e4c9d365226b0d026599f3ac3a17d430efc474cf00004e0abc985e286708311b9c6a1f2a113bac11d881e249cbd0e456c764cd048f0abfd946a3ad1723e97a86644824c89b03a4985752ab7f8d9e9ccdaeab80288133004be3fe8ae3573b3bd689f4dc59ab749213058a55b01f1e6a9a82552ccd1a771d42435e2dd1c6cc1f2c2e48d6381e815c828776ea6ba14e730ab04747e833134728a764e67f67626f9bd9f52c0ee308ed3bbf9e5625e77aa898012eb54035cc0ac59297840a4e19c057ec978835b718f54fdb86"}, @NL80211_NAN_SRF_INCLUDE={0x4}]}, @NL80211_NAN_FUNC_CLOSE_RANGE={0x4}]}, @NL80211_ATTR_NAN_FUNC={0x1e8, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_FOLLOW_UP_ID={0x5, 0x6, 0x5}, @NL80211_NAN_FUNC_SERVICE_INFO={0xd0, 0xb, "2b7a439b67ec3a66b411e0d2e4749208caa705ab110fa37438d3400c596a699f82c6584f1e0b1b54a4bcb90008d58ea8be0dd9cc49b4c7c9d33627e63c50eda5159d5242aca9ef57fa609419ec650bdc05234672db426252a6bc8c51b4ae1b9ddf8319dae77f0cf6794f85b9993d6e5fc51b7c7a381ea240b9f54d35bf21cbaf5e335ed5bca4ab334798291521b7d03e2522838600b6627036e91b856bafb727dd14b7ba5861a7d976fd04be82cfcc416d89e62ee5a6e95dd190ee49d57f9b4adc24a03abc60977e94ff7632"}, @NL80211_NAN_FUNC_RX_MATCH_FILTER={0xf8, 0xd, 0x0, 0x1, [{0xf2, 0x0, "a419222dbb6cbde7d5dbbc80fdb10c28e806f03323bed74df5bfd17faf3999327ae1d599eca8081d62959dd69d9ca074ba88dcd37b21f0911be98cbe0c35da5fe14ba1e2c9251204ba52dcc9f7e4236db35fd2ec8603cf21aec8a5e26c37d941b2c68af85c9b2679e1dd16c0dc4b29f58b984f217a4998be0f32e92ab54e57f37d1f684b9d56533d4582697b675a18778495f1fdcb56d2f17cce6056fe82a9577efc528c0e5c124332f4b0119f4e8a904c7b396dadfc5254769cc752e74cc95289e7f850bc0bc87a72e1f29c270589ef88150a763cb7d99632a9542a3d8c25387f565b063f31c8a9834c206b9aef"}]}, @NL80211_NAN_FUNC_PUBLISH_TYPE={0x5, 0x3, 0x5}, @NL80211_NAN_FUNC_SERVICE_ID={0xa, 0x2, "fae631f2ab83"}]}, @NL80211_ATTR_NAN_FUNC={0xb0, 0xf0, 0x0, 0x1, [@NL80211_NAN_FUNC_CLOSE_RANGE={0x4}, @NL80211_NAN_FUNC_TERM_REASON={0x5, 0x10, 0x73}, @NL80211_NAN_FUNC_SERVICE_INFO={0x8b, 0xb, "4cb6aa34c2b8960d458a5f80e11badf41cc1930def9ccaf80d717691cd829d90ca0f3abf47b6036434560d638fa01618aca75cbc960e086b9d20e47caca26b77c73b628a2b7d23e8e69c09b237e0cdb5afaaaf31f05d6fe53fe96ac4f73e2e6e1a546cabbd52ca91b5562f91f25b6a5acfffaf362522b91572460e5fc388943865369f97df4be7"}, @NL80211_NAN_FUNC_TTL={0x8, 0xa, 0x9}, @NL80211_NAN_FUNC_FOLLOW_UP_DEST={0xa, 0x8, @device_b}]}]}, 0x4f3c}}, 0x4090) [ 907.275514][T11971] netlink: 244 bytes leftover after parsing attributes in process `syz-executor.5'. [ 907.281137][T11973] netlink: 'syz-executor.1': attribute type 4 has an invalid length. [ 907.284301][T11974] overlayfs: missing 'lowerdir' [ 907.309346][T11978] netdevsim netdevsim3 eth3 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0 [ 907.318438][T11973] netlink: 'syz-executor.1': attribute type 4 has an invalid length. [ 907.356393][T11978] netdevsim netdevsim3 eth2 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0 [ 907.407496][T11978] netdevsim netdevsim3 eth1 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0 [ 907.456081][T11978] netdevsim netdevsim3 eth0 (unregistering): unset [1, 0] type 2 family 0 port 6081 - 0 [ 907.578949][T11978] netdevsim netdevsim3 eth0: set [1, 0] type 2 family 0 port 6081 - 0 [ 907.584262][T11978] netdevsim netdevsim3 eth1: set [1, 0] type 2 family 0 port 6081 - 0 [ 907.589139][T11978] netdevsim netdevsim3 eth2: set [1, 0] type 2 family 0 port 6081 - 0 [ 907.593483][T11978] netdevsim netdevsim3 eth3: set [1, 0] type 2 family 0 port 6081 - 0 [ 907.596355][T11975] delete_channel: no stack [ 910.646252][ T4789] wlan0: No active IBSS STAs - trying to scan for other IBSS networks with same SSID (merge) 00:15:13 executing program 4: r0 = syz_mount_image$ntfs3(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x4045ff, 0x15, &(0x7f0000000bc0)=[{&(0x7f0000010000)="eb52904e5446532020202000020800000000000000f8000000000000000000000000000080008000ff0f0000000000000400000000000000ff00000000000000f600000001", 0x45}, {&(0x7f0000000940)="1065b29e4c213c6b790669e882b38004e954381213cd5bdbe950e6d6f13be45f3a378ef9eb3be89b90f08d0b5dc0a876e9cf39d7436499d26eae9556a905681b918348e26ea5", 0x46, 0x7f}, {&(0x7f0000001080)="8e3e37f8f9bc993e82f1dfe7354fcd09930a92c992e6966329bbc6218ab5629a7d33e299719b300fdac1ba10427c39a282ce08e9acd66ee4a30644efe15b0000000000000000002b74f2eedb4c9ceba405eb376bf616c312a65fc70de042669a42bcfe57b8e858cba17a827b35441121d1b461", 0x73, 0x2000}, {&(0x7f0000010120)="46494c453000030000000000000000000100010038000100980100000004000000000000000000000400000000000000030000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000006800000000001800000002004a00000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010070000000000000006c0000000000000600000000000000040324004d00460054000000000000008000000048000000010040000000010000000000000000003e00000000000000400000000000000000f003000000000000f003000000000000f0030000000000113f040000000000b0000000480000000100400000000300000000000000000000000000000000004000000000000000001000000000000020000000000000002000000000000000110102", 0x18b, 0x4000}, {&(0x7f0000000540)="00000000000000000000000000000000000000000000000000000000000003", 0x1f, 0x41e0}, {&(0x7f00000102e0)="00000000000000000000000000000000b00000004800000001004000000003000000000000000000000000000000000040000000000000000010000000000000080000000000000008000000000000001101020000000000ffffffff0000030046494c453000030000000000000000000100010038000100580100000004000000000000000000000300000001000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000007000000000001800000002005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801001000000000000000100000000000000600000000000000080324004d00460054004d00690072007200000000000000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000001000000000000000100000000000002101ff", 0x1ab, 0x43a0}, {&(0x7f00000104c0)="000000000000000000000000000000000000000000000000000000000000020046494c45300003000000000000000000020000e538000100580100000004000000000000000000000300000002000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000007000000000001800000002005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000003f00000000000000400000000000000000000400000000000000040000000000e10004000000000021400001", 0x16c, 0x47e0}, {&(0x7f0000000080)="000000000000000000a6000000000000000000000000000000000000000002183e0554dcb08c0e703aaec8625c8a028b1926464a8597351517175b9782f5a3f868c5de1db6fa29", 0x47, 0x49e0}, {&(0x7f0000010660)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000300010038000100e00100000004000000000000000000000600000003000000040000000000000010000000480000000000180000000000300000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000300000006800000000001800000001005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c00000018000000000000000000000003010000000000008000000018", 0x1e5, 0x4be0}, {&(0x7f0000000240)="000000000000000000000000000000000000000000000000000000000000040046494c453000030000000000000000000400010038000100c00100000004000000000000000000000400000004000000020000000000000010000000480000000000180000000000300000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000300000007000000000001800000002005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010010000000000000000a00000000000006000000000000000803240041007400740072004400650066000000000000005000000080000000000018000000030064000000180000000100048048000000540000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000800000004800000001004000000001000000000000000000000000000000000040000000000000000010000000000000000a000000000000000a000000000000110146", 0x1d3, 0x4fe0}, {&(0x7f0000000dc0)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000500010038000300000200000004000000000000000000000600000005000000030000000000000010000000480000000000180000000000300000001800000000ab2bd24ec4d801132d87d24ec4d801132d87d24ec4d80100ab2bd24ec4d80126000010000000000000000000000000300000006000000000001800000001004400000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100000000000000000000000000000000060000100000000001032e00000000005000000048000000010040000000020000000000000000000100000000000000400000000000000000200000000000002c100000000000002c10000000000000110243000000000090000000580000000004180000000300380000002000000024004900330030003000000001000000001000000100000010000000280000002800000001000000000000000000000018000000030000000000000000000000a0000000500000000104400000000500000000000000000000000000000000004800000000000000001000000000000000100000000000000010000000000000240049003300300011014514cf8244d8904c65d5cca7768b3d8ac1e083a3bae2dd747271c29fa1f8eb81fd3599d7c5d371cc7849864c6ca4d96ae237cd5f9a50d22e87f1cb493d326c2ede7a2c1cab71e9a1916c5ab505f16664d1646d96c4a7f989ddc515579de39e63ee81aa4296461fbe7faeaa32fbf2f716d7f47e54df2af18e805ea9c7dede64b84757c06359c1e070ebe670356593d6a10b01e5eac80038e9053298523d4e4e683335070076d2017c6a78d4e5c9ba", 0x298, 0x53e0}, {&(0x7f0000001100)="000000000000000000000000000000000000000000000000000000000000030046494c453000030000000000000000000600010038000100500100000004000000000000000000000300000006000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000006800000000001800000002005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801001000000000000040000000000000000600000000000000070324004200690074006d00610070008000000048000000010040000000010000000000000000000000000000000000400000000000000000100000000000004000000000000000400000000000000011014707875eca2fc58363fbd39f319545758c4c67f36a77311c91c8fee75525308f04f01d867076ffe00036101a1c6dfcd2a21bff2a6bddd8aa17d8e906b5dd458949e07beec997ba7c8031616c3b412e324e2e2e27ae55120134f6d22a3a1f84612ae73a7be9c2deb614fffe9ea052efa2fb6a65294222490be004d57efcafc805069886a4bee3da2e39fc3dc17adca647503fc68531028eb20b2c829c93d7fab00b0d7ab6f60df485e56f896dfceb4265dde72d07ad2ff4f2cad3c47a58cdd4c94209", 0x224, 0x57e0}, {&(0x7f0000011040)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000800010038000100780100000004000000000000000000000400000008000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000000000000000000000000000000000000000001000000000000000000000000000000000000300000007000000000001800000003005200000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000803240042006100640043006c0075007300ffff00000000800000001800000000001800000002000000000018000000800000005000000001044000000001000000000000000000fe01000000000000480000000000000000f01f000000000000f01f00000000000000000000000000240042006100640002ff01", 0x18b, 0x5fe0}, {&(0x7f0000011200)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000900010038000900000300000004000000000000000000000500000009000000030000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80106000020000000000000000000000000000000000101000000000000000000000000000000000000300000006800000000001800000001005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100000000000000000000000000000000060000200000000007032400530065006300750072006500800000005000000001044000000002000000000000000000400000000000000048000000000000000010040000000000700104000000000070010400000000002400530044005300114148000000000090000000e00000000004180000000300c00000002000000024005300440048000000000012000000001000000100000010000000b0000000b000000000000000180014000000000030000800000000005124b300010100005124b3000101000080000000000000007c0000004900490018001400000000003000080000000000a0ddde4202010000a0ddde42020100000001000000000000640000004900490018001400000000003000080000000300f01203f800010000f01203f80001000000000000000000007c000000490049000000000000000000100000000200000090000000c80000000004180000000400a800000020000000240053004900490000000000100000000010000001000000100000009800000098000000000000001400140000000000280004000000000000010000f01203f80001000000000000000000007c00000014001400000000002800040000000000010100005124b3000101000080000000000000007c0000001400140000000000280004000000000002010000a0ddde420201000000010000000000006400000000000000000000001000000002", 0x315, 0x63e0}, {&(0x7f0000011520)="0000000000000000ccd200000000000000000000000000000000000000000000030046494c453000030000000000000000000a0001003800010098010000000400000000000000000000040000000a000000020000000000000010000000600000000000180000000000480000001800000000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801060000000000000000000000000000000000000000010000000000000000000000006800000000001800000003005000000018000100050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000002000000000000000200000000000600000000000000070324005500700043006100730065008000000048000000010040000000010000000000000000001f00000000000000400000000000000000000002000000000000000200000000002120890000000000", 0x159, 0x67e0}, {&(0x7f0000013b20)="d000000020000000000018000000030008000000180000002d0000003c000000e00000005800000000001800000004003c000000180000001400000000060400244c585549440000000000001400000000060400244c584749440000000000001400000000060400244c584d4f4400ed8100000000000000ffffffff0000e20046494c452a00030000000000000000000000000030000000380000000004", 0x9e, 0xc37c}, {&(0x7f000001aa40)="494e4458280009000000000000000000000000000000000028000000b8060000e80f0000000000000d00d801000000000000000000000000000000000000000004000000000004006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010010000000000000000a000000000000060000000000000008032400410074007400720044006500660000000000010008000000000008006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000803240042006100640043006c007500730000000000070006000000000006006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801001000000000000040000000000000000600000000000000070324004200690074006d0061007000070000000000070060004c0000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010020000000000000002000000000000006000000000000000503240042006f006f00740069006c000b00000000000b006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec40d0000ab2bd24ec4d8010000000000000000000000000000000006000010000000000703240045007800740065006e00640002000000000002006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000004000000000000000400000000000600000000000000080324004c006f006700460069006c006500000000000100000000000000010060004a0000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010070000000000000006c0000000000000600000000000000040324004d004600540000000000000001000000000001006800520000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801001000000000000000100000000000000600000000000000080324004d00460054004d0069007200720000000200000009000000000009006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d801000000000000000000000000000000000600002000000000070324005300650063007500720065000a00000000000a006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000020000000d00000002000000000006000000000000000703240055007000430061007300650003000000000003006000500000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d8010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650005000000000005005800440000000000050000000000050000ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100ab2bd24ec4d80100000000000000000000000000000000060000100000000001032e0000000000200000000000010068005400000000000500000000000500132d87d24ec4d801132d87d24ec4d801132d87d24ec4d801132d87d24ec4d80100100000000000006400000000000000200000002d0000000900660069006c0065002e0063006f006c006400000000001b0000000000010060004c0000000000050000000000050073a685d24ec4d80173a685d24ec4d80173a685d24ec4d80173a685d24ec4d80100000000000000000000000000000000200000102d0000000500660069006c0065003000000000001e0000000000010060004c0000000000050000000000050073a685d24ec4d801132d87d24ec4d801132d87d24ec4d80173a685d24ec4d80100100000000000000a0000000000000020000000590000000500660069006c006500310000000d001f0000000000010060004c00000000000500000000000500132d87d24ec4d801132d87d24ec4d801132d87d24ec4d801132d87d24ec4d80100300000000000002823000000000000200000002d0000000500660069006c0065003200000000001f0000000000010060004c00000000000500000000000500132d87d24ec4d801132d87d24ec4d801132d87d24ec4d801132d87d24ec4d80100300000000000002823000000000000200000002d0000000500660069006c00650033000000000000000000000000001000000002", 0x6cd, 0x45000}, {&(0x7f00000007c0)="f7ffffffffff6c85507e207950cbb02575507700fffb9a55fb8d253755da1453094bdf12f9dea56eca6103d9a0c7c7f10482f7433c1b819f5bfc850c99b3f9d627a7b397fdf4f0303f271f526a9a7890a9a155af4ff2f497feffaec1f6fc8abc8717cb83a803b225e2e5497563b268a3beb1f964000000000000002061dff0281b6dc6572ed135b36f9c052504062fc60097e40f9be0fb831dad3a996176570845730000000000000000000095fe28614719bf7f7be9f18fa6a54f848514c8763ad7e6e41e09dd208a22b79d97053f495ba598be066ec1de22bd9e79851d13117d3e8b8248ab4673f6b8f473bf4c1f5d730c7ededcd9705ef3dd745e531edb04fc1b861c2cb57e107c2eaa0a2ccbc67ba70b9af536564c93b73ab6cfafc58d339738640af0789756372a0b0d64ba25d4d1a703738459ff5a492de9f3ddce43b48b5e8d1228cb0600000000000000", 0x14e, 0x46ffe}, {&(0x7f000001b660)="f01203f80001000000000000000000007c0000000100048048000000580000000000000014000000020034000200000000001400890012000101000000000005120000000000180089001200010200000000000520000000200200000102000000000005200000002002000001020000000000052000000020020000000000005124b30001010000007c00000001000480480000005800000000000000140000000200340002000000000014009f111200010100000000000512000000000018009f01120001020080000000052000000020020000010200000000000520000000200200000102000000000005200000002002000000000000a0ddde4202010000000100000000000064000000010004803000000040000000000000001400000002001c000100000000031400ff011f00010100000000000100000000010200000000000520000000200200000102000000000005200000002002", 0x15b, 0x48000}, {&(0x7f000003c0c0)="0000000000000000000000000000000000000000000000000000000000000400ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3fe5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffebdf0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", 0x20024, 0xfffe0}, {&(0x7f00000104a0)="00000000000000270000000000000000000000000000000000000000000002", 0x1f, 0x4045de}], 0x2, &(0x7f0000003580)=ANY=[], 0x1) (async) ioctl$AUTOFS_DEV_IOCTL_PROTOVER(0xffffffffffffffff, 0xc0189372, &(0x7f0000000180)={{0x1, 0x1, 0x18, 0xffffffffffffffff, {0x3}}, './file0\x00'}) dup3(r0, r1, 0x0) ioctl$EVIOCGBITSW(r1, 0x80404525, &(0x7f0000000580)=""/145) syz_mount_image$fuse(0x0, &(0x7f0000000180)='./file0\x00', 0x0, 0x0, &(0x7f0000000000), 0x0, &(0x7f0000000200)=ANY=[@ANYBLOB='fd=', @ANYRESDEC=0x0], 0x0) (async) mount(0x0, &(0x7f0000000080)='./file0\x00', &(0x7f00000000c0)='autofs\x00', 0x0, &(0x7f0000000200)) r2 = openat(0xffffffffffffff9c, &(0x7f0000004280)='./file0\x00', 0x0, 0x0) fchdir(r2) (async) r3 = openat(0xffffffffffffff9c, &(0x7f0000000100)='.\x00', 0x0, 0x0) symlinkat(&(0x7f00000006c0)='/\x00', r3, &(0x7f00000001c0)='./file0\x00') (async) getdents64(r3, &(0x7f0000000000)=""/42, 0x2a) (async) r4 = openat(0xffffffffffffff9c, &(0x7f0000000100)='.\x00', 0x0, 0x0) ioctl$AUTOFS_IOC_FAIL(r4, 0x810c9365, 0x0) ioctl$AUTOFS_DEV_IOCTL_CLOSEMOUNT(0xffffffffffffffff, 0xc0189375, &(0x7f0000000040)={{0x1, 0x1, 0x18, r0}, './file0\x00'}) bind$rxrpc(r5, &(0x7f0000000140)=@in4={0x21, 0x1, 0x2, 0x10, {0x2, 0x4e23, @local}}, 0x24) r6 = openat$zero(0xffffffffffffff9c, &(0x7f0000000440), 0x0, 0x0) (async) clock_gettime(0x0, &(0x7f0000000480)={0x0, 0x0}) (async) clock_gettime(0x0, &(0x7f0000000640)={0x0, 0x0}) clock_gettime(0x0, &(0x7f0000000680)={0x0, 0x0}) write$evdev(r6, &(0x7f00000006c0)=[{{0x0, 0x2710}, 0x12, 0xe703, 0x401}, {{r7, r8/1000+10000}, 0x1f, 0x400}, {{0x0, 0xea60}, 0x19, 0x1000}, {{r9, r10/1000+10000}, 0x1f, 0x4, 0x1}, {{}, 0x2, 0x7fff}, {{}, 0x3, 0xf8e, 0x9}, {{r11, r12/1000+10000}, 0x0, 0x1, 0xd1}, {{}, 0x0, 0x200, 0xf2}, {{0x0, 0x2710}, 0x17, 0x10, 0x800}], 0xbb) (async) ioctl$SNDCTL_SEQ_NRSYNTHS(r6, 0x8004510a, &(0x7f00000001c0)) 00:15:13 executing program 3: r0 = openat$vcsu(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) read$qrtrtun(r0, &(0x7f00000000c0)=""/68, 0x44) syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000040)='./bus\x00', 0x100, 0x1, &(0x7f0000000000)=[{&(0x7f0000000140)="5c48873d793f5f51b50c467e0438a8af41cbed60c6197129d95eb4fb4c647b1f9a371aadd36aa2592fd545dc90fe7c8fbe2408670c842ca657ba44de14e4f17732853ff7903a4d000123d5a6581996a0e16fa86aab0012d554d9ef39de21d591", 0x60, 0x4}], 0x0, &(0x7f0000000080)=ANY=[], 0xfe) r1 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000240)='memory.current\x00', 0x275a, 0x0) write$binfmt_script(r1, &(0x7f0000000180)=ANY=[], 0x208e24b) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0xe, 0x28011, r1, 0x0) madvise(&(0x7f0000000000/0x600000)=nil, 0x600003, 0x19) 00:15:13 executing program 0: r0 = socket$kcm(0x29, 0x7, 0x0) ioctl$sock_kcm_SIOCKCMCLONE(r0, 0x89e2, &(0x7f0000001880)={0xffffffffffffffff}) ioctl$sock_kcm_SIOCKCMCLONE(r1, 0x89e2, &(0x7f0000002cc0)) close(r1) r2 = openat$vcsu(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) read$qrtrtun(r2, &(0x7f00000000c0)=""/68, 0x44) r3 = openat$vcsu(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) read$qrtrtun(r3, &(0x7f00000000c0)=""/68, 0x44) sendmsg$kcm(r3, &(0x7f00000003c0)={&(0x7f0000000140)=@isdn={0x22, 0x1, 0x0, 0xfe}, 0x80, &(0x7f0000000340)=[{&(0x7f0000000000)="ae7449", 0x3}, {&(0x7f00000001c0)="02af234703b3699a5e80ce138fcce7612c77dd0a36ff6510b6fba007417de7d72dad2694e5a5ceb78c951a3853e8d1e2b0dee9a222b4554adf74a2b7010a37f1f20554f02aa46c4e342c046e4baedb4d2d663a36f0daa230fd53ab72a4194193bd4c7afaa173fb2389a6fe6c0da89fb48c641e04155eec0adc653f95e0c432ba76a7ae9c13f3bd22750c44c151aec65c40445e86dc1ae04f282da16bce987ceefea380b4a5493272227e6ce5fdaea59bc9dd3c9b906ccfcc106f46568d25f9635f99bc001ca74057eedfc50d358912551ea1247aedf219caee71259f09cad4881b97bdea1f4048354216706580a144207532b5dfb3acd3200429d60358a172", 0xff}, {&(0x7f0000000080)="507936198232e406a34ec776845caf66ee4e108084305b6c5be372c03345116f49a5a42c0a1f2af320ca53e1", 0x2c}, {&(0x7f00000002c0)="2789a09b3e24fcd381f0c05573855bc49e4b3405c0924800dd", 0x19}, {&(0x7f0000000300)="1c24f08591", 0x5}], 0x5}, 0x800) ioctl$sock_kcm_SIOCKCMCLONE(r2, 0x89e2, &(0x7f0000000040)) 00:15:13 executing program 2: r0 = openat$vcsu(0xffffffffffffff9c, &(0x7f0000000080), 0x0, 0x0) read$qrtrtun(r0, &(0x7f00000000c0)=""/68, 0x44) (async, rerun: 64) mount$overlay(0x0, &(0x7f0000000000)='.\x00', &(0x7f0000000140), 0x8, &(0x7f0000000180)=ANY=[]) (async, rerun: 64) chdir(&(0x7f0000000040)='./file0\x00') 00:15:13 executing program 5: r0 = openat$vcsu(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) read$qrtrtun(r0, &(0x7f00000000c0)=""/68, 0x44) syz_emit_ethernet(0x46, &(0x7f0000000140)=ANY=[@ANYBLOB="0380c20000007f0a000000000800450000380000c21eb5255063da380001ac1414aa030090781200183f2500000000000000003300007f0000017f00000300186371ae9b1c03", @ANYRESHEX=0x0, @ANYRES64, @ANYRESHEX=r0], 0x0) ioctl$SNDRV_SEQ_IOCTL_PVERSION(r0, 0x80045300, &(0x7f0000000000)) 00:15:13 executing program 1: r0 = socket$inet(0x2, 0x3, 0x8d) setsockopt$inet_msfilter(r0, 0x0, 0x8, &(0x7f0000000480)=ANY=[@ANYRESHEX], 0x1) getsockopt$inet_pktinfo(r0, 0x0, 0x8, &(0x7f0000000040)={0x0, @local, @local}, &(0x7f0000000140)=0xc) r2 = socket$netlink(0x10, 0x3, 0x0) socket$inet(0x2, 0x3, 0x52) writev(r2, &(0x7f00000003c0)=[{&(0x7f0000000180)="390000001300034700bb65e1c3e4ffff01000000010000005600000025000000190004000400000007fd17e5ffff0800040000000000000000", 0x39}], 0x1) r3 = openat$vcsu(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) read$qrtrtun(r3, &(0x7f00000000c0)=""/68, 0x44) sendmsg$nl_route_sched(r3, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x2000}, 0xc, &(0x7f0000000080)={&(0x7f00000001c0)=@gettaction={0xd4, 0x32, 0x4, 0x70bd25, 0x25dfdbfb, {}, [@action_dump_flags=@TCA_ROOT_TIME_DELTA={0x8, 0x4, 0x5}, @action_gd=@TCA_ACT_TAB={0x18, 0x1, [{0x14, 0x9, 0x0, 0x0, @TCA_ACT_KIND={0xf, 0x1, 'tunnel_key\x00'}}]}, @action_gd=@TCA_ACT_TAB={0x94, 0x1, [{0x14, 0x11, 0x0, 0x0, @TCA_ACT_KIND={0xf, 0x1, 'tunnel_key\x00'}}, {0xc, 0x5, 0x0, 0x0, @TCA_ACT_INDEX={0x8}}, {0x10, 0x20, 0x0, 0x0, @TCA_ACT_KIND={0xa, 0x1, 'pedit\x00'}}, {0xc, 0x10, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0x8}}, {0x10, 0x1e, 0x0, 0x0, @TCA_ACT_KIND={0xc, 0x1, 'skbedit\x00'}}, {0x10, 0x1e, 0x0, 0x0, @TCA_ACT_KIND={0x9, 0x1, 'gact\x00'}}, {0x14, 0x7, 0x0, 0x0, @TCA_ACT_KIND={0xf, 0x1, 'tunnel_key\x00'}}, {0x10, 0x9, 0x0, 0x0, @TCA_ACT_KIND={0xb, 0x1, 'mirred\x00'}}, {0x10, 0x16, 0x0, 0x0, @TCA_ACT_KIND={0xa, 0x1, 'pedit\x00'}}]}, @action_dump_flags=@TCA_ROOT_FLAGS={0xc, 0x2, {0x1, 0x1}}]}, 0xd4}, 0x1, 0x0, 0x0, 0x8000}, 0x4000010) r4 = socket$packet(0x11, 0x3, 0x300) bind$packet(r4, &(0x7f0000000100)={0x11, 0x0, r1, 0x1, 0x0, 0x6, @random="df53d0de702d"}, 0x14) writev(r2, &(0x7f0000000040)=[{&(0x7f0000000400)="390000001300034700bb5be1c3e4feff06000000010000004500000025000000190004000400ad000200000000000006040000000000f93132", 0x39}], 0x1) ioctl$AUTOFS_DEV_IOCTL_FAIL(r3, 0xc0189377, &(0x7f00000002c0)={{0x1, 0x1, 0x18, r4, {0x6, 0x2}}, './file0\x00'}) ioctl$KDSKBMETA(r5, 0x4b63, &(0x7f0000000300)=0x3) socket$inet(0x2, 0x3, 0x8d) (async) setsockopt$inet_msfilter(r0, 0x0, 0x8, &(0x7f0000000480)=ANY=[@ANYRESHEX], 0x1) (async) getsockopt$inet_pktinfo(r0, 0x0, 0x8, &(0x7f0000000040)={0x0, @local, @local}, &(0x7f0000000140)=0xc) (async) socket$netlink(0x10, 0x3, 0x0) (async) socket$inet(0x2, 0x3, 0x52) (async) writev(r2, &(0x7f00000003c0)=[{&(0x7f0000000180)="390000001300034700bb65e1c3e4ffff01000000010000005600000025000000190004000400000007fd17e5ffff0800040000000000000000", 0x39}], 0x1) (async) openat$vcsu(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) (async) read$qrtrtun(r3, &(0x7f00000000c0)=""/68, 0x44) (async) sendmsg$nl_route_sched(r3, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x2000}, 0xc, &(0x7f0000000080)={&(0x7f00000001c0)=@gettaction={0xd4, 0x32, 0x4, 0x70bd25, 0x25dfdbfb, {}, [@action_dump_flags=@TCA_ROOT_TIME_DELTA={0x8, 0x4, 0x5}, @action_gd=@TCA_ACT_TAB={0x18, 0x1, [{0x14, 0x9, 0x0, 0x0, @TCA_ACT_KIND={0xf, 0x1, 'tunnel_key\x00'}}]}, @action_gd=@TCA_ACT_TAB={0x94, 0x1, [{0x14, 0x11, 0x0, 0x0, @TCA_ACT_KIND={0xf, 0x1, 'tunnel_key\x00'}}, {0xc, 0x5, 0x0, 0x0, @TCA_ACT_INDEX={0x8}}, {0x10, 0x20, 0x0, 0x0, @TCA_ACT_KIND={0xa, 0x1, 'pedit\x00'}}, {0xc, 0x10, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0x8}}, {0x10, 0x1e, 0x0, 0x0, @TCA_ACT_KIND={0xc, 0x1, 'skbedit\x00'}}, {0x10, 0x1e, 0x0, 0x0, @TCA_ACT_KIND={0x9, 0x1, 'gact\x00'}}, {0x14, 0x7, 0x0, 0x0, @TCA_ACT_KIND={0xf, 0x1, 'tunnel_key\x00'}}, {0x10, 0x9, 0x0, 0x0, @TCA_ACT_KIND={0xb, 0x1, 'mirred\x00'}}, {0x10, 0x16, 0x0, 0x0, @TCA_ACT_KIND={0xa, 0x1, 'pedit\x00'}}]}, @action_dump_flags=@TCA_ROOT_FLAGS={0xc, 0x2, {0x1, 0x1}}]}, 0xd4}, 0x1, 0x0, 0x0, 0x8000}, 0x4000010) (async) socket$packet(0x11, 0x3, 0x300) (async) bind$packet(r4, &(0x7f0000000100)={0x11, 0x0, r1, 0x1, 0x0, 0x6, @random="df53d0de702d"}, 0x14) (async) writev(r2, &(0x7f0000000040)=[{&(0x7f0000000400)="390000001300034700bb5be1c3e4feff06000000010000004500000025000000190004000400ad000200000000000006040000000000f93132", 0x39}], 0x1) (async) ioctl$AUTOFS_DEV_IOCTL_FAIL(r3, 0xc0189377, &(0x7f00000002c0)={{0x1, 0x1, 0x18, r4, {0x6, 0x2}}, './file0\x00'}) (async) ioctl$KDSKBMETA(r5, 0x4b63, &(0x7f0000000300)=0x3) (async) [ 913.189076][T11989] netlink: 'syz-executor.1': attribute type 4 has an invalid length. [ 913.192907][T11990] overlayfs: missing 'lowerdir' [ 913.194757][T11990] overlayfs: missing 'lowerdir' [ 913.195016][T11990] overlayfs: missing 'lowerdir' [ 913.198749][T11990] overlayfs: missing 'lowerdir' [ 913.201655][T11990] overlayfs: missing 'lowerdir' [ 913.210748][T11990] overlayfs: missing 'lowerdir' [ 913.214970][T11990] overlayfs: missing 'lowerdir' [ 913.217331][T11990] overlayfs: missing 'lowerdir' 00:15:13 executing program 5: r0 = openat$vcsu(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) read$qrtrtun(r0, &(0x7f00000000c0)=""/68, 0x44) syz_emit_ethernet(0x46, &(0x7f0000000140)=ANY=[@ANYBLOB="0380c20000007f0a000000000800450000380000c21eb5255063da380001ac1414aa030090781200183f2500000000000000003300007f0000017f00000300186371ae9b1c03", @ANYRESHEX=0x0, @ANYRES64, @ANYRESHEX=r0], 0x0) ioctl$SNDRV_SEQ_IOCTL_PVERSION(r0, 0x80045300, &(0x7f0000000000)) openat$vcsu(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) (async) read$qrtrtun(r0, &(0x7f00000000c0)=""/68, 0x44) (async) syz_emit_ethernet(0x46, &(0x7f0000000140)=ANY=[@ANYBLOB="0380c20000007f0a000000000800450000380000c21eb5255063da380001ac1414aa030090781200183f2500000000000000003300007f0000017f00000300186371ae9b1c03", @ANYRESHEX=0x0, @ANYRES64, @ANYRESHEX=r0], 0x0) (async) ioctl$SNDRV_SEQ_IOCTL_PVERSION(r0, 0x80045300, &(0x7f0000000000)) (async) [ 913.225881][T11990] overlayfs: missing 'lowerdir' [ 913.227539][T11990] overlayfs: missing 'lowerdir' [ 913.229112][T11990] overlayfs: missing 'lowerdir' [ 913.230583][T11990] overlayfs: missing 'lowerdir' [ 913.232064][T11990] overlayfs: missing 'lowerdir' [ 913.238153][T11990] overlayfs: missing 'lowerdir' [ 913.239966][T11990] overlayfs: missing 'lowerdir' [ 913.241641][T11990] overlayfs: missing 'lowerdir' [ 913.244469][T11990] overlayfs: missing 'lowerdir' [ 913.244657][T11990] overlayfs: missing 'lowerdir' [ 913.244948][T11990] overlayfs: missing 'lowerdir' [ 913.254688][T11989] netlink: 'syz-executor.1': attribute type 4 has an invalid length. [ 913.268481][T11990] overlayfs: missing 'lowerdir' [ 913.277782][T11990] overlayfs: missing 'lowerdir' 00:15:13 executing program 5: r0 = openat$vcsu(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) read$qrtrtun(r0, &(0x7f00000000c0)=""/68, 0x44) syz_emit_ethernet(0x46, &(0x7f0000000140)=ANY=[@ANYBLOB="0380c20000007f0a000000000800450000380000c21eb5255063da380001ac1414aa030090781200183f2500000000000000003300007f0000017f00000300186371ae9b1c03", @ANYRESHEX=0x0, @ANYRES64, @ANYRESHEX=r0], 0x0) ioctl$SNDRV_SEQ_IOCTL_PVERSION(r0, 0x80045300, &(0x7f0000000000)) openat$vcsu(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) (async) read$qrtrtun(r0, &(0x7f00000000c0)=""/68, 0x44) (async) syz_emit_ethernet(0x46, &(0x7f0000000140)=ANY=[@ANYBLOB="0380c20000007f0a000000000800450000380000c21eb5255063da380001ac1414aa030090781200183f2500000000000000003300007f0000017f00000300186371ae9b1c03", @ANYRESHEX=0x0, @ANYRES64, @ANYRESHEX=r0], 0x0) (async) ioctl$SNDRV_SEQ_IOCTL_PVERSION(r0, 0x80045300, &(0x7f0000000000)) (async) [ 913.300377][T11990] overlayfs: missing 'lowerdir' [ 913.302041][T11990] overlayfs: missing 'lowerdir' 00:15:13 executing program 5: sendmsg$IPSET_CMD_TEST(0xffffffffffffffff, &(0x7f0000000100)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x40000000}, 0xc, &(0x7f00000000c0)={&(0x7f0000000040)={0x60, 0xb, 0x6, 0x3, 0x0, 0x0, {0xa, 0x0, 0xa}, [@IPSET_ATTR_DATA={0xc, 0x7, 0x0, 0x1, [@IPSET_ATTR_LINENO={0x8, 0x9, 0x1, 0x0, 0x2}]}, @IPSET_ATTR_DATA={0x40, 0x7, 0x0, 0x1, [@IPSET_ATTR_SKBQUEUE={0x6, 0x1d, 0x1, 0x0, 0x3ff}, @IPSET_ATTR_ETHER={0xa, 0x11, @multicast}, @IPSET_ATTR_CIDR={0x5, 0x3, 0x1}, @IPSET_ATTR_BYTES={0xc, 0x18, 0x1, 0x0, 0x3157}, @IPSET_ATTR_IFACE={0x14, 0x17, 'geneve0\x00'}]}]}, 0x60}}, 0x4) syz_usb_control_io$cdc_ncm(0xffffffffffffffff, &(0x7f0000000440)={0x14, 0x0, &(0x7f0000000400)={0x0, 0x3, 0x1a, {0x1a}}}, 0x0) syz_usb_control_io$cdc_ncm(0xffffffffffffffff, &(0x7f0000000200)={0x14, &(0x7f0000000140)={0x0, 0xe, 0x47, {0x47, 0xe, "d645d288b3f4e469f18458f15ee08b4c170affb82e9bea52b771e20f6fcc3bceac09d88c0f157cc8371c41ffffa0afbb2735d2571b116ae67e2254644f526b50431c95970c"}}, &(0x7f00000001c0)={0x0, 0x3, 0x1a, {0x1a}}}, &(0x7f0000000580)={0x44, &(0x7f0000000240)={0x20, 0x0, 0xc7, "b07f2aedf69a5299f6b7f8e48d4102a411cd047c0821366f92a0dd45c847f7ff332b217f6fa227305376aaab7a672cd3aee08ddb0202f96e1684a6fa8e9417450b8590e71fa60bf1e364863162744a16925ac62b6c39eb19c98a06c5eb54bd947ad29a6ec6bd3159543861728be8c7218a106d702279a503e917d2be9631e6363c8bd2771c2e1c3a925cd2686008fc980f4dd641b5d69d9600a4accb98c0769206678a8246e72889fd968b6b558054187b37104dac9a03d084b91cd93392840000000000000000"}, &(0x7f0000000340)={0x0, 0xa, 0x1, 0x9}, &(0x7f0000000380)={0x0, 0x8, 0x1, 0x26}, &(0x7f00000003c0)={0x20, 0x80, 0x1c, {0x2, 0x10a3, 0x5, 0x6, 0xab73, 0x5, 0x2, 0x6, 0xceed, 0x2, 0x6, 0x1ff}}, &(0x7f0000000480)={0x20, 0x85, 0x4, 0x9}, &(0x7f00000004c0)={0x20, 0x83, 0x2, 0x1}, &(0x7f0000000500)={0x20, 0x87, 0x2, 0x3}, &(0x7f0000000540)={0x20, 0x89, 0x2, 0x1}}) syz_usb_control_io$cdc_ncm(0xffffffffffffffff, &(0x7f0000000740)={0x14, &(0x7f0000000600)={0x60, 0x5, 0xf4, {0xf4, 0xe, "387053d25189382b1aab4caef68a3309f29fc0e2b649cf827b138ccaa149930e91febe8629e6a08c0321fe61c4cc691470776dc8b4faf00d8b12cf23e437b60039eafce7b30820b168fe584ab8be8e742eed9e1ad846e5df5c2c5af79f52810e250e17633ed31813e5e0c7f2e3229ff788ef48966039c53890b9911612a60dd620806e5ce0f2d2407202c9cc9e0a012fe756a4829f26f675be6b67394f0ebacbaa564674af450b254ab197968b567f040352941bb57cbcd0bfe6baefeca4395b300f6f42dc12a91f7a3a76025ce3ad60ebbb5dca9fcddb0f21e5e0f1f1cbbc38957bd737e9906e5e7ae279a12cdb019bc7dc"}}, &(0x7f0000000700)={0x0, 0x3, 0x1a, {0x1a}}}, &(0x7f0000000a40)={0x44, &(0x7f0000000780)={0x20, 0x31, 0xf3, "6f594f619c1927ecfde987eb5601f25f7516b61b1a48896b573b2bbc511ebb87809d4b3b4ae21c7e6308ee8fcc9ab7aa9337f94d1b402bab1193081d08d0bd4d79f6a9d03cfe11826852ac6800820e969b1e5f46864bb84795a12ac583a4d757fe35b3896e95da60b2f79b21bed1abd5478680a34b05f4a2245250e96c8825880f5aaddec7477002c46331ae452fe1a032f3e8cf64dd8ae18d48436d786aa2c1a6795d0c0d226ddd9e4768fdc5bb643a20e3d27d85fdf1a5281a3550b3e6c48eed0e0ac9591ca2a73403bfee8171732f49029f5221aa2a2dcebf1f9c5f5c88c736482bcde14cdf5c72f10fd3338df2b5512455"}, &(0x7f0000000880)={0x0, 0xa, 0x1, 0x40}, &(0x7f0000000ac0)={0x0, 0x8, 0x1, 0xfd}, &(0x7f0000000900)={0x20, 0x80, 0x1c, {0x1000, 0x0, 0xfffff15b, 0x400, 0x0, 0x87, 0x9, 0x80000000, 0x48, 0x6, 0x1, 0x260f}}, &(0x7f0000000940)={0x20, 0x85, 0x4, 0x4}, &(0x7f0000000980)={0x20, 0x83, 0x2, 0x1}, &(0x7f00000009c0)={0x20, 0x87, 0x2, 0x3f0}, &(0x7f0000000a00)={0x20, 0x89, 0x2}}) [ 913.311132][T11990] overlayfs: missing 'lowerdir' [ 913.313869][T11990] overlayfs: missing 'lowerdir' [ 913.319334][T11990] overlayfs: missing 'lowerdir' 00:15:13 executing program 1: r0 = socket$inet(0x2, 0x3, 0x8d) setsockopt$inet_msfilter(r0, 0x0, 0x8, &(0x7f0000000480)=ANY=[@ANYRESHEX], 0x1) (async) getsockopt$inet_pktinfo(r0, 0x0, 0x8, &(0x7f0000000040)={0x0, @local, @local}, &(0x7f0000000140)=0xc) (async) r2 = socket$netlink(0x10, 0x3, 0x0) socket$inet(0x2, 0x3, 0x52) (async) writev(r2, &(0x7f00000003c0)=[{&(0x7f0000000180)="390000001300034700bb65e1c3e4ffff01000000010000005600000025000000190004000400000007fd17e5ffff0800040000000000000000", 0x39}], 0x1) (async) r3 = openat$vcsu(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) read$qrtrtun(r3, &(0x7f00000000c0)=""/68, 0x44) (async) sendmsg$nl_route_sched(r3, &(0x7f00000000c0)={&(0x7f0000000000)={0x10, 0x0, 0x0, 0x2000}, 0xc, &(0x7f0000000080)={&(0x7f00000001c0)=@gettaction={0xd4, 0x32, 0x4, 0x70bd25, 0x25dfdbfb, {}, [@action_dump_flags=@TCA_ROOT_TIME_DELTA={0x8, 0x4, 0x5}, @action_gd=@TCA_ACT_TAB={0x18, 0x1, [{0x14, 0x9, 0x0, 0x0, @TCA_ACT_KIND={0xf, 0x1, 'tunnel_key\x00'}}]}, @action_gd=@TCA_ACT_TAB={0x94, 0x1, [{0x14, 0x11, 0x0, 0x0, @TCA_ACT_KIND={0xf, 0x1, 'tunnel_key\x00'}}, {0xc, 0x5, 0x0, 0x0, @TCA_ACT_INDEX={0x8}}, {0x10, 0x20, 0x0, 0x0, @TCA_ACT_KIND={0xa, 0x1, 'pedit\x00'}}, {0xc, 0x10, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0x8}}, {0x10, 0x1e, 0x0, 0x0, @TCA_ACT_KIND={0xc, 0x1, 'skbedit\x00'}}, {0x10, 0x1e, 0x0, 0x0, @TCA_ACT_KIND={0x9, 0x1, 'gact\x00'}}, {0x14, 0x7, 0x0, 0x0, @TCA_ACT_KIND={0xf, 0x1, 'tunnel_key\x00'}}, {0x10, 0x9, 0x0, 0x0, @TCA_ACT_KIND={0xb, 0x1, 'mirred\x00'}}, {0x10, 0x16, 0x0, 0x0, @TCA_ACT_KIND={0xa, 0x1, 'pedit\x00'}}]}, @action_dump_flags=@TCA_ROOT_FLAGS={0xc, 0x2, {0x1, 0x1}}]}, 0xd4}, 0x1, 0x0, 0x0, 0x8000}, 0x4000010) (async) r4 = socket$packet(0x11, 0x3, 0x300) bind$packet(r4, &(0x7f0000000100)={0x11, 0x0, r1, 0x1, 0x0, 0x6, @random="df53d0de702d"}, 0x14) (async) writev(r2, &(0x7f0000000040)=[{&(0x7f0000000400)="390000001300034700bb5be1c3e4feff06000000010000004500000025000000190004000400ad000200000000000006040000000000f93132", 0x39}], 0x1) (async) ioctl$AUTOFS_DEV_IOCTL_FAIL(r3, 0xc0189377, &(0x7f00000002c0)={{0x1, 0x1, 0x18, r4, {0x6, 0x2}}, './file0\x00'}) ioctl$KDSKBMETA(r5, 0x4b63, &(0x7f0000000300)=0x3) [ 913.329979][T11990] overlayfs: missing 'lowerdir' [ 913.331830][T11990] overlayfs: missing 'lowerdir' [ 913.335423][T11990] overlayfs: missing 'lowerdir' [ 913.337048][T11990] overlayfs: missing 'lowerdir' [ 913.339922][T11990] overlayfs: missing 'lowerdir' [ 913.344153][T11990] overlayfs: missing 'lowerdir' [ 913.346620][T11990] overlayfs: missing 'lowerdir' [ 913.350708][T11990] overlayfs: missing 'lowerdir' [ 913.351718][T12020] netlink: 'syz-executor.1': attribute type 4 has an invalid length. [ 913.356713][T11990] overlayfs: missing 'lowerdir' [ 913.356940][T11990] overlayfs: missing 'lowerdir' [ 913.357141][T11990] overlayfs: missing 'lowerdir' [ 913.357336][T11990] overlayfs: missing 'lowerdir' [ 913.357540][T11990] overlayfs: missing 'lowerdir' [ 913.358899][T11990] overlayfs: missing 'lowerdir' [ 913.359121][T11990] overlayfs: missing 'lowerdir' [ 913.359394][T11990] overlayfs: missing 'lowerdir' [ 913.359733][T11990] overlayfs: missing 'lowerdir' [ 913.359996][T11990] overlayfs: missing 'lowerdir' [ 913.363543][T11990] overlayfs: missing 'lowerdir' [ 913.363822][T11990] overlayfs: missing 'lowerdir' [ 913.364061][T11990] overlayfs: missing 'lowerdir' [ 913.364294][T11990] overlayfs: missing 'lowerdir' [ 913.364982][T11990] overlayfs: missing 'lowerdir' [ 913.380095][T11992] ------------[ cut here ]------------ [ 913.382106][T11992] WARNING: CPU: 0 PID: 11992 at include/linux/gfp.h:221 alloc_charge_hpage+0x5a4/0x938 [ 913.382124][T11992] Modules linked in: [ 913.382131][T11992] CPU: 0 PID: 11992 Comm: syz-executor.3 Not tainted 6.1.0-rc5-syzkaller-32269-g9500fc6e9e60 #0 [ 913.382141][T11992] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/30/2022 [ 913.382146][T11992] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 913.382157][T11992] pc : alloc_charge_hpage+0x5a4/0x938 [ 913.382165][T11992] lr : alloc_charge_hpage+0x5a4/0x938 [ 913.382172][T11992] sp : ffff80001413b930 [ 913.382176][T11992] x29: ffff80001413b930 x28: 0000000020400000 x27: 0000000000000000 [ 913.382189][T11992] x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000001 [ 913.382202][T11992] x23: 0000000000000001 x22: 0000000000000000 x21: 00000000003c24ca [ 913.382215][T11992] x20: ffff000115ca0a80 x19: ffff80001413ba30 x18: 0000000000000397 [ 913.382228][T11992] x17: ffff80000c0ed83c x16: 0000000000000000 x15: 0000000000000000 [ 913.382241][T11992] x14: 0000000000000002 x13: 0000000000000003 x12: 0000000000040000 [ 913.382254][T11992] x11: 000000000003ffff x10: ffff800018f57000 x9 : ffff80000856ac98 [ 913.382267][T11992] x8 : 0000000000040000 x7 : ffff80000856a680 x6 : 0000000000000000 [ 913.382280][T11992] x5 : 0000000000000000 x4 : ffff0001212eef80 x3 : 0000000000000400 [ 913.382293][T11992] x2 : ffff0001212eef80 x1 : 0000000000000000 x0 : 0000000000000000 [ 913.382306][T11992] Call trace: [ 913.382309][T11992] alloc_charge_hpage+0x5a4/0x938 [ 913.382317][T11992] collapse_file+0xd0/0x2ffc [ 913.382325][T11992] hpage_collapse_scan_file+0x938/0xb64 [ 913.382337][T11992] madvise_collapse+0x328/0x864 [ 913.382348][T11992] madvise_vma_behavior+0x148/0x7f4 [ 913.382359][T11992] do_madvise+0x438/0x5c0 [ 913.382368][T11992] __arm64_sys_madvise+0x2c/0x40 [ 913.382378][T11992] el0_svc_common+0x138/0x220 [ 913.382390][T11992] do_el0_svc+0x48/0x164 [ 913.382410][T11992] el0_svc+0x58/0x150 [ 913.382420][T11992] el0t_64_sync_handler+0x84/0xf0 [ 913.382429][T11992] el0t_64_sync+0x190/0x194 [ 913.382437][T11992] irq event stamp: 27186 [ 913.382440][T11992] hardirqs last enabled at (27185): [] finish_lock_switch+0x94/0xe8 [ 913.382452][T11992] hardirqs last disabled at (27186): [] el1_dbg+0x24/0x80 [ 913.382462][T11992] softirqs last enabled at (23702): [] _stext+0x2e4/0x37c [ 913.382472][T11992] softirqs last disabled at (23669): [] ____do_softirq+0x14/0x20 [ 913.382484][T11992] ---[ end trace 0000000000000000 ]--- [ 913.389156][T11992] Unable to handle kernel paging request at virtual address 0000000000002818 [ 913.447339][T11990] overlayfs: missing 'lowerdir' [ 913.449262][T11990] overlayfs: missing 'lowerdir' [ 913.450932][T11990] overlayfs: missing 'lowerdir' [ 913.451280][T11992] Mem abort info: [ 913.453199][T11992] ESR = 0x0000000096000006 [ 913.454326][T11992] EC = 0x25: DABT (current EL), IL = 32 bits [ 913.456107][T11992] SET = 0, FnV = 0 [ 913.457079][T11992] EA = 0, S1PTW = 0 [ 913.458093][T11992] FSC = 0x06: level 2 translation fault [ 913.459563][T11992] Data abort info: [ 913.460475][T11992] ISV = 0, ISS = 0x00000006 [ 913.460733][T11990] overlayfs: missing 'lowerdir' [ 913.461638][T11992] CM = 0, WnR = 0 [ 913.461648][T11992] user pgtable: 4k pages, 48-bit VAs, pgdp=000000015c8cb000 [ 913.461659][T11992] [0000000000002818] pgd=08000001626b0003, p4d=08000001626b0003, pud=080000015dd8d003, pmd=0000000000000000 00:15:13 executing program 1: r0 = socket$inet6_sctp(0xa, 0x1, 0x84) r1 = openat$vcsu(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) read$qrtrtun(r1, &(0x7f00000000c0)=""/68, 0x44) getsockopt$inet_sctp6_SCTP_GET_ASSOC_ID_LIST(r1, 0x84, 0x1d, &(0x7f0000000000)={0x3, [0x0, 0x0, 0x0]}, &(0x7f0000000040)=0x10) sendto$inet6(r0, &(0x7f0000847fff)='X', 0x1, 0x0, &(0x7f000005ffe4)={0xa, 0x0, 0x0, @dev, 0x6}, 0x1c) sendto$inet6(r0, &(0x7f00000003c0)='~', 0x1, 0x0, &(0x7f0000000480)={0xa, 0x6e20, 0xfffffffd, @empty}, 0x1c) shutdown(r0, 0x1) setsockopt$inet_sctp6_SCTP_MAXSEG(r0, 0x84, 0xd, &(0x7f00000002c0), 0x4) [ 913.476921][T11992] Internal error: Oops: 0000000096000006 [#1] PREEMPT SMP [ 913.477217][T11990] overlayfs: missing 'lowerdir' [ 913.478773][T11992] Modules linked in: [ 913.478780][T11992] CPU: 1 PID: 11992 Comm: syz-executor.3 Tainted: G W 6.1.0-rc5-syzkaller-32269-g9500fc6e9e60 #0 [ 913.478792][T11992] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/30/2022 [ 913.486706][T11992] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 913.486718][T11992] pc : __next_zones_zonelist+0x24/0x58 [ 913.490164][T11992] lr : prepare_alloc_pages+0x1bc/0x244 [ 913.490178][T11992] sp : ffff80001413b860 [ 913.490180][T11992] x29: ffff80001413b860 x28: 0000000020400000 x27: 0000000000000000 [ 913.492637][T11992] x26: 0000000000000000 x25: ffff80000d3a9000 x24: 0000000000000008 [ 913.492649][T11992] x23: ffff8000084c1994 x22: 0000000000000000 x21: ffff80001413b8e4 [ 913.492660][T11992] x20: 00000000003c24ca x19: ffff80001413b8b8 x18: 0000000000000397 [ 913.492671][T11992] x17: ffff80000c0ed83c x16: ffff80000dc18158 x15: ffff0001213c1a40 [ 913.492682][T11992] x14: 0000000000000010 x13: 0000000000000000 x12: 0000000000040000 [ 913.492693][T11992] x11: 0000000000000000 x10: 0000000000000081 x9 : 0000000000000000 [ 913.492704][T11992] x8 : 0000000000000000 x7 : ffff8000084c0640 x6 : 0000000000000000 [ 913.492714][T11992] x5 : 0000000000000000 x4 : 0000000000000001 x3 : 0000000000000000 [ 913.492725][T11992] x2 : ffff0001213c2c48 x1 : 0000000000000003 x0 : 0000000000002810 [ 913.492736][T11992] Call trace: [ 913.492738][T11992] __next_zones_zonelist+0x24/0x58 [ 913.492746][T11992] __alloc_pages+0xa4/0x1fc [ 913.492757][T11992] alloc_charge_hpage+0x318/0x938 [ 913.492765][T11992] collapse_file+0xd0/0x2ffc [ 913.492772][T11992] hpage_collapse_scan_file+0x938/0xb64 [ 913.492783][T11992] madvise_collapse+0x328/0x864 [ 913.492794][T11992] madvise_vma_behavior+0x148/0x7f4 [ 913.492803][T11992] do_madvise+0x438/0x5c0 [ 913.492812][T11992] __arm64_sys_madvise+0x2c/0x40 [ 913.492821][T11992] el0_svc_common+0x138/0x220 [ 913.492833][T11992] do_el0_svc+0x48/0x164 [ 913.492843][T11992] el0_svc+0x58/0x150 [ 913.492852][T11992] el0t_64_sync_handler+0x84/0xf0 [ 913.492860][T11992] el0t_64_sync+0x190/0x194 [ 913.492872][T11992] Code: 6b01011f 54ffffa8 1400000d 91004000 (b9400808) [ 913.492877][T11992] ---[ end trace 0000000000000000 ]--- [ 913.597833][T12024] sctp: [Deprecated]: syz-executor.1 (pid 12024) Use of int in maxseg socket option. [ 913.597833][T12024] Use struct sctp_assoc_value instead 00:15:13 executing program 1: r0 = socket$inet6_sctp(0xa, 0x1, 0x84) (async) r1 = openat$vcsu(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) read$qrtrtun(r1, &(0x7f00000000c0)=""/68, 0x44) (async) getsockopt$inet_sctp6_SCTP_GET_ASSOC_ID_LIST(r1, 0x84, 0x1d, &(0x7f0000000000)={0x3, [0x0, 0x0, 0x0]}, &(0x7f0000000040)=0x10) (async) sendto$inet6(r0, &(0x7f0000847fff)='X', 0x1, 0x0, &(0x7f000005ffe4)={0xa, 0x0, 0x0, @dev, 0x6}, 0x1c) sendto$inet6(r0, &(0x7f00000003c0)='~', 0x1, 0x0, &(0x7f0000000480)={0xa, 0x6e20, 0xfffffffd, @empty}, 0x1c) (async) shutdown(r0, 0x1) (async, rerun: 32) setsockopt$inet_sctp6_SCTP_MAXSEG(r0, 0x84, 0xd, &(0x7f00000002c0), 0x4) (rerun: 32) [ 913.938529][T11992] Kernel panic - not syncing: Oops: Fatal exception [ 913.940292][T11992] SMP: stopping secondary CPUs [ 913.941591][T11992] Kernel Offset: disabled [ 913.942756][T11992] CPU features: 0x00000,040e0108,4c017203 [ 913.944236][T11992] Memory Limit: none [ 914.367672][T11992] Rebooting in 86400 seconds..