func sha1Map(m map[string]interface{}) string {
	keys := make([]string, 0, len(m))
	for k, _ := range m {
		keys = append(keys, k)
	}
	sort.Strings(keys)

	h := sha1.New()
	for _, k := range keys {
		io.WriteString(h, fmt.Sprintf("%s=%q", k, m[k]))
	}

	return fmt.Sprintf("%.4x", h.Sum(nil))
}
func sha1Map(m map[string]interface{}) string {
	keys := make([]string, 0, len(m))
	for k, _ := range m {
		keys = append(keys, k)
	}
	sort.Strings(keys)

	h := sha1.New()
	for _, k := range keys {
		io.WriteString(h, fmt.Sprintf("%s=%q", k, m[k]))
	}

	return fmt.Sprintf("%.4x", h.Sum(nil))
}
func sha1Map ( m map [ string ] interface { } ) string { keys := make ( [ ] string , 0 , len ( m ) ) for k , _ := range m { keys = append ( keys , k ) } sort . Strings ( keys ) h := sha1 . New ( ) for _ , k := range keys { io . WriteString ( h , fmt . Sprintf ( " " , k , m [ k ] ) ) } return fmt . Sprintf ( " " , h . Sum ( nil ) ) }
// sha1Map returns the sha1 hash of the data in the map. The reason this data is
// hashed is because it appears in the output and could contain sensitive
// information.
sha1Map returns the sha1 hash of the data in the map . The reason this data is hashed is because it appears in the output and could contain sensitive information .