// Package ipaddr is a fork of a subset of the Go standard "net" package which
// retains parsing behaviors from Go 1.16 or earlier.
//
// Don't use this for any new code without careful consideration. See the
// README.md in the package directory for more information.
package ipaddr
