diff mayachemtools/docs/modules/html/code/MACCSKeys.html @ 0:73ae111cf86f draft

Uploaded
author deepakjadmin
date Wed, 20 Jan 2016 11:55:01 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mayachemtools/docs/modules/html/code/MACCSKeys.html	Wed Jan 20 11:55:01 2016 -0500
@@ -0,0 +1,8236 @@
+<html>
+<head>
+<title>MayaChemTools:Code:Fingerprints::MACCSKeys.pm</title>
+<meta http-equiv="content-type" content="text/html;charset=utf-8">
+<link rel="stylesheet" type="text/css" href="../../../css/MayaChemToolsCode.css">
+</head>
+<body leftmargin="20" rightmargin="20" topmargin="10" bottommargin="10">
+<br/>
+<center>
+<a href="http://www.mayachemtools.org" title="MayaChemTools Home"><img src="../../../images/MayaChemToolsLogo.gif" border="0" alt="MayaChemTools"></a>
+</center>
+<br/>
+<pre>
+<a name="package-Fingerprints::MACCSKeys-"></a>   1 <span class="k">package </span><span class="i">Fingerprints::MACCSKeys</span><span class="sc">;</span>
+   2 <span class="c">#</span>
+   3 <span class="c"># $RCSfile: MACCSKeys.pm,v $</span>
+   4 <span class="c"># $Date: 2015/02/28 20:48:54 $</span>
+   5 <span class="c"># $Revision: 1.33 $</span>
+   6 <span class="c">#</span>
+   7 <span class="c"># Author: Manish Sud &lt;msud@san.rr.com&gt;</span>
+   8 <span class="c">#</span>
+   9 <span class="c"># Copyright (C) 2015 Manish Sud. All rights reserved.</span>
+  10 <span class="c">#</span>
+  11 <span class="c"># This file is part of MayaChemTools.</span>
+  12 <span class="c">#</span>
+  13 <span class="c"># MayaChemTools is free software; you can redistribute it and/or modify it under</span>
+  14 <span class="c"># the terms of the GNU Lesser General Public License as published by the Free</span>
+  15 <span class="c"># Software Foundation; either version 3 of the License, or (at your option) any</span>
+  16 <span class="c"># later version.</span>
+  17 <span class="c">#</span>
+  18 <span class="c"># MayaChemTools is distributed in the hope that it will be useful, but without</span>
+  19 <span class="c"># any warranty; without even the implied warranty of merchantability of fitness</span>
+  20 <span class="c"># for a particular purpose.  See the GNU Lesser General Public License for more</span>
+  21 <span class="c"># details.</span>
+  22 <span class="c">#</span>
+  23 <span class="c"># You should have received a copy of the GNU Lesser General Public License</span>
+  24 <span class="c"># along with MayaChemTools; if not, see &lt;http://www.gnu.org/licenses/&gt; or</span>
+  25 <span class="c"># write to the Free Software Foundation Inc., 59 Temple Place, Suite 330,</span>
+  26 <span class="c"># Boston, MA, 02111-1307, USA.</span>
+  27 <span class="c">#</span>
+  28 
+  29 <span class="k">use</span> <span class="w">strict</span><span class="sc">;</span>
+  30 <span class="k">use</span> <span class="w">Carp</span><span class="sc">;</span>
+  31 <span class="k">use</span> <span class="w">Exporter</span><span class="sc">;</span>
+  32 <span class="k">use</span> <span class="w">Fingerprints::Fingerprints</span><span class="sc">;</span>
+  33 <span class="k">use</span> <span class="w">TextUtil</span> <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+  34 <span class="k">use</span> <span class="w">Molecule</span><span class="sc">;</span>
+  35 <span class="k">use</span> <span class="w">PeriodicTable</span><span class="sc">;</span>
+  36 
+  37 <span class="k">use</span> <span class="w">vars</span> <span class="q">qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS)</span><span class="sc">;</span>
+  38 
+  39 <span class="i">@ISA</span> = <span class="q">qw(Fingerprints::Fingerprints Exporter)</span><span class="sc">;</span>
+  40 <span class="i">@EXPORT</span> = <span class="q">qw()</span><span class="sc">;</span>
+  41 <span class="i">@EXPORT_OK</span> = <span class="q">qw()</span><span class="sc">;</span>
+  42 
+  43 <span class="i">%EXPORT_TAGS</span> = <span class="s">(</span><span class="w">all</span>  <span class="cm">=&gt;</span> <span class="s">[</span><span class="i">@EXPORT</span><span class="cm">,</span> <span class="i">@EXPORT_OK</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
+  44 
+  45 <span class="c"># Setup class variables...</span>
+  46 <span class="k">my</span><span class="s">(</span><span class="i">$ClassName</span><span class="s">)</span><span class="sc">;</span>
+  47 <span class="i">_InitializeClass</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+  48 
+  49 <span class="c"># Overload Perl functions...</span>
+  50 <span class="k">use</span> <span class="w">overload</span> <span class="q">&#39;&quot;&quot;&#39;</span> <span class="cm">=&gt;</span> <span class="q">&#39;StringifyMACCSKeys&#39;</span><span class="sc">;</span>
+  51 
+  52 <span class="c"># Class constructor...</span>
+<a name="new-"></a>  53 <span class="k">sub </span><span class="m">new</span> <span class="s">{</span>
+  54   <span class="k">my</span><span class="s">(</span><span class="i">$Class</span><span class="cm">,</span> <span class="i">%NamesAndValues</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+  55 
+  56   <span class="c"># Initialize object...</span>
+  57   <span class="k">my</span> <span class="i">$This</span> = <span class="i">$Class</span><span class="i">-&gt;SUPER::new</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+  58   <span class="k">bless</span> <span class="i">$This</span><span class="cm">,</span> <span class="k">ref</span><span class="s">(</span><span class="i">$Class</span><span class="s">)</span> || <span class="i">$Class</span><span class="sc">;</span>
+  59   <span class="i">$This</span><span class="i">-&gt;_InitializeMACCSKeys</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+  60 
+  61   <span class="i">$This</span><span class="i">-&gt;_InitializeMACCSKeysProperties</span><span class="s">(</span><span class="i">%NamesAndValues</span><span class="s">)</span><span class="sc">;</span>
+  62 
+  63   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
+  64 <span class="s">}</span>
+  65 
+  66 <span class="c"># Initialize object data...</span>
+  67 <span class="c">#</span>
+<a name="_InitializeMACCSKeys-"></a>  68 <span class="k">sub </span><span class="m">_InitializeMACCSKeys</span> <span class="s">{</span>
+  69   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+  70 
+  71   <span class="c"># Type of fingerprint to generate:</span>
+  72   <span class="c">#</span>
+  73   <span class="c"># MACCSKeyBits - A bit vector indicating presence/absence of keys</span>
+  74   <span class="c"># MACCSKeyCount - A vector containing count of keys</span>
+  75   <span class="c">#</span>
+  76   <span class="i">$This</span>-&gt;{<span class="w">Type</span>} = <span class="q">&#39;&#39;</span><span class="sc">;</span>
+  77   <span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>} = <span class="q">&#39;&#39;</span><span class="sc">;</span>
+  78 
+  79   <span class="c"># Size of key set: 166 or 322...</span>
+  80   <span class="i">$This</span>-&gt;{<span class="w">Size</span>} = <span class="q">&#39;&#39;</span><span class="sc">;</span>
+  81 <span class="s">}</span>
+  82 
+  83 <span class="c"># Initialize class ...</span>
+<a name="_InitializeClass-"></a>  84 <span class="k">sub </span><span class="m">_InitializeClass</span> <span class="s">{</span>
+  85   <span class="c">#Class name...</span>
+  86   <span class="i">$ClassName</span> = <span class="w">__PACKAGE__</span><span class="sc">;</span>
+  87 <span class="s">}</span>
+  88 
+  89 <span class="c"># Initialize object properties....</span>
+<a name="_InitializeMACCSKeysProperties-"></a>  90 <span class="k">sub </span><span class="m">_InitializeMACCSKeysProperties</span> <span class="s">{</span>
+  91   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">%NamesAndValues</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+  92 
+  93   <span class="k">my</span><span class="s">(</span><span class="i">$Name</span><span class="cm">,</span> <span class="i">$Value</span><span class="cm">,</span> <span class="i">$MethodName</span><span class="s">)</span><span class="sc">;</span>
+  94   <span class="k">while</span> <span class="s">(</span><span class="s">(</span><span class="i">$Name</span><span class="cm">,</span> <span class="i">$Value</span><span class="s">)</span> = <span class="k">each</span>  <span class="i">%NamesAndValues</span><span class="s">)</span> <span class="s">{</span>
+  95     <span class="i">$MethodName</span> = <span class="q">&quot;Set${Name}&quot;</span><span class="sc">;</span>
+  96     <span class="i">$This</span><span class="i">-&gt;$MethodName</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="sc">;</span>
+  97   <span class="s">}</span>
+  98 
+  99   <span class="c"># Make sure molecule object was specified...</span>
+ 100   <span class="k">if</span> <span class="s">(</span>!<span class="k">exists</span> <span class="i">$NamesAndValues</span>{<span class="w">Molecule</span>}<span class="s">)</span> <span class="s">{</span>
+ 101     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;New: Object can&#39;t be instantiated without specifying molecule...&quot;</span><span class="sc">;</span>
+ 102   <span class="s">}</span>
+ 103 
+ 104   <span class="c"># Make sure type and size were specified...</span>
+ 105   <span class="k">if</span> <span class="s">(</span>!<span class="k">exists</span> <span class="i">$NamesAndValues</span>{<span class="w">Type</span>}<span class="s">)</span> <span class="s">{</span>
+ 106     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;New: Object can&#39;t be instantiated without specifying type...&quot;</span><span class="sc">;</span>
+ 107   <span class="s">}</span>
+ 108   <span class="k">if</span> <span class="s">(</span>!<span class="k">exists</span> <span class="i">$NamesAndValues</span>{<span class="w">Size</span>}<span class="s">)</span> <span class="s">{</span>
+ 109     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;New: Object can&#39;t be instantiated without specifying size...&quot;</span><span class="sc">;</span>
+ 110   <span class="s">}</span>
+ 111 
+ 112   <span class="c"># Make sure approriate size is specified...</span>
+ 113   <span class="k">if</span> <span class="s">(</span><span class="i">$NamesAndValues</span>{<span class="w">Size</span>} !~ <span class="q">/^(166|322)$/</span><span class="s">)</span> <span class="s">{</span>
+ 114     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;New: The current release of MayaChemTools doesn&#39;t support MDL MACCS $NamesAndValues{Size} keys...&quot;</span><span class="sc">;</span>
+ 115   <span class="s">}</span>
+ 116 
+ 117   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">Type</span>} =~ <span class="q">/^MACCSKeyBits$/i</span><span class="s">)</span> <span class="s">{</span>
+ 118     <span class="i">$This</span><span class="i">-&gt;_InitializeMACCSKeyBits</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 119   <span class="s">}</span>
+ 120   <span class="k">elsif</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">Type</span>} =~ <span class="q">/^MACCSKeyCount$/i</span><span class="s">)</span> <span class="s">{</span>
+ 121     <span class="i">$This</span><span class="i">-&gt;_InitializeMACCSKeyCounts</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 122   <span class="s">}</span>
+ 123   <span class="k">else</span> <span class="s">{</span>
+ 124     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;_InitializeMACCSKeysProperties: Unknown MACCS keys type: $This-&gt;{Type}; Supported type keys: MACCSKeyBits or MACCSKeyCount......&quot;</span><span class="sc">;</span>
+ 125   <span class="s">}</span>
+ 126 
+ 127   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
+ 128 <span class="s">}</span>
+ 129 
+ 130 <span class="c"># Initialize MACCS key bits...</span>
+ 131 <span class="c">#</span>
+<a name="_InitializeMACCSKeyBits-"></a> 132 <span class="k">sub </span><span class="m">_InitializeMACCSKeyBits</span> <span class="s">{</span>
+ 133   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 134 
+ 135   <span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>} = <span class="n">1</span><span class="sc">;</span>
+ 136 
+ 137   <span class="c"># Vector type...</span>
+ 138   <span class="i">$This</span>-&gt;{<span class="w">VectorType</span>} = <span class="q">&#39;FingerprintsBitVector&#39;</span><span class="sc">;</span>
+ 139 
+ 140   <span class="i">$This</span><span class="i">-&gt;_InitializeFingerprintsBitVector</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 141 
+ 142   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
+ 143 <span class="s">}</span>
+ 144 
+ 145 <span class="c"># Initialize MACCS key counts...</span>
+ 146 <span class="c">#</span>
+<a name="_InitializeMACCSKeyCounts-"></a> 147 <span class="k">sub </span><span class="m">_InitializeMACCSKeyCounts</span> <span class="s">{</span>
+ 148   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 149 
+ 150   <span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>} = <span class="n">0</span><span class="sc">;</span>
+ 151 
+ 152   <span class="c"># Vector type and type of values...</span>
+ 153   <span class="i">$This</span>-&gt;{<span class="w">VectorType</span>} = <span class="q">&#39;FingerprintsVector&#39;</span><span class="sc">;</span>
+ 154   <span class="i">$This</span>-&gt;{<span class="w">FingerprintsVectorType</span>} = <span class="q">&#39;OrderedNumericalValues&#39;</span><span class="sc">;</span>
+ 155 
+ 156   <span class="i">$This</span><span class="i">-&gt;_InitializeFingerprintsVector</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 157 
+ 158   <span class="c"># Initialize values to zero...</span>
+ 159   <span class="k">my</span><span class="s">(</span><span class="i">@Values</span><span class="s">)</span><span class="sc">;</span>
+ 160   <span class="i">@Values</span> = <span class="s">(</span><span class="n">0</span><span class="s">)</span> x <span class="i">$This</span>-&gt;{<span class="w">Size</span>}<span class="sc">;</span>
+ 161   <span class="i">$This</span>-&gt;{<span class="w">FingerprintsVector</span>}<span class="i">-&gt;AddValues</span><span class="s">(</span>\<span class="i">@Values</span><span class="s">)</span><span class="sc">;</span>
+ 162 
+ 163   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
+ 164 <span class="s">}</span>
+ 165 
+ 166 <span class="c"># Set type...</span>
+ 167 <span class="c">#</span>
+<a name="SetType-"></a> 168 <span class="k">sub </span><span class="m">SetType</span> <span class="s">{</span>
+ 169   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Type</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 170 
+ 171   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">Type</span>}<span class="s">)</span> <span class="s">{</span>
+ 172     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;SetType: Can&#39;t change type:  It&#39;s already set...&quot;</span><span class="sc">;</span>
+ 173   <span class="s">}</span>
+ 174 
+ 175   <span class="k">if</span> <span class="s">(</span><span class="i">$Type</span> =~ <span class="q">/^MACCSKeyBits$/i</span><span class="s">)</span> <span class="s">{</span>
+ 176     <span class="i">$This</span>-&gt;{<span class="w">Type</span>} = <span class="q">&#39;MACCSKeyBits&#39;</span><span class="sc">;</span><span class="sc">;</span>
+ 177     <span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>} = <span class="n">1</span><span class="sc">;</span>
+ 178   <span class="s">}</span>
+ 179   <span class="k">elsif</span> <span class="s">(</span><span class="i">$Type</span> =~ <span class="q">/^MACCSKeyCount$/i</span><span class="s">)</span> <span class="s">{</span>
+ 180     <span class="i">$This</span>-&gt;{<span class="w">Type</span>} = <span class="q">&#39;MACCSKeyCount&#39;</span><span class="sc">;</span><span class="sc">;</span>
+ 181     <span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>} = <span class="n">0</span><span class="sc">;</span>
+ 182   <span class="s">}</span>
+ 183   <span class="k">else</span> <span class="s">{</span>
+ 184     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;SetType: Unknown type MACCS keys: $Type; Supported type keys: MACCSKeyBits or MACCSKeyCount...&quot;</span><span class="sc">;</span>
+ 185   <span class="s">}</span>
+ 186   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
+ 187 <span class="s">}</span>
+ 188 
+ 189 <span class="c"># Set size...</span>
+ 190 <span class="c">#</span>
+<a name="SetSize-"></a> 191 <span class="k">sub </span><span class="m">SetSize</span> <span class="s">{</span>
+ 192   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Value</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 193 
+ 194   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">Size</span>}<span class="s">)</span> <span class="s">{</span>
+ 195     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;SetSize: Can&#39;t change size:  It&#39;s already set...&quot;</span><span class="sc">;</span>
+ 196   <span class="s">}</span>
+ 197   <span class="k">if</span> <span class="s">(</span>!<span class="i">TextUtil::IsPositiveInteger</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+ 198     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;SetSize: Size value, $Value, is not valid:  It must be a positive integer...&quot;</span><span class="sc">;</span>
+ 199   <span class="s">}</span>
+ 200   <span class="k">if</span> <span class="s">(</span><span class="i">$Value</span> !~ <span class="q">/^(166|322)/i</span><span class="s">)</span> <span class="s">{</span>
+ 201     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;Size: The current release of MayaChemTools doesn&#39;t support MDL MACCS $Value keys...&quot;</span><span class="sc">;</span>
+ 202   <span class="s">}</span>
+ 203   <span class="i">$This</span>-&gt;{<span class="w">Size</span>} = <span class="i">$Value</span><span class="sc">;</span>
+ 204 
+ 205   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
+ 206 <span class="s">}</span>
+ 207 
+ 208 <span class="c"># Generate description...</span>
+ 209 <span class="c">#</span>
+<a name="GetDescription-"></a> 210 <span class="k">sub </span><span class="m">GetDescription</span> <span class="s">{</span>
+ 211   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 212 
+ 213   <span class="c"># Is description explicity set?</span>
+ 214   <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$This</span>-&gt;{<span class="w">Description</span>}<span class="s">)</span> <span class="s">{</span>
+ 215     <span class="k">return</span> <span class="i">$This</span>-&gt;{<span class="w">Description</span>}<span class="sc">;</span>
+ 216   <span class="s">}</span>
+ 217 
+ 218   <span class="k">return</span> <span class="q">&quot;$This-&gt;{Type}&quot;</span><span class="sc">;</span>
+ 219 <span class="s">}</span>
+ 220 
+ 221 <span class="c"># Generate MDL MACCS keys..</span>
+ 222 <span class="c">#</span>
+<a name="GenerateMACCSKeys-"></a> 223 <span class="k">sub </span><span class="m">GenerateMACCSKeys</span> <span class="s">{</span>
+ 224   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 225 
+ 226   <span class="c"># Cache appropriate molecule data...</span>
+ 227   <span class="i">$This</span><span class="i">-&gt;_SetupMoleculeDataCache</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 228 
+ 229   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">Size</span>} == <span class="n">166</span><span class="s">)</span> <span class="s">{</span>
+ 230     <span class="i">$This</span><span class="i">-&gt;_GenerateMACCS166Keys</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 231   <span class="s">}</span>
+ 232   <span class="k">elsif</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">Size</span>} == <span class="n">322</span><span class="s">)</span> <span class="s">{</span>
+ 233     <span class="i">$This</span><span class="i">-&gt;_GenerateMACCS322Keys</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 234   <span class="s">}</span>
+ 235   <span class="k">else</span> <span class="s">{</span>
+ 236     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;GenerateMACCSKeys: The current release of MayaChemTools doesn&#39;t support MDL MACCS  $This-&gt;{Size} keys...&quot;</span><span class="sc">;</span>
+ 237   <span class="s">}</span>
+ 238 
+ 239   <span class="i">$This</span>-&gt;{<span class="w">FingerprintsGenerated</span>} = <span class="n">1</span><span class="sc">;</span>
+ 240 
+ 241   <span class="c"># Clear cached molecule data...</span>
+ 242   <span class="i">$This</span><span class="i">-&gt;_ClearMoleculeDataCache</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 243 
+ 244   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
+ 245 <span class="s">}</span>
+ 246 
+ 247 <span class="c"># Setup GenerateFingerprints method in order to be consistent with all other</span>
+ 248 <span class="c"># fingerprints classes implemented in the current release of MayaChemTools...</span>
+ 249 <span class="c">#</span>
+<a name="GenerateFingerprints-"></a> 250 <span class="k">sub </span><span class="m">GenerateFingerprints</span> <span class="s">{</span>
+ 251   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 252 
+ 253   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;GenerateMACCSKeys</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 254 <span class="s">}</span>
+ 255 
+ 256 <span class="c"># Generate MDL MACCS 166 keys...</span>
+ 257 <span class="c">#</span>
+ 258 <span class="c"># Information on the 166 keys [ Ref. 45-47 ]:</span>
+ 259 <span class="c">#</span>
+ 260 <span class="c"># Atom symbols:</span>
+ 261 <span class="c">#</span>
+ 262 <span class="c"># A : Any valid perodic table element symbol</span>
+ 263 <span class="c"># Q  : Hetro atoms; any non-C or non-H atom</span>
+ 264 <span class="c"># X  : Halogens; F, Cl, Br, I</span>
+ 265 <span class="c"># Z  : Others; other than H, C, N, O, Si, P, S, F, Cl, Br, I</span>
+ 266 <span class="c">#</span>
+ 267 <span class="c"># Bond types:</span>
+ 268 <span class="c">#</span>
+ 269 <span class="c"># -  : Single</span>
+ 270 <span class="c"># =  : Double</span>
+ 271 <span class="c"># T  : Triple</span>
+ 272 <span class="c"># #  : Triple</span>
+ 273 <span class="c"># ~  : Single or double query bond</span>
+ 274 <span class="c"># %  : An aromatic query bond</span>
+ 275 <span class="c">#</span>
+ 276 <span class="c"># None : Any bond type; no explict bond specified</span>
+ 277 <span class="c">#</span>
+ 278 <span class="c"># $  : Ring bond; $ before a bond type specifies ring bond</span>
+ 279 <span class="c"># !  : Chain or non-ring bond; ! before a bond type specifies chain bond</span>
+ 280 <span class="c">#</span>
+ 281 <span class="c"># @  : A ring linkage and the number following it specifies the</span>
+ 282 <span class="c">#      atoms position in the line, thus @1 means linked back to the first atom in</span>
+ 283 <span class="c">#      the list.</span>
+ 284 <span class="c">#</span>
+ 285 <span class="c"># Aromatic: Kekule or Arom5</span>
+ 286 <span class="c">#</span>
+ 287 <span class="c"># Kekule: Bonds in 6-membered rings with alternalte single/double bonds or perimeter</span>
+ 288 <span class="c">#         bonds</span>
+ 289 <span class="c">#</span>
+ 290 <span class="c"># Arom5: Bonds in 5-membered rings with two double bonds and a hetro atom at</span>
+ 291 <span class="c">#        the apex of the ring.</span>
+ 292 <span class="c">#</span>
+ 293 <span class="c"># Index Key Description</span>
+ 294 <span class="c"># 1        ISOTOPE</span>
+ 295 <span class="c"># 2        103 &lt; ATOMIC NO. &lt; 256</span>
+ 296 <span class="c"># 3        GROUP IVA,VA,VIA PERIODS 4-6 (Ge...)</span>
+ 297 <span class="c"># 4        ACTINIDE</span>
+ 298 <span class="c"># 5        GROUP IIIB,IVB (Sc...)</span>
+ 299 <span class="c"># 6        LANTHANIDE</span>
+ 300 <span class="c"># 7        GROUP VB,VIB,VIIB (V...)</span>
+ 301 <span class="c"># 8        QAAA@1</span>
+ 302 <span class="c"># 9        GROUP VIII (Fe...)</span>
+ 303 <span class="c"># 10        GROUP IIA (ALKALINE EARTH)</span>
+ 304 <span class="c"># 11        4M RING</span>
+ 305 <span class="c"># 12        GROUP IB,IIB (Cu...)</span>
+ 306 <span class="c"># 13        ON(C)C</span>
+ 307 <span class="c"># 14        S-S</span>
+ 308 <span class="c"># 15        OC(O)O</span>
+ 309 <span class="c"># 16        QAA@1</span>
+ 310 <span class="c"># 17        CTC</span>
+ 311 <span class="c"># 18        GROUP IIIA (B...)</span>
+ 312 <span class="c"># 19        7M RING</span>
+ 313 <span class="c"># 20        SI</span>
+ 314 <span class="c"># 21        C=C(Q)Q</span>
+ 315 <span class="c"># 22        3M RING</span>
+ 316 <span class="c"># 23        NC(O)O</span>
+ 317 <span class="c"># 24        N-O</span>
+ 318 <span class="c"># 25        NC(N)N</span>
+ 319 <span class="c"># 26        C$=C($A)$A</span>
+ 320 <span class="c"># 27        I</span>
+ 321 <span class="c"># 28        QCH2Q</span>
+ 322 <span class="c"># 29        P</span>
+ 323 <span class="c"># 30        CQ(C)(C)A</span>
+ 324 <span class="c"># 31        QX</span>
+ 325 <span class="c"># 32        CSN</span>
+ 326 <span class="c"># 33        NS</span>
+ 327 <span class="c"># 34        CH2=A</span>
+ 328 <span class="c"># 35        GROUP IA (ALKALI METAL)</span>
+ 329 <span class="c"># 36        S HETEROCYCLE</span>
+ 330 <span class="c"># 37        NC(O)N</span>
+ 331 <span class="c"># 38        NC(C)N</span>
+ 332 <span class="c"># 39        OS(O)O</span>
+ 333 <span class="c"># 40        S-O</span>
+ 334 <span class="c"># 41        CTN</span>
+ 335 <span class="c"># 42        F</span>
+ 336 <span class="c"># 43        QHAQH</span>
+ 337 <span class="c"># 44        OTHER</span>
+ 338 <span class="c"># 45        C=CN</span>
+ 339 <span class="c"># 46        BR</span>
+ 340 <span class="c"># 47        SAN</span>
+ 341 <span class="c"># 48        OQ(O)O</span>
+ 342 <span class="c"># 49        CHARGE</span>
+ 343 <span class="c"># 50        C=C(C)C</span>
+ 344 <span class="c"># 51        CSO</span>
+ 345 <span class="c"># 52        NN</span>
+ 346 <span class="c"># 53        QHAAAQH</span>
+ 347 <span class="c"># 54        QHAAQH</span>
+ 348 <span class="c"># 55        OSO</span>
+ 349 <span class="c"># 56        ON(O)C</span>
+ 350 <span class="c"># 57        O HETEROCYCLE</span>
+ 351 <span class="c"># 58        QSQ</span>
+ 352 <span class="c"># 59        Snot%A%A</span>
+ 353 <span class="c"># 60        S=O</span>
+ 354 <span class="c"># 61        AS(A)A</span>
+ 355 <span class="c"># 62        A$A!A$A</span>
+ 356 <span class="c"># 63        N=O</span>
+ 357 <span class="c"># 64        A$A!S</span>
+ 358 <span class="c"># 65        C%N</span>
+ 359 <span class="c"># 66        CC(C)(C)A</span>
+ 360 <span class="c"># 67        QS</span>
+ 361 <span class="c"># 68        QHQH (&amp;...)</span>
+ 362 <span class="c"># 69        QQH</span>
+ 363 <span class="c"># 70        QNQ</span>
+ 364 <span class="c"># 71        NO</span>
+ 365 <span class="c"># 72        OAAO</span>
+ 366 <span class="c"># 73        S=A</span>
+ 367 <span class="c"># 74        CH3ACH3</span>
+ 368 <span class="c"># 75        A!N$A</span>
+ 369 <span class="c"># 76        C=C(A)A</span>
+ 370 <span class="c"># 77        NAN</span>
+ 371 <span class="c"># 78        C=N</span>
+ 372 <span class="c"># 79        NAAN</span>
+ 373 <span class="c"># 80        NAAAN</span>
+ 374 <span class="c"># 81        SA(A)A</span>
+ 375 <span class="c"># 82        ACH2QH</span>
+ 376 <span class="c"># 83         QAAAA@1</span>
+ 377 <span class="c"># 84        NH2</span>
+ 378 <span class="c"># 85        CN(C)C</span>
+ 379 <span class="c"># 86        CH2QCH2</span>
+ 380 <span class="c"># 87        X!A$A</span>
+ 381 <span class="c"># 88        S</span>
+ 382 <span class="c"># 89        OAAAO</span>
+ 383 <span class="c"># 90        QHAACH2A</span>
+ 384 <span class="c"># 91        QHAAACH2A</span>
+ 385 <span class="c"># 92        OC(N)C</span>
+ 386 <span class="c"># 93        QCH3</span>
+ 387 <span class="c"># 94        QN</span>
+ 388 <span class="c"># 95        NAAO</span>
+ 389 <span class="c"># 96        5M RING</span>
+ 390 <span class="c"># 97        NAAAO</span>
+ 391 <span class="c"># 98        QAAAAA@1</span>
+ 392 <span class="c"># 99        C=C</span>
+ 393 <span class="c"># 100        ACH2N</span>
+ 394 <span class="c"># 101        8M RING</span>
+ 395 <span class="c"># 102        QO</span>
+ 396 <span class="c"># 103        CL</span>
+ 397 <span class="c"># 104        QHACH2A</span>
+ 398 <span class="c"># 105        A$A($A)$A</span>
+ 399 <span class="c"># 106        QA(Q)Q</span>
+ 400 <span class="c"># 107        XA(A)A</span>
+ 401 <span class="c"># 108        CH3AAACH2A</span>
+ 402 <span class="c"># 109        ACH2O</span>
+ 403 <span class="c"># 110        NCO</span>
+ 404 <span class="c"># 111        NACH2A</span>
+ 405 <span class="c"># 112        AA(A)(A)A</span>
+ 406 <span class="c"># 113        Onot%A%A</span>
+ 407 <span class="c"># 114        CH3CH2A</span>
+ 408 <span class="c"># 115        CH3ACH2A</span>
+ 409 <span class="c"># 116        CH3AACH2A</span>
+ 410 <span class="c"># 117        NAO</span>
+ 411 <span class="c"># 118        ACH2CH2A &gt; 1</span>
+ 412 <span class="c"># 119        N=A</span>
+ 413 <span class="c"># 120        HETEROCYCLIC ATOM &gt; 1 (&amp;...)</span>
+ 414 <span class="c"># 121        N HETEROCYCLE</span>
+ 415 <span class="c"># 122        AN(A)A</span>
+ 416 <span class="c"># 123        OCO</span>
+ 417 <span class="c"># 124        QQ</span>
+ 418 <span class="c"># 125        AROMATIC RING &gt; 1</span>
+ 419 <span class="c"># 126        A!O!A</span>
+ 420 <span class="c"># 127        A$A!O &gt; 1 (&amp;...)</span>
+ 421 <span class="c"># 128        ACH2AAACH2A</span>
+ 422 <span class="c"># 129        ACH2AACH2A</span>
+ 423 <span class="c"># 130        QQ &gt; 1 (&amp;...)</span>
+ 424 <span class="c"># 131        QH &gt; 1</span>
+ 425 <span class="c"># 132        OACH2A</span>
+ 426 <span class="c"># 133        A$A!N</span>
+ 427 <span class="c"># 134        X (HALOGEN)</span>
+ 428 <span class="c"># 135        Nnot%A%A</span>
+ 429 <span class="c"># 136        O=A &gt; 1</span>
+ 430 <span class="c"># 137        HETEROCYCLE</span>
+ 431 <span class="c"># 138        QCH2A &gt; 1 (&amp;...)</span>
+ 432 <span class="c"># 139        OH</span>
+ 433 <span class="c"># 140        O &gt; 3 (&amp;...)</span>
+ 434 <span class="c"># 141        CH3 &gt; 2 (&amp;...)</span>
+ 435 <span class="c"># 142        N &gt; 1</span>
+ 436 <span class="c"># 143        A$A!O</span>
+ 437 <span class="c"># 144        Anot%A%Anot%A</span>
+ 438 <span class="c"># 145        6M RING &gt; 1</span>
+ 439 <span class="c"># 146        O &gt; 2</span>
+ 440 <span class="c"># 147        ACH2CH2A</span>
+ 441 <span class="c"># 148        AQ(A)A</span>
+ 442 <span class="c"># 149        CH3 &gt; 1</span>
+ 443 <span class="c"># 150        A!A$A!A</span>
+ 444 <span class="c"># 151        NH</span>
+ 445 <span class="c"># 152        OC(C)C</span>
+ 446 <span class="c"># 153        QCH2A</span>
+ 447 <span class="c"># 154        C=O</span>
+ 448 <span class="c"># 155        A!CH2!A</span>
+ 449 <span class="c"># 156        NA(A)A</span>
+ 450 <span class="c"># 157        C-O</span>
+ 451 <span class="c"># 158        C-N</span>
+ 452 <span class="c"># 159        O &gt; 1</span>
+ 453 <span class="c"># 160        CH3</span>
+ 454 <span class="c"># 161        N</span>
+ 455 <span class="c"># 162        AROMATIC</span>
+ 456 <span class="c"># 163        6M RING</span>
+ 457 <span class="c"># 164        O</span>
+ 458 <span class="c"># 165        RING</span>
+ 459 <span class="c"># 166         FRAGMENTS</span>
+ 460 <span class="c">#</span>
+<a name="_GenerateMACCS166Keys-"></a> 461 <span class="k">sub </span><span class="m">_GenerateMACCS166Keys</span> <span class="s">{</span>
+ 462   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 463   <span class="k">my</span><span class="s">(</span><span class="i">$KeyNum</span><span class="cm">,</span> <span class="i">$KeyIndex</span><span class="cm">,</span> <span class="i">$MethodName</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$SkipPosCheck</span><span class="s">)</span><span class="sc">;</span>
+ 464 
+ 465   <span class="i">$SkipPosCheck</span> = <span class="n">1</span><span class="sc">;</span>
+ 466 
+ 467   <span class="c"># Generate and set key values...</span>
+ 468   <span class="j">KEYNUM:</span> <span class="k">for</span> <span class="i">$KeyNum</span> <span class="s">(</span><span class="n">1</span> .. <span class="n">166</span><span class="s">)</span> <span class="s">{</span>
+ 469     <span class="i">$MethodName</span> = <span class="q">&quot;_Generate166KeySetKey${KeyNum}&quot;</span><span class="sc">;</span>
+ 470     <span class="i">$KeyValue</span> = <span class="i">$This</span><span class="i">-&gt;$MethodName</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 471 
+ 472     <span class="k">if</span> <span class="s">(</span>!<span class="i">$KeyValue</span><span class="s">)</span> <span class="s">{</span>
+ 473       <span class="k">next</span> <span class="j">KEYNUM</span><span class="sc">;</span>
+ 474     <span class="s">}</span>
+ 475     <span class="i">$KeyIndex</span> = <span class="i">$KeyNum</span> - <span class="n">1</span><span class="sc">;</span>
+ 476     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+ 477       <span class="i">$This</span>-&gt;{<span class="w">FingerprintsBitVector</span>}<span class="i">-&gt;SetBit</span><span class="s">(</span><span class="i">$KeyIndex</span><span class="cm">,</span> <span class="i">$SkipPosCheck</span><span class="s">)</span><span class="sc">;</span>
+ 478     <span class="s">}</span>
+ 479     <span class="k">else</span> <span class="s">{</span>
+ 480       <span class="i">$This</span>-&gt;{<span class="w">FingerprintsVector</span>}<span class="i">-&gt;SetValue</span><span class="s">(</span><span class="i">$KeyIndex</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$SkipPosCheck</span><span class="s">)</span><span class="sc">;</span>
+ 481     <span class="s">}</span>
+ 482   <span class="s">}</span>
+ 483 
+ 484   <span class="c"># Add key labels for MACCSKeyCount...</span>
+ 485   <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+ 486     <span class="i">$This</span><span class="i">-&gt;_SetMACCSKeyCountValueIDs</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 487   <span class="s">}</span>
+ 488 
+ 489   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
+ 490 <span class="s">}</span>
+ 491 
+ 492 <span class="c"># Generate MDL MACCS 322 keys...</span>
+ 493 <span class="c">#</span>
+ 494 <span class="c"># MDL MACCS 322 key set is defined in tables 1, 2 and 3 by: Joseph L. Durant; Burton A. Leland;</span>
+ 495 <span class="c"># Douglas R. Henry; James G. Nourse. Reoptimization of MDL Keys for Use in Drug Discovery [ Ref. 46 ].</span>
+ 496 <span class="c">#</span>
+ 497 <span class="c"># Atom symbols:</span>
+ 498 <span class="c">#</span>
+ 499 <span class="c"># A : Any valid perodic table element symbol</span>
+ 500 <span class="c"># Q  : Hetro atoms; any non-C or non-H atom</span>
+ 501 <span class="c"># X  : Others; other than H, C, N, O, Si, P, S, F, Cl, Br, I</span>
+ 502 <span class="c"># Z is neither defined nor used</span>
+ 503 <span class="c">#</span>
+ 504 <span class="c"># Atom symbol, X, used for 322 keys [ Ref 46 ] doesn&#39;t refer to Halogens as it does for 166 keys. In</span>
+ 505 <span class="c"># order to keep the definition of 322 keys consistent with the published definitions, the symbol X is</span>
+ 506 <span class="c"># used to imply &quot;others&quot; atoms, but it&#39;s internally mapped to symbol X as defined for 166 keys</span>
+ 507 <span class="c"># during the generation of key values.</span>
+ 508 <span class="c">#</span>
+ 509 <span class="c"># The keys include:</span>
+ 510 <span class="c">#</span>
+ 511 <span class="c"># o 26 atom properties of type P, as listed in Table 1</span>
+ 512 <span class="c"># o 32 one-atom environments, as listed in Table 3</span>
+ 513 <span class="c"># o 264 atom-bond-atom combinations listed in Table 4</span>
+ 514 <span class="c">#</span>
+ 515 <span class="c"># Total number of keys in three tables: 322</span>
+ 516 <span class="c">#</span>
+ 517 <span class="c"># Removal of two rare properties in Table 1 number 21 and 22 results in a 320 keyset.</span>
+ 518 <span class="c">#</span>
+ 519 <span class="c"># Atom properties-based keys (26):</span>
+ 520 <span class="c">#</span>
+ 521 <span class="c"># Index Description</span>
+ 522 <span class="c"># 1     A(AAA) or AA(A)A - atom with at least three neighbors</span>
+ 523 <span class="c"># 2     Q - heteroatom</span>
+ 524 <span class="c"># 3     Anot%not-A - atom involved in one or more multiple bonds, not aromatic</span>
+ 525 <span class="c"># 4     A(AAAA) or AA(A)(A)A - atom with at least four neighbors</span>
+ 526 <span class="c"># 5     A(QQ) or QA(Q) - atom with at least two heteroatom neighbors</span>
+ 527 <span class="c"># 6     A(QQQ) or QA(Q)Q - atom with at least three heteroatom neighbors</span>
+ 528 <span class="c"># 7     QH - heteroatom with at least one hydrogen attached</span>
+ 529 <span class="c"># 8     CH2(AA) or ACH2A - carbon with at least two single bonds and at least two hydrogens attached</span>
+ 530 <span class="c"># 9     CH3(A) or ACH3 - carbon with at least one single bond and at least three hydrogens attached</span>
+ 531 <span class="c"># 10    Halogen</span>
+ 532 <span class="c"># 11    A(-A-A-A) or A-A(-A)-A - atom has at least three single bonds</span>
+ 533 <span class="c"># 12    AAAAAA@1 &gt; 2 - atom is in at least two different six-membered rings</span>
+ 534 <span class="c"># 13    A($A$A$A) or A$A($A)$A - atom has more than two ring bonds</span>
+ 535 <span class="c"># 14    A$A!A$A - atom is at a ring/chain boundary. When a comparison is done</span>
+ 536 <span class="c">#       with another atom the path passes through the chain bond.</span>
+ 537 <span class="c"># 15    Anot%A%Anot%A - atom is at an aromatic/nonaromatic boundary. When a</span>
+ 538 <span class="c">#       comparison is done with another atom the path</span>
+ 539 <span class="c">#       passes through the aromatic bond.</span>
+ 540 <span class="c"># 16    A!A!A  - atom with more than one chain bond</span>
+ 541 <span class="c"># 17    A!A$A!A - atom is at a ring/chain boundary. When a comparison is done</span>
+ 542 <span class="c">#       with another atom the path passes through the ring bond.</span>
+ 543 <span class="c"># 18    A%Anot%A%A - atom is at an aromatic/nonaromatic boundary. When a</span>
+ 544 <span class="c">#       comparison is done with another atom the</span>
+ 545 <span class="c">#       path passes through the nonaromatic bond.</span>
+ 546 <span class="c"># 19    HETEROCYCLE - atom is a heteroatom in a ring.</span>
+ 547 <span class="c"># 20    rare properties: atom with five or more neighbors, atom in</span>
+ 548 <span class="c">#       four or more rings, or atom types other than</span>
+ 549 <span class="c">#       H, C, N, O, S, F, Cl, Br, or I</span>
+ 550 <span class="c"># 21    rare properties: atom has a charge, is an isotope, has two or</span>
+ 551 <span class="c">#       more multiple bonds, or has a triple bond.</span>
+ 552 <span class="c"># 22    N - nitrogen</span>
+ 553 <span class="c"># 23    S - sulfur</span>
+ 554 <span class="c"># 24    O - oxygen</span>
+ 555 <span class="c"># 25    A(AA)A(A)A(AA) - atom has two neighbors, each with three or more neighbors</span>
+ 556 <span class="c">#       (including the central atom).</span>
+ 557 <span class="c"># 26    CHACH2 - atom has two hydrocarbon (CH2) neighbors</span>
+ 558 <span class="c">#</span>
+ 559 <span class="c">#</span>
+ 560 <span class="c"># Atomic environments properties-based keys (32):</span>
+ 561 <span class="c">#</span>
+ 562 <span class="c"># Index Key Description</span>
+ 563 <span class="c"># 27    C(CC)</span>
+ 564 <span class="c"># 28    C(CCC)</span>
+ 565 <span class="c"># 29    C(CN)</span>
+ 566 <span class="c"># 30    C(CCN)</span>
+ 567 <span class="c"># 31    C(NN)</span>
+ 568 <span class="c"># 32    C(NNC)</span>
+ 569 <span class="c"># 33    C(NNN)</span>
+ 570 <span class="c"># 34    C(CO)</span>
+ 571 <span class="c"># 35    C(CCO)</span>
+ 572 <span class="c"># 36    C(NO)</span>
+ 573 <span class="c"># 37    C(NCO)</span>
+ 574 <span class="c"># 38    C(NNO)</span>
+ 575 <span class="c"># 39    C(OO)</span>
+ 576 <span class="c"># 40    C(COO)</span>
+ 577 <span class="c"># 41    C(NOO)</span>
+ 578 <span class="c"># 42    C(OOO)</span>
+ 579 <span class="c"># 43    Q(CC)</span>
+ 580 <span class="c"># 44    Q(CCC)</span>
+ 581 <span class="c"># 45    Q(CN)</span>
+ 582 <span class="c"># 46    Q(CCN)</span>
+ 583 <span class="c"># 47    Q(NN)</span>
+ 584 <span class="c"># 48    Q(CNN)</span>
+ 585 <span class="c"># 49    Q(NNN)</span>
+ 586 <span class="c"># 50    Q(CO)</span>
+ 587 <span class="c"># 51    Q(CCO)</span>
+ 588 <span class="c"># 52    Q(NO)</span>
+ 589 <span class="c"># 53    Q(CNO)</span>
+ 590 <span class="c"># 54    Q(NNO)</span>
+ 591 <span class="c"># 55    Q(OO)</span>
+ 592 <span class="c"># 56    Q(COO)</span>
+ 593 <span class="c"># 57    Q(NOO)</span>
+ 594 <span class="c"># 58    Q(OOO)</span>
+ 595 <span class="c">#</span>
+ 596 <span class="c"># Note: The first symbol is the central atom, with atoms bonded to the</span>
+ 597 <span class="c"># central atom listed in parentheses. Q is any non-C, non-H atom. If</span>
+ 598 <span class="c"># only two atoms are in parentheses, there is no implication concerning</span>
+ 599 <span class="c"># the other atoms bonded to the central atom.</span>
+ 600 <span class="c">#</span>
+ 601 <span class="c"># Atom-Bond-Atom properties-based keys: (264)</span>
+ 602 <span class="c">#</span>
+ 603 <span class="c"># Index Key Description</span>
+ 604 <span class="c"># 59    C-C</span>
+ 605 <span class="c"># 60    C-N</span>
+ 606 <span class="c"># 61    C-O</span>
+ 607 <span class="c"># 62    C-S</span>
+ 608 <span class="c"># 63    C-Cl</span>
+ 609 <span class="c"># 64    C-P</span>
+ 610 <span class="c"># 65    C-F</span>
+ 611 <span class="c"># 66    C-Br</span>
+ 612 <span class="c"># 67    C-Si</span>
+ 613 <span class="c"># 68    C-I</span>
+ 614 <span class="c"># 69    C-X</span>
+ 615 <span class="c"># 70    N-N</span>
+ 616 <span class="c"># 71    N-O</span>
+ 617 <span class="c"># 72    N-S</span>
+ 618 <span class="c"># 73    N-Cl</span>
+ 619 <span class="c"># 74    N-P</span>
+ 620 <span class="c"># 75    N-F</span>
+ 621 <span class="c"># 76    N-Br</span>
+ 622 <span class="c"># 77    N-Si</span>
+ 623 <span class="c"># 78    N-I</span>
+ 624 <span class="c"># 79    N-X</span>
+ 625 <span class="c"># 80    O-O</span>
+ 626 <span class="c"># 81    O-S</span>
+ 627 <span class="c"># 82    O-Cl</span>
+ 628 <span class="c"># 83    O-P</span>
+ 629 <span class="c"># 84    O-F</span>
+ 630 <span class="c"># 85    O-Br</span>
+ 631 <span class="c"># 86    O-Si</span>
+ 632 <span class="c"># 87    O-I</span>
+ 633 <span class="c"># 88    O-X</span>
+ 634 <span class="c"># 89    S-S</span>
+ 635 <span class="c"># 90    S-Cl</span>
+ 636 <span class="c"># 91    S-P</span>
+ 637 <span class="c"># 92    S-F</span>
+ 638 <span class="c"># 93    S-Br</span>
+ 639 <span class="c"># 94    S-Si</span>
+ 640 <span class="c"># 95    S-I</span>
+ 641 <span class="c"># 96    S-X</span>
+ 642 <span class="c"># 97    Cl-Cl</span>
+ 643 <span class="c"># 98    Cl-P</span>
+ 644 <span class="c"># 99    Cl-F</span>
+ 645 <span class="c"># 100   Cl-Br</span>
+ 646 <span class="c"># 101   Cl-Si</span>
+ 647 <span class="c"># 102   Cl-I</span>
+ 648 <span class="c"># 103   Cl-X</span>
+ 649 <span class="c"># 104   P-P</span>
+ 650 <span class="c"># 105   P-F</span>
+ 651 <span class="c"># 106   P-Br</span>
+ 652 <span class="c"># 107   P-Si</span>
+ 653 <span class="c"># 108   P-I</span>
+ 654 <span class="c"># 109   P-X</span>
+ 655 <span class="c"># 110   F-F</span>
+ 656 <span class="c"># 111   F-Br</span>
+ 657 <span class="c"># 112   F-Si</span>
+ 658 <span class="c"># 113   F-I</span>
+ 659 <span class="c"># 114   F-X</span>
+ 660 <span class="c"># 115   Br-Br</span>
+ 661 <span class="c"># 116   Br-Si</span>
+ 662 <span class="c"># 117   Br-I</span>
+ 663 <span class="c"># 118   Br-X</span>
+ 664 <span class="c"># 119   Si-Si</span>
+ 665 <span class="c"># 120   Si-I</span>
+ 666 <span class="c"># 121   Si-X</span>
+ 667 <span class="c"># 122   I-I</span>
+ 668 <span class="c"># 123   I-X</span>
+ 669 <span class="c"># 124   X-X</span>
+ 670 <span class="c"># 125   C=C</span>
+ 671 <span class="c"># 126   C=N</span>
+ 672 <span class="c"># 127   C=O</span>
+ 673 <span class="c"># 128   C=S</span>
+ 674 <span class="c"># 129   C=Cl</span>
+ 675 <span class="c"># 130   C=P</span>
+ 676 <span class="c"># 131   C=F</span>
+ 677 <span class="c"># 132   C=Br</span>
+ 678 <span class="c"># 133   C=Si</span>
+ 679 <span class="c"># 134   C=I</span>
+ 680 <span class="c"># 135   C=X</span>
+ 681 <span class="c"># 136   N=N</span>
+ 682 <span class="c"># 137   N=O</span>
+ 683 <span class="c"># 138   N=S</span>
+ 684 <span class="c"># 139   N=Cl</span>
+ 685 <span class="c"># 140   N=P</span>
+ 686 <span class="c"># 141   N=F</span>
+ 687 <span class="c"># 142   N=Br</span>
+ 688 <span class="c"># 143   N=Si</span>
+ 689 <span class="c"># 144   N=I</span>
+ 690 <span class="c"># 145   N=X</span>
+ 691 <span class="c"># 146   O=O</span>
+ 692 <span class="c"># 147   O=S</span>
+ 693 <span class="c"># 148   O=Cl</span>
+ 694 <span class="c"># 149   O=P</span>
+ 695 <span class="c"># 150   O=F</span>
+ 696 <span class="c"># 151   O=Br</span>
+ 697 <span class="c"># 152   O=Si</span>
+ 698 <span class="c"># 153   O=I</span>
+ 699 <span class="c"># 154   O=X</span>
+ 700 <span class="c"># 155   S=S</span>
+ 701 <span class="c"># 156   S=Cl</span>
+ 702 <span class="c"># 157   S=P</span>
+ 703 <span class="c"># 158   S=F</span>
+ 704 <span class="c"># 159   S=Br</span>
+ 705 <span class="c"># 160   S=Si</span>
+ 706 <span class="c"># 161   S=I</span>
+ 707 <span class="c"># 162   S=X</span>
+ 708 <span class="c"># 163   Cl=Cl</span>
+ 709 <span class="c"># 164   Cl=P</span>
+ 710 <span class="c"># 165   Cl=F</span>
+ 711 <span class="c"># 166   Cl=Br</span>
+ 712 <span class="c"># 167   Cl=Si</span>
+ 713 <span class="c"># 168   Cl=I</span>
+ 714 <span class="c"># 169   Cl=X</span>
+ 715 <span class="c"># 170   P=P</span>
+ 716 <span class="c"># 171   P=F</span>
+ 717 <span class="c"># 172   P=Br</span>
+ 718 <span class="c"># 173   P=Si</span>
+ 719 <span class="c"># 174   P=I</span>
+ 720 <span class="c"># 175   P=X</span>
+ 721 <span class="c"># 176   F=F</span>
+ 722 <span class="c"># 177   F=Br</span>
+ 723 <span class="c"># 178   F=Si</span>
+ 724 <span class="c"># 179   F=I</span>
+ 725 <span class="c"># 180   F=X</span>
+ 726 <span class="c"># 181   Br=Br</span>
+ 727 <span class="c"># 182   Br=Si</span>
+ 728 <span class="c"># 183   Br=I</span>
+ 729 <span class="c"># 184   Br=X</span>
+ 730 <span class="c"># 185   Si=Si</span>
+ 731 <span class="c"># 186   Si=I</span>
+ 732 <span class="c"># 187   Si=X</span>
+ 733 <span class="c"># 188   I=I</span>
+ 734 <span class="c"># 189   I=X</span>
+ 735 <span class="c"># 190   X=X</span>
+ 736 <span class="c"># 191   C#C</span>
+ 737 <span class="c"># 192   C#N</span>
+ 738 <span class="c"># 193   C#O</span>
+ 739 <span class="c"># 194   C#S</span>
+ 740 <span class="c"># 195   C#Cl</span>
+ 741 <span class="c"># 196   C#P</span>
+ 742 <span class="c"># 197   C#F</span>
+ 743 <span class="c"># 198   C#Br</span>
+ 744 <span class="c"># 199   C#Si</span>
+ 745 <span class="c"># 200   C#I</span>
+ 746 <span class="c"># 201   C#X</span>
+ 747 <span class="c"># 202   N#N</span>
+ 748 <span class="c"># 203   N#O</span>
+ 749 <span class="c"># 204   N#S</span>
+ 750 <span class="c"># 205   N#Cl</span>
+ 751 <span class="c"># 206   N#P</span>
+ 752 <span class="c"># 207   N#F</span>
+ 753 <span class="c"># 208   N#Br</span>
+ 754 <span class="c"># 209   N#Si</span>
+ 755 <span class="c"># 210   N#I</span>
+ 756 <span class="c"># 211   N#X</span>
+ 757 <span class="c"># 212   O#O</span>
+ 758 <span class="c"># 213   O#S</span>
+ 759 <span class="c"># 214   O#Cl</span>
+ 760 <span class="c"># 215   O#P</span>
+ 761 <span class="c"># 216   O#F</span>
+ 762 <span class="c"># 217   O#Br</span>
+ 763 <span class="c"># 218   O#Si</span>
+ 764 <span class="c"># 219   O#I</span>
+ 765 <span class="c"># 220   O#X</span>
+ 766 <span class="c"># 221   S#S</span>
+ 767 <span class="c"># 222   S#Cl</span>
+ 768 <span class="c"># 223   S#P</span>
+ 769 <span class="c"># 224   S#F</span>
+ 770 <span class="c"># 225   S#Br</span>
+ 771 <span class="c"># 226   S#Si</span>
+ 772 <span class="c"># 227   S#I</span>
+ 773 <span class="c"># 228   S#X</span>
+ 774 <span class="c"># 229   Cl#Cl</span>
+ 775 <span class="c"># 230   Cl#P</span>
+ 776 <span class="c"># 231   Cl#F</span>
+ 777 <span class="c"># 232   Cl#Br</span>
+ 778 <span class="c"># 233   Cl#Si</span>
+ 779 <span class="c"># 234   Cl#I</span>
+ 780 <span class="c"># 235   Cl#X</span>
+ 781 <span class="c"># 236   P#P</span>
+ 782 <span class="c"># 237   P#F</span>
+ 783 <span class="c"># 238   P#Br</span>
+ 784 <span class="c"># 239   P#Si</span>
+ 785 <span class="c"># 240   P#I</span>
+ 786 <span class="c"># 241   P#X</span>
+ 787 <span class="c"># 242   F#F</span>
+ 788 <span class="c"># 243   F#Br</span>
+ 789 <span class="c"># 244   F#Si</span>
+ 790 <span class="c"># 245   F#I</span>
+ 791 <span class="c"># 246   F#X</span>
+ 792 <span class="c"># 247   Br#Br</span>
+ 793 <span class="c"># 248   Br#Si</span>
+ 794 <span class="c"># 249   Br#I</span>
+ 795 <span class="c"># 250   Br#X</span>
+ 796 <span class="c"># 251   Si#Si</span>
+ 797 <span class="c"># 252   Si#I</span>
+ 798 <span class="c"># 253   Si#X</span>
+ 799 <span class="c"># 254   I#I</span>
+ 800 <span class="c"># 255   I#X</span>
+ 801 <span class="c"># 256   X#X</span>
+ 802 <span class="c"># 257   C$C</span>
+ 803 <span class="c"># 258   C$N</span>
+ 804 <span class="c"># 259   C$O</span>
+ 805 <span class="c"># 260   C$S</span>
+ 806 <span class="c"># 261   C$Cl</span>
+ 807 <span class="c"># 262   C$P</span>
+ 808 <span class="c"># 263   C$F</span>
+ 809 <span class="c"># 264   C$Br</span>
+ 810 <span class="c"># 265   C$Si</span>
+ 811 <span class="c"># 266   C$I</span>
+ 812 <span class="c"># 267   C$X</span>
+ 813 <span class="c"># 268   N$N</span>
+ 814 <span class="c"># 269   N$O</span>
+ 815 <span class="c"># 270   N$S</span>
+ 816 <span class="c"># 271   N$Cl</span>
+ 817 <span class="c"># 272   N$P</span>
+ 818 <span class="c"># 273   N$F</span>
+ 819 <span class="c"># 274   N$Br</span>
+ 820 <span class="c"># 275   N$Si</span>
+ 821 <span class="c"># 276   N$I</span>
+ 822 <span class="c"># 277   N$X</span>
+ 823 <span class="c"># 278   O$O</span>
+ 824 <span class="c"># 279   O$S</span>
+ 825 <span class="c"># 280   O$Cl</span>
+ 826 <span class="c"># 281   O$P</span>
+ 827 <span class="c"># 282   O$F</span>
+ 828 <span class="c"># 283   O$Br</span>
+ 829 <span class="c"># 284   O$Si</span>
+ 830 <span class="c"># 285   O$I</span>
+ 831 <span class="c"># 286   O$X</span>
+ 832 <span class="c"># 287   S$S</span>
+ 833 <span class="c"># 288   S$Cl</span>
+ 834 <span class="c"># 289   S$P</span>
+ 835 <span class="c"># 290   S$F</span>
+ 836 <span class="c"># 291   S$Br</span>
+ 837 <span class="c"># 292   S$Si</span>
+ 838 <span class="c"># 293   S$I</span>
+ 839 <span class="c"># 294   S$X</span>
+ 840 <span class="c"># 295   Cl$Cl</span>
+ 841 <span class="c"># 296   Cl$P</span>
+ 842 <span class="c"># 297   Cl$F</span>
+ 843 <span class="c"># 298   Cl$Br</span>
+ 844 <span class="c"># 299   Cl$Si</span>
+ 845 <span class="c"># 300   Cl$I</span>
+ 846 <span class="c"># 301   Cl$X</span>
+ 847 <span class="c"># 302   P$P</span>
+ 848 <span class="c"># 303   P$F</span>
+ 849 <span class="c"># 304   P$Br</span>
+ 850 <span class="c"># 305   P$Si</span>
+ 851 <span class="c"># 306   P$I</span>
+ 852 <span class="c"># 307   P$X</span>
+ 853 <span class="c"># 308   F$F</span>
+ 854 <span class="c"># 309   F$Br</span>
+ 855 <span class="c"># 310   F$Si</span>
+ 856 <span class="c"># 311   F$I</span>
+ 857 <span class="c"># 312   F$X</span>
+ 858 <span class="c"># 313   Br$Br</span>
+ 859 <span class="c"># 314   Br$Si</span>
+ 860 <span class="c"># 315   Br$I</span>
+ 861 <span class="c"># 316   Br$X</span>
+ 862 <span class="c"># 317   Si$Si</span>
+ 863 <span class="c"># 318   Si$I</span>
+ 864 <span class="c"># 319   Si$X</span>
+ 865 <span class="c"># 320   I$I</span>
+ 866 <span class="c"># 321   I$X</span>
+ 867 <span class="c"># 322   X$X</span>
+ 868 <span class="c">#</span>
+ 869 <span class="c"># Note: Instead of using &#39;%&#39; as rind bond as mentioned in the article [ Ref. 46 ], MayaChemTools</span>
+ 870 <span class="c"># used &#39;$&#39; as a symbol for ring bond to follow conventions used for MACCS 166 keys; the symbol &#39;%&#39;</span>
+ 871 <span class="c"># is used to indicate an aromatic query bond.</span>
+ 872 <span class="c">#</span>
+<a name="_GenerateMACCS322Keys-"></a> 873 <span class="k">sub </span><span class="m">_GenerateMACCS322Keys</span> <span class="s">{</span>
+ 874   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 875   <span class="k">my</span><span class="s">(</span><span class="i">$KeyNum</span><span class="cm">,</span> <span class="i">$KeyIndex</span><span class="cm">,</span> <span class="i">$MethodName</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$SkipPosCheck</span><span class="s">)</span><span class="sc">;</span>
+ 876 
+ 877   <span class="i">$SkipPosCheck</span> = <span class="n">1</span><span class="sc">;</span>
+ 878 
+ 879   <span class="c"># Generate and set key values...</span>
+ 880   <span class="j">KEYNUM:</span> <span class="k">for</span> <span class="i">$KeyNum</span> <span class="s">(</span><span class="n">1</span> .. <span class="n">322</span><span class="s">)</span> <span class="s">{</span>
+ 881     <span class="i">$MethodName</span> = <span class="q">&quot;_Generate322KeySetKey${KeyNum}&quot;</span><span class="sc">;</span>
+ 882     <span class="i">$KeyValue</span> = <span class="i">$This</span><span class="i">-&gt;$MethodName</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 883 
+ 884     <span class="k">if</span> <span class="s">(</span>!<span class="i">$KeyValue</span><span class="s">)</span> <span class="s">{</span>
+ 885       <span class="k">next</span> <span class="j">KEYNUM</span><span class="sc">;</span>
+ 886     <span class="s">}</span>
+ 887     <span class="i">$KeyIndex</span> = <span class="i">$KeyNum</span> - <span class="n">1</span><span class="sc">;</span>
+ 888     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+ 889       <span class="i">$This</span>-&gt;{<span class="w">FingerprintsBitVector</span>}<span class="i">-&gt;SetBit</span><span class="s">(</span><span class="i">$KeyIndex</span><span class="cm">,</span> <span class="i">$SkipPosCheck</span><span class="s">)</span><span class="sc">;</span>
+ 890     <span class="s">}</span>
+ 891     <span class="k">else</span> <span class="s">{</span>
+ 892       <span class="i">$This</span>-&gt;{<span class="w">FingerprintsVector</span>}<span class="i">-&gt;SetValue</span><span class="s">(</span><span class="i">$KeyIndex</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$SkipPosCheck</span><span class="s">)</span><span class="sc">;</span>
+ 893     <span class="s">}</span>
+ 894   <span class="s">}</span>
+ 895 
+ 896   <span class="c"># Add key labels for MACCSKeyCount...</span>
+ 897   <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+ 898     <span class="i">$This</span><span class="i">-&gt;_SetMACCSKeyCountValueIDs</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 899   <span class="s">}</span>
+ 900   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
+ 901 <span class="s">}</span>
+ 902 
+ 903 <span class="c"># Set MACCS key count value IDs for fingerprint vector. The value IDs labels format</span>
+ 904 <span class="c"># is: Key&lt;KeyNum&gt;.</span>
+ 905 <span class="c">#</span>
+ 906 <span class="c"># By default, no value IDs are set for fingerprint vector values.</span>
+ 907 <span class="c">#</span>
+<a name="_SetMACCSKeyCountValueIDs-"></a> 908 <span class="k">sub </span><span class="m">_SetMACCSKeyCountValueIDs</span> <span class="s">{</span>
+ 909   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 910 
+ 911   <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span>-&gt;{<span class="w">FingerprintsVector</span>}<span class="s">)</span> <span class="s">{</span>
+ 912     <span class="k">return</span><span class="sc">;</span>
+ 913   <span class="s">}</span>
+ 914   <span class="k">my</span><span class="s">(</span><span class="i">@ValueIDs</span><span class="s">)</span><span class="sc">;</span>
+ 915 
+ 916   <span class="i">@ValueIDs</span> = <span class="k">map</span> <span class="s">{</span> <span class="q">&quot;Key$_&quot;</span><span class="sc">;</span> <span class="s">}</span> <span class="s">(</span><span class="n">1</span> .. <span class="i">$This</span>-&gt;{<span class="w">Size</span>}<span class="s">)</span><span class="sc">;</span>
+ 917   <span class="i">$This</span>-&gt;{<span class="w">FingerprintsVector</span>}<span class="i">-&gt;AddValueIDs</span><span class="s">(</span>\<span class="i">@ValueIDs</span><span class="s">)</span><span class="sc">;</span>
+ 918 
+ 919   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
+ 920 <span class="s">}</span>
+ 921 
+ 922 <span class="c">##################################</span>
+ 923 <span class="c">#</span>
+ 924 <span class="c">#  Implementation of MDL MACCS 166 keys...</span>
+ 925 <span class="c">#</span>
+ 926 <span class="c">##################################</span>
+ 927 
+ 928 <span class="c"># Generate key 1 value as 1/0 indicating its presence/absence or count of its</span>
+ 929 <span class="c"># presence in a molecule.</span>
+ 930 <span class="c">#</span>
+ 931 <span class="c"># Key 1 description: ISOTOPE</span>
+ 932 <span class="c">#</span>
+<a name="_Generate166KeySetKey1-"></a> 933 <span class="k">sub </span><span class="m">_Generate166KeySetKey1</span> <span class="s">{</span>
+ 934   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 935   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span>
+ 936 
+ 937   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+ 938   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+ 939     <span class="k">if</span> <span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;IsIsotope</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+ 940       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+ 941         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+ 942         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+ 943       <span class="s">}</span>
+ 944       <span class="i">$KeyValue</span>++<span class="sc">;</span>
+ 945     <span class="s">}</span>
+ 946   <span class="s">}</span>
+ 947   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+ 948 <span class="s">}</span>
+ 949 
+ 950 <span class="c"># Generate key 2 value as 1/0 indicating its presence/absence or count of its</span>
+ 951 <span class="c"># presence in a molecule.</span>
+ 952 <span class="c">#</span>
+ 953 <span class="c"># Key 2 description: 103 &lt; ATOMIC NO. &lt; 256</span>
+ 954 <span class="c">#</span>
+<a name="_Generate166KeySetKey2-"></a> 955 <span class="k">sub </span><span class="m">_Generate166KeySetKey2</span> <span class="s">{</span>
+ 956   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 957   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span>
+ 958 
+ 959   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+ 960   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+ 961     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 962     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span> &gt; <span class="n">103</span> &amp;&amp; <span class="i">$AtomicNumber</span> &lt; <span class="n">256</span><span class="s">)</span> <span class="s">{</span>
+ 963       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+ 964         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+ 965         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+ 966       <span class="s">}</span>
+ 967       <span class="i">$KeyValue</span>++<span class="sc">;</span>
+ 968     <span class="s">}</span>
+ 969   <span class="s">}</span>
+ 970   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+ 971 <span class="s">}</span>
+ 972 
+ 973 <span class="c"># Generate key 3 value as 1/0 indicating its presence/absence or count of its</span>
+ 974 <span class="c"># presence in a molecule.</span>
+ 975 <span class="c">#</span>
+ 976 <span class="c"># Key 3 description: GROUP IVA,VA,VIA (GroupNumber: 14, 15, 16) PERIODS 4-6 (Ge...)</span>
+ 977 <span class="c">#</span>
+<a name="_Generate166KeySetKey3-"></a> 978 <span class="k">sub </span><span class="m">_Generate166KeySetKey3</span> <span class="s">{</span>
+ 979   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+ 980   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="cm">,</span> <span class="i">$PeriodNumber</span><span class="s">)</span><span class="sc">;</span>
+ 981 
+ 982   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+ 983   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+ 984     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+ 985     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span>
+ 986       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span>
+ 987       <span class="i">$PeriodNumber</span> = <span class="i">PeriodicTable::GetElementPeriodNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span>
+ 988       <span class="k">if</span> <span class="s">(</span><span class="i">$PeriodNumber</span> =~ <span class="q">/^(4|5|6)$/</span> &amp;&amp; <span class="i">$GroupNumber</span> =~ <span class="q">/^(14|15|16)$/</span><span class="s">)</span> <span class="s">{</span>
+ 989         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+ 990           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+ 991           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+ 992         <span class="s">}</span>
+ 993         <span class="i">$KeyValue</span>++<span class="sc">;</span>
+ 994       <span class="s">}</span>
+ 995     <span class="s">}</span>
+ 996   <span class="s">}</span>
+ 997   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+ 998 <span class="s">}</span>
+ 999 
+1000 <span class="c"># Generate key 4 value as 1/0 indicating its presence/absence or count of its</span>
+1001 <span class="c"># presence in a molecule.</span>
+1002 <span class="c">#</span>
+1003 <span class="c"># Key 4 description: ACTINIDE</span>
+1004 <span class="c">#</span>
+<a name="_Generate166KeySetKey4-"></a>1005 <span class="k">sub </span><span class="m">_Generate166KeySetKey4</span> <span class="s">{</span>
+1006   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1007   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span>
+1008 
+1009   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+1010   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+1011     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+1012     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span> &gt;= <span class="n">89</span> &amp;&amp; <span class="i">$AtomicNumber</span> &lt;= <span class="n">103</span><span class="s">)</span> <span class="s">{</span>
+1013       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+1014         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+1015         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+1016       <span class="s">}</span>
+1017       <span class="i">$KeyValue</span>++<span class="sc">;</span>
+1018     <span class="s">}</span>
+1019   <span class="s">}</span>
+1020   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+1021 <span class="s">}</span>
+1022 
+1023 <span class="c"># Generate key 5 value as 1/0 indicating its presence/absence or count of its</span>
+1024 <span class="c"># presence in a molecule.</span>
+1025 <span class="c">#</span>
+1026 <span class="c"># Key 5 description: GROUP IIIB,IVB (Sc...)</span>
+1027 <span class="c">#</span>
+<a name="_Generate166KeySetKey5-"></a>1028 <span class="k">sub </span><span class="m">_Generate166KeySetKey5</span> <span class="s">{</span>
+1029   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1030   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="s">)</span><span class="sc">;</span>
+1031 
+1032   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+1033   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+1034     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+1035     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span>
+1036       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span>
+1037       <span class="k">if</span> <span class="s">(</span><span class="i">$GroupNumber</span> =~ <span class="q">/^(3|4)$/</span><span class="s">)</span> <span class="s">{</span>
+1038         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+1039           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+1040           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+1041         <span class="s">}</span>
+1042         <span class="i">$KeyValue</span>++<span class="sc">;</span>
+1043       <span class="s">}</span>
+1044     <span class="s">}</span>
+1045   <span class="s">}</span>
+1046   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+1047 <span class="s">}</span>
+1048 
+1049 <span class="c"># Generate key 6 value as 1/0 indicating its presence/absence or count of its</span>
+1050 <span class="c"># presence in a molecule.</span>
+1051 <span class="c">#</span>
+1052 <span class="c"># Key 6 description: LANTHANIDE</span>
+1053 <span class="c">#</span>
+<a name="_Generate166KeySetKey6-"></a>1054 <span class="k">sub </span><span class="m">_Generate166KeySetKey6</span> <span class="s">{</span>
+1055   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1056   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span>
+1057 
+1058   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+1059   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+1060     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+1061     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span> &gt;= <span class="n">57</span> &amp;&amp; <span class="i">$AtomicNumber</span> &lt;= <span class="n">71</span><span class="s">)</span> <span class="s">{</span>
+1062       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+1063         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+1064         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+1065       <span class="s">}</span>
+1066       <span class="i">$KeyValue</span>++<span class="sc">;</span>
+1067     <span class="s">}</span>
+1068   <span class="s">}</span>
+1069   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+1070 <span class="s">}</span>
+1071 
+1072 <span class="c"># Generate key 7 value as 1/0 indicating its presence/absence or count of its</span>
+1073 <span class="c"># presence in a molecule.</span>
+1074 <span class="c">#</span>
+1075 <span class="c"># Key 7 description: GROUP VB,VIB,VIIB (V...)</span>
+1076 <span class="c">#</span>
+<a name="_Generate166KeySetKey7-"></a>1077 <span class="k">sub </span><span class="m">_Generate166KeySetKey7</span> <span class="s">{</span>
+1078   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1079   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="s">)</span><span class="sc">;</span>
+1080 
+1081   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+1082   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+1083     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+1084     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span>
+1085       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span>
+1086       <span class="k">if</span> <span class="s">(</span><span class="i">$GroupNumber</span> =~ <span class="q">/^(5|6|7)$/</span><span class="s">)</span> <span class="s">{</span>
+1087         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+1088           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+1089           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+1090         <span class="s">}</span>
+1091         <span class="i">$KeyValue</span>++<span class="sc">;</span>
+1092       <span class="s">}</span>
+1093     <span class="s">}</span>
+1094   <span class="s">}</span>
+1095   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+1096 <span class="s">}</span>
+1097 
+1098 <span class="c"># Generate key 8 value as 1/0 indicating its presence/absence or count of its</span>
+1099 <span class="c"># presence in a molecule.</span>
+1100 <span class="c">#</span>
+1101 <span class="c"># Key 8 description: QAAA@1</span>
+1102 <span class="c">#</span>
+<a name="_Generate166KeySetKey8-"></a>1103 <span class="k">sub </span><span class="m">_Generate166KeySetKey8</span> <span class="s">{</span>
+1104   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1105   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
+1106 
+1107   <span class="i">$RingSize</span> = <span class="n">4</span><span class="sc">;</span>
+1108   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+1109   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+1110     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span><span class="i">-&gt;_IsHeteroAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> &amp;&amp; <span class="i">$Atom</span><span class="i">-&gt;IsInRingOfSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+1111       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+1112         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+1113         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+1114       <span class="s">}</span>
+1115       <span class="i">$KeyValue</span>++<span class="sc">;</span>
+1116     <span class="s">}</span>
+1117   <span class="s">}</span>
+1118   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+1119 <span class="s">}</span>
+1120 
+1121 <span class="c"># Generate key 9 value as 1/0 indicating its presence/absence or count of its</span>
+1122 <span class="c"># presence in a molecule.</span>
+1123 <span class="c">#</span>
+1124 <span class="c"># Key 9 description: GROUP VIII (Fe...)</span>
+1125 <span class="c">#</span>
+<a name="_Generate166KeySetKey9-"></a>1126 <span class="k">sub </span><span class="m">_Generate166KeySetKey9</span> <span class="s">{</span>
+1127   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1128   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="s">)</span><span class="sc">;</span>
+1129 
+1130   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+1131   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+1132     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+1133     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span>
+1134       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span>
+1135       <span class="k">if</span> <span class="s">(</span><span class="i">$GroupNumber</span> =~ <span class="q">/^(8|9|10)$/</span><span class="s">)</span> <span class="s">{</span>
+1136         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+1137           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+1138           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+1139         <span class="s">}</span>
+1140         <span class="i">$KeyValue</span>++<span class="sc">;</span>
+1141       <span class="s">}</span>
+1142     <span class="s">}</span>
+1143   <span class="s">}</span>
+1144   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+1145 <span class="s">}</span>
+1146 
+1147 <span class="c"># Generate key 10 value as 1/0 indicating its presence/absence or count of its</span>
+1148 <span class="c"># presence in a molecule.</span>
+1149 <span class="c">#</span>
+1150 <span class="c"># Key 10 description: GROUP IIA (ALKALINE EARTH)</span>
+1151 <span class="c">#</span>
+<a name="_Generate166KeySetKey10-"></a>1152 <span class="k">sub </span><span class="m">_Generate166KeySetKey10</span> <span class="s">{</span>
+1153   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1154   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="s">)</span><span class="sc">;</span>
+1155 
+1156   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+1157   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+1158     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+1159     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span>
+1160       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span>
+1161       <span class="k">if</span> <span class="s">(</span><span class="i">$GroupNumber</span> =~ <span class="q">/^2$/</span><span class="s">)</span> <span class="s">{</span>
+1162         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+1163           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+1164           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+1165         <span class="s">}</span>
+1166         <span class="i">$KeyValue</span>++<span class="sc">;</span>
+1167       <span class="s">}</span>
+1168     <span class="s">}</span>
+1169   <span class="s">}</span>
+1170   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+1171 <span class="s">}</span>
+1172 
+1173 <span class="c"># Generate key 11 value as 1/0 indicating its presence/absence or count of its</span>
+1174 <span class="c"># presence in a molecule.</span>
+1175 <span class="c">#</span>
+1176 <span class="c"># Key 11 description: 4M RING</span>
+1177 <span class="c">#</span>
+<a name="_Generate166KeySetKey11-"></a>1178 <span class="k">sub </span><span class="m">_Generate166KeySetKey11</span> <span class="s">{</span>
+1179   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1180   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span>
+1181 
+1182   <span class="i">$RingSize</span> = <span class="n">4</span><span class="sc">;</span>
+1183   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+1184   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
+1185 
+1186   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+1187     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
+1188   <span class="s">}</span>
+1189   <span class="k">else</span> <span class="s">{</span>
+1190     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span><span class="sc">;</span>
+1191   <span class="s">}</span>
+1192   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+1193 <span class="s">}</span>
+1194 
+1195 <span class="c"># Generate key 12 value as 1/0 indicating its presence/absence or count of its</span>
+1196 <span class="c"># presence in a molecule.</span>
+1197 <span class="c">#</span>
+1198 <span class="c"># Key 12 description: GROUP IB,IIB (Cu...)</span>
+1199 <span class="c">#</span>
+<a name="_Generate166KeySetKey12-"></a>1200 <span class="k">sub </span><span class="m">_Generate166KeySetKey12</span> <span class="s">{</span>
+1201   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1202   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="s">)</span><span class="sc">;</span>
+1203 
+1204   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+1205   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+1206     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+1207     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span>
+1208       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span>
+1209       <span class="k">if</span> <span class="s">(</span><span class="i">$GroupNumber</span> =~ <span class="q">/^(11|12)$/</span><span class="s">)</span> <span class="s">{</span>
+1210         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+1211           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+1212           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+1213         <span class="s">}</span>
+1214         <span class="i">$KeyValue</span>++<span class="sc">;</span>
+1215       <span class="s">}</span>
+1216     <span class="s">}</span>
+1217   <span class="s">}</span>
+1218   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+1219 <span class="s">}</span>
+1220 
+1221 <span class="c"># Generate key 13 value as 1/0 indicating its presence/absence or count of its</span>
+1222 <span class="c"># presence in a molecule.</span>
+1223 <span class="c">#</span>
+1224 <span class="c"># Key 13 description: ON(C)C</span>
+1225 <span class="c">#</span>
+<a name="_Generate166KeySetKey13-"></a>1226 <span class="k">sub </span><span class="m">_Generate166KeySetKey13</span> <span class="s">{</span>
+1227   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1228   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1229 
+1230   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;N&#39;</span><span class="sc">;</span>
+1231   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
+1232   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1233 
+1234   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1235 <span class="s">}</span>
+1236 
+1237 <span class="c"># Generate key 14 value as 1/0 indicating its presence/absence or count of its</span>
+1238 <span class="c"># presence in a molecule.</span>
+1239 <span class="c">#</span>
+1240 <span class="c"># Key 14 description: S-S</span>
+1241 <span class="c">#</span>
+<a name="_Generate166KeySetKey14-"></a>1242 <span class="k">sub </span><span class="m">_Generate166KeySetKey14</span> <span class="s">{</span>
+1243   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1244   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">1</span><span class="sc">;</span>
+1245 
+1246   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
+1247 <span class="s">}</span>
+1248 
+1249 <span class="c"># Generate key 15 value as 1/0 indicating its presence/absence or count of its</span>
+1250 <span class="c"># presence in a molecule.</span>
+1251 <span class="c">#</span>
+1252 <span class="c"># Key 15 description: OC(O)O</span>
+1253 <span class="c">#</span>
+<a name="_Generate166KeySetKey15-"></a>1254 <span class="k">sub </span><span class="m">_Generate166KeySetKey15</span> <span class="s">{</span>
+1255   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1256   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1257 
+1258   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+1259   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+1260   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1261 
+1262   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1263 <span class="s">}</span>
+1264 
+1265 <span class="c"># Generate key 16 value as 1/0 indicating its presence/absence or count of its</span>
+1266 <span class="c"># presence in a molecule.</span>
+1267 <span class="c">#</span>
+1268 <span class="c"># Key 16 description: QAA@1</span>
+1269 <span class="c">#</span>
+<a name="_Generate166KeySetKey16-"></a>1270 <span class="k">sub </span><span class="m">_Generate166KeySetKey16</span> <span class="s">{</span>
+1271   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1272   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
+1273 
+1274   <span class="i">$RingSize</span> = <span class="n">3</span><span class="sc">;</span>
+1275   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+1276   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+1277     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span><span class="i">-&gt;_IsHeteroAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> &amp;&amp; <span class="i">$Atom</span><span class="i">-&gt;IsInRingOfSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+1278       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+1279         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+1280         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+1281       <span class="s">}</span>
+1282       <span class="i">$KeyValue</span>++<span class="sc">;</span>
+1283     <span class="s">}</span>
+1284   <span class="s">}</span>
+1285   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+1286 <span class="s">}</span>
+1287 
+1288 <span class="c"># Generate key 17 value as 1/0 indicating its presence/absence or count of its</span>
+1289 <span class="c"># presence in a molecule.</span>
+1290 <span class="c">#</span>
+1291 <span class="c"># Key 17 description: CTC</span>
+1292 <span class="c">#</span>
+<a name="_Generate166KeySetKey17-"></a>1293 <span class="k">sub </span><span class="m">_Generate166KeySetKey17</span> <span class="s">{</span>
+1294   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1295   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">3</span><span class="sc">;</span>
+1296 
+1297   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
+1298 <span class="s">}</span>
+1299 
+1300 <span class="c"># Generate key 18 value as 1/0 indicating its presence/absence or count of its</span>
+1301 <span class="c"># presence in a molecule.</span>
+1302 <span class="c">#</span>
+1303 <span class="c"># Key 18 description: GROUP IIIA (B...)</span>
+1304 <span class="c">#</span>
+<a name="_Generate166KeySetKey18-"></a>1305 <span class="k">sub </span><span class="m">_Generate166KeySetKey18</span> <span class="s">{</span>
+1306   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1307   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="s">)</span><span class="sc">;</span>
+1308 
+1309   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+1310   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+1311     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+1312     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span>
+1313       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span>
+1314       <span class="k">if</span> <span class="s">(</span><span class="i">$GroupNumber</span> =~ <span class="q">/^13$/</span><span class="s">)</span> <span class="s">{</span>
+1315         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+1316           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+1317           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+1318         <span class="s">}</span>
+1319         <span class="i">$KeyValue</span>++<span class="sc">;</span>
+1320       <span class="s">}</span>
+1321     <span class="s">}</span>
+1322   <span class="s">}</span>
+1323   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+1324 <span class="s">}</span>
+1325 
+1326 <span class="c"># Generate key 19 value as 1/0 indicating its presence/absence or count of its</span>
+1327 <span class="c"># presence in a molecule.</span>
+1328 <span class="c">#</span>
+1329 <span class="c"># Key 19 description: 7M RING</span>
+1330 <span class="c">#</span>
+<a name="_Generate166KeySetKey19-"></a>1331 <span class="k">sub </span><span class="m">_Generate166KeySetKey19</span> <span class="s">{</span>
+1332   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1333   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span>
+1334 
+1335   <span class="i">$RingSize</span> = <span class="n">7</span><span class="sc">;</span>
+1336   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+1337   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
+1338 
+1339   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+1340   <span class="k">if</span> <span class="s">(</span><span class="i">$NumOfRings</span><span class="s">)</span> <span class="s">{</span>
+1341     <span class="i">$KeyValue</span> = <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="i">$NumOfRings</span><span class="sc">;</span>
+1342   <span class="s">}</span>
+1343   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+1344 <span class="s">}</span>
+1345 
+1346 <span class="c"># Generate key 20 value as 1/0 indicating its presence/absence or count of its</span>
+1347 <span class="c"># presence in a molecule.</span>
+1348 <span class="c">#</span>
+1349 <span class="c"># Key 20 description: SI</span>
+1350 <span class="c">#</span>
+<a name="_Generate166KeySetKey20-"></a>1351 <span class="k">sub </span><span class="m">_Generate166KeySetKey20</span> <span class="s">{</span>
+1352   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1353 
+1354   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="s">)</span><span class="sc">;</span>
+1355 <span class="s">}</span>
+1356 
+1357 <span class="c"># Generate key 21 value as 1/0 indicating its presence/absence or count of its</span>
+1358 <span class="c"># presence in a molecule.</span>
+1359 <span class="c">#</span>
+1360 <span class="c"># Key 21 description: C=C(Q)Q</span>
+1361 <span class="c">#</span>
+<a name="_Generate166KeySetKey21-"></a>1362 <span class="k">sub </span><span class="m">_Generate166KeySetKey21</span> <span class="s">{</span>
+1363   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1364   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1365 
+1366   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+1367   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
+1368   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;=&#39;</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1369 
+1370   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1371 <span class="s">}</span>
+1372 
+1373 <span class="c"># Generate key 22 value as 1/0 indicating its presence/absence or count of its</span>
+1374 <span class="c"># presence in a molecule.</span>
+1375 <span class="c">#</span>
+1376 <span class="c"># Key 22 description: 3M RING</span>
+1377 <span class="c">#</span>
+<a name="_Generate166KeySetKey22-"></a>1378 <span class="k">sub </span><span class="m">_Generate166KeySetKey22</span> <span class="s">{</span>
+1379   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1380   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span>
+1381 
+1382   <span class="i">$RingSize</span> = <span class="n">3</span><span class="sc">;</span>
+1383   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+1384   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
+1385 
+1386   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+1387     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
+1388   <span class="s">}</span>
+1389   <span class="k">else</span> <span class="s">{</span>
+1390     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span><span class="sc">;</span>
+1391   <span class="s">}</span>
+1392   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+1393 <span class="s">}</span>
+1394 
+1395 <span class="c"># Generate key 23 value as 1/0 indicating its presence/absence or count of its</span>
+1396 <span class="c"># presence in a molecule.</span>
+1397 <span class="c">#</span>
+1398 <span class="c"># Key 23 description: NC(O)O</span>
+1399 <span class="c">#</span>
+<a name="_Generate166KeySetKey23-"></a>1400 <span class="k">sub </span><span class="m">_Generate166KeySetKey23</span> <span class="s">{</span>
+1401   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1402   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1403 
+1404   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+1405   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+1406   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1407 
+1408   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1409 <span class="s">}</span>
+1410 
+1411 <span class="c"># Generate key 24 value as 1/0 indicating its presence/absence or count of its</span>
+1412 <span class="c"># presence in a molecule.</span>
+1413 <span class="c">#</span>
+1414 <span class="c"># Key 24 description: N-O</span>
+1415 <span class="c">#</span>
+<a name="_Generate166KeySetKey24-"></a>1416 <span class="k">sub </span><span class="m">_Generate166KeySetKey24</span> <span class="s">{</span>
+1417   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1418   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">1</span><span class="sc">;</span>
+1419 
+1420   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
+1421 <span class="s">}</span>
+1422 
+1423 <span class="c"># Generate key 25 value as 1/0 indicating its presence/absence or count of its</span>
+1424 <span class="c"># presence in a molecule.</span>
+1425 <span class="c">#</span>
+1426 <span class="c"># Key 25 description: NC(N)N</span>
+1427 <span class="c">#</span>
+<a name="_Generate166KeySetKey25-"></a>1428 <span class="k">sub </span><span class="m">_Generate166KeySetKey25</span> <span class="s">{</span>
+1429   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1430   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1431 
+1432   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+1433   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+1434   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1435 
+1436   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1437 <span class="s">}</span>
+1438 
+1439 <span class="c"># Generate key 26 value as 1/0 indicating its presence/absence or count of its</span>
+1440 <span class="c"># presence in a molecule.</span>
+1441 <span class="c">#</span>
+1442 <span class="c"># Key 26 description: C$=C($A)$A</span>
+1443 <span class="c">#</span>
+<a name="_Generate166KeySetKey26-"></a>1444 <span class="k">sub </span><span class="m">_Generate166KeySetKey26</span> <span class="s">{</span>
+1445   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1446   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1447 
+1448   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+1449   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+1450   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;$=&#39;</span><span class="cm">,</span> <span class="q">&#39;$&#39;</span><span class="cm">,</span> <span class="q">&#39;$&#39;</span><span class="s">)</span><span class="sc">;</span>
+1451 
+1452   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1453 <span class="s">}</span>
+1454 
+1455 <span class="c"># Generate key 27 value as 1/0 indicating its presence/absence or count of its</span>
+1456 <span class="c"># presence in a molecule.</span>
+1457 <span class="c">#</span>
+1458 <span class="c"># Key 27 description: I</span>
+1459 <span class="c">#</span>
+<a name="_Generate166KeySetKey27-"></a>1460 <span class="k">sub </span><span class="m">_Generate166KeySetKey27</span> <span class="s">{</span>
+1461   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1462 
+1463   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;I&#39;</span><span class="s">)</span><span class="sc">;</span>
+1464 <span class="s">}</span>
+1465 
+1466 <span class="c"># Generate key 28 value as 1/0 indicating its presence/absence or count of its</span>
+1467 <span class="c"># presence in a molecule.</span>
+1468 <span class="c">#</span>
+1469 <span class="c"># Key 28 description: QCH2Q</span>
+1470 <span class="c">#</span>
+<a name="_Generate166KeySetKey28-"></a>1471 <span class="k">sub </span><span class="m">_Generate166KeySetKey28</span> <span class="s">{</span>
+1472   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1473   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1474 
+1475   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+1476   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
+1477   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1478   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
+1479   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span>
+1480 
+1481   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+1482 <span class="s">}</span>
+1483 
+1484 <span class="c"># Generate key 29 value as 1/0 indicating its presence/absence or count of its</span>
+1485 <span class="c"># presence in a molecule.</span>
+1486 <span class="c">#</span>
+1487 <span class="c"># Key 29 description: P</span>
+1488 <span class="c">#</span>
+<a name="_Generate166KeySetKey29-"></a>1489 <span class="k">sub </span><span class="m">_Generate166KeySetKey29</span> <span class="s">{</span>
+1490   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1491 
+1492   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="s">)</span><span class="sc">;</span>
+1493 <span class="s">}</span>
+1494 
+1495 <span class="c"># Generate key 30 value as 1/0 indicating its presence/absence or count of its</span>
+1496 <span class="c"># presence in a molecule.</span>
+1497 <span class="c">#</span>
+1498 <span class="c"># Key 30 description: CQ(C)(C)A</span>
+1499 <span class="c">#</span>
+<a name="_Generate166KeySetKey30-"></a>1500 <span class="k">sub </span><span class="m">_Generate166KeySetKey30</span> <span class="s">{</span>
+1501   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1502   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1503 
+1504   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
+1505   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+1506   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1507 
+1508   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1509 <span class="s">}</span>
+1510 
+1511 <span class="c"># Generate key 31 value as 1/0 indicating its presence/absence or count of its</span>
+1512 <span class="c"># presence in a molecule.</span>
+1513 <span class="c">#</span>
+1514 <span class="c"># Key 31 description: QX</span>
+1515 <span class="c">#</span>
+<a name="_Generate166KeySetKey31-"></a>1516 <span class="k">sub </span><span class="m">_Generate166KeySetKey31</span> <span class="s">{</span>
+1517   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1518 
+1519   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;X&#39;</span><span class="s">)</span><span class="sc">;</span>
+1520 <span class="s">}</span>
+1521 
+1522 <span class="c"># Generate key 32 value as 1/0 indicating its presence/absence or count of its</span>
+1523 <span class="c"># presence in a molecule.</span>
+1524 <span class="c">#</span>
+1525 <span class="c"># Key 32 description: CSN</span>
+1526 <span class="c">#</span>
+<a name="_Generate166KeySetKey32-"></a>1527 <span class="k">sub </span><span class="m">_Generate166KeySetKey32</span> <span class="s">{</span>
+1528   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1529   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1530 
+1531   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;S&#39;</span><span class="sc">;</span>
+1532   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+1533   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1534 
+1535   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1536 <span class="s">}</span>
+1537 
+1538 <span class="c"># Generate key 33 value as 1/0 indicating its presence/absence or count of its</span>
+1539 <span class="c"># presence in a molecule.</span>
+1540 <span class="c">#</span>
+1541 <span class="c"># Key 33 description: NS</span>
+1542 <span class="c">#</span>
+<a name="_Generate166KeySetKey33-"></a>1543 <span class="k">sub </span><span class="m">_Generate166KeySetKey33</span> <span class="s">{</span>
+1544   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1545 
+1546   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="s">)</span><span class="sc">;</span>
+1547 <span class="s">}</span>
+1548 
+1549 <span class="c"># Generate key 34 value as 1/0 indicating its presence/absence or count of its</span>
+1550 <span class="c"># presence in a molecule.</span>
+1551 <span class="c">#</span>
+1552 <span class="c"># Key 34 description: CH2=A</span>
+1553 <span class="c">#</span>
+<a name="_Generate166KeySetKey34-"></a>1554 <span class="k">sub </span><span class="m">_Generate166KeySetKey34</span> <span class="s">{</span>
+1555   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1556   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1557 
+1558   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+1559   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+1560   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;=&#39;</span><span class="s">)</span><span class="sc">;</span>
+1561   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
+1562   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span>
+1563 
+1564   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+1565 <span class="s">}</span>
+1566 
+1567 <span class="c"># Generate key 35 value as 1/0 indicating its presence/absence or count of its</span>
+1568 <span class="c"># presence in a molecule.</span>
+1569 <span class="c">#</span>
+1570 <span class="c"># Key 35 description: GROUP IA (ALKALI METAL)</span>
+1571 <span class="c">#</span>
+<a name="_Generate166KeySetKey35-"></a>1572 <span class="k">sub </span><span class="m">_Generate166KeySetKey35</span> <span class="s">{</span>
+1573   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1574   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="s">)</span><span class="sc">;</span>
+1575 
+1576   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+1577   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+1578     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+1579     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span>
+1580       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span>
+1581       <span class="k">if</span> <span class="s">(</span><span class="i">$GroupNumber</span> =~ <span class="q">/^1$/</span><span class="s">)</span> <span class="s">{</span>
+1582         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+1583           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+1584           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+1585         <span class="s">}</span>
+1586         <span class="i">$KeyValue</span>++<span class="sc">;</span>
+1587       <span class="s">}</span>
+1588     <span class="s">}</span>
+1589   <span class="s">}</span>
+1590   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+1591 <span class="s">}</span>
+1592 
+1593 <span class="c"># Generate key 36 value as 1/0 indicating its presence/absence or count of its</span>
+1594 <span class="c"># presence in a molecule.</span>
+1595 <span class="c">#</span>
+1596 <span class="c"># Key 36 description: S HETEROCYCLE</span>
+1597 <span class="c">#</span>
+<a name="_Generate166KeySetKey36-"></a>1598 <span class="k">sub </span><span class="m">_Generate166KeySetKey36</span> <span class="s">{</span>
+1599   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1600   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
+1601 
+1602   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span><span class="sc">;</span>
+1603 <span class="s">}</span>
+1604 
+1605 <span class="c"># Generate key 37 value as 1/0 indicating its presence/absence or count of its</span>
+1606 <span class="c"># presence in a molecule.</span>
+1607 <span class="c">#</span>
+1608 <span class="c"># Key 37 description: NC(O)N</span>
+1609 <span class="c">#</span>
+<a name="_Generate166KeySetKey37-"></a>1610 <span class="k">sub </span><span class="m">_Generate166KeySetKey37</span> <span class="s">{</span>
+1611   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1612   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1613 
+1614   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+1615   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+1616   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1617 
+1618   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1619 <span class="s">}</span>
+1620 
+1621 <span class="c"># Generate key 38 value as 1/0 indicating its presence/absence or count of its</span>
+1622 <span class="c"># presence in a molecule.</span>
+1623 <span class="c">#</span>
+1624 <span class="c"># Key 38 description: NC(C)N</span>
+1625 <span class="c">#</span>
+<a name="_Generate166KeySetKey38-"></a>1626 <span class="k">sub </span><span class="m">_Generate166KeySetKey38</span> <span class="s">{</span>
+1627   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1628   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1629 
+1630   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+1631   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+1632   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1633 
+1634   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1635 <span class="s">}</span>
+1636 
+1637 <span class="c"># Generate key 39 value as 1/0 indicating its presence/absence or count of its</span>
+1638 <span class="c"># presence in a molecule.</span>
+1639 <span class="c">#</span>
+1640 <span class="c"># Key 39 description: OS(O)O</span>
+1641 <span class="c">#</span>
+<a name="_Generate166KeySetKey39-"></a>1642 <span class="k">sub </span><span class="m">_Generate166KeySetKey39</span> <span class="s">{</span>
+1643   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1644   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1645 
+1646   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;S&#39;</span><span class="sc">;</span>
+1647   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+1648   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1649 
+1650   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1651 <span class="s">}</span>
+1652 
+1653 <span class="c"># Generate key 40 value as 1/0 indicating its presence/absence or count of its</span>
+1654 <span class="c"># presence in a molecule.</span>
+1655 <span class="c">#</span>
+1656 <span class="c"># Key 40 description: S-O</span>
+1657 <span class="c">#</span>
+<a name="_Generate166KeySetKey40-"></a>1658 <span class="k">sub </span><span class="m">_Generate166KeySetKey40</span> <span class="s">{</span>
+1659   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1660   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">1</span><span class="sc">;</span>
+1661 
+1662   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
+1663 <span class="s">}</span>
+1664 
+1665 <span class="c"># Generate key 41 value as 1/0 indicating its presence/absence or count of its</span>
+1666 <span class="c"># presence in a molecule.</span>
+1667 <span class="c">#</span>
+1668 <span class="c"># Key 41 description: CTN</span>
+1669 <span class="c">#</span>
+<a name="_Generate166KeySetKey41-"></a>1670 <span class="k">sub </span><span class="m">_Generate166KeySetKey41</span> <span class="s">{</span>
+1671   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1672   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">3</span><span class="sc">;</span>
+1673 
+1674   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
+1675 <span class="s">}</span>
+1676 
+1677 <span class="c"># Generate key 42 value as 1/0 indicating its presence/absence or count of its</span>
+1678 <span class="c"># presence in a molecule.</span>
+1679 <span class="c">#</span>
+1680 <span class="c"># Key 42 description: F</span>
+1681 <span class="c">#</span>
+<a name="_Generate166KeySetKey42-"></a>1682 <span class="k">sub </span><span class="m">_Generate166KeySetKey42</span> <span class="s">{</span>
+1683   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1684 
+1685   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="s">)</span><span class="sc">;</span>
+1686 <span class="s">}</span>
+1687 
+1688 <span class="c"># Generate key 43 value as 1/0 indicating its presence/absence or count of its</span>
+1689 <span class="c"># presence in a molecule.</span>
+1690 <span class="c">#</span>
+1691 <span class="c"># Key 43 description: QHAQH</span>
+1692 <span class="c">#</span>
+<a name="_Generate166KeySetKey43-"></a>1693 <span class="k">sub </span><span class="m">_Generate166KeySetKey43</span> <span class="s">{</span>
+1694   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1695   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+1696 
+1697   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+1698   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="k">undef</span><span class="sc">;</span>
+1699 
+1700   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
+1701   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1702   <span class="i">@NbrAtomMinHydrogenCount</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
+1703 
+1704   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
+1705 
+1706   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+1707 <span class="s">}</span>
+1708 
+1709 <span class="c"># Generate key 44 value as 1/0 indicating its presence/absence or count of its</span>
+1710 <span class="c"># presence in a molecule.</span>
+1711 <span class="c">#</span>
+1712 <span class="c"># Key 44 description: OTHER</span>
+1713 <span class="c">#</span>
+<a name="_Generate166KeySetKey44-"></a>1714 <span class="k">sub </span><span class="m">_Generate166KeySetKey44</span> <span class="s">{</span>
+1715   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1716 
+1717   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;Z&#39;</span><span class="s">)</span><span class="sc">;</span>
+1718 <span class="s">}</span>
+1719 
+1720 <span class="c"># Generate key 45 value as 1/0 indicating its presence/absence or count of its</span>
+1721 <span class="c"># presence in a molecule.</span>
+1722 <span class="c">#</span>
+1723 <span class="c"># Key 45 description: C=CN</span>
+1724 <span class="c">#</span>
+<a name="_Generate166KeySetKey45-"></a>1725 <span class="k">sub </span><span class="m">_Generate166KeySetKey45</span> <span class="s">{</span>
+1726   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1727   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1728 
+1729   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+1730   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+1731   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;=&#39;</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1732 
+1733   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1734 <span class="s">}</span>
+1735 
+1736 <span class="c"># Generate key 46 value as 1/0 indicating its presence/absence or count of its</span>
+1737 <span class="c"># presence in a molecule.</span>
+1738 <span class="c">#</span>
+1739 <span class="c"># Key 46 description: BR</span>
+1740 <span class="c">#</span>
+<a name="_Generate166KeySetKey46-"></a>1741 <span class="k">sub </span><span class="m">_Generate166KeySetKey46</span> <span class="s">{</span>
+1742   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1743 
+1744   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="s">)</span><span class="sc">;</span>
+1745 <span class="s">}</span>
+1746 
+1747 <span class="c"># Generate key 47 value as 1/0 indicating its presence/absence or count of its</span>
+1748 <span class="c"># presence in a molecule.</span>
+1749 <span class="c">#</span>
+1750 <span class="c"># Key 47 description: SAN</span>
+1751 <span class="c">#</span>
+<a name="_Generate166KeySetKey47-"></a>1752 <span class="k">sub </span><span class="m">_Generate166KeySetKey47</span> <span class="s">{</span>
+1753   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1754   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1755 
+1756   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+1757   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+1758   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1759 
+1760   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1761 <span class="s">}</span>
+1762 
+1763 <span class="c"># Generate key 48 value as 1/0 indicating its presence/absence or count of its</span>
+1764 <span class="c"># presence in a molecule.</span>
+1765 <span class="c">#</span>
+1766 <span class="c"># Key 48 description: OQ(O)O</span>
+1767 <span class="c">#</span>
+<a name="_Generate166KeySetKey48-"></a>1768 <span class="k">sub </span><span class="m">_Generate166KeySetKey48</span> <span class="s">{</span>
+1769   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1770   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1771 
+1772   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
+1773   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+1774   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1775 
+1776   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1777 <span class="s">}</span>
+1778 
+1779 <span class="c"># Generate key 49 value as 1/0 indicating its presence/absence or count of its</span>
+1780 <span class="c"># presence in a molecule.</span>
+1781 <span class="c">#</span>
+1782 <span class="c"># Key 49 description: CHARGE</span>
+1783 <span class="c">#</span>
+<a name="_Generate166KeySetKey49-"></a>1784 <span class="k">sub </span><span class="m">_Generate166KeySetKey49</span> <span class="s">{</span>
+1785   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1786   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span>
+1787 
+1788   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+1789   <span class="i">$KeyValue</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetFormalCharge</span><span class="s">(</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
+1790 
+1791   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+1792 <span class="s">}</span>
+1793 
+1794 <span class="c"># Generate key 50 value as 1/0 indicating its presence/absence or count of its</span>
+1795 <span class="c"># presence in a molecule.</span>
+1796 <span class="c">#</span>
+1797 <span class="c"># Key 50 description: C=C(C)C</span>
+1798 <span class="c">#</span>
+<a name="_Generate166KeySetKey50-"></a>1799 <span class="k">sub </span><span class="m">_Generate166KeySetKey50</span> <span class="s">{</span>
+1800   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1801   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1802 
+1803   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+1804   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
+1805   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;=&#39;</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1806 
+1807   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1808 <span class="s">}</span>
+1809 
+1810 <span class="c"># Generate key 51 value as 1/0 indicating its presence/absence or count of its</span>
+1811 <span class="c"># presence in a molecule.</span>
+1812 <span class="c">#</span>
+1813 <span class="c"># Key 51 description: CSO</span>
+1814 <span class="c">#</span>
+<a name="_Generate166KeySetKey51-"></a>1815 <span class="k">sub </span><span class="m">_Generate166KeySetKey51</span> <span class="s">{</span>
+1816   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1817   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1818 
+1819   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;S&#39;</span><span class="sc">;</span>
+1820   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+1821   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1822 
+1823   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1824 <span class="s">}</span>
+1825 
+1826 <span class="c"># Generate key 52 value as 1/0 indicating its presence/absence or count of its</span>
+1827 <span class="c"># presence in a molecule.</span>
+1828 <span class="c">#</span>
+1829 <span class="c"># Key 52 description: NN</span>
+1830 <span class="c">#</span>
+<a name="_Generate166KeySetKey52-"></a>1831 <span class="k">sub </span><span class="m">_Generate166KeySetKey52</span> <span class="s">{</span>
+1832   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1833 
+1834   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+1835 <span class="s">}</span>
+1836 
+1837 <span class="c"># Generate key 53 value as 1/0 indicating its presence/absence or count of its</span>
+1838 <span class="c"># presence in a molecule.</span>
+1839 <span class="c">#</span>
+1840 <span class="c"># Key 53 description: QHAAAQH</span>
+1841 <span class="c">#</span>
+<a name="_Generate166KeySetKey53-"></a>1842 <span class="k">sub </span><span class="m">_Generate166KeySetKey53</span> <span class="s">{</span>
+1843   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1844   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+1845 
+1846   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
+1847   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1848   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
+1849 
+1850   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+1851 <span class="s">}</span>
+1852 
+1853 <span class="c"># Generate key 54 value as 1/0 indicating its presence/absence or count of its</span>
+1854 <span class="c"># presence in a molecule.</span>
+1855 <span class="c">#</span>
+1856 <span class="c"># Key 54 description: QHAAQH</span>
+1857 <span class="c">#</span>
+<a name="_Generate166KeySetKey54-"></a>1858 <span class="k">sub </span><span class="m">_Generate166KeySetKey54</span> <span class="s">{</span>
+1859   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1860   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+1861 
+1862   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
+1863   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1864   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
+1865 
+1866   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+1867 <span class="s">}</span>
+1868 
+1869 <span class="c"># Generate key 55 value as 1/0 indicating its presence/absence or count of its</span>
+1870 <span class="c"># presence in a molecule.</span>
+1871 <span class="c">#</span>
+1872 <span class="c"># Key 55 description: OSO</span>
+1873 <span class="c">#</span>
+<a name="_Generate166KeySetKey55-"></a>1874 <span class="k">sub </span><span class="m">_Generate166KeySetKey55</span> <span class="s">{</span>
+1875   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1876   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1877 
+1878   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;S&#39;</span><span class="sc">;</span>
+1879   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+1880   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1881 
+1882   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1883 <span class="s">}</span>
+1884 
+1885 <span class="c"># Generate key 56 value as 1/0 indicating its presence/absence or count of its</span>
+1886 <span class="c"># presence in a molecule.</span>
+1887 <span class="c">#</span>
+1888 <span class="c"># Key 56 description: ON(O)C</span>
+1889 <span class="c">#</span>
+<a name="_Generate166KeySetKey56-"></a>1890 <span class="k">sub </span><span class="m">_Generate166KeySetKey56</span> <span class="s">{</span>
+1891   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1892   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1893 
+1894   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;N&#39;</span><span class="sc">;</span>
+1895   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
+1896   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1897 
+1898   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1899 <span class="s">}</span>
+1900 
+1901 <span class="c"># Generate key 57 value as 1/0 indicating its presence/absence or count of its</span>
+1902 <span class="c"># presence in a molecule.</span>
+1903 <span class="c">#</span>
+1904 <span class="c"># Key 57 description: O HETEROCYCLE</span>
+1905 <span class="c">#</span>
+<a name="_Generate166KeySetKey57-"></a>1906 <span class="k">sub </span><span class="m">_Generate166KeySetKey57</span> <span class="s">{</span>
+1907   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1908   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
+1909 
+1910   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span><span class="sc">;</span>
+1911 <span class="s">}</span>
+1912 
+1913 <span class="c"># Generate key 58 value as 1/0 indicating its presence/absence or count of its</span>
+1914 <span class="c"># presence in a molecule.</span>
+1915 <span class="c">#</span>
+1916 <span class="c"># Key 58 description: QSQ</span>
+1917 <span class="c">#</span>
+<a name="_Generate166KeySetKey58-"></a>1918 <span class="k">sub </span><span class="m">_Generate166KeySetKey58</span> <span class="s">{</span>
+1919   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1920   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1921 
+1922   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;S&#39;</span><span class="sc">;</span>
+1923   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
+1924   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1925 
+1926   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1927 <span class="s">}</span>
+1928 
+1929 <span class="c"># Generate key 59 value as 1/0 indicating its presence/absence or count of its</span>
+1930 <span class="c"># presence in a molecule.</span>
+1931 <span class="c">#</span>
+1932 <span class="c"># Key 59 description: Snot%A%A</span>
+1933 <span class="c">#</span>
+<a name="_Generate166KeySetKey59-"></a>1934 <span class="k">sub </span><span class="m">_Generate166KeySetKey59</span> <span class="s">{</span>
+1935   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1936   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1937 
+1938   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+1939   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+1940   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;not%&#39;</span><span class="cm">,</span> <span class="q">&#39;%&#39;</span><span class="s">)</span><span class="sc">;</span>
+1941 
+1942   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1943 <span class="s">}</span>
+1944 
+1945 <span class="c"># Generate key 60 value as 1/0 indicating its presence/absence or count of its</span>
+1946 <span class="c"># presence in a molecule.</span>
+1947 <span class="c">#</span>
+1948 <span class="c"># Key 60 description: S=O</span>
+1949 <span class="c">#</span>
+<a name="_Generate166KeySetKey60-"></a>1950 <span class="k">sub </span><span class="m">_Generate166KeySetKey60</span> <span class="s">{</span>
+1951   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1952   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span>
+1953 
+1954   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
+1955 <span class="s">}</span>
+1956 
+1957 <span class="c"># Generate key 61 value as 1/0 indicating its presence/absence or count of its</span>
+1958 <span class="c"># presence in a molecule.</span>
+1959 <span class="c">#</span>
+1960 <span class="c"># Key 61 description: AS(A)A</span>
+1961 <span class="c">#</span>
+<a name="_Generate166KeySetKey61-"></a>1962 <span class="k">sub </span><span class="m">_Generate166KeySetKey61</span> <span class="s">{</span>
+1963   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1964   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1965 
+1966   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;S&#39;</span><span class="sc">;</span>
+1967   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+1968   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+1969 
+1970   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1971 <span class="s">}</span>
+1972 
+1973 <span class="c"># Generate key 62 value as 1/0 indicating its presence/absence or count of its</span>
+1974 <span class="c"># presence in a molecule.</span>
+1975 <span class="c">#</span>
+1976 <span class="c"># Key 62 description: A$A!A$A</span>
+1977 <span class="c">#</span>
+<a name="_Generate166KeySetKey62-"></a>1978 <span class="k">sub </span><span class="m">_Generate166KeySetKey62</span> <span class="s">{</span>
+1979   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1980   <span class="k">my</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1981 
+1982   <span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="s">)</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+1983   <span class="i">$BondSymbol</span> = <span class="q">&#39;!&#39;</span><span class="sc">;</span>
+1984 
+1985   <span class="i">@NbrAtomsSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
+1986   <span class="i">@NbrAtomsBondSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;$&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;$&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
+1987   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondNeighborhoodKeys</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> \<span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+1988 <span class="s">}</span>
+1989 
+1990 <span class="c"># Generate key 63 value as 1/0 indicating its presence/absence or count of its</span>
+1991 <span class="c"># presence in a molecule.</span>
+1992 <span class="c">#</span>
+1993 <span class="c"># Key 63 description: N=O</span>
+1994 <span class="c">#</span>
+<a name="_Generate166KeySetKey63-"></a>1995 <span class="k">sub </span><span class="m">_Generate166KeySetKey63</span> <span class="s">{</span>
+1996   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+1997   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span>
+1998 
+1999   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
+2000 <span class="s">}</span>
+2001 
+2002 <span class="c"># Generate key 64 value as 1/0 indicating its presence/absence or count of its</span>
+2003 <span class="c"># presence in a molecule.</span>
+2004 <span class="c">#</span>
+2005 <span class="c"># Key 64 description: A$A!S</span>
+2006 <span class="c">#</span>
+<a name="_Generate166KeySetKey64-"></a>2007 <span class="k">sub </span><span class="m">_Generate166KeySetKey64</span> <span class="s">{</span>
+2008   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2009   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2010 
+2011   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+2012   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="s">)</span><span class="sc">;</span>
+2013   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;$&#39;</span><span class="cm">,</span> <span class="q">&#39;!&#39;</span><span class="s">)</span><span class="sc">;</span>
+2014 
+2015   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2016 <span class="s">}</span>
+2017 
+2018 <span class="c"># Generate key 65 value as 1/0 indicating its presence/absence or count of its</span>
+2019 <span class="c"># presence in a molecule.</span>
+2020 <span class="c">#</span>
+2021 <span class="c"># Key 65 description: C%N</span>
+2022 <span class="c">#</span>
+<a name="_Generate166KeySetKey65-"></a>2023 <span class="k">sub </span><span class="m">_Generate166KeySetKey65</span> <span class="s">{</span>
+2024   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2025   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;%&#39;</span><span class="sc">;</span>
+2026 
+2027   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+2028 <span class="s">}</span>
+2029 
+2030 <span class="c"># Generate key 66 value as 1/0 indicating its presence/absence or count of its</span>
+2031 <span class="c"># presence in a molecule.</span>
+2032 <span class="c">#</span>
+2033 <span class="c"># Key 66 description: CC(C)(C)A</span>
+2034 <span class="c">#</span>
+<a name="_Generate166KeySetKey66-"></a>2035 <span class="k">sub </span><span class="m">_Generate166KeySetKey66</span> <span class="s">{</span>
+2036   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2037   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2038 
+2039   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+2040   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+2041   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2042 
+2043   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2044 <span class="s">}</span>
+2045 
+2046 <span class="c"># Generate key 67 value as 1/0 indicating its presence/absence or count of its</span>
+2047 <span class="c"># presence in a molecule.</span>
+2048 <span class="c">#</span>
+2049 <span class="c"># Key 67 description: QS</span>
+2050 <span class="c">#</span>
+<a name="_Generate166KeySetKey67-"></a>2051 <span class="k">sub </span><span class="m">_Generate166KeySetKey67</span> <span class="s">{</span>
+2052   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2053 
+2054   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="s">)</span><span class="sc">;</span>
+2055 <span class="s">}</span>
+2056 
+2057 <span class="c"># Generate key 68 value as 1/0 indicating its presence/absence or count of its</span>
+2058 <span class="c"># presence in a molecule.</span>
+2059 <span class="c">#</span>
+2060 <span class="c"># Key 68 description: QHQH (&amp;...)</span>
+2061 <span class="c">#</span>
+<a name="_Generate166KeySetKey68-"></a>2062 <span class="k">sub </span><span class="m">_Generate166KeySetKey68</span> <span class="s">{</span>
+2063   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2064   <span class="k">my</span><span class="s">(</span><span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2065   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="k">undef</span><span class="sc">;</span>
+2066   <span class="k">my</span><span class="s">(</span><span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
+2067 
+2068   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2069 <span class="s">}</span>
+2070 
+2071 <span class="c"># Generate key 69 value as 1/0 indicating its presence/absence or count of its</span>
+2072 <span class="c"># presence in a molecule.</span>
+2073 <span class="c">#</span>
+2074 <span class="c"># Key 69 description: QQH</span>
+2075 <span class="c">#</span>
+<a name="_Generate166KeySetKey69-"></a>2076 <span class="k">sub </span><span class="m">_Generate166KeySetKey69</span> <span class="s">{</span>
+2077   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2078   <span class="k">my</span><span class="s">(</span><span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2079   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="k">undef</span><span class="sc">;</span>
+2080   <span class="k">my</span><span class="s">(</span><span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
+2081 
+2082   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2083 <span class="s">}</span>
+2084 
+2085 <span class="c"># Generate key 70 value as 1/0 indicating its presence/absence or count of its</span>
+2086 <span class="c"># presence in a molecule.</span>
+2087 <span class="c">#</span>
+2088 <span class="c"># Key 70 description: QNQ</span>
+2089 <span class="c">#</span>
+<a name="_Generate166KeySetKey70-"></a>2090 <span class="k">sub </span><span class="m">_Generate166KeySetKey70</span> <span class="s">{</span>
+2091   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2092   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2093 
+2094   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;N&#39;</span><span class="sc">;</span>
+2095   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
+2096   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2097 
+2098   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2099 <span class="s">}</span>
+2100 
+2101 <span class="c"># Generate key 71 value as 1/0 indicating its presence/absence or count of its</span>
+2102 <span class="c"># presence in a molecule.</span>
+2103 <span class="c">#</span>
+2104 <span class="c"># Key 71 description: NO</span>
+2105 <span class="c">#</span>
+<a name="_Generate166KeySetKey71-"></a>2106 <span class="k">sub </span><span class="m">_Generate166KeySetKey71</span> <span class="s">{</span>
+2107   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2108 
+2109   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+2110 <span class="s">}</span>
+2111 
+2112 <span class="c"># Generate key 72 value as 1/0 indicating its presence/absence or count of its</span>
+2113 <span class="c"># presence in a molecule.</span>
+2114 <span class="c">#</span>
+2115 <span class="c"># Key 72 description: OAAO</span>
+2116 <span class="c">#</span>
+<a name="_Generate166KeySetKey72-"></a>2117 <span class="k">sub </span><span class="m">_Generate166KeySetKey72</span> <span class="s">{</span>
+2118   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2119   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2120 
+2121   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+2122   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2123 
+2124   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2125 <span class="s">}</span>
+2126 
+2127 <span class="c"># Generate key 73 value as 1/0 indicating its presence/absence or count of its</span>
+2128 <span class="c"># presence in a molecule.</span>
+2129 <span class="c">#</span>
+2130 <span class="c"># Key 73 description: S=A</span>
+2131 <span class="c">#</span>
+<a name="_Generate166KeySetKey73-"></a>2132 <span class="k">sub </span><span class="m">_Generate166KeySetKey73</span> <span class="s">{</span>
+2133   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2134   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span>
+2135 
+2136   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
+2137 <span class="s">}</span>
+2138 
+2139 <span class="c"># Generate key 74 value as 1/0 indicating its presence/absence or count of its</span>
+2140 <span class="c"># presence in a molecule.</span>
+2141 <span class="c">#</span>
+2142 <span class="c"># Key 74 description: CH3ACH3</span>
+2143 <span class="c">#</span>
+<a name="_Generate166KeySetKey74-"></a>2144 <span class="k">sub </span><span class="m">_Generate166KeySetKey74</span> <span class="s">{</span>
+2145   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2146   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2147 
+2148   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+2149   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="k">undef</span><span class="sc">;</span>
+2150 
+2151   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
+2152   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2153   <span class="i">@NbrAtomMinHydrogenCount</span> = <span class="s">(</span><span class="n">3</span><span class="cm">,</span> <span class="n">3</span><span class="s">)</span><span class="sc">;</span>
+2154 
+2155   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
+2156 
+2157   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2158 <span class="s">}</span>
+2159 
+2160 <span class="c"># Generate key 75 value as 1/0 indicating its presence/absence or count of its</span>
+2161 <span class="c"># presence in a molecule.</span>
+2162 <span class="c">#</span>
+2163 <span class="c"># Key 75 description: A!N$A</span>
+2164 <span class="c">#</span>
+<a name="_Generate166KeySetKey75-"></a>2165 <span class="k">sub </span><span class="m">_Generate166KeySetKey75</span> <span class="s">{</span>
+2166   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2167   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2168 
+2169   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;N&#39;</span><span class="sc">;</span>
+2170   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+2171   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;!&#39;</span><span class="cm">,</span> <span class="q">&#39;$&#39;</span><span class="s">)</span><span class="sc">;</span>
+2172 
+2173   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2174 <span class="s">}</span>
+2175 
+2176 <span class="c"># Generate key 76 value as 1/0 indicating its presence/absence or count of its</span>
+2177 <span class="c"># presence in a molecule.</span>
+2178 <span class="c">#</span>
+2179 <span class="c"># Key 76 description: C=C(A)A</span>
+2180 <span class="c">#</span>
+<a name="_Generate166KeySetKey76-"></a>2181 <span class="k">sub </span><span class="m">_Generate166KeySetKey76</span> <span class="s">{</span>
+2182   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2183   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2184 
+2185   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+2186   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+2187   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;=&#39;</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2188 
+2189   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2190 <span class="s">}</span>
+2191 
+2192 <span class="c"># Generate key 77 value as 1/0 indicating its presence/absence or count of its</span>
+2193 <span class="c"># presence in a molecule.</span>
+2194 <span class="c">#</span>
+2195 <span class="c"># Key 77 description: NAN</span>
+2196 <span class="c">#</span>
+<a name="_Generate166KeySetKey77-"></a>2197 <span class="k">sub </span><span class="m">_Generate166KeySetKey77</span> <span class="s">{</span>
+2198   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2199   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2200 
+2201   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+2202   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+2203   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2204 
+2205   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2206 <span class="s">}</span>
+2207 
+2208 <span class="c"># Generate key 78 value as 1/0 indicating its presence/absence or count of its</span>
+2209 <span class="c"># presence in a molecule.</span>
+2210 <span class="c">#</span>
+2211 <span class="c"># Key 78 description: C=N</span>
+2212 <span class="c">#</span>
+<a name="_Generate166KeySetKey78-"></a>2213 <span class="k">sub </span><span class="m">_Generate166KeySetKey78</span> <span class="s">{</span>
+2214   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2215   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span>
+2216 
+2217   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
+2218 <span class="s">}</span>
+2219 
+2220 <span class="c"># Generate key 79 value as 1/0 indicating its presence/absence or count of its</span>
+2221 <span class="c"># presence in a molecule.</span>
+2222 <span class="c">#</span>
+2223 <span class="c"># Key 79 description: NAAN</span>
+2224 <span class="c">#</span>
+<a name="_Generate166KeySetKey79-"></a>2225 <span class="k">sub </span><span class="m">_Generate166KeySetKey79</span> <span class="s">{</span>
+2226   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2227   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2228 
+2229   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+2230   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2231 
+2232   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2233 <span class="s">}</span>
+2234 
+2235 <span class="c"># Generate key 80 value as 1/0 indicating its presence/absence or count of its</span>
+2236 <span class="c"># presence in a molecule.</span>
+2237 <span class="c">#</span>
+2238 <span class="c"># Key 80 description: NAAAN</span>
+2239 <span class="c">#</span>
+<a name="_Generate166KeySetKey80-"></a>2240 <span class="k">sub </span><span class="m">_Generate166KeySetKey80</span> <span class="s">{</span>
+2241   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2242   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2243 
+2244   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+2245   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2246 
+2247   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2248 <span class="s">}</span>
+2249 
+2250 <span class="c"># Generate key 81 value as 1/0 indicating its presence/absence or count of its</span>
+2251 <span class="c"># presence in a molecule.</span>
+2252 <span class="c">#</span>
+2253 <span class="c"># Key 81 description: SA(A)A</span>
+2254 <span class="c">#</span>
+<a name="_Generate166KeySetKey81-"></a>2255 <span class="k">sub </span><span class="m">_Generate166KeySetKey81</span> <span class="s">{</span>
+2256   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2257   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2258 
+2259   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+2260   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+2261   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2262 
+2263   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2264 <span class="s">}</span>
+2265 
+2266 <span class="c"># Generate key 82 value as 1/0 indicating its presence/absence or count of its</span>
+2267 <span class="c"># presence in a molecule.</span>
+2268 <span class="c">#</span>
+2269 <span class="c"># Key 82 description: ACH2QH</span>
+2270 <span class="c">#</span>
+<a name="_Generate166KeySetKey82-"></a>2271 <span class="k">sub </span><span class="m">_Generate166KeySetKey82</span> <span class="s">{</span>
+2272   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2273   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2274 
+2275   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+2276   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span>
+2277 
+2278   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
+2279   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2280   <span class="i">@NbrAtomMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
+2281 
+2282   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
+2283 
+2284   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2285 <span class="s">}</span>
+2286 
+2287 <span class="c"># Generate key 83 value as 1/0 indicating its presence/absence or count of its</span>
+2288 <span class="c"># presence in a molecule.</span>
+2289 <span class="c">#</span>
+2290 <span class="c"># Key 83 description: QAAAA@1</span>
+2291 <span class="c">#</span>
+<a name="_Generate166KeySetKey83-"></a>2292 <span class="k">sub </span><span class="m">_Generate166KeySetKey83</span> <span class="s">{</span>
+2293   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2294   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
+2295 
+2296   <span class="i">$RingSize</span> = <span class="n">5</span><span class="sc">;</span>
+2297   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+2298   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+2299     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span><span class="i">-&gt;_IsHeteroAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> &amp;&amp; <span class="i">$Atom</span><span class="i">-&gt;IsInRingOfSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+2300       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+2301         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+2302         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+2303       <span class="s">}</span>
+2304       <span class="i">$KeyValue</span>++<span class="sc">;</span>
+2305     <span class="s">}</span>
+2306   <span class="s">}</span>
+2307   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+2308 <span class="s">}</span>
+2309 
+2310 <span class="c"># Generate key 84 value as 1/0 indicating its presence/absence or count of its</span>
+2311 <span class="c"># presence in a molecule.</span>
+2312 <span class="c">#</span>
+2313 <span class="c"># Key 84 description: NH2</span>
+2314 <span class="c">#</span>
+<a name="_Generate166KeySetKey84-"></a>2315 <span class="k">sub </span><span class="m">_Generate166KeySetKey84</span> <span class="s">{</span>
+2316   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2317   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="s">)</span><span class="sc">;</span>
+2318 
+2319   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2320 <span class="s">}</span>
+2321 
+2322 <span class="c"># Generate key 85 value as 1/0 indicating its presence/absence or count of its</span>
+2323 <span class="c"># presence in a molecule.</span>
+2324 <span class="c">#</span>
+2325 <span class="c"># Key 85 description: CN(C)C</span>
+2326 <span class="c">#</span>
+<a name="_Generate166KeySetKey85-"></a>2327 <span class="k">sub </span><span class="m">_Generate166KeySetKey85</span> <span class="s">{</span>
+2328   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2329   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2330 
+2331   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;N&#39;</span><span class="sc">;</span>
+2332   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
+2333   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2334 
+2335   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2336 <span class="s">}</span>
+2337 
+2338 <span class="c"># Generate key 86 value as 1/0 indicating its presence/absence or count of its</span>
+2339 <span class="c"># presence in a molecule.</span>
+2340 <span class="c">#</span>
+2341 <span class="c"># Key 86 description: CH2QCH2</span>
+2342 <span class="c">#</span>
+<a name="_Generate166KeySetKey86-"></a>2343 <span class="k">sub </span><span class="m">_Generate166KeySetKey86</span> <span class="s">{</span>
+2344   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2345   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2346 
+2347   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
+2348   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="k">undef</span><span class="sc">;</span>
+2349 
+2350   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
+2351   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2352   <span class="i">@NbrAtomMinHydrogenCount</span> = <span class="s">(</span><span class="n">2</span><span class="cm">,</span> <span class="n">2</span><span class="s">)</span><span class="sc">;</span>
+2353 
+2354   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
+2355 
+2356   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2357 <span class="s">}</span>
+2358 
+2359 <span class="c"># Generate key 87 value as 1/0 indicating its presence/absence or count of its</span>
+2360 <span class="c"># presence in a molecule.</span>
+2361 <span class="c">#</span>
+2362 <span class="c"># Key 87 description: X!A$A</span>
+2363 <span class="c">#</span>
+<a name="_Generate166KeySetKey87-"></a>2364 <span class="k">sub </span><span class="m">_Generate166KeySetKey87</span> <span class="s">{</span>
+2365   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2366   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2367 
+2368   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+2369   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;X&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+2370   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;!&#39;</span><span class="cm">,</span> <span class="q">&#39;$&#39;</span><span class="s">)</span><span class="sc">;</span>
+2371 
+2372   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2373 <span class="s">}</span>
+2374 
+2375 <span class="c"># Generate key 88 value as 1/0 indicating its presence/absence or count of its</span>
+2376 <span class="c"># presence in a molecule.</span>
+2377 <span class="c">#</span>
+2378 <span class="c"># Key 88 description: S</span>
+2379 <span class="c">#</span>
+<a name="_Generate166KeySetKey88-"></a>2380 <span class="k">sub </span><span class="m">_Generate166KeySetKey88</span> <span class="s">{</span>
+2381   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2382 
+2383   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="s">)</span><span class="sc">;</span>
+2384 <span class="s">}</span>
+2385 
+2386 <span class="c"># Generate key 89 value as 1/0 indicating its presence/absence or count of its</span>
+2387 <span class="c"># presence in a molecule.</span>
+2388 <span class="c">#</span>
+2389 <span class="c"># Key 89 description: OAAAO</span>
+2390 <span class="c">#</span>
+<a name="_Generate166KeySetKey89-"></a>2391 <span class="k">sub </span><span class="m">_Generate166KeySetKey89</span> <span class="s">{</span>
+2392   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2393   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2394 
+2395   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+2396   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2397 
+2398   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2399 <span class="s">}</span>
+2400 
+2401 <span class="c"># Generate key 90 value as 1/0 indicating its presence/absence or count of its</span>
+2402 <span class="c"># presence in a molecule.</span>
+2403 <span class="c">#</span>
+2404 <span class="c"># Key 90 description: QHAACH2A</span>
+2405 <span class="c">#</span>
+<a name="_Generate166KeySetKey90-"></a>2406 <span class="k">sub </span><span class="m">_Generate166KeySetKey90</span> <span class="s">{</span>
+2407   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2408   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2409 
+2410   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+2411   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2412   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2413 
+2414   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2415 <span class="s">}</span>
+2416 
+2417 <span class="c"># Generate key 91 value as 1/0 indicating its presence/absence or count of its</span>
+2418 <span class="c"># presence in a molecule.</span>
+2419 <span class="c">#</span>
+2420 <span class="c"># Key 91 description: QHAAACH2A</span>
+2421 <span class="c">#</span>
+<a name="_Generate166KeySetKey91-"></a>2422 <span class="k">sub </span><span class="m">_Generate166KeySetKey91</span> <span class="s">{</span>
+2423   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2424   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2425 
+2426   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+2427   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2428   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2429 
+2430   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2431 <span class="s">}</span>
+2432 
+2433 <span class="c"># Generate key 92 value as 1/0 indicating its presence/absence or count of its</span>
+2434 <span class="c"># presence in a molecule.</span>
+2435 <span class="c">#</span>
+2436 <span class="c"># Key 92 description: OC(N)C</span>
+2437 <span class="c">#</span>
+<a name="_Generate166KeySetKey92-"></a>2438 <span class="k">sub </span><span class="m">_Generate166KeySetKey92</span> <span class="s">{</span>
+2439   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2440   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2441 
+2442   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+2443   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
+2444   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2445 
+2446   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2447 <span class="s">}</span>
+2448 
+2449 <span class="c"># Generate key 93 value as 1/0 indicating its presence/absence or count of its</span>
+2450 <span class="c"># presence in a molecule.</span>
+2451 <span class="c">#</span>
+2452 <span class="c"># Key 93 description: QCH3</span>
+2453 <span class="c">#</span>
+<a name="_Generate166KeySetKey93-"></a>2454 <span class="k">sub </span><span class="m">_Generate166KeySetKey93</span> <span class="s">{</span>
+2455   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2456   <span class="k">my</span><span class="s">(</span><span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2457   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="k">undef</span><span class="sc">;</span>
+2458   <span class="k">my</span><span class="s">(</span><span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">3</span><span class="s">)</span><span class="sc">;</span>
+2459 
+2460   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2461 <span class="s">}</span>
+2462 
+2463 <span class="c"># Generate key 94 value as 1/0 indicating its presence/absence or count of its</span>
+2464 <span class="c"># presence in a molecule.</span>
+2465 <span class="c">#</span>
+2466 <span class="c"># Key 94 description: QN</span>
+2467 <span class="c">#</span>
+<a name="_Generate166KeySetKey94-"></a>2468 <span class="k">sub </span><span class="m">_Generate166KeySetKey94</span> <span class="s">{</span>
+2469   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2470 
+2471   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+2472 <span class="s">}</span>
+2473 
+2474 <span class="c"># Generate key 95 value as 1/0 indicating its presence/absence or count of its</span>
+2475 <span class="c"># presence in a molecule.</span>
+2476 <span class="c">#</span>
+2477 <span class="c"># Key 95 description: NAAO</span>
+2478 <span class="c">#</span>
+<a name="_Generate166KeySetKey95-"></a>2479 <span class="k">sub </span><span class="m">_Generate166KeySetKey95</span> <span class="s">{</span>
+2480   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2481   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2482 
+2483   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+2484   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2485 
+2486   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2487 <span class="s">}</span>
+2488 
+2489 <span class="c"># Generate key 96 value as 1/0 indicating its presence/absence or count of its</span>
+2490 <span class="c"># presence in a molecule.</span>
+2491 <span class="c">#</span>
+2492 <span class="c"># Key 96 description: 5M RING</span>
+2493 <span class="c">#</span>
+<a name="_Generate166KeySetKey96-"></a>2494 <span class="k">sub </span><span class="m">_Generate166KeySetKey96</span> <span class="s">{</span>
+2495   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2496   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span>
+2497 
+2498   <span class="i">$RingSize</span> = <span class="n">5</span><span class="sc">;</span>
+2499   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+2500   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
+2501 
+2502   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+2503     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
+2504   <span class="s">}</span>
+2505   <span class="k">else</span> <span class="s">{</span>
+2506     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span><span class="sc">;</span>
+2507   <span class="s">}</span>
+2508   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+2509 <span class="s">}</span>
+2510 
+2511 <span class="c"># Generate key 97 value as 1/0 indicating its presence/absence or count of its</span>
+2512 <span class="c"># presence in a molecule.</span>
+2513 <span class="c">#</span>
+2514 <span class="c"># Key 97 description: NAAAO</span>
+2515 <span class="c">#</span>
+<a name="_Generate166KeySetKey97-"></a>2516 <span class="k">sub </span><span class="m">_Generate166KeySetKey97</span> <span class="s">{</span>
+2517   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2518   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2519 
+2520   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+2521   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2522 
+2523   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2524 <span class="s">}</span>
+2525 
+2526 <span class="c"># Generate key 98 value as 1/0 indicating its presence/absence or count of its</span>
+2527 <span class="c"># presence in a molecule.</span>
+2528 <span class="c">#</span>
+2529 <span class="c"># Key 98 description: QAAAAA@1</span>
+2530 <span class="c">#</span>
+<a name="_Generate166KeySetKey98-"></a>2531 <span class="k">sub </span><span class="m">_Generate166KeySetKey98</span> <span class="s">{</span>
+2532   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2533   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
+2534 
+2535   <span class="i">$RingSize</span> = <span class="n">6</span><span class="sc">;</span>
+2536   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+2537   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+2538     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span><span class="i">-&gt;_IsHeteroAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> &amp;&amp; <span class="i">$Atom</span><span class="i">-&gt;IsInRingOfSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+2539       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+2540         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+2541         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+2542       <span class="s">}</span>
+2543       <span class="i">$KeyValue</span>++<span class="sc">;</span>
+2544     <span class="s">}</span>
+2545   <span class="s">}</span>
+2546   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+2547 <span class="s">}</span>
+2548 
+2549 <span class="c"># Generate key 99 value as 1/0 indicating its presence/absence or count of its</span>
+2550 <span class="c"># presence in a molecule.</span>
+2551 <span class="c">#</span>
+2552 <span class="c"># Key 99 description: C=C</span>
+2553 <span class="c">#</span>
+<a name="_Generate166KeySetKey99-"></a>2554 <span class="k">sub </span><span class="m">_Generate166KeySetKey99</span> <span class="s">{</span>
+2555   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2556   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span>
+2557 
+2558   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
+2559 <span class="s">}</span>
+2560 
+2561 <span class="c"># Generate key 100 value as 1/0 indicating its presence/absence or count of its</span>
+2562 <span class="c"># presence in a molecule.</span>
+2563 <span class="c">#</span>
+2564 <span class="c"># Key 100 description: ACH2N</span>
+2565 <span class="c">#</span>
+<a name="_Generate166KeySetKey100-"></a>2566 <span class="k">sub </span><span class="m">_Generate166KeySetKey100</span> <span class="s">{</span>
+2567   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2568   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2569 
+2570   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+2571   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span>
+2572 
+2573   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+2574   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2575 
+2576   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
+2577 
+2578   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2579 <span class="s">}</span>
+2580 
+2581 <span class="c"># Generate key 101 value as 1/0 indicating its presence/absence or count of its</span>
+2582 <span class="c"># presence in a molecule.</span>
+2583 <span class="c">#</span>
+2584 <span class="c"># Key 101 description: 8M RING</span>
+2585 <span class="c">#</span>
+<a name="_Generate166KeySetKey101-"></a>2586 <span class="k">sub </span><span class="m">_Generate166KeySetKey101</span> <span class="s">{</span>
+2587   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2588   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span>
+2589 
+2590   <span class="i">$RingSize</span> = <span class="n">8</span><span class="sc">;</span>
+2591   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+2592   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
+2593 
+2594   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+2595     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
+2596   <span class="s">}</span>
+2597   <span class="k">else</span> <span class="s">{</span>
+2598     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span><span class="sc">;</span>
+2599   <span class="s">}</span>
+2600   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+2601 <span class="s">}</span>
+2602 
+2603 <span class="c"># Generate key 102 value as 1/0 indicating its presence/absence or count of its</span>
+2604 <span class="c"># presence in a molecule.</span>
+2605 <span class="c">#</span>
+2606 <span class="c"># Key 102 description: QO</span>
+2607 <span class="c">#</span>
+<a name="_Generate166KeySetKey102-"></a>2608 <span class="k">sub </span><span class="m">_Generate166KeySetKey102</span> <span class="s">{</span>
+2609   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2610 
+2611   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+2612 <span class="s">}</span>
+2613 
+2614 <span class="c"># Generate key 103 value as 1/0 indicating its presence/absence or count of its</span>
+2615 <span class="c"># presence in a molecule.</span>
+2616 <span class="c">#</span>
+2617 <span class="c"># Key 103 description: CL</span>
+2618 <span class="c">#</span>
+<a name="_Generate166KeySetKey103-"></a>2619 <span class="k">sub </span><span class="m">_Generate166KeySetKey103</span> <span class="s">{</span>
+2620   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2621 
+2622   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="s">)</span><span class="sc">;</span>
+2623 <span class="s">}</span>
+2624 
+2625 <span class="c"># Generate key 104 value as 1/0 indicating its presence/absence or count of its</span>
+2626 <span class="c"># presence in a molecule.</span>
+2627 <span class="c">#</span>
+2628 <span class="c"># Key 104 description: QHACH2A</span>
+2629 <span class="c">#</span>
+<a name="_Generate166KeySetKey104-"></a>2630 <span class="k">sub </span><span class="m">_Generate166KeySetKey104</span> <span class="s">{</span>
+2631   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2632   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2633 
+2634   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+2635   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2636   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2637 
+2638   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2639 <span class="s">}</span>
+2640 
+2641 <span class="c"># Generate key 105 value as 1/0 indicating its presence/absence or count of its</span>
+2642 <span class="c"># presence in a molecule.</span>
+2643 <span class="c">#</span>
+2644 <span class="c"># Key 105 description: A$A($A)$A</span>
+2645 <span class="c">#</span>
+<a name="_Generate166KeySetKey105-"></a>2646 <span class="k">sub </span><span class="m">_Generate166KeySetKey105</span> <span class="s">{</span>
+2647   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2648   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2649 
+2650   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+2651   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+2652   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;$&#39;</span><span class="cm">,</span> <span class="q">&#39;$&#39;</span><span class="cm">,</span> <span class="q">&#39;$&#39;</span><span class="s">)</span><span class="sc">;</span>
+2653 
+2654   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2655 <span class="s">}</span>
+2656 
+2657 <span class="c"># Generate key 106 value as 1/0 indicating its presence/absence or count of its</span>
+2658 <span class="c"># presence in a molecule.</span>
+2659 <span class="c">#</span>
+2660 <span class="c"># Key 106 description: QA(Q)Q</span>
+2661 <span class="c">#</span>
+<a name="_Generate166KeySetKey106-"></a>2662 <span class="k">sub </span><span class="m">_Generate166KeySetKey106</span> <span class="s">{</span>
+2663   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2664   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2665 
+2666   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+2667   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
+2668   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2669 
+2670   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2671 <span class="s">}</span>
+2672 
+2673 <span class="c"># Generate key 107 value as 1/0 indicating its presence/absence or count of its</span>
+2674 <span class="c"># presence in a molecule.</span>
+2675 <span class="c">#</span>
+2676 <span class="c"># Key 107 description: XA(A)A</span>
+2677 <span class="c">#</span>
+<a name="_Generate166KeySetKey107-"></a>2678 <span class="k">sub </span><span class="m">_Generate166KeySetKey107</span> <span class="s">{</span>
+2679   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2680   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2681 
+2682   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+2683   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;X&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+2684   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2685 
+2686   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2687 <span class="s">}</span>
+2688 
+2689 <span class="c"># Generate key 108 value as 1/0 indicating its presence/absence or count of its</span>
+2690 <span class="c"># presence in a molecule.</span>
+2691 <span class="c">#</span>
+2692 <span class="c"># Key 108 description: CH3AAACH2A</span>
+2693 <span class="c">#</span>
+<a name="_Generate166KeySetKey108-"></a>2694 <span class="k">sub </span><span class="m">_Generate166KeySetKey108</span> <span class="s">{</span>
+2695   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2696   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2697 
+2698   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+2699   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2700   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">3</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2701 
+2702   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2703 <span class="s">}</span>
+2704 
+2705 <span class="c"># Generate key 109 value as 1/0 indicating its presence/absence or count of its</span>
+2706 <span class="c"># presence in a molecule.</span>
+2707 <span class="c">#</span>
+2708 <span class="c"># Key 109 description: ACH2O</span>
+2709 <span class="c">#</span>
+<a name="_Generate166KeySetKey109-"></a>2710 <span class="k">sub </span><span class="m">_Generate166KeySetKey109</span> <span class="s">{</span>
+2711   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2712   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2713 
+2714   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+2715   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span>
+2716 
+2717   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+2718   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2719 
+2720   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
+2721 
+2722   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2723 <span class="s">}</span>
+2724 
+2725 <span class="c"># Generate key 110 value as 1/0 indicating its presence/absence or count of its</span>
+2726 <span class="c"># presence in a molecule.</span>
+2727 <span class="c">#</span>
+2728 <span class="c"># Key 110 description: NCO</span>
+2729 <span class="c">#</span>
+<a name="_Generate166KeySetKey110-"></a>2730 <span class="k">sub </span><span class="m">_Generate166KeySetKey110</span> <span class="s">{</span>
+2731   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2732   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2733 
+2734   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+2735   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+2736   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2737 
+2738   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2739 <span class="s">}</span>
+2740 
+2741 <span class="c"># Generate key 111 value as 1/0 indicating its presence/absence or count of its</span>
+2742 <span class="c"># presence in a molecule.</span>
+2743 <span class="c">#</span>
+2744 <span class="c"># Key 111 description: NACH2A</span>
+2745 <span class="c">#</span>
+<a name="_Generate166KeySetKey111-"></a>2746 <span class="k">sub </span><span class="m">_Generate166KeySetKey111</span> <span class="s">{</span>
+2747   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2748   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2749 
+2750   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+2751   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2752   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2753 
+2754   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2755 <span class="s">}</span>
+2756 
+2757 <span class="c"># Generate key 112 value as 1/0 indicating its presence/absence or count of its</span>
+2758 <span class="c"># presence in a molecule.</span>
+2759 <span class="c">#</span>
+2760 <span class="c"># Key 112 description: AA(A)(A)A</span>
+2761 <span class="c">#</span>
+<a name="_Generate166KeySetKey112-"></a>2762 <span class="k">sub </span><span class="m">_Generate166KeySetKey112</span> <span class="s">{</span>
+2763   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2764   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2765 
+2766   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+2767   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+2768   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2769 
+2770   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2771 <span class="s">}</span>
+2772 
+2773 <span class="c"># Generate key 113 value as 1/0 indicating its presence/absence or count of its</span>
+2774 <span class="c"># presence in a molecule.</span>
+2775 <span class="c">#</span>
+2776 <span class="c"># Key 113 description: Onot%A%A</span>
+2777 <span class="c">#</span>
+<a name="_Generate166KeySetKey113-"></a>2778 <span class="k">sub </span><span class="m">_Generate166KeySetKey113</span> <span class="s">{</span>
+2779   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2780   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2781 
+2782   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+2783   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+2784   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;not%&#39;</span><span class="cm">,</span> <span class="q">&#39;%&#39;</span><span class="s">)</span><span class="sc">;</span>
+2785 
+2786   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2787 <span class="s">}</span>
+2788 
+2789 <span class="c"># Generate key 114 value as 1/0 indicating its presence/absence or count of its</span>
+2790 <span class="c"># presence in a molecule.</span>
+2791 <span class="c">#</span>
+2792 <span class="c"># Key 114 description: CH3CH2A</span>
+2793 <span class="c">#</span>
+<a name="_Generate166KeySetKey114-"></a>2794 <span class="k">sub </span><span class="m">_Generate166KeySetKey114</span> <span class="s">{</span>
+2795   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2796   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2797 
+2798   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+2799   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span>
+2800 
+2801   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+2802   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2803   <span class="i">@NbrAtomMinHydrogenCount</span> = <span class="s">(</span><span class="n">3</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2804 
+2805   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
+2806 
+2807   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2808 <span class="s">}</span>
+2809 
+2810 <span class="c"># Generate key 115 value as 1/0 indicating its presence/absence or count of its</span>
+2811 <span class="c"># presence in a molecule.</span>
+2812 <span class="c">#</span>
+2813 <span class="c"># Key 115 description: CH3ACH2A</span>
+2814 <span class="c">#</span>
+<a name="_Generate166KeySetKey115-"></a>2815 <span class="k">sub </span><span class="m">_Generate166KeySetKey115</span> <span class="s">{</span>
+2816   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2817   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2818 
+2819   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+2820   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2821   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">3</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2822 
+2823   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2824 <span class="s">}</span>
+2825 
+2826 <span class="c"># Generate key 116 value as 1/0 indicating its presence/absence or count of its</span>
+2827 <span class="c"># presence in a molecule.</span>
+2828 <span class="c">#</span>
+2829 <span class="c"># Key 116 description: CH3AACH2A</span>
+2830 <span class="c">#</span>
+<a name="_Generate166KeySetKey116-"></a>2831 <span class="k">sub </span><span class="m">_Generate166KeySetKey116</span> <span class="s">{</span>
+2832   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2833   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2834 
+2835   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+2836   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2837   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">3</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2838 
+2839   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2840 <span class="s">}</span>
+2841 
+2842 <span class="c"># Generate key 117 value as 1/0 indicating its presence/absence or count of its</span>
+2843 <span class="c"># presence in a molecule.</span>
+2844 <span class="c">#</span>
+2845 <span class="c"># Key 117 description: NAO</span>
+2846 <span class="c">#</span>
+<a name="_Generate166KeySetKey117-"></a>2847 <span class="k">sub </span><span class="m">_Generate166KeySetKey117</span> <span class="s">{</span>
+2848   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2849   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2850 
+2851   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+2852   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+2853   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2854 
+2855   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2856 <span class="s">}</span>
+2857 
+2858 <span class="c"># Generate key 118 value as 1/0 indicating its presence/absence or count of its</span>
+2859 <span class="c"># presence in a molecule.</span>
+2860 <span class="c">#</span>
+2861 <span class="c"># Key 118 description: ACH2CH2A &gt; 1</span>
+2862 <span class="c">#</span>
+<a name="_Generate166KeySetKey118-"></a>2863 <span class="k">sub </span><span class="m">_Generate166KeySetKey118</span> <span class="s">{</span>
+2864   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2865   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+2866 
+2867   <span class="i">$MinKeyCount</span> = <span class="n">2</span><span class="sc">;</span>
+2868   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+2869   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2870   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2871 
+2872   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span>
+2873 <span class="s">}</span>
+2874 
+2875 <span class="c"># Generate key 119 value as 1/0 indicating its presence/absence or count of its</span>
+2876 <span class="c"># presence in a molecule.</span>
+2877 <span class="c">#</span>
+2878 <span class="c"># Key 119 description: N=A</span>
+2879 <span class="c">#</span>
+<a name="_Generate166KeySetKey119-"></a>2880 <span class="k">sub </span><span class="m">_Generate166KeySetKey119</span> <span class="s">{</span>
+2881   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2882   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span>
+2883 
+2884   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
+2885 <span class="s">}</span>
+2886 
+2887 <span class="c"># Generate key 120 value as 1/0 indicating its presence/absence or count of its</span>
+2888 <span class="c"># presence in a molecule.</span>
+2889 <span class="c">#</span>
+2890 <span class="c"># Key 120 description: HETEROCYCLIC ATOM &gt; 1 (&amp;...)</span>
+2891 <span class="c">#</span>
+<a name="_Generate166KeySetKey120-"></a>2892 <span class="k">sub </span><span class="m">_Generate166KeySetKey120</span> <span class="s">{</span>
+2893   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2894   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span> = <span class="s">(</span><span class="n">2</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
+2895 
+2896   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span><span class="sc">;</span>
+2897 <span class="s">}</span>
+2898 
+2899 <span class="c"># Generate key 121 value as 1/0 indicating its presence/absence or count of its</span>
+2900 <span class="c"># presence in a molecule.</span>
+2901 <span class="c">#</span>
+2902 <span class="c"># Key 121 description: N HETEROCYCLE</span>
+2903 <span class="c">#</span>
+<a name="_Generate166KeySetKey121-"></a>2904 <span class="k">sub </span><span class="m">_Generate166KeySetKey121</span> <span class="s">{</span>
+2905   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2906   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
+2907 
+2908   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span><span class="sc">;</span>
+2909 <span class="s">}</span>
+2910 
+2911 <span class="c"># Generate key 122 value as 1/0 indicating its presence/absence or count of its</span>
+2912 <span class="c"># presence in a molecule.</span>
+2913 <span class="c">#</span>
+2914 <span class="c"># Key 122 description: AN(A)A</span>
+2915 <span class="c">#</span>
+<a name="_Generate166KeySetKey122-"></a>2916 <span class="k">sub </span><span class="m">_Generate166KeySetKey122</span> <span class="s">{</span>
+2917   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2918   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2919 
+2920   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;N&#39;</span><span class="sc">;</span>
+2921   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+2922   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2923 
+2924   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2925 <span class="s">}</span>
+2926 
+2927 <span class="c"># Generate key 123 value as 1/0 indicating its presence/absence or count of its</span>
+2928 <span class="c"># presence in a molecule.</span>
+2929 <span class="c">#</span>
+2930 <span class="c"># Key 123 description: OCO</span>
+2931 <span class="c">#</span>
+<a name="_Generate166KeySetKey123-"></a>2932 <span class="k">sub </span><span class="m">_Generate166KeySetKey123</span> <span class="s">{</span>
+2933   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2934   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2935 
+2936   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+2937   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+2938   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+2939 
+2940   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2941 <span class="s">}</span>
+2942 
+2943 <span class="c"># Generate key 124 value as 1/0 indicating its presence/absence or count of its</span>
+2944 <span class="c"># presence in a molecule.</span>
+2945 <span class="c">#</span>
+2946 <span class="c"># Key 124 description: QQ</span>
+2947 <span class="c">#</span>
+<a name="_Generate166KeySetKey124-"></a>2948 <span class="k">sub </span><span class="m">_Generate166KeySetKey124</span> <span class="s">{</span>
+2949   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2950 
+2951   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
+2952 <span class="s">}</span>
+2953 
+2954 <span class="c"># Generate key 125 value as 1/0 indicating its presence/absence or count of its</span>
+2955 <span class="c"># presence in a molecule.</span>
+2956 <span class="c">#</span>
+2957 <span class="c"># Key 125 description: AROMATIC RING &gt; 1</span>
+2958 <span class="c">#</span>
+<a name="_Generate166KeySetKey125-"></a>2959 <span class="k">sub </span><span class="m">_Generate166KeySetKey125</span> <span class="s">{</span>
+2960   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2961   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$NumOfAromaticRings</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span>
+2962 
+2963   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+2964   <span class="i">$NumOfAromaticRings</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetNumOfAromaticRings</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+2965 
+2966   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+2967     <span class="i">$KeyValue</span> = <span class="s">(</span><span class="i">$NumOfAromaticRings</span> &gt; <span class="n">1</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
+2968   <span class="s">}</span>
+2969   <span class="k">else</span> <span class="s">{</span>
+2970     <span class="i">$KeyValue</span> = <span class="i">$NumOfAromaticRings</span><span class="sc">;</span>
+2971   <span class="s">}</span>
+2972   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+2973 <span class="s">}</span>
+2974 
+2975 <span class="c"># Generate key 126 value as 1/0 indicating its presence/absence or count of its</span>
+2976 <span class="c"># presence in a molecule.</span>
+2977 <span class="c">#</span>
+2978 <span class="c"># Key 126 description: A!O!A</span>
+2979 <span class="c">#</span>
+<a name="_Generate166KeySetKey126-"></a>2980 <span class="k">sub </span><span class="m">_Generate166KeySetKey126</span> <span class="s">{</span>
+2981   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2982   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2983 
+2984   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;O&#39;</span><span class="sc">;</span>
+2985   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+2986   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;!&#39;</span><span class="cm">,</span> <span class="q">&#39;!&#39;</span><span class="s">)</span><span class="sc">;</span>
+2987 
+2988   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2989 <span class="s">}</span>
+2990 
+2991 <span class="c"># Generate key 127 value as 1/0 indicating its presence/absence or count of its</span>
+2992 <span class="c"># presence in a molecule.</span>
+2993 <span class="c">#</span>
+2994 <span class="c"># Key 127 description: A$A!O &gt; 1 (&amp;...)</span>
+2995 <span class="c">#</span>
+<a name="_Generate166KeySetKey127-"></a>2996 <span class="k">sub </span><span class="m">_Generate166KeySetKey127</span> <span class="s">{</span>
+2997   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+2998   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+2999 
+3000   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+3001   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+3002   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;$&#39;</span><span class="cm">,</span> <span class="q">&#39;!&#39;</span><span class="s">)</span><span class="sc">;</span>
+3003   <span class="i">$MinKeyCount</span> = <span class="n">2</span><span class="sc">;</span>
+3004 
+3005   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span>
+3006 <span class="s">}</span>
+3007 
+3008 <span class="c"># Generate key 128 value as 1/0 indicating its presence/absence or count of its</span>
+3009 <span class="c"># presence in a molecule.</span>
+3010 <span class="c">#</span>
+3011 <span class="c"># Key 128 description: ACH2AAACH2A</span>
+3012 <span class="c">#</span>
+<a name="_Generate166KeySetKey128-"></a>3013 <span class="k">sub </span><span class="m">_Generate166KeySetKey128</span> <span class="s">{</span>
+3014   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3015   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+3016 
+3017   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3018   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3019   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3020 
+3021   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+3022 <span class="s">}</span>
+3023 
+3024 <span class="c"># Generate key 129 value as 1/0 indicating its presence/absence or count of its</span>
+3025 <span class="c"># presence in a molecule.</span>
+3026 <span class="c">#</span>
+3027 <span class="c"># Key 129 description: ACH2AACH2A</span>
+3028 <span class="c">#</span>
+<a name="_Generate166KeySetKey129-"></a>3029 <span class="k">sub </span><span class="m">_Generate166KeySetKey129</span> <span class="s">{</span>
+3030   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3031   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+3032 
+3033   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3034   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3035   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3036 
+3037   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+3038 <span class="s">}</span>
+3039 
+3040 <span class="c"># Generate key 130 value as 1/0 indicating its presence/absence or count of its</span>
+3041 <span class="c"># presence in a molecule.</span>
+3042 <span class="c">#</span>
+3043 <span class="c"># Key 130 description: QQ &gt; 1 (&amp;...)</span>
+3044 <span class="c">#</span>
+<a name="_Generate166KeySetKey130-"></a>3045 <span class="k">sub </span><span class="m">_Generate166KeySetKey130</span> <span class="s">{</span>
+3046   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3047   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="s">)</span><span class="sc">;</span>
+3048 
+3049   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span>
+3050 <span class="s">}</span>
+3051 
+3052 <span class="c"># Generate key 131 value as 1/0 indicating its presence/absence or count of its</span>
+3053 <span class="c"># presence in a molecule.</span>
+3054 <span class="c">#</span>
+3055 <span class="c"># Key 131 description: QH &gt; 1</span>
+3056 <span class="c">#</span>
+<a name="_Generate166KeySetKey131-"></a>3057 <span class="k">sub </span><span class="m">_Generate166KeySetKey131</span> <span class="s">{</span>
+3058   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3059   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
+3060 
+3061   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+3062 <span class="s">}</span>
+3063 
+3064 <span class="c"># Generate key 132 value as 1/0 indicating its presence/absence or count of its</span>
+3065 <span class="c"># presence in a molecule.</span>
+3066 <span class="c">#</span>
+3067 <span class="c"># Key 132 description: OACH2A</span>
+3068 <span class="c">#</span>
+<a name="_Generate166KeySetKey132-"></a>3069 <span class="k">sub </span><span class="m">_Generate166KeySetKey132</span> <span class="s">{</span>
+3070   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3071   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+3072 
+3073   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3074   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3075   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3076 
+3077   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+3078 <span class="s">}</span>
+3079 
+3080 <span class="c"># Generate key 133 value as 1/0 indicating its presence/absence or count of its</span>
+3081 <span class="c"># presence in a molecule.</span>
+3082 <span class="c">#</span>
+3083 <span class="c"># Key 133 description: A$A!N</span>
+3084 <span class="c">#</span>
+<a name="_Generate166KeySetKey133-"></a>3085 <span class="k">sub </span><span class="m">_Generate166KeySetKey133</span> <span class="s">{</span>
+3086   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3087   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3088 
+3089   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+3090   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+3091   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;$&#39;</span><span class="cm">,</span> <span class="q">&#39;!&#39;</span><span class="s">)</span><span class="sc">;</span>
+3092 
+3093   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3094 <span class="s">}</span>
+3095 
+3096 <span class="c"># Generate key 134 value as 1/0 indicating its presence/absence or count of its</span>
+3097 <span class="c"># presence in a molecule.</span>
+3098 <span class="c">#</span>
+3099 <span class="c"># Key 134 description: X (HALOGEN)</span>
+3100 <span class="c">#</span>
+<a name="_Generate166KeySetKey134-"></a>3101 <span class="k">sub </span><span class="m">_Generate166KeySetKey134</span> <span class="s">{</span>
+3102   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3103 
+3104   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;X&#39;</span><span class="s">)</span><span class="sc">;</span>
+3105 <span class="s">}</span>
+3106 
+3107 <span class="c"># Generate key 135 value as 1/0 indicating its presence/absence or count of its</span>
+3108 <span class="c"># presence in a molecule.</span>
+3109 <span class="c">#</span>
+3110 <span class="c"># Key 135 description: Nnot%A%A</span>
+3111 <span class="c">#</span>
+<a name="_Generate166KeySetKey135-"></a>3112 <span class="k">sub </span><span class="m">_Generate166KeySetKey135</span> <span class="s">{</span>
+3113   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3114   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3115 
+3116   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+3117   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3118   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;not%&#39;</span><span class="cm">,</span> <span class="q">&#39;%&#39;</span><span class="s">)</span><span class="sc">;</span>
+3119 
+3120   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3121 <span class="s">}</span>
+3122 
+3123 <span class="c"># Generate key 136 value as 1/0 indicating its presence/absence or count of its</span>
+3124 <span class="c"># presence in a molecule.</span>
+3125 <span class="c">#</span>
+3126 <span class="c"># Key 136 description: O=A &gt; 1</span>
+3127 <span class="c">#</span>
+<a name="_Generate166KeySetKey136-"></a>3128 <span class="k">sub </span><span class="m">_Generate166KeySetKey136</span> <span class="s">{</span>
+3129   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3130   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="s">(</span><span class="n">2</span><span class="cm">,</span> <span class="n">2</span><span class="s">)</span><span class="sc">;</span>
+3131 
+3132   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span>
+3133 <span class="s">}</span>
+3134 
+3135 <span class="c"># Generate key 137 value as 1/0 indicating its presence/absence or count of its</span>
+3136 <span class="c"># presence in a molecule.</span>
+3137 <span class="c">#</span>
+3138 <span class="c"># Key 137 description: HETEROCYCLE</span>
+3139 <span class="c">#</span>
+<a name="_Generate166KeySetKey137-"></a>3140 <span class="k">sub </span><span class="m">_Generate166KeySetKey137</span> <span class="s">{</span>
+3141   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3142   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
+3143 
+3144   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span><span class="sc">;</span>
+3145 <span class="s">}</span>
+3146 
+3147 <span class="c"># Generate key 138 value as 1/0 indicating its presence/absence or count of its</span>
+3148 <span class="c"># presence in a molecule.</span>
+3149 <span class="c">#</span>
+3150 <span class="c"># Key 138 description: QCH2A &gt; 1 (&amp;...)</span>
+3151 <span class="c">#</span>
+<a name="_Generate166KeySetKey138-"></a>3152 <span class="k">sub </span><span class="m">_Generate166KeySetKey138</span> <span class="s">{</span>
+3153   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3154   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3155 
+3156   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+3157   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3158   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3159   <span class="i">$MinKeyCount</span> = <span class="n">2</span><span class="sc">;</span>
+3160   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span>
+3161 
+3162   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+3163 <span class="s">}</span>
+3164 
+3165 <span class="c"># Generate key 139 value as 1/0 indicating its presence/absence or count of its</span>
+3166 <span class="c"># presence in a molecule.</span>
+3167 <span class="c">#</span>
+3168 <span class="c"># Key 139 description: OH</span>
+3169 <span class="c">#</span>
+<a name="_Generate166KeySetKey139-"></a>3170 <span class="k">sub </span><span class="m">_Generate166KeySetKey139</span> <span class="s">{</span>
+3171   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3172   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
+3173 
+3174   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+3175 <span class="s">}</span>
+3176 
+3177 <span class="c"># Generate key 140 value as 1/0 indicating its presence/absence or count of its</span>
+3178 <span class="c"># presence in a molecule.</span>
+3179 <span class="c">#</span>
+3180 <span class="c"># Key 140 description: O &gt; 3 (&amp;...)</span>
+3181 <span class="c">#</span>
+<a name="_Generate166KeySetKey140-"></a>3182 <span class="k">sub </span><span class="m">_Generate166KeySetKey140</span> <span class="s">{</span>
+3183   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3184   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="n">4</span><span class="sc">;</span>
+3185 
+3186   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span>
+3187 <span class="s">}</span>
+3188 
+3189 <span class="c"># Generate key 141 value as 1/0 indicating its presence/absence or count of its</span>
+3190 <span class="c"># presence in a molecule.</span>
+3191 <span class="c">#</span>
+3192 <span class="c"># Key 141 description: CH3 &gt; 2 (&amp;...)</span>
+3193 <span class="c">#</span>
+<a name="_Generate166KeySetKey141-"></a>3194 <span class="k">sub </span><span class="m">_Generate166KeySetKey141</span> <span class="s">{</span>
+3195   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3196   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="n">3</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">3</span><span class="s">)</span><span class="sc">;</span>
+3197 
+3198   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+3199 <span class="s">}</span>
+3200 
+3201 <span class="c"># Generate key 142 value as 1/0 indicating its presence/absence or count of its</span>
+3202 <span class="c"># presence in a molecule.</span>
+3203 <span class="c">#</span>
+3204 <span class="c"># Key 142 description: N &gt; 1</span>
+3205 <span class="c">#</span>
+<a name="_Generate166KeySetKey142-"></a>3206 <span class="k">sub </span><span class="m">_Generate166KeySetKey142</span> <span class="s">{</span>
+3207   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3208   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span>
+3209 
+3210   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span>
+3211 <span class="s">}</span>
+3212 
+3213 <span class="c"># Generate key 143 value as 1/0 indicating its presence/absence or count of its</span>
+3214 <span class="c"># presence in a molecule.</span>
+3215 <span class="c">#</span>
+3216 <span class="c"># Key 143 description: A$A!O</span>
+3217 <span class="c">#</span>
+<a name="_Generate166KeySetKey143-"></a>3218 <span class="k">sub </span><span class="m">_Generate166KeySetKey143</span> <span class="s">{</span>
+3219   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3220   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3221 
+3222   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+3223   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+3224   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;$&#39;</span><span class="cm">,</span> <span class="q">&#39;!&#39;</span><span class="s">)</span><span class="sc">;</span>
+3225 
+3226   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3227 <span class="s">}</span>
+3228 
+3229 <span class="c"># Generate key 144 value as 1/0 indicating its presence/absence or count of its</span>
+3230 <span class="c"># presence in a molecule.</span>
+3231 <span class="c">#</span>
+3232 <span class="c"># Key 144 description: Anot%A%Anot%A</span>
+3233 <span class="c">#</span>
+<a name="_Generate166KeySetKey144-"></a>3234 <span class="k">sub </span><span class="m">_Generate166KeySetKey144</span> <span class="s">{</span>
+3235   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3236   <span class="k">my</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3237 
+3238   <span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="s">)</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3239   <span class="i">$BondSymbol</span> = <span class="q">&#39;%&#39;</span><span class="sc">;</span>
+3240 
+3241   <span class="i">@NbrAtomsSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
+3242   <span class="i">@NbrAtomsBondSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;not%&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;not%&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
+3243   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondNeighborhoodKeys</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> \<span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3244 <span class="s">}</span>
+3245 
+3246 <span class="c"># Generate key 145 value as 1/0 indicating its presence/absence or count of its</span>
+3247 <span class="c"># presence in a molecule.</span>
+3248 <span class="c">#</span>
+3249 <span class="c"># Key 145 description: 6M RING &gt; 1</span>
+3250 <span class="c">#</span>
+<a name="_Generate166KeySetKey145-"></a>3251 <span class="k">sub </span><span class="m">_Generate166KeySetKey145</span> <span class="s">{</span>
+3252   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3253   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span>
+3254 
+3255   <span class="i">$RingSize</span> = <span class="n">6</span><span class="sc">;</span>
+3256   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+3257   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
+3258 
+3259   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+3260     <span class="i">$KeyValue</span> = <span class="s">(</span><span class="i">$NumOfRings</span> &gt; <span class="n">1</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
+3261   <span class="s">}</span>
+3262   <span class="k">else</span> <span class="s">{</span>
+3263     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span><span class="sc">;</span>
+3264   <span class="s">}</span>
+3265   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+3266 <span class="s">}</span>
+3267 
+3268 <span class="c"># Generate key 146 value as 1/0 indicating its presence/absence or count of its</span>
+3269 <span class="c"># presence in a molecule.</span>
+3270 <span class="c">#</span>
+3271 <span class="c"># Key 146 description: O &gt; 2</span>
+3272 <span class="c">#</span>
+<a name="_Generate166KeySetKey146-"></a>3273 <span class="k">sub </span><span class="m">_Generate166KeySetKey146</span> <span class="s">{</span>
+3274   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3275   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="n">3</span><span class="sc">;</span>
+3276 
+3277   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span>
+3278 <span class="s">}</span>
+3279 
+3280 <span class="c"># Generate key 147 value as 1/0 indicating its presence/absence or count of its</span>
+3281 <span class="c"># presence in a molecule.</span>
+3282 <span class="c">#</span>
+3283 <span class="c"># Key 147 description: ACH2CH2A</span>
+3284 <span class="c">#</span>
+<a name="_Generate166KeySetKey147-"></a>3285 <span class="k">sub </span><span class="m">_Generate166KeySetKey147</span> <span class="s">{</span>
+3286   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3287   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+3288 
+3289   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3290   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3291   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3292 
+3293   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+3294 <span class="s">}</span>
+3295 
+3296 <span class="c"># Generate key 148 value as 1/0 indicating its presence/absence or count of its</span>
+3297 <span class="c"># presence in a molecule.</span>
+3298 <span class="c">#</span>
+3299 <span class="c"># Key 148 description: AQ(A)A</span>
+3300 <span class="c">#</span>
+<a name="_Generate166KeySetKey148-"></a>3301 <span class="k">sub </span><span class="m">_Generate166KeySetKey148</span> <span class="s">{</span>
+3302   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3303   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3304 
+3305   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
+3306   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3307   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3308 
+3309   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3310 <span class="s">}</span>
+3311 
+3312 <span class="c"># Generate key 149 value as 1/0 indicating its presence/absence or count of its</span>
+3313 <span class="c"># presence in a molecule.</span>
+3314 <span class="c">#</span>
+3315 <span class="c"># Key 149 description: CH3 &gt; 1</span>
+3316 <span class="c">#</span>
+<a name="_Generate166KeySetKey149-"></a>3317 <span class="k">sub </span><span class="m">_Generate166KeySetKey149</span> <span class="s">{</span>
+3318   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3319   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">3</span><span class="s">)</span><span class="sc">;</span>
+3320 
+3321   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+3322 <span class="s">}</span>
+3323 
+3324 <span class="c"># Generate key 150 value as 1/0 indicating its presence/absence or count of its</span>
+3325 <span class="c"># presence in a molecule.</span>
+3326 <span class="c">#</span>
+3327 <span class="c"># Key 150 description: A!A$A!A</span>
+3328 <span class="c">#</span>
+<a name="_Generate166KeySetKey150-"></a>3329 <span class="k">sub </span><span class="m">_Generate166KeySetKey150</span> <span class="s">{</span>
+3330   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3331   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3332 
+3333   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3334   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="q">&#39;!&#39;</span><span class="cm">,</span> <span class="q">&#39;$&#39;</span><span class="cm">,</span> <span class="q">&#39;!&#39;</span><span class="s">)</span><span class="sc">;</span>
+3335 
+3336   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3337 <span class="s">}</span>
+3338 
+3339 <span class="c"># Generate key 151 value as 1/0 indicating its presence/absence or count of its</span>
+3340 <span class="c"># presence in a molecule.</span>
+3341 <span class="c">#</span>
+3342 <span class="c"># Key 151 description: NH</span>
+3343 <span class="c">#</span>
+<a name="_Generate166KeySetKey151-"></a>3344 <span class="k">sub </span><span class="m">_Generate166KeySetKey151</span> <span class="s">{</span>
+3345   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3346   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
+3347 
+3348   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+3349 <span class="s">}</span>
+3350 
+3351 <span class="c"># Generate key 152 value as 1/0 indicating its presence/absence or count of its</span>
+3352 <span class="c"># presence in a molecule.</span>
+3353 <span class="c">#</span>
+3354 <span class="c"># Key 152 description: OC(C)C</span>
+3355 <span class="c">#</span>
+<a name="_Generate166KeySetKey152-"></a>3356 <span class="k">sub </span><span class="m">_Generate166KeySetKey152</span> <span class="s">{</span>
+3357   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3358   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3359 
+3360   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+3361   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
+3362   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3363 
+3364   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3365 <span class="s">}</span>
+3366 
+3367 <span class="c"># Generate key 153 value as 1/0 indicating its presence/absence or count of its</span>
+3368 <span class="c"># presence in a molecule.</span>
+3369 <span class="c">#</span>
+3370 <span class="c"># Key 153 description: QCH2A</span>
+3371 <span class="c">#</span>
+<a name="_Generate166KeySetKey153-"></a>3372 <span class="k">sub </span><span class="m">_Generate166KeySetKey153</span> <span class="s">{</span>
+3373   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3374   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3375 
+3376   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+3377   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3378   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3379   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
+3380   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span>
+3381 
+3382   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+3383 <span class="s">}</span>
+3384 
+3385 <span class="c"># Generate key 154 value as 1/0 indicating its presence/absence or count of its</span>
+3386 <span class="c"># presence in a molecule.</span>
+3387 <span class="c">#</span>
+3388 <span class="c"># Key 154 description: C=O</span>
+3389 <span class="c">#</span>
+<a name="_Generate166KeySetKey154-"></a>3390 <span class="k">sub </span><span class="m">_Generate166KeySetKey154</span> <span class="s">{</span>
+3391   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3392   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span>
+3393 
+3394   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
+3395 <span class="s">}</span>
+3396 
+3397 <span class="c"># Generate key 155 value as 1/0 indicating its presence/absence or count of its</span>
+3398 <span class="c"># presence in a molecule.</span>
+3399 <span class="c">#</span>
+3400 <span class="c"># Key 155 description: A!CH2!A</span>
+3401 <span class="c">#</span>
+<a name="_Generate166KeySetKey155-"></a>3402 <span class="k">sub </span><span class="m">_Generate166KeySetKey155</span> <span class="s">{</span>
+3403   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3404   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3405 
+3406   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+3407   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3408   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;!&#39;</span><span class="cm">,</span> <span class="q">&#39;!&#39;</span><span class="s">)</span><span class="sc">;</span>
+3409   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
+3410   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span>
+3411 
+3412   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+3413 <span class="s">}</span>
+3414 
+3415 <span class="c"># Generate key 156 value as 1/0 indicating its presence/absence or count of its</span>
+3416 <span class="c"># presence in a molecule.</span>
+3417 <span class="c">#</span>
+3418 <span class="c"># Key 156 description: NA(A)A</span>
+3419 <span class="c">#</span>
+<a name="_Generate166KeySetKey156-"></a>3420 <span class="k">sub </span><span class="m">_Generate166KeySetKey156</span> <span class="s">{</span>
+3421   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3422   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="cm">,</span> <span class="i">@CentralAtomNbrsAtomSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomNbrsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3423 
+3424   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3425   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3426   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3427 
+3428   <span class="i">@CentralAtomNbrsAtomSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3429   <span class="i">@CentralAtomNbrsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3430   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
+3431 
+3432   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> \<span class="i">@CentralAtomNbrsAtomSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomNbrsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3433 <span class="s">}</span>
+3434 
+3435 <span class="c"># Generate key 157 value as 1/0 indicating its presence/absence or count of its</span>
+3436 <span class="c"># presence in a molecule.</span>
+3437 <span class="c">#</span>
+3438 <span class="c"># Key 157 description: C-O</span>
+3439 <span class="c">#</span>
+<a name="_Generate166KeySetKey157-"></a>3440 <span class="k">sub </span><span class="m">_Generate166KeySetKey157</span> <span class="s">{</span>
+3441   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3442   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">1</span><span class="sc">;</span>
+3443 
+3444   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
+3445 <span class="s">}</span>
+3446 
+3447 <span class="c"># Generate key 158 value as 1/0 indicating its presence/absence or count of its</span>
+3448 <span class="c"># presence in a molecule.</span>
+3449 <span class="c">#</span>
+3450 <span class="c"># Key 158 description: C-N</span>
+3451 <span class="c">#</span>
+<a name="_Generate166KeySetKey158-"></a>3452 <span class="k">sub </span><span class="m">_Generate166KeySetKey158</span> <span class="s">{</span>
+3453   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3454   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">1</span><span class="sc">;</span>
+3455 
+3456   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
+3457 <span class="s">}</span>
+3458 
+3459 <span class="c"># Generate key 159 value as 1/0 indicating its presence/absence or count of its</span>
+3460 <span class="c"># presence in a molecule.</span>
+3461 <span class="c">#</span>
+3462 <span class="c"># Key 159 description: O &gt; 1</span>
+3463 <span class="c">#</span>
+<a name="_Generate166KeySetKey159-"></a>3464 <span class="k">sub </span><span class="m">_Generate166KeySetKey159</span> <span class="s">{</span>
+3465   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3466   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span>
+3467 
+3468   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span>
+3469 <span class="s">}</span>
+3470 
+3471 <span class="c"># Generate key 160 value as 1/0 indicating its presence/absence or count of its</span>
+3472 <span class="c"># presence in a molecule.</span>
+3473 <span class="c">#</span>
+3474 <span class="c"># Key 160 description: CH3</span>
+3475 <span class="c">#</span>
+<a name="_Generate166KeySetKey160-"></a>3476 <span class="k">sub </span><span class="m">_Generate166KeySetKey160</span> <span class="s">{</span>
+3477   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3478   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">3</span><span class="s">)</span><span class="sc">;</span>
+3479 
+3480   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+3481 <span class="s">}</span>
+3482 
+3483 <span class="c"># Generate key 161 value as 1/0 indicating its presence/absence or count of its</span>
+3484 <span class="c"># presence in a molecule.</span>
+3485 <span class="c">#</span>
+3486 <span class="c"># Key 161 description: N</span>
+3487 <span class="c">#</span>
+<a name="_Generate166KeySetKey161-"></a>3488 <span class="k">sub </span><span class="m">_Generate166KeySetKey161</span> <span class="s">{</span>
+3489   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3490 
+3491   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+3492 <span class="s">}</span>
+3493 
+3494 <span class="c"># Generate key 162 value as 1/0 indicating its presence/absence or count of its</span>
+3495 <span class="c"># presence in a molecule.</span>
+3496 <span class="c">#</span>
+3497 <span class="c"># Key 162 description: AROMATIC</span>
+3498 <span class="c">#</span>
+<a name="_Generate166KeySetKey162-"></a>3499 <span class="k">sub </span><span class="m">_Generate166KeySetKey162</span> <span class="s">{</span>
+3500   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3501   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span>
+3502 
+3503   <span class="c"># Check molecule aromatic property...</span>
+3504   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+3505   <span class="k">if</span> <span class="s">(</span><span class="i">$Molecule</span><span class="i">-&gt;IsAromatic</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+3506     <span class="k">return</span> <span class="n">1</span><span class="sc">;</span>
+3507   <span class="s">}</span>
+3508 
+3509   <span class="c"># Check aromatic property of each atom...</span>
+3510   <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+3511   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+3512       <span class="k">if</span> <span class="s">(</span>!<span class="i">$Atom</span><span class="i">-&gt;IsAromatic</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+3513         <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+3514         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+3515       <span class="s">}</span>
+3516   <span class="s">}</span>
+3517   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+3518 <span class="s">}</span>
+3519 
+3520 <span class="c"># Generate key 163 value as 1/0 indicating its presence/absence or count of its</span>
+3521 <span class="c"># presence in a molecule.</span>
+3522 <span class="c">#</span>
+3523 <span class="c"># Key 163 description: 6M RING</span>
+3524 <span class="c">#</span>
+<a name="_Generate166KeySetKey163-"></a>3525 <span class="k">sub </span><span class="m">_Generate166KeySetKey163</span> <span class="s">{</span>
+3526   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3527   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span>
+3528 
+3529   <span class="i">$RingSize</span> = <span class="n">6</span><span class="sc">;</span>
+3530   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+3531   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
+3532 
+3533   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+3534     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
+3535   <span class="s">}</span>
+3536   <span class="k">else</span> <span class="s">{</span>
+3537     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span><span class="sc">;</span>
+3538   <span class="s">}</span>
+3539   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+3540 <span class="s">}</span>
+3541 
+3542 <span class="c"># Generate key 164 value as 1/0 indicating its presence/absence or count of its</span>
+3543 <span class="c"># presence in a molecule.</span>
+3544 <span class="c">#</span>
+3545 <span class="c"># Key 164 description: O</span>
+3546 <span class="c">#</span>
+<a name="_Generate166KeySetKey164-"></a>3547 <span class="k">sub </span><span class="m">_Generate166KeySetKey164</span> <span class="s">{</span>
+3548   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3549 
+3550   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+3551 <span class="s">}</span>
+3552 
+3553 <span class="c"># Generate key 165 value as 1/0 indicating its presence/absence or count of its</span>
+3554 <span class="c"># presence in a molecule.</span>
+3555 <span class="c">#</span>
+3556 <span class="c"># Key 165 description: RING</span>
+3557 <span class="c">#</span>
+<a name="_Generate166KeySetKey165-"></a>3558 <span class="k">sub </span><span class="m">_Generate166KeySetKey165</span> <span class="s">{</span>
+3559   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3560   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span>
+3561 
+3562   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+3563   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetNumOfRings</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+3564 
+3565   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+3566     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
+3567   <span class="s">}</span>
+3568   <span class="k">else</span> <span class="s">{</span>
+3569     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span><span class="sc">;</span>
+3570   <span class="s">}</span>
+3571   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+3572 <span class="s">}</span>
+3573 
+3574 <span class="c"># Generate key 166 value as 1/0 indicating its presence/absence or count of its</span>
+3575 <span class="c"># presence in a molecule.</span>
+3576 <span class="c">#</span>
+3577 <span class="c"># Key 166 description: FRAGMENTS</span>
+3578 <span class="c">#</span>
+<a name="_Generate166KeySetKey166-"></a>3579 <span class="k">sub </span><span class="m">_Generate166KeySetKey166</span> <span class="s">{</span>
+3580   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3581   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$NumOfComponents</span><span class="s">)</span><span class="sc">;</span>
+3582 
+3583   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+3584   <span class="i">$NumOfComponents</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetNumOfConnectedComponents</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+3585 
+3586   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+3587     <span class="i">$KeyValue</span> = <span class="s">(</span><span class="i">$NumOfComponents</span> &gt; <span class="n">1</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
+3588   <span class="s">}</span>
+3589   <span class="k">else</span> <span class="s">{</span>
+3590     <span class="i">$KeyValue</span> = <span class="i">$NumOfComponents</span><span class="sc">;</span>
+3591   <span class="s">}</span>
+3592   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+3593 <span class="s">}</span>
+3594 
+3595 <span class="c">##################################</span>
+3596 <span class="c">#</span>
+3597 <span class="c">#  Implementation of MDL MACCS 322 keys...</span>
+3598 <span class="c">#</span>
+3599 <span class="c">##################################</span>
+3600 
+3601 <span class="c"># Generate 322 keyset key 1 value as 1/0 indicating its presence/absence or</span>
+3602 <span class="c"># count of its presence in a molecule.</span>
+3603 <span class="c">#</span>
+3604 <span class="c"># Key 1 description: A(AAA) or AA(A)A - atom with at least three neighbors</span>
+3605 <span class="c">#</span>
+<a name="_Generate322KeySetKey1-"></a>3606 <span class="k">sub </span><span class="m">_Generate322KeySetKey1</span> <span class="s">{</span>
+3607   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3608   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3609 
+3610   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+3611   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3612   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3613 
+3614   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3615 <span class="s">}</span>
+3616 
+3617 <span class="c"># Generate 322 keyset key 2 value as 1/0 indicating its presence/absence or</span>
+3618 <span class="c"># count of its presence in a molecule.</span>
+3619 <span class="c">#</span>
+3620 <span class="c"># Key 2 description: Q - heteroatom</span>
+3621 <span class="c">#</span>
+<a name="_Generate322KeySetKey2-"></a>3622 <span class="k">sub </span><span class="m">_Generate322KeySetKey2</span> <span class="s">{</span>
+3623   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3624 
+3625   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
+3626 <span class="s">}</span>
+3627 
+3628 <span class="c"># Generate 322 keyset key 3 value as 1/0 indicating its presence/absence or</span>
+3629 <span class="c"># count of its presence in a molecule.</span>
+3630 <span class="c">#</span>
+3631 <span class="c"># Key 3 description: Anot%not-A - atom involved in one or more multiple bonds, not aromatic</span>
+3632 <span class="c">#</span>
+<a name="_Generate322KeySetKey3-"></a>3633 <span class="k">sub </span><span class="m">_Generate322KeySetKey3</span> <span class="s">{</span>
+3634   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3635   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;not%not-&#39;</span><span class="sc">;</span>
+3636 
+3637   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+3638 <span class="s">}</span>
+3639 
+3640 <span class="c"># Generate 322 keyset key 4 value as 1/0 indicating its presence/absence or</span>
+3641 <span class="c"># count of its presence in a molecule.</span>
+3642 <span class="c">#</span>
+3643 <span class="c"># Key 4 description:      A(AAAA) or AA(A)(A)A - atom with at least four neighbors</span>
+3644 <span class="c">#</span>
+<a name="_Generate322KeySetKey4-"></a>3645 <span class="k">sub </span><span class="m">_Generate322KeySetKey4</span> <span class="s">{</span>
+3646   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3647   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3648 
+3649   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+3650   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3651   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3652 
+3653   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3654 <span class="s">}</span>
+3655 
+3656 <span class="c"># Generate 322 keyset key 5 value as 1/0 indicating its presence/absence or</span>
+3657 <span class="c"># count of its presence in a molecule.</span>
+3658 <span class="c">#</span>
+3659 <span class="c"># Key 5 description: A(QQ) or QA(Q) - atom with at least two heteroatom neighbors</span>
+3660 <span class="c">#</span>
+<a name="_Generate322KeySetKey5-"></a>3661 <span class="k">sub </span><span class="m">_Generate322KeySetKey5</span> <span class="s">{</span>
+3662   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3663   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3664 
+3665   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+3666   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
+3667   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3668 
+3669   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3670 <span class="s">}</span>
+3671 
+3672 <span class="c"># Generate 322 keyset key 6 value as 1/0 indicating its presence/absence or</span>
+3673 <span class="c"># count of its presence in a molecule.</span>
+3674 <span class="c">#</span>
+3675 <span class="c"># Key 6 description: A(QQQ) or QA(Q)Q - atom with at least three heteroatom neighbors</span>
+3676 <span class="c">#</span>
+<a name="_Generate322KeySetKey6-"></a>3677 <span class="k">sub </span><span class="m">_Generate322KeySetKey6</span> <span class="s">{</span>
+3678   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3679   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3680 
+3681   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+3682   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
+3683   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3684 
+3685   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3686 <span class="s">}</span>
+3687 
+3688 <span class="c"># Generate 322 keyset key 7 value as 1/0 indicating its presence/absence or</span>
+3689 <span class="c"># count of its presence in a molecule.</span>
+3690 <span class="c">#</span>
+3691 <span class="c"># Key 7 description:      QH - heteroatom with at least one hydrogen attached</span>
+3692 <span class="c">#</span>
+<a name="_Generate322KeySetKey7-"></a>3693 <span class="k">sub </span><span class="m">_Generate322KeySetKey7</span> <span class="s">{</span>
+3694   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3695   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
+3696 
+3697   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+3698 <span class="s">}</span>
+3699 
+3700 <span class="c"># Generate 322 keyset key 8 value as 1/0 indicating its presence/absence or</span>
+3701 <span class="c"># count of its presence in a molecule.</span>
+3702 <span class="c">#</span>
+3703 <span class="c"># Key 8 description: CH2(AA) or ACH2A - carbon with at least two single bonds and at least two hydrogens attached</span>
+3704 <span class="c">#</span>
+<a name="_Generate322KeySetKey8-"></a>3705 <span class="k">sub </span><span class="m">_Generate322KeySetKey8</span> <span class="s">{</span>
+3706   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3707   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3708 
+3709   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+3710   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3711   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3712   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
+3713   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span>
+3714 
+3715   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+3716 <span class="s">}</span>
+3717 
+3718 <span class="c"># Generate 322 keyset key 9 value as 1/0 indicating its presence/absence or</span>
+3719 <span class="c"># count of its presence in a molecule.</span>
+3720 <span class="c">#</span>
+3721 <span class="c"># Key 9 description: CH3(A) or ACH3 - carbon with at least one single bond and at least three hydrogens attached</span>
+3722 <span class="c">#</span>
+<a name="_Generate322KeySetKey9-"></a>3723 <span class="k">sub </span><span class="m">_Generate322KeySetKey9</span> <span class="s">{</span>
+3724   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3725   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3726 
+3727   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+3728   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3729   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+3730   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
+3731   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">3</span><span class="sc">;</span>
+3732 
+3733   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+3734 <span class="s">}</span>
+3735 
+3736 <span class="c"># Generate 322 keyset key 10 value as 1/0 indicating its presence/absence or</span>
+3737 <span class="c"># count of its presence in a molecule.</span>
+3738 <span class="c">#</span>
+3739 <span class="c"># Key 10 description: Halogen</span>
+3740 <span class="c">#</span>
+<a name="_Generate322KeySetKey10-"></a>3741 <span class="k">sub </span><span class="m">_Generate322KeySetKey10</span> <span class="s">{</span>
+3742   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3743 
+3744   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;X&#39;</span><span class="s">)</span><span class="sc">;</span>
+3745 <span class="s">}</span>
+3746 
+3747 <span class="c"># Generate 322 keyset key 11 value as 1/0 indicating its presence/absence or</span>
+3748 <span class="c"># count of its presence in a molecule.</span>
+3749 <span class="c">#</span>
+3750 <span class="c"># Key 11 description: A(-A-A-A) or A-A(-A)-A - atom has at least three single bonds</span>
+3751 <span class="c">#</span>
+<a name="_Generate322KeySetKey11-"></a>3752 <span class="k">sub </span><span class="m">_Generate322KeySetKey11</span> <span class="s">{</span>
+3753   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3754   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3755 
+3756   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+3757   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3758   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;-&#39;</span><span class="cm">,</span> <span class="q">&#39;-&#39;</span><span class="cm">,</span> <span class="q">&#39;-&#39;</span><span class="s">)</span><span class="sc">;</span>
+3759 
+3760   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3761 <span class="s">}</span>
+3762 
+3763 <span class="c"># Generate 322 keyset key 12 value as 1/0 indicating its presence/absence or</span>
+3764 <span class="c"># count of its presence in a molecule.</span>
+3765 <span class="c">#</span>
+3766 <span class="c"># Key 12 description: AAAAAA@1 &gt;= 2 - atom is in at least two different six-membered rings</span>
+3767 <span class="c">#</span>
+<a name="_Generate322KeySetKey12-"></a>3768 <span class="k">sub </span><span class="m">_Generate322KeySetKey12</span> <span class="s">{</span>
+3769   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3770   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span>
+3771 
+3772   <span class="i">$RingSize</span> = <span class="n">6</span><span class="sc">;</span>
+3773   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+3774 
+3775   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+3776     <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_IsAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+3777       <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span>
+3778     <span class="s">}</span>
+3779     <span class="i">$NumOfRings</span> = <span class="i">$Atom</span><span class="i">-&gt;GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
+3780     <span class="k">if</span> <span class="s">(</span><span class="i">$NumOfRings</span> &gt;= <span class="n">2</span><span class="s">)</span> <span class="s">{</span>
+3781       <span class="i">$KeyValue</span>++<span class="sc">;</span>
+3782       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+3783         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+3784         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+3785       <span class="s">}</span>
+3786     <span class="s">}</span>
+3787   <span class="s">}</span>
+3788   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+3789 <span class="s">}</span>
+3790 
+3791 <span class="c"># Generate 322 keyset key 13 value as 1/0 indicating its presence/absence or</span>
+3792 <span class="c"># count of its presence in a molecule.</span>
+3793 <span class="c">#</span>
+3794 <span class="c"># Key 13 description: A($A$A$A) or A$A($A)$A - atom has more than two ring bonds (at least three ring bonds)</span>
+3795 <span class="c">#</span>
+<a name="_Generate322KeySetKey13-"></a>3796 <span class="k">sub </span><span class="m">_Generate322KeySetKey13</span> <span class="s">{</span>
+3797   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3798   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3799 
+3800   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+3801   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3802   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;$&#39;</span><span class="cm">,</span> <span class="q">&#39;$&#39;</span><span class="cm">,</span> <span class="q">&#39;$&#39;</span><span class="s">)</span><span class="sc">;</span>
+3803 
+3804   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3805 <span class="s">}</span>
+3806 
+3807 <span class="c"># Generate 322 keyset key 14 value as 1/0 indicating its presence/absence or</span>
+3808 <span class="c"># count of its presence in a molecule.</span>
+3809 <span class="c">#</span>
+3810 <span class="c"># Key 14 description: A$A!A$A - atom is at a ring/chain boundary. When a comparison is</span>
+3811 <span class="c">#                     done with another atom the path passes through the chain bond.</span>
+3812 <span class="c">#</span>
+<a name="_Generate322KeySetKey14-"></a>3813 <span class="k">sub </span><span class="m">_Generate322KeySetKey14</span> <span class="s">{</span>
+3814   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3815   <span class="k">my</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3816 
+3817   <span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="s">)</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3818   <span class="i">$BondSymbol</span> = <span class="q">&#39;!&#39;</span><span class="sc">;</span>
+3819 
+3820   <span class="i">@NbrAtomsSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
+3821   <span class="i">@NbrAtomsBondSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;$&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;$&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
+3822   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondNeighborhoodKeys</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> \<span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3823 <span class="s">}</span>
+3824 
+3825 <span class="c"># Generate 322 keyset key 15 value as 1/0 indicating its presence/absence or</span>
+3826 <span class="c"># count of its presence in a molecule.</span>
+3827 <span class="c">#</span>
+3828 <span class="c"># Key 15 description:  Anot%A%Anot%A - atom is at an aromatic/nonaromatic boundary.</span>
+3829 <span class="c">#                      When a comparison is done with another atom the path passes through the aromatic bond.</span>
+3830 <span class="c">#</span>
+<a name="_Generate322KeySetKey15-"></a>3831 <span class="k">sub </span><span class="m">_Generate322KeySetKey15</span> <span class="s">{</span>
+3832   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3833   <span class="k">my</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3834 
+3835   <span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="s">)</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3836   <span class="i">$BondSymbol</span> = <span class="q">&#39;%&#39;</span><span class="sc">;</span>
+3837 
+3838   <span class="i">@NbrAtomsSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
+3839   <span class="i">@NbrAtomsBondSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;not%&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;not%&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
+3840   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondNeighborhoodKeys</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> \<span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3841 <span class="s">}</span>
+3842 
+3843 <span class="c"># Generate 322 keyset key 16 value as 1/0 indicating its presence/absence or</span>
+3844 <span class="c"># count of its presence in a molecule.</span>
+3845 <span class="c">#</span>
+3846 <span class="c"># Key 16 description:     A!A!A  - atom with more than one chain bond</span>
+3847 <span class="c">#</span>
+<a name="_Generate322KeySetKey16-"></a>3848 <span class="k">sub </span><span class="m">_Generate322KeySetKey16</span> <span class="s">{</span>
+3849   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3850   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3851 
+3852   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+3853   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3854   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;!&#39;</span><span class="cm">,</span> <span class="q">&#39;!&#39;</span><span class="s">)</span><span class="sc">;</span>
+3855 
+3856   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3857 <span class="s">}</span>
+3858 
+3859 <span class="c"># Generate 322 keyset key 17 value as 1/0 indicating its presence/absence or</span>
+3860 <span class="c"># count of its presence in a molecule.</span>
+3861 <span class="c">#</span>
+3862 <span class="c"># Key 17 description: A!A$A!A - atom is at a ring/chain boundary. When a comparison</span>
+3863 <span class="c">#                     is done  with another atom the path passes through the ring bond.</span>
+3864 <span class="c">#</span>
+<a name="_Generate322KeySetKey17-"></a>3865 <span class="k">sub </span><span class="m">_Generate322KeySetKey17</span> <span class="s">{</span>
+3866   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3867   <span class="k">my</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3868 
+3869   <span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="s">)</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3870   <span class="i">$BondSymbol</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+3871 
+3872   <span class="i">@NbrAtomsSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
+3873   <span class="i">@NbrAtomsBondSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;!&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;!&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
+3874   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondNeighborhoodKeys</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> \<span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3875 <span class="s">}</span>
+3876 
+3877 <span class="c"># Generate 322 keyset key 18 value as 1/0 indicating its presence/absence or</span>
+3878 <span class="c"># count of its presence in a molecule.</span>
+3879 <span class="c">#</span>
+3880 <span class="c"># Key 18 description: A%Anot%A%A - atom is at an aromatic/nonaromatic boundary.</span>
+3881 <span class="c">#                     When a comparison is done with another atom the path passes through</span>
+3882 <span class="c">#                     the nonaromatic bond</span>
+3883 <span class="c">#</span>
+<a name="_Generate322KeySetKey18-"></a>3884 <span class="k">sub </span><span class="m">_Generate322KeySetKey18</span> <span class="s">{</span>
+3885   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3886   <span class="k">my</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3887 
+3888   <span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="s">)</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+3889   <span class="i">$BondSymbol</span> = <span class="q">&#39;not%&#39;</span><span class="sc">;</span>
+3890 
+3891   <span class="i">@NbrAtomsSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
+3892   <span class="i">@NbrAtomsBondSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;%&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;%&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
+3893   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondNeighborhoodKeys</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> \<span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+3894 <span class="s">}</span>
+3895 
+3896 <span class="c"># Generate 322 keyset key 19 value as 1/0 indicating its presence/absence or</span>
+3897 <span class="c"># count of its presence in a molecule.</span>
+3898 <span class="c">#</span>
+3899 <span class="c"># Key 19 description: HETEROCYCLE - atom is a heteroatom in a ring.</span>
+3900 <span class="c">#</span>
+<a name="_Generate322KeySetKey19-"></a>3901 <span class="k">sub </span><span class="m">_Generate322KeySetKey19</span> <span class="s">{</span>
+3902   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3903   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
+3904 
+3905   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span><span class="sc">;</span>
+3906 <span class="s">}</span>
+3907 
+3908 <span class="c"># Generate 322 keyset key 20 value as 1/0 indicating its presence/absence or</span>
+3909 <span class="c"># count of its presence in a molecule.</span>
+3910 <span class="c">#</span>
+3911 <span class="c"># Key 20 description: rare properties: atom with five or more neighbors, atom in four</span>
+3912 <span class="c">#                     or more rings, or atom types other than  H, C, N, O, S, F, Cl, Br, or I</span>
+3913 <span class="c">#</span>
+<a name="_Generate322KeySetKey20-"></a>3914 <span class="k">sub </span><span class="m">_Generate322KeySetKey20</span> <span class="s">{</span>
+3915   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3916   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span>
+3917 
+3918   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+3919   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+3920     <span class="k">if</span> <span class="s">(</span>!<span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span> !~ <span class="q">/^(1|6|7|8|9|16|17|35|53)$/</span><span class="s">)</span> || <span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;GetNumOfRings</span><span class="s">(</span><span class="s">)</span> &gt;= <span class="n">4</span><span class="s">)</span> || <span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;GetNumOfNeighbors</span><span class="s">(</span><span class="s">)</span> &gt;= <span class="n">5</span><span class="s">)</span> <span class="s">)</span> <span class="s">{</span>
+3921       <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span>
+3922     <span class="s">}</span>
+3923     <span class="i">$KeyValue</span>++<span class="sc">;</span>
+3924     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+3925       <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+3926       <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+3927     <span class="s">}</span>
+3928   <span class="s">}</span>
+3929   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+3930 <span class="s">}</span>
+3931 
+3932 <span class="c"># Generate 322 keyset key 21 value as 1/0 indicating its presence/absence or</span>
+3933 <span class="c"># count of its presence in a molecule.</span>
+3934 <span class="c">#</span>
+3935 <span class="c"># Key 21 description: rare properties: atom has a charge, is an isotope, has</span>
+3936 <span class="c">#                     two or more multiple bonds, or has a triple bond.</span>
+3937 <span class="c">#</span>
+<a name="_Generate322KeySetKey21-"></a>3938 <span class="k">sub </span><span class="m">_Generate322KeySetKey21</span> <span class="s">{</span>
+3939   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3940   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span>
+3941 
+3942   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+3943   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+3944     <span class="k">if</span> <span class="s">(</span> !<span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;IsIsotope</span><span class="s">(</span><span class="s">)</span> || <span class="i">$Atom</span><span class="i">-&gt;GetFormalCharge</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">)</span> <span class="s">{</span>
+3945       <span class="c"># Look for multiple and triple bonds...</span>
+3946       <span class="k">my</span><span class="s">(</span><span class="i">$Bond</span><span class="cm">,</span> <span class="i">$NumOfTripleBonds</span><span class="cm">,</span> <span class="i">$NumOfMultipleBonds</span><span class="s">)</span><span class="sc">;</span>
+3947 
+3948       <span class="s">(</span><span class="i">$NumOfTripleBonds</span><span class="cm">,</span> <span class="i">$NumOfMultipleBonds</span><span class="s">)</span> = <span class="s">(</span><span class="n">0</span><span class="cm">,</span> <span class="n">0</span><span class="s">)</span><span class="sc">;</span>
+3949       <span class="j">BOND:</span> <span class="k">for</span> <span class="i">$Bond</span> <span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;GetBonds</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+3950         <span class="k">if</span> <span class="s">(</span><span class="i">$Bond</span><span class="i">-&gt;IsSingle</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span> <span class="s">}</span>
+3951         <span class="k">if</span> <span class="s">(</span><span class="i">$Bond</span><span class="i">-&gt;IsDouble</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> <span class="i">$NumOfMultipleBonds</span>++<span class="sc">;</span> <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span> <span class="s">}</span>
+3952         <span class="k">if</span> <span class="s">(</span><span class="i">$Bond</span><span class="i">-&gt;IsTriple</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> <span class="i">$NumOfTripleBonds</span>++<span class="sc">;</span> <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span> <span class="s">}</span>
+3953       <span class="s">}</span>
+3954       <span class="k">if</span> <span class="s">(</span> !<span class="s">(</span><span class="i">$NumOfTripleBonds</span> || <span class="s">(</span><span class="i">$NumOfMultipleBonds</span> &gt;= <span class="n">2</span><span class="s">)</span><span class="s">)</span> <span class="s">)</span> <span class="s">{</span>
+3955         <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span>
+3956       <span class="s">}</span>
+3957     <span class="s">}</span>
+3958     <span class="i">$KeyValue</span>++<span class="sc">;</span>
+3959     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+3960       <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+3961       <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+3962     <span class="s">}</span>
+3963   <span class="s">}</span>
+3964   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+3965 <span class="s">}</span>
+3966 
+3967 <span class="c"># Generate 322 keyset key 22 value as 1/0 indicating its presence/absence or</span>
+3968 <span class="c"># count of its presence in a molecule.</span>
+3969 <span class="c">#</span>
+3970 <span class="c"># Key 22 description:  N - nitrogen</span>
+3971 <span class="c">#</span>
+<a name="_Generate322KeySetKey22-"></a>3972 <span class="k">sub </span><span class="m">_Generate322KeySetKey22</span> <span class="s">{</span>
+3973   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3974 
+3975   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+3976 <span class="s">}</span>
+3977 
+3978 <span class="c"># Generate 322 keyset key 23 value as 1/0 indicating its presence/absence or</span>
+3979 <span class="c"># count of its presence in a molecule.</span>
+3980 <span class="c">#</span>
+3981 <span class="c"># Key 23 description: S - sulfur</span>
+3982 <span class="c">#</span>
+<a name="_Generate322KeySetKey23-"></a>3983 <span class="k">sub </span><span class="m">_Generate322KeySetKey23</span> <span class="s">{</span>
+3984   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3985 
+3986   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="s">)</span><span class="sc">;</span>
+3987 <span class="s">}</span>
+3988 
+3989 <span class="c"># Generate 322 keyset key 24 value as 1/0 indicating its presence/absence or</span>
+3990 <span class="c"># count of its presence in a molecule.</span>
+3991 <span class="c">#</span>
+3992 <span class="c"># Key 24 description: O - oxygen</span>
+3993 <span class="c">#</span>
+<a name="_Generate322KeySetKey24-"></a>3994 <span class="k">sub </span><span class="m">_Generate322KeySetKey24</span> <span class="s">{</span>
+3995   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+3996 
+3997   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+3998 <span class="s">}</span>
+3999 
+4000 <span class="c"># Generate 322 keyset key 25 value as 1/0 indicating its presence/absence or</span>
+4001 <span class="c"># count of its presence in a molecule.</span>
+4002 <span class="c">#</span>
+4003 <span class="c"># Key 25 description: A(AA)A(A)A(AA) - atom has two neighbors, each with</span>
+4004 <span class="c">#                     three or more neighbors (including the central atom).</span>
+4005 <span class="c">#</span>
+<a name="_Generate322KeySetKey25-"></a>4006 <span class="k">sub </span><span class="m">_Generate322KeySetKey25</span> <span class="s">{</span>
+4007   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4008   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomsSymbols</span><span class="s">)</span><span class="sc">;</span>
+4009 
+4010   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
+4011   <span class="i">@NbrAtomsSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
+4012 
+4013   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> \<span class="i">@NbrAtomsSymbols</span><span class="s">)</span><span class="sc">;</span>
+4014 <span class="s">}</span>
+4015 
+4016 <span class="c"># Generate 322 keyset key 26 value as 1/0 indicating its presence/absence or</span>
+4017 <span class="c"># count of its presence in a molecule.</span>
+4018 <span class="c">#</span>
+4019 <span class="c"># Key 26 description:     CH2ACH2 - atom has two hydrocarbon (CH2) neighbors</span>
+4020 <span class="c">#</span>
+<a name="_Generate322KeySetKey26-"></a>4021 <span class="k">sub </span><span class="m">_Generate322KeySetKey26</span> <span class="s">{</span>
+4022   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4023   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+4024 
+4025   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
+4026   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="k">undef</span><span class="sc">;</span>
+4027 
+4028   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
+4029   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4030   <span class="i">@NbrAtomMinHydrogenCount</span> = <span class="s">(</span><span class="n">2</span><span class="cm">,</span> <span class="n">2</span><span class="s">)</span><span class="sc">;</span>
+4031 
+4032   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
+4033 
+4034   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+4035 <span class="s">}</span>
+4036 
+4037 <span class="c"># Generate 322 keyset key 27 value as 1/0 indicating its presence/absence or</span>
+4038 <span class="c"># count of its presence in a molecule.</span>
+4039 <span class="c">#</span>
+4040 <span class="c"># Key 27 description: C(CC)</span>
+4041 <span class="c">#</span>
+<a name="_Generate322KeySetKey27-"></a>4042 <span class="k">sub </span><span class="m">_Generate322KeySetKey27</span> <span class="s">{</span>
+4043   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4044   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4045 
+4046   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+4047   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
+4048   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4049 
+4050   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4051 <span class="s">}</span>
+4052 
+4053 <span class="c"># Generate 322 keyset key 28 value as 1/0 indicating its presence/absence or</span>
+4054 <span class="c"># count of its presence in a molecule.</span>
+4055 <span class="c">#</span>
+4056 <span class="c"># Key 28 description: C(CCC)</span>
+4057 <span class="c">#</span>
+<a name="_Generate322KeySetKey28-"></a>4058 <span class="k">sub </span><span class="m">_Generate322KeySetKey28</span> <span class="s">{</span>
+4059   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4060   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4061 
+4062   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+4063   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
+4064   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4065 
+4066   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4067 <span class="s">}</span>
+4068 
+4069 <span class="c"># Generate 322 keyset key 29 value as 1/0 indicating its presence/absence or</span>
+4070 <span class="c"># count of its presence in a molecule.</span>
+4071 <span class="c">#</span>
+4072 <span class="c"># Key 29 description: C(CN)</span>
+4073 <span class="c">#</span>
+<a name="_Generate322KeySetKey29-"></a>4074 <span class="k">sub </span><span class="m">_Generate322KeySetKey29</span> <span class="s">{</span>
+4075   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4076   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4077 
+4078   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+4079   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+4080   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4081 
+4082   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4083 <span class="s">}</span>
+4084 
+4085 <span class="c"># Generate 322 keyset key 30 value as 1/0 indicating its presence/absence or</span>
+4086 <span class="c"># count of its presence in a molecule.</span>
+4087 <span class="c">#</span>
+4088 <span class="c"># Key 30 description: C(CCN)</span>
+4089 <span class="c">#</span>
+<a name="_Generate322KeySetKey30-"></a>4090 <span class="k">sub </span><span class="m">_Generate322KeySetKey30</span> <span class="s">{</span>
+4091   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4092   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4093 
+4094   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+4095   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+4096   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4097 
+4098   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4099 <span class="s">}</span>
+4100 
+4101 <span class="c"># Generate 322 keyset key 31 value as 1/0 indicating its presence/absence or</span>
+4102 <span class="c"># count of its presence in a molecule.</span>
+4103 <span class="c">#</span>
+4104 <span class="c"># Key 31 description: C(NN)</span>
+4105 <span class="c">#</span>
+<a name="_Generate322KeySetKey31-"></a>4106 <span class="k">sub </span><span class="m">_Generate322KeySetKey31</span> <span class="s">{</span>
+4107   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4108   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4109 
+4110   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+4111   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+4112   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4113 
+4114   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4115 <span class="s">}</span>
+4116 
+4117 <span class="c"># Generate 322 keyset key 32 value as 1/0 indicating its presence/absence or</span>
+4118 <span class="c"># count of its presence in a molecule.</span>
+4119 <span class="c">#</span>
+4120 <span class="c"># Key 32 description: C(NNC)</span>
+4121 <span class="c">#</span>
+<a name="_Generate322KeySetKey32-"></a>4122 <span class="k">sub </span><span class="m">_Generate322KeySetKey32</span> <span class="s">{</span>
+4123   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4124   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4125 
+4126   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+4127   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
+4128   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4129 
+4130   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4131 <span class="s">}</span>
+4132 
+4133 <span class="c"># Generate 322 keyset key 33 value as 1/0 indicating its presence/absence or</span>
+4134 <span class="c"># count of its presence in a molecule.</span>
+4135 <span class="c">#</span>
+4136 <span class="c"># Key 33 description: C(NNN)</span>
+4137 <span class="c">#</span>
+<a name="_Generate322KeySetKey33-"></a>4138 <span class="k">sub </span><span class="m">_Generate322KeySetKey33</span> <span class="s">{</span>
+4139   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4140   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4141 
+4142   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+4143   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+4144   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4145 
+4146   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4147 <span class="s">}</span>
+4148 
+4149 <span class="c"># Generate 322 keyset key 34 value as 1/0 indicating its presence/absence or</span>
+4150 <span class="c"># count of its presence in a molecule.</span>
+4151 <span class="c">#</span>
+4152 <span class="c"># Key 34 description: C(CO)</span>
+4153 <span class="c">#</span>
+<a name="_Generate322KeySetKey34-"></a>4154 <span class="k">sub </span><span class="m">_Generate322KeySetKey34</span> <span class="s">{</span>
+4155   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4156   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4157 
+4158   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+4159   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+4160   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4161 
+4162   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4163 <span class="s">}</span>
+4164 
+4165 <span class="c"># Generate 322 keyset key 35 value as 1/0 indicating its presence/absence or</span>
+4166 <span class="c"># count of its presence in a molecule.</span>
+4167 <span class="c">#</span>
+4168 <span class="c"># Key 35 description: C(CCO)</span>
+4169 <span class="c">#</span>
+<a name="_Generate322KeySetKey35-"></a>4170 <span class="k">sub </span><span class="m">_Generate322KeySetKey35</span> <span class="s">{</span>
+4171   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4172   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4173 
+4174   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+4175   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+4176   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4177 
+4178   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4179 <span class="s">}</span>
+4180 
+4181 <span class="c"># Generate 322 keyset key 36 value as 1/0 indicating its presence/absence or</span>
+4182 <span class="c"># count of its presence in a molecule.</span>
+4183 <span class="c">#</span>
+4184 <span class="c"># Key 36 description: C(NO)</span>
+4185 <span class="c">#</span>
+<a name="_Generate322KeySetKey36-"></a>4186 <span class="k">sub </span><span class="m">_Generate322KeySetKey36</span> <span class="s">{</span>
+4187   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4188   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4189 
+4190   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+4191   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+4192   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4193 
+4194   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4195 <span class="s">}</span>
+4196 
+4197 <span class="c"># Generate 322 keyset key 37 value as 1/0 indicating its presence/absence or</span>
+4198 <span class="c"># count of its presence in a molecule.</span>
+4199 <span class="c">#</span>
+4200 <span class="c"># Key 37 description: C(NCO)</span>
+4201 <span class="c">#</span>
+<a name="_Generate322KeySetKey37-"></a>4202 <span class="k">sub </span><span class="m">_Generate322KeySetKey37</span> <span class="s">{</span>
+4203   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4204   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4205 
+4206   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+4207   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+4208   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4209 
+4210   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4211 <span class="s">}</span>
+4212 
+4213 <span class="c"># Generate 322 keyset key 38 value as 1/0 indicating its presence/absence or</span>
+4214 <span class="c"># count of its presence in a molecule.</span>
+4215 <span class="c">#</span>
+4216 <span class="c"># Key 38 description: C(NNO)</span>
+4217 <span class="c">#</span>
+<a name="_Generate322KeySetKey38-"></a>4218 <span class="k">sub </span><span class="m">_Generate322KeySetKey38</span> <span class="s">{</span>
+4219   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4220   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4221 
+4222   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+4223   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+4224   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4225 
+4226   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4227 <span class="s">}</span>
+4228 
+4229 <span class="c"># Generate 322 keyset key 39 value as 1/0 indicating its presence/absence or</span>
+4230 <span class="c"># count of its presence in a molecule.</span>
+4231 <span class="c">#</span>
+4232 <span class="c"># Key 39 description: C(OO)</span>
+4233 <span class="c">#</span>
+<a name="_Generate322KeySetKey39-"></a>4234 <span class="k">sub </span><span class="m">_Generate322KeySetKey39</span> <span class="s">{</span>
+4235   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4236   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4237 
+4238   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+4239   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+4240   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4241 
+4242   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4243 <span class="s">}</span>
+4244 
+4245 <span class="c"># Generate 322 keyset key 40 value as 1/0 indicating its presence/absence or</span>
+4246 <span class="c"># count of its presence in a molecule.</span>
+4247 <span class="c">#</span>
+4248 <span class="c"># Key 40 description: C(COO)</span>
+4249 <span class="c">#</span>
+<a name="_Generate322KeySetKey40-"></a>4250 <span class="k">sub </span><span class="m">_Generate322KeySetKey40</span> <span class="s">{</span>
+4251   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4252   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4253 
+4254   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+4255   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+4256   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4257 
+4258   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4259 <span class="s">}</span>
+4260 
+4261 <span class="c"># Generate 322 keyset key 41 value as 1/0 indicating its presence/absence or</span>
+4262 <span class="c"># count of its presence in a molecule.</span>
+4263 <span class="c">#</span>
+4264 <span class="c"># Key 41 description: C(NOO)</span>
+4265 <span class="c">#</span>
+<a name="_Generate322KeySetKey41-"></a>4266 <span class="k">sub </span><span class="m">_Generate322KeySetKey41</span> <span class="s">{</span>
+4267   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4268   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4269 
+4270   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+4271   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+4272   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4273 
+4274   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4275 <span class="s">}</span>
+4276 
+4277 <span class="c"># Generate 322 keyset key 42 value as 1/0 indicating its presence/absence or</span>
+4278 <span class="c"># count of its presence in a molecule.</span>
+4279 <span class="c">#</span>
+4280 <span class="c"># Key 42 description: C(OOO)</span>
+4281 <span class="c">#</span>
+<a name="_Generate322KeySetKey42-"></a>4282 <span class="k">sub </span><span class="m">_Generate322KeySetKey42</span> <span class="s">{</span>
+4283   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4284   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4285 
+4286   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
+4287   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+4288   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4289 
+4290   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4291 <span class="s">}</span>
+4292 
+4293 <span class="c"># Generate 322 keyset key 43 value as 1/0 indicating its presence/absence or</span>
+4294 <span class="c"># count of its presence in a molecule.</span>
+4295 <span class="c">#</span>
+4296 <span class="c"># Key 43 description: Q(CC)</span>
+4297 <span class="c">#</span>
+<a name="_Generate322KeySetKey43-"></a>4298 <span class="k">sub </span><span class="m">_Generate322KeySetKey43</span> <span class="s">{</span>
+4299   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4300   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4301 
+4302   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
+4303   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
+4304   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4305 
+4306   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4307 <span class="s">}</span>
+4308 
+4309 <span class="c"># Generate 322 keyset key 44 value as 1/0 indicating its presence/absence or</span>
+4310 <span class="c"># count of its presence in a molecule.</span>
+4311 <span class="c">#</span>
+4312 <span class="c"># Key 44 description: Q(CCC)</span>
+4313 <span class="c">#</span>
+<a name="_Generate322KeySetKey44-"></a>4314 <span class="k">sub </span><span class="m">_Generate322KeySetKey44</span> <span class="s">{</span>
+4315   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4316   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4317 
+4318   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
+4319   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
+4320   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4321 
+4322   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4323 <span class="s">}</span>
+4324 
+4325 <span class="c"># Generate 322 keyset key 45 value as 1/0 indicating its presence/absence or</span>
+4326 <span class="c"># count of its presence in a molecule.</span>
+4327 <span class="c">#</span>
+4328 <span class="c"># Key 45 description: Q(CN)</span>
+4329 <span class="c">#</span>
+<a name="_Generate322KeySetKey45-"></a>4330 <span class="k">sub </span><span class="m">_Generate322KeySetKey45</span> <span class="s">{</span>
+4331   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4332   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4333 
+4334   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
+4335   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+4336   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4337 
+4338   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4339 <span class="s">}</span>
+4340 
+4341 <span class="c"># Generate 322 keyset key 46 value as 1/0 indicating its presence/absence or</span>
+4342 <span class="c"># count of its presence in a molecule.</span>
+4343 <span class="c">#</span>
+4344 <span class="c"># Key 46 description: Q(CCN)</span>
+4345 <span class="c">#</span>
+<a name="_Generate322KeySetKey46-"></a>4346 <span class="k">sub </span><span class="m">_Generate322KeySetKey46</span> <span class="s">{</span>
+4347   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4348   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4349 
+4350   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
+4351   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+4352   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4353 
+4354   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4355 <span class="s">}</span>
+4356 
+4357 <span class="c"># Generate 322 keyset key 47 value as 1/0 indicating its presence/absence or</span>
+4358 <span class="c"># count of its presence in a molecule.</span>
+4359 <span class="c">#</span>
+4360 <span class="c"># Key 47 description: Q(NN)</span>
+4361 <span class="c">#</span>
+<a name="_Generate322KeySetKey47-"></a>4362 <span class="k">sub </span><span class="m">_Generate322KeySetKey47</span> <span class="s">{</span>
+4363   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4364   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4365 
+4366   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
+4367   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+4368   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4369 
+4370   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4371 <span class="s">}</span>
+4372 
+4373 <span class="c"># Generate 322 keyset key 48 value as 1/0 indicating its presence/absence or</span>
+4374 <span class="c"># count of its presence in a molecule.</span>
+4375 <span class="c">#</span>
+4376 <span class="c"># Key 48 description: Q(CNN)</span>
+4377 <span class="c">#</span>
+<a name="_Generate322KeySetKey48-"></a>4378 <span class="k">sub </span><span class="m">_Generate322KeySetKey48</span> <span class="s">{</span>
+4379   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4380   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4381 
+4382   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
+4383   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+4384   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4385 
+4386   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4387 <span class="s">}</span>
+4388 
+4389 <span class="c"># Generate 322 keyset key 49 value as 1/0 indicating its presence/absence or</span>
+4390 <span class="c"># count of its presence in a molecule.</span>
+4391 <span class="c">#</span>
+4392 <span class="c"># Key 49 description: Q(NNN)</span>
+4393 <span class="c">#</span>
+<a name="_Generate322KeySetKey49-"></a>4394 <span class="k">sub </span><span class="m">_Generate322KeySetKey49</span> <span class="s">{</span>
+4395   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4396   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4397 
+4398   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
+4399   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
+4400   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4401 
+4402   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4403 <span class="s">}</span>
+4404 
+4405 <span class="c"># Generate 322 keyset key 50 value as 1/0 indicating its presence/absence or</span>
+4406 <span class="c"># count of its presence in a molecule.</span>
+4407 <span class="c">#</span>
+4408 <span class="c"># Key 50 description: Q(CO)</span>
+4409 <span class="c">#</span>
+<a name="_Generate322KeySetKey50-"></a>4410 <span class="k">sub </span><span class="m">_Generate322KeySetKey50</span> <span class="s">{</span>
+4411   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4412   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4413 
+4414   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
+4415   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+4416   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4417 
+4418   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4419 <span class="s">}</span>
+4420 
+4421 <span class="c"># Generate 322 keyset key 51 value as 1/0 indicating its presence/absence or</span>
+4422 <span class="c"># count of its presence in a molecule.</span>
+4423 <span class="c">#</span>
+4424 <span class="c"># Key 51 description: Q(CCO)</span>
+4425 <span class="c">#</span>
+<a name="_Generate322KeySetKey51-"></a>4426 <span class="k">sub </span><span class="m">_Generate322KeySetKey51</span> <span class="s">{</span>
+4427   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4428   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4429 
+4430   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
+4431   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+4432   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4433 
+4434   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4435 <span class="s">}</span>
+4436 
+4437 <span class="c"># Generate 322 keyset key 52 value as 1/0 indicating its presence/absence or</span>
+4438 <span class="c"># count of its presence in a molecule.</span>
+4439 <span class="c">#</span>
+4440 <span class="c"># Key 52 description: Q(NO)</span>
+4441 <span class="c">#</span>
+<a name="_Generate322KeySetKey52-"></a>4442 <span class="k">sub </span><span class="m">_Generate322KeySetKey52</span> <span class="s">{</span>
+4443   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4444   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4445 
+4446   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
+4447   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+4448   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4449 
+4450   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4451 <span class="s">}</span>
+4452 
+4453 <span class="c"># Generate 322 keyset key 53 value as 1/0 indicating its presence/absence or</span>
+4454 <span class="c"># count of its presence in a molecule.</span>
+4455 <span class="c">#</span>
+4456 <span class="c"># Key 53 description: Q(CNO)</span>
+4457 <span class="c">#</span>
+<a name="_Generate322KeySetKey53-"></a>4458 <span class="k">sub </span><span class="m">_Generate322KeySetKey53</span> <span class="s">{</span>
+4459   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4460   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4461 
+4462   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
+4463   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+4464   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4465 
+4466   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4467 <span class="s">}</span>
+4468 
+4469 <span class="c"># Generate 322 keyset key 54 value as 1/0 indicating its presence/absence or</span>
+4470 <span class="c"># count of its presence in a molecule.</span>
+4471 <span class="c">#</span>
+4472 <span class="c"># Key 54 description: Q(NNO)</span>
+4473 <span class="c">#</span>
+<a name="_Generate322KeySetKey54-"></a>4474 <span class="k">sub </span><span class="m">_Generate322KeySetKey54</span> <span class="s">{</span>
+4475   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4476   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4477 
+4478   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
+4479   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+4480   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4481 
+4482   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4483 <span class="s">}</span>
+4484 
+4485 <span class="c"># Generate 322 keyset key 55 value as 1/0 indicating its presence/absence or</span>
+4486 <span class="c"># count of its presence in a molecule.</span>
+4487 <span class="c">#</span>
+4488 <span class="c"># Key 55 description: Q(OO)</span>
+4489 <span class="c">#</span>
+<a name="_Generate322KeySetKey55-"></a>4490 <span class="k">sub </span><span class="m">_Generate322KeySetKey55</span> <span class="s">{</span>
+4491   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4492   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4493 
+4494   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
+4495   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+4496   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4497 
+4498   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4499 <span class="s">}</span>
+4500 
+4501 <span class="c"># Generate 322 keyset key 56 value as 1/0 indicating its presence/absence or</span>
+4502 <span class="c"># count of its presence in a molecule.</span>
+4503 <span class="c">#</span>
+4504 <span class="c"># Key 56 description: Q(COO)</span>
+4505 <span class="c">#</span>
+<a name="_Generate322KeySetKey56-"></a>4506 <span class="k">sub </span><span class="m">_Generate322KeySetKey56</span> <span class="s">{</span>
+4507   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4508   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4509 
+4510   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
+4511   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+4512   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4513 
+4514   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4515 <span class="s">}</span>
+4516 
+4517 <span class="c"># Generate 322 keyset key 57 value as 1/0 indicating its presence/absence or</span>
+4518 <span class="c"># count of its presence in a molecule.</span>
+4519 <span class="c">#</span>
+4520 <span class="c"># Key 57 description: Q(NOO)</span>
+4521 <span class="c">#</span>
+<a name="_Generate322KeySetKey57-"></a>4522 <span class="k">sub </span><span class="m">_Generate322KeySetKey57</span> <span class="s">{</span>
+4523   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4524   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4525 
+4526   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
+4527   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+4528   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4529 
+4530   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4531 <span class="s">}</span>
+4532 
+4533 <span class="c"># Generate 322 keyset key 58 value as 1/0 indicating its presence/absence or</span>
+4534 <span class="c"># count of its presence in a molecule.</span>
+4535 <span class="c">#</span>
+4536 <span class="c"># Key 58 description: Q(OOO)</span>
+4537 <span class="c">#</span>
+<a name="_Generate322KeySetKey58-"></a>4538 <span class="k">sub </span><span class="m">_Generate322KeySetKey58</span> <span class="s">{</span>
+4539   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4540   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4541 
+4542   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
+4543   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
+4544   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+4545 
+4546   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
+4547 <span class="s">}</span>
+4548 
+4549 <span class="c"># Generate 322 keyset key 59 value as 1/0 indicating its presence/absence or</span>
+4550 <span class="c"># count of its presence in a molecule.</span>
+4551 <span class="c">#</span>
+4552 <span class="c"># Key 59 description: C-C</span>
+4553 <span class="c">#</span>
+<a name="_Generate322KeySetKey59-"></a>4554 <span class="k">sub </span><span class="m">_Generate322KeySetKey59</span> <span class="s">{</span>
+4555   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4556   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4557 
+4558   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4559 <span class="s">}</span>
+4560 
+4561 <span class="c"># Generate 322 keyset key 60 value as 1/0 indicating its presence/absence or</span>
+4562 <span class="c"># count of its presence in a molecule.</span>
+4563 <span class="c">#</span>
+4564 <span class="c"># Key 60 description: C-N</span>
+4565 <span class="c">#</span>
+<a name="_Generate322KeySetKey60-"></a>4566 <span class="k">sub </span><span class="m">_Generate322KeySetKey60</span> <span class="s">{</span>
+4567   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4568   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4569 
+4570   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4571 <span class="s">}</span>
+4572 
+4573 <span class="c"># Generate 322 keyset key 61 value as 1/0 indicating its presence/absence or</span>
+4574 <span class="c"># count of its presence in a molecule.</span>
+4575 <span class="c">#</span>
+4576 <span class="c"># Key 61 description: C-O</span>
+4577 <span class="c">#</span>
+<a name="_Generate322KeySetKey61-"></a>4578 <span class="k">sub </span><span class="m">_Generate322KeySetKey61</span> <span class="s">{</span>
+4579   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4580   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4581 
+4582   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4583 <span class="s">}</span>
+4584 
+4585 <span class="c"># Generate 322 keyset key 62 value as 1/0 indicating its presence/absence or</span>
+4586 <span class="c"># count of its presence in a molecule.</span>
+4587 <span class="c">#</span>
+4588 <span class="c"># Key 62 description: C-S</span>
+4589 <span class="c">#</span>
+<a name="_Generate322KeySetKey62-"></a>4590 <span class="k">sub </span><span class="m">_Generate322KeySetKey62</span> <span class="s">{</span>
+4591   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4592   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4593 
+4594   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4595 <span class="s">}</span>
+4596 
+4597 <span class="c"># Generate 322 keyset key 63 value as 1/0 indicating its presence/absence or</span>
+4598 <span class="c"># count of its presence in a molecule.</span>
+4599 <span class="c">#</span>
+4600 <span class="c"># Key 63 description: C-Cl</span>
+4601 <span class="c">#</span>
+<a name="_Generate322KeySetKey63-"></a>4602 <span class="k">sub </span><span class="m">_Generate322KeySetKey63</span> <span class="s">{</span>
+4603   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4604   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4605 
+4606   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4607 <span class="s">}</span>
+4608 
+4609 <span class="c"># Generate 322 keyset key 64 value as 1/0 indicating its presence/absence or</span>
+4610 <span class="c"># count of its presence in a molecule.</span>
+4611 <span class="c">#</span>
+4612 <span class="c"># Key 64 description: C-P</span>
+4613 <span class="c">#</span>
+<a name="_Generate322KeySetKey64-"></a>4614 <span class="k">sub </span><span class="m">_Generate322KeySetKey64</span> <span class="s">{</span>
+4615   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4616   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4617 
+4618   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4619 <span class="s">}</span>
+4620 
+4621 <span class="c"># Generate 322 keyset key 65 value as 1/0 indicating its presence/absence or</span>
+4622 <span class="c"># count of its presence in a molecule.</span>
+4623 <span class="c">#</span>
+4624 <span class="c"># Key 65 description: C-F</span>
+4625 <span class="c">#</span>
+<a name="_Generate322KeySetKey65-"></a>4626 <span class="k">sub </span><span class="m">_Generate322KeySetKey65</span> <span class="s">{</span>
+4627   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4628   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4629 
+4630   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4631 <span class="s">}</span>
+4632 
+4633 <span class="c"># Generate 322 keyset key 66 value as 1/0 indicating its presence/absence or</span>
+4634 <span class="c"># count of its presence in a molecule.</span>
+4635 <span class="c">#</span>
+4636 <span class="c"># Key 66 description: C-Br</span>
+4637 <span class="c">#</span>
+<a name="_Generate322KeySetKey66-"></a>4638 <span class="k">sub </span><span class="m">_Generate322KeySetKey66</span> <span class="s">{</span>
+4639   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4640   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4641 
+4642   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4643 <span class="s">}</span>
+4644 
+4645 <span class="c"># Generate 322 keyset key 67 value as 1/0 indicating its presence/absence or</span>
+4646 <span class="c"># count of its presence in a molecule.</span>
+4647 <span class="c">#</span>
+4648 <span class="c"># Key 67 description: C-Si</span>
+4649 <span class="c">#</span>
+<a name="_Generate322KeySetKey67-"></a>4650 <span class="k">sub </span><span class="m">_Generate322KeySetKey67</span> <span class="s">{</span>
+4651   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4652   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4653 
+4654   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4655 <span class="s">}</span>
+4656 
+4657 <span class="c"># Generate 322 keyset key 68 value as 1/0 indicating its presence/absence or</span>
+4658 <span class="c"># count of its presence in a molecule.</span>
+4659 <span class="c">#</span>
+4660 <span class="c"># Key 68 description: C-I</span>
+4661 <span class="c">#</span>
+<a name="_Generate322KeySetKey68-"></a>4662 <span class="k">sub </span><span class="m">_Generate322KeySetKey68</span> <span class="s">{</span>
+4663   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4664   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4665 
+4666   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4667 <span class="s">}</span>
+4668 
+4669 <span class="c"># Generate 322 keyset key 69 value as 1/0 indicating its presence/absence or</span>
+4670 <span class="c"># count of its presence in a molecule.</span>
+4671 <span class="c">#</span>
+4672 <span class="c"># Key 69 description: C-X</span>
+4673 <span class="c">#</span>
+<a name="_Generate322KeySetKey69-"></a>4674 <span class="k">sub </span><span class="m">_Generate322KeySetKey69</span> <span class="s">{</span>
+4675   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4676   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4677 
+4678   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4679 <span class="s">}</span>
+4680 
+4681 <span class="c"># Generate 322 keyset key 70 value as 1/0 indicating its presence/absence or</span>
+4682 <span class="c"># count of its presence in a molecule.</span>
+4683 <span class="c">#</span>
+4684 <span class="c"># Key 70 description: N-N</span>
+4685 <span class="c">#</span>
+<a name="_Generate322KeySetKey70-"></a>4686 <span class="k">sub </span><span class="m">_Generate322KeySetKey70</span> <span class="s">{</span>
+4687   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4688   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4689 
+4690   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4691 <span class="s">}</span>
+4692 
+4693 <span class="c"># Generate 322 keyset key 71 value as 1/0 indicating its presence/absence or</span>
+4694 <span class="c"># count of its presence in a molecule.</span>
+4695 <span class="c">#</span>
+4696 <span class="c"># Key 71 description: N-O</span>
+4697 <span class="c">#</span>
+<a name="_Generate322KeySetKey71-"></a>4698 <span class="k">sub </span><span class="m">_Generate322KeySetKey71</span> <span class="s">{</span>
+4699   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4700   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4701 
+4702   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4703 <span class="s">}</span>
+4704 
+4705 <span class="c"># Generate 322 keyset key 72 value as 1/0 indicating its presence/absence or</span>
+4706 <span class="c"># count of its presence in a molecule.</span>
+4707 <span class="c">#</span>
+4708 <span class="c"># Key 72 description: N-S</span>
+4709 <span class="c">#</span>
+<a name="_Generate322KeySetKey72-"></a>4710 <span class="k">sub </span><span class="m">_Generate322KeySetKey72</span> <span class="s">{</span>
+4711   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4712   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4713 
+4714   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4715 <span class="s">}</span>
+4716 
+4717 <span class="c"># Generate 322 keyset key 73 value as 1/0 indicating its presence/absence or</span>
+4718 <span class="c"># count of its presence in a molecule.</span>
+4719 <span class="c">#</span>
+4720 <span class="c"># Key 73 description: N-Cl</span>
+4721 <span class="c">#</span>
+<a name="_Generate322KeySetKey73-"></a>4722 <span class="k">sub </span><span class="m">_Generate322KeySetKey73</span> <span class="s">{</span>
+4723   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4724   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4725 
+4726   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4727 <span class="s">}</span>
+4728 
+4729 <span class="c"># Generate 322 keyset key 74 value as 1/0 indicating its presence/absence or</span>
+4730 <span class="c"># count of its presence in a molecule.</span>
+4731 <span class="c">#</span>
+4732 <span class="c"># Key 74 description: N-P</span>
+4733 <span class="c">#</span>
+<a name="_Generate322KeySetKey74-"></a>4734 <span class="k">sub </span><span class="m">_Generate322KeySetKey74</span> <span class="s">{</span>
+4735   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4736   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4737 
+4738   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4739 <span class="s">}</span>
+4740 
+4741 <span class="c"># Generate 322 keyset key 75 value as 1/0 indicating its presence/absence or</span>
+4742 <span class="c"># count of its presence in a molecule.</span>
+4743 <span class="c">#</span>
+4744 <span class="c"># Key 75 description: N-F</span>
+4745 <span class="c">#</span>
+<a name="_Generate322KeySetKey75-"></a>4746 <span class="k">sub </span><span class="m">_Generate322KeySetKey75</span> <span class="s">{</span>
+4747   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4748   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4749 
+4750   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4751 <span class="s">}</span>
+4752 
+4753 <span class="c"># Generate 322 keyset key 76 value as 1/0 indicating its presence/absence or</span>
+4754 <span class="c"># count of its presence in a molecule.</span>
+4755 <span class="c">#</span>
+4756 <span class="c"># Key 76 description: N-Br</span>
+4757 <span class="c">#</span>
+<a name="_Generate322KeySetKey76-"></a>4758 <span class="k">sub </span><span class="m">_Generate322KeySetKey76</span> <span class="s">{</span>
+4759   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4760   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4761 
+4762   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4763 <span class="s">}</span>
+4764 
+4765 <span class="c"># Generate 322 keyset key 77 value as 1/0 indicating its presence/absence or</span>
+4766 <span class="c"># count of its presence in a molecule.</span>
+4767 <span class="c">#</span>
+4768 <span class="c"># Key 77 description: N-Si</span>
+4769 <span class="c">#</span>
+<a name="_Generate322KeySetKey77-"></a>4770 <span class="k">sub </span><span class="m">_Generate322KeySetKey77</span> <span class="s">{</span>
+4771   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4772   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4773 
+4774   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4775 <span class="s">}</span>
+4776 
+4777 <span class="c"># Generate 322 keyset key 78 value as 1/0 indicating its presence/absence or</span>
+4778 <span class="c"># count of its presence in a molecule.</span>
+4779 <span class="c">#</span>
+4780 <span class="c"># Key 78 description: N-I</span>
+4781 <span class="c">#</span>
+<a name="_Generate322KeySetKey78-"></a>4782 <span class="k">sub </span><span class="m">_Generate322KeySetKey78</span> <span class="s">{</span>
+4783   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4784   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4785 
+4786   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4787 <span class="s">}</span>
+4788 
+4789 <span class="c"># Generate 322 keyset key 79 value as 1/0 indicating its presence/absence or</span>
+4790 <span class="c"># count of its presence in a molecule.</span>
+4791 <span class="c">#</span>
+4792 <span class="c"># Key 79 description: N-X</span>
+4793 <span class="c">#</span>
+<a name="_Generate322KeySetKey79-"></a>4794 <span class="k">sub </span><span class="m">_Generate322KeySetKey79</span> <span class="s">{</span>
+4795   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4796   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4797 
+4798   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4799 <span class="s">}</span>
+4800 
+4801 <span class="c"># Generate 322 keyset key 80 value as 1/0 indicating its presence/absence or</span>
+4802 <span class="c"># count of its presence in a molecule.</span>
+4803 <span class="c">#</span>
+4804 <span class="c"># Key 80 description: O-O</span>
+4805 <span class="c">#</span>
+<a name="_Generate322KeySetKey80-"></a>4806 <span class="k">sub </span><span class="m">_Generate322KeySetKey80</span> <span class="s">{</span>
+4807   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4808   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4809 
+4810   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4811 <span class="s">}</span>
+4812 
+4813 <span class="c"># Generate 322 keyset key 81 value as 1/0 indicating its presence/absence or</span>
+4814 <span class="c"># count of its presence in a molecule.</span>
+4815 <span class="c">#</span>
+4816 <span class="c"># Key 81 description: O-S</span>
+4817 <span class="c">#</span>
+<a name="_Generate322KeySetKey81-"></a>4818 <span class="k">sub </span><span class="m">_Generate322KeySetKey81</span> <span class="s">{</span>
+4819   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4820   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4821 
+4822   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4823 <span class="s">}</span>
+4824 
+4825 <span class="c"># Generate 322 keyset key 82 value as 1/0 indicating its presence/absence or</span>
+4826 <span class="c"># count of its presence in a molecule.</span>
+4827 <span class="c">#</span>
+4828 <span class="c"># Key 82 description: O-Cl</span>
+4829 <span class="c">#</span>
+<a name="_Generate322KeySetKey82-"></a>4830 <span class="k">sub </span><span class="m">_Generate322KeySetKey82</span> <span class="s">{</span>
+4831   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4832   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4833 
+4834   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4835 <span class="s">}</span>
+4836 
+4837 <span class="c"># Generate 322 keyset key 83 value as 1/0 indicating its presence/absence or</span>
+4838 <span class="c"># count of its presence in a molecule.</span>
+4839 <span class="c">#</span>
+4840 <span class="c"># Key 83 description: O-P</span>
+4841 <span class="c">#</span>
+<a name="_Generate322KeySetKey83-"></a>4842 <span class="k">sub </span><span class="m">_Generate322KeySetKey83</span> <span class="s">{</span>
+4843   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4844   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4845 
+4846   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4847 <span class="s">}</span>
+4848 
+4849 <span class="c"># Generate 322 keyset key 84 value as 1/0 indicating its presence/absence or</span>
+4850 <span class="c"># count of its presence in a molecule.</span>
+4851 <span class="c">#</span>
+4852 <span class="c"># Key 84 description: O-F</span>
+4853 <span class="c">#</span>
+<a name="_Generate322KeySetKey84-"></a>4854 <span class="k">sub </span><span class="m">_Generate322KeySetKey84</span> <span class="s">{</span>
+4855   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4856   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4857 
+4858   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4859 <span class="s">}</span>
+4860 
+4861 <span class="c"># Generate 322 keyset key 85 value as 1/0 indicating its presence/absence or</span>
+4862 <span class="c"># count of its presence in a molecule.</span>
+4863 <span class="c">#</span>
+4864 <span class="c"># Key 85 description: O-Br</span>
+4865 <span class="c">#</span>
+<a name="_Generate322KeySetKey85-"></a>4866 <span class="k">sub </span><span class="m">_Generate322KeySetKey85</span> <span class="s">{</span>
+4867   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4868   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4869 
+4870   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4871 <span class="s">}</span>
+4872 
+4873 <span class="c"># Generate 322 keyset key 86 value as 1/0 indicating its presence/absence or</span>
+4874 <span class="c"># count of its presence in a molecule.</span>
+4875 <span class="c">#</span>
+4876 <span class="c"># Key 86 description: O-Si</span>
+4877 <span class="c">#</span>
+<a name="_Generate322KeySetKey86-"></a>4878 <span class="k">sub </span><span class="m">_Generate322KeySetKey86</span> <span class="s">{</span>
+4879   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4880   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4881 
+4882   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4883 <span class="s">}</span>
+4884 
+4885 <span class="c"># Generate 322 keyset key 87 value as 1/0 indicating its presence/absence or</span>
+4886 <span class="c"># count of its presence in a molecule.</span>
+4887 <span class="c">#</span>
+4888 <span class="c"># Key 87 description: O-I</span>
+4889 <span class="c">#</span>
+<a name="_Generate322KeySetKey87-"></a>4890 <span class="k">sub </span><span class="m">_Generate322KeySetKey87</span> <span class="s">{</span>
+4891   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4892   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4893 
+4894   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4895 <span class="s">}</span>
+4896 
+4897 <span class="c"># Generate 322 keyset key 88 value as 1/0 indicating its presence/absence or</span>
+4898 <span class="c"># count of its presence in a molecule.</span>
+4899 <span class="c">#</span>
+4900 <span class="c"># Key 88 description: O-X</span>
+4901 <span class="c">#</span>
+<a name="_Generate322KeySetKey88-"></a>4902 <span class="k">sub </span><span class="m">_Generate322KeySetKey88</span> <span class="s">{</span>
+4903   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4904   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4905 
+4906   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4907 <span class="s">}</span>
+4908 
+4909 <span class="c"># Generate 322 keyset key 89 value as 1/0 indicating its presence/absence or</span>
+4910 <span class="c"># count of its presence in a molecule.</span>
+4911 <span class="c">#</span>
+4912 <span class="c"># Key 89 description: S-S</span>
+4913 <span class="c">#</span>
+<a name="_Generate322KeySetKey89-"></a>4914 <span class="k">sub </span><span class="m">_Generate322KeySetKey89</span> <span class="s">{</span>
+4915   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4916   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4917 
+4918   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4919 <span class="s">}</span>
+4920 
+4921 <span class="c"># Generate 322 keyset key 90 value as 1/0 indicating its presence/absence or</span>
+4922 <span class="c"># count of its presence in a molecule.</span>
+4923 <span class="c">#</span>
+4924 <span class="c"># Key 90 description: S-Cl</span>
+4925 <span class="c">#</span>
+<a name="_Generate322KeySetKey90-"></a>4926 <span class="k">sub </span><span class="m">_Generate322KeySetKey90</span> <span class="s">{</span>
+4927   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4928   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4929 
+4930   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4931 <span class="s">}</span>
+4932 
+4933 <span class="c"># Generate 322 keyset key 91 value as 1/0 indicating its presence/absence or</span>
+4934 <span class="c"># count of its presence in a molecule.</span>
+4935 <span class="c">#</span>
+4936 <span class="c"># Key 91 description: S-P</span>
+4937 <span class="c">#</span>
+<a name="_Generate322KeySetKey91-"></a>4938 <span class="k">sub </span><span class="m">_Generate322KeySetKey91</span> <span class="s">{</span>
+4939   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4940   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4941 
+4942   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4943 <span class="s">}</span>
+4944 
+4945 <span class="c"># Generate 322 keyset key 92 value as 1/0 indicating its presence/absence or</span>
+4946 <span class="c"># count of its presence in a molecule.</span>
+4947 <span class="c">#</span>
+4948 <span class="c"># Key 92 description: S-F</span>
+4949 <span class="c">#</span>
+<a name="_Generate322KeySetKey92-"></a>4950 <span class="k">sub </span><span class="m">_Generate322KeySetKey92</span> <span class="s">{</span>
+4951   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4952   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4953 
+4954   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4955 <span class="s">}</span>
+4956 
+4957 <span class="c"># Generate 322 keyset key 93 value as 1/0 indicating its presence/absence or</span>
+4958 <span class="c"># count of its presence in a molecule.</span>
+4959 <span class="c">#</span>
+4960 <span class="c"># Key 93 description: S-Br</span>
+4961 <span class="c">#</span>
+<a name="_Generate322KeySetKey93-"></a>4962 <span class="k">sub </span><span class="m">_Generate322KeySetKey93</span> <span class="s">{</span>
+4963   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4964   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4965 
+4966   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4967 <span class="s">}</span>
+4968 
+4969 <span class="c"># Generate 322 keyset key 94 value as 1/0 indicating its presence/absence or</span>
+4970 <span class="c"># count of its presence in a molecule.</span>
+4971 <span class="c">#</span>
+4972 <span class="c"># Key 94 description: S-Si</span>
+4973 <span class="c">#</span>
+<a name="_Generate322KeySetKey94-"></a>4974 <span class="k">sub </span><span class="m">_Generate322KeySetKey94</span> <span class="s">{</span>
+4975   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4976   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4977 
+4978   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4979 <span class="s">}</span>
+4980 
+4981 <span class="c"># Generate 322 keyset key 95 value as 1/0 indicating its presence/absence or</span>
+4982 <span class="c"># count of its presence in a molecule.</span>
+4983 <span class="c">#</span>
+4984 <span class="c"># Key 95 description: S-I</span>
+4985 <span class="c">#</span>
+<a name="_Generate322KeySetKey95-"></a>4986 <span class="k">sub </span><span class="m">_Generate322KeySetKey95</span> <span class="s">{</span>
+4987   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+4988   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+4989 
+4990   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+4991 <span class="s">}</span>
+4992 
+4993 <span class="c"># Generate 322 keyset key 96 value as 1/0 indicating its presence/absence or</span>
+4994 <span class="c"># count of its presence in a molecule.</span>
+4995 <span class="c">#</span>
+4996 <span class="c"># Key 96 description: S-X</span>
+4997 <span class="c">#</span>
+<a name="_Generate322KeySetKey96-"></a>4998 <span class="k">sub </span><span class="m">_Generate322KeySetKey96</span> <span class="s">{</span>
+4999   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5000   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5001 
+5002   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5003 <span class="s">}</span>
+5004 
+5005 <span class="c"># Generate 322 keyset key 97 value as 1/0 indicating its presence/absence or</span>
+5006 <span class="c"># count of its presence in a molecule.</span>
+5007 <span class="c">#</span>
+5008 <span class="c"># Key 97 description: Cl-Cl</span>
+5009 <span class="c">#</span>
+<a name="_Generate322KeySetKey97-"></a>5010 <span class="k">sub </span><span class="m">_Generate322KeySetKey97</span> <span class="s">{</span>
+5011   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5012   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5013 
+5014   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5015 <span class="s">}</span>
+5016 
+5017 <span class="c"># Generate 322 keyset key 98 value as 1/0 indicating its presence/absence or</span>
+5018 <span class="c"># count of its presence in a molecule.</span>
+5019 <span class="c">#</span>
+5020 <span class="c"># Key 98 description: Cl-P</span>
+5021 <span class="c">#</span>
+<a name="_Generate322KeySetKey98-"></a>5022 <span class="k">sub </span><span class="m">_Generate322KeySetKey98</span> <span class="s">{</span>
+5023   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5024   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5025 
+5026   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5027 <span class="s">}</span>
+5028 
+5029 <span class="c"># Generate 322 keyset key 99 value as 1/0 indicating its presence/absence or</span>
+5030 <span class="c"># count of its presence in a molecule.</span>
+5031 <span class="c">#</span>
+5032 <span class="c"># Key 99 description: Cl-F</span>
+5033 <span class="c">#</span>
+<a name="_Generate322KeySetKey99-"></a>5034 <span class="k">sub </span><span class="m">_Generate322KeySetKey99</span> <span class="s">{</span>
+5035   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5036   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5037 
+5038   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5039 <span class="s">}</span>
+5040 
+5041 <span class="c"># Generate 322 keyset key 100 value as 1/0 indicating its presence/absence or</span>
+5042 <span class="c"># count of its presence in a molecule.</span>
+5043 <span class="c">#</span>
+5044 <span class="c"># Key 100 description: Cl-Br</span>
+5045 <span class="c">#</span>
+<a name="_Generate322KeySetKey100-"></a>5046 <span class="k">sub </span><span class="m">_Generate322KeySetKey100</span> <span class="s">{</span>
+5047   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5048   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5049 
+5050   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5051 <span class="s">}</span>
+5052 
+5053 <span class="c"># Generate 322 keyset key 101 value as 1/0 indicating its presence/absence or</span>
+5054 <span class="c"># count of its presence in a molecule.</span>
+5055 <span class="c">#</span>
+5056 <span class="c"># Key 101 description: Cl-Si</span>
+5057 <span class="c">#</span>
+<a name="_Generate322KeySetKey101-"></a>5058 <span class="k">sub </span><span class="m">_Generate322KeySetKey101</span> <span class="s">{</span>
+5059   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5060   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5061 
+5062   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5063 <span class="s">}</span>
+5064 
+5065 <span class="c"># Generate 322 keyset key 102 value as 1/0 indicating its presence/absence or</span>
+5066 <span class="c"># count of its presence in a molecule.</span>
+5067 <span class="c">#</span>
+5068 <span class="c"># Key 102 description: Cl-I</span>
+5069 <span class="c">#</span>
+<a name="_Generate322KeySetKey102-"></a>5070 <span class="k">sub </span><span class="m">_Generate322KeySetKey102</span> <span class="s">{</span>
+5071   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5072   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5073 
+5074   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5075 <span class="s">}</span>
+5076 
+5077 <span class="c"># Generate 322 keyset key 103 value as 1/0 indicating its presence/absence or</span>
+5078 <span class="c"># count of its presence in a molecule.</span>
+5079 <span class="c">#</span>
+5080 <span class="c"># Key 103 description: Cl-X</span>
+5081 <span class="c">#</span>
+<a name="_Generate322KeySetKey103-"></a>5082 <span class="k">sub </span><span class="m">_Generate322KeySetKey103</span> <span class="s">{</span>
+5083   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5084   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5085 
+5086   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5087 <span class="s">}</span>
+5088 
+5089 <span class="c"># Generate 322 keyset key 104 value as 1/0 indicating its presence/absence or</span>
+5090 <span class="c"># count of its presence in a molecule.</span>
+5091 <span class="c">#</span>
+5092 <span class="c"># Key 104 description: P-P</span>
+5093 <span class="c">#</span>
+<a name="_Generate322KeySetKey104-"></a>5094 <span class="k">sub </span><span class="m">_Generate322KeySetKey104</span> <span class="s">{</span>
+5095   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5096   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5097 
+5098   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5099 <span class="s">}</span>
+5100 
+5101 <span class="c"># Generate 322 keyset key 105 value as 1/0 indicating its presence/absence or</span>
+5102 <span class="c"># count of its presence in a molecule.</span>
+5103 <span class="c">#</span>
+5104 <span class="c"># Key 105 description: P-F</span>
+5105 <span class="c">#</span>
+<a name="_Generate322KeySetKey105-"></a>5106 <span class="k">sub </span><span class="m">_Generate322KeySetKey105</span> <span class="s">{</span>
+5107   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5108   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5109 
+5110   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5111 <span class="s">}</span>
+5112 
+5113 <span class="c"># Generate 322 keyset key 106 value as 1/0 indicating its presence/absence or</span>
+5114 <span class="c"># count of its presence in a molecule.</span>
+5115 <span class="c">#</span>
+5116 <span class="c"># Key 106 description: P-Br</span>
+5117 <span class="c">#</span>
+<a name="_Generate322KeySetKey106-"></a>5118 <span class="k">sub </span><span class="m">_Generate322KeySetKey106</span> <span class="s">{</span>
+5119   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5120   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5121 
+5122   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5123 <span class="s">}</span>
+5124 
+5125 <span class="c"># Generate 322 keyset key 107 value as 1/0 indicating its presence/absence or</span>
+5126 <span class="c"># count of its presence in a molecule.</span>
+5127 <span class="c">#</span>
+5128 <span class="c"># Key 107 description: P-Si</span>
+5129 <span class="c">#</span>
+<a name="_Generate322KeySetKey107-"></a>5130 <span class="k">sub </span><span class="m">_Generate322KeySetKey107</span> <span class="s">{</span>
+5131   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5132   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5133 
+5134   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5135 <span class="s">}</span>
+5136 
+5137 <span class="c"># Generate 322 keyset key 108 value as 1/0 indicating its presence/absence or</span>
+5138 <span class="c"># count of its presence in a molecule.</span>
+5139 <span class="c">#</span>
+5140 <span class="c"># Key 108 description: P-I</span>
+5141 <span class="c">#</span>
+<a name="_Generate322KeySetKey108-"></a>5142 <span class="k">sub </span><span class="m">_Generate322KeySetKey108</span> <span class="s">{</span>
+5143   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5144   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5145 
+5146   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5147 <span class="s">}</span>
+5148 
+5149 <span class="c"># Generate 322 keyset key 109 value as 1/0 indicating its presence/absence or</span>
+5150 <span class="c"># count of its presence in a molecule.</span>
+5151 <span class="c">#</span>
+5152 <span class="c"># Key 109 description: P-X</span>
+5153 <span class="c">#</span>
+<a name="_Generate322KeySetKey109-"></a>5154 <span class="k">sub </span><span class="m">_Generate322KeySetKey109</span> <span class="s">{</span>
+5155   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5156   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5157 
+5158   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5159 <span class="s">}</span>
+5160 
+5161 <span class="c"># Generate 322 keyset key 110 value as 1/0 indicating its presence/absence or</span>
+5162 <span class="c"># count of its presence in a molecule.</span>
+5163 <span class="c">#</span>
+5164 <span class="c"># Key 110 description: F-F</span>
+5165 <span class="c">#</span>
+<a name="_Generate322KeySetKey110-"></a>5166 <span class="k">sub </span><span class="m">_Generate322KeySetKey110</span> <span class="s">{</span>
+5167   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5168   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5169 
+5170   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5171 <span class="s">}</span>
+5172 
+5173 <span class="c"># Generate 322 keyset key 111 value as 1/0 indicating its presence/absence or</span>
+5174 <span class="c"># count of its presence in a molecule.</span>
+5175 <span class="c">#</span>
+5176 <span class="c"># Key 111 description: F-Br</span>
+5177 <span class="c">#</span>
+<a name="_Generate322KeySetKey111-"></a>5178 <span class="k">sub </span><span class="m">_Generate322KeySetKey111</span> <span class="s">{</span>
+5179   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5180   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5181 
+5182   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5183 <span class="s">}</span>
+5184 
+5185 <span class="c"># Generate 322 keyset key 112 value as 1/0 indicating its presence/absence or</span>
+5186 <span class="c"># count of its presence in a molecule.</span>
+5187 <span class="c">#</span>
+5188 <span class="c"># Key 112 description: F-Si</span>
+5189 <span class="c">#</span>
+<a name="_Generate322KeySetKey112-"></a>5190 <span class="k">sub </span><span class="m">_Generate322KeySetKey112</span> <span class="s">{</span>
+5191   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5192   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5193 
+5194   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5195 <span class="s">}</span>
+5196 
+5197 <span class="c"># Generate 322 keyset key 113 value as 1/0 indicating its presence/absence or</span>
+5198 <span class="c"># count of its presence in a molecule.</span>
+5199 <span class="c">#</span>
+5200 <span class="c"># Key 113 description: F-I</span>
+5201 <span class="c">#</span>
+<a name="_Generate322KeySetKey113-"></a>5202 <span class="k">sub </span><span class="m">_Generate322KeySetKey113</span> <span class="s">{</span>
+5203   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5204   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5205 
+5206   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5207 <span class="s">}</span>
+5208 
+5209 <span class="c"># Generate 322 keyset key 114 value as 1/0 indicating its presence/absence or</span>
+5210 <span class="c"># count of its presence in a molecule.</span>
+5211 <span class="c">#</span>
+5212 <span class="c"># Key 114 description: F-X</span>
+5213 <span class="c">#</span>
+<a name="_Generate322KeySetKey114-"></a>5214 <span class="k">sub </span><span class="m">_Generate322KeySetKey114</span> <span class="s">{</span>
+5215   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5216   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5217 
+5218   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5219 <span class="s">}</span>
+5220 
+5221 <span class="c"># Generate 322 keyset key 115 value as 1/0 indicating its presence/absence or</span>
+5222 <span class="c"># count of its presence in a molecule.</span>
+5223 <span class="c">#</span>
+5224 <span class="c"># Key 115 description: Br-Br</span>
+5225 <span class="c">#</span>
+<a name="_Generate322KeySetKey115-"></a>5226 <span class="k">sub </span><span class="m">_Generate322KeySetKey115</span> <span class="s">{</span>
+5227   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5228   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5229 
+5230   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5231 <span class="s">}</span>
+5232 
+5233 <span class="c"># Generate 322 keyset key 116 value as 1/0 indicating its presence/absence or</span>
+5234 <span class="c"># count of its presence in a molecule.</span>
+5235 <span class="c">#</span>
+5236 <span class="c"># Key 116 description: Br-Si</span>
+5237 <span class="c">#</span>
+<a name="_Generate322KeySetKey116-"></a>5238 <span class="k">sub </span><span class="m">_Generate322KeySetKey116</span> <span class="s">{</span>
+5239   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5240   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5241 
+5242   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5243 <span class="s">}</span>
+5244 
+5245 <span class="c"># Generate 322 keyset key 117 value as 1/0 indicating its presence/absence or</span>
+5246 <span class="c"># count of its presence in a molecule.</span>
+5247 <span class="c">#</span>
+5248 <span class="c"># Key 117 description: Br-I</span>
+5249 <span class="c">#</span>
+<a name="_Generate322KeySetKey117-"></a>5250 <span class="k">sub </span><span class="m">_Generate322KeySetKey117</span> <span class="s">{</span>
+5251   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5252   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5253 
+5254   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5255 <span class="s">}</span>
+5256 
+5257 <span class="c"># Generate 322 keyset key 118 value as 1/0 indicating its presence/absence or</span>
+5258 <span class="c"># count of its presence in a molecule.</span>
+5259 <span class="c">#</span>
+5260 <span class="c"># Key 118 description: Br-X</span>
+5261 <span class="c">#</span>
+<a name="_Generate322KeySetKey118-"></a>5262 <span class="k">sub </span><span class="m">_Generate322KeySetKey118</span> <span class="s">{</span>
+5263   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5264   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5265 
+5266   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5267 <span class="s">}</span>
+5268 
+5269 <span class="c"># Generate 322 keyset key 119 value as 1/0 indicating its presence/absence or</span>
+5270 <span class="c"># count of its presence in a molecule.</span>
+5271 <span class="c">#</span>
+5272 <span class="c"># Key 119 description: Si-Si</span>
+5273 <span class="c">#</span>
+<a name="_Generate322KeySetKey119-"></a>5274 <span class="k">sub </span><span class="m">_Generate322KeySetKey119</span> <span class="s">{</span>
+5275   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5276   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5277 
+5278   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5279 <span class="s">}</span>
+5280 
+5281 <span class="c"># Generate 322 keyset key 120 value as 1/0 indicating its presence/absence or</span>
+5282 <span class="c"># count of its presence in a molecule.</span>
+5283 <span class="c">#</span>
+5284 <span class="c"># Key 120 description: Si-I</span>
+5285 <span class="c">#</span>
+<a name="_Generate322KeySetKey120-"></a>5286 <span class="k">sub </span><span class="m">_Generate322KeySetKey120</span> <span class="s">{</span>
+5287   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5288   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5289 
+5290   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5291 <span class="s">}</span>
+5292 
+5293 <span class="c"># Generate 322 keyset key 121 value as 1/0 indicating its presence/absence or</span>
+5294 <span class="c"># count of its presence in a molecule.</span>
+5295 <span class="c">#</span>
+5296 <span class="c"># Key 121 description: Si-X</span>
+5297 <span class="c">#</span>
+<a name="_Generate322KeySetKey121-"></a>5298 <span class="k">sub </span><span class="m">_Generate322KeySetKey121</span> <span class="s">{</span>
+5299   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5300   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5301 
+5302   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5303 <span class="s">}</span>
+5304 
+5305 <span class="c"># Generate 322 keyset key 122 value as 1/0 indicating its presence/absence or</span>
+5306 <span class="c"># count of its presence in a molecule.</span>
+5307 <span class="c">#</span>
+5308 <span class="c"># Key 122 description: I-I</span>
+5309 <span class="c">#</span>
+<a name="_Generate322KeySetKey122-"></a>5310 <span class="k">sub </span><span class="m">_Generate322KeySetKey122</span> <span class="s">{</span>
+5311   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5312   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5313 
+5314   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5315 <span class="s">}</span>
+5316 
+5317 <span class="c"># Generate 322 keyset key 123 value as 1/0 indicating its presence/absence or</span>
+5318 <span class="c"># count of its presence in a molecule.</span>
+5319 <span class="c">#</span>
+5320 <span class="c"># Key 123 description: I-X</span>
+5321 <span class="c">#</span>
+<a name="_Generate322KeySetKey123-"></a>5322 <span class="k">sub </span><span class="m">_Generate322KeySetKey123</span> <span class="s">{</span>
+5323   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5324   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5325 
+5326   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5327 <span class="s">}</span>
+5328 
+5329 <span class="c"># Generate 322 keyset key 124 value as 1/0 indicating its presence/absence or</span>
+5330 <span class="c"># count of its presence in a molecule.</span>
+5331 <span class="c">#</span>
+5332 <span class="c"># Key 124 description: X-X</span>
+5333 <span class="c">#</span>
+<a name="_Generate322KeySetKey124-"></a>5334 <span class="k">sub </span><span class="m">_Generate322KeySetKey124</span> <span class="s">{</span>
+5335   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5336   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
+5337 
+5338   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5339 <span class="s">}</span>
+5340 
+5341 <span class="c"># Generate 322 keyset key 125 value as 1/0 indicating its presence/absence or</span>
+5342 <span class="c"># count of its presence in a molecule.</span>
+5343 <span class="c">#</span>
+5344 <span class="c"># Key 125 description: C=C</span>
+5345 <span class="c">#</span>
+<a name="_Generate322KeySetKey125-"></a>5346 <span class="k">sub </span><span class="m">_Generate322KeySetKey125</span> <span class="s">{</span>
+5347   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5348   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5349 
+5350   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5351 <span class="s">}</span>
+5352 
+5353 <span class="c"># Generate 322 keyset key 126 value as 1/0 indicating its presence/absence or</span>
+5354 <span class="c"># count of its presence in a molecule.</span>
+5355 <span class="c">#</span>
+5356 <span class="c"># Key 126 description: C=N</span>
+5357 <span class="c">#</span>
+<a name="_Generate322KeySetKey126-"></a>5358 <span class="k">sub </span><span class="m">_Generate322KeySetKey126</span> <span class="s">{</span>
+5359   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5360   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5361 
+5362   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5363 <span class="s">}</span>
+5364 
+5365 <span class="c"># Generate 322 keyset key 127 value as 1/0 indicating its presence/absence or</span>
+5366 <span class="c"># count of its presence in a molecule.</span>
+5367 <span class="c">#</span>
+5368 <span class="c"># Key 127 description: C=O</span>
+5369 <span class="c">#</span>
+<a name="_Generate322KeySetKey127-"></a>5370 <span class="k">sub </span><span class="m">_Generate322KeySetKey127</span> <span class="s">{</span>
+5371   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5372   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5373 
+5374   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5375 <span class="s">}</span>
+5376 
+5377 <span class="c"># Generate 322 keyset key 128 value as 1/0 indicating its presence/absence or</span>
+5378 <span class="c"># count of its presence in a molecule.</span>
+5379 <span class="c">#</span>
+5380 <span class="c"># Key 128 description: C=S</span>
+5381 <span class="c">#</span>
+<a name="_Generate322KeySetKey128-"></a>5382 <span class="k">sub </span><span class="m">_Generate322KeySetKey128</span> <span class="s">{</span>
+5383   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5384   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5385 
+5386   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5387 <span class="s">}</span>
+5388 
+5389 <span class="c"># Generate 322 keyset key 129 value as 1/0 indicating its presence/absence or</span>
+5390 <span class="c"># count of its presence in a molecule.</span>
+5391 <span class="c">#</span>
+5392 <span class="c"># Key 129 description: C=Cl</span>
+5393 <span class="c">#</span>
+<a name="_Generate322KeySetKey129-"></a>5394 <span class="k">sub </span><span class="m">_Generate322KeySetKey129</span> <span class="s">{</span>
+5395   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5396   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5397 
+5398   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5399 <span class="s">}</span>
+5400 
+5401 <span class="c"># Generate 322 keyset key 130 value as 1/0 indicating its presence/absence or</span>
+5402 <span class="c"># count of its presence in a molecule.</span>
+5403 <span class="c">#</span>
+5404 <span class="c"># Key 130 description: C=P</span>
+5405 <span class="c">#</span>
+<a name="_Generate322KeySetKey130-"></a>5406 <span class="k">sub </span><span class="m">_Generate322KeySetKey130</span> <span class="s">{</span>
+5407   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5408   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5409 
+5410   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5411 <span class="s">}</span>
+5412 
+5413 <span class="c"># Generate 322 keyset key 131 value as 1/0 indicating its presence/absence or</span>
+5414 <span class="c"># count of its presence in a molecule.</span>
+5415 <span class="c">#</span>
+5416 <span class="c"># Key 131 description: C=F</span>
+5417 <span class="c">#</span>
+<a name="_Generate322KeySetKey131-"></a>5418 <span class="k">sub </span><span class="m">_Generate322KeySetKey131</span> <span class="s">{</span>
+5419   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5420   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5421 
+5422   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5423 <span class="s">}</span>
+5424 
+5425 <span class="c"># Generate 322 keyset key 132 value as 1/0 indicating its presence/absence or</span>
+5426 <span class="c"># count of its presence in a molecule.</span>
+5427 <span class="c">#</span>
+5428 <span class="c"># Key 132 description: C=Br</span>
+5429 <span class="c">#</span>
+<a name="_Generate322KeySetKey132-"></a>5430 <span class="k">sub </span><span class="m">_Generate322KeySetKey132</span> <span class="s">{</span>
+5431   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5432   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5433 
+5434   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5435 <span class="s">}</span>
+5436 
+5437 <span class="c"># Generate 322 keyset key 133 value as 1/0 indicating its presence/absence or</span>
+5438 <span class="c"># count of its presence in a molecule.</span>
+5439 <span class="c">#</span>
+5440 <span class="c"># Key 133 description: C=Si</span>
+5441 <span class="c">#</span>
+<a name="_Generate322KeySetKey133-"></a>5442 <span class="k">sub </span><span class="m">_Generate322KeySetKey133</span> <span class="s">{</span>
+5443   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5444   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5445 
+5446   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5447 <span class="s">}</span>
+5448 
+5449 <span class="c"># Generate 322 keyset key 134 value as 1/0 indicating its presence/absence or</span>
+5450 <span class="c"># count of its presence in a molecule.</span>
+5451 <span class="c">#</span>
+5452 <span class="c"># Key 134 description: C=I</span>
+5453 <span class="c">#</span>
+<a name="_Generate322KeySetKey134-"></a>5454 <span class="k">sub </span><span class="m">_Generate322KeySetKey134</span> <span class="s">{</span>
+5455   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5456   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5457 
+5458   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5459 <span class="s">}</span>
+5460 
+5461 <span class="c"># Generate 322 keyset key 135 value as 1/0 indicating its presence/absence or</span>
+5462 <span class="c"># count of its presence in a molecule.</span>
+5463 <span class="c">#</span>
+5464 <span class="c"># Key 135 description: C=X</span>
+5465 <span class="c">#</span>
+<a name="_Generate322KeySetKey135-"></a>5466 <span class="k">sub </span><span class="m">_Generate322KeySetKey135</span> <span class="s">{</span>
+5467   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5468   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5469 
+5470   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5471 <span class="s">}</span>
+5472 
+5473 <span class="c"># Generate 322 keyset key 136 value as 1/0 indicating its presence/absence or</span>
+5474 <span class="c"># count of its presence in a molecule.</span>
+5475 <span class="c">#</span>
+5476 <span class="c"># Key 136 description: N=N</span>
+5477 <span class="c">#</span>
+<a name="_Generate322KeySetKey136-"></a>5478 <span class="k">sub </span><span class="m">_Generate322KeySetKey136</span> <span class="s">{</span>
+5479   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5480   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5481 
+5482   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5483 <span class="s">}</span>
+5484 
+5485 <span class="c"># Generate 322 keyset key 137 value as 1/0 indicating its presence/absence or</span>
+5486 <span class="c"># count of its presence in a molecule.</span>
+5487 <span class="c">#</span>
+5488 <span class="c"># Key 137 description: N=O</span>
+5489 <span class="c">#</span>
+<a name="_Generate322KeySetKey137-"></a>5490 <span class="k">sub </span><span class="m">_Generate322KeySetKey137</span> <span class="s">{</span>
+5491   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5492   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5493 
+5494   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5495 <span class="s">}</span>
+5496 
+5497 <span class="c"># Generate 322 keyset key 138 value as 1/0 indicating its presence/absence or</span>
+5498 <span class="c"># count of its presence in a molecule.</span>
+5499 <span class="c">#</span>
+5500 <span class="c"># Key 138 description: N=S</span>
+5501 <span class="c">#</span>
+<a name="_Generate322KeySetKey138-"></a>5502 <span class="k">sub </span><span class="m">_Generate322KeySetKey138</span> <span class="s">{</span>
+5503   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5504   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5505 
+5506   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5507 <span class="s">}</span>
+5508 
+5509 <span class="c"># Generate 322 keyset key 139 value as 1/0 indicating its presence/absence or</span>
+5510 <span class="c"># count of its presence in a molecule.</span>
+5511 <span class="c">#</span>
+5512 <span class="c"># Key 139 description: N=Cl</span>
+5513 <span class="c">#</span>
+<a name="_Generate322KeySetKey139-"></a>5514 <span class="k">sub </span><span class="m">_Generate322KeySetKey139</span> <span class="s">{</span>
+5515   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5516   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5517 
+5518   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5519 <span class="s">}</span>
+5520 
+5521 <span class="c"># Generate 322 keyset key 140 value as 1/0 indicating its presence/absence or</span>
+5522 <span class="c"># count of its presence in a molecule.</span>
+5523 <span class="c">#</span>
+5524 <span class="c"># Key 140 description: N=P</span>
+5525 <span class="c">#</span>
+<a name="_Generate322KeySetKey140-"></a>5526 <span class="k">sub </span><span class="m">_Generate322KeySetKey140</span> <span class="s">{</span>
+5527   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5528   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5529 
+5530   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5531 <span class="s">}</span>
+5532 
+5533 <span class="c"># Generate 322 keyset key 141 value as 1/0 indicating its presence/absence or</span>
+5534 <span class="c"># count of its presence in a molecule.</span>
+5535 <span class="c">#</span>
+5536 <span class="c"># Key 141 description: N=F</span>
+5537 <span class="c">#</span>
+<a name="_Generate322KeySetKey141-"></a>5538 <span class="k">sub </span><span class="m">_Generate322KeySetKey141</span> <span class="s">{</span>
+5539   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5540   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5541 
+5542   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5543 <span class="s">}</span>
+5544 
+5545 <span class="c"># Generate 322 keyset key 142 value as 1/0 indicating its presence/absence or</span>
+5546 <span class="c"># count of its presence in a molecule.</span>
+5547 <span class="c">#</span>
+5548 <span class="c"># Key 142 description: N=Br</span>
+5549 <span class="c">#</span>
+<a name="_Generate322KeySetKey142-"></a>5550 <span class="k">sub </span><span class="m">_Generate322KeySetKey142</span> <span class="s">{</span>
+5551   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5552   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5553 
+5554   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5555 <span class="s">}</span>
+5556 
+5557 <span class="c"># Generate 322 keyset key 143 value as 1/0 indicating its presence/absence or</span>
+5558 <span class="c"># count of its presence in a molecule.</span>
+5559 <span class="c">#</span>
+5560 <span class="c"># Key 143 description: N=Si</span>
+5561 <span class="c">#</span>
+<a name="_Generate322KeySetKey143-"></a>5562 <span class="k">sub </span><span class="m">_Generate322KeySetKey143</span> <span class="s">{</span>
+5563   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5564   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5565 
+5566   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5567 <span class="s">}</span>
+5568 
+5569 <span class="c"># Generate 322 keyset key 144 value as 1/0 indicating its presence/absence or</span>
+5570 <span class="c"># count of its presence in a molecule.</span>
+5571 <span class="c">#</span>
+5572 <span class="c"># Key 144 description: N=I</span>
+5573 <span class="c">#</span>
+<a name="_Generate322KeySetKey144-"></a>5574 <span class="k">sub </span><span class="m">_Generate322KeySetKey144</span> <span class="s">{</span>
+5575   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5576   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5577 
+5578   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5579 <span class="s">}</span>
+5580 
+5581 <span class="c"># Generate 322 keyset key 145 value as 1/0 indicating its presence/absence or</span>
+5582 <span class="c"># count of its presence in a molecule.</span>
+5583 <span class="c">#</span>
+5584 <span class="c"># Key 145 description: N=X</span>
+5585 <span class="c">#</span>
+<a name="_Generate322KeySetKey145-"></a>5586 <span class="k">sub </span><span class="m">_Generate322KeySetKey145</span> <span class="s">{</span>
+5587   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5588   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5589 
+5590   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5591 <span class="s">}</span>
+5592 
+5593 <span class="c"># Generate 322 keyset key 146 value as 1/0 indicating its presence/absence or</span>
+5594 <span class="c"># count of its presence in a molecule.</span>
+5595 <span class="c">#</span>
+5596 <span class="c"># Key 146 description: O=O</span>
+5597 <span class="c">#</span>
+<a name="_Generate322KeySetKey146-"></a>5598 <span class="k">sub </span><span class="m">_Generate322KeySetKey146</span> <span class="s">{</span>
+5599   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5600   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5601 
+5602   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5603 <span class="s">}</span>
+5604 
+5605 <span class="c"># Generate 322 keyset key 147 value as 1/0 indicating its presence/absence or</span>
+5606 <span class="c"># count of its presence in a molecule.</span>
+5607 <span class="c">#</span>
+5608 <span class="c"># Key 147 description: O=S</span>
+5609 <span class="c">#</span>
+<a name="_Generate322KeySetKey147-"></a>5610 <span class="k">sub </span><span class="m">_Generate322KeySetKey147</span> <span class="s">{</span>
+5611   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5612   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5613 
+5614   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5615 <span class="s">}</span>
+5616 
+5617 <span class="c"># Generate 322 keyset key 148 value as 1/0 indicating its presence/absence or</span>
+5618 <span class="c"># count of its presence in a molecule.</span>
+5619 <span class="c">#</span>
+5620 <span class="c"># Key 148 description: O=Cl</span>
+5621 <span class="c">#</span>
+<a name="_Generate322KeySetKey148-"></a>5622 <span class="k">sub </span><span class="m">_Generate322KeySetKey148</span> <span class="s">{</span>
+5623   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5624   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5625 
+5626   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5627 <span class="s">}</span>
+5628 
+5629 <span class="c"># Generate 322 keyset key 149 value as 1/0 indicating its presence/absence or</span>
+5630 <span class="c"># count of its presence in a molecule.</span>
+5631 <span class="c">#</span>
+5632 <span class="c"># Key 149 description: O=P</span>
+5633 <span class="c">#</span>
+<a name="_Generate322KeySetKey149-"></a>5634 <span class="k">sub </span><span class="m">_Generate322KeySetKey149</span> <span class="s">{</span>
+5635   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5636   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5637 
+5638   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5639 <span class="s">}</span>
+5640 
+5641 <span class="c"># Generate 322 keyset key 150 value as 1/0 indicating its presence/absence or</span>
+5642 <span class="c"># count of its presence in a molecule.</span>
+5643 <span class="c">#</span>
+5644 <span class="c"># Key 150 description: O=F</span>
+5645 <span class="c">#</span>
+<a name="_Generate322KeySetKey150-"></a>5646 <span class="k">sub </span><span class="m">_Generate322KeySetKey150</span> <span class="s">{</span>
+5647   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5648   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5649 
+5650   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5651 <span class="s">}</span>
+5652 
+5653 <span class="c"># Generate 322 keyset key 151 value as 1/0 indicating its presence/absence or</span>
+5654 <span class="c"># count of its presence in a molecule.</span>
+5655 <span class="c">#</span>
+5656 <span class="c"># Key 151 description: O=Br</span>
+5657 <span class="c">#</span>
+<a name="_Generate322KeySetKey151-"></a>5658 <span class="k">sub </span><span class="m">_Generate322KeySetKey151</span> <span class="s">{</span>
+5659   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5660   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5661 
+5662   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5663 <span class="s">}</span>
+5664 
+5665 <span class="c"># Generate 322 keyset key 152 value as 1/0 indicating its presence/absence or</span>
+5666 <span class="c"># count of its presence in a molecule.</span>
+5667 <span class="c">#</span>
+5668 <span class="c"># Key 152 description: O=Si</span>
+5669 <span class="c">#</span>
+<a name="_Generate322KeySetKey152-"></a>5670 <span class="k">sub </span><span class="m">_Generate322KeySetKey152</span> <span class="s">{</span>
+5671   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5672   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5673 
+5674   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5675 <span class="s">}</span>
+5676 
+5677 <span class="c"># Generate 322 keyset key 153 value as 1/0 indicating its presence/absence or</span>
+5678 <span class="c"># count of its presence in a molecule.</span>
+5679 <span class="c">#</span>
+5680 <span class="c"># Key 153 description: O=I</span>
+5681 <span class="c">#</span>
+<a name="_Generate322KeySetKey153-"></a>5682 <span class="k">sub </span><span class="m">_Generate322KeySetKey153</span> <span class="s">{</span>
+5683   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5684   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5685 
+5686   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5687 <span class="s">}</span>
+5688 
+5689 <span class="c"># Generate 322 keyset key 154 value as 1/0 indicating its presence/absence or</span>
+5690 <span class="c"># count of its presence in a molecule.</span>
+5691 <span class="c">#</span>
+5692 <span class="c"># Key 154 description: O=X</span>
+5693 <span class="c">#</span>
+<a name="_Generate322KeySetKey154-"></a>5694 <span class="k">sub </span><span class="m">_Generate322KeySetKey154</span> <span class="s">{</span>
+5695   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5696   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5697 
+5698   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5699 <span class="s">}</span>
+5700 
+5701 <span class="c"># Generate 322 keyset key 155 value as 1/0 indicating its presence/absence or</span>
+5702 <span class="c"># count of its presence in a molecule.</span>
+5703 <span class="c">#</span>
+5704 <span class="c"># Key 155 description: S=S</span>
+5705 <span class="c">#</span>
+<a name="_Generate322KeySetKey155-"></a>5706 <span class="k">sub </span><span class="m">_Generate322KeySetKey155</span> <span class="s">{</span>
+5707   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5708   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5709 
+5710   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5711 <span class="s">}</span>
+5712 
+5713 <span class="c"># Generate 322 keyset key 156 value as 1/0 indicating its presence/absence or</span>
+5714 <span class="c"># count of its presence in a molecule.</span>
+5715 <span class="c">#</span>
+5716 <span class="c"># Key 156 description: S=Cl</span>
+5717 <span class="c">#</span>
+<a name="_Generate322KeySetKey156-"></a>5718 <span class="k">sub </span><span class="m">_Generate322KeySetKey156</span> <span class="s">{</span>
+5719   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5720   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5721 
+5722   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5723 <span class="s">}</span>
+5724 
+5725 <span class="c"># Generate 322 keyset key 157 value as 1/0 indicating its presence/absence or</span>
+5726 <span class="c"># count of its presence in a molecule.</span>
+5727 <span class="c">#</span>
+5728 <span class="c"># Key 157 description: S=P</span>
+5729 <span class="c">#</span>
+<a name="_Generate322KeySetKey157-"></a>5730 <span class="k">sub </span><span class="m">_Generate322KeySetKey157</span> <span class="s">{</span>
+5731   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5732   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5733 
+5734   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5735 <span class="s">}</span>
+5736 
+5737 <span class="c"># Generate 322 keyset key 158 value as 1/0 indicating its presence/absence or</span>
+5738 <span class="c"># count of its presence in a molecule.</span>
+5739 <span class="c">#</span>
+5740 <span class="c"># Key 158 description: S=F</span>
+5741 <span class="c">#</span>
+<a name="_Generate322KeySetKey158-"></a>5742 <span class="k">sub </span><span class="m">_Generate322KeySetKey158</span> <span class="s">{</span>
+5743   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5744   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5745 
+5746   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5747 <span class="s">}</span>
+5748 
+5749 <span class="c"># Generate 322 keyset key 159 value as 1/0 indicating its presence/absence or</span>
+5750 <span class="c"># count of its presence in a molecule.</span>
+5751 <span class="c">#</span>
+5752 <span class="c"># Key 159 description: S=Br</span>
+5753 <span class="c">#</span>
+<a name="_Generate322KeySetKey159-"></a>5754 <span class="k">sub </span><span class="m">_Generate322KeySetKey159</span> <span class="s">{</span>
+5755   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5756   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5757 
+5758   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5759 <span class="s">}</span>
+5760 
+5761 <span class="c"># Generate 322 keyset key 160 value as 1/0 indicating its presence/absence or</span>
+5762 <span class="c"># count of its presence in a molecule.</span>
+5763 <span class="c">#</span>
+5764 <span class="c"># Key 160 description: S=Si</span>
+5765 <span class="c">#</span>
+<a name="_Generate322KeySetKey160-"></a>5766 <span class="k">sub </span><span class="m">_Generate322KeySetKey160</span> <span class="s">{</span>
+5767   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5768   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5769 
+5770   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5771 <span class="s">}</span>
+5772 
+5773 <span class="c"># Generate 322 keyset key 161 value as 1/0 indicating its presence/absence or</span>
+5774 <span class="c"># count of its presence in a molecule.</span>
+5775 <span class="c">#</span>
+5776 <span class="c"># Key 161 description: S=I</span>
+5777 <span class="c">#</span>
+<a name="_Generate322KeySetKey161-"></a>5778 <span class="k">sub </span><span class="m">_Generate322KeySetKey161</span> <span class="s">{</span>
+5779   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5780   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5781 
+5782   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5783 <span class="s">}</span>
+5784 
+5785 <span class="c"># Generate 322 keyset key 162 value as 1/0 indicating its presence/absence or</span>
+5786 <span class="c"># count of its presence in a molecule.</span>
+5787 <span class="c">#</span>
+5788 <span class="c"># Key 162 description: S=X</span>
+5789 <span class="c">#</span>
+<a name="_Generate322KeySetKey162-"></a>5790 <span class="k">sub </span><span class="m">_Generate322KeySetKey162</span> <span class="s">{</span>
+5791   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5792   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5793 
+5794   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5795 <span class="s">}</span>
+5796 
+5797 <span class="c"># Generate 322 keyset key 163 value as 1/0 indicating its presence/absence or</span>
+5798 <span class="c"># count of its presence in a molecule.</span>
+5799 <span class="c">#</span>
+5800 <span class="c"># Key 163 description: Cl=Cl</span>
+5801 <span class="c">#</span>
+<a name="_Generate322KeySetKey163-"></a>5802 <span class="k">sub </span><span class="m">_Generate322KeySetKey163</span> <span class="s">{</span>
+5803   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5804   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5805 
+5806   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5807 <span class="s">}</span>
+5808 
+5809 <span class="c"># Generate 322 keyset key 164 value as 1/0 indicating its presence/absence or</span>
+5810 <span class="c"># count of its presence in a molecule.</span>
+5811 <span class="c">#</span>
+5812 <span class="c"># Key 164 description: Cl=P</span>
+5813 <span class="c">#</span>
+<a name="_Generate322KeySetKey164-"></a>5814 <span class="k">sub </span><span class="m">_Generate322KeySetKey164</span> <span class="s">{</span>
+5815   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5816   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5817 
+5818   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5819 <span class="s">}</span>
+5820 
+5821 <span class="c"># Generate 322 keyset key 165 value as 1/0 indicating its presence/absence or</span>
+5822 <span class="c"># count of its presence in a molecule.</span>
+5823 <span class="c">#</span>
+5824 <span class="c"># Key 165 description: Cl=F</span>
+5825 <span class="c">#</span>
+<a name="_Generate322KeySetKey165-"></a>5826 <span class="k">sub </span><span class="m">_Generate322KeySetKey165</span> <span class="s">{</span>
+5827   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5828   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5829 
+5830   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5831 <span class="s">}</span>
+5832 
+5833 <span class="c"># Generate 322 keyset key 166 value as 1/0 indicating its presence/absence or</span>
+5834 <span class="c"># count of its presence in a molecule.</span>
+5835 <span class="c">#</span>
+5836 <span class="c"># Key 166 description: Cl=Br</span>
+5837 <span class="c">#</span>
+<a name="_Generate322KeySetKey166-"></a>5838 <span class="k">sub </span><span class="m">_Generate322KeySetKey166</span> <span class="s">{</span>
+5839   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5840   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5841 
+5842   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5843 <span class="s">}</span>
+5844 
+5845 <span class="c"># Generate 322 keyset key 167 value as 1/0 indicating its presence/absence or</span>
+5846 <span class="c"># count of its presence in a molecule.</span>
+5847 <span class="c">#</span>
+5848 <span class="c"># Key 167 description: Cl=Si</span>
+5849 <span class="c">#</span>
+<a name="_Generate322KeySetKey167-"></a>5850 <span class="k">sub </span><span class="m">_Generate322KeySetKey167</span> <span class="s">{</span>
+5851   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5852   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5853 
+5854   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5855 <span class="s">}</span>
+5856 
+5857 <span class="c"># Generate 322 keyset key 168 value as 1/0 indicating its presence/absence or</span>
+5858 <span class="c"># count of its presence in a molecule.</span>
+5859 <span class="c">#</span>
+5860 <span class="c"># Key 168 description: Cl=I</span>
+5861 <span class="c">#</span>
+<a name="_Generate322KeySetKey168-"></a>5862 <span class="k">sub </span><span class="m">_Generate322KeySetKey168</span> <span class="s">{</span>
+5863   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5864   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5865 
+5866   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5867 <span class="s">}</span>
+5868 
+5869 <span class="c"># Generate 322 keyset key 169 value as 1/0 indicating its presence/absence or</span>
+5870 <span class="c"># count of its presence in a molecule.</span>
+5871 <span class="c">#</span>
+5872 <span class="c"># Key 169 description: Cl=X</span>
+5873 <span class="c">#</span>
+<a name="_Generate322KeySetKey169-"></a>5874 <span class="k">sub </span><span class="m">_Generate322KeySetKey169</span> <span class="s">{</span>
+5875   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5876   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5877 
+5878   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5879 <span class="s">}</span>
+5880 
+5881 <span class="c"># Generate 322 keyset key 170 value as 1/0 indicating its presence/absence or</span>
+5882 <span class="c"># count of its presence in a molecule.</span>
+5883 <span class="c">#</span>
+5884 <span class="c"># Key 170 description: P=P</span>
+5885 <span class="c">#</span>
+<a name="_Generate322KeySetKey170-"></a>5886 <span class="k">sub </span><span class="m">_Generate322KeySetKey170</span> <span class="s">{</span>
+5887   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5888   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5889 
+5890   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5891 <span class="s">}</span>
+5892 
+5893 <span class="c"># Generate 322 keyset key 171 value as 1/0 indicating its presence/absence or</span>
+5894 <span class="c"># count of its presence in a molecule.</span>
+5895 <span class="c">#</span>
+5896 <span class="c"># Key 171 description: P=F</span>
+5897 <span class="c">#</span>
+<a name="_Generate322KeySetKey171-"></a>5898 <span class="k">sub </span><span class="m">_Generate322KeySetKey171</span> <span class="s">{</span>
+5899   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5900   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5901 
+5902   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5903 <span class="s">}</span>
+5904 
+5905 <span class="c"># Generate 322 keyset key 172 value as 1/0 indicating its presence/absence or</span>
+5906 <span class="c"># count of its presence in a molecule.</span>
+5907 <span class="c">#</span>
+5908 <span class="c"># Key 172 description: P=Br</span>
+5909 <span class="c">#</span>
+<a name="_Generate322KeySetKey172-"></a>5910 <span class="k">sub </span><span class="m">_Generate322KeySetKey172</span> <span class="s">{</span>
+5911   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5912   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5913 
+5914   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5915 <span class="s">}</span>
+5916 
+5917 <span class="c"># Generate 322 keyset key 173 value as 1/0 indicating its presence/absence or</span>
+5918 <span class="c"># count of its presence in a molecule.</span>
+5919 <span class="c">#</span>
+5920 <span class="c"># Key 173 description: P=Si</span>
+5921 <span class="c">#</span>
+<a name="_Generate322KeySetKey173-"></a>5922 <span class="k">sub </span><span class="m">_Generate322KeySetKey173</span> <span class="s">{</span>
+5923   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5924   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5925 
+5926   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5927 <span class="s">}</span>
+5928 
+5929 <span class="c"># Generate 322 keyset key 174 value as 1/0 indicating its presence/absence or</span>
+5930 <span class="c"># count of its presence in a molecule.</span>
+5931 <span class="c">#</span>
+5932 <span class="c"># Key 174 description: P=I</span>
+5933 <span class="c">#</span>
+<a name="_Generate322KeySetKey174-"></a>5934 <span class="k">sub </span><span class="m">_Generate322KeySetKey174</span> <span class="s">{</span>
+5935   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5936   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5937 
+5938   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5939 <span class="s">}</span>
+5940 
+5941 <span class="c"># Generate 322 keyset key 175 value as 1/0 indicating its presence/absence or</span>
+5942 <span class="c"># count of its presence in a molecule.</span>
+5943 <span class="c">#</span>
+5944 <span class="c"># Key 175 description: P=X</span>
+5945 <span class="c">#</span>
+<a name="_Generate322KeySetKey175-"></a>5946 <span class="k">sub </span><span class="m">_Generate322KeySetKey175</span> <span class="s">{</span>
+5947   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5948   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5949 
+5950   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5951 <span class="s">}</span>
+5952 
+5953 <span class="c"># Generate 322 keyset key 176 value as 1/0 indicating its presence/absence or</span>
+5954 <span class="c"># count of its presence in a molecule.</span>
+5955 <span class="c">#</span>
+5956 <span class="c"># Key 176 description: F=F</span>
+5957 <span class="c">#</span>
+<a name="_Generate322KeySetKey176-"></a>5958 <span class="k">sub </span><span class="m">_Generate322KeySetKey176</span> <span class="s">{</span>
+5959   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5960   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5961 
+5962   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5963 <span class="s">}</span>
+5964 
+5965 <span class="c"># Generate 322 keyset key 177 value as 1/0 indicating its presence/absence or</span>
+5966 <span class="c"># count of its presence in a molecule.</span>
+5967 <span class="c">#</span>
+5968 <span class="c"># Key 177 description: F=Br</span>
+5969 <span class="c">#</span>
+<a name="_Generate322KeySetKey177-"></a>5970 <span class="k">sub </span><span class="m">_Generate322KeySetKey177</span> <span class="s">{</span>
+5971   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5972   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5973 
+5974   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5975 <span class="s">}</span>
+5976 
+5977 <span class="c"># Generate 322 keyset key 178 value as 1/0 indicating its presence/absence or</span>
+5978 <span class="c"># count of its presence in a molecule.</span>
+5979 <span class="c">#</span>
+5980 <span class="c"># Key 178 description: F=Si</span>
+5981 <span class="c">#</span>
+<a name="_Generate322KeySetKey178-"></a>5982 <span class="k">sub </span><span class="m">_Generate322KeySetKey178</span> <span class="s">{</span>
+5983   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5984   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5985 
+5986   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5987 <span class="s">}</span>
+5988 
+5989 <span class="c"># Generate 322 keyset key 179 value as 1/0 indicating its presence/absence or</span>
+5990 <span class="c"># count of its presence in a molecule.</span>
+5991 <span class="c">#</span>
+5992 <span class="c"># Key 179 description: F=I</span>
+5993 <span class="c">#</span>
+<a name="_Generate322KeySetKey179-"></a>5994 <span class="k">sub </span><span class="m">_Generate322KeySetKey179</span> <span class="s">{</span>
+5995   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+5996   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+5997 
+5998   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+5999 <span class="s">}</span>
+6000 
+6001 <span class="c"># Generate 322 keyset key 180 value as 1/0 indicating its presence/absence or</span>
+6002 <span class="c"># count of its presence in a molecule.</span>
+6003 <span class="c">#</span>
+6004 <span class="c"># Key 180 description: F=X</span>
+6005 <span class="c">#</span>
+<a name="_Generate322KeySetKey180-"></a>6006 <span class="k">sub </span><span class="m">_Generate322KeySetKey180</span> <span class="s">{</span>
+6007   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6008   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+6009 
+6010   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6011 <span class="s">}</span>
+6012 
+6013 <span class="c"># Generate 322 keyset key 181 value as 1/0 indicating its presence/absence or</span>
+6014 <span class="c"># count of its presence in a molecule.</span>
+6015 <span class="c">#</span>
+6016 <span class="c"># Key 181 description: Br=Br</span>
+6017 <span class="c">#</span>
+<a name="_Generate322KeySetKey181-"></a>6018 <span class="k">sub </span><span class="m">_Generate322KeySetKey181</span> <span class="s">{</span>
+6019   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6020   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+6021 
+6022   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6023 <span class="s">}</span>
+6024 
+6025 <span class="c"># Generate 322 keyset key 182 value as 1/0 indicating its presence/absence or</span>
+6026 <span class="c"># count of its presence in a molecule.</span>
+6027 <span class="c">#</span>
+6028 <span class="c"># Key 182 description: Br=Si</span>
+6029 <span class="c">#</span>
+<a name="_Generate322KeySetKey182-"></a>6030 <span class="k">sub </span><span class="m">_Generate322KeySetKey182</span> <span class="s">{</span>
+6031   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6032   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+6033 
+6034   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6035 <span class="s">}</span>
+6036 
+6037 <span class="c"># Generate 322 keyset key 183 value as 1/0 indicating its presence/absence or</span>
+6038 <span class="c"># count of its presence in a molecule.</span>
+6039 <span class="c">#</span>
+6040 <span class="c"># Key 183 description: Br=I</span>
+6041 <span class="c">#</span>
+<a name="_Generate322KeySetKey183-"></a>6042 <span class="k">sub </span><span class="m">_Generate322KeySetKey183</span> <span class="s">{</span>
+6043   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6044   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+6045 
+6046   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6047 <span class="s">}</span>
+6048 
+6049 <span class="c"># Generate 322 keyset key 184 value as 1/0 indicating its presence/absence or</span>
+6050 <span class="c"># count of its presence in a molecule.</span>
+6051 <span class="c">#</span>
+6052 <span class="c"># Key 184 description: Br=X</span>
+6053 <span class="c">#</span>
+<a name="_Generate322KeySetKey184-"></a>6054 <span class="k">sub </span><span class="m">_Generate322KeySetKey184</span> <span class="s">{</span>
+6055   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6056   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+6057 
+6058   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6059 <span class="s">}</span>
+6060 
+6061 <span class="c"># Generate 322 keyset key 185 value as 1/0 indicating its presence/absence or</span>
+6062 <span class="c"># count of its presence in a molecule.</span>
+6063 <span class="c">#</span>
+6064 <span class="c"># Key 185 description: Si=Si</span>
+6065 <span class="c">#</span>
+<a name="_Generate322KeySetKey185-"></a>6066 <span class="k">sub </span><span class="m">_Generate322KeySetKey185</span> <span class="s">{</span>
+6067   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6068   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+6069 
+6070   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6071 <span class="s">}</span>
+6072 
+6073 <span class="c"># Generate 322 keyset key 186 value as 1/0 indicating its presence/absence or</span>
+6074 <span class="c"># count of its presence in a molecule.</span>
+6075 <span class="c">#</span>
+6076 <span class="c"># Key 186 description: Si=I</span>
+6077 <span class="c">#</span>
+<a name="_Generate322KeySetKey186-"></a>6078 <span class="k">sub </span><span class="m">_Generate322KeySetKey186</span> <span class="s">{</span>
+6079   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6080   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+6081 
+6082   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6083 <span class="s">}</span>
+6084 
+6085 <span class="c"># Generate 322 keyset key 187 value as 1/0 indicating its presence/absence or</span>
+6086 <span class="c"># count of its presence in a molecule.</span>
+6087 <span class="c">#</span>
+6088 <span class="c"># Key 187 description: Si=X</span>
+6089 <span class="c">#</span>
+<a name="_Generate322KeySetKey187-"></a>6090 <span class="k">sub </span><span class="m">_Generate322KeySetKey187</span> <span class="s">{</span>
+6091   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6092   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+6093 
+6094   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6095 <span class="s">}</span>
+6096 
+6097 <span class="c"># Generate 322 keyset key 188 value as 1/0 indicating its presence/absence or</span>
+6098 <span class="c"># count of its presence in a molecule.</span>
+6099 <span class="c">#</span>
+6100 <span class="c"># Key 188 description: I=I</span>
+6101 <span class="c">#</span>
+<a name="_Generate322KeySetKey188-"></a>6102 <span class="k">sub </span><span class="m">_Generate322KeySetKey188</span> <span class="s">{</span>
+6103   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6104   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+6105 
+6106   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6107 <span class="s">}</span>
+6108 
+6109 <span class="c"># Generate 322 keyset key 189 value as 1/0 indicating its presence/absence or</span>
+6110 <span class="c"># count of its presence in a molecule.</span>
+6111 <span class="c">#</span>
+6112 <span class="c"># Key 189 description: I=X</span>
+6113 <span class="c">#</span>
+<a name="_Generate322KeySetKey189-"></a>6114 <span class="k">sub </span><span class="m">_Generate322KeySetKey189</span> <span class="s">{</span>
+6115   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6116   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+6117 
+6118   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6119 <span class="s">}</span>
+6120 
+6121 <span class="c"># Generate 322 keyset key 190 value as 1/0 indicating its presence/absence or</span>
+6122 <span class="c"># count of its presence in a molecule.</span>
+6123 <span class="c">#</span>
+6124 <span class="c"># Key 190 description: X=X</span>
+6125 <span class="c">#</span>
+<a name="_Generate322KeySetKey190-"></a>6126 <span class="k">sub </span><span class="m">_Generate322KeySetKey190</span> <span class="s">{</span>
+6127   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6128   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
+6129 
+6130   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6131 <span class="s">}</span>
+6132 
+6133 <span class="c"># Generate 322 keyset key 191 value as 1/0 indicating its presence/absence or</span>
+6134 <span class="c"># count of its presence in a molecule.</span>
+6135 <span class="c">#</span>
+6136 <span class="c"># Key 191 description: C#C</span>
+6137 <span class="c">#</span>
+<a name="_Generate322KeySetKey191-"></a>6138 <span class="k">sub </span><span class="m">_Generate322KeySetKey191</span> <span class="s">{</span>
+6139   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6140   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6141 
+6142   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6143 <span class="s">}</span>
+6144 
+6145 <span class="c"># Generate 322 keyset key 192 value as 1/0 indicating its presence/absence or</span>
+6146 <span class="c"># count of its presence in a molecule.</span>
+6147 <span class="c">#</span>
+6148 <span class="c"># Key 192 description: C#N</span>
+6149 <span class="c">#</span>
+<a name="_Generate322KeySetKey192-"></a>6150 <span class="k">sub </span><span class="m">_Generate322KeySetKey192</span> <span class="s">{</span>
+6151   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6152   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6153 
+6154   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6155 <span class="s">}</span>
+6156 
+6157 <span class="c"># Generate 322 keyset key 193 value as 1/0 indicating its presence/absence or</span>
+6158 <span class="c"># count of its presence in a molecule.</span>
+6159 <span class="c">#</span>
+6160 <span class="c"># Key 193 description: C#O</span>
+6161 <span class="c">#</span>
+<a name="_Generate322KeySetKey193-"></a>6162 <span class="k">sub </span><span class="m">_Generate322KeySetKey193</span> <span class="s">{</span>
+6163   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6164   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6165 
+6166   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6167 <span class="s">}</span>
+6168 
+6169 <span class="c"># Generate 322 keyset key 194 value as 1/0 indicating its presence/absence or</span>
+6170 <span class="c"># count of its presence in a molecule.</span>
+6171 <span class="c">#</span>
+6172 <span class="c"># Key 194 description: C#S</span>
+6173 <span class="c">#</span>
+<a name="_Generate322KeySetKey194-"></a>6174 <span class="k">sub </span><span class="m">_Generate322KeySetKey194</span> <span class="s">{</span>
+6175   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6176   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6177 
+6178   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6179 <span class="s">}</span>
+6180 
+6181 <span class="c"># Generate 322 keyset key 195 value as 1/0 indicating its presence/absence or</span>
+6182 <span class="c"># count of its presence in a molecule.</span>
+6183 <span class="c">#</span>
+6184 <span class="c"># Key 195 description: C#Cl</span>
+6185 <span class="c">#</span>
+<a name="_Generate322KeySetKey195-"></a>6186 <span class="k">sub </span><span class="m">_Generate322KeySetKey195</span> <span class="s">{</span>
+6187   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6188   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6189 
+6190   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6191 <span class="s">}</span>
+6192 
+6193 <span class="c"># Generate 322 keyset key 196 value as 1/0 indicating its presence/absence or</span>
+6194 <span class="c"># count of its presence in a molecule.</span>
+6195 <span class="c">#</span>
+6196 <span class="c"># Key 196 description: C#P</span>
+6197 <span class="c">#</span>
+<a name="_Generate322KeySetKey196-"></a>6198 <span class="k">sub </span><span class="m">_Generate322KeySetKey196</span> <span class="s">{</span>
+6199   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6200   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6201 
+6202   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6203 <span class="s">}</span>
+6204 
+6205 <span class="c"># Generate 322 keyset key 197 value as 1/0 indicating its presence/absence or</span>
+6206 <span class="c"># count of its presence in a molecule.</span>
+6207 <span class="c">#</span>
+6208 <span class="c"># Key 197 description: C#F</span>
+6209 <span class="c">#</span>
+<a name="_Generate322KeySetKey197-"></a>6210 <span class="k">sub </span><span class="m">_Generate322KeySetKey197</span> <span class="s">{</span>
+6211   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6212   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6213 
+6214   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6215 <span class="s">}</span>
+6216 
+6217 <span class="c"># Generate 322 keyset key 198 value as 1/0 indicating its presence/absence or</span>
+6218 <span class="c"># count of its presence in a molecule.</span>
+6219 <span class="c">#</span>
+6220 <span class="c"># Key 198 description: C#Br</span>
+6221 <span class="c">#</span>
+<a name="_Generate322KeySetKey198-"></a>6222 <span class="k">sub </span><span class="m">_Generate322KeySetKey198</span> <span class="s">{</span>
+6223   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6224   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6225 
+6226   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6227 <span class="s">}</span>
+6228 
+6229 <span class="c"># Generate 322 keyset key 199 value as 1/0 indicating its presence/absence or</span>
+6230 <span class="c"># count of its presence in a molecule.</span>
+6231 <span class="c">#</span>
+6232 <span class="c"># Key 199 description: C#Si</span>
+6233 <span class="c">#</span>
+<a name="_Generate322KeySetKey199-"></a>6234 <span class="k">sub </span><span class="m">_Generate322KeySetKey199</span> <span class="s">{</span>
+6235   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6236   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6237 
+6238   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6239 <span class="s">}</span>
+6240 
+6241 <span class="c"># Generate 322 keyset key 200 value as 1/0 indicating its presence/absence or</span>
+6242 <span class="c"># count of its presence in a molecule.</span>
+6243 <span class="c">#</span>
+6244 <span class="c"># Key 200 description: C#I</span>
+6245 <span class="c">#</span>
+<a name="_Generate322KeySetKey200-"></a>6246 <span class="k">sub </span><span class="m">_Generate322KeySetKey200</span> <span class="s">{</span>
+6247   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6248   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6249 
+6250   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6251 <span class="s">}</span>
+6252 
+6253 <span class="c"># Generate 322 keyset key 201 value as 1/0 indicating its presence/absence or</span>
+6254 <span class="c"># count of its presence in a molecule.</span>
+6255 <span class="c">#</span>
+6256 <span class="c"># Key 201 description: C#X</span>
+6257 <span class="c">#</span>
+<a name="_Generate322KeySetKey201-"></a>6258 <span class="k">sub </span><span class="m">_Generate322KeySetKey201</span> <span class="s">{</span>
+6259   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6260   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6261 
+6262   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6263 <span class="s">}</span>
+6264 
+6265 <span class="c"># Generate 322 keyset key 202 value as 1/0 indicating its presence/absence or</span>
+6266 <span class="c"># count of its presence in a molecule.</span>
+6267 <span class="c">#</span>
+6268 <span class="c"># Key 202 description: N#N</span>
+6269 <span class="c">#</span>
+<a name="_Generate322KeySetKey202-"></a>6270 <span class="k">sub </span><span class="m">_Generate322KeySetKey202</span> <span class="s">{</span>
+6271   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6272   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6273 
+6274   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6275 <span class="s">}</span>
+6276 
+6277 <span class="c"># Generate 322 keyset key 203 value as 1/0 indicating its presence/absence or</span>
+6278 <span class="c"># count of its presence in a molecule.</span>
+6279 <span class="c">#</span>
+6280 <span class="c"># Key 203 description: N#O</span>
+6281 <span class="c">#</span>
+<a name="_Generate322KeySetKey203-"></a>6282 <span class="k">sub </span><span class="m">_Generate322KeySetKey203</span> <span class="s">{</span>
+6283   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6284   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6285 
+6286   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6287 <span class="s">}</span>
+6288 
+6289 <span class="c"># Generate 322 keyset key 204 value as 1/0 indicating its presence/absence or</span>
+6290 <span class="c"># count of its presence in a molecule.</span>
+6291 <span class="c">#</span>
+6292 <span class="c"># Key 204 description: N#S</span>
+6293 <span class="c">#</span>
+<a name="_Generate322KeySetKey204-"></a>6294 <span class="k">sub </span><span class="m">_Generate322KeySetKey204</span> <span class="s">{</span>
+6295   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6296   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6297 
+6298   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6299 <span class="s">}</span>
+6300 
+6301 <span class="c"># Generate 322 keyset key 205 value as 1/0 indicating its presence/absence or</span>
+6302 <span class="c"># count of its presence in a molecule.</span>
+6303 <span class="c">#</span>
+6304 <span class="c"># Key 205 description: N#Cl</span>
+6305 <span class="c">#</span>
+<a name="_Generate322KeySetKey205-"></a>6306 <span class="k">sub </span><span class="m">_Generate322KeySetKey205</span> <span class="s">{</span>
+6307   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6308   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6309 
+6310   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6311 <span class="s">}</span>
+6312 
+6313 <span class="c"># Generate 322 keyset key 206 value as 1/0 indicating its presence/absence or</span>
+6314 <span class="c"># count of its presence in a molecule.</span>
+6315 <span class="c">#</span>
+6316 <span class="c"># Key 206 description: N#P</span>
+6317 <span class="c">#</span>
+<a name="_Generate322KeySetKey206-"></a>6318 <span class="k">sub </span><span class="m">_Generate322KeySetKey206</span> <span class="s">{</span>
+6319   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6320   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6321 
+6322   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6323 <span class="s">}</span>
+6324 
+6325 <span class="c"># Generate 322 keyset key 207 value as 1/0 indicating its presence/absence or</span>
+6326 <span class="c"># count of its presence in a molecule.</span>
+6327 <span class="c">#</span>
+6328 <span class="c"># Key 207 description: N#F</span>
+6329 <span class="c">#</span>
+<a name="_Generate322KeySetKey207-"></a>6330 <span class="k">sub </span><span class="m">_Generate322KeySetKey207</span> <span class="s">{</span>
+6331   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6332   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6333 
+6334   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6335 <span class="s">}</span>
+6336 
+6337 <span class="c"># Generate 322 keyset key 208 value as 1/0 indicating its presence/absence or</span>
+6338 <span class="c"># count of its presence in a molecule.</span>
+6339 <span class="c">#</span>
+6340 <span class="c"># Key 208 description: N#Br</span>
+6341 <span class="c">#</span>
+<a name="_Generate322KeySetKey208-"></a>6342 <span class="k">sub </span><span class="m">_Generate322KeySetKey208</span> <span class="s">{</span>
+6343   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6344   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6345 
+6346   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6347 <span class="s">}</span>
+6348 
+6349 <span class="c"># Generate 322 keyset key 209 value as 1/0 indicating its presence/absence or</span>
+6350 <span class="c"># count of its presence in a molecule.</span>
+6351 <span class="c">#</span>
+6352 <span class="c"># Key 209 description: N#Si</span>
+6353 <span class="c">#</span>
+<a name="_Generate322KeySetKey209-"></a>6354 <span class="k">sub </span><span class="m">_Generate322KeySetKey209</span> <span class="s">{</span>
+6355   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6356   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6357 
+6358   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6359 <span class="s">}</span>
+6360 
+6361 <span class="c"># Generate 322 keyset key 210 value as 1/0 indicating its presence/absence or</span>
+6362 <span class="c"># count of its presence in a molecule.</span>
+6363 <span class="c">#</span>
+6364 <span class="c"># Key 210 description: N#I</span>
+6365 <span class="c">#</span>
+<a name="_Generate322KeySetKey210-"></a>6366 <span class="k">sub </span><span class="m">_Generate322KeySetKey210</span> <span class="s">{</span>
+6367   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6368   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6369 
+6370   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6371 <span class="s">}</span>
+6372 
+6373 <span class="c"># Generate 322 keyset key 211 value as 1/0 indicating its presence/absence or</span>
+6374 <span class="c"># count of its presence in a molecule.</span>
+6375 <span class="c">#</span>
+6376 <span class="c"># Key 211 description: N#X</span>
+6377 <span class="c">#</span>
+<a name="_Generate322KeySetKey211-"></a>6378 <span class="k">sub </span><span class="m">_Generate322KeySetKey211</span> <span class="s">{</span>
+6379   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6380   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6381 
+6382   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6383 <span class="s">}</span>
+6384 
+6385 <span class="c"># Generate 322 keyset key 212 value as 1/0 indicating its presence/absence or</span>
+6386 <span class="c"># count of its presence in a molecule.</span>
+6387 <span class="c">#</span>
+6388 <span class="c"># Key 212 description: O#O</span>
+6389 <span class="c">#</span>
+<a name="_Generate322KeySetKey212-"></a>6390 <span class="k">sub </span><span class="m">_Generate322KeySetKey212</span> <span class="s">{</span>
+6391   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6392   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6393 
+6394   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6395 <span class="s">}</span>
+6396 
+6397 <span class="c"># Generate 322 keyset key 213 value as 1/0 indicating its presence/absence or</span>
+6398 <span class="c"># count of its presence in a molecule.</span>
+6399 <span class="c">#</span>
+6400 <span class="c"># Key 213 description: O#S</span>
+6401 <span class="c">#</span>
+<a name="_Generate322KeySetKey213-"></a>6402 <span class="k">sub </span><span class="m">_Generate322KeySetKey213</span> <span class="s">{</span>
+6403   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6404   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6405 
+6406   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6407 <span class="s">}</span>
+6408 
+6409 <span class="c"># Generate 322 keyset key 214 value as 1/0 indicating its presence/absence or</span>
+6410 <span class="c"># count of its presence in a molecule.</span>
+6411 <span class="c">#</span>
+6412 <span class="c"># Key 214 description: O#Cl</span>
+6413 <span class="c">#</span>
+<a name="_Generate322KeySetKey214-"></a>6414 <span class="k">sub </span><span class="m">_Generate322KeySetKey214</span> <span class="s">{</span>
+6415   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6416   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6417 
+6418   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6419 <span class="s">}</span>
+6420 
+6421 <span class="c"># Generate 322 keyset key 215 value as 1/0 indicating its presence/absence or</span>
+6422 <span class="c"># count of its presence in a molecule.</span>
+6423 <span class="c">#</span>
+6424 <span class="c"># Key 215 description: O#P</span>
+6425 <span class="c">#</span>
+<a name="_Generate322KeySetKey215-"></a>6426 <span class="k">sub </span><span class="m">_Generate322KeySetKey215</span> <span class="s">{</span>
+6427   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6428   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6429 
+6430   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6431 <span class="s">}</span>
+6432 
+6433 <span class="c"># Generate 322 keyset key 216 value as 1/0 indicating its presence/absence or</span>
+6434 <span class="c"># count of its presence in a molecule.</span>
+6435 <span class="c">#</span>
+6436 <span class="c"># Key 216 description: O#F</span>
+6437 <span class="c">#</span>
+<a name="_Generate322KeySetKey216-"></a>6438 <span class="k">sub </span><span class="m">_Generate322KeySetKey216</span> <span class="s">{</span>
+6439   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6440   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6441 
+6442   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6443 <span class="s">}</span>
+6444 
+6445 <span class="c"># Generate 322 keyset key 217 value as 1/0 indicating its presence/absence or</span>
+6446 <span class="c"># count of its presence in a molecule.</span>
+6447 <span class="c">#</span>
+6448 <span class="c"># Key 217 description: O#Br</span>
+6449 <span class="c">#</span>
+<a name="_Generate322KeySetKey217-"></a>6450 <span class="k">sub </span><span class="m">_Generate322KeySetKey217</span> <span class="s">{</span>
+6451   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6452   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6453 
+6454   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6455 <span class="s">}</span>
+6456 
+6457 <span class="c"># Generate 322 keyset key 218 value as 1/0 indicating its presence/absence or</span>
+6458 <span class="c"># count of its presence in a molecule.</span>
+6459 <span class="c">#</span>
+6460 <span class="c"># Key 218 description: O#Si</span>
+6461 <span class="c">#</span>
+<a name="_Generate322KeySetKey218-"></a>6462 <span class="k">sub </span><span class="m">_Generate322KeySetKey218</span> <span class="s">{</span>
+6463   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6464   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6465 
+6466   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6467 <span class="s">}</span>
+6468 
+6469 <span class="c"># Generate 322 keyset key 219 value as 1/0 indicating its presence/absence or</span>
+6470 <span class="c"># count of its presence in a molecule.</span>
+6471 <span class="c">#</span>
+6472 <span class="c"># Key 219 description: O#I</span>
+6473 <span class="c">#</span>
+<a name="_Generate322KeySetKey219-"></a>6474 <span class="k">sub </span><span class="m">_Generate322KeySetKey219</span> <span class="s">{</span>
+6475   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6476   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6477 
+6478   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6479 <span class="s">}</span>
+6480 
+6481 <span class="c"># Generate 322 keyset key 220 value as 1/0 indicating its presence/absence or</span>
+6482 <span class="c"># count of its presence in a molecule.</span>
+6483 <span class="c">#</span>
+6484 <span class="c"># Key 220 description: O#X</span>
+6485 <span class="c">#</span>
+<a name="_Generate322KeySetKey220-"></a>6486 <span class="k">sub </span><span class="m">_Generate322KeySetKey220</span> <span class="s">{</span>
+6487   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6488   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6489 
+6490   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6491 <span class="s">}</span>
+6492 
+6493 <span class="c"># Generate 322 keyset key 221 value as 1/0 indicating its presence/absence or</span>
+6494 <span class="c"># count of its presence in a molecule.</span>
+6495 <span class="c">#</span>
+6496 <span class="c"># Key 221 description: S#S</span>
+6497 <span class="c">#</span>
+<a name="_Generate322KeySetKey221-"></a>6498 <span class="k">sub </span><span class="m">_Generate322KeySetKey221</span> <span class="s">{</span>
+6499   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6500   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6501 
+6502   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6503 <span class="s">}</span>
+6504 
+6505 <span class="c"># Generate 322 keyset key 222 value as 1/0 indicating its presence/absence or</span>
+6506 <span class="c"># count of its presence in a molecule.</span>
+6507 <span class="c">#</span>
+6508 <span class="c"># Key 222 description: S#Cl</span>
+6509 <span class="c">#</span>
+<a name="_Generate322KeySetKey222-"></a>6510 <span class="k">sub </span><span class="m">_Generate322KeySetKey222</span> <span class="s">{</span>
+6511   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6512   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6513 
+6514   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6515 <span class="s">}</span>
+6516 
+6517 <span class="c"># Generate 322 keyset key 223 value as 1/0 indicating its presence/absence or</span>
+6518 <span class="c"># count of its presence in a molecule.</span>
+6519 <span class="c">#</span>
+6520 <span class="c"># Key 223 description: S#P</span>
+6521 <span class="c">#</span>
+<a name="_Generate322KeySetKey223-"></a>6522 <span class="k">sub </span><span class="m">_Generate322KeySetKey223</span> <span class="s">{</span>
+6523   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6524   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6525 
+6526   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6527 <span class="s">}</span>
+6528 
+6529 <span class="c"># Generate 322 keyset key 224 value as 1/0 indicating its presence/absence or</span>
+6530 <span class="c"># count of its presence in a molecule.</span>
+6531 <span class="c">#</span>
+6532 <span class="c"># Key 224 description: S#F</span>
+6533 <span class="c">#</span>
+<a name="_Generate322KeySetKey224-"></a>6534 <span class="k">sub </span><span class="m">_Generate322KeySetKey224</span> <span class="s">{</span>
+6535   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6536   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6537 
+6538   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6539 <span class="s">}</span>
+6540 
+6541 <span class="c"># Generate 322 keyset key 225 value as 1/0 indicating its presence/absence or</span>
+6542 <span class="c"># count of its presence in a molecule.</span>
+6543 <span class="c">#</span>
+6544 <span class="c"># Key 225 description: S#Br</span>
+6545 <span class="c">#</span>
+<a name="_Generate322KeySetKey225-"></a>6546 <span class="k">sub </span><span class="m">_Generate322KeySetKey225</span> <span class="s">{</span>
+6547   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6548   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6549 
+6550   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6551 <span class="s">}</span>
+6552 
+6553 <span class="c"># Generate 322 keyset key 226 value as 1/0 indicating its presence/absence or</span>
+6554 <span class="c"># count of its presence in a molecule.</span>
+6555 <span class="c">#</span>
+6556 <span class="c"># Key 226 description: S#Si</span>
+6557 <span class="c">#</span>
+<a name="_Generate322KeySetKey226-"></a>6558 <span class="k">sub </span><span class="m">_Generate322KeySetKey226</span> <span class="s">{</span>
+6559   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6560   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6561 
+6562   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6563 <span class="s">}</span>
+6564 
+6565 <span class="c"># Generate 322 keyset key 227 value as 1/0 indicating its presence/absence or</span>
+6566 <span class="c"># count of its presence in a molecule.</span>
+6567 <span class="c">#</span>
+6568 <span class="c"># Key 227 description: S#I</span>
+6569 <span class="c">#</span>
+<a name="_Generate322KeySetKey227-"></a>6570 <span class="k">sub </span><span class="m">_Generate322KeySetKey227</span> <span class="s">{</span>
+6571   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6572   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6573 
+6574   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6575 <span class="s">}</span>
+6576 
+6577 <span class="c"># Generate 322 keyset key 228 value as 1/0 indicating its presence/absence or</span>
+6578 <span class="c"># count of its presence in a molecule.</span>
+6579 <span class="c">#</span>
+6580 <span class="c"># Key 228 description: S#X</span>
+6581 <span class="c">#</span>
+<a name="_Generate322KeySetKey228-"></a>6582 <span class="k">sub </span><span class="m">_Generate322KeySetKey228</span> <span class="s">{</span>
+6583   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6584   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6585 
+6586   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6587 <span class="s">}</span>
+6588 
+6589 <span class="c"># Generate 322 keyset key 229 value as 1/0 indicating its presence/absence or</span>
+6590 <span class="c"># count of its presence in a molecule.</span>
+6591 <span class="c">#</span>
+6592 <span class="c"># Key 229 description: Cl#Cl</span>
+6593 <span class="c">#</span>
+<a name="_Generate322KeySetKey229-"></a>6594 <span class="k">sub </span><span class="m">_Generate322KeySetKey229</span> <span class="s">{</span>
+6595   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6596   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6597 
+6598   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6599 <span class="s">}</span>
+6600 
+6601 <span class="c"># Generate 322 keyset key 230 value as 1/0 indicating its presence/absence or</span>
+6602 <span class="c"># count of its presence in a molecule.</span>
+6603 <span class="c">#</span>
+6604 <span class="c"># Key 230 description: Cl#P</span>
+6605 <span class="c">#</span>
+<a name="_Generate322KeySetKey230-"></a>6606 <span class="k">sub </span><span class="m">_Generate322KeySetKey230</span> <span class="s">{</span>
+6607   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6608   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6609 
+6610   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6611 <span class="s">}</span>
+6612 
+6613 <span class="c"># Generate 322 keyset key 231 value as 1/0 indicating its presence/absence or</span>
+6614 <span class="c"># count of its presence in a molecule.</span>
+6615 <span class="c">#</span>
+6616 <span class="c"># Key 231 description: Cl#F</span>
+6617 <span class="c">#</span>
+<a name="_Generate322KeySetKey231-"></a>6618 <span class="k">sub </span><span class="m">_Generate322KeySetKey231</span> <span class="s">{</span>
+6619   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6620   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6621 
+6622   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6623 <span class="s">}</span>
+6624 
+6625 <span class="c"># Generate 322 keyset key 232 value as 1/0 indicating its presence/absence or</span>
+6626 <span class="c"># count of its presence in a molecule.</span>
+6627 <span class="c">#</span>
+6628 <span class="c"># Key 232 description: Cl#Br</span>
+6629 <span class="c">#</span>
+<a name="_Generate322KeySetKey232-"></a>6630 <span class="k">sub </span><span class="m">_Generate322KeySetKey232</span> <span class="s">{</span>
+6631   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6632   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6633 
+6634   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6635 <span class="s">}</span>
+6636 
+6637 <span class="c"># Generate 322 keyset key 233 value as 1/0 indicating its presence/absence or</span>
+6638 <span class="c"># count of its presence in a molecule.</span>
+6639 <span class="c">#</span>
+6640 <span class="c"># Key 233 description: Cl#Si</span>
+6641 <span class="c">#</span>
+<a name="_Generate322KeySetKey233-"></a>6642 <span class="k">sub </span><span class="m">_Generate322KeySetKey233</span> <span class="s">{</span>
+6643   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6644   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6645 
+6646   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6647 <span class="s">}</span>
+6648 
+6649 <span class="c"># Generate 322 keyset key 234 value as 1/0 indicating its presence/absence or</span>
+6650 <span class="c"># count of its presence in a molecule.</span>
+6651 <span class="c">#</span>
+6652 <span class="c"># Key 234 description: Cl#I</span>
+6653 <span class="c">#</span>
+<a name="_Generate322KeySetKey234-"></a>6654 <span class="k">sub </span><span class="m">_Generate322KeySetKey234</span> <span class="s">{</span>
+6655   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6656   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6657 
+6658   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6659 <span class="s">}</span>
+6660 
+6661 <span class="c"># Generate 322 keyset key 235 value as 1/0 indicating its presence/absence or</span>
+6662 <span class="c"># count of its presence in a molecule.</span>
+6663 <span class="c">#</span>
+6664 <span class="c"># Key 235 description: Cl#X</span>
+6665 <span class="c">#</span>
+<a name="_Generate322KeySetKey235-"></a>6666 <span class="k">sub </span><span class="m">_Generate322KeySetKey235</span> <span class="s">{</span>
+6667   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6668   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6669 
+6670   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6671 <span class="s">}</span>
+6672 
+6673 <span class="c"># Generate 322 keyset key 236 value as 1/0 indicating its presence/absence or</span>
+6674 <span class="c"># count of its presence in a molecule.</span>
+6675 <span class="c">#</span>
+6676 <span class="c"># Key 236 description: P#P</span>
+6677 <span class="c">#</span>
+<a name="_Generate322KeySetKey236-"></a>6678 <span class="k">sub </span><span class="m">_Generate322KeySetKey236</span> <span class="s">{</span>
+6679   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6680   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6681 
+6682   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6683 <span class="s">}</span>
+6684 
+6685 <span class="c"># Generate 322 keyset key 237 value as 1/0 indicating its presence/absence or</span>
+6686 <span class="c"># count of its presence in a molecule.</span>
+6687 <span class="c">#</span>
+6688 <span class="c"># Key 237 description: P#F</span>
+6689 <span class="c">#</span>
+<a name="_Generate322KeySetKey237-"></a>6690 <span class="k">sub </span><span class="m">_Generate322KeySetKey237</span> <span class="s">{</span>
+6691   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6692   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6693 
+6694   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6695 <span class="s">}</span>
+6696 
+6697 <span class="c"># Generate 322 keyset key 238 value as 1/0 indicating its presence/absence or</span>
+6698 <span class="c"># count of its presence in a molecule.</span>
+6699 <span class="c">#</span>
+6700 <span class="c"># Key 238 description: P#Br</span>
+6701 <span class="c">#</span>
+<a name="_Generate322KeySetKey238-"></a>6702 <span class="k">sub </span><span class="m">_Generate322KeySetKey238</span> <span class="s">{</span>
+6703   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6704   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6705 
+6706   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6707 <span class="s">}</span>
+6708 
+6709 <span class="c"># Generate 322 keyset key 239 value as 1/0 indicating its presence/absence or</span>
+6710 <span class="c"># count of its presence in a molecule.</span>
+6711 <span class="c">#</span>
+6712 <span class="c"># Key 239 description: P#Si</span>
+6713 <span class="c">#</span>
+<a name="_Generate322KeySetKey239-"></a>6714 <span class="k">sub </span><span class="m">_Generate322KeySetKey239</span> <span class="s">{</span>
+6715   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6716   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6717 
+6718   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6719 <span class="s">}</span>
+6720 
+6721 <span class="c"># Generate 322 keyset key 240 value as 1/0 indicating its presence/absence or</span>
+6722 <span class="c"># count of its presence in a molecule.</span>
+6723 <span class="c">#</span>
+6724 <span class="c"># Key 240 description: P#I</span>
+6725 <span class="c">#</span>
+<a name="_Generate322KeySetKey240-"></a>6726 <span class="k">sub </span><span class="m">_Generate322KeySetKey240</span> <span class="s">{</span>
+6727   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6728   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6729 
+6730   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6731 <span class="s">}</span>
+6732 
+6733 <span class="c"># Generate 322 keyset key 241 value as 1/0 indicating its presence/absence or</span>
+6734 <span class="c"># count of its presence in a molecule.</span>
+6735 <span class="c">#</span>
+6736 <span class="c"># Key 241 description: P#X</span>
+6737 <span class="c">#</span>
+<a name="_Generate322KeySetKey241-"></a>6738 <span class="k">sub </span><span class="m">_Generate322KeySetKey241</span> <span class="s">{</span>
+6739   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6740   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6741 
+6742   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6743 <span class="s">}</span>
+6744 
+6745 <span class="c"># Generate 322 keyset key 242 value as 1/0 indicating its presence/absence or</span>
+6746 <span class="c"># count of its presence in a molecule.</span>
+6747 <span class="c">#</span>
+6748 <span class="c"># Key 242 description: F#F</span>
+6749 <span class="c">#</span>
+<a name="_Generate322KeySetKey242-"></a>6750 <span class="k">sub </span><span class="m">_Generate322KeySetKey242</span> <span class="s">{</span>
+6751   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6752   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6753 
+6754   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6755 <span class="s">}</span>
+6756 
+6757 <span class="c"># Generate 322 keyset key 243 value as 1/0 indicating its presence/absence or</span>
+6758 <span class="c"># count of its presence in a molecule.</span>
+6759 <span class="c">#</span>
+6760 <span class="c"># Key 243 description: F#Br</span>
+6761 <span class="c">#</span>
+<a name="_Generate322KeySetKey243-"></a>6762 <span class="k">sub </span><span class="m">_Generate322KeySetKey243</span> <span class="s">{</span>
+6763   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6764   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6765 
+6766   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6767 <span class="s">}</span>
+6768 
+6769 <span class="c"># Generate 322 keyset key 244 value as 1/0 indicating its presence/absence or</span>
+6770 <span class="c"># count of its presence in a molecule.</span>
+6771 <span class="c">#</span>
+6772 <span class="c"># Key 244 description: F#Si</span>
+6773 <span class="c">#</span>
+<a name="_Generate322KeySetKey244-"></a>6774 <span class="k">sub </span><span class="m">_Generate322KeySetKey244</span> <span class="s">{</span>
+6775   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6776   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6777 
+6778   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6779 <span class="s">}</span>
+6780 
+6781 <span class="c"># Generate 322 keyset key 245 value as 1/0 indicating its presence/absence or</span>
+6782 <span class="c"># count of its presence in a molecule.</span>
+6783 <span class="c">#</span>
+6784 <span class="c"># Key 245 description: F#I</span>
+6785 <span class="c">#</span>
+<a name="_Generate322KeySetKey245-"></a>6786 <span class="k">sub </span><span class="m">_Generate322KeySetKey245</span> <span class="s">{</span>
+6787   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6788   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6789 
+6790   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6791 <span class="s">}</span>
+6792 
+6793 <span class="c"># Generate 322 keyset key 246 value as 1/0 indicating its presence/absence or</span>
+6794 <span class="c"># count of its presence in a molecule.</span>
+6795 <span class="c">#</span>
+6796 <span class="c"># Key 246 description: F#X</span>
+6797 <span class="c">#</span>
+<a name="_Generate322KeySetKey246-"></a>6798 <span class="k">sub </span><span class="m">_Generate322KeySetKey246</span> <span class="s">{</span>
+6799   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6800   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6801 
+6802   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6803 <span class="s">}</span>
+6804 
+6805 <span class="c"># Generate 322 keyset key 247 value as 1/0 indicating its presence/absence or</span>
+6806 <span class="c"># count of its presence in a molecule.</span>
+6807 <span class="c">#</span>
+6808 <span class="c"># Key 247 description: Br#Br</span>
+6809 <span class="c">#</span>
+<a name="_Generate322KeySetKey247-"></a>6810 <span class="k">sub </span><span class="m">_Generate322KeySetKey247</span> <span class="s">{</span>
+6811   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6812   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6813 
+6814   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6815 <span class="s">}</span>
+6816 
+6817 <span class="c"># Generate 322 keyset key 248 value as 1/0 indicating its presence/absence or</span>
+6818 <span class="c"># count of its presence in a molecule.</span>
+6819 <span class="c">#</span>
+6820 <span class="c"># Key 248 description: Br#Si</span>
+6821 <span class="c">#</span>
+<a name="_Generate322KeySetKey248-"></a>6822 <span class="k">sub </span><span class="m">_Generate322KeySetKey248</span> <span class="s">{</span>
+6823   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6824   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6825 
+6826   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6827 <span class="s">}</span>
+6828 
+6829 <span class="c"># Generate 322 keyset key 249 value as 1/0 indicating its presence/absence or</span>
+6830 <span class="c"># count of its presence in a molecule.</span>
+6831 <span class="c">#</span>
+6832 <span class="c"># Key 249 description: Br#I</span>
+6833 <span class="c">#</span>
+<a name="_Generate322KeySetKey249-"></a>6834 <span class="k">sub </span><span class="m">_Generate322KeySetKey249</span> <span class="s">{</span>
+6835   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6836   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6837 
+6838   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6839 <span class="s">}</span>
+6840 
+6841 <span class="c"># Generate 322 keyset key 250 value as 1/0 indicating its presence/absence or</span>
+6842 <span class="c"># count of its presence in a molecule.</span>
+6843 <span class="c">#</span>
+6844 <span class="c"># Key 250 description: Br#X</span>
+6845 <span class="c">#</span>
+<a name="_Generate322KeySetKey250-"></a>6846 <span class="k">sub </span><span class="m">_Generate322KeySetKey250</span> <span class="s">{</span>
+6847   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6848   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6849 
+6850   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6851 <span class="s">}</span>
+6852 
+6853 <span class="c"># Generate 322 keyset key 251 value as 1/0 indicating its presence/absence or</span>
+6854 <span class="c"># count of its presence in a molecule.</span>
+6855 <span class="c">#</span>
+6856 <span class="c"># Key 251 description: Si#Si</span>
+6857 <span class="c">#</span>
+<a name="_Generate322KeySetKey251-"></a>6858 <span class="k">sub </span><span class="m">_Generate322KeySetKey251</span> <span class="s">{</span>
+6859   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6860   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6861 
+6862   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6863 <span class="s">}</span>
+6864 
+6865 <span class="c"># Generate 322 keyset key 252 value as 1/0 indicating its presence/absence or</span>
+6866 <span class="c"># count of its presence in a molecule.</span>
+6867 <span class="c">#</span>
+6868 <span class="c"># Key 252 description: Si#I</span>
+6869 <span class="c">#</span>
+<a name="_Generate322KeySetKey252-"></a>6870 <span class="k">sub </span><span class="m">_Generate322KeySetKey252</span> <span class="s">{</span>
+6871   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6872   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6873 
+6874   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6875 <span class="s">}</span>
+6876 
+6877 <span class="c"># Generate 322 keyset key 253 value as 1/0 indicating its presence/absence or</span>
+6878 <span class="c"># count of its presence in a molecule.</span>
+6879 <span class="c">#</span>
+6880 <span class="c"># Key 253 description: Si#X</span>
+6881 <span class="c">#</span>
+<a name="_Generate322KeySetKey253-"></a>6882 <span class="k">sub </span><span class="m">_Generate322KeySetKey253</span> <span class="s">{</span>
+6883   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6884   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6885 
+6886   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6887 <span class="s">}</span>
+6888 
+6889 <span class="c"># Generate 322 keyset key 254 value as 1/0 indicating its presence/absence or</span>
+6890 <span class="c"># count of its presence in a molecule.</span>
+6891 <span class="c">#</span>
+6892 <span class="c"># Key 254 description: I#I</span>
+6893 <span class="c">#</span>
+<a name="_Generate322KeySetKey254-"></a>6894 <span class="k">sub </span><span class="m">_Generate322KeySetKey254</span> <span class="s">{</span>
+6895   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6896   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6897 
+6898   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6899 <span class="s">}</span>
+6900 
+6901 <span class="c"># Generate 322 keyset key 255 value as 1/0 indicating its presence/absence or</span>
+6902 <span class="c"># count of its presence in a molecule.</span>
+6903 <span class="c">#</span>
+6904 <span class="c"># Key 255 description: I#X</span>
+6905 <span class="c">#</span>
+<a name="_Generate322KeySetKey255-"></a>6906 <span class="k">sub </span><span class="m">_Generate322KeySetKey255</span> <span class="s">{</span>
+6907   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6908   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6909 
+6910   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6911 <span class="s">}</span>
+6912 
+6913 <span class="c"># Generate 322 keyset key 256 value as 1/0 indicating its presence/absence or</span>
+6914 <span class="c"># count of its presence in a molecule.</span>
+6915 <span class="c">#</span>
+6916 <span class="c"># Key 256 description: X#X</span>
+6917 <span class="c">#</span>
+<a name="_Generate322KeySetKey256-"></a>6918 <span class="k">sub </span><span class="m">_Generate322KeySetKey256</span> <span class="s">{</span>
+6919   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6920   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
+6921 
+6922   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6923 <span class="s">}</span>
+6924 
+6925 <span class="c"># Generate 322 keyset key 257 value as 1/0 indicating its presence/absence or</span>
+6926 <span class="c"># count of its presence in a molecule.</span>
+6927 <span class="c">#</span>
+6928 <span class="c"># Key 257 description: C$C</span>
+6929 <span class="c">#</span>
+<a name="_Generate322KeySetKey257-"></a>6930 <span class="k">sub </span><span class="m">_Generate322KeySetKey257</span> <span class="s">{</span>
+6931   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6932   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+6933 
+6934   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6935 <span class="s">}</span>
+6936 
+6937 <span class="c"># Generate 322 keyset key 258 value as 1/0 indicating its presence/absence or</span>
+6938 <span class="c"># count of its presence in a molecule.</span>
+6939 <span class="c">#</span>
+6940 <span class="c"># Key 258 description: C$N</span>
+6941 <span class="c">#</span>
+<a name="_Generate322KeySetKey258-"></a>6942 <span class="k">sub </span><span class="m">_Generate322KeySetKey258</span> <span class="s">{</span>
+6943   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6944   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+6945 
+6946   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6947 <span class="s">}</span>
+6948 
+6949 <span class="c"># Generate 322 keyset key 259 value as 1/0 indicating its presence/absence or</span>
+6950 <span class="c"># count of its presence in a molecule.</span>
+6951 <span class="c">#</span>
+6952 <span class="c"># Key 259 description: C$O</span>
+6953 <span class="c">#</span>
+<a name="_Generate322KeySetKey259-"></a>6954 <span class="k">sub </span><span class="m">_Generate322KeySetKey259</span> <span class="s">{</span>
+6955   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6956   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+6957 
+6958   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6959 <span class="s">}</span>
+6960 
+6961 <span class="c"># Generate 322 keyset key 260 value as 1/0 indicating its presence/absence or</span>
+6962 <span class="c"># count of its presence in a molecule.</span>
+6963 <span class="c">#</span>
+6964 <span class="c"># Key 260 description: C$S</span>
+6965 <span class="c">#</span>
+<a name="_Generate322KeySetKey260-"></a>6966 <span class="k">sub </span><span class="m">_Generate322KeySetKey260</span> <span class="s">{</span>
+6967   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6968   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+6969 
+6970   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6971 <span class="s">}</span>
+6972 
+6973 <span class="c"># Generate 322 keyset key 261 value as 1/0 indicating its presence/absence or</span>
+6974 <span class="c"># count of its presence in a molecule.</span>
+6975 <span class="c">#</span>
+6976 <span class="c"># Key 261 description: C$Cl</span>
+6977 <span class="c">#</span>
+<a name="_Generate322KeySetKey261-"></a>6978 <span class="k">sub </span><span class="m">_Generate322KeySetKey261</span> <span class="s">{</span>
+6979   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6980   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+6981 
+6982   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6983 <span class="s">}</span>
+6984 
+6985 <span class="c"># Generate 322 keyset key 262 value as 1/0 indicating its presence/absence or</span>
+6986 <span class="c"># count of its presence in a molecule.</span>
+6987 <span class="c">#</span>
+6988 <span class="c"># Key 262 description: C$P</span>
+6989 <span class="c">#</span>
+<a name="_Generate322KeySetKey262-"></a>6990 <span class="k">sub </span><span class="m">_Generate322KeySetKey262</span> <span class="s">{</span>
+6991   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+6992   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+6993 
+6994   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+6995 <span class="s">}</span>
+6996 
+6997 <span class="c"># Generate 322 keyset key 263 value as 1/0 indicating its presence/absence or</span>
+6998 <span class="c"># count of its presence in a molecule.</span>
+6999 <span class="c">#</span>
+7000 <span class="c"># Key 263 description: C$F</span>
+7001 <span class="c">#</span>
+<a name="_Generate322KeySetKey263-"></a>7002 <span class="k">sub </span><span class="m">_Generate322KeySetKey263</span> <span class="s">{</span>
+7003   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7004   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7005 
+7006   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7007 <span class="s">}</span>
+7008 
+7009 <span class="c"># Generate 322 keyset key 264 value as 1/0 indicating its presence/absence or</span>
+7010 <span class="c"># count of its presence in a molecule.</span>
+7011 <span class="c">#</span>
+7012 <span class="c"># Key 264 description: C$Br</span>
+7013 <span class="c">#</span>
+<a name="_Generate322KeySetKey264-"></a>7014 <span class="k">sub </span><span class="m">_Generate322KeySetKey264</span> <span class="s">{</span>
+7015   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7016   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7017 
+7018   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7019 <span class="s">}</span>
+7020 
+7021 <span class="c"># Generate 322 keyset key 265 value as 1/0 indicating its presence/absence or</span>
+7022 <span class="c"># count of its presence in a molecule.</span>
+7023 <span class="c">#</span>
+7024 <span class="c"># Key 265 description: C$Si</span>
+7025 <span class="c">#</span>
+<a name="_Generate322KeySetKey265-"></a>7026 <span class="k">sub </span><span class="m">_Generate322KeySetKey265</span> <span class="s">{</span>
+7027   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7028   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7029 
+7030   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7031 <span class="s">}</span>
+7032 
+7033 <span class="c"># Generate 322 keyset key 266 value as 1/0 indicating its presence/absence or</span>
+7034 <span class="c"># count of its presence in a molecule.</span>
+7035 <span class="c">#</span>
+7036 <span class="c"># Key 266 description: C$I</span>
+7037 <span class="c">#</span>
+<a name="_Generate322KeySetKey266-"></a>7038 <span class="k">sub </span><span class="m">_Generate322KeySetKey266</span> <span class="s">{</span>
+7039   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7040   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7041 
+7042   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7043 <span class="s">}</span>
+7044 
+7045 <span class="c"># Generate 322 keyset key 267 value as 1/0 indicating its presence/absence or</span>
+7046 <span class="c"># count of its presence in a molecule.</span>
+7047 <span class="c">#</span>
+7048 <span class="c"># Key 267 description: C$X</span>
+7049 <span class="c">#</span>
+<a name="_Generate322KeySetKey267-"></a>7050 <span class="k">sub </span><span class="m">_Generate322KeySetKey267</span> <span class="s">{</span>
+7051   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7052   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7053 
+7054   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7055 <span class="s">}</span>
+7056 
+7057 <span class="c"># Generate 322 keyset key 268 value as 1/0 indicating its presence/absence or</span>
+7058 <span class="c"># count of its presence in a molecule.</span>
+7059 <span class="c">#</span>
+7060 <span class="c"># Key 268 description: N$N</span>
+7061 <span class="c">#</span>
+<a name="_Generate322KeySetKey268-"></a>7062 <span class="k">sub </span><span class="m">_Generate322KeySetKey268</span> <span class="s">{</span>
+7063   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7064   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7065 
+7066   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7067 <span class="s">}</span>
+7068 
+7069 <span class="c"># Generate 322 keyset key 269 value as 1/0 indicating its presence/absence or</span>
+7070 <span class="c"># count of its presence in a molecule.</span>
+7071 <span class="c">#</span>
+7072 <span class="c"># Key 269 description: N$O</span>
+7073 <span class="c">#</span>
+<a name="_Generate322KeySetKey269-"></a>7074 <span class="k">sub </span><span class="m">_Generate322KeySetKey269</span> <span class="s">{</span>
+7075   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7076   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7077 
+7078   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7079 <span class="s">}</span>
+7080 
+7081 <span class="c"># Generate 322 keyset key 270 value as 1/0 indicating its presence/absence or</span>
+7082 <span class="c"># count of its presence in a molecule.</span>
+7083 <span class="c">#</span>
+7084 <span class="c"># Key 270 description: N$S</span>
+7085 <span class="c">#</span>
+<a name="_Generate322KeySetKey270-"></a>7086 <span class="k">sub </span><span class="m">_Generate322KeySetKey270</span> <span class="s">{</span>
+7087   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7088   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7089 
+7090   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7091 <span class="s">}</span>
+7092 
+7093 <span class="c"># Generate 322 keyset key 271 value as 1/0 indicating its presence/absence or</span>
+7094 <span class="c"># count of its presence in a molecule.</span>
+7095 <span class="c">#</span>
+7096 <span class="c"># Key 271 description: N$Cl</span>
+7097 <span class="c">#</span>
+<a name="_Generate322KeySetKey271-"></a>7098 <span class="k">sub </span><span class="m">_Generate322KeySetKey271</span> <span class="s">{</span>
+7099   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7100   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7101 
+7102   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7103 <span class="s">}</span>
+7104 
+7105 <span class="c"># Generate 322 keyset key 272 value as 1/0 indicating its presence/absence or</span>
+7106 <span class="c"># count of its presence in a molecule.</span>
+7107 <span class="c">#</span>
+7108 <span class="c"># Key 272 description: N$P</span>
+7109 <span class="c">#</span>
+<a name="_Generate322KeySetKey272-"></a>7110 <span class="k">sub </span><span class="m">_Generate322KeySetKey272</span> <span class="s">{</span>
+7111   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7112   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7113 
+7114   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7115 <span class="s">}</span>
+7116 
+7117 <span class="c"># Generate 322 keyset key 273 value as 1/0 indicating its presence/absence or</span>
+7118 <span class="c"># count of its presence in a molecule.</span>
+7119 <span class="c">#</span>
+7120 <span class="c"># Key 273 description: N$F</span>
+7121 <span class="c">#</span>
+<a name="_Generate322KeySetKey273-"></a>7122 <span class="k">sub </span><span class="m">_Generate322KeySetKey273</span> <span class="s">{</span>
+7123   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7124   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7125 
+7126   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7127 <span class="s">}</span>
+7128 
+7129 <span class="c"># Generate 322 keyset key 274 value as 1/0 indicating its presence/absence or</span>
+7130 <span class="c"># count of its presence in a molecule.</span>
+7131 <span class="c">#</span>
+7132 <span class="c"># Key 274 description: N$Br</span>
+7133 <span class="c">#</span>
+<a name="_Generate322KeySetKey274-"></a>7134 <span class="k">sub </span><span class="m">_Generate322KeySetKey274</span> <span class="s">{</span>
+7135   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7136   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7137 
+7138   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7139 <span class="s">}</span>
+7140 
+7141 <span class="c"># Generate 322 keyset key 275 value as 1/0 indicating its presence/absence or</span>
+7142 <span class="c"># count of its presence in a molecule.</span>
+7143 <span class="c">#</span>
+7144 <span class="c"># Key 275 description: N$Si</span>
+7145 <span class="c">#</span>
+<a name="_Generate322KeySetKey275-"></a>7146 <span class="k">sub </span><span class="m">_Generate322KeySetKey275</span> <span class="s">{</span>
+7147   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7148   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7149 
+7150   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7151 <span class="s">}</span>
+7152 
+7153 <span class="c"># Generate 322 keyset key 276 value as 1/0 indicating its presence/absence or</span>
+7154 <span class="c"># count of its presence in a molecule.</span>
+7155 <span class="c">#</span>
+7156 <span class="c"># Key 276 description: N$I</span>
+7157 <span class="c">#</span>
+<a name="_Generate322KeySetKey276-"></a>7158 <span class="k">sub </span><span class="m">_Generate322KeySetKey276</span> <span class="s">{</span>
+7159   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7160   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7161 
+7162   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7163 <span class="s">}</span>
+7164 
+7165 <span class="c"># Generate 322 keyset key 277 value as 1/0 indicating its presence/absence or</span>
+7166 <span class="c"># count of its presence in a molecule.</span>
+7167 <span class="c">#</span>
+7168 <span class="c"># Key 277 description: N$X</span>
+7169 <span class="c">#</span>
+<a name="_Generate322KeySetKey277-"></a>7170 <span class="k">sub </span><span class="m">_Generate322KeySetKey277</span> <span class="s">{</span>
+7171   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7172   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7173 
+7174   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7175 <span class="s">}</span>
+7176 
+7177 <span class="c"># Generate 322 keyset key 278 value as 1/0 indicating its presence/absence or</span>
+7178 <span class="c"># count of its presence in a molecule.</span>
+7179 <span class="c">#</span>
+7180 <span class="c"># Key 278 description: O$O</span>
+7181 <span class="c">#</span>
+<a name="_Generate322KeySetKey278-"></a>7182 <span class="k">sub </span><span class="m">_Generate322KeySetKey278</span> <span class="s">{</span>
+7183   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7184   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7185 
+7186   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7187 <span class="s">}</span>
+7188 
+7189 <span class="c"># Generate 322 keyset key 279 value as 1/0 indicating its presence/absence or</span>
+7190 <span class="c"># count of its presence in a molecule.</span>
+7191 <span class="c">#</span>
+7192 <span class="c"># Key 279 description: O$S</span>
+7193 <span class="c">#</span>
+<a name="_Generate322KeySetKey279-"></a>7194 <span class="k">sub </span><span class="m">_Generate322KeySetKey279</span> <span class="s">{</span>
+7195   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7196   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7197 
+7198   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7199 <span class="s">}</span>
+7200 
+7201 <span class="c"># Generate 322 keyset key 280 value as 1/0 indicating its presence/absence or</span>
+7202 <span class="c"># count of its presence in a molecule.</span>
+7203 <span class="c">#</span>
+7204 <span class="c"># Key 280 description: O$Cl</span>
+7205 <span class="c">#</span>
+<a name="_Generate322KeySetKey280-"></a>7206 <span class="k">sub </span><span class="m">_Generate322KeySetKey280</span> <span class="s">{</span>
+7207   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7208   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7209 
+7210   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7211 <span class="s">}</span>
+7212 
+7213 <span class="c"># Generate 322 keyset key 281 value as 1/0 indicating its presence/absence or</span>
+7214 <span class="c"># count of its presence in a molecule.</span>
+7215 <span class="c">#</span>
+7216 <span class="c"># Key 281 description: O$P</span>
+7217 <span class="c">#</span>
+<a name="_Generate322KeySetKey281-"></a>7218 <span class="k">sub </span><span class="m">_Generate322KeySetKey281</span> <span class="s">{</span>
+7219   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7220   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7221 
+7222   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7223 <span class="s">}</span>
+7224 
+7225 <span class="c"># Generate 322 keyset key 282 value as 1/0 indicating its presence/absence or</span>
+7226 <span class="c"># count of its presence in a molecule.</span>
+7227 <span class="c">#</span>
+7228 <span class="c"># Key 282 description: O$F</span>
+7229 <span class="c">#</span>
+<a name="_Generate322KeySetKey282-"></a>7230 <span class="k">sub </span><span class="m">_Generate322KeySetKey282</span> <span class="s">{</span>
+7231   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7232   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7233 
+7234   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7235 <span class="s">}</span>
+7236 
+7237 <span class="c"># Generate 322 keyset key 283 value as 1/0 indicating its presence/absence or</span>
+7238 <span class="c"># count of its presence in a molecule.</span>
+7239 <span class="c">#</span>
+7240 <span class="c"># Key 283 description: O$Br</span>
+7241 <span class="c">#</span>
+<a name="_Generate322KeySetKey283-"></a>7242 <span class="k">sub </span><span class="m">_Generate322KeySetKey283</span> <span class="s">{</span>
+7243   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7244   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7245 
+7246   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7247 <span class="s">}</span>
+7248 
+7249 <span class="c"># Generate 322 keyset key 284 value as 1/0 indicating its presence/absence or</span>
+7250 <span class="c"># count of its presence in a molecule.</span>
+7251 <span class="c">#</span>
+7252 <span class="c"># Key 284 description: O$Si</span>
+7253 <span class="c">#</span>
+<a name="_Generate322KeySetKey284-"></a>7254 <span class="k">sub </span><span class="m">_Generate322KeySetKey284</span> <span class="s">{</span>
+7255   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7256   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7257 
+7258   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7259 <span class="s">}</span>
+7260 
+7261 <span class="c"># Generate 322 keyset key 285 value as 1/0 indicating its presence/absence or</span>
+7262 <span class="c"># count of its presence in a molecule.</span>
+7263 <span class="c">#</span>
+7264 <span class="c"># Key 285 description: O$I</span>
+7265 <span class="c">#</span>
+<a name="_Generate322KeySetKey285-"></a>7266 <span class="k">sub </span><span class="m">_Generate322KeySetKey285</span> <span class="s">{</span>
+7267   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7268   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7269 
+7270   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7271 <span class="s">}</span>
+7272 
+7273 <span class="c"># Generate 322 keyset key 286 value as 1/0 indicating its presence/absence or</span>
+7274 <span class="c"># count of its presence in a molecule.</span>
+7275 <span class="c">#</span>
+7276 <span class="c"># Key 286 description: O$X</span>
+7277 <span class="c">#</span>
+<a name="_Generate322KeySetKey286-"></a>7278 <span class="k">sub </span><span class="m">_Generate322KeySetKey286</span> <span class="s">{</span>
+7279   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7280   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7281 
+7282   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7283 <span class="s">}</span>
+7284 
+7285 <span class="c"># Generate 322 keyset key 287 value as 1/0 indicating its presence/absence or</span>
+7286 <span class="c"># count of its presence in a molecule.</span>
+7287 <span class="c">#</span>
+7288 <span class="c"># Key 287 description: S$S</span>
+7289 <span class="c">#</span>
+<a name="_Generate322KeySetKey287-"></a>7290 <span class="k">sub </span><span class="m">_Generate322KeySetKey287</span> <span class="s">{</span>
+7291   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7292   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7293 
+7294   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7295 <span class="s">}</span>
+7296 
+7297 <span class="c"># Generate 322 keyset key 288 value as 1/0 indicating its presence/absence or</span>
+7298 <span class="c"># count of its presence in a molecule.</span>
+7299 <span class="c">#</span>
+7300 <span class="c"># Key 288 description: S$Cl</span>
+7301 <span class="c">#</span>
+<a name="_Generate322KeySetKey288-"></a>7302 <span class="k">sub </span><span class="m">_Generate322KeySetKey288</span> <span class="s">{</span>
+7303   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7304   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7305 
+7306   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7307 <span class="s">}</span>
+7308 
+7309 <span class="c"># Generate 322 keyset key 289 value as 1/0 indicating its presence/absence or</span>
+7310 <span class="c"># count of its presence in a molecule.</span>
+7311 <span class="c">#</span>
+7312 <span class="c"># Key 289 description: S$P</span>
+7313 <span class="c">#</span>
+<a name="_Generate322KeySetKey289-"></a>7314 <span class="k">sub </span><span class="m">_Generate322KeySetKey289</span> <span class="s">{</span>
+7315   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7316   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7317 
+7318   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7319 <span class="s">}</span>
+7320 
+7321 <span class="c"># Generate 322 keyset key 290 value as 1/0 indicating its presence/absence or</span>
+7322 <span class="c"># count of its presence in a molecule.</span>
+7323 <span class="c">#</span>
+7324 <span class="c"># Key 290 description: S$F</span>
+7325 <span class="c">#</span>
+<a name="_Generate322KeySetKey290-"></a>7326 <span class="k">sub </span><span class="m">_Generate322KeySetKey290</span> <span class="s">{</span>
+7327   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7328   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7329 
+7330   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7331 <span class="s">}</span>
+7332 
+7333 <span class="c"># Generate 322 keyset key 291 value as 1/0 indicating its presence/absence or</span>
+7334 <span class="c"># count of its presence in a molecule.</span>
+7335 <span class="c">#</span>
+7336 <span class="c"># Key 291 description: S$Br</span>
+7337 <span class="c">#</span>
+<a name="_Generate322KeySetKey291-"></a>7338 <span class="k">sub </span><span class="m">_Generate322KeySetKey291</span> <span class="s">{</span>
+7339   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7340   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7341 
+7342   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7343 <span class="s">}</span>
+7344 
+7345 <span class="c"># Generate 322 keyset key 292 value as 1/0 indicating its presence/absence or</span>
+7346 <span class="c"># count of its presence in a molecule.</span>
+7347 <span class="c">#</span>
+7348 <span class="c"># Key 292 description: S$Si</span>
+7349 <span class="c">#</span>
+<a name="_Generate322KeySetKey292-"></a>7350 <span class="k">sub </span><span class="m">_Generate322KeySetKey292</span> <span class="s">{</span>
+7351   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7352   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7353 
+7354   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7355 <span class="s">}</span>
+7356 
+7357 <span class="c"># Generate 322 keyset key 293 value as 1/0 indicating its presence/absence or</span>
+7358 <span class="c"># count of its presence in a molecule.</span>
+7359 <span class="c">#</span>
+7360 <span class="c"># Key 293 description: S$I</span>
+7361 <span class="c">#</span>
+<a name="_Generate322KeySetKey293-"></a>7362 <span class="k">sub </span><span class="m">_Generate322KeySetKey293</span> <span class="s">{</span>
+7363   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7364   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7365 
+7366   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7367 <span class="s">}</span>
+7368 
+7369 <span class="c"># Generate 322 keyset key 294 value as 1/0 indicating its presence/absence or</span>
+7370 <span class="c"># count of its presence in a molecule.</span>
+7371 <span class="c">#</span>
+7372 <span class="c"># Key 294 description: S$X</span>
+7373 <span class="c">#</span>
+<a name="_Generate322KeySetKey294-"></a>7374 <span class="k">sub </span><span class="m">_Generate322KeySetKey294</span> <span class="s">{</span>
+7375   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7376   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7377 
+7378   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7379 <span class="s">}</span>
+7380 
+7381 <span class="c"># Generate 322 keyset key 295 value as 1/0 indicating its presence/absence or</span>
+7382 <span class="c"># count of its presence in a molecule.</span>
+7383 <span class="c">#</span>
+7384 <span class="c"># Key 295 description: Cl$Cl</span>
+7385 <span class="c">#</span>
+<a name="_Generate322KeySetKey295-"></a>7386 <span class="k">sub </span><span class="m">_Generate322KeySetKey295</span> <span class="s">{</span>
+7387   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7388   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7389 
+7390   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7391 <span class="s">}</span>
+7392 
+7393 <span class="c"># Generate 322 keyset key 296 value as 1/0 indicating its presence/absence or</span>
+7394 <span class="c"># count of its presence in a molecule.</span>
+7395 <span class="c">#</span>
+7396 <span class="c"># Key 296 description: Cl$P</span>
+7397 <span class="c">#</span>
+<a name="_Generate322KeySetKey296-"></a>7398 <span class="k">sub </span><span class="m">_Generate322KeySetKey296</span> <span class="s">{</span>
+7399   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7400   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7401 
+7402   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7403 <span class="s">}</span>
+7404 
+7405 <span class="c"># Generate 322 keyset key 297 value as 1/0 indicating its presence/absence or</span>
+7406 <span class="c"># count of its presence in a molecule.</span>
+7407 <span class="c">#</span>
+7408 <span class="c"># Key 297 description: Cl$F</span>
+7409 <span class="c">#</span>
+<a name="_Generate322KeySetKey297-"></a>7410 <span class="k">sub </span><span class="m">_Generate322KeySetKey297</span> <span class="s">{</span>
+7411   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7412   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7413 
+7414   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7415 <span class="s">}</span>
+7416 
+7417 <span class="c"># Generate 322 keyset key 298 value as 1/0 indicating its presence/absence or</span>
+7418 <span class="c"># count of its presence in a molecule.</span>
+7419 <span class="c">#</span>
+7420 <span class="c"># Key 298 description: Cl$Br</span>
+7421 <span class="c">#</span>
+<a name="_Generate322KeySetKey298-"></a>7422 <span class="k">sub </span><span class="m">_Generate322KeySetKey298</span> <span class="s">{</span>
+7423   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7424   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7425 
+7426   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7427 <span class="s">}</span>
+7428 
+7429 <span class="c"># Generate 322 keyset key 299 value as 1/0 indicating its presence/absence or</span>
+7430 <span class="c"># count of its presence in a molecule.</span>
+7431 <span class="c">#</span>
+7432 <span class="c"># Key 299 description: Cl$Si</span>
+7433 <span class="c">#</span>
+<a name="_Generate322KeySetKey299-"></a>7434 <span class="k">sub </span><span class="m">_Generate322KeySetKey299</span> <span class="s">{</span>
+7435   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7436   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7437 
+7438   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7439 <span class="s">}</span>
+7440 
+7441 <span class="c"># Generate 322 keyset key 300 value as 1/0 indicating its presence/absence or</span>
+7442 <span class="c"># count of its presence in a molecule.</span>
+7443 <span class="c">#</span>
+7444 <span class="c"># Key 300 description: Cl$I</span>
+7445 <span class="c">#</span>
+<a name="_Generate322KeySetKey300-"></a>7446 <span class="k">sub </span><span class="m">_Generate322KeySetKey300</span> <span class="s">{</span>
+7447   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7448   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7449 
+7450   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7451 <span class="s">}</span>
+7452 
+7453 <span class="c"># Generate 322 keyset key 301 value as 1/0 indicating its presence/absence or</span>
+7454 <span class="c"># count of its presence in a molecule.</span>
+7455 <span class="c">#</span>
+7456 <span class="c"># Key 301 description: Cl$X</span>
+7457 <span class="c">#</span>
+<a name="_Generate322KeySetKey301-"></a>7458 <span class="k">sub </span><span class="m">_Generate322KeySetKey301</span> <span class="s">{</span>
+7459   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7460   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7461 
+7462   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7463 <span class="s">}</span>
+7464 
+7465 <span class="c"># Generate 322 keyset key 302 value as 1/0 indicating its presence/absence or</span>
+7466 <span class="c"># count of its presence in a molecule.</span>
+7467 <span class="c">#</span>
+7468 <span class="c"># Key 302 description: P$P</span>
+7469 <span class="c">#</span>
+<a name="_Generate322KeySetKey302-"></a>7470 <span class="k">sub </span><span class="m">_Generate322KeySetKey302</span> <span class="s">{</span>
+7471   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7472   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7473 
+7474   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7475 <span class="s">}</span>
+7476 
+7477 <span class="c"># Generate 322 keyset key 303 value as 1/0 indicating its presence/absence or</span>
+7478 <span class="c"># count of its presence in a molecule.</span>
+7479 <span class="c">#</span>
+7480 <span class="c"># Key 303 description: P$F</span>
+7481 <span class="c">#</span>
+<a name="_Generate322KeySetKey303-"></a>7482 <span class="k">sub </span><span class="m">_Generate322KeySetKey303</span> <span class="s">{</span>
+7483   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7484   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7485 
+7486   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7487 <span class="s">}</span>
+7488 
+7489 <span class="c"># Generate 322 keyset key 304 value as 1/0 indicating its presence/absence or</span>
+7490 <span class="c"># count of its presence in a molecule.</span>
+7491 <span class="c">#</span>
+7492 <span class="c"># Key 304 description: P$Br</span>
+7493 <span class="c">#</span>
+<a name="_Generate322KeySetKey304-"></a>7494 <span class="k">sub </span><span class="m">_Generate322KeySetKey304</span> <span class="s">{</span>
+7495   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7496   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7497 
+7498   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7499 <span class="s">}</span>
+7500 
+7501 <span class="c"># Generate 322 keyset key 305 value as 1/0 indicating its presence/absence or</span>
+7502 <span class="c"># count of its presence in a molecule.</span>
+7503 <span class="c">#</span>
+7504 <span class="c"># Key 305 description: P$Si</span>
+7505 <span class="c">#</span>
+<a name="_Generate322KeySetKey305-"></a>7506 <span class="k">sub </span><span class="m">_Generate322KeySetKey305</span> <span class="s">{</span>
+7507   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7508   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7509 
+7510   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7511 <span class="s">}</span>
+7512 
+7513 <span class="c"># Generate 322 keyset key 306 value as 1/0 indicating its presence/absence or</span>
+7514 <span class="c"># count of its presence in a molecule.</span>
+7515 <span class="c">#</span>
+7516 <span class="c"># Key 306 description: P$I</span>
+7517 <span class="c">#</span>
+<a name="_Generate322KeySetKey306-"></a>7518 <span class="k">sub </span><span class="m">_Generate322KeySetKey306</span> <span class="s">{</span>
+7519   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7520   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7521 
+7522   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7523 <span class="s">}</span>
+7524 
+7525 <span class="c"># Generate 322 keyset key 307 value as 1/0 indicating its presence/absence or</span>
+7526 <span class="c"># count of its presence in a molecule.</span>
+7527 <span class="c">#</span>
+7528 <span class="c"># Key 307 description: P$X</span>
+7529 <span class="c">#</span>
+<a name="_Generate322KeySetKey307-"></a>7530 <span class="k">sub </span><span class="m">_Generate322KeySetKey307</span> <span class="s">{</span>
+7531   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7532   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7533 
+7534   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7535 <span class="s">}</span>
+7536 
+7537 <span class="c"># Generate 322 keyset key 308 value as 1/0 indicating its presence/absence or</span>
+7538 <span class="c"># count of its presence in a molecule.</span>
+7539 <span class="c">#</span>
+7540 <span class="c"># Key 308 description: F$F</span>
+7541 <span class="c">#</span>
+<a name="_Generate322KeySetKey308-"></a>7542 <span class="k">sub </span><span class="m">_Generate322KeySetKey308</span> <span class="s">{</span>
+7543   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7544   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7545 
+7546   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7547 <span class="s">}</span>
+7548 
+7549 <span class="c"># Generate 322 keyset key 309 value as 1/0 indicating its presence/absence or</span>
+7550 <span class="c"># count of its presence in a molecule.</span>
+7551 <span class="c">#</span>
+7552 <span class="c"># Key 309 description: F$Br</span>
+7553 <span class="c">#</span>
+<a name="_Generate322KeySetKey309-"></a>7554 <span class="k">sub </span><span class="m">_Generate322KeySetKey309</span> <span class="s">{</span>
+7555   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7556   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7557 
+7558   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7559 <span class="s">}</span>
+7560 
+7561 <span class="c"># Generate 322 keyset key 310 value as 1/0 indicating its presence/absence or</span>
+7562 <span class="c"># count of its presence in a molecule.</span>
+7563 <span class="c">#</span>
+7564 <span class="c"># Key 310 description: F$Si</span>
+7565 <span class="c">#</span>
+<a name="_Generate322KeySetKey310-"></a>7566 <span class="k">sub </span><span class="m">_Generate322KeySetKey310</span> <span class="s">{</span>
+7567   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7568   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7569 
+7570   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7571 <span class="s">}</span>
+7572 
+7573 <span class="c"># Generate 322 keyset key 311 value as 1/0 indicating its presence/absence or</span>
+7574 <span class="c"># count of its presence in a molecule.</span>
+7575 <span class="c">#</span>
+7576 <span class="c"># Key 311 description: F$I</span>
+7577 <span class="c">#</span>
+<a name="_Generate322KeySetKey311-"></a>7578 <span class="k">sub </span><span class="m">_Generate322KeySetKey311</span> <span class="s">{</span>
+7579   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7580   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7581 
+7582   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7583 <span class="s">}</span>
+7584 
+7585 <span class="c"># Generate 322 keyset key 312 value as 1/0 indicating its presence/absence or</span>
+7586 <span class="c"># count of its presence in a molecule.</span>
+7587 <span class="c">#</span>
+7588 <span class="c"># Key 312 description: F$X</span>
+7589 <span class="c">#</span>
+<a name="_Generate322KeySetKey312-"></a>7590 <span class="k">sub </span><span class="m">_Generate322KeySetKey312</span> <span class="s">{</span>
+7591   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7592   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7593 
+7594   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7595 <span class="s">}</span>
+7596 
+7597 <span class="c"># Generate 322 keyset key 313 value as 1/0 indicating its presence/absence or</span>
+7598 <span class="c"># count of its presence in a molecule.</span>
+7599 <span class="c">#</span>
+7600 <span class="c"># Key 313 description: Br$Br</span>
+7601 <span class="c">#</span>
+<a name="_Generate322KeySetKey313-"></a>7602 <span class="k">sub </span><span class="m">_Generate322KeySetKey313</span> <span class="s">{</span>
+7603   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7604   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7605 
+7606   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7607 <span class="s">}</span>
+7608 
+7609 <span class="c"># Generate 322 keyset key 314 value as 1/0 indicating its presence/absence or</span>
+7610 <span class="c"># count of its presence in a molecule.</span>
+7611 <span class="c">#</span>
+7612 <span class="c"># Key 314 description: Br$Si</span>
+7613 <span class="c">#</span>
+<a name="_Generate322KeySetKey314-"></a>7614 <span class="k">sub </span><span class="m">_Generate322KeySetKey314</span> <span class="s">{</span>
+7615   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7616   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7617 
+7618   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7619 <span class="s">}</span>
+7620 
+7621 <span class="c"># Generate 322 keyset key 315 value as 1/0 indicating its presence/absence or</span>
+7622 <span class="c"># count of its presence in a molecule.</span>
+7623 <span class="c">#</span>
+7624 <span class="c"># Key 315 description: Br$I</span>
+7625 <span class="c">#</span>
+<a name="_Generate322KeySetKey315-"></a>7626 <span class="k">sub </span><span class="m">_Generate322KeySetKey315</span> <span class="s">{</span>
+7627   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7628   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7629 
+7630   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7631 <span class="s">}</span>
+7632 
+7633 <span class="c"># Generate 322 keyset key 316 value as 1/0 indicating its presence/absence or</span>
+7634 <span class="c"># count of its presence in a molecule.</span>
+7635 <span class="c">#</span>
+7636 <span class="c"># Key 316 description: Br$X</span>
+7637 <span class="c">#</span>
+<a name="_Generate322KeySetKey316-"></a>7638 <span class="k">sub </span><span class="m">_Generate322KeySetKey316</span> <span class="s">{</span>
+7639   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7640   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7641 
+7642   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7643 <span class="s">}</span>
+7644 
+7645 <span class="c"># Generate 322 keyset key 317 value as 1/0 indicating its presence/absence or</span>
+7646 <span class="c"># count of its presence in a molecule.</span>
+7647 <span class="c">#</span>
+7648 <span class="c"># Key 317 description: Si$Si</span>
+7649 <span class="c">#</span>
+<a name="_Generate322KeySetKey317-"></a>7650 <span class="k">sub </span><span class="m">_Generate322KeySetKey317</span> <span class="s">{</span>
+7651   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7652   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7653 
+7654   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7655 <span class="s">}</span>
+7656 
+7657 <span class="c"># Generate 322 keyset key 318 value as 1/0 indicating its presence/absence or</span>
+7658 <span class="c"># count of its presence in a molecule.</span>
+7659 <span class="c">#</span>
+7660 <span class="c"># Key 318 description: Si$I</span>
+7661 <span class="c">#</span>
+<a name="_Generate322KeySetKey318-"></a>7662 <span class="k">sub </span><span class="m">_Generate322KeySetKey318</span> <span class="s">{</span>
+7663   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7664   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7665 
+7666   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7667 <span class="s">}</span>
+7668 
+7669 <span class="c"># Generate 322 keyset key 319 value as 1/0 indicating its presence/absence or</span>
+7670 <span class="c"># count of its presence in a molecule.</span>
+7671 <span class="c">#</span>
+7672 <span class="c"># Key 319 description: Si$X</span>
+7673 <span class="c">#</span>
+<a name="_Generate322KeySetKey319-"></a>7674 <span class="k">sub </span><span class="m">_Generate322KeySetKey319</span> <span class="s">{</span>
+7675   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7676   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7677 
+7678   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7679 <span class="s">}</span>
+7680 
+7681 <span class="c"># Generate 322 keyset key 320 value as 1/0 indicating its presence/absence or</span>
+7682 <span class="c"># count of its presence in a molecule.</span>
+7683 <span class="c">#</span>
+7684 <span class="c"># Key 320 description: I$I</span>
+7685 <span class="c">#</span>
+<a name="_Generate322KeySetKey320-"></a>7686 <span class="k">sub </span><span class="m">_Generate322KeySetKey320</span> <span class="s">{</span>
+7687   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7688   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7689 
+7690   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7691 <span class="s">}</span>
+7692 
+7693 <span class="c"># Generate 322 keyset key 321 value as 1/0 indicating its presence/absence or</span>
+7694 <span class="c"># count of its presence in a molecule.</span>
+7695 <span class="c">#</span>
+7696 <span class="c"># Key 321 description: I$X</span>
+7697 <span class="c">#</span>
+<a name="_Generate322KeySetKey321-"></a>7698 <span class="k">sub </span><span class="m">_Generate322KeySetKey321</span> <span class="s">{</span>
+7699   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7700   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7701 
+7702   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7703 <span class="s">}</span>
+7704 
+7705 <span class="c"># Generate 322 keyset key 322 value as 1/0 indicating its presence/absence or</span>
+7706 <span class="c"># count of its presence in a molecule.</span>
+7707 <span class="c">#</span>
+7708 <span class="c"># Key 322 description: X$X</span>
+7709 <span class="c">#</span>
+<a name="_Generate322KeySetKey322-"></a>7710 <span class="k">sub </span><span class="m">_Generate322KeySetKey322</span> <span class="s">{</span>
+7711   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7712   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
+7713 
+7714   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
+7715 <span class="s">}</span>
+7716 
+7717 <span class="c"># A : Any valid perodic table elemnet symbol</span>
+<a name="_IsAtom-"></a>7718 <span class="k">sub </span><span class="m">_IsAtom</span> <span class="s">{</span>
+7719   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Atom</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7720 
+7721   <span class="k">return</span> <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
+7722 <span class="s">}</span>
+7723 
+7724 <span class="c"># Q  : Hetro atoms; any non-C or non-H atom</span>
+<a name="_IsHeteroAtom-"></a>7725 <span class="k">sub </span><span class="m">_IsHeteroAtom</span> <span class="s">{</span>
+7726   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Atom</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7727 
+7728   <span class="k">return</span> <span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span> =~ <span class="q">/^(1|6)$/</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="sc">;</span>
+7729 <span class="s">}</span>
+7730 
+7731 <span class="c"># X  : Halogens; F, Cl, Br, I</span>
+<a name="_IsHalogenAtom-"></a>7732 <span class="k">sub </span><span class="m">_IsHalogenAtom</span> <span class="s">{</span>
+7733   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Atom</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7734 
+7735   <span class="k">return</span> <span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span> =~ <span class="q">/^(9|17|35|53)$/</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
+7736 <span class="s">}</span>
+7737 
+7738 <span class="c"># Z  : Others; other than H, C, N, O, Si, P, S, F, Cl, Br, I</span>
+<a name="_IsOtherAtom-"></a>7739 <span class="k">sub </span><span class="m">_IsOtherAtom</span> <span class="s">{</span>
+7740   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Atom</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7741 
+7742   <span class="k">return</span> <span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span> =~ <span class="q">/^(1|6|7|8|9|14|15|16|17|35|53)$/</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="sc">;</span>
+7743 <span class="s">}</span>
+7744 
+7745 <span class="c"># Detect atom keys like Cl, Br and so on...</span>
+7746 <span class="c">#</span>
+<a name="_DetectAtomKeys-"></a>7747 <span class="k">sub </span><span class="m">_DetectAtomKeys</span> <span class="s">{</span>
+7748   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$AtomSymbol</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7749   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span>
+7750 
+7751   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+7752   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+7753     <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$AtomSymbol</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+7754       <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span>
+7755     <span class="s">}</span>
+7756     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$IsInRing</span><span class="s">)</span> &amp;&amp; <span class="i">$IsInRing</span> &amp;&amp; !<span class="i">$Atom</span><span class="i">-&gt;IsInRing</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+7757       <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span>
+7758     <span class="s">}</span>
+7759     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> <span class="s">{</span>
+7760       <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomMinHydrogenCountMatch</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+7761         <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span>
+7762       <span class="s">}</span>
+7763     <span class="s">}</span>
+7764     <span class="i">$KeyValue</span>++<span class="sc">;</span>
+7765     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> &amp;&amp; <span class="i">$KeyValue</span> &lt; <span class="i">$MinKeyCount</span><span class="s">)</span> <span class="s">{</span>
+7766       <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span>
+7767     <span class="s">}</span>
+7768     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+7769       <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+7770       <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+7771     <span class="s">}</span>
+7772   <span class="s">}</span>
+7773   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+7774 <span class="s">}</span>
+7775 
+7776 <span class="c"># Detect bond keys like S-S, N-O and so on...</span>
+7777 <span class="c">#</span>
+<a name="_DetectBondKeys-"></a>7778 <span class="k">sub </span><span class="m">_DetectBondKeys</span> <span class="s">{</span>
+7779   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7780   <span class="k">my</span><span class="s">(</span><span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$Atom2</span><span class="cm">,</span> <span class="i">$Bond</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="s">)</span><span class="sc">;</span>
+7781 
+7782   <span class="i">$MatchSpecifiedAtomOrder</span> = <span class="n">0</span><span class="sc">;</span>
+7783 
+7784   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+7785   <span class="j">BOND:</span> <span class="k">for</span> <span class="i">$Bond</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Bonds</span>}}<span class="s">)</span> <span class="s">{</span>
+7786     <span class="s">(</span><span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$Atom2</span><span class="s">)</span> = <span class="i">$Bond</span><span class="i">-&gt;GetAtoms</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+7787     <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoBondAtomsMatchBondSymbols</span><span class="s">(</span><span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$Atom2</span><span class="cm">,</span> <span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="cm">,</span> <span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+7788       <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span>
+7789     <span class="s">}</span>
+7790     <span class="i">$KeyValue</span>++<span class="sc">;</span>
+7791     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> &amp;&amp; <span class="i">$KeyValue</span> &lt; <span class="i">$MinKeyCount</span><span class="s">)</span> <span class="s">{</span>
+7792       <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span>
+7793     <span class="s">}</span>
+7794     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+7795       <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+7796       <span class="k">last</span> <span class="j">BOND</span><span class="sc">;</span>
+7797     <span class="s">}</span>
+7798   <span class="s">}</span>
+7799   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+7800 <span class="s">}</span>
+7801 
+7802 <span class="c"># Detect atom neighborhood keys like ON(C)C, OC(O)O and so on.</span>
+7803 <span class="c">#</span>
+<a name="_DetectAtomNeighborhoodKeys-"></a>7804 <span class="k">sub </span><span class="m">_DetectAtomNeighborhoodKeys</span> <span class="s">{</span>
+7805   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$NbrAtomSymbolsRef</span><span class="cm">,</span> <span class="i">$NbrBondSymbolsRef</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$NbrAtomMinHydrogenCountRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7806   <span class="k">my</span><span class="s">(</span><span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$CentralAtom</span><span class="s">)</span><span class="sc">;</span>
+7807 
+7808   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+7809 
+7810   <span class="j">CENTRALATOM:</span> <span class="k">for</span> <span class="i">$CentralAtom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+7811     <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomNeighborhoodMatch</span><span class="s">(</span><span class="i">$CentralAtom</span><span class="cm">,</span> <span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$NbrAtomSymbolsRef</span><span class="cm">,</span> <span class="i">$NbrBondSymbolsRef</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$NbrAtomMinHydrogenCountRef</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+7812       <span class="k">next</span> <span class="j">CENTRALATOM</span><span class="sc">;</span>
+7813     <span class="s">}</span>
+7814     <span class="i">$KeyValue</span>++<span class="sc">;</span>
+7815     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> &amp;&amp; <span class="i">$KeyValue</span> &lt; <span class="i">$MinKeyCount</span><span class="s">)</span> <span class="s">{</span>
+7816       <span class="k">next</span> <span class="j">CENTRALATOM</span><span class="sc">;</span>
+7817     <span class="s">}</span>
+7818     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+7819       <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+7820       <span class="k">last</span> <span class="j">CENTRALATOM</span><span class="sc">;</span>
+7821     <span class="s">}</span>
+7822   <span class="s">}</span>
+7823   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+7824 <span class="s">}</span>
+7825 
+7826 <span class="c"># Detect bond neighborhood keys like A%Anot%A%A and so on.</span>
+7827 <span class="c">#</span>
+<a name="_DetectBondNeighborhoodKeys-"></a>7828 <span class="k">sub </span><span class="m">_DetectBondNeighborhoodKeys</span> <span class="s">{</span>
+7829   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$NbrAtomSymbolsRef</span><span class="cm">,</span> <span class="i">$NbrBondSymbolsRef</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$BondAtomMinHydrogenCountRef</span><span class="cm">,</span> <span class="i">$NbrsMinHydrogenCountRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7830   <span class="k">my</span><span class="s">(</span><span class="i">$BondAtomIndex</span><span class="cm">,</span> <span class="i">$BondAtom1</span><span class="cm">,</span> <span class="i">$BondAtom2</span><span class="cm">,</span> <span class="i">$MatchedBondAtom1</span><span class="cm">,</span> <span class="i">$MatchedBondAtom2</span><span class="cm">,</span> <span class="i">$BondAtom</span><span class="cm">,</span> <span class="i">$Bond</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$BondAtomSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="cm">,</span> <span class="i">$BondAtom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$BondAtom2MinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="cm">,</span> <span class="i">@NbrsToExcludeFromMatch</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrMinHydrogenCount</span><span class="cm">,</span> <span class="s">)</span><span class="sc">;</span>
+7831 
+7832   <span class="i">$MatchSpecifiedAtomOrder</span> = <span class="n">1</span><span class="sc">;</span>
+7833   <span class="s">(</span><span class="i">$BondAtom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$BondAtom2MinHydrogenCount</span><span class="s">)</span> = <span class="k">defined</span><span class="s">(</span><span class="i">$BondAtomMinHydrogenCountRef</span><span class="s">)</span> ? <span class="s">(</span> <span class="i">@</span>{<span class="i">$BondAtomMinHydrogenCountRef</span>} <span class="s">)</span> <span class="co">:</span> <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
+7834 
+7835   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+7836   <span class="j">BOND:</span> <span class="k">for</span> <span class="i">$Bond</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Bonds</span>}}<span class="s">)</span> <span class="s">{</span>
+7837     <span class="s">(</span><span class="i">$BondAtom1</span><span class="cm">,</span> <span class="i">$BondAtom2</span><span class="s">)</span> = <span class="i">$Bond</span><span class="i">-&gt;GetAtoms</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+7838 
+7839     <span class="c"># Match bond first...</span>
+7840     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span><span class="i">-&gt;_DoBondAtomsMatchBondSymbols</span><span class="s">(</span><span class="i">$BondAtom1</span><span class="cm">,</span> <span class="i">$BondAtom2</span><span class="cm">,</span> <span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="cm">,</span> <span class="i">$BondAtom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$BondAtom2MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+7841       <span class="s">(</span><span class="i">$MatchedBondAtom1</span><span class="cm">,</span> <span class="i">$MatchedBondAtom2</span><span class="s">)</span> = <span class="s">(</span><span class="i">$BondAtom1</span><span class="cm">,</span> <span class="i">$BondAtom2</span><span class="s">)</span><span class="sc">;</span>
+7842     <span class="s">}</span>
+7843     <span class="k">elsif</span> <span class="s">(</span><span class="i">$This</span><span class="i">-&gt;_DoBondAtomsMatchBondSymbols</span><span class="s">(</span><span class="i">$BondAtom2</span><span class="cm">,</span> <span class="i">$BondAtom1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="cm">,</span> <span class="i">$BondAtom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$BondAtom2MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+7844       <span class="s">(</span><span class="i">$MatchedBondAtom1</span><span class="cm">,</span> <span class="i">$MatchedBondAtom2</span><span class="s">)</span> = <span class="s">(</span><span class="i">$BondAtom2</span><span class="cm">,</span> <span class="i">$BondAtom1</span><span class="s">)</span><span class="sc">;</span>
+7845     <span class="s">}</span>
+7846     <span class="k">else</span> <span class="s">{</span>
+7847       <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span>
+7848     <span class="s">}</span>
+7849     <span class="c"># Match neighbors of bonded atoms...</span>
+7850     <span class="k">for</span> <span class="i">$BondAtomIndex</span> <span class="s">(</span><span class="n">0</span> .. <span class="n">1</span><span class="s">)</span> <span class="s">{</span>
+7851       <span class="i">$MinHydrogenCount</span> = <span class="k">undef</span><span class="sc">;</span>
+7852       <span class="i">@NbrsToExcludeFromMatch</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+7853 
+7854       <span class="k">if</span> <span class="s">(</span><span class="i">$BondAtomIndex</span> == <span class="n">0</span><span class="s">)</span> <span class="s">{</span>
+7855         <span class="i">$BondAtom</span> = <span class="i">$MatchedBondAtom1</span><span class="sc">;</span>
+7856         <span class="i">$BondAtomSymbol</span> = <span class="i">$BondAtomSymbol1</span><span class="sc">;</span>
+7857         <span class="k">push</span> <span class="i">@NbrsToExcludeFromMatch</span><span class="cm">,</span> <span class="i">$MatchedBondAtom2</span><span class="sc">;</span>
+7858       <span class="s">}</span>
+7859       <span class="k">elsif</span> <span class="s">(</span><span class="i">$BondAtomIndex</span> == <span class="n">1</span><span class="s">)</span> <span class="s">{</span>
+7860         <span class="i">$BondAtom</span> = <span class="i">$MatchedBondAtom2</span><span class="sc">;</span>
+7861         <span class="i">$BondAtomSymbol</span> = <span class="i">$BondAtomSymbol2</span><span class="sc">;</span>
+7862         <span class="k">push</span> <span class="i">@NbrsToExcludeFromMatch</span><span class="cm">,</span> <span class="i">$MatchedBondAtom1</span><span class="sc">;</span>
+7863       <span class="s">}</span>
+7864 
+7865       <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrAtomSymbolsRef</span><span class="s">)</span> &amp;&amp; <span class="k">defined</span><span class="s">(</span><span class="i">$NbrAtomSymbolsRef</span>-&gt;[<span class="i">$BondAtomIndex</span>]<span class="s">)</span><span class="s">)</span> ? <span class="i">@</span>{<span class="i">$NbrAtomSymbolsRef</span>-&gt;[<span class="i">$BondAtomIndex</span>]} <span class="co">:</span> <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+7866       <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrBondSymbolsRef</span><span class="s">)</span> &amp;&amp; <span class="k">defined</span><span class="s">(</span><span class="i">$NbrBondSymbolsRef</span>-&gt;[<span class="i">$BondAtomIndex</span>]<span class="s">)</span> <span class="s">)</span> ? <span class="i">@</span>{<span class="i">$NbrBondSymbolsRef</span>-&gt;[<span class="i">$BondAtomIndex</span>]} <span class="co">:</span> <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+7867       <span class="i">@NbrMinHydrogenCount</span> = <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrsMinHydrogenCountRef</span><span class="s">)</span> &amp;&amp; <span class="k">defined</span><span class="s">(</span><span class="i">$NbrsMinHydrogenCountRef</span>-&gt;[<span class="i">$BondAtomIndex</span>]<span class="s">)</span> <span class="s">)</span> ? <span class="i">@</span>{<span class="i">$NbrsMinHydrogenCountRef</span>-&gt;[<span class="i">$BondAtomIndex</span>]} <span class="co">:</span> <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+7868       <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomNeighborhoodMatch</span><span class="s">(</span><span class="i">$BondAtom</span><span class="cm">,</span> <span class="i">$BondAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrsToExcludeFromMatch</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+7869         <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span>
+7870       <span class="s">}</span>
+7871     <span class="s">}</span>
+7872     <span class="i">$KeyValue</span>++<span class="sc">;</span>
+7873     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> &amp;&amp; <span class="i">$KeyValue</span> &lt; <span class="i">$MinKeyCount</span><span class="s">)</span> <span class="s">{</span>
+7874       <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span>
+7875     <span class="s">}</span>
+7876     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+7877       <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+7878       <span class="k">last</span> <span class="j">BOND</span><span class="sc">;</span>
+7879     <span class="s">}</span>
+7880   <span class="s">}</span>
+7881   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+7882 <span class="s">}</span>
+7883 
+7884 <span class="c"># Detect extended atom neighborhood keys like QHAQH, QHAAQH, and so on...</span>
+7885 <span class="c">#</span>
+<a name="_DetectExtendedAtomNeighborhoodKeys-"></a>7886 <span class="k">sub </span><span class="m">_DetectExtendedAtomNeighborhoodKeys</span> <span class="s">{</span>
+7887   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$CentralAtomsSymbolsRef</span><span class="cm">,</span> <span class="i">$CentralAtomsBondSymbolsRef</span><span class="cm">,</span> <span class="i">$CentralAtomsMinHydrogenCountRef</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$NbrAtomSymbolsRef</span><span class="cm">,</span> <span class="i">$NbrBondSymbolsRef</span><span class="cm">,</span> <span class="i">$NbrsMinHydrogenCountRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7888   <span class="k">my</span><span class="s">(</span><span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$FirstCentralAtomIndex</span><span class="cm">,</span> <span class="i">$LastCentralAtomIndex</span><span class="cm">,</span> <span class="i">$NumOfCentralAtoms</span><span class="s">)</span><span class="sc">;</span>
+7889 
+7890   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
+7891 
+7892   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+7893   <span class="i">$NumOfCentralAtoms</span> = <span class="i">@</span>{<span class="i">$CentralAtomsSymbolsRef</span>}<span class="sc">;</span>
+7894   <span class="i">$FirstCentralAtomIndex</span> = <span class="n">0</span><span class="sc">;</span>
+7895   <span class="i">$LastCentralAtomIndex</span> = <span class="i">$NumOfCentralAtoms</span> - <span class="n">1</span><span class="sc">;</span>
+7896 
+7897   <span class="c"># Retrieve first central atom information...</span>
+7898   <span class="k">my</span><span class="s">(</span><span class="i">$FirstCentralAtomSymbol</span><span class="cm">,</span> <span class="i">$FirstCentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+7899   <span class="i">$FirstCentralAtomSymbol</span> = <span class="i">$CentralAtomsSymbolsRef</span>-&gt;[<span class="i">$FirstCentralAtomIndex</span>]<span class="sc">;</span>
+7900   <span class="i">$FirstCentralAtomMinHydrogenCount</span> = <span class="k">defined</span><span class="s">(</span><span class="i">$CentralAtomsMinHydrogenCountRef</span><span class="s">)</span> ? <span class="i">$CentralAtomsMinHydrogenCountRef</span>-&gt;[<span class="i">$FirstCentralAtomIndex</span>] <span class="co">:</span> <span class="k">undef</span><span class="sc">;</span>
+7901 
+7902   <span class="c"># Retrieve last central atom information...</span>
+7903   <span class="k">my</span><span class="s">(</span><span class="i">$LastCentralAtomSymbol</span><span class="cm">,</span> <span class="i">$LastCentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
+7904   <span class="i">$LastCentralAtomSymbol</span> = <span class="i">$CentralAtomsSymbolsRef</span>-&gt;[<span class="i">$LastCentralAtomIndex</span>]<span class="sc">;</span>
+7905   <span class="i">$LastCentralAtomMinHydrogenCount</span> = <span class="k">defined</span><span class="s">(</span><span class="i">$CentralAtomsMinHydrogenCountRef</span><span class="s">)</span> ? <span class="i">$CentralAtomsMinHydrogenCountRef</span>-&gt;[<span class="i">$LastCentralAtomIndex</span>] <span class="co">:</span> <span class="k">undef</span><span class="sc">;</span>
+7906 
+7907   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$AtomPathRef</span><span class="cm">,</span> <span class="i">$AtomPathsRef</span><span class="cm">,</span> <span class="i">$FirstAtomIndex</span><span class="cm">,</span> <span class="i">$LastAtomIndex</span><span class="cm">,</span> <span class="i">$AtomIndex</span><span class="cm">,</span> <span class="i">$FirstPathAtom</span><span class="cm">,</span> <span class="i">$LastPathAtom</span><span class="cm">,</span> <span class="i">$FirstPathAtomID</span><span class="cm">,</span> <span class="i">$LastPathAtomID</span><span class="cm">,</span> <span class="i">$DetectedPathID</span><span class="cm">,</span> <span class="i">$PathAtom</span><span class="cm">,</span> <span class="i">$NextPathAtom</span><span class="cm">,</span> <span class="i">$PreviousPathAtom</span><span class="cm">,</span> <span class="i">$AtomSymbol</span><span class="cm">,</span> <span class="i">$NextAtomSymbol</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="cm">,</span> <span class="i">@NbrsToExcludeFromMatch</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrMinHydrogenCount</span><span class="cm">,</span> <span class="i">%AlreadyDetectedPaths</span><span class="s">)</span><span class="sc">;</span>
+7908 
+7909   <span class="c"># Go over all the atoms...</span>
+7910   <span class="c">#</span>
+7911   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
+7912     <span class="c"># Match first central atom...</span>
+7913     <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomNeighborhoodMatch</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$FirstCentralAtomSymbol</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="i">$FirstCentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+7914       <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span>
+7915     <span class="s">}</span>
+7916     <span class="c"># Get atom paths starting from matched central atom with length equal to NumOfCentralAtoms...</span>
+7917     <span class="c">#</span>
+7918     <span class="i">$AtomPathsRef</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetAllAtomPathsStartingAtWithLength</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$NumOfCentralAtoms</span><span class="s">)</span><span class="sc">;</span>
+7919     <span class="k">if</span> <span class="s">(</span>!<span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$AtomPathsRef</span><span class="s">)</span> &amp;&amp; <span class="i">@</span>{<span class="i">$AtomPathsRef</span>}<span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+7920       <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span>
+7921     <span class="s">}</span>
+7922     <span class="j">ATOMPATH:</span> <span class="k">for</span> <span class="i">$AtomPathRef</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$AtomPathsRef</span>}<span class="s">)</span> <span class="s">{</span>
+7923       <span class="i">$FirstAtomIndex</span> = <span class="n">0</span><span class="sc">;</span>
+7924       <span class="i">$FirstPathAtom</span> = <span class="i">$AtomPathRef</span>-&gt;[<span class="i">$FirstAtomIndex</span>]<span class="sc">;</span>
+7925       <span class="i">$LastAtomIndex</span> = <span class="i">@</span>{<span class="i">$AtomPathRef</span>} - <span class="n">1</span><span class="sc">;</span>
+7926       <span class="i">$LastPathAtom</span> = <span class="i">$AtomPathRef</span>-&gt;[<span class="i">$LastAtomIndex</span>]<span class="sc">;</span>
+7927 
+7928       <span class="c"># Match last central atom to the last atom in path...</span>
+7929       <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomNeighborhoodMatch</span><span class="s">(</span><span class="i">$LastPathAtom</span><span class="cm">,</span> <span class="i">$LastCentralAtomSymbol</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="i">$LastCentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+7930         <span class="k">next</span> <span class="j">ATOMPATH</span><span class="sc">;</span>
+7931       <span class="s">}</span>
+7932 
+7933       <span class="c"># Match other path atoms with central atoms..</span>
+7934       <span class="k">for</span> <span class="i">$AtomIndex</span> <span class="s">(</span><span class="i">$FirstAtomIndex</span> .. <span class="i">$LastAtomIndex</span><span class="s">)</span> <span class="s">{</span>
+7935         <span class="i">$PathAtom</span> = <span class="i">$AtomPathRef</span>-&gt;[<span class="i">$AtomIndex</span>]<span class="sc">;</span>
+7936         <span class="i">$AtomSymbol</span> = <span class="i">$CentralAtomsSymbolsRef</span>-&gt;[<span class="i">$AtomIndex</span>]<span class="sc">;</span>
+7937         <span class="i">$MinHydrogenCount</span> = <span class="k">defined</span><span class="s">(</span><span class="i">$CentralAtomsMinHydrogenCountRef</span><span class="s">)</span> ? <span class="i">$CentralAtomsMinHydrogenCountRef</span>-&gt;[<span class="i">$AtomIndex</span>] <span class="co">:</span> <span class="k">undef</span><span class="sc">;</span>
+7938 
+7939         <span class="i">@NbrsToExcludeFromMatch</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+7940         <span class="k">if</span> <span class="s">(</span><span class="i">$AtomIndex</span> == <span class="i">$FirstAtomIndex</span><span class="s">)</span> <span class="s">{</span>
+7941           <span class="i">$NextPathAtom</span> = <span class="i">$AtomPathRef</span>-&gt;[<span class="i">$AtomIndex</span> + <span class="n">1</span>]<span class="sc">;</span> <span class="i">$PreviousPathAtom</span> = <span class="k">undef</span><span class="sc">;</span>
+7942           <span class="k">push</span> <span class="i">@NbrsToExcludeFromMatch</span><span class="cm">,</span> <span class="i">$NextPathAtom</span><span class="sc">;</span>
+7943         <span class="s">}</span>
+7944         <span class="k">elsif</span> <span class="s">(</span><span class="i">$AtomIndex</span> == <span class="i">$LastAtomIndex</span><span class="s">)</span> <span class="s">{</span>
+7945           <span class="i">$NextPathAtom</span> = <span class="k">undef</span><span class="sc">;</span> <span class="i">$PreviousPathAtom</span> = <span class="i">$AtomPathRef</span>-&gt;[<span class="i">$AtomIndex</span> - <span class="n">1</span>]<span class="sc">;</span>
+7946           <span class="k">push</span> <span class="i">@NbrsToExcludeFromMatch</span><span class="cm">,</span> <span class="i">$PreviousPathAtom</span><span class="sc">;</span>
+7947         <span class="s">}</span>
+7948         <span class="k">else</span> <span class="s">{</span>
+7949           <span class="i">$NextPathAtom</span> = <span class="i">$AtomPathRef</span>-&gt;[<span class="i">$AtomIndex</span> + <span class="n">1</span>]<span class="sc">;</span> <span class="i">$PreviousPathAtom</span> = <span class="i">$AtomPathRef</span>-&gt;[<span class="i">$AtomIndex</span> - <span class="n">1</span>]<span class="sc">;</span>
+7950           <span class="k">push</span> <span class="i">@NbrsToExcludeFromMatch</span><span class="cm">,</span> <span class="s">(</span><span class="i">$PreviousPathAtom</span><span class="cm">,</span> <span class="i">$NextPathAtom</span><span class="s">)</span><span class="sc">;</span>
+7951         <span class="s">}</span>
+7952 
+7953         <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrAtomSymbolsRef</span><span class="s">)</span> &amp;&amp; <span class="k">defined</span><span class="s">(</span><span class="i">$NbrAtomSymbolsRef</span>-&gt;[<span class="i">$AtomIndex</span>]<span class="s">)</span><span class="s">)</span> ? <span class="i">@</span>{<span class="i">$NbrAtomSymbolsRef</span>-&gt;[<span class="i">$AtomIndex</span>]} <span class="co">:</span> <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+7954         <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrBondSymbolsRef</span><span class="s">)</span> &amp;&amp; <span class="k">defined</span><span class="s">(</span><span class="i">$NbrBondSymbolsRef</span>-&gt;[<span class="i">$AtomIndex</span>]<span class="s">)</span> <span class="s">)</span> ? <span class="i">@</span>{<span class="i">$NbrBondSymbolsRef</span>-&gt;[<span class="i">$AtomIndex</span>]} <span class="co">:</span> <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+7955         <span class="i">@NbrMinHydrogenCount</span> = <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrsMinHydrogenCountRef</span><span class="s">)</span> &amp;&amp; <span class="k">defined</span><span class="s">(</span><span class="i">$NbrsMinHydrogenCountRef</span>-&gt;[<span class="i">$AtomIndex</span>]<span class="s">)</span> <span class="s">)</span> ? <span class="i">@</span>{<span class="i">$NbrsMinHydrogenCountRef</span>-&gt;[<span class="i">$AtomIndex</span>]} <span class="co">:</span> <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+7956 
+7957         <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomNeighborhoodMatch</span><span class="s">(</span><span class="i">$PathAtom</span><span class="cm">,</span> <span class="i">$AtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrsToExcludeFromMatch</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+7958           <span class="k">next</span> <span class="j">ATOMPATH</span><span class="sc">;</span>
+7959         <span class="s">}</span>
+7960         <span class="c"># Match path bond symbols...</span>
+7961         <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$CentralAtomsBondSymbolsRef</span><span class="s">)</span> &amp;&amp; <span class="s">(</span><span class="i">$AtomIndex</span> &lt; <span class="i">$LastAtomIndex</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+7962           <span class="i">$NextAtomSymbol</span> = <span class="i">$CentralAtomsSymbolsRef</span>-&gt;[<span class="i">$AtomIndex</span> + <span class="n">1</span>]<span class="sc">;</span>
+7963           <span class="i">$BondSymbol</span> = <span class="i">$CentralAtomsBondSymbolsRef</span>-&gt;[<span class="i">$AtomIndex</span>]<span class="sc">;</span>
+7964           <span class="i">$MatchSpecifiedAtomOrder</span> = <span class="n">1</span><span class="sc">;</span>
+7965           <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoBondAtomsMatchBondSymbols</span><span class="s">(</span><span class="i">$PathAtom</span><span class="cm">,</span> <span class="i">$NextPathAtom</span><span class="cm">,</span> <span class="i">$AtomSymbol</span><span class="cm">,</span> <span class="i">$NextAtomSymbol</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+7966             <span class="k">next</span> <span class="j">ATOMPATH</span><span class="sc">;</span>
+7967           <span class="s">}</span>
+7968         <span class="s">}</span>
+7969       <span class="s">}</span>
+7970       <span class="c"># Keep track of the first and last atom ID in the matched path to avoid double counting of paths...</span>
+7971       <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> || !<span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+7972         <span class="i">$FirstPathAtomID</span> = <span class="i">$FirstPathAtom</span><span class="i">-&gt;GetID</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> <span class="i">$LastPathAtomID</span> = <span class="i">$LastPathAtom</span><span class="i">-&gt;GetID</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+7973         <span class="i">$DetectedPathID</span> = <span class="s">(</span><span class="i">$FirstPathAtomID</span> &lt; <span class="i">$LastPathAtomID</span><span class="s">)</span> ? <span class="q">&quot;${FirstPathAtomID}-${LastPathAtomID}&quot;</span> <span class="co">:</span> <span class="q">&quot;${LastPathAtomID}-${FirstPathAtomID}&quot;</span><span class="sc">;</span>
+7974         <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$AlreadyDetectedPaths</span>{<span class="i">$DetectedPathID</span>}<span class="s">)</span> <span class="s">{</span>
+7975           <span class="i">$AlreadyDetectedPaths</span>{<span class="i">$DetectedPathID</span>} += <span class="n">1</span><span class="sc">;</span>
+7976           <span class="k">next</span> <span class="j">ATOMPATH</span><span class="sc">;</span>
+7977         <span class="s">}</span>
+7978         <span class="i">$AlreadyDetectedPaths</span>{<span class="i">$DetectedPathID</span>} = <span class="n">1</span><span class="sc">;</span>
+7979       <span class="s">}</span>
+7980 
+7981       <span class="i">$KeyValue</span>++<span class="sc">;</span>
+7982       <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> &amp;&amp; <span class="i">$KeyValue</span> &lt; <span class="i">$MinKeyCount</span><span class="s">)</span> <span class="s">{</span>
+7983         <span class="k">next</span> <span class="j">ATOMPATH</span><span class="sc">;</span>
+7984       <span class="s">}</span>
+7985       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
+7986         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
+7987         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
+7988       <span class="s">}</span>
+7989     <span class="s">}</span>
+7990   <span class="s">}</span>
+7991   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
+7992 <span class="s">}</span>
+7993 
+7994 <span class="c"># Go over the atoms attached to central atom and match &#39;em against specified</span>
+7995 <span class="c"># neighborhood atom symbol and bond symbols...</span>
+7996 <span class="c">#</span>
+<a name="_DoesAtomNeighborhoodMatch-"></a>7997 <span class="k">sub </span><span class="m">_DoesAtomNeighborhoodMatch</span> <span class="s">{</span>
+7998   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$CentralAtom</span><span class="cm">,</span> <span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$NbrAtomSymbolsRef</span><span class="cm">,</span> <span class="i">$NbrBondSymbolsRef</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$NbrAtomMinHydrogenCountRef</span><span class="cm">,</span> <span class="i">$NbrsToExcludeRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+7999 
+8000   <span class="c"># Match central atom first...</span>
+8001   <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$CentralAtom</span><span class="cm">,</span> <span class="i">$CentralAtomSymbol</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+8002     <span class="k">return</span> <span class="n">0</span><span class="sc">;</span>
+8003   <span class="s">}</span>
+8004   <span class="k">if</span> <span class="s">(</span><span class="k">defined</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span> <span class="s">{</span>
+8005     <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomMinHydrogenCountMatch</span><span class="s">(</span><span class="i">$CentralAtom</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+8006       <span class="k">return</span> <span class="n">0</span><span class="sc">;</span>
+8007     <span class="s">}</span>
+8008   <span class="s">}</span>
+8009   <span class="k">if</span> <span class="s">(</span>!<span class="k">defined</span> <span class="i">$NbrAtomSymbolsRef</span><span class="s">)</span> <span class="s">{</span>
+8010     <span class="c"># No neighbors to match...</span>
+8011     <span class="k">return</span> <span class="n">1</span><span class="sc">;</span>
+8012   <span class="s">}</span>
+8013 
+8014   <span class="c"># Match neighbors...</span>
+8015   <span class="k">my</span><span class="s">(</span><span class="i">$NbrAtom</span><span class="cm">,</span> <span class="i">$Index</span><span class="cm">,</span> <span class="i">$NbrAtomSymbol</span><span class="cm">,</span> <span class="i">$NbrBondSymbol</span><span class="cm">,</span> <span class="i">$NbrAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$NbrAtomMatchCount</span><span class="cm">,</span> <span class="i">$MinNbrAtomMatchCount</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="cm">,</span> <span class="i">@CentralAtomNeighbors</span><span class="cm">,</span> <span class="i">%NbrAtomAlreadyMatchedMap</span><span class="s">)</span><span class="sc">;</span>
+8016 
+8017   <span class="i">$MinNbrAtomMatchCount</span> = <span class="i">@$NbrAtomSymbolsRef</span><span class="sc">;</span>
+8018   <span class="k">if</span> <span class="s">(</span>!<span class="i">$MinNbrAtomMatchCount</span><span class="s">)</span> <span class="s">{</span>
+8019     <span class="c"># No neighbors to match...</span>
+8020     <span class="k">return</span> <span class="n">1</span><span class="sc">;</span>
+8021   <span class="s">}</span>
+8022 
+8023   <span class="i">$NbrAtomMatchCount</span> = <span class="n">0</span><span class="sc">;</span>
+8024 
+8025   <span class="i">%NbrAtomAlreadyMatchedMap</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+8026   <span class="i">$MatchSpecifiedAtomOrder</span> = <span class="n">1</span><span class="sc">;</span>
+8027 
+8028   <span class="i">@CentralAtomNeighbors</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+8029   <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrsToExcludeRef</span><span class="s">)</span> &amp;&amp; <span class="i">@</span>{<span class="i">$NbrsToExcludeRef</span>}<span class="s">)</span> <span class="s">{</span>
+8030     <span class="k">push</span> <span class="i">@CentralAtomNeighbors</span><span class="cm">,</span> <span class="i">$CentralAtom</span><span class="i">-&gt;GetNeighbors</span><span class="s">(</span><span class="i">@</span>{<span class="i">$NbrsToExcludeRef</span>}<span class="s">)</span><span class="sc">;</span>
+8031   <span class="s">}</span>
+8032   <span class="k">else</span> <span class="s">{</span>
+8033     <span class="k">push</span> <span class="i">@CentralAtomNeighbors</span><span class="cm">,</span> <span class="i">$CentralAtom</span><span class="i">-&gt;GetNeighbors</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+8034   <span class="s">}</span>
+8035 
+8036   <span class="j">NBRATOM:</span> <span class="k">for</span> <span class="i">$NbrAtom</span> <span class="s">(</span><span class="i">@CentralAtomNeighbors</span><span class="s">)</span> <span class="s">{</span>
+8037     <span class="j">NBRATOMSYMBOL:</span> <span class="k">for</span> <span class="i">$Index</span> <span class="s">(</span><span class="n">0</span> .. <span class="s">(</span><span class="i">$MinNbrAtomMatchCount</span> - <span class="n">1</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+8038       <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$NbrAtomAlreadyMatchedMap</span>{<span class="i">$Index</span>}<span class="s">)</span> <span class="s">{</span>
+8039         <span class="k">next</span> <span class="j">NBRATOMSYMBOL</span><span class="sc">;</span>
+8040       <span class="s">}</span>
+8041       <span class="i">$NbrAtomSymbol</span> = <span class="i">$NbrAtomSymbolsRef</span>-&gt;[<span class="i">$Index</span>]<span class="sc">;</span>
+8042       <span class="i">$NbrBondSymbol</span> = <span class="i">$NbrBondSymbolsRef</span>-&gt;[<span class="i">$Index</span>]<span class="sc">;</span>
+8043       <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoBondAtomsMatchBondSymbols</span><span class="s">(</span><span class="i">$CentralAtom</span><span class="cm">,</span> <span class="i">$NbrAtom</span><span class="cm">,</span> <span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$NbrAtomSymbol</span><span class="cm">,</span> <span class="i">$NbrBondSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+8044         <span class="k">next</span> <span class="j">NBRATOMSYMBOL</span><span class="sc">;</span>
+8045       <span class="s">}</span>
+8046 
+8047       <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrAtomMinHydrogenCountRef</span><span class="s">)</span> &amp;&amp; <span class="i">$NbrAtomMinHydrogenCountRef</span>-&gt;[<span class="i">$Index</span>]<span class="s">)</span> <span class="s">{</span>
+8048         <span class="i">$NbrAtomMinHydrogenCount</span> = <span class="i">$NbrAtomMinHydrogenCountRef</span>-&gt;[<span class="i">$Index</span>]<span class="sc">;</span>
+8049         <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomMinHydrogenCountMatch</span><span class="s">(</span><span class="i">$NbrAtom</span><span class="cm">,</span> <span class="i">$NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+8050           <span class="k">next</span> <span class="j">NBRATOMSYMBOL</span><span class="sc">;</span>
+8051         <span class="s">}</span>
+8052       <span class="s">}</span>
+8053       <span class="i">$NbrAtomAlreadyMatchedMap</span>{<span class="i">$Index</span>} = <span class="i">$Index</span><span class="sc">;</span>
+8054       <span class="i">$NbrAtomMatchCount</span>++<span class="sc">;</span>
+8055 
+8056       <span class="k">if</span> <span class="s">(</span><span class="i">$NbrAtomMatchCount</span> == <span class="i">$MinNbrAtomMatchCount</span><span class="s">)</span> <span class="s">{</span>
+8057         <span class="k">last</span> <span class="j">NBRATOM</span><span class="sc">;</span>
+8058       <span class="s">}</span>
+8059       <span class="k">next</span> <span class="j">NBRATOM</span><span class="sc">;</span>
+8060     <span class="s">}</span>
+8061   <span class="s">}</span>
+8062 
+8063   <span class="k">return</span> <span class="s">(</span><span class="i">$NbrAtomMatchCount</span> == <span class="i">$MinNbrAtomMatchCount</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
+8064 <span class="s">}</span>
+8065 
+8066 <span class="c"># Checks whether bond atoms match bond symbols...</span>
+8067 <span class="c">#</span>
+<a name="_DoBondAtomsMatchBondSymbols-"></a>8068 <span class="k">sub </span><span class="m">_DoBondAtomsMatchBondSymbols</span> <span class="s">{</span>
+8069   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$Atom2</span><span class="cm">,</span> <span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="cm">,</span> <span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+8070   <span class="k">my</span><span class="s">(</span><span class="i">$Status</span><span class="cm">,</span> <span class="i">$ReverseMinHydrogenCountMatch</span><span class="s">)</span><span class="sc">;</span>
+8071 
+8072   <span class="i">$ReverseMinHydrogenCountMatch</span> = <span class="n">0</span><span class="sc">;</span>
+8073 
+8074   <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MatchSpecifiedAtomOrder</span><span class="s">)</span> &amp;&amp; <span class="i">$MatchSpecifiedAtomOrder</span><span class="s">)</span> <span class="s">{</span>
+8075     <span class="k">if</span> <span class="s">(</span>!<span class="s">(</span><span class="i">$This</span><span class="i">-&gt;_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$AtomSymbol1</span><span class="s">)</span> &amp;&amp; <span class="i">$This</span><span class="i">-&gt;_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$Atom2</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="s">)</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+8076       <span class="k">return</span> <span class="n">0</span><span class="sc">;</span>
+8077     <span class="s">}</span>
+8078   <span class="s">}</span>
+8079   <span class="k">else</span> <span class="s">{</span>
+8080     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span><span class="i">-&gt;_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$AtomSymbol1</span><span class="s">)</span> &amp;&amp; <span class="i">$This</span><span class="i">-&gt;_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$Atom2</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+8081       <span class="i">$ReverseMinHydrogenCountMatch</span> = <span class="n">0</span><span class="sc">;</span>
+8082     <span class="s">}</span>
+8083     <span class="k">elsif</span> <span class="s">(</span><span class="i">$This</span><span class="i">-&gt;_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="s">)</span> &amp;&amp; <span class="i">$This</span><span class="i">-&gt;_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$Atom2</span><span class="cm">,</span> <span class="i">$AtomSymbol1</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+8084       <span class="i">$ReverseMinHydrogenCountMatch</span> = <span class="n">1</span><span class="sc">;</span>
+8085     <span class="s">}</span>
+8086     <span class="k">else</span> <span class="s">{</span>
+8087       <span class="k">return</span> <span class="n">0</span><span class="sc">;</span>
+8088     <span class="s">}</span>
+8089   <span class="s">}</span>
+8090 
+8091   <span class="c"># Match any hydrogen count...</span>
+8092   <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$Atom1MinHydrogenCount</span><span class="s">)</span> || <span class="k">defined</span><span class="s">(</span><span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+8093     <span class="k">my</span><span class="s">(</span><span class="i">$MinHydrogenCountMatchAtom1</span><span class="cm">,</span> <span class="i">$MinHydrogenCountMatchAtom2</span><span class="s">)</span><span class="sc">;</span>
+8094 
+8095     <span class="s">(</span><span class="i">$MinHydrogenCountMatchAtom1</span><span class="cm">,</span> <span class="i">$MinHydrogenCountMatchAtom2</span><span class="s">)</span> = <span class="i">$ReverseMinHydrogenCountMatch</span> ? <span class="s">(</span><span class="i">$Atom2</span><span class="cm">,</span> <span class="i">$Atom1</span><span class="s">)</span> <span class="co">:</span> <span class="s">(</span><span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$Atom2</span><span class="s">)</span><span class="sc">;</span>
+8096     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span> <span class="i">$Atom1MinHydrogenCount</span> <span class="s">)</span> <span class="s">{</span>
+8097       <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomMinHydrogenCountMatch</span><span class="s">(</span><span class="i">$MinHydrogenCountMatchAtom1</span><span class="cm">,</span> <span class="i">$Atom1MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+8098         <span class="k">return</span> <span class="n">0</span><span class="sc">;</span>
+8099       <span class="s">}</span>
+8100     <span class="s">}</span>
+8101     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span> <span class="i">$Atom2MinHydrogenCount</span> <span class="s">)</span> <span class="s">{</span>
+8102       <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomMinHydrogenCountMatch</span><span class="s">(</span><span class="i">$MinHydrogenCountMatchAtom2</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+8103         <span class="k">return</span> <span class="n">0</span><span class="sc">;</span>
+8104       <span class="s">}</span>
+8105     <span class="s">}</span>
+8106   <span class="s">}</span>
+8107 
+8108   <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> &amp;&amp; <span class="i">$BondSymbol</span><span class="s">)</span> <span class="s">{</span>
+8109     <span class="k">my</span><span class="s">(</span><span class="i">$Bond</span><span class="s">)</span><span class="sc">;</span>
+8110     <span class="i">$Bond</span> = <span class="i">$Atom1</span><span class="i">-&gt;GetBondToAtom</span><span class="s">(</span><span class="i">$Atom2</span><span class="s">)</span><span class="sc">;</span>
+8111     <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesBondMatchesSymbol</span><span class="s">(</span><span class="i">$Bond</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+8112       <span class="k">return</span> <span class="n">0</span><span class="sc">;</span>
+8113     <span class="s">}</span>
+8114   <span class="s">}</span>
+8115   <span class="k">return</span> <span class="n">1</span><span class="sc">;</span>
+8116 <span class="s">}</span>
+8117 
+8118 <span class="c"># Match both implicit and explicit hydrogens on central atom...</span>
+<a name="_DoesAtomMinHydrogenCountMatch-"></a>8119 <span class="k">sub </span><span class="m">_DoesAtomMinHydrogenCountMatch</span> <span class="s">{</span>
+8120   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Atom</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+8121 
+8122   <span class="k">if</span> <span class="s">(</span>!<span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MinHydrogenCount</span><span class="s">)</span> &amp;&amp; <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
+8123     <span class="k">return</span> <span class="n">0</span><span class="sc">;</span>
+8124   <span class="s">}</span>
+8125   <span class="k">return</span> <span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;GetNumOfHydrogens</span><span class="s">(</span><span class="s">)</span> &lt;  <span class="i">$MinHydrogenCount</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="sc">;</span>
+8126 <span class="s">}</span>
+8127 
+8128 <span class="c"># Checks whether atom matches supported symbol...</span>
+8129 <span class="c">#</span>
+<a name="_DoesAtomMatchesSymbol-"></a>8130 <span class="k">sub </span><span class="m">_DoesAtomMatchesSymbol</span> <span class="s">{</span>
+8131   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Atom</span><span class="cm">,</span> <span class="i">$Symbol</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+8132   <span class="k">my</span><span class="s">(</span><span class="i">$Status</span><span class="s">)</span><span class="sc">;</span>
+8133 
+8134   <span class="i">$Status</span> = <span class="n">0</span><span class="sc">;</span>
+8135   <span class="j">SYMBOL:</span> <span class="s">{</span>
+8136     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^Q$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$This</span><span class="i">-&gt;_IsHeteroAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
+8137     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^X$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$This</span><span class="i">-&gt;_IsHalogenAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
+8138     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^Z$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$This</span><span class="i">-&gt;_IsOtherAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
+8139     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^A$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$This</span><span class="i">-&gt;_IsAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
+8140     <span class="i">$Status</span> = <span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;GetAtomSymbol</span><span class="s">(</span><span class="s">)</span> =~ <span class="q">/^$Symbol$/i</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
+8141   <span class="s">}</span>
+8142   <span class="k">return</span> <span class="i">$Status</span><span class="sc">;</span>
+8143 <span class="s">}</span>
+8144 
+8145 <span class="c"># Checks whether bond matches supported symbol...</span>
+8146 <span class="c">#</span>
+<a name="_DoesBondMatchesSymbol-"></a>8147 <span class="k">sub </span><span class="m">_DoesBondMatchesSymbol</span> <span class="s">{</span>
+8148   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Bond</span><span class="cm">,</span> <span class="i">$Symbol</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+8149   <span class="k">my</span><span class="s">(</span><span class="i">$Status</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
+8150 
+8151   <span class="i">$Status</span> = <span class="n">0</span><span class="sc">;</span>
+8152   <span class="j">SYMBOL:</span> <span class="s">{</span>
+8153     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(1|-)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">-&gt;IsSingle</span><span class="s">(</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
+8154     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(2|=)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">-&gt;IsDouble</span><span class="s">(</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
+8155     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(3|#|T)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">-&gt;IsTriple</span><span class="s">(</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
+8156     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(1.5|%)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">-&gt;IsAromatic</span><span class="s">(</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
+8157 
+8158     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^\~$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="s">(</span><span class="i">$Bond</span><span class="i">-&gt;IsSingle</span><span class="s">(</span><span class="s">)</span> || <span class="i">$Bond</span><span class="i">-&gt;IsDouble</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
+8159 
+8160     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^\$$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">-&gt;IsInRing</span><span class="s">(</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
+8161     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^\!$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">-&gt;IsInRing</span><span class="s">(</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
+8162 
+8163     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(\$-)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="s">(</span><span class="i">$Bond</span><span class="i">-&gt;IsInRing</span><span class="s">(</span><span class="s">)</span> &amp;&amp; <span class="i">$Bond</span><span class="i">-&gt;IsSingle</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
+8164     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(\$=)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="s">(</span><span class="i">$Bond</span><span class="i">-&gt;IsInRing</span><span class="s">(</span><span class="s">)</span> &amp;&amp; <span class="i">$Bond</span><span class="i">-&gt;IsDouble</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
+8165     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(\$#|\$T)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="s">(</span><span class="i">$Bond</span><span class="i">-&gt;IsInRing</span><span class="s">(</span><span class="s">)</span> &amp;&amp; <span class="i">$Bond</span><span class="i">-&gt;IsTriple</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
+8166 
+8167     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(not%)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">-&gt;IsAromatic</span><span class="s">(</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
+8168     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(not%not-)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">-&gt;IsAromatic</span><span class="s">(</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="s">(</span><span class="i">$Bond</span><span class="i">-&gt;IsSingle</span><span class="s">(</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
+8169     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(not%not=)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">-&gt;IsAromatic</span><span class="s">(</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="s">(</span><span class="i">$Bond</span><span class="i">-&gt;IsDouble</span><span class="s">(</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
+8170 
+8171     <span class="i">$Status</span> = <span class="n">0</span><span class="sc">;</span>
+8172   <span class="s">}</span>
+8173   <span class="k">return</span> <span class="i">$Status</span><span class="sc">;</span>
+8174 <span class="s">}</span>
+8175 
+8176 <span class="c"># Cache  appropriate molecule data...</span>
+8177 <span class="c">#</span>
+<a name="_SetupMoleculeDataCache-"></a>8178 <span class="k">sub </span><span class="m">_SetupMoleculeDataCache</span> <span class="s">{</span>
+8179   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+8180 
+8181   <span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}} = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="i">-&gt;GetAtoms</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+8182   <span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Bonds</span>}} = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="i">-&gt;GetBonds</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+8183 
+8184   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
+8185 <span class="s">}</span>
+8186 
+8187 <span class="c"># Clear cached molecule data...</span>
+8188 <span class="c">#</span>
+<a name="_ClearMoleculeDataCache-"></a>8189 <span class="k">sub </span><span class="m">_ClearMoleculeDataCache</span> <span class="s">{</span>
+8190   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+8191 
+8192   <span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+8193   <span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Bonds</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
+8194 
+8195   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
+8196 <span class="s">}</span>
+8197 
+8198 <span class="c"># Return a string containg data for MACCSKeys object...</span>
+<a name="StringifyMACCSKeys-"></a>8199 <span class="k">sub </span><span class="m">StringifyMACCSKeys</span> <span class="s">{</span>
+8200   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
+8201   <span class="k">my</span><span class="s">(</span><span class="i">$MACCSKeysString</span><span class="s">)</span><span class="sc">;</span>
+8202 
+8203   <span class="c"># Type of Keys...</span>
+8204   <span class="i">$MACCSKeysString</span> = <span class="q">&quot;Type: $This-&gt;{Type}; Size: $This-&gt;{Size}&quot;</span><span class="sc">;</span>
+8205 
+8206   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">Type</span>} =~ <span class="q">/^MACCSKeyBits$/i</span><span class="s">)</span> <span class="s">{</span>
+8207     <span class="i">$MACCSKeysString</span> .= <span class="q">&quot;; FingerprintsBitVector: &lt; $This-&gt;{FingerprintsBitVector} &gt;&quot;</span><span class="sc">;</span>
+8208   <span class="s">}</span>
+8209   <span class="k">elsif</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">Type</span>} =~ <span class="q">/^MACCSKeyCount$/i</span><span class="s">)</span> <span class="s">{</span>
+8210     <span class="i">$MACCSKeysString</span> .= <span class="q">&quot;; FingerprintsVector: &lt; $This-&gt;{FingerprintsVector} &gt;&quot;</span><span class="sc">;</span>
+8211   <span class="s">}</span>
+8212 
+8213   <span class="k">return</span> <span class="i">$MACCSKeysString</span><span class="sc">;</span>
+8214 <span class="s">}</span>
+8215 
+<a name="EOF-"></a></pre>
+<p>&nbsp;</p>
+<br />
+<center>
+<img src="../../../images/h2o2.png">
+</center>
+</body>
+</html>