// Copyright 2018 by David A. Golden. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

// Package stringprep provides data tables and algorithms for RFC-3454,
// including errata (as of 2018-02).  It also provides a profile for
// SASLprep as defined in RFC-4013.
package stringprep
