Files
opennurbs/6/df/d10/class_o_n___lock.html
Bozo 013efd06c9 Publish!
Generated from v6.0.11315.11111-test11
2018-01-31 14:30:40 -08:00

353 lines
20 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>openNURBS SDK Help: ON_Lock Class Reference</title>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../jquery.js"></script>
<script type="text/javascript" src="../../dynsections.js"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="../../search/searchdata.js"></script>
<script type="text/javascript" src="../../search/search.js"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">openNURBS SDK Help
&#160;<span id="projectnumber">6.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script type="text/javascript" src="../../menudata.js"></script>
<script type="text/javascript" src="../../menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('../../',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="../../d4/d8f/class_o_n___lock-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">ON_Lock Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="../../de/dfb/opennurbs__lock_8h_source.html">opennurbs_lock.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a4f2a7bc0117c61e9dd13aa89d38e37e5"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">: int { <a class="el" href="../../df/d10/class_o_n___lock.html#a4f2a7bc0117c61e9dd13aa89d38e37e5ae4f5230d589694ab75bc5c686bdf23da">UnlockedValue</a> = 0,
<a class="el" href="../../df/d10/class_o_n___lock.html#a4f2a7bc0117c61e9dd13aa89d38e37e5abb37cec5885d90d89d8cc6e2a2775e76">DefaultLockedValue</a> = 1,
<a class="el" href="../../df/d10/class_o_n___lock.html#a4f2a7bc0117c61e9dd13aa89d38e37e5a8b28bdd23dd3c971f86090ac8ff1fdc8">InvalidLockValue</a> = -1
}<tr class="memdesc:a4f2a7bc0117c61e9dd13aa89d38e37e5"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="../../df/d10/class_o_n___lock.html#a4f2a7bc0117c61e9dd13aa89d38e37e5a8b28bdd23dd3c971f86090ac8ff1fdc8">ON_Lock::InvalidLockValue</a> (= -1) may never be used as a lock value. <a href="../../df/d10/class_o_n___lock.html#a4f2a7bc0117c61e9dd13aa89d38e37e5">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:a4f2a7bc0117c61e9dd13aa89d38e37e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a40e3fd0d02b531b50924ec7b6d93d467"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d10/class_o_n___lock.html#a40e3fd0d02b531b50924ec7b6d93d467">ON_Lock</a> ()=default</td></tr>
<tr class="separator:a40e3fd0d02b531b50924ec7b6d93d467"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e42e913ff40dbafbb671fe6cb3462d0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d10/class_o_n___lock.html#a6e42e913ff40dbafbb671fe6cb3462d0">ON_Lock</a> (const <a class="el" href="../../df/d10/class_o_n___lock.html">ON_Lock</a> &amp;)=default</td></tr>
<tr class="separator:a6e42e913ff40dbafbb671fe6cb3462d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae774e799e45537f621e14fc69ffd6c9b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d10/class_o_n___lock.html#ae774e799e45537f621e14fc69ffd6c9b">~ON_Lock</a> ()=default</td></tr>
<tr class="separator:ae774e799e45537f621e14fc69ffd6c9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39a050c1a0437b5e2dccfeb26b7f8e50"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d10/class_o_n___lock.html#a39a050c1a0437b5e2dccfeb26b7f8e50">BreakLock</a> ()</td></tr>
<tr class="separator:a39a050c1a0437b5e2dccfeb26b7f8e50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5931ae077c91bdf23c20726d1b03d7df"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d10/class_o_n___lock.html#a5931ae077c91bdf23c20726d1b03d7df">GetDefaultLock</a> ()</td></tr>
<tr class="separator:a5931ae077c91bdf23c20726d1b03d7df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6216ad48aed8b4cc78a3a2eaee2ae677"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d10/class_o_n___lock.html#a6216ad48aed8b4cc78a3a2eaee2ae677">GetLock</a> (int lock_value)</td></tr>
<tr class="separator:a6216ad48aed8b4cc78a3a2eaee2ae677"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af15ae75981cfd607fb470dc75920ca0f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d10/class_o_n___lock.html#af15ae75981cfd607fb470dc75920ca0f">IsLocked</a> ()</td></tr>
<tr class="separator:af15ae75981cfd607fb470dc75920ca0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9675ca55c02085e2d0eb2d40d6ef002b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="../../df/d10/class_o_n___lock.html">ON_Lock</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d10/class_o_n___lock.html#a9675ca55c02085e2d0eb2d40d6ef002b">operator=</a> (const <a class="el" href="../../df/d10/class_o_n___lock.html">ON_Lock</a> &amp;)=default</td></tr>
<tr class="separator:a9675ca55c02085e2d0eb2d40d6ef002b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f905a5656c42da06f9fbfacc99de1a2"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d10/class_o_n___lock.html#a8f905a5656c42da06f9fbfacc99de1a2">ReturnDefaultLock</a> ()</td></tr>
<tr class="separator:a8f905a5656c42da06f9fbfacc99de1a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bcfc5267bb4cb996ca008a445363654"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/d10/class_o_n___lock.html#a2bcfc5267bb4cb996ca008a445363654">ReturnLock</a> (int lock_value)</td></tr>
<tr class="separator:a2bcfc5267bb4cb996ca008a445363654"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><dl class="section rcs"><dt>NoKeywords</dt><dd></dd></dl>
<p>/ / Copyright (c) 1993-2013 Robert McNeel &amp; Associates. All rights reserved. / OpenNURBS, Rhinoceros, and Rhino3D are registered trademarks of Robert / McNeel &amp; Associates. / / THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. / ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF / MERCHANTABILITY ARE HEREBY DISCLAIMED. / / For complete openNURBS copyright information see <a href="http://www.opennurbs.org">http://www.opennurbs.org</a>. / ////////////////////////////////////////////////////////////// Description: <a class="el" href="../../df/d10/class_o_n___lock.html">ON_Lock</a> is a thread safe lock semephore. It is implemented using platform specfic compare and set functions. </p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a4f2a7bc0117c61e9dd13aa89d38e37e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4f2a7bc0117c61e9dd13aa89d38e37e5">&#9670;&nbsp;</a></span>anonymous enum</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">anonymous enum : int</td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="../../df/d10/class_o_n___lock.html#a4f2a7bc0117c61e9dd13aa89d38e37e5a8b28bdd23dd3c971f86090ac8ff1fdc8">ON_Lock::InvalidLockValue</a> (= -1) may never be used as a lock value. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a4f2a7bc0117c61e9dd13aa89d38e37e5ae4f5230d589694ab75bc5c686bdf23da"></a>UnlockedValue&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a4f2a7bc0117c61e9dd13aa89d38e37e5abb37cec5885d90d89d8cc6e2a2775e76"></a>DefaultLockedValue&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a4f2a7bc0117c61e9dd13aa89d38e37e5a8b28bdd23dd3c971f86090ac8ff1fdc8"></a>InvalidLockValue&#160;</td><td class="fielddoc"></td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a40e3fd0d02b531b50924ec7b6d93d467"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40e3fd0d02b531b50924ec7b6d93d467">&#9670;&nbsp;</a></span>ON_Lock() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ON_Lock::ON_Lock </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ae774e799e45537f621e14fc69ffd6c9b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae774e799e45537f621e14fc69ffd6c9b">&#9670;&nbsp;</a></span>~ON_Lock()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ON_Lock::~ON_Lock </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a6e42e913ff40dbafbb671fe6cb3462d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e42e913ff40dbafbb671fe6cb3462d0">&#9670;&nbsp;</a></span>ON_Lock() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">ON_Lock::ON_Lock </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../df/d10/class_o_n___lock.html">ON_Lock</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a39a050c1a0437b5e2dccfeb26b7f8e50"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a39a050c1a0437b5e2dccfeb26b7f8e50">&#9670;&nbsp;</a></span>BreakLock()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ON_Lock::BreakLock </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Unconditionally sets the lock value to <a class="el" href="../../df/d10/class_o_n___lock.html#a4f2a7bc0117c61e9dd13aa89d38e37e5ae4f5230d589694ab75bc5c686bdf23da">ON_Lock::UnlockedValue</a>. Returns: previous value of the lock. <a class="el" href="../../df/d10/class_o_n___lock.html#a4f2a7bc0117c61e9dd13aa89d38e37e5ae4f5230d589694ab75bc5c686bdf23da">ON_Lock::UnlockedValue</a> indicates the lock was available otherwise the lock passed to <a class="el" href="../../df/d10/class_o_n___lock.html#a6216ad48aed8b4cc78a3a2eaee2ae677">GetLock()</a> is returned </p>
</div>
</div>
<a id="a5931ae077c91bdf23c20726d1b03d7df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5931ae077c91bdf23c20726d1b03d7df">&#9670;&nbsp;</a></span>GetDefaultLock()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_Lock::GetDefaultLock </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Calls GetLock(ON_Lock::DefaultLockedValue); Returns: True if the lock state was unlocked and the current lock value was changed from <a class="el" href="../../df/d10/class_o_n___lock.html#a4f2a7bc0117c61e9dd13aa89d38e37e5ae4f5230d589694ab75bc5c686bdf23da">ON_Lock::UnlockedValue</a> to <a class="el" href="../../df/d10/class_o_n___lock.html#a4f2a7bc0117c61e9dd13aa89d38e37e5abb37cec5885d90d89d8cc6e2a2775e76">ON_Lock::DefaultLockedValue</a>. False otherwise. </p>
</div>
</div>
<a id="a6216ad48aed8b4cc78a3a2eaee2ae677"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6216ad48aed8b4cc78a3a2eaee2ae677">&#9670;&nbsp;</a></span>GetLock()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_Lock::GetLock </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>lock_value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Parameters: lock_value - [in] any value except <a class="el" href="../../df/d10/class_o_n___lock.html#a4f2a7bc0117c61e9dd13aa89d38e37e5ae4f5230d589694ab75bc5c686bdf23da">ON_Lock::UnlockedValue</a> or <a class="el" href="../../df/d10/class_o_n___lock.html#a4f2a7bc0117c61e9dd13aa89d38e37e5a8b28bdd23dd3c971f86090ac8ff1fdc8">ON_Lock::InvalidLockValue</a>. Typically <a class="el" href="../../df/d10/class_o_n___lock.html#a4f2a7bc0117c61e9dd13aa89d38e37e5abb37cec5885d90d89d8cc6e2a2775e76">ON_Lock::DefaultLockedValue</a> is used. Returns: True if the lock_value parameter was valid and the current lock value was changed from <a class="el" href="../../df/d10/class_o_n___lock.html#a4f2a7bc0117c61e9dd13aa89d38e37e5ae4f5230d589694ab75bc5c686bdf23da">ON_Lock::UnlockedValue</a> to lock_value. False otherwise. </p>
</div>
</div>
<a id="af15ae75981cfd607fb470dc75920ca0f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af15ae75981cfd607fb470dc75920ca0f">&#9670;&nbsp;</a></span>IsLocked()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int ON_Lock::IsLocked </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns: Current lock value <a class="el" href="../../df/d10/class_o_n___lock.html#a4f2a7bc0117c61e9dd13aa89d38e37e5ae4f5230d589694ab75bc5c686bdf23da">ON_Lock::UnlockedValue</a> indicates the the resource protected by the lock is available. </p>
</div>
</div>
<a id="a9675ca55c02085e2d0eb2d40d6ef002b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9675ca55c02085e2d0eb2d40d6ef002b">&#9670;&nbsp;</a></span>operator=()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="../../df/d10/class_o_n___lock.html">ON_Lock</a>&amp; ON_Lock::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="../../df/d10/class_o_n___lock.html">ON_Lock</a> &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a8f905a5656c42da06f9fbfacc99de1a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f905a5656c42da06f9fbfacc99de1a2">&#9670;&nbsp;</a></span>ReturnDefaultLock()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_Lock::ReturnDefaultLock </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Description: Calls ReturnLock(ON_Lock::DefaultLockedValue); Returns: True if the lock state was locked with a locak value = <a class="el" href="../../df/d10/class_o_n___lock.html#a4f2a7bc0117c61e9dd13aa89d38e37e5abb37cec5885d90d89d8cc6e2a2775e76">ON_Lock::DefaultLockedValue</a> and the current lock value was changed from <a class="el" href="../../df/d10/class_o_n___lock.html#a4f2a7bc0117c61e9dd13aa89d38e37e5abb37cec5885d90d89d8cc6e2a2775e76">ON_Lock::DefaultLockedValue</a> to <a class="el" href="../../df/d10/class_o_n___lock.html#a4f2a7bc0117c61e9dd13aa89d38e37e5ae4f5230d589694ab75bc5c686bdf23da">ON_Lock::UnlockedValue</a>. False otherwise. </p>
</div>
</div>
<a id="a2bcfc5267bb4cb996ca008a445363654"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2bcfc5267bb4cb996ca008a445363654">&#9670;&nbsp;</a></span>ReturnLock()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool ON_Lock::ReturnLock </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>lock_value</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Parameters: lock_value - [in] any value except <a class="el" href="../../df/d10/class_o_n___lock.html#a4f2a7bc0117c61e9dd13aa89d38e37e5ae4f5230d589694ab75bc5c686bdf23da">ON_Lock::UnlockedValue</a> or <a class="el" href="../../df/d10/class_o_n___lock.html#a4f2a7bc0117c61e9dd13aa89d38e37e5a8b28bdd23dd3c971f86090ac8ff1fdc8">ON_Lock::InvalidLockValue</a>. Typically this is the value that was passed to <a class="el" href="../../df/d10/class_o_n___lock.html#a6216ad48aed8b4cc78a3a2eaee2ae677">GetLock()</a>. Returns: True if the lock_value parameter was valid and the current lock value was changed from that value to zero. False otherwise. </p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Jan 31 2018 14:30:14 for openNURBS SDK Help by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="../../doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>