From 74a1e4834bb9b295214d846b3fe033d629799419 Mon Sep 17 00:00:00 2001 From: Ozbolt Menegatti Date: Mon, 29 Oct 2018 11:29:51 +0100 Subject: [PATCH] First commit --- msd_translate.py | 1903 ++++++++++++++++++++++++++++++++++++++++++++++ wani.py | 372 +++++++++ 2 files changed, 2275 insertions(+) create mode 100644 msd_translate.py create mode 100644 wani.py diff --git a/msd_translate.py b/msd_translate.py new file mode 100644 index 0000000..ccab003 --- /dev/null +++ b/msd_translate.py @@ -0,0 +1,1903 @@ +MSD_TRANSLATE = { + "Somei": "Ncmsn", + "Somer": "Ncmsg", + "Somed": "Ncmsd", + "Sometn": "Ncmsan", + "Sometd": "Ncmsay", + "Somem": "Ncmsl", + "Someo": "Ncmsi", + "Somdi": "Ncmdn", + "Somdr": "Ncmdg", + "Somdd": "Ncmdd", + "Somdt": "Ncmda", + "Somdm": "Ncmdl", + "Somdo": "Ncmdi", + "Sommi": "Ncmpn", + "Sommr": "Ncmpg", + "Sommd": "Ncmpd", + "Sommt": "Ncmpa", + "Sommm": "Ncmpl", + "Sommo": "Ncmpi", + "Sozei": "Ncfsn", + "Sozer": "Ncfsg", + "Sozed": "Ncfsd", + "Sozet": "Ncfsa", + "Sozem": "Ncfsl", + "Sozeo": "Ncfsi", + "Sozdi": "Ncfdn", + "Sozdr": "Ncfdg", + "Sozdd": "Ncfdd", + "Sozdt": "Ncfda", + "Sozdm": "Ncfdl", + "Sozdo": "Ncfdi", + "Sozmi": "Ncfpn", + "Sozmr": "Ncfpg", + "Sozmd": "Ncfpd", + "Sozmt": "Ncfpa", + "Sozmm": "Ncfpl", + "Sozmo": "Ncfpi", + "Sosei": "Ncnsn", + "Soser": "Ncnsg", + "Sosed": "Ncnsd", + "Soset": "Ncnsa", + "Sosem": "Ncnsl", + "Soseo": "Ncnsi", + "Sosdi": "Ncndn", + "Sosdr": "Ncndg", + "Sosdd": "Ncndd", + "Sosdt": "Ncnda", + "Sosdm": "Ncndl", + "Sosdo": "Ncndi", + "Sosmi": "Ncnpn", + "Sosmr": "Ncnpg", + "Sosmd": "Ncnpd", + "Sosmt": "Ncnpa", + "Sosmm": "Ncnpl", + "Sosmo": "Ncnpi", + "Slmei": "Npmsn", + "Slmer": "Npmsg", + "Slmed": "Npmsd", + "Slmetn": "Npmsan", + "Slmetd": "Npmsay", + "Slmem": "Npmsl", + "Slmeo": "Npmsi", + "Slmdi": "Npmdn", + "Slmdr": "Npmdg", + "Slmdd": "Npmdd", + "Slmdt": "Npmda", + "Slmdm": "Npmdl", + "Slmdo": "Npmdi", + "Slmmi": "Npmpn", + "Slmmr": "Npmpg", + "Slmmd": "Npmpd", + "Slmmt": "Npmpa", + "Slmmm": "Npmpl", + "Slmmo": "Npmpi", + "Slzei": "Npfsn", + "Slzer": "Npfsg", + "Slzed": "Npfsd", + "Slzet": "Npfsa", + "Slzem": "Npfsl", + "Slzeo": "Npfsi", + "Slzdi": "Npfdn", + "Slzdr": "Npfdg", + "Slzdd": "Npfdd", + "Slzdt": "Npfda", + "Slzdm": "Npfdl", + "Slzdo": "Npfdi", + "Slzmi": "Npfpn", + "Slzmr": "Npfpg", + "Slzmd": "Npfpd", + "Slzmt": "Npfpa", + "Slzmm": "Npfpl", + "Slzmo": "Npfpi", + "Slsei": "Npnsn", + "Slser": "Npnsg", + "Slsed": "Npnsd", + "Slset": "Npnsa", + "Slsem": "Npnsl", + "Slseo": "Npnsi", + "Slsmi": "Npnpn", + "Slsmr": "Npnpg", + "Slsmd": "Npnpd", + "Slsmt": "Npnpa", + "Slsmm": "Npnpl", + "Slsmo": "Npnpi", + "Ggdn": "Vmen", + "Ggdm": "Vmeu", + "Ggdd-em": "Vmep-sm", + "Ggdd-ez": "Vmep-sf", + "Ggdd-es": "Vmep-sn", + "Ggdd-mm": "Vmep-pm", + "Ggdd-mz": "Vmep-pf", + "Ggdd-ms": "Vmep-pn", + "Ggdd-dm": "Vmep-dm", + "Ggdd-dz": "Vmep-df", + "Ggdd-ds": "Vmep-dn", + "Ggdspe": "Vmer1s", + "Ggdspm": "Vmer1p", + "Ggdspd": "Vmer1d", + "Ggdsde": "Vmer2s", + "Ggdsdm": "Vmer2p", + "Ggdsdd": "Vmer2d", + "Ggdste": "Vmer3s", + "Ggdstm": "Vmer3p", + "Ggdstd": "Vmer3d", + "Ggdvpm": "Vmem1p", + "Ggdvpd": "Vmem1d", + "Ggdvde": "Vmem2s", + "Ggdvdm": "Vmem2p", + "Ggdvdd": "Vmem2d", + "Ggnn": "Vmpn", + "Ggnm": "Vmpu", + "Ggnd-em": "Vmpp-sm", + "Ggnd-ez": "Vmpp-sf", + "Ggnd-es": "Vmpp-sn", + "Ggnd-mm": "Vmpp-pm", + "Ggnd-mz": "Vmpp-pf", + "Ggnd-ms": "Vmpp-pn", + "Ggnd-dm": "Vmpp-dm", + "Ggnd-dz": "Vmpp-df", + "Ggnd-ds": "Vmpp-dn", + "Ggnspe": "Vmpr1s", + "Ggnspe-n": "Vmpr1s-n", + "Ggnspe-d": "Vmpr1s-y", + "Ggnspm": "Vmpr1p", + "Ggnspm-n": "Vmpr1p-n", + "Ggnspm-d": "Vmpr1p-y", + "Ggnspd": "Vmpr1d", + "Ggnspd-n": "Vmpr1d-n", + "Ggnspd-d": "Vmpr1d-y", + "Ggnsde": "Vmpr2s", + "Ggnsde-n": "Vmpr2s-n", + "Ggnsde-d": "Vmpr2s-y", + "Ggnsdm": "Vmpr2p", + "Ggnsdm-n": "Vmpr2p-n", + "Ggnsdm-d": "Vmpr2p-y", + "Ggnsdd": "Vmpr2d", + "Ggnsdd-n": "Vmpr2d-n", + "Ggnsdd-d": "Vmpr2d-y", + "Ggnste": "Vmpr3s", + "Ggnste-n": "Vmpr3s-n", + "Ggnste-d": "Vmpr3s-y", + "Ggnstm": "Vmpr3p", + "Ggnstm-n": "Vmpr3p-n", + "Ggnstm-d": "Vmpr3p-y", + "Ggnstd": "Vmpr3d", + "Ggnstd-n": "Vmpr3d-n", + "Ggnstd-d": "Vmpr3d-y", + "Ggnvpm": "Vmpm1p", + "Ggnvpd": "Vmpm1d", + "Ggnvde": "Vmpm2s", + "Ggnvdm": "Vmpm2p", + "Ggnvdd": "Vmpm2d", + "Ggvn": "Vmbn", + "Ggvm": "Vmbu", + "Ggvd-em": "Vmbp-sm", + "Ggvd-ez": "Vmbp-sf", + "Ggvd-es": "Vmbp-sn", + "Ggvd-mm": "Vmbp-pm", + "Ggvd-mz": "Vmbp-pf", + "Ggvd-ms": "Vmbp-pn", + "Ggvd-dm": "Vmbp-dm", + "Ggvd-dz": "Vmbp-df", + "Ggvd-ds": "Vmbp-dn", + "Ggvspe": "Vmbr1s", + "Ggvspm": "Vmbr1p", + "Ggvspd": "Vmbr1d", + "Ggvspdz": "Vmbr1df", + "Ggvsde": "Vmbr2s", + "Ggvsdm": "Vmbr2p", + "Ggvsdd": "Vmbr2d", + "Ggvste": "Vmbr3s", + "Ggvstm": "Vmbr3p", + "Ggvstd": "Vmbr3d", + "Ggvppe": "Vmbf1s", + "Ggvppm": "Vmbf1p", + "Ggvppd": "Vmbf1d", + "Ggvpde": "Vmbf2s", + "Ggvpdm": "Vmbf2p", + "Ggvpdd": "Vmbf2d", + "Ggvpte": "Vmbf3s", + "Ggvptm": "Vmbf3p", + "Ggvptd": "Vmbf3d", + "Ggvvpm": "Vmbm1p", + "Ggvvpd": "Vmbm1d", + "Ggvvde": "Vmbm2s", + "Ggvvdm": "Vmbm2p", + "Ggvvdd": "Vmbm2d", + "Gp-n": "Va-n", + "Gp-m": "Va-u", + "Gp-d-em": "Va-p-sm", + "Gp-d-ez": "Va-p-sf", + "Gp-d-es": "Va-p-sn", + "Gp-d-mm": "Va-p-pm", + "Gp-d-mz": "Va-p-pf", + "Gp-d-ms": "Va-p-pn", + "Gp-d-dm": "Va-p-dm", + "Gp-d-dz": "Va-p-df", + "Gp-d-ds": "Va-p-dn", + "Gp-spe-n": "Va-r1s-n", + "Gp-spe-d": "Va-r1s-y", + "Gp-spm-n": "Va-r1p-n", + "Gp-spm-d": "Va-r1p-y", + "Gp-spd-n": "Va-r1d-n", + "Gp-spd-d": "Va-r1d-y", + "Gp-spdzn": "Va-r1dfn", + "Gp-sde-n": "Va-r2s-n", + "Gp-sde-d": "Va-r2s-y", + "Gp-sdm-n": "Va-r2p-n", + "Gp-sdm-d": "Va-r2p-y", + "Gp-sdd-n": "Va-r2d-n", + "Gp-sdd-d": "Va-r2d-y", + "Gp-ste-n": "Va-r3s-n", + "Gp-ste-d": "Va-r3s-y", + "Gp-stm-n": "Va-r3p-n", + "Gp-stm-d": "Va-r3p-y", + "Gp-std-n": "Va-r3d-n", + "Gp-std-d": "Va-r3d-y", + "Gp-ppe-n": "Va-f1s-n", + "Gp-ppe-d": "Va-f1s-y", + "Gp-ppm-n": "Va-f1p-n", + "Gp-ppm-d": "Va-f1p-y", + "Gp-ppd": "Va-f1d", + "Gp-ppd-n": "Va-f1d-n", + "Gp-ppd-d": "Va-f1d-y", + "Gp-pde-n": "Va-f2s-n", + "Gp-pde-d": "Va-f2s-y", + "Gp-pdm-n": "Va-f2p-n", + "Gp-pdd-n": "Va-f2d-n", + "Gp-pte-n": "Va-f3s-n", + "Gp-pte-d": "Va-f3s-y", + "Gp-ptm-n": "Va-f3p-n", + "Gp-ptm-d": "Va-f3p-y", + "Gp-ptd-n": "Va-f3d-n", + "Gp-g": "Va-c", + "Gp-g---d": "Va-c---y", + "Gp-vpm": "Va-m1p", + "Gp-vpd": "Va-m1d", + "Gp-vde": "Va-m2s", + "Gp-vdm": "Va-m2p", + "Gp-vdd": "Va-m2d", + "Ppnmein": "Agpmsnn", + "Ppnmeid": "Agpmsny", + "Ppnmer": "Agpmsg", + "Ppnmed": "Agpmsd", + "Ppnmet": "Agpmsa", + "Ppnmetn": "Agpmsan", + "Ppnmetd": "Agpmsay", + "Ppnmem": "Agpmsl", + "Ppnmeo": "Agpmsi", + "Ppnmdi": "Agpmdn", + "Ppnmdr": "Agpmdg", + "Ppnmdd": "Agpmdd", + "Ppnmdt": "Agpmda", + "Ppnmdm": "Agpmdl", + "Ppnmdo": "Agpmdi", + "Ppnmmi": "Agpmpn", + "Ppnmmr": "Agpmpg", + "Ppnmmd": "Agpmpd", + "Ppnmmt": "Agpmpa", + "Ppnmmm": "Agpmpl", + "Ppnmmo": "Agpmpi", + "Ppnzei": "Agpfsn", + "Ppnzer": "Agpfsg", + "Ppnzed": "Agpfsd", + "Ppnzet": "Agpfsa", + "Ppnzem": "Agpfsl", + "Ppnzeo": "Agpfsi", + "Ppnzdi": "Agpfdn", + "Ppnzdr": "Agpfdg", + "Ppnzdd": "Agpfdd", + "Ppnzdt": "Agpfda", + "Ppnzdm": "Agpfdl", + "Ppnzdo": "Agpfdi", + "Ppnzmi": "Agpfpn", + "Ppnzmr": "Agpfpg", + "Ppnzmd": "Agpfpd", + "Ppnzmt": "Agpfpa", + "Ppnzmm": "Agpfpl", + "Ppnzmo": "Agpfpi", + "Ppnsei": "Agpnsn", + "Ppnser": "Agpnsg", + "Ppnsed": "Agpnsd", + "Ppnset": "Agpnsa", + "Ppnsem": "Agpnsl", + "Ppnseo": "Agpnsi", + "Ppnsdi": "Agpndn", + "Ppnsdr": "Agpndg", + "Ppnsdd": "Agpndd", + "Ppnsdt": "Agpnda", + "Ppnsdm": "Agpndl", + "Ppnsdo": "Agpndi", + "Ppnsmi": "Agpnpn", + "Ppnsmr": "Agpnpg", + "Ppnsmd": "Agpnpd", + "Ppnsmt": "Agpnpa", + "Ppnsmm": "Agpnpl", + "Ppnsmo": "Agpnpi", + "Pppmeid": "Agcmsny", + "Pppmer": "Agcmsg", + "Pppmed": "Agcmsd", + "Pppmet": "Agcmsa", + "Pppmetd": "Agcmsay", + "Pppmem": "Agcmsl", + "Pppmeo": "Agcmsi", + "Pppmdi": "Agcmdn", + "Pppmdr": "Agcmdg", + "Pppmdd": "Agcmdd", + "Pppmdt": "Agcmda", + "Pppmdm": "Agcmdl", + "Pppmdo": "Agcmdi", + "Pppmmi": "Agcmpn", + "Pppmmr": "Agcmpg", + "Pppmmd": "Agcmpd", + "Pppmmt": "Agcmpa", + "Pppmmm": "Agcmpl", + "Pppmmo": "Agcmpi", + "Pppzei": "Agcfsn", + "Pppzer": "Agcfsg", + "Pppzed": "Agcfsd", + "Pppzet": "Agcfsa", + "Pppzem": "Agcfsl", + "Pppzeo": "Agcfsi", + "Pppzdi": "Agcfdn", + "Pppzdr": "Agcfdg", + "Pppzdd": "Agcfdd", + "Pppzdt": "Agcfda", + "Pppzdm": "Agcfdl", + "Pppzdo": "Agcfdi", + "Pppzmi": "Agcfpn", + "Pppzmr": "Agcfpg", + "Pppzmd": "Agcfpd", + "Pppzmt": "Agcfpa", + "Pppzmm": "Agcfpl", + "Pppzmo": "Agcfpi", + "Pppsei": "Agcnsn", + "Pppser": "Agcnsg", + "Pppsed": "Agcnsd", + "Pppset": "Agcnsa", + "Pppsem": "Agcnsl", + "Pppseo": "Agcnsi", + "Pppsdi": "Agcndn", + "Pppsdr": "Agcndg", + "Pppsdd": "Agcndd", + "Pppsdt": "Agcnda", + "Pppsdm": "Agcndl", + "Pppsdo": "Agcndi", + "Pppsmi": "Agcnpn", + "Pppsmr": "Agcnpg", + "Pppsmd": "Agcnpd", + "Pppsmt": "Agcnpa", + "Pppsmm": "Agcnpl", + "Pppsmo": "Agcnpi", + "Ppsmeid": "Agsmsny", + "Ppsmer": "Agsmsg", + "Ppsmed": "Agsmsd", + "Ppsmet": "Agsmsa", + "Ppsmetd": "Agsmsay", + "Ppsmem": "Agsmsl", + "Ppsmeo": "Agsmsi", + "Ppsmdi": "Agsmdn", + "Ppsmdr": "Agsmdg", + "Ppsmdd": "Agsmdd", + "Ppsmdt": "Agsmda", + "Ppsmdm": "Agsmdl", + "Ppsmdo": "Agsmdi", + "Ppsmmi": "Agsmpn", + "Ppsmmr": "Agsmpg", + "Ppsmmd": "Agsmpd", + "Ppsmmt": "Agsmpa", + "Ppsmmm": "Agsmpl", + "Ppsmmo": "Agsmpi", + "Ppszei": "Agsfsn", + "Ppszer": "Agsfsg", + "Ppszed": "Agsfsd", + "Ppszet": "Agsfsa", + "Ppszem": "Agsfsl", + "Ppszeo": "Agsfsi", + "Ppszdi": "Agsfdn", + "Ppszdr": "Agsfdg", + "Ppszdd": "Agsfdd", + "Ppszdt": "Agsfda", + "Ppszdm": "Agsfdl", + "Ppszdo": "Agsfdi", + "Ppszmi": "Agsfpn", + "Ppszmr": "Agsfpg", + "Ppszmd": "Agsfpd", + "Ppszmt": "Agsfpa", + "Ppszmm": "Agsfpl", + "Ppszmo": "Agsfpi", + "Ppssei": "Agsnsn", + "Ppsser": "Agsnsg", + "Ppssed": "Agsnsd", + "Ppsset": "Agsnsa", + "Ppssem": "Agsnsl", + "Ppsseo": "Agsnsi", + "Ppssdi": "Agsndn", + "Ppssdr": "Agsndg", + "Ppssdd": "Agsndd", + "Ppssdt": "Agsnda", + "Ppssdm": "Agsndl", + "Ppssdo": "Agsndi", + "Ppssmi": "Agsnpn", + "Ppssmr": "Agsnpg", + "Ppssmd": "Agsnpd", + "Ppssmt": "Agsnpa", + "Ppssmm": "Agsnpl", + "Ppssmo": "Agsnpi", + "Psnmein": "Aspmsnn", + "Psnmer": "Aspmsg", + "Psnmed": "Aspmsd", + "Psnmet": "Aspmsa", + "Psnmetn": "Aspmsan", + "Psnmem": "Aspmsl", + "Psnmeo": "Aspmsi", + "Psnmdi": "Aspmdn", + "Psnmdr": "Aspmdg", + "Psnmdd": "Aspmdd", + "Psnmdt": "Aspmda", + "Psnmdm": "Aspmdl", + "Psnmdo": "Aspmdi", + "Psnmmi": "Aspmpn", + "Psnmmr": "Aspmpg", + "Psnmmd": "Aspmpd", + "Psnmmt": "Aspmpa", + "Psnmmm": "Aspmpl", + "Psnmmo": "Aspmpi", + "Psnzei": "Aspfsn", + "Psnzer": "Aspfsg", + "Psnzed": "Aspfsd", + "Psnzet": "Aspfsa", + "Psnzem": "Aspfsl", + "Psnzeo": "Aspfsi", + "Psnzdi": "Aspfdn", + "Psnzdr": "Aspfdg", + "Psnzdd": "Aspfdd", + "Psnzdt": "Aspfda", + "Psnzdm": "Aspfdl", + "Psnzdo": "Aspfdi", + "Psnzmi": "Aspfpn", + "Psnzmr": "Aspfpg", + "Psnzmd": "Aspfpd", + "Psnzmt": "Aspfpa", + "Psnzmm": "Aspfpl", + "Psnzmo": "Aspfpi", + "Psnsei": "Aspnsn", + "Psnser": "Aspnsg", + "Psnsed": "Aspnsd", + "Psnset": "Aspnsa", + "Psnsem": "Aspnsl", + "Psnseo": "Aspnsi", + "Psnsdi": "Aspndn", + "Psnsdr": "Aspndg", + "Psnsdd": "Aspndd", + "Psnsdt": "Aspnda", + "Psnsdm": "Aspndl", + "Psnsdo": "Aspndi", + "Psnsmi": "Aspnpn", + "Psnsmr": "Aspnpg", + "Psnsmd": "Aspnpd", + "Psnsmt": "Aspnpa", + "Psnsmm": "Aspnpl", + "Psnsmo": "Aspnpi", + "Pdnmein": "Appmsnn", + "Pdnmeid": "Appmsny", + "Pdnmer": "Appmsg", + "Pdnmed": "Appmsd", + "Pdnmet": "Appmsa", + "Pdnmetn": "Appmsan", + "Pdnmetd": "Appmsay", + "Pdnmem": "Appmsl", + "Pdnmeo": "Appmsi", + "Pdnmdi": "Appmdn", + "Pdnmdr": "Appmdg", + "Pdnmdd": "Appmdd", + "Pdnmdt": "Appmda", + "Pdnmdm": "Appmdl", + "Pdnmdo": "Appmdi", + "Pdnmmi": "Appmpn", + "Pdnmmr": "Appmpg", + "Pdnmmd": "Appmpd", + "Pdnmmt": "Appmpa", + "Pdnmmm": "Appmpl", + "Pdnmmo": "Appmpi", + "Pdnzei": "Appfsn", + "Pdnzer": "Appfsg", + "Pdnzed": "Appfsd", + "Pdnzet": "Appfsa", + "Pdnzem": "Appfsl", + "Pdnzeo": "Appfsi", + "Pdnzdi": "Appfdn", + "Pdnzdr": "Appfdg", + "Pdnzdd": "Appfdd", + "Pdnzdt": "Appfda", + "Pdnzdm": "Appfdl", + "Pdnzdo": "Appfdi", + "Pdnzmi": "Appfpn", + "Pdnzmr": "Appfpg", + "Pdnzmd": "Appfpd", + "Pdnzmt": "Appfpa", + "Pdnzmm": "Appfpl", + "Pdnzmo": "Appfpi", + "Pdnsei": "Appnsn", + "Pdnser": "Appnsg", + "Pdnsed": "Appnsd", + "Pdnset": "Appnsa", + "Pdnsem": "Appnsl", + "Pdnseo": "Appnsi", + "Pdnsdi": "Appndn", + "Pdnsdr": "Appndg", + "Pdnsdd": "Appndd", + "Pdnsdt": "Appnda", + "Pdnsdm": "Appndl", + "Pdnsdo": "Appndi", + "Pdnsmi": "Appnpn", + "Pdnsmr": "Appnpg", + "Pdnsmd": "Appnpd", + "Pdnsmt": "Appnpa", + "Pdnsmm": "Appnpl", + "Pdnsmo": "Appnpi", + "Rsn": "Rgp", + "Rsr": "Rgc", + "Rss": "Rgs", + "Rd": "Rr", + "Zop-ei": "Pp1-sn", + "Zop-er": "Pp1-sg", + "Zop-er--k": "Pp1-sg--y", + "Zop-ed": "Pp1-sd", + "Zop-ed--k": "Pp1-sd--y", + "Zop-et": "Pp1-sa", + "Zop-et--k": "Pp1-sa--y", + "Zop-et--z": "Pp1-sa--b", + "Zop-em": "Pp1-sl", + "Zop-eo": "Pp1-si", + "Zop-dr": "Pp1-dg", + "Zop-dd": "Pp1-dd", + "Zop-dt": "Pp1-da", + "Zop-dm": "Pp1-dl", + "Zop-do": "Pp1-di", + "Zop-mr": "Pp1-pg", + "Zop-md": "Pp1-pd", + "Zop-mt": "Pp1-pa", + "Zop-mm": "Pp1-pl", + "Zop-mo": "Pp1-pi", + "Zopmdi": "Pp1mdn", + "Zopmmi": "Pp1mpn", + "Zopzdi": "Pp1fdn", + "Zopzmi": "Pp1fpn", + "Zopsdi": "Pp1ndn", + "Zopsmi": "Pp1npn", + "Zod-ei": "Pp2-sn", + "Zod-er": "Pp2-sg", + "Zod-er--k": "Pp2-sg--y", + "Zod-ed": "Pp2-sd", + "Zod-ed--k": "Pp2-sd--y", + "Zod-et": "Pp2-sa", + "Zod-et--k": "Pp2-sa--y", + "Zod-et--z": "Pp2-sa--b", + "Zod-em": "Pp2-sl", + "Zod-eo": "Pp2-si", + "Zod-dr": "Pp2-dg", + "Zod-dd": "Pp2-dd", + "Zod-dt": "Pp2-da", + "Zod-dm": "Pp2-dl", + "Zod-do": "Pp2-di", + "Zod-mr": "Pp2-pg", + "Zod-md": "Pp2-pd", + "Zod-mt": "Pp2-pa", + "Zod-mm": "Pp2-pl", + "Zod-mo": "Pp2-pi", + "Zodmdi": "Pp2mdn", + "Zodmmi": "Pp2mpn", + "Zodzdi": "Pp2fdn", + "Zodzmi": "Pp2fpn", + "Zodsdi": "Pp2ndn", + "Zodsmi": "Pp2npn", + "Zotmei": "Pp3msn", + "Zotmer": "Pp3msg", + "Zotmer--k": "Pp3msg--y", + "Zotmed": "Pp3msd", + "Zotmed--k": "Pp3msd--y", + "Zotmet": "Pp3msa", + "Zotmet--k": "Pp3msa--y", + "Zotmet--z": "Pp3msa--b", + "Zotmem": "Pp3msl", + "Zotmeo": "Pp3msi", + "Zotmdi": "Pp3mdn", + "Zotmdr": "Pp3mdg", + "Zotmdr--k": "Pp3mdg--y", + "Zotmdd": "Pp3mdd", + "Zotmdd--k": "Pp3mdd--y", + "Zotmdt": "Pp3mda", + "Zotmdt--k": "Pp3mda--y", + "Zotmdt--z": "Pp3mda--b", + "Zotmdm": "Pp3mdl", + "Zotmdo": "Pp3mdi", + "Zotmmi": "Pp3mpn", + "Zotmmr": "Pp3mpg", + "Zotmmr--k": "Pp3mpg--y", + "Zotmmd": "Pp3mpd", + "Zotmmd--k": "Pp3mpd--y", + "Zotmmt": "Pp3mpa", + "Zotmmt--k": "Pp3mpa--y", + "Zotmmt--z": "Pp3mpa--b", + "Zotmmm": "Pp3mpl", + "Zotmmo": "Pp3mpi", + "Zotzei": "Pp3fsn", + "Zotzer": "Pp3fsg", + "Zotzer--k": "Pp3fsg--y", + "Zotzed": "Pp3fsd", + "Zotzed--k": "Pp3fsd--y", + "Zotzet": "Pp3fsa", + "Zotzet--k": "Pp3fsa--y", + "Zotzet--z": "Pp3fsa--b", + "Zotzem": "Pp3fsl", + "Zotzeo": "Pp3fsi", + "Zotzdi": "Pp3fdn", + "Zotzdr": "Pp3fdg", + "Zotzdr--k": "Pp3fdg--y", + "Zotzdd": "Pp3fdd", + "Zotzdd--k": "Pp3fdd--y", + "Zotzdt": "Pp3fda", + "Zotzdt--k": "Pp3fda--y", + "Zotzdt--z": "Pp3fda--b", + "Zotzdm": "Pp3fdl", + "Zotzdo": "Pp3fdi", + "Zotzmi": "Pp3fpn", + "Zotzmr": "Pp3fpg", + "Zotzmr--k": "Pp3fpg--y", + "Zotzmd": "Pp3fpd", + "Zotzmd--k": "Pp3fpd--y", + "Zotzmt": "Pp3fpa", + "Zotzmt--k": "Pp3fpa--y", + "Zotzmt--z": "Pp3fpa--b", + "Zotzmm": "Pp3fpl", + "Zotzmo": "Pp3fpi", + "Zotsei": "Pp3nsn", + "Zotser": "Pp3nsg", + "Zotser--k": "Pp3nsg--y", + "Zotsed": "Pp3nsd", + "Zotsed--k": "Pp3nsd--y", + "Zotset": "Pp3nsa", + "Zotset--k": "Pp3nsa--y", + "Zotset--z": "Pp3nsa--b", + "Zotsem": "Pp3nsl", + "Zotseo": "Pp3nsi", + "Zotsdi": "Pp3ndn", + "Zotsdr": "Pp3ndg", + "Zotsdr--k": "Pp3ndg--y", + "Zotsdd": "Pp3ndd", + "Zotsdd--k": "Pp3ndd--y", + "Zotsdt": "Pp3nda", + "Zotsdt--k": "Pp3nda--y", + "Zotsdt--z": "Pp3nda--b", + "Zotsdm": "Pp3ndl", + "Zotsdo": "Pp3ndi", + "Zotsmi": "Pp3npn", + "Zotsmr": "Pp3npg", + "Zotsmr--k": "Pp3npg--y", + "Zotsmd": "Pp3npd", + "Zotsmd--k": "Pp3npd--y", + "Zotsmt": "Pp3npa", + "Zotsmt--k": "Pp3npa--y", + "Zotsmt--z": "Pp3npa--b", + "Zotsmm": "Pp3npl", + "Zotsmo": "Pp3npi", + "Zspmeie": "Ps1msns", + "Zspmeid": "Ps1msnd", + "Zspmeim": "Ps1msnp", + "Zspmere": "Ps1msgs", + "Zspmerd": "Ps1msgd", + "Zspmerm": "Ps1msgp", + "Zspmede": "Ps1msds", + "Zspmedd": "Ps1msdd", + "Zspmedm": "Ps1msdp", + "Zspmete": "Ps1msas", + "Zspmetd": "Ps1msad", + "Zspmetm": "Ps1msap", + "Zspmeme": "Ps1msls", + "Zspmemd": "Ps1msld", + "Zspmemm": "Ps1mslp", + "Zspmeoe": "Ps1msis", + "Zspmeod": "Ps1msid", + "Zspmeom": "Ps1msip", + "Zspmdie": "Ps1mdns", + "Zspmdid": "Ps1mdnd", + "Zspmdim": "Ps1mdnp", + "Zspmdre": "Ps1mdgs", + "Zspmdrd": "Ps1mdgd", + "Zspmdrm": "Ps1mdgp", + "Zspmdde": "Ps1mdds", + "Zspmddd": "Ps1mddd", + "Zspmddm": "Ps1mddp", + "Zspmdte": "Ps1mdas", + "Zspmdtd": "Ps1mdad", + "Zspmdtm": "Ps1mdap", + "Zspmdme": "Ps1mdls", + "Zspmdmd": "Ps1mdld", + "Zspmdmm": "Ps1mdlp", + "Zspmdoe": "Ps1mdis", + "Zspmdod": "Ps1mdid", + "Zspmdom": "Ps1mdip", + "Zspmmie": "Ps1mpns", + "Zspmmid": "Ps1mpnd", + "Zspmmim": "Ps1mpnp", + "Zspmmre": "Ps1mpgs", + "Zspmmrd": "Ps1mpgd", + "Zspmmrm": "Ps1mpgp", + "Zspmmde": "Ps1mpds", + "Zspmmdd": "Ps1mpdd", + "Zspmmdm": "Ps1mpdp", + "Zspmmte": "Ps1mpas", + "Zspmmtd": "Ps1mpad", + "Zspmmtm": "Ps1mpap", + "Zspmmme": "Ps1mpls", + "Zspmmmd": "Ps1mpld", + "Zspmmmm": "Ps1mplp", + "Zspmmoe": "Ps1mpis", + "Zspmmod": "Ps1mpid", + "Zspmmom": "Ps1mpip", + "Zspzeie": "Ps1fsns", + "Zspzeid": "Ps1fsnd", + "Zspzeim": "Ps1fsnp", + "Zspzere": "Ps1fsgs", + "Zspzerd": "Ps1fsgd", + "Zspzerm": "Ps1fsgp", + "Zspzede": "Ps1fsds", + "Zspzedd": "Ps1fsdd", + "Zspzedm": "Ps1fsdp", + "Zspzete": "Ps1fsas", + "Zspzetd": "Ps1fsad", + "Zspzetm": "Ps1fsap", + "Zspzeme": "Ps1fsls", + "Zspzemd": "Ps1fsld", + "Zspzemm": "Ps1fslp", + "Zspzeoe": "Ps1fsis", + "Zspzeod": "Ps1fsid", + "Zspzeom": "Ps1fsip", + "Zspzdie": "Ps1fdns", + "Zspzdid": "Ps1fdnd", + "Zspzdim": "Ps1fdnp", + "Zspzdre": "Ps1fdgs", + "Zspzdrd": "Ps1fdgd", + "Zspzdrm": "Ps1fdgp", + "Zspzdde": "Ps1fdds", + "Zspzddd": "Ps1fddd", + "Zspzddm": "Ps1fddp", + "Zspzdte": "Ps1fdas", + "Zspzdtd": "Ps1fdad", + "Zspzdtm": "Ps1fdap", + "Zspzdme": "Ps1fdls", + "Zspzdmd": "Ps1fdld", + "Zspzdmm": "Ps1fdlp", + "Zspzdoe": "Ps1fdis", + "Zspzdod": "Ps1fdid", + "Zspzdom": "Ps1fdip", + "Zspzmie": "Ps1fpns", + "Zspzmid": "Ps1fpnd", + "Zspzmim": "Ps1fpnp", + "Zspzmre": "Ps1fpgs", + "Zspzmrd": "Ps1fpgd", + "Zspzmrm": "Ps1fpgp", + "Zspzmde": "Ps1fpds", + "Zspzmdd": "Ps1fpdd", + "Zspzmdm": "Ps1fpdp", + "Zspzmte": "Ps1fpas", + "Zspzmtd": "Ps1fpad", + "Zspzmtm": "Ps1fpap", + "Zspzmme": "Ps1fpls", + "Zspzmmd": "Ps1fpld", + "Zspzmmm": "Ps1fplp", + "Zspzmoe": "Ps1fpis", + "Zspzmod": "Ps1fpid", + "Zspzmom": "Ps1fpip", + "Zspseie": "Ps1nsns", + "Zspseid": "Ps1nsnd", + "Zspseim": "Ps1nsnp", + "Zspsere": "Ps1nsgs", + "Zspserd": "Ps1nsgd", + "Zspserm": "Ps1nsgp", + "Zspsede": "Ps1nsds", + "Zspsedd": "Ps1nsdd", + "Zspsedm": "Ps1nsdp", + "Zspsete": "Ps1nsas", + "Zspsetd": "Ps1nsad", + "Zspsetm": "Ps1nsap", + "Zspseme": "Ps1nsls", + "Zspsemd": "Ps1nsld", + "Zspsemm": "Ps1nslp", + "Zspseoe": "Ps1nsis", + "Zspseod": "Ps1nsid", + "Zspseom": "Ps1nsip", + "Zspsdie": "Ps1ndns", + "Zspsdid": "Ps1ndnd", + "Zspsdim": "Ps1ndnp", + "Zspsdre": "Ps1ndgs", + "Zspsdrd": "Ps1ndgd", + "Zspsdrm": "Ps1ndgp", + "Zspsdde": "Ps1ndds", + "Zspsddd": "Ps1nddd", + "Zspsddm": "Ps1nddp", + "Zspsdte": "Ps1ndas", + "Zspsdtd": "Ps1ndad", + "Zspsdtm": "Ps1ndap", + "Zspsdme": "Ps1ndls", + "Zspsdmd": "Ps1ndld", + "Zspsdmm": "Ps1ndlp", + "Zspsdoe": "Ps1ndis", + "Zspsdod": "Ps1ndid", + "Zspsdom": "Ps1ndip", + "Zspsmie": "Ps1npns", + "Zspsmid": "Ps1npnd", + "Zspsmim": "Ps1npnp", + "Zspsmre": "Ps1npgs", + "Zspsmrd": "Ps1npgd", + "Zspsmrm": "Ps1npgp", + "Zspsmde": "Ps1npds", + "Zspsmdd": "Ps1npdd", + "Zspsmdm": "Ps1npdp", + "Zspsmte": "Ps1npas", + "Zspsmtd": "Ps1npad", + "Zspsmtm": "Ps1npap", + "Zspsmme": "Ps1npls", + "Zspsmmd": "Ps1npld", + "Zspsmmm": "Ps1nplp", + "Zspsmoe": "Ps1npis", + "Zspsmod": "Ps1npid", + "Zspsmom": "Ps1npip", + "Zsdmeie": "Ps2msns", + "Zsdmeid": "Ps2msnd", + "Zsdmeim": "Ps2msnp", + "Zsdmere": "Ps2msgs", + "Zsdmerd": "Ps2msgd", + "Zsdmerm": "Ps2msgp", + "Zsdmede": "Ps2msds", + "Zsdmedd": "Ps2msdd", + "Zsdmedm": "Ps2msdp", + "Zsdmete": "Ps2msas", + "Zsdmetd": "Ps2msad", + "Zsdmetm": "Ps2msap", + "Zsdmeme": "Ps2msls", + "Zsdmemd": "Ps2msld", + "Zsdmemm": "Ps2mslp", + "Zsdmeoe": "Ps2msis", + "Zsdmeod": "Ps2msid", + "Zsdmeom": "Ps2msip", + "Zsdmdie": "Ps2mdns", + "Zsdmdid": "Ps2mdnd", + "Zsdmdim": "Ps2mdnp", + "Zsdmdre": "Ps2mdgs", + "Zsdmdrd": "Ps2mdgd", + "Zsdmdrm": "Ps2mdgp", + "Zsdmdde": "Ps2mdds", + "Zsdmddd": "Ps2mddd", + "Zsdmddm": "Ps2mddp", + "Zsdmdte": "Ps2mdas", + "Zsdmdtd": "Ps2mdad", + "Zsdmdtm": "Ps2mdap", + "Zsdmdme": "Ps2mdls", + "Zsdmdmd": "Ps2mdld", + "Zsdmdmm": "Ps2mdlp", + "Zsdmdoe": "Ps2mdis", + "Zsdmdod": "Ps2mdid", + "Zsdmdom": "Ps2mdip", + "Zsdmmie": "Ps2mpns", + "Zsdmmid": "Ps2mpnd", + "Zsdmmim": "Ps2mpnp", + "Zsdmmre": "Ps2mpgs", + "Zsdmmrd": "Ps2mpgd", + "Zsdmmrm": "Ps2mpgp", + "Zsdmmde": "Ps2mpds", + "Zsdmmdd": "Ps2mpdd", + "Zsdmmdm": "Ps2mpdp", + "Zsdmmte": "Ps2mpas", + "Zsdmmtd": "Ps2mpad", + "Zsdmmtm": "Ps2mpap", + "Zsdmmme": "Ps2mpls", + "Zsdmmmd": "Ps2mpld", + "Zsdmmmm": "Ps2mplp", + "Zsdmmoe": "Ps2mpis", + "Zsdmmod": "Ps2mpid", + "Zsdmmom": "Ps2mpip", + "Zsdzeie": "Ps2fsns", + "Zsdzeid": "Ps2fsnd", + "Zsdzeim": "Ps2fsnp", + "Zsdzere": "Ps2fsgs", + "Zsdzerd": "Ps2fsgd", + "Zsdzerm": "Ps2fsgp", + "Zsdzede": "Ps2fsds", + "Zsdzedd": "Ps2fsdd", + "Zsdzedm": "Ps2fsdp", + "Zsdzete": "Ps2fsas", + "Zsdzetd": "Ps2fsad", + "Zsdzetm": "Ps2fsap", + "Zsdzeme": "Ps2fsls", + "Zsdzemd": "Ps2fsld", + "Zsdzemm": "Ps2fslp", + "Zsdzeoe": "Ps2fsis", + "Zsdzeod": "Ps2fsid", + "Zsdzeom": "Ps2fsip", + "Zsdzdie": "Ps2fdns", + "Zsdzdid": "Ps2fdnd", + "Zsdzdim": "Ps2fdnp", + "Zsdzdre": "Ps2fdgs", + "Zsdzdrd": "Ps2fdgd", + "Zsdzdrm": "Ps2fdgp", + "Zsdzdde": "Ps2fdds", + "Zsdzddd": "Ps2fddd", + "Zsdzddm": "Ps2fddp", + "Zsdzdte": "Ps2fdas", + "Zsdzdtd": "Ps2fdad", + "Zsdzdtm": "Ps2fdap", + "Zsdzdme": "Ps2fdls", + "Zsdzdmd": "Ps2fdld", + "Zsdzdmm": "Ps2fdlp", + "Zsdzdoe": "Ps2fdis", + "Zsdzdod": "Ps2fdid", + "Zsdzdom": "Ps2fdip", + "Zsdzmie": "Ps2fpns", + "Zsdzmid": "Ps2fpnd", + "Zsdzmim": "Ps2fpnp", + "Zsdzmre": "Ps2fpgs", + "Zsdzmrd": "Ps2fpgd", + "Zsdzmrm": "Ps2fpgp", + "Zsdzmde": "Ps2fpds", + "Zsdzmdd": "Ps2fpdd", + "Zsdzmdm": "Ps2fpdp", + "Zsdzmte": "Ps2fpas", + "Zsdzmtd": "Ps2fpad", + "Zsdzmtm": "Ps2fpap", + "Zsdzmme": "Ps2fpls", + "Zsdzmmd": "Ps2fpld", + "Zsdzmmm": "Ps2fplp", + "Zsdzmoe": "Ps2fpis", + "Zsdzmod": "Ps2fpid", + "Zsdzmom": "Ps2fpip", + "Zsdseie": "Ps2nsns", + "Zsdseid": "Ps2nsnd", + "Zsdseim": "Ps2nsnp", + "Zsdsere": "Ps2nsgs", + "Zsdserd": "Ps2nsgd", + "Zsdserm": "Ps2nsgp", + "Zsdsede": "Ps2nsds", + "Zsdsedd": "Ps2nsdd", + "Zsdsedm": "Ps2nsdp", + "Zsdsete": "Ps2nsas", + "Zsdsetd": "Ps2nsad", + "Zsdsetm": "Ps2nsap", + "Zsdseme": "Ps2nsls", + "Zsdsemd": "Ps2nsld", + "Zsdsemm": "Ps2nslp", + "Zsdseoe": "Ps2nsis", + "Zsdseod": "Ps2nsid", + "Zsdseom": "Ps2nsip", + "Zsdsdie": "Ps2ndns", + "Zsdsdid": "Ps2ndnd", + "Zsdsdim": "Ps2ndnp", + "Zsdsdre": "Ps2ndgs", + "Zsdsdrd": "Ps2ndgd", + "Zsdsdrm": "Ps2ndgp", + "Zsdsdde": "Ps2ndds", + "Zsdsddd": "Ps2nddd", + "Zsdsddm": "Ps2nddp", + "Zsdsdte": "Ps2ndas", + "Zsdsdtd": "Ps2ndad", + "Zsdsdtm": "Ps2ndap", + "Zsdsdme": "Ps2ndls", + "Zsdsdmd": "Ps2ndld", + "Zsdsdmm": "Ps2ndlp", + "Zsdsdoe": "Ps2ndis", + "Zsdsdod": "Ps2ndid", + "Zsdsdom": "Ps2ndip", + "Zsdsmie": "Ps2npns", + "Zsdsmid": "Ps2npnd", + "Zsdsmim": "Ps2npnp", + "Zsdsmre": "Ps2npgs", + "Zsdsmrd": "Ps2npgd", + "Zsdsmrm": "Ps2npgp", + "Zsdsmde": "Ps2npds", + "Zsdsmdd": "Ps2npdd", + "Zsdsmdm": "Ps2npdp", + "Zsdsmte": "Ps2npas", + "Zsdsmtd": "Ps2npad", + "Zsdsmtm": "Ps2npap", + "Zsdsmme": "Ps2npls", + "Zsdsmmd": "Ps2npld", + "Zsdsmmm": "Ps2nplp", + "Zsdsmoe": "Ps2npis", + "Zsdsmod": "Ps2npid", + "Zsdsmom": "Ps2npip", + "Zstmeiem": "Ps3msnsm", + "Zstmeiez": "Ps3msnsf", + "Zstmeies": "Ps3msnsn", + "Zstmeid": "Ps3msnd", + "Zstmeim": "Ps3msnp", + "Zstmerem": "Ps3msgsm", + "Zstmerez": "Ps3msgsf", + "Zstmeres": "Ps3msgsn", + "Zstmerd": "Ps3msgd", + "Zstmerm": "Ps3msgp", + "Zstmedem": "Ps3msdsm", + "Zstmedez": "Ps3msdsf", + "Zstmedes": "Ps3msdsn", + "Zstmedd": "Ps3msdd", + "Zstmedm": "Ps3msdp", + "Zstmetem": "Ps3msasm", + "Zstmetez": "Ps3msasf", + "Zstmetes": "Ps3msasn", + "Zstmetd": "Ps3msad", + "Zstmetm": "Ps3msap", + "Zstmemem": "Ps3mslsm", + "Zstmemez": "Ps3mslsf", + "Zstmemes": "Ps3mslsn", + "Zstmemd": "Ps3msld", + "Zstmemm": "Ps3mslp", + "Zstmeoem": "Ps3msism", + "Zstmeoez": "Ps3msisf", + "Zstmeoes": "Ps3msisn", + "Zstmeod": "Ps3msid", + "Zstmeom": "Ps3msip", + "Zstmdiem": "Ps3mdnsm", + "Zstmdiez": "Ps3mdnsf", + "Zstmdies": "Ps3mdnsn", + "Zstmdid": "Ps3mdnd", + "Zstmdim": "Ps3mdnp", + "Zstmdrem": "Ps3mdgsm", + "Zstmdrez": "Ps3mdgsf", + "Zstmdres": "Ps3mdgsn", + "Zstmdrd": "Ps3mdgd", + "Zstmdrm": "Ps3mdgp", + "Zstmddem": "Ps3mddsm", + "Zstmddez": "Ps3mddsf", + "Zstmddes": "Ps3mddsn", + "Zstmddd": "Ps3mddd", + "Zstmddm": "Ps3mddp", + "Zstmdtem": "Ps3mdasm", + "Zstmdtez": "Ps3mdasf", + "Zstmdtes": "Ps3mdasn", + "Zstmdtd": "Ps3mdad", + "Zstmdtm": "Ps3mdap", + "Zstmdmem": "Ps3mdlsm", + "Zstmdmez": "Ps3mdlsf", + "Zstmdmes": "Ps3mdlsn", + "Zstmdmd": "Ps3mdld", + "Zstmdmm": "Ps3mdlp", + "Zstmdoem": "Ps3mdism", + "Zstmdoez": "Ps3mdisf", + "Zstmdoes": "Ps3mdisn", + "Zstmdod": "Ps3mdid", + "Zstmdom": "Ps3mdip", + "Zstmmiem": "Ps3mpnsm", + "Zstmmiez": "Ps3mpnsf", + "Zstmmies": "Ps3mpnsn", + "Zstmmid": "Ps3mpnd", + "Zstmmim": "Ps3mpnp", + "Zstmmrem": "Ps3mpgsm", + "Zstmmrez": "Ps3mpgsf", + "Zstmmres": "Ps3mpgsn", + "Zstmmrd": "Ps3mpgd", + "Zstmmrm": "Ps3mpgp", + "Zstmmdem": "Ps3mpdsm", + "Zstmmdez": "Ps3mpdsf", + "Zstmmdes": "Ps3mpdsn", + "Zstmmdd": "Ps3mpdd", + "Zstmmdm": "Ps3mpdp", + "Zstmmtem": "Ps3mpasm", + "Zstmmtez": "Ps3mpasf", + "Zstmmtes": "Ps3mpasn", + "Zstmmtd": "Ps3mpad", + "Zstmmtm": "Ps3mpap", + "Zstmmmem": "Ps3mplsm", + "Zstmmmez": "Ps3mplsf", + "Zstmmmes": "Ps3mplsn", + "Zstmmmd": "Ps3mpld", + "Zstmmmm": "Ps3mplp", + "Zstmmoem": "Ps3mpism", + "Zstmmoez": "Ps3mpisf", + "Zstmmoes": "Ps3mpisn", + "Zstmmod": "Ps3mpid", + "Zstmmom": "Ps3mpip", + "Zstzeiem": "Ps3fsnsm", + "Zstzeiez": "Ps3fsnsf", + "Zstzeies": "Ps3fsnsn", + "Zstzeid": "Ps3fsnd", + "Zstzeim": "Ps3fsnp", + "Zstzerem": "Ps3fsgsm", + "Zstzerez": "Ps3fsgsf", + "Zstzeres": "Ps3fsgsn", + "Zstzerd": "Ps3fsgd", + "Zstzerm": "Ps3fsgp", + "Zstzedem": "Ps3fsdsm", + "Zstzedez": "Ps3fsdsf", + "Zstzedes": "Ps3fsdsn", + "Zstzedd": "Ps3fsdd", + "Zstzedm": "Ps3fsdp", + "Zstzetem": "Ps3fsasm", + "Zstzetez": "Ps3fsasf", + "Zstzetes": "Ps3fsasn", + "Zstzetd": "Ps3fsad", + "Zstzetm": "Ps3fsap", + "Zstzemem": "Ps3fslsm", + "Zstzemez": "Ps3fslsf", + "Zstzemes": "Ps3fslsn", + "Zstzemd": "Ps3fsld", + "Zstzemm": "Ps3fslp", + "Zstzeoem": "Ps3fsism", + "Zstzeoez": "Ps3fsisf", + "Zstzeoes": "Ps3fsisn", + "Zstzeod": "Ps3fsid", + "Zstzeom": "Ps3fsip", + "Zstzdiem": "Ps3fdnsm", + "Zstzdiez": "Ps3fdnsf", + "Zstzdies": "Ps3fdnsn", + "Zstzdid": "Ps3fdnd", + "Zstzdim": "Ps3fdnp", + "Zstzdrem": "Ps3fdgsm", + "Zstzdrez": "Ps3fdgsf", + "Zstzdres": "Ps3fdgsn", + "Zstzdrd": "Ps3fdgd", + "Zstzdrm": "Ps3fdgp", + "Zstzddem": "Ps3fddsm", + "Zstzddez": "Ps3fddsf", + "Zstzddes": "Ps3fddsn", + "Zstzddd": "Ps3fddd", + "Zstzddm": "Ps3fddp", + "Zstzdtem": "Ps3fdasm", + "Zstzdtez": "Ps3fdasf", + "Zstzdtes": "Ps3fdasn", + "Zstzdtd": "Ps3fdad", + "Zstzdtm": "Ps3fdap", + "Zstzdmem": "Ps3fdlsm", + "Zstzdmez": "Ps3fdlsf", + "Zstzdmes": "Ps3fdlsn", + "Zstzdmd": "Ps3fdld", + "Zstzdmm": "Ps3fdlp", + "Zstzdoem": "Ps3fdism", + "Zstzdoez": "Ps3fdisf", + "Zstzdoes": "Ps3fdisn", + "Zstzdod": "Ps3fdid", + "Zstzdom": "Ps3fdip", + "Zstzmiem": "Ps3fpnsm", + "Zstzmiez": "Ps3fpnsf", + "Zstzmies": "Ps3fpnsn", + "Zstzmid": "Ps3fpnd", + "Zstzmim": "Ps3fpnp", + "Zstzmrem": "Ps3fpgsm", + "Zstzmrez": "Ps3fpgsf", + "Zstzmres": "Ps3fpgsn", + "Zstzmrd": "Ps3fpgd", + "Zstzmrm": "Ps3fpgp", + "Zstzmdem": "Ps3fpdsm", + "Zstzmdez": "Ps3fpdsf", + "Zstzmdes": "Ps3fpdsn", + "Zstzmdd": "Ps3fpdd", + "Zstzmdm": "Ps3fpdp", + "Zstzmtem": "Ps3fpasm", + "Zstzmtez": "Ps3fpasf", + "Zstzmtes": "Ps3fpasn", + "Zstzmtd": "Ps3fpad", + "Zstzmtm": "Ps3fpap", + "Zstzmmem": "Ps3fplsm", + "Zstzmmez": "Ps3fplsf", + "Zstzmmes": "Ps3fplsn", + "Zstzmmd": "Ps3fpld", + "Zstzmmm": "Ps3fplp", + "Zstzmoem": "Ps3fpism", + "Zstzmoez": "Ps3fpisf", + "Zstzmoes": "Ps3fpisn", + "Zstzmod": "Ps3fpid", + "Zstzmom": "Ps3fpip", + "Zstseiem": "Ps3nsnsm", + "Zstseiez": "Ps3nsnsf", + "Zstseies": "Ps3nsnsn", + "Zstseid": "Ps3nsnd", + "Zstseim": "Ps3nsnp", + "Zstserem": "Ps3nsgsm", + "Zstserez": "Ps3nsgsf", + "Zstseres": "Ps3nsgsn", + "Zstserd": "Ps3nsgd", + "Zstserm": "Ps3nsgp", + "Zstsedem": "Ps3nsdsm", + "Zstsedez": "Ps3nsdsf", + "Zstsedes": "Ps3nsdsn", + "Zstsedd": "Ps3nsdd", + "Zstsedm": "Ps3nsdp", + "Zstsetem": "Ps3nsasm", + "Zstsetez": "Ps3nsasf", + "Zstsetes": "Ps3nsasn", + "Zstsetd": "Ps3nsad", + "Zstsetm": "Ps3nsap", + "Zstsemem": "Ps3nslsm", + "Zstsemez": "Ps3nslsf", + "Zstsemes": "Ps3nslsn", + "Zstsemd": "Ps3nsld", + "Zstsemm": "Ps3nslp", + "Zstseoem": "Ps3nsism", + "Zstseoez": "Ps3nsisf", + "Zstseoes": "Ps3nsisn", + "Zstseod": "Ps3nsid", + "Zstseom": "Ps3nsip", + "Zstsdiem": "Ps3ndnsm", + "Zstsdiez": "Ps3ndnsf", + "Zstsdies": "Ps3ndnsn", + "Zstsdid": "Ps3ndnd", + "Zstsdim": "Ps3ndnp", + "Zstsdrem": "Ps3ndgsm", + "Zstsdrez": "Ps3ndgsf", + "Zstsdres": "Ps3ndgsn", + "Zstsdrd": "Ps3ndgd", + "Zstsdrm": "Ps3ndgp", + "Zstsddem": "Ps3nddsm", + "Zstsddez": "Ps3nddsf", + "Zstsddes": "Ps3nddsn", + "Zstsddd": "Ps3nddd", + "Zstsddm": "Ps3nddp", + "Zstsdtem": "Ps3ndasm", + "Zstsdtez": "Ps3ndasf", + "Zstsdtes": "Ps3ndasn", + "Zstsdtd": "Ps3ndad", + "Zstsdtm": "Ps3ndap", + "Zstsdmem": "Ps3ndlsm", + "Zstsdmez": "Ps3ndlsf", + "Zstsdmes": "Ps3ndlsn", + "Zstsdmd": "Ps3ndld", + "Zstsdmm": "Ps3ndlp", + "Zstsdoem": "Ps3ndism", + "Zstsdoez": "Ps3ndisf", + "Zstsdoes": "Ps3ndisn", + "Zstsdod": "Ps3ndid", + "Zstsdom": "Ps3ndip", + "Zstsmiem": "Ps3npnsm", + "Zstsmiez": "Ps3npnsf", + "Zstsmies": "Ps3npnsn", + "Zstsmid": "Ps3npnd", + "Zstsmim": "Ps3npnp", + "Zstsmrem": "Ps3npgsm", + "Zstsmrez": "Ps3npgsf", + "Zstsmres": "Ps3npgsn", + "Zstsmrd": "Ps3npgd", + "Zstsmrm": "Ps3npgp", + "Zstsmdem": "Ps3npdsm", + "Zstsmdez": "Ps3npdsf", + "Zstsmdes": "Ps3npdsn", + "Zstsmdd": "Ps3npdd", + "Zstsmdm": "Ps3npdp", + "Zstsmtem": "Ps3npasm", + "Zstsmtez": "Ps3npasf", + "Zstsmtes": "Ps3npasn", + "Zstsmtd": "Ps3npad", + "Zstsmtm": "Ps3npap", + "Zstsmmem": "Ps3nplsm", + "Zstsmmez": "Ps3nplsf", + "Zstsmmes": "Ps3nplsn", + "Zstsmmd": "Ps3npld", + "Zstsmmm": "Ps3nplp", + "Zstsmoem": "Ps3npism", + "Zstsmoez": "Ps3npisf", + "Zstsmoes": "Ps3npisn", + "Zstsmod": "Ps3npid", + "Zstsmom": "Ps3npip", + "Zk-mei": "Pd-msn", + "Zk-mer": "Pd-msg", + "Zk-med": "Pd-msd", + "Zk-met": "Pd-msa", + "Zk-mem": "Pd-msl", + "Zk-meo": "Pd-msi", + "Zk-mdi": "Pd-mdn", + "Zk-mdr": "Pd-mdg", + "Zk-mdd": "Pd-mdd", + "Zk-mdt": "Pd-mda", + "Zk-mdm": "Pd-mdl", + "Zk-mdo": "Pd-mdi", + "Zk-mmi": "Pd-mpn", + "Zk-mmr": "Pd-mpg", + "Zk-mmd": "Pd-mpd", + "Zk-mmt": "Pd-mpa", + "Zk-mmm": "Pd-mpl", + "Zk-mmo": "Pd-mpi", + "Zk-zei": "Pd-fsn", + "Zk-zer": "Pd-fsg", + "Zk-zed": "Pd-fsd", + "Zk-zet": "Pd-fsa", + "Zk-zem": "Pd-fsl", + "Zk-zeo": "Pd-fsi", + "Zk-zdi": "Pd-fdn", + "Zk-zdr": "Pd-fdg", + "Zk-zdd": "Pd-fdd", + "Zk-zdt": "Pd-fda", + "Zk-zdm": "Pd-fdl", + "Zk-zdo": "Pd-fdi", + "Zk-zmi": "Pd-fpn", + "Zk-zmr": "Pd-fpg", + "Zk-zmd": "Pd-fpd", + "Zk-zmt": "Pd-fpa", + "Zk-zmm": "Pd-fpl", + "Zk-zmo": "Pd-fpi", + "Zk-sei": "Pd-nsn", + "Zk-ser": "Pd-nsg", + "Zk-sed": "Pd-nsd", + "Zk-set": "Pd-nsa", + "Zk-sem": "Pd-nsl", + "Zk-seo": "Pd-nsi", + "Zk-sdi": "Pd-ndn", + "Zk-sdr": "Pd-ndg", + "Zk-sdd": "Pd-ndd", + "Zk-sdt": "Pd-nda", + "Zk-sdm": "Pd-ndl", + "Zk-sdo": "Pd-ndi", + "Zk-smi": "Pd-npn", + "Zk-smr": "Pd-npg", + "Zk-smd": "Pd-npd", + "Zk-smt": "Pd-npa", + "Zk-smm": "Pd-npl", + "Zk-smo": "Pd-npi", + "Zz": "Pr", + "Zz----em": "Pr----sm", + "Zz-mei": "Pr-msn", + "Zz-mer": "Pr-msg", + "Zz-med": "Pr-msd", + "Zz-met": "Pr-msa", + "Zz-mem": "Pr-msl", + "Zz-meo": "Pr-msi", + "Zz-mdi": "Pr-mdn", + "Zz-mdr": "Pr-mdg", + "Zz-mdd": "Pr-mdd", + "Zz-mdt": "Pr-mda", + "Zz-mdm": "Pr-mdl", + "Zz-mdo": "Pr-mdi", + "Zz-mmi": "Pr-mpn", + "Zz-mmr": "Pr-mpg", + "Zz-mmd": "Pr-mpd", + "Zz-mmt": "Pr-mpa", + "Zz-mmm": "Pr-mpl", + "Zz-mmo": "Pr-mpi", + "Zz-zei": "Pr-fsn", + "Zz-zer": "Pr-fsg", + "Zz-zed": "Pr-fsd", + "Zz-zet": "Pr-fsa", + "Zz-zem": "Pr-fsl", + "Zz-zeo": "Pr-fsi", + "Zz-zdi": "Pr-fdn", + "Zz-zdr": "Pr-fdg", + "Zz-zdd": "Pr-fdd", + "Zz-zdt": "Pr-fda", + "Zz-zdm": "Pr-fdl", + "Zz-zdo": "Pr-fdi", + "Zz-zmi": "Pr-fpn", + "Zz-zmr": "Pr-fpg", + "Zz-zmd": "Pr-fpd", + "Zz-zmt": "Pr-fpa", + "Zz-zmm": "Pr-fpl", + "Zz-zmo": "Pr-fpi", + "Zz-sei": "Pr-nsn", + "Zz-ser": "Pr-nsg", + "Zz-sed": "Pr-nsd", + "Zz-set": "Pr-nsa", + "Zz-sem": "Pr-nsl", + "Zz-seo": "Pr-nsi", + "Zz-sdi": "Pr-ndn", + "Zz-sdr": "Pr-ndg", + "Zz-sdd": "Pr-ndd", + "Zz-sdt": "Pr-nda", + "Zz-sdm": "Pr-ndl", + "Zz-sdo": "Pr-ndi", + "Zz-smi": "Pr-npn", + "Zz-smr": "Pr-npg", + "Zz-smd": "Pr-npd", + "Zz-smt": "Pr-npa", + "Zz-smm": "Pr-npl", + "Zz-smo": "Pr-npi", + "Zp------k": "Px------y", + "Zp---r": "Px---g", + "Zp---d": "Px---d", + "Zp---d--k": "Px---d--y", + "Zp---t": "Px---a", + "Zp---t--z": "Px---a--b", + "Zp---m": "Px---l", + "Zp---o": "Px---i", + "Zp-mei": "Px-msn", + "Zp-mer": "Px-msg", + "Zp-med": "Px-msd", + "Zp-met": "Px-msa", + "Zp-mem": "Px-msl", + "Zp-meo": "Px-msi", + "Zp-mdi": "Px-mdn", + "Zp-mdr": "Px-mdg", + "Zp-mdd": "Px-mdd", + "Zp-mdt": "Px-mda", + "Zp-mdm": "Px-mdl", + "Zp-mdo": "Px-mdi", + "Zp-mmi": "Px-mpn", + "Zp-mmr": "Px-mpg", + "Zp-mmd": "Px-mpd", + "Zp-mmt": "Px-mpa", + "Zp-mmm": "Px-mpl", + "Zp-mmo": "Px-mpi", + "Zp-zei": "Px-fsn", + "Zp-zer": "Px-fsg", + "Zp-zed": "Px-fsd", + "Zp-zet": "Px-fsa", + "Zp-zem": "Px-fsl", + "Zp-zeo": "Px-fsi", + "Zp-zdi": "Px-fdn", + "Zp-zdr": "Px-fdg", + "Zp-zdd": "Px-fdd", + "Zp-zdt": "Px-fda", + "Zp-zdm": "Px-fdl", + "Zp-zdo": "Px-fdi", + "Zp-zmi": "Px-fpn", + "Zp-zmr": "Px-fpg", + "Zp-zmd": "Px-fpd", + "Zp-zmt": "Px-fpa", + "Zp-zmm": "Px-fpl", + "Zp-zmo": "Px-fpi", + "Zp-sei": "Px-nsn", + "Zp-ser": "Px-nsg", + "Zp-sed": "Px-nsd", + "Zp-set": "Px-nsa", + "Zp-sem": "Px-nsl", + "Zp-seo": "Px-nsi", + "Zp-sdi": "Px-ndn", + "Zp-sdr": "Px-ndg", + "Zp-sdd": "Px-ndd", + "Zp-sdt": "Px-nda", + "Zp-sdm": "Px-ndl", + "Zp-sdo": "Px-ndi", + "Zp-smi": "Px-npn", + "Zp-smr": "Px-npg", + "Zp-smd": "Px-npd", + "Zp-smt": "Px-npa", + "Zp-smm": "Px-npl", + "Zp-smo": "Px-npi", + "Zc-mei": "Pg-msn", + "Zc-mer": "Pg-msg", + "Zc-med": "Pg-msd", + "Zc-met": "Pg-msa", + "Zc-mem": "Pg-msl", + "Zc-meo": "Pg-msi", + "Zc-mdi": "Pg-mdn", + "Zc-mdr": "Pg-mdg", + "Zc-mdd": "Pg-mdd", + "Zc-mdt": "Pg-mda", + "Zc-mdm": "Pg-mdl", + "Zc-mdo": "Pg-mdi", + "Zc-mmi": "Pg-mpn", + "Zc-mmr": "Pg-mpg", + "Zc-mmd": "Pg-mpd", + "Zc-mmt": "Pg-mpa", + "Zc-mmm": "Pg-mpl", + "Zc-mmo": "Pg-mpi", + "Zc-zei": "Pg-fsn", + "Zc-zer": "Pg-fsg", + "Zc-zed": "Pg-fsd", + "Zc-zet": "Pg-fsa", + "Zc-zem": "Pg-fsl", + "Zc-zeo": "Pg-fsi", + "Zc-zdi": "Pg-fdn", + "Zc-zdr": "Pg-fdg", + "Zc-zdd": "Pg-fdd", + "Zc-zdt": "Pg-fda", + "Zc-zdm": "Pg-fdl", + "Zc-zdo": "Pg-fdi", + "Zc-zmi": "Pg-fpn", + "Zc-zmr": "Pg-fpg", + "Zc-zmd": "Pg-fpd", + "Zc-zmt": "Pg-fpa", + "Zc-zmm": "Pg-fpl", + "Zc-zmo": "Pg-fpi", + "Zc-sei": "Pg-nsn", + "Zc-ser": "Pg-nsg", + "Zc-sed": "Pg-nsd", + "Zc-set": "Pg-nsa", + "Zc-sem": "Pg-nsl", + "Zc-seo": "Pg-nsi", + "Zc-sdi": "Pg-ndn", + "Zc-sdr": "Pg-ndg", + "Zc-sdd": "Pg-ndd", + "Zc-sdt": "Pg-nda", + "Zc-sdm": "Pg-ndl", + "Zc-sdo": "Pg-ndi", + "Zc-smi": "Pg-npn", + "Zc-smr": "Pg-npg", + "Zc-smd": "Pg-npd", + "Zc-smt": "Pg-npa", + "Zc-smm": "Pg-npl", + "Zc-smo": "Pg-npi", + "Zv----em": "Pq----sm", + "Zv----ez": "Pq----sf", + "Zv----es": "Pq----sn", + "Zv----d": "Pq----d", + "Zv----m": "Pq----p", + "Zv-mei": "Pq-msn", + "Zv-mer": "Pq-msg", + "Zv-med": "Pq-msd", + "Zv-met": "Pq-msa", + "Zv-mem": "Pq-msl", + "Zv-meo": "Pq-msi", + "Zv-mdi": "Pq-mdn", + "Zv-mdr": "Pq-mdg", + "Zv-mdd": "Pq-mdd", + "Zv-mdt": "Pq-mda", + "Zv-mdm": "Pq-mdl", + "Zv-mdo": "Pq-mdi", + "Zv-mmi": "Pq-mpn", + "Zv-mmr": "Pq-mpg", + "Zv-mmd": "Pq-mpd", + "Zv-mmt": "Pq-mpa", + "Zv-mmm": "Pq-mpl", + "Zv-mmo": "Pq-mpi", + "Zv-zei": "Pq-fsn", + "Zv-zer": "Pq-fsg", + "Zv-zed": "Pq-fsd", + "Zv-zet": "Pq-fsa", + "Zv-zem": "Pq-fsl", + "Zv-zeo": "Pq-fsi", + "Zv-zdi": "Pq-fdn", + "Zv-zdr": "Pq-fdg", + "Zv-zdd": "Pq-fdd", + "Zv-zdt": "Pq-fda", + "Zv-zdm": "Pq-fdl", + "Zv-zdo": "Pq-fdi", + "Zv-zmi": "Pq-fpn", + "Zv-zmr": "Pq-fpg", + "Zv-zmd": "Pq-fpd", + "Zv-zmt": "Pq-fpa", + "Zv-zmm": "Pq-fpl", + "Zv-zmo": "Pq-fpi", + "Zv-sei": "Pq-nsn", + "Zv-ser": "Pq-nsg", + "Zv-sed": "Pq-nsd", + "Zv-set": "Pq-nsa", + "Zv-sem": "Pq-nsl", + "Zv-seo": "Pq-nsi", + "Zv-sdi": "Pq-ndn", + "Zv-sdr": "Pq-ndg", + "Zv-sdd": "Pq-ndd", + "Zv-sdt": "Pq-nda", + "Zv-sdm": "Pq-ndl", + "Zv-sdo": "Pq-ndi", + "Zv-smi": "Pq-npn", + "Zv-smr": "Pq-npg", + "Zv-smd": "Pq-npd", + "Zv-smt": "Pq-npa", + "Zv-smm": "Pq-npl", + "Zv-smo": "Pq-npi", + "Zn-mei": "Pi-msn", + "Zn-mer": "Pi-msg", + "Zn-med": "Pi-msd", + "Zn-met": "Pi-msa", + "Zn-mem": "Pi-msl", + "Zn-meo": "Pi-msi", + "Zn-mdi": "Pi-mdn", + "Zn-mdr": "Pi-mdg", + "Zn-mdd": "Pi-mdd", + "Zn-mdt": "Pi-mda", + "Zn-mdm": "Pi-mdl", + "Zn-mdo": "Pi-mdi", + "Zn-mmi": "Pi-mpn", + "Zn-mmr": "Pi-mpg", + "Zn-mmd": "Pi-mpd", + "Zn-mmt": "Pi-mpa", + "Zn-mmm": "Pi-mpl", + "Zn-mmo": "Pi-mpi", + "Zn-zei": "Pi-fsn", + "Zn-zer": "Pi-fsg", + "Zn-zed": "Pi-fsd", + "Zn-zet": "Pi-fsa", + "Zn-zem": "Pi-fsl", + "Zn-zeo": "Pi-fsi", + "Zn-zdi": "Pi-fdn", + "Zn-zdr": "Pi-fdg", + "Zn-zdd": "Pi-fdd", + "Zn-zdt": "Pi-fda", + "Zn-zdm": "Pi-fdl", + "Zn-zdo": "Pi-fdi", + "Zn-zmi": "Pi-fpn", + "Zn-zmr": "Pi-fpg", + "Zn-zmd": "Pi-fpd", + "Zn-zmt": "Pi-fpa", + "Zn-zmm": "Pi-fpl", + "Zn-zmo": "Pi-fpi", + "Zn-sei": "Pi-nsn", + "Zn-ser": "Pi-nsg", + "Zn-sed": "Pi-nsd", + "Zn-set": "Pi-nsa", + "Zn-sem": "Pi-nsl", + "Zn-seo": "Pi-nsi", + "Zn-sdi": "Pi-ndn", + "Zn-sdr": "Pi-ndg", + "Zn-sdd": "Pi-ndd", + "Zn-sdt": "Pi-nda", + "Zn-sdm": "Pi-ndl", + "Zn-sdo": "Pi-ndi", + "Zn-smi": "Pi-npn", + "Zn-smr": "Pi-npg", + "Zn-smd": "Pi-npd", + "Zn-smt": "Pi-npa", + "Zn-smm": "Pi-npl", + "Zn-smo": "Pi-npi", + "Zl-mei": "Pz-msn", + "Zl-mer": "Pz-msg", + "Zl-med": "Pz-msd", + "Zl-met": "Pz-msa", + "Zl-mem": "Pz-msl", + "Zl-meo": "Pz-msi", + "Zl-mdi": "Pz-mdn", + "Zl-mdr": "Pz-mdg", + "Zl-mdd": "Pz-mdd", + "Zl-mdt": "Pz-mda", + "Zl-mdm": "Pz-mdl", + "Zl-mdo": "Pz-mdi", + "Zl-mmi": "Pz-mpn", + "Zl-mmr": "Pz-mpg", + "Zl-mmd": "Pz-mpd", + "Zl-mmt": "Pz-mpa", + "Zl-mmm": "Pz-mpl", + "Zl-mmo": "Pz-mpi", + "Zl-zei": "Pz-fsn", + "Zl-zer": "Pz-fsg", + "Zl-zed": "Pz-fsd", + "Zl-zet": "Pz-fsa", + "Zl-zem": "Pz-fsl", + "Zl-zeo": "Pz-fsi", + "Zl-zdi": "Pz-fdn", + "Zl-zdr": "Pz-fdg", + "Zl-zdd": "Pz-fdd", + "Zl-zdt": "Pz-fda", + "Zl-zdm": "Pz-fdl", + "Zl-zdo": "Pz-fdi", + "Zl-zmi": "Pz-fpn", + "Zl-zmr": "Pz-fpg", + "Zl-zmd": "Pz-fpd", + "Zl-zmt": "Pz-fpa", + "Zl-zmm": "Pz-fpl", + "Zl-zmo": "Pz-fpi", + "Zl-sei": "Pz-nsn", + "Zl-ser": "Pz-nsg", + "Zl-sed": "Pz-nsd", + "Zl-set": "Pz-nsa", + "Zl-sem": "Pz-nsl", + "Zl-seo": "Pz-nsi", + "Zl-sdi": "Pz-ndn", + "Zl-sdr": "Pz-ndg", + "Zl-sdd": "Pz-ndd", + "Zl-sdt": "Pz-nda", + "Zl-sdm": "Pz-ndl", + "Zl-sdo": "Pz-ndi", + "Zl-smi": "Pz-npn", + "Zl-smr": "Pz-npg", + "Zl-smd": "Pz-npd", + "Zl-smt": "Pz-npa", + "Zl-smm": "Pz-npl", + "Zl-smo": "Pz-npi", + "Kag": "Mdc", + "Kav": "Mdo", + "Krg": "Mrc", + "Krv": "Mro", + "Kbg-mi": "Mlc-pn", + "Kbg-mr": "Mlc-pg", + "Kbg-md": "Mlc-pd", + "Kbg-mt": "Mlc-pa", + "Kbg-mm": "Mlc-pl", + "Kbg-mo": "Mlc-pi", + "Kbgmdi": "Mlcmdn", + "Kbgmdr": "Mlcmdg", + "Kbgmdd": "Mlcmdd", + "Kbgmdt": "Mlcmda", + "Kbgmdm": "Mlcmdl", + "Kbgmdo": "Mlcmdi", + "Kbgmmi": "Mlcmpn", + "Kbgmmr": "Mlcmpg", + "Kbgmmd": "Mlcmpd", + "Kbgmmt": "Mlcmpa", + "Kbgmmm": "Mlcmpl", + "Kbgmmo": "Mlcmpi", + "Kbgzdi": "Mlcfdn", + "Kbgzdr": "Mlcfdg", + "Kbgzdd": "Mlcfdd", + "Kbgzdt": "Mlcfda", + "Kbgzdm": "Mlcfdl", + "Kbgzdo": "Mlcfdi", + "Kbgzmi": "Mlcfpn", + "Kbgzmr": "Mlcfpg", + "Kbgzmd": "Mlcfpd", + "Kbgzmt": "Mlcfpa", + "Kbgzmm": "Mlcfpl", + "Kbgzmo": "Mlcfpi", + "Kbgsdi": "Mlcndn", + "Kbgsdr": "Mlcndg", + "Kbgsdd": "Mlcndd", + "Kbgsdt": "Mlcnda", + "Kbgsdm": "Mlcndl", + "Kbgsdo": "Mlcndi", + "Kbgsmi": "Mlcnpn", + "Kbgsmr": "Mlcnpg", + "Kbgsmd": "Mlcnpd", + "Kbgsmt": "Mlcnpa", + "Kbgsmm": "Mlcnpl", + "Kbgsmo": "Mlcnpi", + "Kbvmei": "Mlomsn", + "Kbvmer": "Mlomsg", + "Kbvmed": "Mlomsd", + "Kbvmet": "Mlomsa", + "Kbvmem": "Mlomsl", + "Kbvmeo": "Mlomsi", + "Kbvmdi": "Mlomdn", + "Kbvmdr": "Mlomdg", + "Kbvmdd": "Mlomdd", + "Kbvmdt": "Mlomda", + "Kbvmdm": "Mlomdl", + "Kbvmdo": "Mlomdi", + "Kbvmmi": "Mlompn", + "Kbvmmr": "Mlompg", + "Kbvmmd": "Mlompd", + "Kbvmmt": "Mlompa", + "Kbvmmm": "Mlompl", + "Kbvmmo": "Mlompi", + "Kbvzei": "Mlofsn", + "Kbvzer": "Mlofsg", + "Kbvzed": "Mlofsd", + "Kbvzet": "Mlofsa", + "Kbvzem": "Mlofsl", + "Kbvzeo": "Mlofsi", + "Kbvzdi": "Mlofdn", + "Kbvzdr": "Mlofdg", + "Kbvzdd": "Mlofdd", + "Kbvzdt": "Mlofda", + "Kbvzdm": "Mlofdl", + "Kbvzdo": "Mlofdi", + "Kbvzmi": "Mlofpn", + "Kbvzmr": "Mlofpg", + "Kbvzmd": "Mlofpd", + "Kbvzmt": "Mlofpa", + "Kbvzmm": "Mlofpl", + "Kbvzmo": "Mlofpi", + "Kbvsei": "Mlonsn", + "Kbvser": "Mlonsg", + "Kbvsed": "Mlonsd", + "Kbvset": "Mlonsa", + "Kbvsem": "Mlonsl", + "Kbvseo": "Mlonsi", + "Kbvsdi": "Mlondn", + "Kbvsdr": "Mlondg", + "Kbvsdd": "Mlondd", + "Kbvsdt": "Mlonda", + "Kbvsdm": "Mlondl", + "Kbvsdo": "Mlondi", + "Kbvsmi": "Mlonpn", + "Kbvsmr": "Mlonpg", + "Kbvsmd": "Mlonpd", + "Kbvsmt": "Mlonpa", + "Kbvsmm": "Mlonpl", + "Kbvsmo": "Mlonpi", + "Kbzmei": "Mlpmsn", + "Kbzmein": "Mlpmsnn", + "Kbzmeid": "Mlpmsny", + "Kbzmer": "Mlpmsg", + "Kbzmed": "Mlpmsd", + "Kbzmet": "Mlpmsa", + "Kbzmetn": "Mlpmsan", + "Kbzmetd": "Mlpmsay", + "Kbzmem": "Mlpmsl", + "Kbzmeo": "Mlpmsi", + "Kbzmdi": "Mlpmdn", + "Kbzmdr": "Mlpmdg", + "Kbzmdd": "Mlpmdd", + "Kbzmdt": "Mlpmda", + "Kbzmdm": "Mlpmdl", + "Kbzmdo": "Mlpmdi", + "Kbzmmi": "Mlpmpn", + "Kbzmmr": "Mlpmpg", + "Kbzmmd": "Mlpmpd", + "Kbzmmt": "Mlpmpa", + "Kbzmmm": "Mlpmpl", + "Kbzmmo": "Mlpmpi", + "Kbzzei": "Mlpfsn", + "Kbzzer": "Mlpfsg", + "Kbzzed": "Mlpfsd", + "Kbzzet": "Mlpfsa", + "Kbzzem": "Mlpfsl", + "Kbzzeo": "Mlpfsi", + "Kbzzdi": "Mlpfdn", + "Kbzzdr": "Mlpfdg", + "Kbzzdd": "Mlpfdd", + "Kbzzdt": "Mlpfda", + "Kbzzdm": "Mlpfdl", + "Kbzzdo": "Mlpfdi", + "Kbzzmi": "Mlpfpn", + "Kbzzmr": "Mlpfpg", + "Kbzzmd": "Mlpfpd", + "Kbzzmt": "Mlpfpa", + "Kbzzmm": "Mlpfpl", + "Kbzzmo": "Mlpfpi", + "Kbzsei": "Mlpnsn", + "Kbzser": "Mlpnsg", + "Kbzsed": "Mlpnsd", + "Kbzset": "Mlpnsa", + "Kbzsem": "Mlpnsl", + "Kbzseo": "Mlpnsi", + "Kbzsdi": "Mlpndn", + "Kbzsdr": "Mlpndg", + "Kbzsdd": "Mlpndd", + "Kbzsdt": "Mlpnda", + "Kbzsdm": "Mlpndl", + "Kbzsdo": "Mlpndi", + "Kbzsmi": "Mlpnpn", + "Kbzsmr": "Mlpnpg", + "Kbzsmd": "Mlpnpd", + "Kbzsmt": "Mlpnpa", + "Kbzsmm": "Mlpnpl", + "Kbzsmo": "Mlpnpi", + "Kbdmein": "Mlsmsnn", + "Kbdmeid": "Mlsmsny", + "Kbdmer": "Mlsmsg", + "Kbdmed": "Mlsmsd", + "Kbdmet": "Mlsmsa", + "Kbdmetn": "Mlsmsan", + "Kbdmetd": "Mlsmsay", + "Kbdmem": "Mlsmsl", + "Kbdmeo": "Mlsmsi", + "Kbdmdi": "Mlsmdn", + "Kbdmdr": "Mlsmdg", + "Kbdmdd": "Mlsmdd", + "Kbdmdt": "Mlsmda", + "Kbdmdm": "Mlsmdl", + "Kbdmdo": "Mlsmdi", + "Kbdmmi": "Mlsmpn", + "Kbdmmr": "Mlsmpg", + "Kbdmmd": "Mlsmpd", + "Kbdmmt": "Mlsmpa", + "Kbdmmm": "Mlsmpl", + "Kbdmmo": "Mlsmpi", + "Kbdzei": "Mlsfsn", + "Kbdzer": "Mlsfsg", + "Kbdzed": "Mlsfsd", + "Kbdzet": "Mlsfsa", + "Kbdzem": "Mlsfsl", + "Kbdzeo": "Mlsfsi", + "Kbdzdi": "Mlsfdn", + "Kbdzdr": "Mlsfdg", + "Kbdzdd": "Mlsfdd", + "Kbdzdt": "Mlsfda", + "Kbdzdm": "Mlsfdl", + "Kbdzdo": "Mlsfdi", + "Kbdzmi": "Mlsfpn", + "Kbdzmr": "Mlsfpg", + "Kbdzmd": "Mlsfpd", + "Kbdzmt": "Mlsfpa", + "Kbdzmm": "Mlsfpl", + "Kbdzmo": "Mlsfpi", + "Kbdsei": "Mlsnsn", + "Kbdser": "Mlsnsg", + "Kbdsed": "Mlsnsd", + "Kbdset": "Mlsnsa", + "Kbdsem": "Mlsnsl", + "Kbdseo": "Mlsnsi", + "Kbdsdi": "Mlsndn", + "Kbdsdr": "Mlsndg", + "Kbdsdd": "Mlsndd", + "Kbdsdt": "Mlsnda", + "Kbdsdm": "Mlsndl", + "Kbdsdo": "Mlsndi", + "Kbdsmi": "Mlsnpn", + "Kbdsmr": "Mlsnpg", + "Kbdsmd": "Mlsnpd", + "Kbdsmt": "Mlsnpa", + "Kbdsmm": "Mlsnpl", + "Kbdsmo": "Mlsnpi", + "Di": "Sn", + "Dr": "Sg", + "Dd": "Sd", + "Dt": "Sa", + "Dm": "Sl", + "Do": "Si", + "Vp": "Cc", + "Vd": "Cs", + "L": "Q", + "M": "I", + "O": "Y", + "N": "X", + "Nj": "Xf", + "Nt": "Xt", + "Np": "Xp"} diff --git a/wani.py b/wani.py new file mode 100644 index 0000000..8573be5 --- /dev/null +++ b/wani.py @@ -0,0 +1,372 @@ +from xml.etree import ElementTree +import re +from enum import Enum +from collections import defaultdict + +from msd_translate import MSD_TRANSLATE + + +STRUKTURE = "Kolokacije_strukture_08_new-system.xml" +STAVKI = "k2.xml" + +CODES = { + "Noun": "N", + "Verb": "V", + "Adjective": "A", + "Adverb": "R", + "Pronoun": "P", + "Numeral": "M", + "Preposition": "S", + "Conjunction": "C", + "Particle": "Q", + "Interjection": "I", + "Abbreviation": "Y", + "Residual": "X", + + 'common': 'c', + 'proper': 'p', + 'masculine': 'm', + 'feminine': 'f', + 'neuter': 'n', + "singular": "s", + "dual": "d", + "plural": "p", + "nominative": "n", + "genitive": "g", + "dative": "d", + "accusative": "a", + "locative": "l", + "instrumental": "i", + "no": "n", + "yes": "y", + "main": "m", + "auxiliary": "a", + "perfective": "e", + "progressive": "p", + "biaspectual": "b", + "infinitive": "n", + "supine": "u", + "participle": "p", + "present": "r", + "future": "f", + "conditional": "c", + "imperative": "m", + "first": "1", + "second": "2", + "third": "3", + "general": "g", + "possessive": "s", + "positive": "p", + "comparative": "c", + "superlative": "s", + "personal": "p", + "demonstrative": "d", + "relative": "r", + "reflexive": "x", + "interrogative": "q", + "indefinite": "i", + "negative": "z", + "bound": "b", + "digit": "d", + "roman": "r", + "letter": "l", + "cardinal": "c", + "ordinal": "o", + "pronominal": "p", + "special": "s", + "coordinating": "c", + "subordinating": "s", + "foreign": "f", + "typo": "t", + "program": "p", +} + +TAGSET = { + "N": ['type', 'gender', 'number', 'case', 'animate'], + "V": ['type', 'aspect', 'vform', 'person', 'number', 'gender', 'negative'], + "A": ['type', 'degree', 'gender', 'number', 'case', 'definiteness'], + "R": ['type', 'degree'], + "P": ['type', 'person', 'gender', 'number', 'case', 'owner_number', 'owned_gender', 'clitic'], + "M": ['form', 'type', 'gender', 'number', 'case', 'definiteness'], + "S": ['case'], + "C": ['type'], + "Q": [], + "I": [], + "Y": [], + "X": ['type'] +} + +CATEGORY_BASES = { + "N": ['.', '.', '.', '.', '.?'], + "V": ['.', '.', '.', '.', '.?', '.?', '.?'], + "A": ['.', '.', '.', '.', '.', '.?'], + "R": ['.', '.?'], + "P": ['. ', '.', '.', '.', '.', '.', '.?', '.?'], + "M": ['.', '.', '.', '.?', '.?', '.?'], + "S": ['.'], + "C": ['.'], + "Q": [], + "I": [], + "Y": [], + "X": ['.?'] +} + + +class RestrictionType(Enum): + Morphology = 0 + Lexis = 1 + + +class ComponentLevel(Enum): + Lemma = 0 + WordForm = 1 + + +def get_level(restriction): + for feature in restriction: + if "level" in feature.keys(): + lvl = feature.get("level") + if lvl == "lemma": + return ComponentLevel.Lemma + elif lvl == "word_form": + return ComponentLevel.WordForm + else: + continue + + raise RuntimeError("Unreachable!") + + +def build_morphology_regex(restriction): + restr_dict = {} + for feature in restriction: + restr_dict.update(feature.items()) + + assert('POS' in restr_dict) + category = restr_dict['POS'].capitalize() + cat_code = CODES[category] + rgx = [cat_code] + CATEGORY_BASES[cat_code] + + del restr_dict['POS'] + del restr_dict['level'] + + for attribute, value in restr_dict.items(): + index = TAGSET[cat_code].index(attribute.lower()) + assert(index >= 0) + + if '|' in value: + match = '[' + "".join(CODES[val] for val in value.split('|')) + ']' + else: + match = CODES[value] + + rgx[index + 1] = match + + return re.compile("".join(rgx)) + + +def build_lexis_regex(restriction): + restr_dict = {} + for feature in restriction: + restr_dict.update(feature.items()) + + return re.compile(restr_dict['lemma']) + + +class Component: + def __init__(self, name): + self.name = name if name is not None else "" + self.restriction_type = None + self.restriction = None + self.next_element = None + self.level = None + + def word_to_str(self, word): + if self.level == ComponentLevel.Lemma: + return word.lemma, word.msd + elif self.level == ComponentLevel.WordForm: + return word.text, word.msd + else: + raise RuntimeError("Unreachable") + + def has_next(self): + return self.next_element is not None + + def get_next(self): + return self.next_element[0] + + def link_label(self): + return self.next_element[1] + + def set_next(self, next_component, link_label): + self.next_element = (next_component, link_label) + + def set_restriction(self, restriction_tag): + restriction_type = restriction_tag.get('type') + if restriction_type == "morphology": + self.restriction_type = RestrictionType.Morphology + self.restriction = build_morphology_regex(restriction_tag.getchildren()) + elif restriction_type == "lexis": + self.restriction_type = RestrictionType.Lexis + self.restriction = build_lexis_regex(restriction_tag.getchildren()) + else: + raise NotImplementedError() + + self.level = get_level(restriction_tag.getchildren()) + + def __str__(self): + el = "(N.{:7s} {:12s} {})".format(self.name, str(self.restriction_type).split('.')[1], self.restriction) + if self.has_next(): + el += " -- {} -->\n{}".format(self.link_label(), str(self.get_next())) + return el + + def __repr__(self): + return str(self) + + def match(self, word): + if self.restriction_type == RestrictionType.Morphology: + match_to = word.msd + elif self.restriction_type == RestrictionType.Lexis: + match_to = word.lemma + else: + raise RuntimeError("Unreachable!") + + if self.restriction.match(match_to): + to_ret = [self.word_to_str(word)] + + # already matched everything! + if not self.has_next(): + return to_ret + + # need to get all links that match + for next_word in word.get_links(self.link_label()): + match = self.get_next().match(next_word) + # if matches, return + if match is not None: + to_ret.extend(match) + return to_ret + + # return None... + + +class SyntacticStructure: + def __init__(self): + self.root_component = Component('root') + self.id = None + self.lbs = None + + @staticmethod + def from_xml(xml): + st = SyntacticStructure() + st.id = int(xml.get('id')) + st.lbs = xml.get('LBS') + + components, system = xml.getchildren() + dependencies, restrictions = system.getchildren() + + assert(system.get('type') == 'JOS') + + deps = { dep.get('from'): (dep.get('to'), dep.get('label')) for dep in dependencies } + comps = { comp.get('cid'): comp.get('name') for comp in components } + restrs = { r.get('cid'): r.getchildren()[0] for r in restrictions } + + current_component = st.root_component + idx = 'root' + + while idx in deps: + idx, dep_label = deps[idx] + + next_component = Component(comps[idx]) + next_component.set_restriction(restrs[idx]) + + current_component.set_next(next_component, dep_label) + current_component = next_component + + st.root_component = st.root_component.get_next() + return st + + def __str__(self): + return "{} LBS {}\n------\n{}".format(self.id, self.lbs, str(self.root_component)) + + def match(self, word): + return self.root_component.match(word) + + +def build_structures(filename): + structures = [] + with open(filename, 'r') as fp: + et = ElementTree.XML(fp.read()) + for structure in et.iterfind('syntactic_structure'): + structures.append(SyntacticStructure.from_xml(structure)) + return structures + + +class Word: + def __init__(self, xml): + self.lemma = xml.get('lemma') + self.msd = MSD_TRANSLATE[xml.get('msd')] + self.id = xml.get('id') + self.text = xml.text + self.links = defaultdict(list) + + assert(None not in (self.id, self.lemma, self.msd)) + + def add_link(self, link, to): + self.links[link].append(to) + + def get_links(self, link): + return self.links[link] + + +def load_corpus(filename): + with open(filename, 'r') as fp: + xmlstring = re.sub(' xmlns="[^"]+"', '', fp.read(), count=1) + xmlstring = xmlstring.replace(' xml:', ' ') + et = ElementTree.XML(xmlstring) + + words = {} + for w in et.iter("w"): + words[w.get('id')] = Word(w) + + for l in et.iter("link"): + assert('dep' in l.keys() and 'from' in l.keys() and 'afun' in l.keys()) + + lfrom = l.get('from') + if lfrom in words: + next_word_id = l.get('dep') + if next_word_id in words: + next_word = words[next_word_id] + words[l.get('from')].add_link(l.get('afun'), next_word) + + return list(words.values()) + + +def main(): + words = load_corpus(STAVKI) + + import time + t = time.time() + + structures = build_structures(STRUKTURE) + for s in structures: + print(s) + exit(0) + + print(STAVKI) + + num_matches = 0 + for w in words: + for s in structures: + m = s.match(w) + if m is not None: + num_matches += 1 + print(s.id, m) + + print("TIME", time.time() - t) + # print(num_matches) + + +if __name__ == '__main__': + main() + + + +