hash file i/o