func SOCKS5(network, addr string, auth *Auth, forward Dialer) (Dialer, error) {
	s := &socks5{
		network: network,
		addr:    addr,
		forward: forward,
	}
	if auth != nil {
		s.user = auth.User
		s.password = auth.Password
	}
	return s, nil
}
SOCKS5 returns a Dialer that makes SOCKSv5 connections to the given address
with an optional username and password. See RFC 1928.
package proxy
import (
	"errors"
	"io"
	"net"
	"strconv"
)