diff --git a/Data/Testcase/demo.json.gz b/Data/Testcase/demo.json.gz
index c9c6804..c49df20 100644
--- a/Data/Testcase/demo.json.gz
+++ b/Data/Testcase/demo.json.gz
@@ -1 +1 @@
-[{"R-id": 0, "reactions": "COC(=O)[C@H](CCCCNC(=O)OCc1ccccc1)NC(=O)Nc1cc(OC)cc(C(C)(C)C)c1O.O>>COC(=O)[C@H](CCCCN)NC(=O)Nc1cc(OC)cc(C(C)(C)C)c1O.O=C(O)OCc1ccccc1"}, {"R-id": 1, "reactions": "Nc1cccc2cnccc12.O=C(O)c1cc([N+](=O)[O-])c(Sc2c(Cl)cncc2Cl)s1>>O=C(Nc1cccc2cnccc12)c1cc([N+](=O)[O-])c(Sc2c(Cl)cncc2Cl)s1.O"}, {"R-id": 2, "reactions": "CCNCC.Cc1nc(-c2ccc(C=O)cc2)sc1COc1ccc([C@H](CC(=O)N2C(=O)OC[C@@H]2Cc2ccccc2)c2ccon2)cc1.[H].[H]>>CCN(CC)Cc1ccc(-c2nc(C)c(COc3ccc([C@H](CC(=O)N4C(=O)OC[C@@H]4Cc4ccccc4)c4ccon4)cc3)s2)cc1.O"}, {"R-id": 3, "reactions": "CC1(C)CCC(CN2CCN(c3ccc(C(=O)NS(=O)(=O)c4ccc(NCC5CNC5)c([N+](=O)[O-])c4)c(Oc4cnc5[nH]ccc5c4)c3)CC2)=C(c2ccc(Cl)cc2)C1.O=C(CF)CF.[H].[H]>>CC1(C)CCC(CN2CCN(c3ccc(C(=O)NS(=O)(=O)c4ccc(NCC5CN(C(CF)CF)C5)c([N+](=O)[O-])c4)c(Oc4cnc5[nH]ccc5c4)c3)CC2)=C(c2ccc(Cl)cc2)C1.O"}, {"R-id": 4, "reactions": "CCOc1ccc(Oc2ncnc3c2cnn3C2CCNCC2)c(F)c1.O=C(Cl)OC1CCCC1>>CCOc1ccc(Oc2ncnc3c2cnn3C2CCN(C(=O)OC3CCCC3)CC2)c(F)c1.[H+].[Cl-]"}, {"R-id": 5, "reactions": "Cn1cnc(-c2cc(C#N)ccn2)c1Br.OB(O)c1ccc(-n2cccn2)cc1>>Cn1cnc(-c2cc(C#N)ccn2)c1-c1ccc(-n2cccn2)cc1.B(O)(O)Br"}, {"R-id": 6, "reactions": "CC1(C)OB(c2ccc(OCc3ccc4ccccc4n3)cc2)OC1(C)C.N#Cc1ccc(OC2CCCCO2)c(Br)c1>>N#Cc1ccc(OC2CCCCO2)c(-c2ccc(OCc3ccc4ccccc4n3)cc2)c1.CC1(C)OB(Br)OC1(C)C"}, {"R-id": 7, "reactions": "COc1ccc(C(=O)Cc2c(Cl)c[n+]([O-])cc2Cl)c2c1OC1(CCCC1)O2.[H].[H]>>COc1ccc(C(O)Cc2c(Cl)c[n+]([O-])cc2Cl)c2c1OC1(CCCC1)O2"}, {"R-id": 8, "reactions": "CC(C)(C)OC(=O)NN.O=C(O)c1ccc(Br)cc1Cl>>CC(C)(C)OC(=O)NNC(=O)c1ccc(Br)cc1Cl.O"}, {"R-id": 9, "reactions": "CCOP(=O)(CO)OCC.Nc1ncnc2c1nc(CBr)n2CCc1ccccc1>>CCOP(=O)(COCc1nc2c(N)ncnc2n1CCc1ccccc1)OCC.[H+].[Br-]"}, {"R-id": 10, "reactions": "CC(C)(C)OC(=O)CONC(=O)NCc1cccc2ccccc12.O>>O=C(O)CONC(=O)NCc1cccc2ccccc12.CC(C)(C)O"}, {"R-id": 11, "reactions": "CCOC(=O)c1nnn(Cc2ccc(OC)cc2)c1C(=O)c1ccc(OC)c(OC)c1.O>>CCOC(=O)c1nn[nH]c1C(=O)c1ccc(OC)c(OC)c1.COc1ccc(CO)cc1"}, {"R-id": 12, "reactions": "CC(C)[C@H](NC(=O)CNC(=O)[C@@H]1CCCN1C(=O)[C@@H](NC(=O)OCc1ccccc1)C(C)C)C(=O)O.COC(=O)CN>>COC(=O)CNC(=O)[C@@H](NC(=O)CNC(=O)[C@@H]1CCCN1C(=O)[C@@H](NC(=O)OCc1ccccc1)C(C)C)C(C)C.O"}, {"R-id": 13, "reactions": "NC1CCN(Cc2ccccc2)CC1.O=Cc1c[nH]cn1.[H].[H]>>c1ccc(CN2CCC(NCc3c[nH]cn3)CC2)cc1.O"}, {"R-id": 14, "reactions": "BrCc1ccccc1.Oc1ccc(O)c(Br)c1>>Oc1ccc(OCc2ccccc2)c(Br)c1.[H+].[Br-]"}, {"R-id": 15, "reactions": "COc1ccc(-c2nn(C(C)C)c3c(Cl)cccc23)cc1.[H+].[I-]>>CC(C)n1nc(-c2ccc(O)cc2)c2cccc(Cl)c21.CI"}, {"R-id": 16, "reactions": "Cc1ccccc1C(=O)Cl.Nc1ccc(C(=O)N2Cc3ccccc3Sc3ncccc32)cc1>>Cc1ccccc1C(=O)Nc1ccc(C(=O)N2Cc3ccccc3Sc3ncccc32)cc1.[H+].[Cl-]"}, {"R-id": 17, "reactions": "Fc1ccc(C(F)(F)F)cc1Br.c1ccc2c(c1)NCCO2>>FC(F)(F)c1ccc(N2CCOc3ccccc32)c(Br)c1.[H+].[F-]"}, {"R-id": 18, "reactions": "CC(C)S.Fc1cccnc1F>>CC(C)Sc1ncccc1F.[H+].[F-]"}, {"R-id": 19, "reactions": "COC(=O)C(C)(C)CN1CCNCC1.Cc1cc2n(c1)Cc1cc(Cl)ccc1N=C2Cl>>COC(=O)C(C)(C)CN1CCN(C2=Nc3ccc(Cl)cc3Cn3cc(C)cc32)CC1.[H+].[Cl-]"}, {"R-id": 20, "reactions": "CCN(c1nc(F)ccc1NC(C)C)C1CCN(Cc2ccccc2)CC1.O>>CCN(c1nc(F)ccc1NC(C)C)C1CCNCC1.OCc1ccccc1"}, {"R-id": 21, "reactions": "O=C1CNC(=O)N1.O=Cc1cnn2c(NC3CC3)cc(NC3CCCC3)nc12>>O=C1NC(=O)/C(=C/c2cnn3c(NC4CC4)cc(NC4CCCC4)nc23)N1.O"}, {"R-id": 22, "reactions": "CC(C)(C)OC(=O)C(Br)Oc1cc(Cl)cc(Cl)c1.C[O-]>>COC(Oc1cc(Cl)cc(Cl)c1)C(=O)OC(C)(C)C.[Br-]"}, {"R-id": 23, "reactions": "N.O=[N+]([O-])c1cccc(CBr)c1>>NCc1cccc([N+](=O)[O-])c1.[H+].[Br-]"}, {"R-id": 24, "reactions": "C[Si](C)(C)C#Cc1coc2ccc(C(=O)N[C@H]3CN4CCC3CC4)cc12.O>>C#Cc1coc2ccc(C(=O)N[C@H]3CN4CCC3CC4)cc12.C[Si](C)(C)O"}, {"R-id": 25, "reactions": "CC(=O)OC(COCCO)c1cccc(Cl)c1.CS(=O)(=O)Cl>>CC(=O)OC(COCCOS(C)(=O)=O)c1cccc(Cl)c1.[H+].[Cl-]"}, {"R-id": 26, "reactions": "Clc1cnc2nc1Nc1ccc(OCCC3CCNCC3)c(c1)CCc1cncc(c1)N2.O=C=NCc1ccco1>>O=C(NCc1ccco1)N1CCC(CCOc2ccc3cc2CCc2cncc(c2)Nc2ncc(Cl)c(n2)N3)CC1"}, {"R-id": 27, "reactions": "Brc1ccc(OCc2ccccc2)cc1.O=C1CN(c2ccncc2)CCN1>>O=C1CN(c2ccncc2)CCN1c1ccc(OCc2ccccc2)cc1.[H+].[Br-]"}, {"R-id": 28, "reactions": "CC(C)(C)OC(=O)NCCCN.CCC(O)c1nn2cccc2c(=O)n1Cc1ccccc1>>CCC(NCCCNC(=O)OC(C)(C)C)c1nn2cccc2c(=O)n1Cc1ccccc1.O"}, {"R-id": 29, "reactions": "COC(=O)C(CC1CCCC1)n1ncc(Oc2ccccc2C(C)=O)cc1=O.O>>CC(=O)c1ccccc1Oc1cnn(C(CC2CCCC2)C(=O)O)c(=O)c1.CO"}, {"R-id": 30, "reactions": "Nc1ccc(Cl)c(-c2ccccn2)c1.O=C(O)c1ccc(-n2cncn2)nc1>>O=C(Nc1ccc(Cl)c(-c2ccccn2)c1)c1ccc(-n2cncn2)nc1.O"}, {"R-id": 31, "reactions": "C=C1C(=C)C2OC1C(=C)C2=C.C=CC(C)=O>>C=C1C(=C)C2OC1C1=C2CC(C(C)=O)CC1"}, {"R-id": 32, "reactions": "CCOC(=O)C=P(c1ccccc1)(c1ccccc1)c1ccccc1.O=CCc1ccc(Br)cc1>>CCOC(=O)C=CCc1ccc(Br)cc1.O=P(c1ccccc1)(c1ccccc1)c1ccccc1"}, {"R-id": 33, "reactions": "CC(C)(C)OC(=O)N1CCN(c2nc(-c3ccnc(Cl)c3)cc3cnccc23)CC1.NC1CCOCC1>>CC(C)(C)OC(=O)N1CCN(c2nc(-c3ccnc(NC4CCOCC4)c3)cc3cnccc23)CC1.[H+].[Cl-]"}, {"R-id": 34, "reactions": "C=O.Clc1ccc2c(c1)CNCc1nnc(Br)n1-2.[H].[H]>>CN1Cc2cc(Cl)ccc2-n2c(Br)nnc2C1.O"}, {"R-id": 35, "reactions": "CNC.O=C(O)[C@@H]1CCCN1C(=O)OCc1ccccc1>>CN(C)C(=O)[C@@H]1CCCN1C(=O)OCc1ccccc1.O"}, {"R-id": 36, "reactions": "CCOC(=O)Cc1ccc(OC)c(Oc2ccc([N+](=O)[O-])cc2CBr)c1.FC(F)(F)CS>>CCOC(=O)Cc1ccc(OC)c(Oc2ccc([N+](=O)[O-])cc2CSCC(F)(F)F)c1.[H+].[Br-]"}, {"R-id": 37, "reactions": "CC(C)(C)OC(=O)NCC1CCNCC1.O=S(=O)(Cl)c1cccc2cncc(Cl)c12>>CC(C)(C)OC(=O)NCC1CCN(S(=O)(=O)c2cccc3cncc(Cl)c23)CC1.[H+].[Cl-]"}, {"R-id": 38, "reactions": "CCOC(=O)c1ccc(Cl)c([N+](=O)[O-])c1.N[C@H]1CC[C@H](O)CC1>>CCOC(=O)c1ccc(N[C@@H]2CC[C@@H](O)CC2)c([N+](=O)[O-])c1.[H+].[Cl-]"}, {"R-id": 39, "reactions": "CC(=O)N1CCC(=O)CC1.COc1cc(C(F)(F)F)cc(C(F)(F)F)c1C(=O)N[C@@H]1CCCC[C@@H]1N.[H].[H]>>COc1cc(C(F)(F)F)cc(C(F)(F)F)c1C(=O)N[C@@H]1CCCC[C@@H]1NC1CCN(C(C)=O)CC1.O"}, {"R-id": 40, "reactions": "CCCCCc1nc2c(N)nc3ccccc3c2n1CCCCN.O=S(=O)(Cl)c1ccccc1>>CCCCCc1nc2c(N)nc3ccccc3c2n1CCCCNS(=O)(=O)c1ccccc1.[H+].[Cl-]"}, {"R-id": 41, "reactions": "CC(C)Cn1c(=O)n(C)c(=O)c2c(-c3cc(C(=O)O)cn3C)n(Cc3c[nH]c4ccc(Cl)cc34)nc21.CC(C)NCCN>>CC(C)Cn1c(=O)n(C)c(=O)c2c(-c3cc(C(=O)NCCNC(C)C)cn3C)n(Cc3c[nH]c4ccc(Cl)cc34)nc21.O"}, {"R-id": 42, "reactions": "ClCCCN1CCN(c2ccccc2)CC1.O=C1NC(=O)C(c2ccccc2)(c2ccccc2)N1>>O=C1NC(c2ccccc2)(c2ccccc2)C(=O)N1CCCN1CCN(c2ccccc2)CC1.[H+].[Cl-]"}, {"R-id": 43, "reactions": "CC(=O)Cl.Cc1ccccc1O>>CC(=O)Oc1ccccc1C.[H+].[Cl-]"}, {"R-id": 44, "reactions": "CC(C)(C)OC(=O)OC(=O)OC(C)(C)C.CN[C@H]1CC[C@@H](c2ccc(Cl)c(Cl)c2)c2ccc(C(=O)OC)cc21>>COC(=O)c1ccc2c(c1)[C@@H](N(C)C(=O)OC(C)(C)C)CC[C@H]2c1ccc(Cl)c(Cl)c1.CC(C)(C)OC(=O)O"}, {"R-id": 45, "reactions": "COCOc1ccc(C2(C)COc3cc(OCOC)ccc3C2CCCCCCCCO)cc1.Cc1ccc(S(=O)(=O)Cl)cc1>>COCOc1ccc(C2(C)COc3cc(OCOC)ccc3C2CCCCCCCCOS(=O)(=O)c2ccc(C)cc2)cc1.[H+].[Cl-]"}, {"R-id": 46, "reactions": "CNC.Cc1ccc(C(=O)N2CCC(c3ccc(C#N)cc3)CC2)cc1NS(=O)(=O)c1cccc(C(=O)O)c1>>Cc1ccc(C(=O)N2CCC(c3ccc(C#N)cc3)CC2)cc1NS(=O)(=O)c1cccc(C(=O)N(C)C)c1.O"}, {"R-id": 47, "reactions": "Ic1c[nH]cn1.OB(O)c1cc(C(F)(F)F)cc(C(F)(F)F)c1>>FC(F)(F)c1cc(-c2c[nH]cn2)cc(C(F)(F)F)c1.B(O)(O)I"}, {"R-id": 48, "reactions": "N#CC1CCNCC1.O=C(Cl)OCc1ccccc1>>N#CC1CCN(C(=O)OCc2ccccc2)CC1.[H+].[Cl-]"}, {"R-id": 49, "reactions": "CCSc1nc(Cl)cc(C)c1C(=O)NCc1cccc(F)c1.OC[C@H]1COCCN1>>CCSc1nc(N2CCOC[C@@H]2CO)cc(C)c1C(=O)NCc1cccc(F)c1.[H+].[Cl-]"}, {"R-id": 50, "reactions": "C#CC1CC1.CC1(C)[C@@]2(C)CC[C@]1(C(=O)Nc1ccc(Cl)cc1C(=O)C(F)(F)F)OC2=O>>CC1(C)[C@@]2(C)CC[C@]1(C(=O)Nc1ccc(Cl)cc1[C@@](O)(C#CC1CC1)C(F)(F)F)OC2=O"}, {"R-id": 51, "reactions": "Cc1ccc(C(C)(C)C)cc1[N+](=O)[O-]>>Cc1ccc(C(C)(C)C)cc1N.O.[OH-]"}, {"R-id": 52, "reactions": "CNc1cccc(N)c1C#N.O=C=NC(=O)c1ccccc1>>CNc1cccc(NC(=O)NC(=O)c2ccccc2)c1C#N"}, {"R-id": 53, "reactions": "CC1=C(C#N)C(c2ccc3c(c2)c(N)nn3C(=O)OC(C)(C)C)C(C#N)=C(C)N1.O=S(=O)(Cl)Cc1ccc(F)cc1>>CC1=C(C#N)C(c2ccc3c(c2)c(NS(=O)(=O)Cc2ccc(F)cc2)nn3C(=O)OC(C)(C)C)C(C#N)=C(C)N1.[H+].[Cl-]"}, {"R-id": 54, "reactions": "N[C@H]1C(=O)Nc2ccccc2S[C@H]1c1ccccc1.O=C(Cc1cc(F)cc(F)c1)N[C@@H](Cc1cc2ccccc2[nH]1)C(=O)O>>O=C(Cc1cc(F)cc(F)c1)N[C@@H](Cc1cc2ccccc2[nH]1)C(=O)N[C@@H]1C(=O)Nc2ccccc2S[C@@H]1c1ccccc1.O"}, {"R-id": 55, "reactions": "CCN.CCOC(=O)c1c(OCc2ccccc2)c(OCc2ccccc2)c(C(=O)N(C)C)n1-c1ccc(OC)cc1>>CCNC(=O)c1c(OCc2ccccc2)c(OCc2ccccc2)c(C(=O)N(C)C)n1-c1ccc(OC)cc1.CCO"}, {"R-id": 56, "reactions": "CN(Cc1ccccc1)c1nc2oc3c(Cl)ncnc3c2c2c1COC(C)(C)C2.NCCN1CCOCC1>>CN(Cc1ccccc1)c1nc2oc3c(NCCN4CCOCC4)ncnc3c2c2c1COC(C)(C)C2.[H+].[Cl-]"}, {"R-id": 57, "reactions": "Clc1nccc(NC2CCCC2)n1.OB(O)c1ccc(OCc2ccccc2)cc1>>c1ccc(COc2ccc(-c3nccc(NC4CCCC4)n3)cc2)cc1.B(O)(O)Cl"}, {"R-id": 58, "reactions": "C#CCNC(=O)c1cccc(F)c1Nc1nc(Cl)ncc1Cl.CCN1CC(O)(CO)COc2cc(N)ccc21>>C#CCNC(=O)c1cccc(F)c1Nc1nc(Nc2ccc3c(c2)OCC(O)(CO)CN3CC)ncc1Cl.[H+].[Cl-]"}, {"R-id": 59, "reactions": "NCCC1CC1.O=C(O)c1ccc(N2CC3=C(CN(C(=O)c4ccccc4C(F)(F)F)C3)C2)nc1>>O=C(NCCC1CC1)c1ccc(N2CC3=C(CN(C(=O)c4ccccc4C(F)(F)F)C3)C2)nc1.O"}, {"R-id": 60, "reactions": "CC(C)(C)c1noc(N2CCC(NC3CC3)CC2)n1.N#Cc1ccc(-c2cc(C(=O)O)on2)c(F)c1>>CC(C)(C)c1noc(N2CCC(N(C(=O)c3cc(-c4ccc(C#N)cc4F)no3)C3CC3)CC2)n1.O"}, {"R-id": 61, "reactions": "Cc1ccc(C(=O)O)cc1F.O=C1CCC(=O)N1Br>>O=C(O)c1ccc(CBr)c(F)c1.O=C1CCC(=O)N1"}, {"R-id": 62, "reactions": "COC(=O)CS(=O)(=O)Nc1cc(C(=O)N2CCC(c3ccc(C#N)cc3)CC2)ccc1C.O>>Cc1ccc(C(=O)N2CCC(c3ccc(C#N)cc3)CC2)cc1NS(=O)(=O)CC(=O)O.CO"}, {"R-id": 63, "reactions": "COc1ccc(B(O)O)cc1.O=S(=O)(OC1=CCC2(CC1)OCCO2)C(F)(F)F>>COc1ccc(C2=CCC3(CC2)OCCO3)cc1.O=S(=O)(OB(O)O)C(F)(F)F"}, {"R-id": 64, "reactions": "CC(C)(C)OC(=O)N1CCC(N2C(=O)NC[C@H]2c2ccccc2)CC1.CN=C=O>>CNC(=O)N1C[C@@H](c2ccccc2)N(C2CCN(C(=O)OC(C)(C)C)CC2)C1=O"}, {"R-id": 65, "reactions": "NCC1(O)CCCC1.O=[N+]([O-])c1cc(Br)ccc1Br>>O=[N+]([O-])c1cc(Br)ccc1NCC1(O)CCCC1.[H+].[Br-]"}, {"R-id": 66, "reactions": "C=CC(=O)Cl.OCC(Cl)(Cl)Cl>>C=CC(=O)OCC(Cl)(Cl)Cl.[H+].[Cl-]"}, {"R-id": 67, "reactions": "NCC1CCCCN1.O=C(OCC(F)(F)F)c1cc(OCC(F)(F)F)ccc1OCC(F)(F)F>>O=C(NCC1CCCCN1)c1cc(OCC(F)(F)F)ccc1OCC(F)(F)F.OCC(F)(F)F"}, {"R-id": 68, "reactions": "Cc1nc2c(nc1Br)c(C(=O)NC(C)(C)C)cn2COCC[Si](C)(C)C.Cn1cc(N)cn1>>Cc1nc2c(nc1Nc1cnn(C)c1)c(C(=O)NC(C)(C)C)cn2COCC[Si](C)(C)C.[H+].[Br-]"}, {"R-id": 69, "reactions": "C[C@@H]([NH3+])C1CCOCC1.Fc1ncccc1I>>C[C@@H](Nc1ncccc1I)C1CCOCC1.[H+].[H+].[F-]"}, {"R-id": 70, "reactions": "CC(C)(C)OC(=O)NC1(c2ccc(-c3c(Cl)nc4n3-c3cccnc3Nc3ccccc3-4)cc2)CCC1.O=C(OCc1ccccc1)c1ccc(B(O)O)cc1>>CC(C)(C)OC(=O)NC1(c2ccc(-c3c(-c4ccc(C(=O)OCc5ccccc5)cc4)nc4n3-c3cccnc3Nc3ccccc3-4)cc2)CCC1.B(O)(O)Cl"}, {"R-id": 71, "reactions": "CCOC(=O)CCc1c(/C=C2\\C(=O)Nc3ccccc32)[nH]c2c1C(=O)CCC2.O>>O=C(O)CCc1c(/C=C2\\C(=O)Nc3ccccc32)[nH]c2c1C(=O)CCC2.CCO"}, {"R-id": 72, "reactions": "COC(=O)c1ncc(-c2cccc(-c3ccccc3C(F)(F)F)c2)[nH]1.N>>NC(=O)c1ncc(-c2cccc(-c3ccccc3C(F)(F)F)c2)[nH]1.CO"}, {"R-id": 73, "reactions": "C1=C(c2ccccn2)CCC2(C1)OCCO2.[H].[H]>>c1ccc(C2CCC3(CC2)OCCO3)nc1"}, {"R-id": 74, "reactions": "C[C@H]1CN(C(=O)OC(C)(C)C)CCN1C1CCc2ccc(C(F)(F)F)cc21.O>>C[C@H]1CNCCN1C1CCc2ccc(C(F)(F)F)cc21.CC(C)(C)OC(=O)O"}, {"R-id": 75, "reactions": "BrCCBr.COC(=O)c1cc(C(F)(F)F)n[nH]1>>COC(=O)c1cc(C(F)(F)F)nn1CCBr.[H+].[Br-]"}, {"R-id": 76, "reactions": "CC(NC(c1ccc(F)cc1)c1cccc([N+](=O)[O-])c1)c1ccc(F)c(F)c1>>CC(NC(c1ccc(F)cc1)c1cccc(N)c1)c1ccc(F)c(F)c1.O.[OH-]"}, {"R-id": 77, "reactions": "COc1nc(Cl)cnc1N.O=S(=O)(Cl)c1ccc(Br)s1>>COc1nc(Cl)cnc1NS(=O)(=O)c1ccc(Br)s1.[H+].[Cl-]"}, {"R-id": 78, "reactions": "CCC(=O)CBr.CCN(CC)CCNC(=O)c1cc(Cl)c(N)cc1O>>CCC(=O)COc1cc(N)c(Cl)cc1C(=O)NCCN(CC)CC.[H+].[Br-]"}, {"R-id": 79, "reactions": "N[C@@H](COCc1ccccc1)C(=O)Nc1ccc(Oc2ccc(F)cc2)cc1.O=C(O)Cc1cnccn1>>O=C(Cc1cnccn1)N[C@@H](COCc1ccccc1)C(=O)Nc1ccc(Oc2ccc(F)cc2)cc1.O"}, {"R-id": 80, "reactions": "CCN=C=S.NCc1ccccc1>>CCNC(=S)NCc1ccccc1"}, {"R-id": 81, "reactions": "C=CC(=O)Nc1ccc2c(c1)C(C)(c1ccccc1)CC(C)(C)N2C(C)=O.CCOCCO>>CCOCCOCCC(=O)Nc1ccc2c(c1)C(C)(c1ccccc1)CC(C)(C)N2C(C)=O"}, {"R-id": 82, "reactions": "COC(=O)C(N)c1cccc(NC2CCCCC2)c1.O.[H].[H].[H].[H]>>NC(CO)c1cccc(NC2CCCCC2)c1.CO.O"}, {"R-id": 83, "reactions": "C=O.COc1ccc(N)c(C)c1.[H].[H]>>CNc1ccc(OC)cc1C.O"}, {"R-id": 84, "reactions": "CCNCC1CCNC1.CCn1cc(C(=O)O)c(=O)c2cc(F)c(Cl)nc21>>CCNCC1CCN(c2nc3c(cc2F)c(=O)c(C(=O)O)cn3CC)C1.[H+].[Cl-]"}, {"R-id": 85, "reactions": "CN1CCN(Cc2ccc(-c3cc(CCl)on3)cc2)CC1.Fc1cccc(-c2nc3cn[nH]cc-3n2)c1F>>CN1CCN(Cc2ccc(-c3cc(Cn4cc5nc(-c6cccc(F)c6F)nc-5cn4)on3)cc2)CC1.[H+].[Cl-]"}, {"R-id": 86, "reactions": "CCOC(=O)c1csc(N)n1.ICI>>CCOC(=O)c1csc(I)n1.NCI"}, {"R-id": 87, "reactions": "CC(C)(C)C(=O)ON[C@@H](CSc1c(N)cccc1-c1ccccc1)C(=O)O>>CC(C)(C)C(=O)ON[C@H]1CSc2c(cccc2-c2ccccc2)NC1=O.O"}, {"R-id": 88, "reactions": "CC1(C)OB(c2cn[nH]c2)OC1(C)C.O=[N+]([O-])c1ccc2c(c1)c(Br)nn2C(c1ccccc1)(c1ccccc1)c1ccccc1>>O=[N+]([O-])c1ccc2c(c1)c(-c1cn[nH]c1)nn2C(c1ccccc1)(c1ccccc1)c1ccccc1.CC1(C)OB(Br)OC1(C)C"}, {"R-id": 89, "reactions": "CCCCCc1ccc(-c2cc3cn([C@H]4C[C@H](OC(=O)OCc5ccccc5)[C@@H](CO[Si](C)(C)C(C)(C)C)O4)c(=O)nc3o2)cc1.O>>CCCCCc1ccc(-c2cc3cn([C@H]4C[C@H](OC(=O)OCc5ccccc5)[C@@H](CO)O4)c(=O)nc3o2)cc1.CC(C)(C)[Si](C)(C)O"}, {"R-id": 90, "reactions": "CN(C)c1ccc(-c2cnc3ccc(O[Si](C)(C)C(C)(C)C)cc3n2)cc1.O>>CN(C)c1ccc(-c2cnc3ccc(O)cc3n2)cc1.CC(C)(C)[Si](C)(C)O"}, {"R-id": 91, "reactions": "COC(=O)c1sc2cc(C(F)(F)F)ccc2c1C.O>>Cc1c(C(=O)O)sc2cc(C(F)(F)F)ccc12.CO"}, {"R-id": 92, "reactions": "COc1ccc([C@@H](O)[C@H](NC(=O)[C@H](CO)NC(=O)OC(C)(C)C)C(=O)OCc2ccccc2)cc1.O>>COc1ccc([C@@H](O)[C@H](NC(=O)[C@@H](N)CO)C(=O)OCc2ccccc2)cc1.CC(C)(C)OC(=O)O"}, {"R-id": 93, "reactions": "CCCOc1ccc(C)cc1-c1nc(N)c(N=O)c(=O)[nH]1.[H].[H].[H].[H]>>CCCOc1ccc(C)cc1-c1nc(N)c(N)c(=O)[nH]1.O"}, {"R-id": 94, "reactions": "CCCc1nc2c(cc1C(=O)OC)C(=O)N(C1CCN(Cc3cc(C4CC4)c(-c4ccc(F)cc4F)c(F)c3OC)CC1)CC2.O>>CCCc1nc2c(cc1C(=O)O)C(=O)N(C1CCN(Cc3cc(C4CC4)c(-c4ccc(F)cc4F)c(F)c3OC)CC1)CC2.CO"}, {"R-id": 95, "reactions": "Cc1ccc(-n2ccc(N)n2)cc1C.O=C(Cl)c1cc(Cl)ccc1[N+](=O)[O-]>>Cc1ccc(-n2ccc(NC(=O)c3cc(Cl)ccc3[N+](=O)[O-])n2)cc1C.[H+].[Cl-]"}, {"R-id": 96, "reactions": "COc1cc2c(cc1[N+](=O)[O-])CCNCC2.OC(CF)CF>>COc1cc2c(cc1[N+](=O)[O-])CCN(C(CF)CF)CC2.O"}, {"R-id": 97, "reactions": "C#CCNC(=O)OC(C)(C)C.CCOC(=O)c1cn2c3c(cc(Br)cc3c1=O)CCC2>>CCOC(=O)c1cn2c3c(cc(C#CCNC(=O)OC(C)(C)C)cc3c1=O)CCC2.[H+].[Br-]"}, {"R-id": 98, "reactions": "BrCc1ccccc1.CC(C)c1c(C(=O)NCc2ccc(F)c(F)c2)c2ccc(O)cc2n1Cc1ccccc1>>CC(C)c1c(C(=O)NCc2ccc(F)c(F)c2)c2ccc(OCc3ccccc3)cc2n1Cc1ccccc1.[H+].[Br-]"}, {"R-id": 99, "reactions": "CCOC(=O)CNC(=O)c1cccs1.O>>O=C(O)CNC(=O)c1cccs1.CCO"}]
\ No newline at end of file
+[{"R-id": 0, "reactions": "COC(=O)[C@H](CCCCNC(=O)OCc1ccccc1)NC(=O)Nc1cc(OC)cc(C(C)(C)C)c1O.O>>COC(=O)[C@H](CCCCN)NC(=O)Nc1cc(OC)cc(C(C)(C)C)c1O.O=C(O)OCc1ccccc1"}, {"R-id": 1, "reactions": "Nc1cccc2cnccc12.O=C(O)c1cc([N+](=O)[O-])c(Sc2c(Cl)cncc2Cl)s1>>O=C(Nc1cccc2cnccc12)c1cc([N+](=O)[O-])c(Sc2c(Cl)cncc2Cl)s1.O"}, {"R-id": 2, "reactions": "CCNCC.Cc1nc(-c2ccc(C=O)cc2)sc1COc1ccc([C@H](CC(=O)N2C(=O)OC[C@@H]2Cc2ccccc2)c2ccon2)cc1.[H][H]>>CCN(CC)Cc1ccc(-c2nc(C)c(COc3ccc([C@H](CC(=O)N4C(=O)OC[C@@H]4Cc4ccccc4)c4ccon4)cc3)s2)cc1.O"}, {"R-id": 3, "reactions": "CC1(C)CCC(CN2CCN(c3ccc(C(=O)NS(=O)(=O)c4ccc(NCC5CNC5)c([N+](=O)[O-])c4)c(Oc4cnc5[nH]ccc5c4)c3)CC2)=C(c2ccc(Cl)cc2)C1.O=C(CF)CF.[H][H]>>CC1(C)CCC(CN2CCN(c3ccc(C(=O)NS(=O)(=O)c4ccc(NCC5CN(C(CF)CF)C5)c([N+](=O)[O-])c4)c(Oc4cnc5[nH]ccc5c4)c3)CC2)=C(c2ccc(Cl)cc2)C1.O"}, {"R-id": 4, "reactions": "CCOc1ccc(Oc2ncnc3c2cnn3C2CCNCC2)c(F)c1.O=C(Cl)OC1CCCC1>>CCOc1ccc(Oc2ncnc3c2cnn3C2CCN(C(=O)OC3CCCC3)CC2)c(F)c1.[H+].[Cl-]"}, {"R-id": 5, "reactions": "Cn1cnc(-c2cc(C#N)ccn2)c1Br.OB(O)c1ccc(-n2cccn2)cc1>>Cn1cnc(-c2cc(C#N)ccn2)c1-c1ccc(-n2cccn2)cc1.B(O)(O)Br"}, {"R-id": 6, "reactions": "CC1(C)OB(c2ccc(OCc3ccc4ccccc4n3)cc2)OC1(C)C.N#Cc1ccc(OC2CCCCO2)c(Br)c1>>N#Cc1ccc(OC2CCCCO2)c(-c2ccc(OCc3ccc4ccccc4n3)cc2)c1.CC1(C)OB(Br)OC1(C)C"}, {"R-id": 7, "reactions": "COc1ccc(C(=O)Cc2c(Cl)c[n+]([O-])cc2Cl)c2c1OC1(CCCC1)O2.[H][H]>>COc1ccc(C(O)Cc2c(Cl)c[n+]([O-])cc2Cl)c2c1OC1(CCCC1)O2"}, {"R-id": 8, "reactions": "CC(C)(C)OC(=O)NN.O=C(O)c1ccc(Br)cc1Cl>>CC(C)(C)OC(=O)NNC(=O)c1ccc(Br)cc1Cl.O"}, {"R-id": 9, "reactions": "CCOP(=O)(CO)OCC.Nc1ncnc2c1nc(CBr)n2CCc1ccccc1>>CCOP(=O)(COCc1nc2c(N)ncnc2n1CCc1ccccc1)OCC.[H+].[Br-]"}, {"R-id": 10, "reactions": "CC(C)(C)OC(=O)CONC(=O)NCc1cccc2ccccc12.O>>O=C(O)CONC(=O)NCc1cccc2ccccc12.CC(C)(C)O"}, {"R-id": 11, "reactions": "CCOC(=O)c1nnn(Cc2ccc(OC)cc2)c1C(=O)c1ccc(OC)c(OC)c1.O>>CCOC(=O)c1nn[nH]c1C(=O)c1ccc(OC)c(OC)c1.COc1ccc(CO)cc1"}, {"R-id": 12, "reactions": "CC(C)[C@H](NC(=O)CNC(=O)[C@@H]1CCCN1C(=O)[C@@H](NC(=O)OCc1ccccc1)C(C)C)C(=O)O.COC(=O)CN>>COC(=O)CNC(=O)[C@@H](NC(=O)CNC(=O)[C@@H]1CCCN1C(=O)[C@@H](NC(=O)OCc1ccccc1)C(C)C)C(C)C.O"}, {"R-id": 13, "reactions": "NC1CCN(Cc2ccccc2)CC1.O=Cc1c[nH]cn1.[H][H]>>c1ccc(CN2CCC(NCc3c[nH]cn3)CC2)cc1.O"}, {"R-id": 14, "reactions": "BrCc1ccccc1.Oc1ccc(O)c(Br)c1>>Oc1ccc(OCc2ccccc2)c(Br)c1.[H+].[Br-]"}, {"R-id": 15, "reactions": "COc1ccc(-c2nn(C(C)C)c3c(Cl)cccc23)cc1.[H+].[I-]>>CC(C)n1nc(-c2ccc(O)cc2)c2cccc(Cl)c21.CI"}, {"R-id": 16, "reactions": "Cc1ccccc1C(=O)Cl.Nc1ccc(C(=O)N2Cc3ccccc3Sc3ncccc32)cc1>>Cc1ccccc1C(=O)Nc1ccc(C(=O)N2Cc3ccccc3Sc3ncccc32)cc1.[H+].[Cl-]"}, {"R-id": 17, "reactions": "Fc1ccc(C(F)(F)F)cc1Br.c1ccc2c(c1)NCCO2>>FC(F)(F)c1ccc(N2CCOc3ccccc32)c(Br)c1.[H+].[F-]"}, {"R-id": 18, "reactions": "CC(C)S.Fc1cccnc1F>>CC(C)Sc1ncccc1F.[H+].[F-]"}, {"R-id": 19, "reactions": "COC(=O)C(C)(C)CN1CCNCC1.Cc1cc2n(c1)Cc1cc(Cl)ccc1N=C2Cl>>COC(=O)C(C)(C)CN1CCN(C2=Nc3ccc(Cl)cc3Cn3cc(C)cc32)CC1.[H+].[Cl-]"}, {"R-id": 20, "reactions": "CCN(c1nc(F)ccc1NC(C)C)C1CCN(Cc2ccccc2)CC1.O>>CCN(c1nc(F)ccc1NC(C)C)C1CCNCC1.OCc1ccccc1"}, {"R-id": 21, "reactions": "O=C1CNC(=O)N1.O=Cc1cnn2c(NC3CC3)cc(NC3CCCC3)nc12>>O=C1NC(=O)/C(=C/c2cnn3c(NC4CC4)cc(NC4CCCC4)nc23)N1.O"}, {"R-id": 22, "reactions": "CC(C)(C)OC(=O)C(Br)Oc1cc(Cl)cc(Cl)c1.C[O-]>>COC(Oc1cc(Cl)cc(Cl)c1)C(=O)OC(C)(C)C.[Br-]"}, {"R-id": 23, "reactions": "N.O=[N+]([O-])c1cccc(CBr)c1>>NCc1cccc([N+](=O)[O-])c1.[H+].[Br-]"}, {"R-id": 24, "reactions": "C[Si](C)(C)C#Cc1coc2ccc(C(=O)N[C@H]3CN4CCC3CC4)cc12.O>>C#Cc1coc2ccc(C(=O)N[C@H]3CN4CCC3CC4)cc12.C[Si](C)(C)O"}, {"R-id": 25, "reactions": "CC(=O)OC(COCCO)c1cccc(Cl)c1.CS(=O)(=O)Cl>>CC(=O)OC(COCCOS(C)(=O)=O)c1cccc(Cl)c1.[H+].[Cl-]"}, {"R-id": 26, "reactions": "Clc1cnc2nc1Nc1ccc(OCCC3CCNCC3)c(c1)CCc1cncc(c1)N2.O=C=NCc1ccco1>>O=C(NCc1ccco1)N1CCC(CCOc2ccc3cc2CCc2cncc(c2)Nc2ncc(Cl)c(n2)N3)CC1"}, {"R-id": 27, "reactions": "Brc1ccc(OCc2ccccc2)cc1.O=C1CN(c2ccncc2)CCN1>>O=C1CN(c2ccncc2)CCN1c1ccc(OCc2ccccc2)cc1.[H+].[Br-]"}, {"R-id": 28, "reactions": "CC(C)(C)OC(=O)NCCCN.CCC(O)c1nn2cccc2c(=O)n1Cc1ccccc1>>CCC(NCCCNC(=O)OC(C)(C)C)c1nn2cccc2c(=O)n1Cc1ccccc1.O"}, {"R-id": 29, "reactions": "COC(=O)C(CC1CCCC1)n1ncc(Oc2ccccc2C(C)=O)cc1=O.O>>CC(=O)c1ccccc1Oc1cnn(C(CC2CCCC2)C(=O)O)c(=O)c1.CO"}, {"R-id": 30, "reactions": "Nc1ccc(Cl)c(-c2ccccn2)c1.O=C(O)c1ccc(-n2cncn2)nc1>>O=C(Nc1ccc(Cl)c(-c2ccccn2)c1)c1ccc(-n2cncn2)nc1.O"}, {"R-id": 31, "reactions": "C=C1C(=C)C2OC1C(=C)C2=C.C=CC(C)=O>>C=C1C(=C)C2OC1C1=C2CC(C(C)=O)CC1"}, {"R-id": 32, "reactions": "CCOC(=O)C=P(c1ccccc1)(c1ccccc1)c1ccccc1.O=CCc1ccc(Br)cc1>>CCOC(=O)C=CCc1ccc(Br)cc1.O=P(c1ccccc1)(c1ccccc1)c1ccccc1"}, {"R-id": 33, "reactions": "CC(C)(C)OC(=O)N1CCN(c2nc(-c3ccnc(Cl)c3)cc3cnccc23)CC1.NC1CCOCC1>>CC(C)(C)OC(=O)N1CCN(c2nc(-c3ccnc(NC4CCOCC4)c3)cc3cnccc23)CC1.[H+].[Cl-]"}, {"R-id": 34, "reactions": "C=O.Clc1ccc2c(c1)CNCc1nnc(Br)n1-2.[H].[H]>>CN1Cc2cc(Cl)ccc2-n2c(Br)nnc2C1.O"}, {"R-id": 35, "reactions": "CNC.O=C(O)[C@@H]1CCCN1C(=O)OCc1ccccc1>>CN(C)C(=O)[C@@H]1CCCN1C(=O)OCc1ccccc1.O"}, {"R-id": 36, "reactions": "CCOC(=O)Cc1ccc(OC)c(Oc2ccc([N+](=O)[O-])cc2CBr)c1.FC(F)(F)CS>>CCOC(=O)Cc1ccc(OC)c(Oc2ccc([N+](=O)[O-])cc2CSCC(F)(F)F)c1.[H+].[Br-]"}, {"R-id": 37, "reactions": "CC(C)(C)OC(=O)NCC1CCNCC1.O=S(=O)(Cl)c1cccc2cncc(Cl)c12>>CC(C)(C)OC(=O)NCC1CCN(S(=O)(=O)c2cccc3cncc(Cl)c23)CC1.[H+].[Cl-]"}, {"R-id": 38, "reactions": "CCOC(=O)c1ccc(Cl)c([N+](=O)[O-])c1.N[C@H]1CC[C@H](O)CC1>>CCOC(=O)c1ccc(N[C@@H]2CC[C@@H](O)CC2)c([N+](=O)[O-])c1.[H+].[Cl-]"}, {"R-id": 39, "reactions": "CC(=O)N1CCC(=O)CC1.COc1cc(C(F)(F)F)cc(C(F)(F)F)c1C(=O)N[C@@H]1CCCC[C@@H]1N.[H].[H]>>COc1cc(C(F)(F)F)cc(C(F)(F)F)c1C(=O)N[C@@H]1CCCC[C@@H]1NC1CCN(C(C)=O)CC1.O"}, {"R-id": 40, "reactions": "CCCCCc1nc2c(N)nc3ccccc3c2n1CCCCN.O=S(=O)(Cl)c1ccccc1>>CCCCCc1nc2c(N)nc3ccccc3c2n1CCCCNS(=O)(=O)c1ccccc1.[H+].[Cl-]"}, {"R-id": 41, "reactions": "CC(C)Cn1c(=O)n(C)c(=O)c2c(-c3cc(C(=O)O)cn3C)n(Cc3c[nH]c4ccc(Cl)cc34)nc21.CC(C)NCCN>>CC(C)Cn1c(=O)n(C)c(=O)c2c(-c3cc(C(=O)NCCNC(C)C)cn3C)n(Cc3c[nH]c4ccc(Cl)cc34)nc21.O"}, {"R-id": 42, "reactions": "ClCCCN1CCN(c2ccccc2)CC1.O=C1NC(=O)C(c2ccccc2)(c2ccccc2)N1>>O=C1NC(c2ccccc2)(c2ccccc2)C(=O)N1CCCN1CCN(c2ccccc2)CC1.[H+].[Cl-]"}, {"R-id": 43, "reactions": "CC(=O)Cl.Cc1ccccc1O>>CC(=O)Oc1ccccc1C.[H+].[Cl-]"}, {"R-id": 44, "reactions": "CC(C)(C)OC(=O)OC(=O)OC(C)(C)C.CN[C@H]1CC[C@@H](c2ccc(Cl)c(Cl)c2)c2ccc(C(=O)OC)cc21>>COC(=O)c1ccc2c(c1)[C@@H](N(C)C(=O)OC(C)(C)C)CC[C@H]2c1ccc(Cl)c(Cl)c1.CC(C)(C)OC(=O)O"}, {"R-id": 45, "reactions": "COCOc1ccc(C2(C)COc3cc(OCOC)ccc3C2CCCCCCCCO)cc1.Cc1ccc(S(=O)(=O)Cl)cc1>>COCOc1ccc(C2(C)COc3cc(OCOC)ccc3C2CCCCCCCCOS(=O)(=O)c2ccc(C)cc2)cc1.[H+].[Cl-]"}, {"R-id": 46, "reactions": "CNC.Cc1ccc(C(=O)N2CCC(c3ccc(C#N)cc3)CC2)cc1NS(=O)(=O)c1cccc(C(=O)O)c1>>Cc1ccc(C(=O)N2CCC(c3ccc(C#N)cc3)CC2)cc1NS(=O)(=O)c1cccc(C(=O)N(C)C)c1.O"}, {"R-id": 47, "reactions": "Ic1c[nH]cn1.OB(O)c1cc(C(F)(F)F)cc(C(F)(F)F)c1>>FC(F)(F)c1cc(-c2c[nH]cn2)cc(C(F)(F)F)c1.B(O)(O)I"}, {"R-id": 48, "reactions": "N#CC1CCNCC1.O=C(Cl)OCc1ccccc1>>N#CC1CCN(C(=O)OCc2ccccc2)CC1.[H+].[Cl-]"}, {"R-id": 49, "reactions": "CCSc1nc(Cl)cc(C)c1C(=O)NCc1cccc(F)c1.OC[C@H]1COCCN1>>CCSc1nc(N2CCOC[C@@H]2CO)cc(C)c1C(=O)NCc1cccc(F)c1.[H+].[Cl-]"}, {"R-id": 50, "reactions": "C#CC1CC1.CC1(C)[C@@]2(C)CC[C@]1(C(=O)Nc1ccc(Cl)cc1C(=O)C(F)(F)F)OC2=O>>CC1(C)[C@@]2(C)CC[C@]1(C(=O)Nc1ccc(Cl)cc1[C@@](O)(C#CC1CC1)C(F)(F)F)OC2=O"}, {"R-id": 51, "reactions": "Cc1ccc(C(C)(C)C)cc1[N+](=O)[O-]>>Cc1ccc(C(C)(C)C)cc1N.O.[OH-]"}, {"R-id": 52, "reactions": "CNc1cccc(N)c1C#N.O=C=NC(=O)c1ccccc1>>CNc1cccc(NC(=O)NC(=O)c2ccccc2)c1C#N"}, {"R-id": 53, "reactions": "CC1=C(C#N)C(c2ccc3c(c2)c(N)nn3C(=O)OC(C)(C)C)C(C#N)=C(C)N1.O=S(=O)(Cl)Cc1ccc(F)cc1>>CC1=C(C#N)C(c2ccc3c(c2)c(NS(=O)(=O)Cc2ccc(F)cc2)nn3C(=O)OC(C)(C)C)C(C#N)=C(C)N1.[H+].[Cl-]"}, {"R-id": 54, "reactions": "N[C@H]1C(=O)Nc2ccccc2S[C@H]1c1ccccc1.O=C(Cc1cc(F)cc(F)c1)N[C@@H](Cc1cc2ccccc2[nH]1)C(=O)O>>O=C(Cc1cc(F)cc(F)c1)N[C@@H](Cc1cc2ccccc2[nH]1)C(=O)N[C@@H]1C(=O)Nc2ccccc2S[C@@H]1c1ccccc1.O"}, {"R-id": 55, "reactions": "CCN.CCOC(=O)c1c(OCc2ccccc2)c(OCc2ccccc2)c(C(=O)N(C)C)n1-c1ccc(OC)cc1>>CCNC(=O)c1c(OCc2ccccc2)c(OCc2ccccc2)c(C(=O)N(C)C)n1-c1ccc(OC)cc1.CCO"}, {"R-id": 56, "reactions": "CN(Cc1ccccc1)c1nc2oc3c(Cl)ncnc3c2c2c1COC(C)(C)C2.NCCN1CCOCC1>>CN(Cc1ccccc1)c1nc2oc3c(NCCN4CCOCC4)ncnc3c2c2c1COC(C)(C)C2.[H+].[Cl-]"}, {"R-id": 57, "reactions": "Clc1nccc(NC2CCCC2)n1.OB(O)c1ccc(OCc2ccccc2)cc1>>c1ccc(COc2ccc(-c3nccc(NC4CCCC4)n3)cc2)cc1.B(O)(O)Cl"}, {"R-id": 58, "reactions": "C#CCNC(=O)c1cccc(F)c1Nc1nc(Cl)ncc1Cl.CCN1CC(O)(CO)COc2cc(N)ccc21>>C#CCNC(=O)c1cccc(F)c1Nc1nc(Nc2ccc3c(c2)OCC(O)(CO)CN3CC)ncc1Cl.[H+].[Cl-]"}, {"R-id": 59, "reactions": "NCCC1CC1.O=C(O)c1ccc(N2CC3=C(CN(C(=O)c4ccccc4C(F)(F)F)C3)C2)nc1>>O=C(NCCC1CC1)c1ccc(N2CC3=C(CN(C(=O)c4ccccc4C(F)(F)F)C3)C2)nc1.O"}, {"R-id": 60, "reactions": "CC(C)(C)c1noc(N2CCC(NC3CC3)CC2)n1.N#Cc1ccc(-c2cc(C(=O)O)on2)c(F)c1>>CC(C)(C)c1noc(N2CCC(N(C(=O)c3cc(-c4ccc(C#N)cc4F)no3)C3CC3)CC2)n1.O"}, {"R-id": 61, "reactions": "Cc1ccc(C(=O)O)cc1F.O=C1CCC(=O)N1Br>>O=C(O)c1ccc(CBr)c(F)c1.O=C1CCC(=O)N1"}, {"R-id": 62, "reactions": "COC(=O)CS(=O)(=O)Nc1cc(C(=O)N2CCC(c3ccc(C#N)cc3)CC2)ccc1C.O>>Cc1ccc(C(=O)N2CCC(c3ccc(C#N)cc3)CC2)cc1NS(=O)(=O)CC(=O)O.CO"}, {"R-id": 63, "reactions": "COc1ccc(B(O)O)cc1.O=S(=O)(OC1=CCC2(CC1)OCCO2)C(F)(F)F>>COc1ccc(C2=CCC3(CC2)OCCO3)cc1.O=S(=O)(OB(O)O)C(F)(F)F"}, {"R-id": 64, "reactions": "CC(C)(C)OC(=O)N1CCC(N2C(=O)NC[C@H]2c2ccccc2)CC1.CN=C=O>>CNC(=O)N1C[C@@H](c2ccccc2)N(C2CCN(C(=O)OC(C)(C)C)CC2)C1=O"}, {"R-id": 65, "reactions": "NCC1(O)CCCC1.O=[N+]([O-])c1cc(Br)ccc1Br>>O=[N+]([O-])c1cc(Br)ccc1NCC1(O)CCCC1.[H+].[Br-]"}, {"R-id": 66, "reactions": "C=CC(=O)Cl.OCC(Cl)(Cl)Cl>>C=CC(=O)OCC(Cl)(Cl)Cl.[H+].[Cl-]"}, {"R-id": 67, "reactions": "NCC1CCCCN1.O=C(OCC(F)(F)F)c1cc(OCC(F)(F)F)ccc1OCC(F)(F)F>>O=C(NCC1CCCCN1)c1cc(OCC(F)(F)F)ccc1OCC(F)(F)F.OCC(F)(F)F"}, {"R-id": 68, "reactions": "Cc1nc2c(nc1Br)c(C(=O)NC(C)(C)C)cn2COCC[Si](C)(C)C.Cn1cc(N)cn1>>Cc1nc2c(nc1Nc1cnn(C)c1)c(C(=O)NC(C)(C)C)cn2COCC[Si](C)(C)C.[H+].[Br-]"}, {"R-id": 69, "reactions": "C[C@@H]([NH3+])C1CCOCC1.Fc1ncccc1I>>C[C@@H](Nc1ncccc1I)C1CCOCC1.[H+].[H+].[F-]"}, {"R-id": 70, "reactions": "CC(C)(C)OC(=O)NC1(c2ccc(-c3c(Cl)nc4n3-c3cccnc3Nc3ccccc3-4)cc2)CCC1.O=C(OCc1ccccc1)c1ccc(B(O)O)cc1>>CC(C)(C)OC(=O)NC1(c2ccc(-c3c(-c4ccc(C(=O)OCc5ccccc5)cc4)nc4n3-c3cccnc3Nc3ccccc3-4)cc2)CCC1.B(O)(O)Cl"}, {"R-id": 71, "reactions": "CCOC(=O)CCc1c(/C=C2\\C(=O)Nc3ccccc32)[nH]c2c1C(=O)CCC2.O>>O=C(O)CCc1c(/C=C2\\C(=O)Nc3ccccc32)[nH]c2c1C(=O)CCC2.CCO"}, {"R-id": 72, "reactions": "COC(=O)c1ncc(-c2cccc(-c3ccccc3C(F)(F)F)c2)[nH]1.N>>NC(=O)c1ncc(-c2cccc(-c3ccccc3C(F)(F)F)c2)[nH]1.CO"}, {"R-id": 73, "reactions": "C1=C(c2ccccn2)CCC2(C1)OCCO2.[H].[H]>>c1ccc(C2CCC3(CC2)OCCO3)nc1"}, {"R-id": 74, "reactions": "C[C@H]1CN(C(=O)OC(C)(C)C)CCN1C1CCc2ccc(C(F)(F)F)cc21.O>>C[C@H]1CNCCN1C1CCc2ccc(C(F)(F)F)cc21.CC(C)(C)OC(=O)O"}, {"R-id": 75, "reactions": "BrCCBr.COC(=O)c1cc(C(F)(F)F)n[nH]1>>COC(=O)c1cc(C(F)(F)F)nn1CCBr.[H+].[Br-]"}, {"R-id": 76, "reactions": "CC(NC(c1ccc(F)cc1)c1cccc([N+](=O)[O-])c1)c1ccc(F)c(F)c1>>CC(NC(c1ccc(F)cc1)c1cccc(N)c1)c1ccc(F)c(F)c1.O.[OH-]"}, {"R-id": 77, "reactions": "COc1nc(Cl)cnc1N.O=S(=O)(Cl)c1ccc(Br)s1>>COc1nc(Cl)cnc1NS(=O)(=O)c1ccc(Br)s1.[H+].[Cl-]"}, {"R-id": 78, "reactions": "CCC(=O)CBr.CCN(CC)CCNC(=O)c1cc(Cl)c(N)cc1O>>CCC(=O)COc1cc(N)c(Cl)cc1C(=O)NCCN(CC)CC.[H+].[Br-]"}, {"R-id": 79, "reactions": "N[C@@H](COCc1ccccc1)C(=O)Nc1ccc(Oc2ccc(F)cc2)cc1.O=C(O)Cc1cnccn1>>O=C(Cc1cnccn1)N[C@@H](COCc1ccccc1)C(=O)Nc1ccc(Oc2ccc(F)cc2)cc1.O"}, {"R-id": 80, "reactions": "CCN=C=S.NCc1ccccc1>>CCNC(=S)NCc1ccccc1"}, {"R-id": 81, "reactions": "C=CC(=O)Nc1ccc2c(c1)C(C)(c1ccccc1)CC(C)(C)N2C(C)=O.CCOCCO>>CCOCCOCCC(=O)Nc1ccc2c(c1)C(C)(c1ccccc1)CC(C)(C)N2C(C)=O"}, {"R-id": 82, "reactions": "COC(=O)C(N)c1cccc(NC2CCCCC2)c1.O.[H].[H].[H].[H]>>NC(CO)c1cccc(NC2CCCCC2)c1.CO.O"}, {"R-id": 83, "reactions": "C=O.COc1ccc(N)c(C)c1.[H].[H]>>CNc1ccc(OC)cc1C.O"}, {"R-id": 84, "reactions": "CCNCC1CCNC1.CCn1cc(C(=O)O)c(=O)c2cc(F)c(Cl)nc21>>CCNCC1CCN(c2nc3c(cc2F)c(=O)c(C(=O)O)cn3CC)C1.[H+].[Cl-]"}, {"R-id": 85, "reactions": "CN1CCN(Cc2ccc(-c3cc(CCl)on3)cc2)CC1.Fc1cccc(-c2nc3cn[nH]cc-3n2)c1F>>CN1CCN(Cc2ccc(-c3cc(Cn4cc5nc(-c6cccc(F)c6F)nc-5cn4)on3)cc2)CC1.[H+].[Cl-]"}, {"R-id": 86, "reactions": "CCOC(=O)c1csc(N)n1.ICI>>CCOC(=O)c1csc(I)n1.NCI"}, {"R-id": 87, "reactions": "CC(C)(C)C(=O)ON[C@@H](CSc1c(N)cccc1-c1ccccc1)C(=O)O>>CC(C)(C)C(=O)ON[C@H]1CSc2c(cccc2-c2ccccc2)NC1=O.O"}, {"R-id": 88, "reactions": "CC1(C)OB(c2cn[nH]c2)OC1(C)C.O=[N+]([O-])c1ccc2c(c1)c(Br)nn2C(c1ccccc1)(c1ccccc1)c1ccccc1>>O=[N+]([O-])c1ccc2c(c1)c(-c1cn[nH]c1)nn2C(c1ccccc1)(c1ccccc1)c1ccccc1.CC1(C)OB(Br)OC1(C)C"}, {"R-id": 89, "reactions": "CCCCCc1ccc(-c2cc3cn([C@H]4C[C@H](OC(=O)OCc5ccccc5)[C@@H](CO[Si](C)(C)C(C)(C)C)O4)c(=O)nc3o2)cc1.O>>CCCCCc1ccc(-c2cc3cn([C@H]4C[C@H](OC(=O)OCc5ccccc5)[C@@H](CO)O4)c(=O)nc3o2)cc1.CC(C)(C)[Si](C)(C)O"}, {"R-id": 90, "reactions": "CN(C)c1ccc(-c2cnc3ccc(O[Si](C)(C)C(C)(C)C)cc3n2)cc1.O>>CN(C)c1ccc(-c2cnc3ccc(O)cc3n2)cc1.CC(C)(C)[Si](C)(C)O"}, {"R-id": 91, "reactions": "COC(=O)c1sc2cc(C(F)(F)F)ccc2c1C.O>>Cc1c(C(=O)O)sc2cc(C(F)(F)F)ccc12.CO"}, {"R-id": 92, "reactions": "COc1ccc([C@@H](O)[C@H](NC(=O)[C@H](CO)NC(=O)OC(C)(C)C)C(=O)OCc2ccccc2)cc1.O>>COc1ccc([C@@H](O)[C@H](NC(=O)[C@@H](N)CO)C(=O)OCc2ccccc2)cc1.CC(C)(C)OC(=O)O"}, {"R-id": 93, "reactions": "CCCOc1ccc(C)cc1-c1nc(N)c(N=O)c(=O)[nH]1.[H].[H].[H].[H]>>CCCOc1ccc(C)cc1-c1nc(N)c(N)c(=O)[nH]1.O"}, {"R-id": 94, "reactions": "CCCc1nc2c(cc1C(=O)OC)C(=O)N(C1CCN(Cc3cc(C4CC4)c(-c4ccc(F)cc4F)c(F)c3OC)CC1)CC2.O>>CCCc1nc2c(cc1C(=O)O)C(=O)N(C1CCN(Cc3cc(C4CC4)c(-c4ccc(F)cc4F)c(F)c3OC)CC1)CC2.CO"}, {"R-id": 95, "reactions": "Cc1ccc(-n2ccc(N)n2)cc1C.O=C(Cl)c1cc(Cl)ccc1[N+](=O)[O-]>>Cc1ccc(-n2ccc(NC(=O)c3cc(Cl)ccc3[N+](=O)[O-])n2)cc1C.[H+].[Cl-]"}, {"R-id": 96, "reactions": "COc1cc2c(cc1[N+](=O)[O-])CCNCC2.OC(CF)CF>>COc1cc2c(cc1[N+](=O)[O-])CCN(C(CF)CF)CC2.O"}, {"R-id": 97, "reactions": "C#CCNC(=O)OC(C)(C)C.CCOC(=O)c1cn2c3c(cc(Br)cc3c1=O)CCC2>>CCOC(=O)c1cn2c3c(cc(C#CCNC(=O)OC(C)(C)C)cc3c1=O)CCC2.[H+].[Br-]"}, {"R-id": 98, "reactions": "BrCc1ccccc1.CC(C)c1c(C(=O)NCc2ccc(F)c(F)c2)c2ccc(O)cc2n1Cc1ccccc1>>CC(C)c1c(C(=O)NCc2ccc(F)c(F)c2)c2ccc(OCc3ccccc3)cc2n1Cc1ccccc1.[H+].[Br-]"}, {"R-id": 99, "reactions": "CCOC(=O)CNC(=O)c1cccs1.O>>O=C(O)CNC(=O)c1cccs1.CCO"}]
\ No newline at end of file
diff --git a/Docs/Analysis/_1_template_extraction.ipynb b/Docs/Analysis/_1_template_extraction.ipynb
index 1df1ab0..d9b60c6 100644
--- a/Docs/Analysis/_1_template_extraction.ipynb
+++ b/Docs/Analysis/_1_template_extraction.ipynb
@@ -64,7 +64,7 @@
"\n",
"\n",
"def save_svg_to_file(svg_object):\n",
- " svg_data = svg_object.data \n",
+ " svg_data = svg_object.data\n",
" with tempfile.NamedTemporaryFile(delete=False, suffix=\".svg\") as tmpfile:\n",
" tmpfile.write(svg_data.encode(\"utf-8\"))\n",
" return tmpfile.name\n",
@@ -85,8 +85,6 @@
"from pdf2image import convert_from_path\n",
"\n",
"\n",
- "\n",
- "\n",
"def pdf_to_images(pdf_path, dpi=900):\n",
" \"\"\"\n",
" Converts PDFs to images with an option to specify the DPI for higher quality.\n",
@@ -198,7 +196,9 @@
"\n",
"\n",
"titles = [\"A\", \"B\", \"C\"]\n",
- "display_images_in_subplot(images, _its, _rc, titles, save_path=\"./fig/Fig1_old_aam_its_rc.pdf\")"
+ "display_images_in_subplot(\n",
+ " images, _its, _rc, titles, save_path=\"./fig/Fig1_old_aam_its_rc.pdf\"\n",
+ ")"
]
},
{
diff --git a/Docs/Analysis/_2b_aam_analysis.ipynb b/Docs/Analysis/_2b_aam_analysis.ipynb
index 34c7fea..6f70138 100644
--- a/Docs/Analysis/_2b_aam_analysis.ipynb
+++ b/Docs/Analysis/_2b_aam_analysis.ipynb
@@ -323,7 +323,9 @@
"sys.path.append(\"../../\")\n",
"from syntemp.SynUtils.utils import load_database\n",
"\n",
- "data = load_database(\"../../Data/AAM/results_benchmark/golden/golden_aam_reactions.json.gz\")"
+ "data = load_database(\n",
+ " \"../../Data/AAM/results_benchmark/golden/golden_aam_reactions.json.gz\"\n",
+ ")"
]
},
{
@@ -582,7 +584,9 @@
"sys.path.append(\"../../\")\n",
"from syntemp.SynUtils.utils import load_database\n",
"\n",
- "final_df = pd.DataFrame(load_database(\"../../Data/AAM/results_benchmark/aam_benchmark.json.gz\"))"
+ "final_df = pd.DataFrame(\n",
+ " load_database(\"../../Data/AAM/results_benchmark/aam_benchmark.json.gz\")\n",
+ ")"
]
},
{
diff --git a/Docs/Analysis/_3_tool_benchmark.ipynb b/Docs/Analysis/_3_tool_benchmark.ipynb
index 0985e19..2de3a19 100644
--- a/Docs/Analysis/_3_tool_benchmark.ipynb
+++ b/Docs/Analysis/_3_tool_benchmark.ipynb
@@ -96,7 +96,7 @@
},
{
"cell_type": "code",
- "execution_count": 31,
+ "execution_count": null,
"metadata": {},
"outputs": [],
"source": [
@@ -110,7 +110,7 @@
},
{
"cell_type": "code",
- "execution_count": 32,
+ "execution_count": null,
"metadata": {},
"outputs": [],
"source": [
@@ -141,69 +141,14 @@
},
{
"cell_type": "code",
- "execution_count": 33,
+ "execution_count": null,
"metadata": {},
- "outputs": [
- {
- "data": {
- "text/html": [
- "
\n",
- "\n",
- "
\n",
- " \n",
- " \n",
- " | \n",
- " Ground Truth (%) | \n",
- "
\n",
- " \n",
- " \n",
- " \n",
- " RXNMapper | \n",
- " 93.53 | \n",
- "
\n",
- " \n",
- " Graphormer | \n",
- " 95.10 | \n",
- "
\n",
- " \n",
- " LocalMapper | \n",
- " 100.00 | \n",
- "
\n",
- " \n",
- "
\n",
- "
"
- ],
- "text/plain": [
- " Ground Truth (%)\n",
- "RXNMapper 93.53\n",
- "Graphormer 95.10\n",
- "LocalMapper 100.00"
- ]
- },
- "execution_count": 33,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
+ "outputs": [],
"source": [
"ground_data = pd.DataFrame(\n",
" [\n",
" {\n",
- " \"RXNMapper\": round(\n",
- " 100 * df_u1[\"RXNMapper_correct\"].sum() / len(df_u1), 2\n",
- " ),\n",
+ " \"RXNMapper\": round(100 * df_u1[\"RXNMapper_correct\"].sum() / len(df_u1), 2),\n",
" \"Graphormer\": round(\n",
" 100 * df_u1[\"GraphMapper_correct\"].sum() / len(df_u1), 2\n",
" ),\n",
@@ -223,12 +168,10 @@
"metadata": {},
"outputs": [],
"source": [
- "cgrtool_old = pd.DataFrame(\n",
+ "cgrtool_u1 = pd.DataFrame(\n",
" [\n",
" {\n",
- " \"RXNMapper\": round(\n",
- " 100 * df_u1[\"CGRTool_rxnmapper\"].sum() / len(df_u1), 2\n",
- " ),\n",
+ " \"RXNMapper\": round(100 * df_u1[\"CGRTool_rxnmapper\"].sum() / len(df_u1), 2),\n",
" \"Graphormer\": round(\n",
" 100 * df_u1[\"CGRTool_graphmapper\"].sum() / len(df_u1), 2\n",
" ),\n",
@@ -239,8 +182,8 @@
" ]\n",
").T\n",
"\n",
- "cgrtool_old.rename(columns={0: \"CGRTools 1 (%)\"}, inplace=True)\n",
- "cgrtool_old"
+ "cgrtool_u1.rename(columns={0: \"CGRTools 1 (%)\"}, inplace=True)\n",
+ "cgrtool_u1"
]
},
{
@@ -249,24 +192,22 @@
"metadata": {},
"outputs": [],
"source": [
- "cgrtool_new = pd.DataFrame(\n",
+ "cgrtool_u2 = pd.DataFrame(\n",
" [\n",
" {\n",
- " \"RXNMapper\": round(\n",
- " 100 * df_new[\"CGRTool_rxnmapper\"].sum() / len(df_new), 2\n",
- " ),\n",
+ " \"RXNMapper\": round(100 * df_u2[\"CGRTool_rxnmapper\"].sum() / len(df_u2), 2),\n",
" \"Graphormer\": round(\n",
- " 100 * df_new[\"CGRTool_graphmapper\"].sum() / len(df_new), 2\n",
+ " 100 * df_u2[\"CGRTool_graphmapper\"].sum() / len(df_u2), 2\n",
" ),\n",
" \"LocalMapper\": round(\n",
- " 100 * df_new[\"CGRTool_localmapper\"].sum() / len(df_new), 2\n",
+ " 100 * df_u2[\"CGRTool_localmapper\"].sum() / len(df_u2), 2\n",
" ),\n",
" }\n",
" ]\n",
").T\n",
"\n",
- "cgrtool_new.rename(columns={0: \"CGRTools 2 (%)\"}, inplace=True)\n",
- "cgrtool_new"
+ "cgrtool_u2.rename(columns={0: \"CGRTools 2 (%)\"}, inplace=True)\n",
+ "cgrtool_u2"
]
},
{
@@ -275,8 +216,8 @@
"metadata": {},
"outputs": [],
"source": [
- "cgr_data = pd.concat([ground_data, cgrtool_old, cgrtool_new], axis=1)\n",
- "cgr_data"
+ "cgr_data = pd.concat([ground_data, cgrtool_u1, cgrtool_u2], axis=1)\n",
+ "cgr_data.rename(index={\"Graphormer\": \"GraphMapper\"}, inplace=True)"
]
},
{
@@ -287,54 +228,14 @@
"source": [
"from syntemp.SynAAM.aam_validator import AAMValidator\n",
"\n",
- "df_old = pd.read_csv(\n",
- " \"../../Data/AAM/cgrtool_benchmark/uspto_3k_cgrtool_old.csv\", index_col=0\n",
- ")\n",
- "df_new = pd.read_csv(\n",
- " \"../../Data/AAM/cgrtool_benchmark/uspto_3k_cgrtool_new.csv\", index_col=0\n",
- ")\n",
- "results_old_its = AAMValidator.validate_smiles(\n",
- " data=df_old,\n",
- " ground_truth_col=\"GroundTruth\",\n",
- " mapped_cols=[\"RXNMapper\", \"GraphMapper\", \"LocalMapper\"],\n",
- " check_method=\"ITS\",\n",
- " ignore_aromaticity=False,\n",
- " n_jobs=4,\n",
- " verbose=0,\n",
- " ensemble=False,\n",
- " strategies=[[\"rxn_mapper\", \"graphormer\", \"local_mapper\"]],\n",
- " ignore_tautomers=False,\n",
- ")\n",
- "\n",
- "\n",
- "results_new_its = AAMValidator.validate_smiles(\n",
- " data=df_new,\n",
- " ground_truth_col=\"GroundTruth\",\n",
- " mapped_cols=[\"RXNMapper\", \"GraphMapper\", \"LocalMapper\"],\n",
- " check_method=\"ITS\",\n",
- " ignore_aromaticity=False,\n",
- " n_jobs=4,\n",
- " verbose=0,\n",
- " ensemble=False,\n",
- " strategies=[[\"rxn_mapper\", \"graphormer\", \"local_mapper\"]],\n",
- " ignore_tautomers=False,\n",
- ")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "df_old = pd.read_csv(\n",
+ "df_u1 = pd.read_csv(\n",
" \"../../Data/AAM/cgrtool_benchmark/uspto_3k_cgrtool_old.csv\", index_col=0\n",
")\n",
- "df_new = pd.read_csv(\n",
+ "df_u2 = pd.read_csv(\n",
" \"../../Data/AAM/cgrtool_benchmark/uspto_3k_cgrtool_new.csv\", index_col=0\n",
")\n",
- "results_old = AAMValidator.validate_smiles(\n",
- " data=df_old,\n",
+ "syntemp_u1 = AAMValidator.validate_smiles(\n",
+ " data=df_u1,\n",
" ground_truth_col=\"GroundTruth\",\n",
" mapped_cols=[\"RXNMapper\", \"GraphMapper\", \"LocalMapper\"],\n",
" check_method=\"RC\",\n",
@@ -347,8 +248,8 @@
")\n",
"\n",
"\n",
- "results_new = AAMValidator.validate_smiles(\n",
- " data=df_new,\n",
+ "syntemp_u2 = AAMValidator.validate_smiles(\n",
+ " data=df_u2,\n",
" ground_truth_col=\"GroundTruth\",\n",
" mapped_cols=[\"RXNMapper\", \"GraphMapper\", \"LocalMapper\"],\n",
" check_method=\"RC\",\n",
@@ -367,295 +268,19 @@
"metadata": {},
"outputs": [],
"source": [
- "import numpy as np\n",
+ "temp_u1 = pd.DataFrame(syntemp_u1[0])\n",
+ "temp_u1.rename(columns={\"accuracy\": \"syntemp_u1\"}, inplace=True)\n",
+ "temp_u1.index = temp_u1[\"mapper\"]\n",
"\n",
- "np.sum(results_new_its[0][0][\"results\"])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "np.sum(results_new[0][0][\"results\"])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "np.sum(results_old[0][0][\"results\"])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "pd.DataFrame(results_new[0])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "pd.DataFrame(results_old[0])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "pd.DataFrame(results_new_its[0][0][\"results\"]) != pd.DataFrame(\n",
- " results_new[0][0][\"results\"]\n",
- ")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "wrong_index = []\n",
- "for key, value in enumerate(results_new[0][0][\"results\"]):\n",
- " if value != results_new_its[0][0][\"results\"][key]:\n",
- " print(value)\n",
- " wrong_index.append(key)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "wrong_index"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "results_new[0][0][\"results\"]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "aam_new = pd.DataFrame(results_new[0])[[\"mapper\", \"accuracy\"]]\n",
- "aam_new[\"mapper\"][1] = \"Graphormer\""
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "aam_new = pd.DataFrame(results_new[0])[[\"mapper\", \"accuracy\"]]\n",
- "aam_new[\"mapper\"][1] = \"Graphormer\"\n",
- "aam_new.index = aam_new[\"mapper\"].tolist()\n",
- "aam_new.drop([\"mapper\"], axis=1, inplace=True)\n",
- "aam_new.rename(columns={\"accuracy\": \"SynTemp 2 (%)\"}, inplace=True)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "aam_new"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "aam_old = pd.DataFrame(results_old[0])[[\"mapper\", \"accuracy\"]]\n",
- "aam_old[\"mapper\"][1] = \"Graphormer\"\n",
- "aam_old.index = aam_old[\"mapper\"].tolist()\n",
- "aam_old.drop([\"mapper\"], axis=1, inplace=True)\n",
- "aam_old.rename(columns={\"accuracy\": \"SynTemp 1 (%)\"}, inplace=True)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "benchmark = pd.concat([cgr_data, aam_old, aam_new], axis=1)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "benchmark"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "### 1.2.2. EEquaam"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "from syntemp.SynChemistry.balance_checker import BalanceReactionCheck\n",
+ "temp_u2 = pd.DataFrame(syntemp_u2[0])\n",
+ "temp_u2.rename(columns={\"accuracy\": \"syntemp_u2\"}, inplace=True)\n",
+ "temp_u2.index = temp_u2[\"mapper\"]\n",
"\n",
- "df_old = pd.read_csv(\n",
- " \"../../Data/AAM/cgrtool_benchmark/uspto_3k_cgrtool_old.csv\", index_col=0\n",
- ")\n",
- "df_new = pd.read_csv(\n",
- " \"../../Data/AAM/cgrtool_benchmark/uspto_3k_cgrtool_new.csv\", index_col=0\n",
- ")\n",
- "check_balance = BalanceReactionCheck()\n",
- "df_new_balance, _ = check_balance.dicts_balance_check(\n",
- " df_new.to_dict(\"records\"), \"GroundTruth\"\n",
+ "benchmark_df = pd.concat(\n",
+ " [cgr_data, temp_u1[\"syntemp_u1\"], temp_u2[\"syntemp_u2\"]], axis=1\n",
")\n",
"\n",
- "df_old_balance, _ = check_balance.dicts_balance_check(\n",
- " df_old.to_dict(\"records\"), \"GroundTruth\"\n",
- ")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "results_old_aam, _ = AAMValidator.validate_smiles(\n",
- " data=df_old_balance,\n",
- " ground_truth_col=\"GroundTruth\",\n",
- " mapped_cols=[\"RXNMapper\", \"GraphMapper\", \"LocalMapper\"],\n",
- " check_method=\"RC\",\n",
- " ignore_aromaticity=False,\n",
- " n_jobs=4,\n",
- " verbose=0,\n",
- " ensemble=False,\n",
- " strategies=[[\"rxn_mapper\", \"graphormer\", \"local_mapper\"]],\n",
- " ignore_tautomers=False,\n",
- ")\n",
- "\n",
- "\n",
- "results_new_aam, _ = AAMValidator.validate_smiles(\n",
- " data=df_new_balance,\n",
- " ground_truth_col=\"GroundTruth\",\n",
- " mapped_cols=[\"RXNMapper\", \"GraphMapper\", \"LocalMapper\"],\n",
- " check_method=\"RC\",\n",
- " ignore_aromaticity=False,\n",
- " n_jobs=4,\n",
- " verbose=0,\n",
- " ensemble=False,\n",
- " strategies=[[\"rxn_mapper\", \"graphormer\", \"local_mapper\"]],\n",
- " ignore_tautomers=False,\n",
- ")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 30,
- "metadata": {},
- "outputs": [
- {
- "ename": "NameError",
- "evalue": "name 'results_old_aam' is not defined",
- "output_type": "error",
- "traceback": [
- "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
- "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
- "\u001b[1;32m/homes/biertank/tieu/Documents/Project/TACsy/SynEco/SynTemp/Docs/Analysis/_3_tool_benchmark.ipynb Cell 36\u001b[0m line \u001b[0;36m1\n\u001b[0;32m----> 1\u001b[0m pd\u001b[39m.\u001b[39mDataFrame(results_old_aam)\n",
- "\u001b[0;31mNameError\u001b[0m: name 'results_old_aam' is not defined"
- ]
- }
- ],
- "source": [
- "pd.DataFrame(results_old_aam)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "pd.DataFrame(results_new_aam)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "results_old_eqquaam, _ = AAMValidator.validate_smiles(\n",
- " data=df_old_balance,\n",
- " ground_truth_col=\"GroundTruth\",\n",
- " mapped_cols=[\"RXNMapper\", \"GraphMapper\", \"LocalMapper\"],\n",
- " check_method=\"ITS\",\n",
- " ignore_aromaticity=False,\n",
- " n_jobs=4,\n",
- " verbose=0,\n",
- " ensemble=False,\n",
- " strategies=[[\"rxn_mapper\", \"graphormer\", \"local_mapper\"]],\n",
- " ignore_tautomers=True,\n",
- ")\n",
- "\n",
- "\n",
- "results_new_eqquaam, _ = AAMValidator.validate_smiles(\n",
- " data=df_new_balance,\n",
- " ground_truth_col=\"GroundTruth\",\n",
- " mapped_cols=[\"RXNMapper\", \"GraphMapper\", \"LocalMapper\"],\n",
- " check_method=\"ITS\",\n",
- " ignore_aromaticity=False,\n",
- " n_jobs=4,\n",
- " verbose=0,\n",
- " ensemble=False,\n",
- " strategies=[[\"rxn_mapper\", \"graphormer\", \"local_mapper\"]],\n",
- " ignore_tautomers=True,\n",
- ")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "pd.DataFrame(results_new_eqquaam)"
+ "benchmark_df"
]
},
{
@@ -671,7 +296,7 @@
"metadata": {},
"outputs": [],
"source": [
- "data_check = pd.DataFrame(results_new[0])"
+ "data_check = pd.DataFrame(syntemp_u2[0])"
]
},
{
@@ -681,12 +306,12 @@
"outputs": [],
"source": [
"list_diff_rxn = []\n",
- "for key, value in enumerate(df_new[\"RXNMapper_correct\"]):\n",
+ "for key, value in enumerate(df_u2[\"RXNMapper_correct\"]):\n",
" if value != data_check[\"results\"][0][key]:\n",
" list_diff_rxn.append(key)\n",
"\n",
"list_diff_graph = []\n",
- "for key, value in enumerate(df_new[\"GraphMapper_correct\"]):\n",
+ "for key, value in enumerate(df_u2[\"GraphMapper_correct\"]):\n",
" if value != data_check[\"results\"][1][key]:\n",
" list_diff_graph.append(key)\n",
"print(\"Differences in RXNMapper:\", list_diff_rxn)\n",
@@ -705,15 +330,15 @@
"i = 192\n",
"display(\n",
" vis.visualize_reaction(\n",
- " df_new.loc[i, \"GroundTruth\"], img_size=(1000, 300), show_atom_map=True\n",
+ " df_u2.loc[i, \"GroundTruth\"], img_size=(1000, 300), show_atom_map=True\n",
" )\n",
")\n",
"display(\n",
" vis.visualize_reaction(\n",
- " df_new.loc[i, \"RXNMapper\"], img_size=(1000, 300), show_atom_map=True\n",
+ " df_u2.loc[i, \"RXNMapper\"], img_size=(1000, 300), show_atom_map=True\n",
" )\n",
")\n",
- "print(df_new.loc[i, \"RXNMapper_correct\"])"
+ "print(df_u2.loc[i, \"RXNMapper_correct\"])"
]
},
{
@@ -725,162 +350,15 @@
"i = 2157\n",
"display(\n",
" vis.visualize_reaction(\n",
- " df_new.loc[i, \"GroundTruth\"], img_size=(1000, 300), show_atom_map=True\n",
+ " df_u2.loc[i, \"GroundTruth\"], img_size=(1000, 300), show_atom_map=True\n",
" )\n",
")\n",
"display(\n",
" vis.visualize_reaction(\n",
- " df_new.loc[i, \"RXNMapper\"], img_size=(1000, 300), show_atom_map=True\n",
+ " df_u2.loc[i, \"RXNMapper\"], img_size=(1000, 300), show_atom_map=True\n",
" )\n",
")\n",
- "print(df_new.loc[i, \"RXNMapper_correct\"])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "df_new.loc[i, \"RXNMapper\"]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "reaction_smiles = [\n",
- " df_new.loc[192, \"GroundTruth\"],\n",
- " df_new.loc[192, \"RXNMapper\"],\n",
- " df_new.loc[2157, \"GroundTruth\"],\n",
- " df_new.loc[2157, \"RXNMapper\"],\n",
- "]\n",
- "subtitles = [\"A\", \"B\", \"C\", \"D\"]"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## 1.4. Analyze difference from CGRTool"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "old_rxn = df_old[df_old[\"CGRTool_rxnmapper\"] != data_check[\"results\"][0]]\n",
- "old_graph = df_old[df_old[\"CGRTool_graphmapper\"] != data_check[\"results\"][1]]\n",
- "\n",
- "new_rxn = df_new[df_new[\"CGRTool_rxnmapper\"] != data_check[\"results\"][0]]\n",
- "new_local = df_new[df_new[\"CGRTool_localmapper\"] != data_check[\"results\"][2]]"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "def op_results(bool):\n",
- " if bool:\n",
- " return False\n",
- " else:\n",
- " return True"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "data_1 = old_rxn[[\"RXNMapper\", \"CGRTool_rxnmapper\", \"GroundTruth\"]]\n",
- "data_1.rename(\n",
- " columns={\"RXNMapper\": \"Mapped\", \"CGRTool_rxnmapper\": \"CGRTool\"}, inplace=True\n",
- ")\n",
- "data_1[\"SynTemp\"] = data_1[\"CGRTool\"].apply(op_results)\n",
- "\n",
- "\n",
- "data_2 = old_graph[[\"GraphMapper\", \"CGRTool_graphmapper\", \"GroundTruth\"]]\n",
- "data_2.rename(\n",
- " columns={\"GraphMapper\": \"Mapped\", \"CGRTool_graphmapper\": \"CGRTool\"}, inplace=True\n",
- ")\n",
- "data_2[\"SynTemp\"] = data_2[\"CGRTool\"].apply(op_results)\n",
- "\n",
- "\n",
- "data_3 = new_rxn[[\"RXNMapper\", \"CGRTool_rxnmapper\", \"GroundTruth\"]]\n",
- "data_3.rename(\n",
- " columns={\"RXNMapper\": \"Mapped\", \"CGRTool_rxnmapper\": \"CGRTool\"}, inplace=True\n",
- ")\n",
- "data_3[\"SynTemp\"] = data_3[\"CGRTool\"].apply(op_results)\n",
- "\n",
- "data_4 = new_local[[\"LocalMapper\", \"CGRTool_localmapper\", \"GroundTruth\"]]\n",
- "data_4.rename(\n",
- " columns={\"LocalMapper\": \"Mapped\", \"CGRTool_localmapper\": \"CGRTool\"}, inplace=True\n",
- ")\n",
- "data_4[\"SynTemp\"] = data_4[\"CGRTool\"].apply(op_results)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "all_data = pd.concat([data_1, data_2, data_3, data_4], axis=0)\n",
- "all_data = all_data.drop_duplicates(subset=[\"Mapped\"])\n",
- "all_data.shape"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "test = all_data.to_dict(\"records\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "save_database(test, \"../../Data/AAM/cgrtool_benchmark/cgr_diff.json.gz\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "from synrbl.SynVis import save_reactions_to_pdf\n",
- "\n",
- "save_reactions_to_pdf(\n",
- " test,\n",
- " old_reaction_col=\"GroundTruth\",\n",
- " new_reaction_col=\"Mapped\",\n",
- " pdf_filename=\"../../Data/AAM/cgrtool_benchmark/cgr_diff.pdf\",\n",
- " compare=True,\n",
- " show_atom_numbers=True,\n",
- " orientation=\"vertical\",\n",
- ")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "df_old.iloc[2157, :][\"LocalMapper\"]"
+ "print(df_u2.loc[i, \"RXNMapper_correct\"])"
]
},
{
diff --git a/Docs/Analysis/_4_templates_analysis.ipynb b/Docs/Analysis/_4_templates_analysis.ipynb
index 82c8d06..bd24679 100644
--- a/Docs/Analysis/_4_templates_analysis.ipynb
+++ b/Docs/Analysis/_4_templates_analysis.ipynb
@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": null,
"metadata": {},
"outputs": [],
"source": [
@@ -52,21 +52,14 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": null,
"metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[313, 1577, 9798, 22248]\n",
- "[311, 1552, 9699, 22104]\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"raw = load_from_pickle(\"../../Data/Temp/Benchmark/Raw/templates.pkl.gz\")\n",
"complete = load_from_pickle(\"../../Data/Temp/Benchmark/Complete/templates.pkl.gz\")\n",
+ "\n",
+ "\n",
"def calculate(data):\n",
" number = []\n",
" for i in range(len(data)):\n",
@@ -90,7 +83,7 @@
},
{
"cell_type": "code",
- "execution_count": 15,
+ "execution_count": null,
"metadata": {},
"outputs": [],
"source": [
@@ -110,38 +103,18 @@
},
{
"cell_type": "code",
- "execution_count": 17,
+ "execution_count": null,
"metadata": {},
- "outputs": [
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "/homes/biertank/tieu/Documents/Project/TACsy/SynEco/SynTemp/Docs/Analysis/_analysis/_plot_analysis.py:56: FutureWarning: \n",
- "\n",
- "Passing `palette` without assigning `hue` is deprecated and will be removed in v0.14.0. Assign the `x` variable to `hue` and set `legend=False` for the same effect.\n",
- "\n",
- " barplot = sns.barplot(\n"
- ]
- },
- {
- "data": {
- "image/png": "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Iv3zn//UmjVrJFUFkDp16qSpU6dq5MiROvbYY/1cwrZnvrNIUkpKip577jkZhuHnUgWGt99+WykpKZKks88+W5999pm++eYbORwOzsNqqh9jaWlpGj16tJ9L1D7t3LlT//jHPyRJBw8e1DvvvKPKykolJSWpT58+HFOSVq1aZR1L//jHP3TZZZf5uUTtk3nO2Ww2XXDBBf4uTrPQGoQmW7p0qZKSkuTz+dSlSxf16dNHZWVlWrZsmYqKivTpp59qxowZ6tChg7+L6lfVLxjVI+8bNmzQsmXL9N577+nxxx9Xp06d/FhK/ysqKuIGdBTVH/gefvhhXX/99X4uUfv0zjvv6N577z3inFu9erWWLFmic845R9OnT6fxrA5Lly7VE088cUQPtHnz5mnIkCGaPHmyTjjhBD+Vrn0oLS3VtGnTJFVduySFfECkoKBAEydOlM/nq3HezZkzR9u2bVNSUpL69+/vxxK2Dx999JEOHTqk4cOH07jYSMuXL9eDDz6o7777rsbnbrdbd999t84//3zqUlVTPDz00EP68ccfa3w+b948nXfeefrDH/6gAQMG+Kl07ctf//pXRUVFqVOnToqOjg75czIyMlLh4eHq3LmzIiMjVVxcrH/+85+SRECkHubzeVhYmPr376+wsDAdOHBAP/30k5544gn5fD7dfPPNIVV3b731ltWY/7e//U3XXnutXnrpJa1evVo7d+7UMcccE/JtBHWp/r43c+ZM2e12JSUl6eOPP9bFF1/s59K1H9Xr6fHHH9e1117r5xK1Xz169NCIESP0zTff6Pjjj9emTZv07rvvShIBEVWNmn3++ecVFhamRx55RJdddplVH6FcL4c7/Jy77rrr/Fyi5iEYgiZZvXq1/vznP0uSUlNTdeGFF+qUU07RypUr9cILL6ioqEjvv/++SktLddZZZ/m5tP6zbNky64Jx3nnn6fTTT5cklZWV6a233tL27dtVUFCgbdu2ae7cuSHbOFtRUaHs7GxuQPU4/OZDIKR277//vu69915J0l133SWn06nKykp9//33ysrK0tatW/XVV1/pyy+/VFpamk488UQ/l7h9Wbx4sSZNmmSdc1FRUfrpp59kGIa2bt1q9cp+8cUXdcopp/i5tP6zd+9eSVLv3r21b98+rVy5UlLoBkSWL1+u5ORkSdK9996rU045RT///LNKSkqUm5ur119/XT169NB9993n55L6V2VlpSZNmqQzzzxTkZGROu+887jPNZB5bZKkyy+/XN26ddOPP/6oTz/9VKtWrZLP59OTTz6p3r17h3R9Vr+GX3rpperVq5f27dund999V5999pk1UjkzM1NnnHGGv4vrV9999522b9+u77//XlLVSK0LLrggZM/JyspKORwOjRw5UuvWrdNJJ52kVatWqbi4WM8995wkAiK1Wb16tfV8/uSTT+rss89Wx44dVVJSoueee06ffvqpHn30UZ1zzjkhM5q7eiDkwQcf1I033qiOHTtqxIgRevHFF7V//3716NHDv4Vsp6rX3QMPPKDf/e532rBhgzp37qwffvhBElPYSrwXN0ZlZaXCwsJ05pln6rXXXrOePb/++mstXbpUEgGRzz//XB988IFOOukkXXDBBVY9VFRUkIPm/wRbIEQiGIIm+OGHH/Twww9Lkp599lnFxMRYy0aMGKEePXro559/1tq1a1VSUhKywZCNGzfWGBp85ZVX1uhNfd111yknJ0effvqpPv30U82cOVMPPvhgSF5w169fr5UrV+qUU07RhRdeyA3oMI154AvVhxipaq7m5557TjabTc8++6xGjhxZY/lZZ52lV155Rf/973+1bt063XXXXZoyZYouueQSpg1R1Qu92dg4YcIEDR8+XBdeeKG+/fZbbdmyRU8//bS++eYb7dy5U3/+85+VlZUVsr2Lzz//fJ199tnavn27+vTpo9LSUhUVFclmsyk5OTmkAiJbtmzRAw88IKlqVF/18+7SSy/V3r179dZbb+mNN97QH/7wBw0cODBkz7cffvhBO3bsUGFhodWgaI5mCOVr99F89tlnmjJliiRp9uzZuvTSS2Wz2fTzzz9ryZIleuyxx7R69WrNnTvXGokbir766isr4Pjss8/qwgsvVNeuXSVJ3377rebMmaPly5fL6/Xqf/7nf/TAAw/oqquuCsmpWisqKrRs2TKVl5dLkt577z3reTNUAyLmdfmUU07Re++9p/vuu0+DBw/WggULtG7dOgIitdi3b59mzZqlsLAwpaWl6eqrr7YaHocPHy7DMPT999/rp59+0rp16zR48OCgr7fqjfkTJ07Utddea3X2M6cKW716ta6//nre8w5Tve7++te/6qabbpLP51PPnj0VGRmp9957Tzt27FCPHj1C9jlKqsp9YT4TPPbYY3W+F5ujlG02m3VehiJzvy+66CJJUnh4uJ555hn95S9/0YYNGwiISPr6668lSX379rVGsZeXl1vTav/3v//Vli1b1KVLF3Xs2FFXXnmlIiIiQmZ0W7AGH0PzioBmWb9+vb788ktdcsklGjFihHWjMZMyOp1OJSQkSJLVg8FMXhxKVq1apX379umee+7R7bffbgVCzLq45JJLdNddd6l3796SqqbNMnsbhwrz2DGTgB9//PHq16+fbDabysvLrQfk5cuXa8GCBXr99de1ZMkSHThwIGSOqddee81q3PnHP/5xxM3n8KRnofbwUt2mTZu0bt06nXDCCYqOjrbqxmzsOPPMM5WUlKSUlBT169dPX331lR555BG9//77JJWVNH/+fIWHh2v69OkaN26cLrzwQklV5+Xw4cP15JNPasSIEYqIiNC3336rgoICSaGXkNc8rgYMGKD9+/dr/Pjxuvjii7Vv3z653W49/fTT+vLLL/1cyrbzySef6Pvvv9ctt9yikSNHyufzWcdE37595XK5JEmGYejQoUMh+zJaXl6ud99917p3LV26VPPnz9dHH30kiQTF9Xn55Zfl8/k0bdo0XXbZZVYd9urVS5dccolcLpfCwsKsHv6hatWqVTp48KDGjRunkSNHWtOvHjx4UAMGDNCf//xnJScn66yzztKuXbv0wAMPaNGiRTp48KCfS952zGvTpk2b9MILL+jkk0/WrbfeKqlqNPe///1vffjhh5JC75w093X06NHWnPLTpk3TH/7wB5WXl1sBETP/oVk/oVRHh/viiy+0du1anXnmmbrooovk8/mse1yHDh10wQUXqGPHjqqoqFBxcbGkI5/bg0n1PBeTJk3SzTffrGOOOcZafs4550iqulZJIhBSTfVAyKRJk3T99dcrMjJSNptNvXr1ktPpVEREhPUcFczHUX3eeustTZkyRWFhYXriiSd0ww03WO95Us3zy2azWe/FofrsaaqoqFDPnj01aNAg5ebmas+ePXr22Wd1yimnqKysTEuXLlVmZmaNpOqh0NZiHi979uyp8e+KigorEDJx4kTdddddevTRRzV9+nRNmTJFCQkJuvfee63vBbM33nijQYGQ6u0BZj229+tUaF8V0CTr16+XJJ1xxhnq3LlzjZuMecDb7XZJsqZRCaWHHZ/Pp/379+u///2vpKrgUPVed+Hh4VY9nX/++UpKSpJU1fPRfFAONUe7Af3pT3/SzJkzdd9992nixIm68847NWXKlKB/gfd4PPrb3/4mqarh9aSTTpL0682mes+NH374QevXr9eiRYu0bNkyud1ua51QUVZWpsrKSvXr1092u92qm+rJ0o877jiNGjVKDz30kAYMGKBvvvnG6lUcyjZv3qwPPvhAffv21eWXX271JpZ+vWYNHDhQd999t7p3764DBw7o448/lhS6Lxg333yztm/frvXr12v27NkaMWKE9u3bp6KiIj399NP64osv/F3EVuXz+VReXm7d64YNGyap6uWz+vPAjTfeqAEDBqiiokI///yz38rrL+b1evPmzVq4cKFOOeUU3XLLLZKq8qwQEKnf999/ryVLlqhDhw4688wzJdW8pp944ok677zzVFlZKbfbrX379tV4NgiF+jSPsf/85z+SZHWyMZ+9IyMj5fP51Lt3b/32t7/VlClTFB0drT179igtLU2vvvpqjcakYGber/72t79p8+bNio2N1fTp0zV16lRJvwZEzGeCUDonzWemfv36yeFwaOnSpSouLlZqaqri4uJqDYiEYg9i6cjOXOecc4569epVoy58Pp/69OljjaQx342D9Zmpeo7MSZMm6Xe/+5169uxZYx3z2pSfny+Px+OPYrZLb775Zo1ASPW6M6/NkZGR+umnn/Tcc8+F7Hm3Y8cOvfDCC+rQoYMqKyv1ySefSKp6JigvL69RLyUlJXrllVd0//33a9q0aXrggQe0atUqbd682Y974D/h4eGKjIy0Eszn5+frxBNPVHp6ugYPHmwFRDIyMqyASHh4uCorK2UYhp9L33rM46VXr16SqjqP7N2713p+evzxx7VkyRJ17NhRPXv2tNo2zSlH4+PjVVpaGrQdA5ctW6a//vWvkqSEhAQrEFK9Lcrk8/l08OBB7dy50zpm2vt1KjjvxmhVhw4dklQ15L6ioqJG1Nj8+8aNG9WjRw8ZhqGVK1dq0aJFeuWVV/TBBx8EfQO2zWZTp06drIcYs3f14T0VzH9fe+21VjK0Xbt2tXFp/cu8QJp1deDAAR04cOCIG1BERIS6d+9uBQM+/vhjvfPOOxozZow2bNgQtDegvn37KiEhQccff7y2bt2qpKQkffnllwoLC6vRcFFYWKixY8fqtttu09SpU3X33XfrzjvvVEJCgp566qmgP+dM5siq9evXH5E4trqOHTvq4osv1syZM62AyCOPPGK91Iai3bt36+DBgxo8eHCtU1+ZQ8xPPvlkzZw5U5GRkfryyy918ODBkGkoMpnXreOPP16dOnXSvHnz9NNPPyktLU0XXXSRFRDJyMiwAiLmfTOY2Gw2RUREqLKyUhEREbr00ksl/fqAbB4z3333nXbs2CGpanTIjz/+qA8//FCFhYX66quvgv76dHjj66hRozRjxgyrlxUBkfqZ1/Vzzz3XCoaYzHo6+eSTJVV1GujcubP1Al99nWBmXpPMkSBmB5zqL6Hm3zt06KDzzjtPDz74oC644ALt3btX6enpWrZsWRuX2n8++eQTrVu3Tscdd5zGjBkjSbr99tt1//33S6p6+Z83b15IBkQqKyvVtWtXXX755ZKkFStWSJIeeeQR3XzzzTUCIu+//751fZs4caIWLVrkr2K3OfN82rdvnyRZo/+rHycVFRU6dOiQNm3aJJ/Pp82bN6uoqEipqam699579fzzz+udd95p+8K3gl27dmnatGmy2Wz6y1/+UmsgxOfz6bTTTtPll1+uffv2acOGDX4qbfuycuVKa8qn2oJIZvA/ISFBXbp00datW/1SzvagZ8+emjx5si655BJ16NBBCxcu1LRp0yRV1VP1kbdjxozR9OnT9dprr+nVV19Vbm6uEhISNHnyZL366qv+3A2/MEfxmflr33zzTe3cuVNnnHGGZs2aZQVECgsL9dRTT1nXtsTERF155ZX65Zdf/Fn8Vte5c2dJVUGO0tJSSVV5RF577TV17dpVzzzzjF5++WUtXLhQ//jHP3T55Zerd+/e2rhxo5KSkqyOYcHE5/Ppyy+/1KBBgyRVjRAxp1QLCwtTRUWFdS90u936+9//rt///ve66aabdNttt2nixIl644036m2T8TdyhqDRzLnQN2/erLKyMuuGbTaI7N27V6+88op27typuXPn6rvvvrO+GxYWpmHDhumRRx4J2uS75rBCc37UFStW6KqrrjpiveovqWZPmVCd4qFLly6SqoIcX3zxhc4880yVlpZq0aJF6tq1q5588kkNGjRIdrtdbrdbixYtUmlpqUpLS5WUlKT77rtPl112mZ/3ouX17t1b48aNk1TV4+qrr77SpEmTNGvWLOs8fP/993XPPfdIkk499VRFRETo4MGD+uqrr1RUVKTPPvtMn3/+uTIzM62GkmB1wQUX6NRTT9W2bdv08ccfa/To0fXOETt8+HDdf//9evjhh7VhwwZNmTJFOTk56t69exuX3P969OihyMhIbd++XYcOHap1DtSwsDBVVlbq+OOPV3l5ubxer3bs2KG+ffv6ocT+5fP5dNJJJ+mKK65Qfn6+PvnkE40ePVqzZs3Svffeq6KiIhUVFUmS7rnnHg0ZMkSVlZWaOnWqfv/73x/RqBuIfD6fDh06pL1796q8vFzffPON+vbta51v5ly7e/bsUefOnXXgwAHNmzdPH3/8sfXC2rNnT51wwgl66KGHdOqpp/pzd1rVhx9+qHXr1qlv377WqJBx48apsrJSs2bNsqack0QOkcPs2rVL+/bt06FDh464NpWXl6tDhw769ttvJUk7d+7U888/rxdeeEE+n0/dunXTCSecoLvuuktDhgzx1y60OvM4Of30062RobGxsVZPx9qccsopeuCBB5SamqqPP/5YU6dOVc+ePRUdHd1Wxfabs846S//617906qmnqk+fPta16o477pAkPfroozWCQxdeeGHInJPm9fucc87R/Pnz9frrrysuLk59+/bVQw89JEl65ZVXtG7dOmVnZ8tms2nevHlasWKFtm7dqmuuucZ6/wkFZg6M7du313jeNEe4796927o+FRUV6f3339f+/fslVQXCy8vL9dFHHyk5OTmgE4p369ZNr7zyij799FPFxMQcEQiRfp2yaOjQoXrvvff03HPPyeVyqU+fPn4ocfvRoUMHnXvuubriiit000031Vp3UtU7YUVFhVasWKG33norKJIXN1T13B/nn3++pKp2p5UrV+rVV1+VzWbTQw89pIiICH3wwQf685//LEmKjY3V8ccfL8MwtGnTJquhe/r06dq2bZvuuusuv+1TWzPvXRdffLGGDh2qkpISrV27VpdddplOO+00zZo1S5MmTdLGjRv13//+VzabTV6vV2vWrNHAgQODtuOpacSIEYqOjtaaNWusJPMbNmzQzp07NWfOHF1yySXWuiNHjtTpp5+upUuXat68edq6dasef/xxnXrqqTXyAwc6m82mxMREHXPMMVq4cKG+/vprK+gdExNjdV5etmyZ7r777iO+u2HDBq1evVqDBw/Wgw8+aHVcak8YGYJGczqd6t69uzWFz9q1a3Xw4EHt3r1bX375pe644w5t2LBB/fv316WXXqqpU6dq+vTpOvPMM2W327V27VolJyfr888/9/eutAqzt+yYMWMUHh6uzz77zPr8cGbvfrMRKNh7yNblsssu09lnny1JVs+yL7/8UoZh6Omnn9Zll12mE044QT169NDo0aP1wAMP6I9//KOOO+44bdq0SWlpaTWCbsGkZ8+eGjdunK655hr16dNHGzdu1KRJk6we548++qikqgbXl156Sbm5uZozZ46mT58uqarX2vLly3XbbbfpwIEDftuPthAREaFevXqprKxML730kvbu3Wv1XKjLJZdcoilTpqh3794qLS3VhAkTQvI8HDhwoE466ST98MMP2rlzp6Tae1SHhYXpjDPOsBrzO3bsGPSNQ7Ux9zkqKko+n0/z58+3OgfMmjVLw4cPt0aI/Otf/9Lnn3+u8ePH67XXXtOTTz4ZFFPS2Gw2RUZG6u6779aFF15oTQEiVR07EREROnDggKZOnaodO3YoMjJSP/74o4YPH24Fr3fv3q3PPvtMEydOtBqMgtH555+vZ555Ri+++KLV+CpJ48eP16RJkyQxQqQugwcP1umnn66IiAirEVGqamzs0KGDDh06pDfeeEOStHXrVv3rX//Sd999p23btunLL79UYWGhbr31Vi1evNhfu9DqzOPkjDPOkCStXbvWmoKmvvvfoEGDNGnSJJ1zzjnavXu3xo8fHxIjJMPDw3X55Zdb0/dFRERYdXjHHXeE9AgRc//OPPNM9e7d2xo1anrooYd00003qby8XJ9++qkmT56sFStWqH///nr22WfVsWPHoK+j6q655ho99NBDOu+882p0vAkPD9e+ffs0fvx4bd68Wb1799bZZ5+tlJQUTZ06VZdffrnV8eall17S7Nmz/bULLebUU0+ttzG/+owIxx9/vA4cOKCysjJJoZlb1HTBBRfo6aef1pgxY+qsO6kqgH377bdLkjVNbajU2+H5ic4//3yNGzdOI0aMUIcOHfTKK69YUx2aPfTHjx+vjIwM3X///Xr00Uc1b948XXnllaqsrJTP51NmZqbmzp3rr11qNfVdf83RamYA0uy0ZY7aSktL02mnnaadO3fqzTff1Jo1a3T88cfr9ddfV69evYLmeDu8jiorK1VRUWF1NP3oo49UUlKir7/+Wv3795fT6TwiB8aAAQN000036U9/+pP69u2rLVu2BN0U7mZH9z/84Q+Kj4/XySefrLKyMk2dOlWFhYWSpHXr1lkj3e+44w49++yzeuqpp3TvvfcqIiJCO3bs0Icffqhbb721febT9AFNsGzZMt8555zji4qK8rlcLt/ll1/ui4mJ8V100UW+qKgo329/+1uf1+v1VVZWWt/56quvfDk5Ob5LLrnEFxUV5bvhhht8hw4d8uNetK49e/b47r77bt/555/vW7NmTb3rvvXWW76oqCjfK6+80kalaz8qKip8hw4d8k2fPt06dkpLS31PPPGELyYmxvfzzz9bx1FFRYX1vZ07d/peeOEFn8vl8kVFRfluv/32oD6efv75Z9/jjz9unT/XXHON79133/WNGDHCN2HChBrrmvWUn5/vu+CCC3xRUVG+qKgo36OPPuqrrKyscV4Gm3Xr1vnOPfdcX1RUlG/ixInW5+Xl5XV+58cff/Q9+OCDvnPOOcc3bNgw38KFC9uiqO2GWTevvfaadZwcbf3bb7/dFxUV5fvll1/aoITtj3kOlZaW+s4991zfNddc49uzZ4+1fMeOHb477rjDFxUV5Tv77LN9w4cP90VFRfmuuOIK37fffuuvYrea6vtuOnTokC85Odna75deesn3zTffWMuLiop8f/3rX33R0dG+qKgo34033ug7cOBAWxbbL8zzrfp1ePbs2dZ1OikpqcYzQzBfr4/GvJft3bvX98knnxyxfP/+/b6xY8dax9jMmTN9n3zyiW/jxo2+oqIi39ixY32XX365Lyoqynf++ef71q9f39a70KYOHjzoi4+P90VFRfmuuuoq388//+zz+eq//5WXl/vy8vJ8MTExvqioKN+dd97p27FjR1sVuU2Y59DRzqXqy+fOnWudk3fddZdv1apVta4XzG688UZfVFSULyMjw1dZWVnj+jx16lSrfoYOHep7+eWXfT5f1TkbzPVT/Viq/k5Sm1mzZlnXpnfeecf3/fff11j+1ltvWc8JUVFRvhdffLHVyt2e7N2713fttdda1xtTMB83zWXWTW5uri8qKso3YsQI63nqaMdhIHv11Vd9TzzxRI3Pqh8na9as8U2YMME3dOhQX1RUlO/ee+/1jR492nfZZZf5fvjhB5/PV/UsWr194IEHHvBFRUX5Tj/9dN8111zj27JlS8DX4fLly31Lly61/n20c2nx4sW+qKgo3y233OIzDMNXUVHh279/v8/n8/nWr1/vO/vss31Op9N3xhln+P74xz9a1/5ArqeG1NG3335rtWXefvvtvsTERN/YsWPr3e62bdt8aWlpvmHDhvkuvvhi35dfftniZfcn8//5oUOHfHPnzvVdffXVvqioKN8FF1zge++993yFhYW+qKgo34wZM4747tq1a31XXnmldY+7+uqrfd99911b70K9GBmCJrniiiuUnZ2ts88+W7169dKhQ4c0fPhw9evXT506ddLUqVOtIXW+anM633jjjYqPj1e3bt20fv16a965YNSlSxc99thjysvL0/HHH1/vuub0Rb4Q6k1lCgsLU0REhO6880517dpVGzdu1KxZs/Tll1/qpJNOUs+ePa1e2NV7XXXv3l0jR47Utddeqw4dOmjLli3asmWLv3aj1VUfIXLcccdpw4YNSklJ0fbt261h+oeLjY215lKVpK+//toaph6snE6nbrvtNnXs2FGLFy/WzJkzJVX10qurR0ufPn0UFxenAQMG6ODBgyGXTN0c5nrhhRfqwQcfVOfOnetMdG1OA2GOAgj20UZ1Mc+h/v37KyIiQhs2bNCbb74pqSo/yLHHHqvs7GxrhMiOHTvUsWNHpaamqn///kGXQ8Sc6rD6PSwsLEwdOnTQCSecoL/+9a+68cYbdcIJJ1i9+y666CKNGzdO559/viIiIvT555+HRN4C83yr3sucESK1M6fm69y5s8455xxJNY+xVatWqaioSP369dP999+ve+65R+ecc45OPvlkXXTRRXrsscd04403qnfv3tq1a5emT58etLnZzJEyU6ZMUf/+/fXNN9/oz3/+swzDqPf+Fx4erssuu0wjRoxQeHi4vF6vNZd/oB93u3fv1t69e63e5+Z1u67pPqqfaw0ZIRLo9VMX81iJiYmRJH3zzTey2Ww1pqirPpLP5/Np0aJFVg6RYLxm1XYsHZ6/73AjR47UxRdfrClTpmjkyJHWu6B5/7/mmms0evRoa656czRXME9HY17P//SnP+mYY47RypUrlZ2dLan9J9r1J7NubrjhBjmdTm3fvl333Xefdu7cWedUwIFu8eLFmjp1qp5//vkaIxarX18OHyFiTikdFhamY445RlLVrAHV84k8+OCDuuqqq+Tz+bRp0ybt27cvoOvw1VdfVWJiop5//nkrx9PRrsHmu4vH49GmTZsUFhamjh07qry83MoXUlFRocrKSpWUlOjvf/+7fvzxR4WFhQXktb0hdVRRUaH+/fvrz3/+s7p06aIPP/xQy5cvV2lpab3T2B933HG68sordfDgQf30009WvpFgYT6HR0RE6NZbb60xQmTKlCl6/PHHJVW1DUu/3t8qKyt15plnKjMz0xrx9vPPP1sz5rSX4yhwz3z4lc1m07nnnqv//d//1Ztvvqn8/HzNmDFDl156qcrLy+VwOOTz+RQeHl7j4cZswDaHBn/99df+2oU20bVrVzkcDg0cOLDe9fr161fv8t27d+uVV16xklkFo5NOOkl//vOf1bFjR33wwQf64IMPVFpaqm3bttX5nb59+2rkyJE6dOiQfvjhB2vqqGBlBkSuvfZaHXfccdaUIebxY95Yqj+sXHvttdYL/fLly7Vp06agftEKCwvTrbfequHDhys8PFwvv/yynnrqKUn1B0SGDRtm5V5ZvHix1qxZ02Zlbmt1PYD069dPY8aMUXJycp1zzZsNHeby6tOLVLd3714raXYgashDWkVFhbp3765rr71WkqykluY9LyIiokZDic1mU25urtavX19rTpZgYO67z+dTWFiYHnvsMWVmZuqKK66w5pGvHpAdPHiwbr31VpWXl6uysjLonwkO19iASHt5eWgtte3f4Y0U1Z8pL7vsMk2fPl2pqam65JJLauR78vl86tu3r373u99ZjZB79uxppZK3rdrqyQyyDRo0SNdcc43sdrs+/vhjTZs2Tbt37673/tezZ0/dcccd6tWrl7Zs2aIFCxZICtzGyc8++0xPPPGEfv/73ys+Pl633367HnjgAb322ms6ePBgvY3YjQ2ISFXvMrt3726DPWsb5rFk5o9ZtmyZ1q5dK5vNpoqKCo0dO1ZFRUUaMGCAoqOjVV5erpKSEs2ePVsffPCBpOAJ4h7tWDr8Pm/y+Xw688wz9dRTTykmJqZGHpUOHTpYdXPLLbdo+PDhkqoSae/fvz9gz7uGMK/np512mjVFdFFRkbxer6T200DW2pqyn+aUfrGxsercubO++eYbLV26NCjf6d5++21NmjRJEREReuyxxzR48OAay+sKiJidSzt06HDEc3Z4eLh1rj7yyCMaPHiwysvLtWrVqjbYo9bx1VdfWTkciouL9eyzzzboGnzWWWdp+PDhKi8v1/LlyyVVNWKPHz9e77//vhwOh/7xj3+oe/fu2rlzp/7zn/8oMzNT27Ztk81mC6hjrqF1VP2+N2LECEVEVKXWDgsLs6Z3qm2/KyoqdNZZZyk2NlaSAv5ZoK7n8MMDIoMGDVJZWZm+/fZbhYeHW1Ovmeed+Z3TTz9dc+bMUYcOHVRWVlYjGNUeEAxBs5i9WSIjI7Vv3z69+eabKi8vV48ePWo9yM2T4sorr5SkoM3z0FjmC2ptI0T27NmjBQsWaPr06YqNjQ2oG1BjjR49Wi6Xq0bPWbM3SG37XVlZqejoaI0cOVJS4N+AGsIMiFx//fVWskXz5aL6OWc+rFRUVNRIHLt///6A7gHTEH369NGUKVN00kkn6dChQ5o7d66efPJJSbUHRHw+nyorK3XppZdaD9zB0mhm+uijj6y5YY/WSNGQl7RDhw4pLCxMxx577BHX+j179mj27Nm6+OKLrZ6OgaAxdST9+uDsdDolSa+//ro2b95sBYgSEhKs+Xb79++v/fv368MPP9QzzzwT9IFb8/oTHh6u008/XZGRkbWuV1lZqREjRug3v/mNpNB8JmjKCJFNmzYFzTWqseedybyO33rrrbr88sut5ydzO+a2+vfvr4kTJyoiIkJff/21Pvvss4BscGtoPR177LG64YYbdM455ygiIkKFhYWaNm2adu3aVWdAxOfzadCgQZo4caI1OiRQn6fefvttjRkzRjk5OdqwYYP1X25urp588kmlpKRo//79NXoKH+5oAZGioiIr4Jufn68bb7xR//rXv4JmPnWp6tp8xhlnaNCgQdq/f7/V+eaPf/yjVq1apf79++uNN97Q/PnzNWrUKJWXl2vdunWaM2eO1bjWXho7mqo5x5K57926dbMa1Q5fbs4tf8kllyg8PFw9evRQp06dAr7eGuKUU07RmDFjJFUFgZYsWSIpeIJotWnqvc4UHh6usLAwjRw5Uj179tTPP/+spUuXWj2xg+X68/bbb1s5CB5++GHdcMMNta53eEAkMTHRSq5+wQUX1HoeRURE6NChQ+rYsaN1jzNHewWiyMhIhYeH65hjjpHdbldxcbH++c9/1hsQMY+TAQMGSJLVzvKnP/1Jbrdb/fv3V05Ojn7zm98oOztbvXv31i+//KL3339fTz31lH744YeAakdobB2deuqpuvXWW+V0OhUeHq5ffvlFs2fP1u7du2vNQ2q+C5qf15d3s71qyLXp8IDImDFjNHjwYFVUVKiiokJ79+6t9TsVFRUaOnSo4uLiZLPZ9OOPP7b6/jRG4BzJaJfMG01kZKQ6d+6sHj16qHPnzlYE9fDeMubF0+ztb/biC6QLRmuq3nNWqmpU/Pe//62nn35akvT4448H1A2osY477jjdd999Ov300xUeHq7t27crKytLBw4cqPUGZNaF+fkvv/wiKfiPp549eyohIUHXXXed7rnnHt188821rhcWFqbw8HBFR0fruOOOU2RkZI3eacHs5JNP1tNPP61Bgwbp4MGDmj9/vtLT0yXV7B0k/TrdQefOndW1a1dJsobEBsOxVFlZqUmTJumFF16wki7W9yLWkBfxDh06qLKyUvv3768RqNyzZ4/mzZun2bNnq7KyMmASyTW2jqobMWKE+vbtqz179lh1d+edd6qoqEj9+/dXQUGBli1bJqfTqT179mj16tV69tln9fnnn7fqPvlbQ+5V5jrmdGtmgDcYzrvGOFpAxBypFhYWpiVLliguLk7PP/98wHeOaM55Z76Amt+pz3HHHaeuXbuqa9euOu644wKusbGx9XTyySfr7rvv1plnnqmwsDAVFBQoNTXVCojUNSqiW7duqqio0M8//xyQwbZly5ZZjWjnnXeebrvtNt12223W6L3t27eroKBACQkJOnDggMLDw+u9D9YVEJk/f76+/PJLFRYWavLkyTpw4ICuuOKKGsdkoAsLC1PXrl115plnSpJycnJ02223adWqVRowYIBeeukl63np6aeftgIiH330kdLS0gK6gVFq2WOpLmYngR07dqiiokIdO3bUoUOHgv7+Z+7fDTfcoN///veSpFmzZik/P19ScAZEmnOvq87n8+mUU07RfffdJ6lqxH/10e+B/kxQPRDy+OOP6/rrr693/ep1eN5552n8+PF6+OGHdffdd9fZCcccNXL66adLUo0RpYGksrJSDodDI0eOVNeuXXXaaaepoqJCxcXFeu655+ps7DfvU9dff70iIyP10UcfafTo0VqxYoX69++vF198UQMHDtTBgwc1bNgwZWVl6fjjj9f27dv12muvBdQsJY2tI7OeLrroIiUmJuqMM85QZGSkPvnkE02cOFEHDx48IvhRUVGh3bt3yzAMSdIZZ5xhbTMQNObadHhAJC4uTieccII1dVZtzPe8448/Xj6fT7t3725XgdsjuyoATWA2epWXl2vfvn3KysrSc889Zw0fNnvK2mw2GYahH374QeHh4brwwgslBc4Fo7WY8+9Xv8GYgZDMzExJ0oIFC6weD8HsxBNP1GOPPaa//vWv+vLLL1VUVKTJkycrIyOjxg3I7OG4d+9e7dq1SzabTVFRUZJC43jq1auXJk6cKJvNVqNH7OHKy8u1Zs0a/fTTT+rUqZN1rIWCU089VRkZGUpJSdGGDRuUnZ2tb7/9Vk899ZTVU6+iosIKtO3evdtqlDWH7wfDsfTDDz9ox44dKiwstB5wzj//fOvvTdlH8+WheqOaGQjJyMiQJL3wwgvWPP/tXXPqqFevXho4cKA+/vhjPf/88/J6vVYg5MUXX7QCkFlZWRo3bpxKS0v1wQcfaOfOnZo9e7aVbyMU+Xw+q+7NwK0UHOddY1U/1saPHy+pqoGooKBAUlUQfNOmTUpJSVF5ebkuvvjigO8c0RrXpurM73/33XfauXOnevfuXWeOrfasKfV05pln6r777tNjjz2m4uJiLVmyRLt27VJaWpqOPfZY63tmA4DNZlNkZKSVG6KuhqT2auPGjVYjWkpKiq688kqdcMIJ1vLrrrtOOTk5+vTTT/Xpp59q5syZevDBB+sNYFSv3zvuuEM+n0+PPfaY/vOf/2j79u1at26dpKrn8/POO691d7CNmft93nnn6Y033tBHH32k3bt3W/e1vn37qqKiQj6fTxEREXr66aeVlJSkd999Vw888EDANjBKrXMs1aW8vNyaHvKyyy4L2ik0q6t+vbr88sv13nvv6fvvv9fTTz+trl276uKLLw66Z4CWuteZ6w0fPlw33nijXnvtNS1YsED9+vXTHXfcYU2THIj115hASPV9rF6HF1xwgc4///yjPhtt27bNGsk9bNiwltuJNmTu4ymnnKL33ntP9913nwYPHqwFCxZo3bp1eu655yRVjTyr7Tg79thjFRYWpp9//lnbt29Xv3799OKLL+r4449XRUWFIiMjrRGC//znP3XLLbcoKytLgwYN8sv+NkVT6sisp5iYGB1zzDGaP3++ioqK9MEHHyghIUG33nqrzj//fGtaqPDwcBUWFurDDz/UwIEDddZZZ/ltf5uisdem6gGR//mf/9FZZ52lQYMGHbV9yQyAmLMKtRcEQ9AiwsLC1KlTJ40fP15/+9vf9N///ldTpkzRE088YTU6midUQUGBPv74Y5144okBewNqaeYDtBmF3b17t+bNmxdygRDTqaeeqlmzZunRRx/VqlWrtHTpUv3xj3/U73//e51//vlWIqbw8HAtXbo0ZI+n6jeU6jcsM8m1VDUkuKSkRFJVcqvevXu3fUH9yAyIzJw5U6tXr9aSJUu0d+9e3XnnnTrttNOshrGIiAj997//1fr163XiiSdawZBAV15ernfffdd6CFm6dKl1bDSn0dEcDtulSxeFhYUdEQgJpMah5tSRORXUiBEj9PHHHys/P1+GYVgNRuZLhc/nU8+ePZWdna0777xTn3/+uZKTk0MyEFL9+mSz2fSf//zHOu/MXsih6vCAiM/n01NPPaWCggL9+OOPVuLBBQsW6Nxzz/VvYZupta5Ntfn0008lVU2dUVc+pPaqOfV05plnaurUqfrXv/6loqIirVixQmPGjNE///lP9evXT126dKmRw6e0tFQ+n08XXHCBNUorUKxatUr79u3TPffco9tvv90K5pidZy655BJ17txZ999/v5Ukfu/everWrVu9263eQ3Ls2LHq1q2bpk6dWiMQEozP5+YxceGFF6pHjx7auXOnBgwYoAULFliBkMM7KGVmZmrjxo1HzO8faFrrWJJkdRA0vf7663rnnXfUsWNH/fa3v221fWqvLr74Yl100UV67bXXtHXrVs2bN0+9evWyelcHg9a413Xt2lXnnXeeCgoKtG/fPi1YsEDHHXecRo8e3aL3zrby2muv6f7775fNZtOzzz5rTX9tOnx/Dt83c2rWsLAwq26rP2seft69//772rx5swYPHlxnj/b2zqyT0aNH67nnntM777yjZ555RpWVlXrxxRfrbOyXqurrpJNO0v/8z/9ozpw56t27d413FvPabjZ8DxkyRKtXr7aS0geKptaRebwMHz5cdrtdTqdT8+bN08cff6zNmzerT58+GjlypAzD0P79+/Xyyy9LktLS0gLqGbOp16bqAZGjveub3920aZOV86g9jaIlGIIWdcEFF2jw4MH64osv9Oabb2rHjh2KjY3Vueeeq88//1ybNm3Ss88+K6nqgmE2aoc6czqCTp06qbKyUv/+97/1zDPPSAreF62jOemkkzRjxgwtXLhQ//73v1VUVKSNGzfq+OOPt25Ae/fu1cKFCyVJjz32WEgfT9VvVOaNrKysTG+++aaVL2PChAl+KZu/nXjiifr73/+uf/zjH1q8eLHef/99ff311+rfv79uvPFG/fDDD/rhhx+sYyktLS2gezVKv74EbN68WQsXLtQpp5yic889Vy+//LLV01xqfqNjZWWldu/erfnz59cIhATCNasl6sg8184++2xJkmEYVoPR4S8VFRUVVkDkhx9+0NChQ9tmR/3s8Hoz6+ynn37SkiVL9Mgjj0jimcBU/VibMGGCunbtqoceeqhGICQQzq+6tPa16fD1X3nlFc2ePVtS1T2wtvn726OWqien06m//OUv6tWrl/7zn//om2++0R//+EfFxMTo8ssv13nnnaeNGzfqs88+s6ZkHTt2bMA0pPl8Ph04cED//e9/JVXtb/VRLeb0RTabTeeff76SkpKUkpKizz77TMXFxXK5XA36DbM++vbta30+b968gD4XG+LEE0/UAw88oGeeeUZZWVnq169fjfua9OvUoxEREQEdCGmLY8m8/hQXF+v999+33onnzp1bY/RJKDA7kzz00EPavn27PvjgA61du1YLFizQnXfeqVNOOcXfRWyW1rrXmev97ne/k9fr1ezZs7V161a9/vrrOvbYYzV8+PCAuX5Lksfj0d/+9jdJVXksTjrpJEm/1l/1evnhhx/0yy+/qLS01Jqa3eVyWTmcDm/IN5nn3aZNm/Tuu+9aU4s98sgjAfu+Z9ZJv3795HA4tHTpUhUXFys1NVX79+9XXl7eEY39h9fTpEmTFBkZqRtuuKHWa7v0az0GWiBEanodRUREWMef0+nUoEGDNGLECD300EP6/vvvtX79eq1fv976jc6dOys7OztgZkNoyfdfU/XRxoevu2jRIr3zzjvq3LmzRowY0Xo71gSB8UaAgNGnTx89/vjjevjhh/XZZ59pxYoVWrFihSIjI3Xw4EHr5FiwYEHI9wCtznzY/u677zRnzpyQD4SY+vbtq7vuukvDhw/XzJkztW3bNhUXF6u4uFhS1Q2oY8eO+t///d+AuQG1pg8//FCGYWjgwIFasWKF1q5dq6VLl0qqOpbM+VFDUf/+/XXffffpsssu08MPP6ytW7fK6/Vq9erVkn69qQfLtcncn7/97W/avHmz7rnnHt1zzz064YQTlJ6e3uxGR3Ou8K1bt2rJkiUBec1qyTpyuVyaOHGi5s2bp3nz5tXbYNS7d++QGqFl1teOHTusfGEFBQX68MMPrflpg+W8aynmUP2wsDA5HA7r82BofG3ta5Pp3Xff1apVq/Tiiy9KqjrGzKk0A0FL1tMpp5yi8ePHa8iQIZo/f742bNigBQsWaMGCBXI4HNq2bZs1ReQLL7wQUPVkThVqBlLN6Xfrmkbl2muv1RtvvKEVK1Zo165dDfoN8/9FYWGh7rnnHknS/PnzrWn9gt3VV1+tkSNHKjIy8oge1qZACTLWpzWPpc8//1ylpaXauXOnPB6P3G63fvnlF3Xu3Flz584NuKlVWoLZKBsREaHnnntOd9xxhz7++GMtWrRI/+///T9/F6/ZWuteZ7PZrOfLiRMnyjAMvfTSS1q+fLnCw8M1bNgw6xk9EPTt21cJCQlavHixtm7dqqSkJD311FM67bTTVF5ebj1HFxYWKj09XT/99FONnFbDhw/XsGHDdM899xxxjdq8ebNmz56tU089VZs2bdKnn35qJQx/4YUXAv65s7KyUl27dtXll1+u+fPna8WKFRo2bJgeeeQRhYeH65VXXrEa+ysrK3XZZZdJkiZPnqy+ffvqvvvus+5pdV3bA11T6+jee+9Vnz59dP/996tLly46++yz9fzzz8vj8WjFihX66aeftG3bNl1xxRWKiYmp8aze3rXGtclctnXrVqsuioqKtHLlSmVnZ0uSnn/++XZXT8F3xMPvTj31VKWnp2v58uX697//rb1792rfvn2KiIjQb3/7W8XFxQV8b4+WZg6pe/31163k84HUqNiaOnTooAsuuEA5OTkqKSnR8uXLtWPHDv3000+6/PLLddVVV4Vcb6q6fP3113rwwQetf3fo0EEOh0OzZs0KuSnEatOtWzddddVVGjZsmJYtW6aSkhKrl9G1116rmJgYq0dSMPjwww+1bt069e3bV7fccoskady4caqsrKyRi0BqfKNjp06dFBERoRdffFELFiyQFJjXrJasowkTJui2227TMcccE9QNRk1hGIaeeOIJvf7669ZnnTt31iWXXKKUlBSddtpp/itcOxTsja+tcW367LPP9O6776q4uFj79++3Ok30799fmZmZATkSqyXrqX///rrlllsUGxurJ598Ups2bdKaNWv0/fffq0OHDhoxYoQmTpwYcPXk8/ms5NOStGLFCl111VVHrFe9Tsxg9Pfff9/g31m+fLl1Lgbiva65zE5bwXwPa61jyefzafny5crKytKuXbsUERGhXr16ady4cbr55pt14okntvCeBI7qo4qeeuopxcfH66GHHmp3DWZN1VrP4WbezPDwcD3wwAPavXu33nrrLd15550BFQiRqs6hcePGSarKG/LVV19p0qRJmjVrlvVs+P7771vX31NPPVURERE6ePCgvvrqKxUVFemzzz7T559/rszMTHXq1Mmqm4MHD+o///mPXnvtNUlV168RI0YoJSUlKDoIms+K55xzjubPn6/XX39dcXFx6tu3rx566CFJshr7s7OzZbPZNG/ePCsgsHv3but4CdZre0vVkc/nU48ePTRixIh2N7qhKVrj2nTo0CGlpaXpl19+kc/n09q1a3Xo0CFFRERowYIF1iwK7YnNV1uqeKCFHDp0SJKsYEgozo/eEF9//bWuu+46KxlxKL5oofk2b96s559/Xjt27FCXLl10/fXX6/TTTw+pXuhNUX1e2WBSWVmpZcuWaciQIRowYECNBvo5c+Zo1qxZkqTY2Fjdfvvt1jWnIS9is2bN0pw5c6x/B+o1qzXqKNDmam4rmzZtktvt1s6dO9WrVy+dffbZGjRokNXwhJree+89q3dsoJ5fdWmN8279+vWaNWuWPv/8cx177LGy2+363e9+J5fLZSW6DDQtXU/mva6yslI+n08bNmxQRUWFevfurZ49ewZ08uaSkhLFx8frjjvu0JQpU2pdx6y/559/XmlpaZo0aZLGjx/foO1/8803io2NVU5OjoYPH96SRUc70xrHUnl5uX744QcZhqFevXqpQ4cOTAtZjXnN2rVrV4NyrwSK1nwOl37NY/Pdd99p9+7dAd2xZMeOHcrOztbbb7+tbdu2afDgwXryyScVFRWlUaNGWT3Yx44dq8jISP3000967733rAZtSRo6dKheeOEF67myvLxcK1eu1Pbt29WtWzcNGzZMvXv3Duh7XXXmcbJ161aNGTNGPp9PCxcurBFMnDp1qhYtWmS1w5l5DV966SX17ds36N9ZWrqOqrcZBHL7QWtcm/bs2aN7771X7733niIiInTMMcfopptu0u9+97t2m5snOEOAaDciIiJks9mC5qbTWgYOHKjrrrtOeXl5mjt3blA1erSkum5GqHLSSSdZD4XB/nDTXIcncQ5GYWFhuvLKKyXJmoqgenJmSU3u/XHuueeqe/fuKisr0/z58wP2mtUadRSsx1NzDRo0SIMGDfJ3MQLGgAEDJEk5OTkBe37V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",
- "text/plain": [
- "