
Acknowledgements:
backport-util-concurrent is based in large part on the public
domain sources from:
    1) JSR166,
    2) package dl.util.concurrent,
    3) Doug Lea's "collections" package.

This software is released to the public domain
( http://creativecommons.org/licenses/publicdomain )
in the spirit of the original code written by Doug Lea.
The code can be used for any purpose, modified, and redistributed
without acknowledgment. No warranty is provided, either express or implied.

Following is a copy of http://creativecommons.org/licenses/publicdomain

Creative Commons Public Domain
Copyright-Only Dedication (based on United States law) or Public Domain
Certification

The person or persons who have associated work with this document
(the "Dedicator" or "Certifier") hereby either (a) certifies that, to the
best of his knowledge, the work of authorship identified is in the
public domain of the country from which the work is published, or (b)
hereby dedicates whatever copyright the dedicators holds in the work of
authorship identified below (the "Work") to the public domain. A
certifier, moreover, dedicates any copyright interest he may have in the
associated work, and for these purposes, is described as a "dedicator"
below.

A certifier has taken reasonable steps to verify
the copyright status of this work. Certifier recognizes that his good
faith efforts may not shield him from liability if in fact the work
certified is not in the public domain.

Dedicator makes this dedication for the benefit of the public at large and
to the detriment of the Dedicator's heirs and successors. Dedicator intends
this dedication to be an overt act of relinquishment in perpetuity of
all present and future rights under copyright law, whether vested or
contingent, in the Work. Dedicator understands that such relinquishment
of all rights includes the relinquishment of all rights to enforce (by
lawsuit or otherwise) those copyrights in the Work.

Dedicator recognizes that, once placed in the public domain, the Work may be
freely reproduced, distributed, transmitted, used, modified, built
upon, or otherwise exploited by anyone for any purpose, commercial or
non-commercial, and in any way, including by methods that have not yet
been invented or conceived.
