<!--

Copyright MetaCommunications, Inc. 2003-2005.

Distributed under the Boost Software License, Version 1.0. (See
accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)

-->

<div class="legend">
<table border="0" summary="report description">
    <tr>
        <td class="legend-item" width="50pt">
            <table width="100%" summary="success legend">
            <tr class="library-row-single"><td class="library-success-expected user-library-success-expected">pass</td></tr>
            </table>
        </td>
        <td class="legend-explanation">The test successfully passes.</td>
    </tr>
    <tr>
        <td class="legend-item" width="50pt">
            <table width="100%" summary="expected fail legend">
            <tr class="library-row-single"><td class="library-fail-expected user-library-fail-expected"><u>fail*</u></td></tr>
            </table>
        </td>
        <td class="legend-explanation">
            A <b>known failure</b> that the library maintainers are aware about. Please follow the link to 
            find out how it affects the library's functionality.
        </td>
    </tr>
    <tr>
        <td class="legend-item" width="50pt">
            <table width="100%" summary="unusable legend">
            <tr class="library-row-single"><td class="library-unusable user-library-unusable">unusable</td></tr>
            </table>
        </td>
        <td class="legend-explanation">
            The library author marked it as <b>unusable</b> on this particular platform/toolset. Please
            see the corresponding footnote.
        </td>
    </tr>
    <tr>
        <td class="legend-item" width="50pt">
            <table width="100%" summary="unresearched legend">
            <tr class="library-row-single"><td class="library-fail-expected-unresearched user-library-fail-expected-unresearched"><u>fail?</u></td></tr>
            </table>
        </td>
        <td class="legend-explanation">
          An <b>unsearched failure</b>: the library maintainers are aware of it, but need help with 
          investigating/addressing it for future releases. Please follow the link to 
          access the details and find out how it affects library functionality. </td>
    </tr>
    <tr>
        <td class="legend-item" width="50pt">
            <table width="100%" summary="unexpected new fail legend">
            <tr class="library-row-single"><td class="library-fail-unexpected-new user-library-fail-unexpected-new"><u>fail</u></td></tr>
            </table>
        </td>
        <td class="legend-explanation">
            A <b>new failure</b> on the test/compiler added in this release that hasn't been accounted for yet. 
            Please follow the link to access the details.
        </td>
    </tr>
    <tr>
        <td class="legend-item" width="50pt">
            <table width="100%" summary="unexpected fail legend">
            <tr class="library-row-single user-library-row-single"><td class="library-fail-unexpected"><u>fail</u></td></tr>
            </table>
        </td>
        <td class="legend-explanation">
             A <b>regression</b> comparing to the previous release. Please follow the link to 
             access the details.
        </td>
    </tr>
    <tr>
        <td class="legend-item" width="50pt">
        </td>
        <td class="legend-explanation"></td>
    </tr>
</table>
<hr/>
<table border="0" summary="report description">
    <tr>
        <td><span class="run-type-incremental">i</span></td>
        <td class="legend-explanation">An incremental run.</td>
    </tr>
</table>
</div>
