/*
 * Written by Doug Lea with assistance from members of JCP JSR-166
 * Expert Group and released to the public domain, as explained at
 * http://creativecommons.org/publicdomain/zero/1.0/
 */

/**
 * Package contains class that from jbcrypt.
 *
 * The file was imported from the following repository:
 *  - https://github.com/jeremyh/jBCrypt.git
 *
 * For more information please refer to the project page:
 * http://www.mindrot.org/projects/jBCrypt
 */

package org.mindrot;
