|  | <?xml version="1.0" encoding="ascii"?> | 
|  | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | 
|  | "DTD/xhtml1-transitional.dtd"> | 
|  | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | 
|  | <head> | 
|  | <title>oauth2client.client.Storage</title> | 
|  | <link rel="stylesheet" href="epydoc.css" type="text/css" /> | 
|  | <script type="text/javascript" src="epydoc.js"></script> | 
|  | </head> | 
|  |  | 
|  | <body bgcolor="white" text="black" link="blue" vlink="#204080" | 
|  | alink="#204080"> | 
|  | <!-- ==================== NAVIGATION BAR ==================== --> | 
|  | <table class="navbar" border="0" width="100%" cellpadding="0" | 
|  | bgcolor="#a0c0ff" cellspacing="0"> | 
|  | <tr valign="middle"> | 
|  |  | 
|  | <!-- Tree link --> | 
|  | <th>   <a | 
|  | href="module-tree.html">Trees</a>   </th> | 
|  |  | 
|  | <!-- Index link --> | 
|  | <th>   <a | 
|  | href="identifier-index.html">Indices</a>   </th> | 
|  |  | 
|  | <!-- Help link --> | 
|  | <th>   <a | 
|  | href="help.html">Help</a>   </th> | 
|  |  | 
|  | <th class="navbar" width="100%"></th> | 
|  | </tr> | 
|  | </table> | 
|  | <table width="100%" cellpadding="0" cellspacing="0"> | 
|  | <tr valign="top"> | 
|  | <td width="100%"> | 
|  | <span class="breadcrumbs"> | 
|  | <a href="oauth2client-module.html">Package oauth2client</a> :: | 
|  | <a href="oauth2client.client-module.html">Module client</a> :: | 
|  | Class Storage | 
|  | </span> | 
|  | </td> | 
|  | <td> | 
|  | <table cellpadding="0" cellspacing="0"> | 
|  | <!-- hide/show private --> | 
|  | <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink" | 
|  | onclick="toggle_private();">hide private</a>]</span></td></tr> | 
|  | <tr><td align="right"><span class="options" | 
|  | >[<a href="frames.html" target="_top">frames</a | 
|  | >] | <a href="oauth2client.client.Storage-class.html" | 
|  | target="_top">no frames</a>]</span></td></tr> | 
|  | </table> | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  | <!-- ==================== CLASS DESCRIPTION ==================== --> | 
|  | <h1 class="epydoc">Class Storage</h1><p class="nomargin-top"><span class="codelink"><a href="oauth2client.client-pysrc.html#Storage">source code</a></span></p> | 
|  | <center> | 
|  | <center>  <map id="class_hierarchy_for_storage" name="class_hierarchy_for_storage"> | 
|  | <area shape="rect" href="oauth2client.client.Storage-class.html" title="Storage" alt="" coords="5,5,72,32"/> | 
|  | </map> | 
|  | <img src="class_hierarchy_for_storage.gif" alt='' usemap="#class_hierarchy_for_storage" ismap="ismap" class="graph-without-title" /> | 
|  | </center> | 
|  | </center> | 
|  | <hr /> | 
|  | <pre class="literalblock"> | 
|  | Base class for all Storage objects. | 
|  |  | 
|  | Store and retrieve a single credential.  This class supports locking | 
|  | such that multiple processes and threads can operate on a single | 
|  | store. | 
|  |  | 
|  | </pre> | 
|  |  | 
|  | <!-- ==================== INSTANCE METHODS ==================== --> | 
|  | <a name="section-InstanceMethods"></a> | 
|  | <table class="summary" border="1" cellpadding="3" | 
|  | cellspacing="0" width="100%" bgcolor="white"> | 
|  | <tr bgcolor="#70b0f0" class="table-header"> | 
|  | <td colspan="2" class="table-header"> | 
|  | <table border="0" cellpadding="0" cellspacing="0" width="100%"> | 
|  | <tr valign="top"> | 
|  | <td align="left"><span class="table-header">Instance Methods</span></td> | 
|  | <td align="right" valign="top" | 
|  | ><span class="options">[<a href="#section-InstanceMethods" | 
|  | class="privatelink" onclick="toggle_private();" | 
|  | >hide private</a>]</span></td> | 
|  | </tr> | 
|  | </table> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="15%" align="right" valign="top" class="summary"> | 
|  | <span class="summary-type"> </span> | 
|  | </td><td class="summary"> | 
|  | <table width="100%" cellpadding="0" cellspacing="0" border="0"> | 
|  | <tr> | 
|  | <td><span class="summary-sig"><a href="oauth2client.client.Storage-class.html#acquire_lock" class="summary-sig-name">acquire_lock</a>(<span class="summary-sig-arg">self</span>)</span><br /> | 
|  | Acquires any lock necessary to access this Storage.</td> | 
|  | <td align="right" valign="top"> | 
|  | <span class="codelink"><a href="oauth2client.client-pysrc.html#Storage.acquire_lock">source code</a></span> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="15%" align="right" valign="top" class="summary"> | 
|  | <span class="summary-type"> </span> | 
|  | </td><td class="summary"> | 
|  | <table width="100%" cellpadding="0" cellspacing="0" border="0"> | 
|  | <tr> | 
|  | <td><span class="summary-sig"><a href="oauth2client.client.Storage-class.html#release_lock" class="summary-sig-name">release_lock</a>(<span class="summary-sig-arg">self</span>)</span><br /> | 
|  | Release the Storage lock.</td> | 
|  | <td align="right" valign="top"> | 
|  | <span class="codelink"><a href="oauth2client.client-pysrc.html#Storage.release_lock">source code</a></span> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="15%" align="right" valign="top" class="summary"> | 
|  | <span class="summary-type"> </span> | 
|  | </td><td class="summary"> | 
|  | <table width="100%" cellpadding="0" cellspacing="0" border="0"> | 
|  | <tr> | 
|  | <td><span class="summary-sig"><a href="oauth2client.client.Storage-class.html#locked_get" class="summary-sig-name">locked_get</a>(<span class="summary-sig-arg">self</span>)</span><br /> | 
|  | Retrieve credential.</td> | 
|  | <td align="right" valign="top"> | 
|  | <span class="codelink"><a href="oauth2client.client-pysrc.html#Storage.locked_get">source code</a></span> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="15%" align="right" valign="top" class="summary"> | 
|  | <span class="summary-type"> </span> | 
|  | </td><td class="summary"> | 
|  | <table width="100%" cellpadding="0" cellspacing="0" border="0"> | 
|  | <tr> | 
|  | <td><span class="summary-sig"><a href="oauth2client.client.Storage-class.html#locked_put" class="summary-sig-name">locked_put</a>(<span class="summary-sig-arg">self</span>, | 
|  | <span class="summary-sig-arg">credentials</span>)</span><br /> | 
|  | Write a credential.</td> | 
|  | <td align="right" valign="top"> | 
|  | <span class="codelink"><a href="oauth2client.client-pysrc.html#Storage.locked_put">source code</a></span> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="15%" align="right" valign="top" class="summary"> | 
|  | <span class="summary-type"> </span> | 
|  | </td><td class="summary"> | 
|  | <table width="100%" cellpadding="0" cellspacing="0" border="0"> | 
|  | <tr> | 
|  | <td><span class="summary-sig"><a href="oauth2client.client.Storage-class.html#locked_delete" class="summary-sig-name">locked_delete</a>(<span class="summary-sig-arg">self</span>)</span><br /> | 
|  | Delete a credential.</td> | 
|  | <td align="right" valign="top"> | 
|  | <span class="codelink"><a href="oauth2client.client-pysrc.html#Storage.locked_delete">source code</a></span> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="15%" align="right" valign="top" class="summary"> | 
|  | <span class="summary-type"> </span> | 
|  | </td><td class="summary"> | 
|  | <table width="100%" cellpadding="0" cellspacing="0" border="0"> | 
|  | <tr> | 
|  | <td><span class="summary-sig"><a href="oauth2client.client.Storage-class.html#get" class="summary-sig-name">get</a>(<span class="summary-sig-arg">self</span>)</span><br /> | 
|  | Retrieve credential.</td> | 
|  | <td align="right" valign="top"> | 
|  | <span class="codelink"><a href="oauth2client.client-pysrc.html#Storage.get">source code</a></span> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="15%" align="right" valign="top" class="summary"> | 
|  | <span class="summary-type"> </span> | 
|  | </td><td class="summary"> | 
|  | <table width="100%" cellpadding="0" cellspacing="0" border="0"> | 
|  | <tr> | 
|  | <td><span class="summary-sig"><a href="oauth2client.client.Storage-class.html#put" class="summary-sig-name">put</a>(<span class="summary-sig-arg">self</span>, | 
|  | <span class="summary-sig-arg">credentials</span>)</span><br /> | 
|  | Write a credential.</td> | 
|  | <td align="right" valign="top"> | 
|  | <span class="codelink"><a href="oauth2client.client-pysrc.html#Storage.put">source code</a></span> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td width="15%" align="right" valign="top" class="summary"> | 
|  | <span class="summary-type"> </span> | 
|  | </td><td class="summary"> | 
|  | <table width="100%" cellpadding="0" cellspacing="0" border="0"> | 
|  | <tr> | 
|  | <td><span class="summary-sig"><a href="oauth2client.client.Storage-class.html#delete" class="summary-sig-name">delete</a>(<span class="summary-sig-arg">self</span>)</span><br /> | 
|  | Delete credential.</td> | 
|  | <td align="right" valign="top"> | 
|  | <span class="codelink"><a href="oauth2client.client-pysrc.html#Storage.delete">source code</a></span> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2" class="summary"> | 
|  | <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>: | 
|  | <code>__delattr__</code>, | 
|  | <code>__format__</code>, | 
|  | <code>__getattribute__</code>, | 
|  | <code>__hash__</code>, | 
|  | <code>__init__</code>, | 
|  | <code>__new__</code>, | 
|  | <code>__reduce__</code>, | 
|  | <code>__reduce_ex__</code>, | 
|  | <code>__repr__</code>, | 
|  | <code>__setattr__</code>, | 
|  | <code>__sizeof__</code>, | 
|  | <code>__str__</code>, | 
|  | <code>__subclasshook__</code> | 
|  | </p> | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  | <!-- ==================== PROPERTIES ==================== --> | 
|  | <a name="section-Properties"></a> | 
|  | <table class="summary" border="1" cellpadding="3" | 
|  | cellspacing="0" width="100%" bgcolor="white"> | 
|  | <tr bgcolor="#70b0f0" class="table-header"> | 
|  | <td colspan="2" class="table-header"> | 
|  | <table border="0" cellpadding="0" cellspacing="0" width="100%"> | 
|  | <tr valign="top"> | 
|  | <td align="left"><span class="table-header">Properties</span></td> | 
|  | <td align="right" valign="top" | 
|  | ><span class="options">[<a href="#section-Properties" | 
|  | class="privatelink" onclick="toggle_private();" | 
|  | >hide private</a>]</span></td> | 
|  | </tr> | 
|  | </table> | 
|  | </td> | 
|  | </tr> | 
|  | <tr> | 
|  | <td colspan="2" class="summary"> | 
|  | <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>: | 
|  | <code>__class__</code> | 
|  | </p> | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  | <!-- ==================== METHOD DETAILS ==================== --> | 
|  | <a name="section-MethodDetails"></a> | 
|  | <table class="details" border="1" cellpadding="3" | 
|  | cellspacing="0" width="100%" bgcolor="white"> | 
|  | <tr bgcolor="#70b0f0" class="table-header"> | 
|  | <td colspan="2" class="table-header"> | 
|  | <table border="0" cellpadding="0" cellspacing="0" width="100%"> | 
|  | <tr valign="top"> | 
|  | <td align="left"><span class="table-header">Method Details</span></td> | 
|  | <td align="right" valign="top" | 
|  | ><span class="options">[<a href="#section-MethodDetails" | 
|  | class="privatelink" onclick="toggle_private();" | 
|  | >hide private</a>]</span></td> | 
|  | </tr> | 
|  | </table> | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  | <a name="acquire_lock"></a> | 
|  | <div> | 
|  | <table class="details" border="1" cellpadding="3" | 
|  | cellspacing="0" width="100%" bgcolor="white"> | 
|  | <tr><td> | 
|  | <table width="100%" cellpadding="0" cellspacing="0" border="0"> | 
|  | <tr valign="top"><td> | 
|  | <h3 class="epydoc"><span class="sig"><span class="sig-name">acquire_lock</span>(<span class="sig-arg">self</span>)</span> | 
|  | </h3> | 
|  | </td><td align="right" valign="top" | 
|  | ><span class="codelink"><a href="oauth2client.client-pysrc.html#Storage.acquire_lock">source code</a></span>  | 
|  | </td> | 
|  | </tr></table> | 
|  |  | 
|  | <pre class="literalblock"> | 
|  | Acquires any lock necessary to access this Storage. | 
|  |  | 
|  | This lock is not reentrant. | 
|  |  | 
|  | </pre> | 
|  | <dl class="fields"> | 
|  | </dl> | 
|  | </td></tr></table> | 
|  | </div> | 
|  | <a name="release_lock"></a> | 
|  | <div> | 
|  | <table class="details" border="1" cellpadding="3" | 
|  | cellspacing="0" width="100%" bgcolor="white"> | 
|  | <tr><td> | 
|  | <table width="100%" cellpadding="0" cellspacing="0" border="0"> | 
|  | <tr valign="top"><td> | 
|  | <h3 class="epydoc"><span class="sig"><span class="sig-name">release_lock</span>(<span class="sig-arg">self</span>)</span> | 
|  | </h3> | 
|  | </td><td align="right" valign="top" | 
|  | ><span class="codelink"><a href="oauth2client.client-pysrc.html#Storage.release_lock">source code</a></span>  | 
|  | </td> | 
|  | </tr></table> | 
|  |  | 
|  | <pre class="literalblock"> | 
|  | Release the Storage lock. | 
|  |  | 
|  | Trying to release a lock that isn't held will result in a | 
|  | RuntimeError. | 
|  |  | 
|  | </pre> | 
|  | <dl class="fields"> | 
|  | </dl> | 
|  | </td></tr></table> | 
|  | </div> | 
|  | <a name="locked_get"></a> | 
|  | <div> | 
|  | <table class="details" border="1" cellpadding="3" | 
|  | cellspacing="0" width="100%" bgcolor="white"> | 
|  | <tr><td> | 
|  | <table width="100%" cellpadding="0" cellspacing="0" border="0"> | 
|  | <tr valign="top"><td> | 
|  | <h3 class="epydoc"><span class="sig"><span class="sig-name">locked_get</span>(<span class="sig-arg">self</span>)</span> | 
|  | </h3> | 
|  | </td><td align="right" valign="top" | 
|  | ><span class="codelink"><a href="oauth2client.client-pysrc.html#Storage.locked_get">source code</a></span>  | 
|  | </td> | 
|  | </tr></table> | 
|  |  | 
|  | <pre class="literalblock"> | 
|  | Retrieve credential. | 
|  |  | 
|  | The Storage lock must be held when this is called. | 
|  |  | 
|  | Returns: | 
|  | oauth2client.client.Credentials | 
|  |  | 
|  | </pre> | 
|  | <dl class="fields"> | 
|  | </dl> | 
|  | </td></tr></table> | 
|  | </div> | 
|  | <a name="locked_put"></a> | 
|  | <div> | 
|  | <table class="details" border="1" cellpadding="3" | 
|  | cellspacing="0" width="100%" bgcolor="white"> | 
|  | <tr><td> | 
|  | <table width="100%" cellpadding="0" cellspacing="0" border="0"> | 
|  | <tr valign="top"><td> | 
|  | <h3 class="epydoc"><span class="sig"><span class="sig-name">locked_put</span>(<span class="sig-arg">self</span>, | 
|  | <span class="sig-arg">credentials</span>)</span> | 
|  | </h3> | 
|  | </td><td align="right" valign="top" | 
|  | ><span class="codelink"><a href="oauth2client.client-pysrc.html#Storage.locked_put">source code</a></span>  | 
|  | </td> | 
|  | </tr></table> | 
|  |  | 
|  | <pre class="literalblock"> | 
|  | Write a credential. | 
|  |  | 
|  | The Storage lock must be held when this is called. | 
|  |  | 
|  | Args: | 
|  | credentials: Credentials, the credentials to store. | 
|  |  | 
|  | </pre> | 
|  | <dl class="fields"> | 
|  | </dl> | 
|  | </td></tr></table> | 
|  | </div> | 
|  | <a name="locked_delete"></a> | 
|  | <div> | 
|  | <table class="details" border="1" cellpadding="3" | 
|  | cellspacing="0" width="100%" bgcolor="white"> | 
|  | <tr><td> | 
|  | <table width="100%" cellpadding="0" cellspacing="0" border="0"> | 
|  | <tr valign="top"><td> | 
|  | <h3 class="epydoc"><span class="sig"><span class="sig-name">locked_delete</span>(<span class="sig-arg">self</span>)</span> | 
|  | </h3> | 
|  | </td><td align="right" valign="top" | 
|  | ><span class="codelink"><a href="oauth2client.client-pysrc.html#Storage.locked_delete">source code</a></span>  | 
|  | </td> | 
|  | </tr></table> | 
|  |  | 
|  | <pre class="literalblock"> | 
|  | Delete a credential. | 
|  |  | 
|  | The Storage lock must be held when this is called. | 
|  |  | 
|  | </pre> | 
|  | <dl class="fields"> | 
|  | </dl> | 
|  | </td></tr></table> | 
|  | </div> | 
|  | <a name="get"></a> | 
|  | <div> | 
|  | <table class="details" border="1" cellpadding="3" | 
|  | cellspacing="0" width="100%" bgcolor="white"> | 
|  | <tr><td> | 
|  | <table width="100%" cellpadding="0" cellspacing="0" border="0"> | 
|  | <tr valign="top"><td> | 
|  | <h3 class="epydoc"><span class="sig"><span class="sig-name">get</span>(<span class="sig-arg">self</span>)</span> | 
|  | </h3> | 
|  | </td><td align="right" valign="top" | 
|  | ><span class="codelink"><a href="oauth2client.client-pysrc.html#Storage.get">source code</a></span>  | 
|  | </td> | 
|  | </tr></table> | 
|  |  | 
|  | <pre class="literalblock"> | 
|  | Retrieve credential. | 
|  |  | 
|  | The Storage lock must *not* be held when this is called. | 
|  |  | 
|  | Returns: | 
|  | oauth2client.client.Credentials | 
|  |  | 
|  | </pre> | 
|  | <dl class="fields"> | 
|  | </dl> | 
|  | </td></tr></table> | 
|  | </div> | 
|  | <a name="put"></a> | 
|  | <div> | 
|  | <table class="details" border="1" cellpadding="3" | 
|  | cellspacing="0" width="100%" bgcolor="white"> | 
|  | <tr><td> | 
|  | <table width="100%" cellpadding="0" cellspacing="0" border="0"> | 
|  | <tr valign="top"><td> | 
|  | <h3 class="epydoc"><span class="sig"><span class="sig-name">put</span>(<span class="sig-arg">self</span>, | 
|  | <span class="sig-arg">credentials</span>)</span> | 
|  | </h3> | 
|  | </td><td align="right" valign="top" | 
|  | ><span class="codelink"><a href="oauth2client.client-pysrc.html#Storage.put">source code</a></span>  | 
|  | </td> | 
|  | </tr></table> | 
|  |  | 
|  | <pre class="literalblock"> | 
|  | Write a credential. | 
|  |  | 
|  | The Storage lock must be held when this is called. | 
|  |  | 
|  | Args: | 
|  | credentials: Credentials, the credentials to store. | 
|  |  | 
|  | </pre> | 
|  | <dl class="fields"> | 
|  | </dl> | 
|  | </td></tr></table> | 
|  | </div> | 
|  | <a name="delete"></a> | 
|  | <div> | 
|  | <table class="details" border="1" cellpadding="3" | 
|  | cellspacing="0" width="100%" bgcolor="white"> | 
|  | <tr><td> | 
|  | <table width="100%" cellpadding="0" cellspacing="0" border="0"> | 
|  | <tr valign="top"><td> | 
|  | <h3 class="epydoc"><span class="sig"><span class="sig-name">delete</span>(<span class="sig-arg">self</span>)</span> | 
|  | </h3> | 
|  | </td><td align="right" valign="top" | 
|  | ><span class="codelink"><a href="oauth2client.client-pysrc.html#Storage.delete">source code</a></span>  | 
|  | </td> | 
|  | </tr></table> | 
|  |  | 
|  | <pre class="literalblock"> | 
|  | Delete credential. | 
|  |  | 
|  | Frees any resources associated with storing the credential. | 
|  | The Storage lock must *not* be held when this is called. | 
|  |  | 
|  | Returns: | 
|  | None | 
|  |  | 
|  | </pre> | 
|  | <dl class="fields"> | 
|  | </dl> | 
|  | </td></tr></table> | 
|  | </div> | 
|  | <br /> | 
|  | <!-- ==================== NAVIGATION BAR ==================== --> | 
|  | <table class="navbar" border="0" width="100%" cellpadding="0" | 
|  | bgcolor="#a0c0ff" cellspacing="0"> | 
|  | <tr valign="middle"> | 
|  |  | 
|  | <!-- Tree link --> | 
|  | <th>   <a | 
|  | href="module-tree.html">Trees</a>   </th> | 
|  |  | 
|  | <!-- Index link --> | 
|  | <th>   <a | 
|  | href="identifier-index.html">Indices</a>   </th> | 
|  |  | 
|  | <!-- Help link --> | 
|  | <th>   <a | 
|  | href="help.html">Help</a>   </th> | 
|  |  | 
|  | <th class="navbar" width="100%"></th> | 
|  | </tr> | 
|  | </table> | 
|  | <table border="0" cellpadding="0" cellspacing="0" width="100%%"> | 
|  | <tr> | 
|  | <td align="left" class="footer"> | 
|  | Generated by Epydoc 3.0.1 on Tue Nov  6 12:07:15 2012 | 
|  | </td> | 
|  | <td align="right" class="footer"> | 
|  | <a target="mainFrame" href="http://epydoc.sourceforge.net" | 
|  | >http://epydoc.sourceforge.net</a> | 
|  | </td> | 
|  | </tr> | 
|  | </table> | 
|  |  | 
|  | <script type="text/javascript"> | 
|  | <!-- | 
|  | // Private objects are initially displayed (because if | 
|  | // javascript is turned off then we want them to be | 
|  | // visible); but by default, we want to hide them.  So hide | 
|  | // them unless we have a cookie that says to show them. | 
|  | checkCookie(); | 
|  | // --> | 
|  | </script> | 
|  | </body> | 
|  | </html> |