úÎ+$%>      !"#$%&'()*+,-./0123456789:;<=Safe2This model describes molecules with valence bounds>Set of all aliphatic symbols?Set of all aromatic symbolsParses textual representationConvert SMILES to the string@ABCD>?EFGHIJKLMNOPQRS@ABCD>?EFGHIJKLMNOPQRS$Copyright (C) 2014 Krzysztof LangnerBSD3&Krzysztof Langner <klangner@gmail.com>alphaportableSafe Parse formula JparseFormula "C2H4" `shouldBe` Molecule [Element "C" 2, Element "H", 4)] Write Molecule to stringTWrite Molecule to stringU.Write ion number in format expected by formulaV*Write number in format expected by formulaW XYZ[\]^TUV  W  XYZ[\]^TUVSafeOrbital configurationAtom with non-ground atom shell)Element from periodic table configuration$%Orbitals have names: s, p, d ,f, g, h+!Find element by its atomic number atomicNumber (element 8) == 8,Find element by its symbol 'atomicNumber (elementBySymbol "O") == 8-ÐShow number of electrons in each shell For elements which are exception to Aufbau principle configuration is given manually Is it possible to calculate it for all elements based only on atom properties? ,let e = element 8 electronConfig e == [2, 6].FShow number of electrons in each shell for an ionized state of an atom zlet i = Ion (element 20) 2 ionElectronConfig i == [2, 8, 8] let i = Ion (element 17) (-1) ionElectronConfig i == [2, 8, 8]/Number of valance electrons )let e = element 8 valenceElectrons e == 60$Number of covalent bounds in element 'let e = element 8 covalentBounds e == 218Get list of all possible coordination numbers (valences)2,Get list of all possible valences for an ion3RGenerate all possible electron configs (unexcited and excited) for a given element4ðGenerate all possible electron configs (unexcited and excited) for a given ion | By now it assumes that removing electrons starts from the highest layer, | whereas adding electrons follows the same way as while moving along periodic table= !"#$%&'()*_+,`abcde-./0f12ghijklmno3p4qrstu567# !"#$'%&()*+,-./01234# !"#$%&'()*0-+,.3421/( !"#$%&'()*_+,`abcde-./0f12ghijklmno3p4qrstu567v         !"#$%&'()*+,-./0123456789:;<=>>?@ABCDEFGHIJKLMNOPQRSTU)IVWXYZ[\]^_`abcdefghijklmn#radium-0.9.0-Ez0wUl4dlM577rXSOlRx0pRadium.Formats.SmilesRadium.Formats.CondensedRadium.ElementSmiles SmilesRing readSmiles writeSmiles$fEqAtom $fShowAtom $fEqSmiles $fShowSmilesMoleculeIonElement readCondensedwriteCondensed$fFunctorMolecule $fEqMolecule$fShowMolecule OrbitalStateState orbitalLayerorbitalSublayerorbitalElectrons ionElement ionChargeUnknown atomicNumbersymbol_name atomWeightelectroNegativityionizationEnergy OrbitalIdSPDFGHelementelementBySymbolelectronConfigionElectronConfigvalenceElectronscovalentBoundspossibleValencespossibleIonValencespossibleElectronConfigspossibleIonElectronConfigs$fShowOrbitalState $fShowIon $fShowElement$fShowOrbitalId $fEqOrbitalId$fEnumOrbitalId$fOrdOrbitalId $fEqElement$fEqOrbitalState aliphatics aromaticsAtom AliphaticAromaticsmilesboundatom bracketAtomsymbolOrUnknownhcountcharge atomClassnumberaliphaticOrganicaromaticOrganicunknown writeAtom writeBoundswriteCondensed2writeIon writeNumberSymbolMoleculeionformula subformula ionNumberptableosarkrxernconfigExceptionsvalenceExceptions valenceHelpersubshellOrbitalssubshellOrbital layerOrbitalsisOnLast highestPaired lowestFreeexcitepossibleOrbitalStates removeHighestshellConfigGenappendEmptyShellsremoveEmptyShells fillShellsfillShellsAufbau