added HashUtil.deep_compact