dwml-ts 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/uni2latex.generated.ts","../src/latex-encode.ts","../src/latex-dict.ts","../src/omml.ts","../src/index.ts"],"sourcesContent":["/**\n * Generated from pylatexenc 2.10 `latexencode` builtin uni2latex map.\n * pylatexenc is Copyright (c) Philippe Faist, MIT License.\n * DO NOT EDIT BY HAND - regenerate via scripts/gen_uni2latex.py\n */\nexport const UNI2LATEX: Readonly<Record<number, string>> = {\n 34: \"''\",\n 35: \"\\\\#\",\n 36: \"\\\\$\",\n 37: \"\\\\%\",\n 38: \"\\\\&\",\n 60: \"\\\\ensuremath{<}\",\n 62: \"\\\\ensuremath{>}\",\n 92: \"\\\\textbackslash\",\n 94: \"\\\\textasciicircum\",\n 95: \"\\\\_\",\n 123: \"\\\\{\",\n 125: \"\\\\}\",\n 126: \"\\\\textasciitilde\",\n 160: \"~\",\n 161: \"\\\\textexclamdown\",\n 162: \"\\\\textcent\",\n 163: \"\\\\textsterling\",\n 164: \"\\\\textcurrency\",\n 165: \"\\\\textyen\",\n 166: \"\\\\textbrokenbar\",\n 167: \"\\\\textsection\",\n 168: \"\\\\textasciidieresis\",\n 169: \"\\\\textcopyright\",\n 170: \"\\\\textordfeminine\",\n 171: \"\\\\guillemotleft\",\n 172: \"\\\\textlnot\",\n 173: \"\\\\-\",\n 174: \"\\\\textregistered\",\n 175: \"\\\\textasciimacron\",\n 176: \"\\\\textdegree\",\n 177: \"\\\\ensuremath{\\\\pm}\",\n 178: \"\\\\texttwosuperior\",\n 179: \"\\\\textthreesuperior\",\n 180: \"\\\\textasciiacute\",\n 181: \"\\\\textmu\",\n 182: \"\\\\textparagraph\",\n 183: \"\\\\textperiodcentered\",\n 185: \"\\\\textonesuperior\",\n 186: \"\\\\textordmasculine\",\n 187: \"\\\\guillemotright\",\n 188: \"\\\\textonequarter\",\n 189: \"\\\\textonehalf\",\n 190: \"\\\\textthreequarters\",\n 191: \"\\\\textquestiondown\",\n 192: \"\\\\`A\",\n 193: \"\\\\'A\",\n 194: \"\\\\^A\",\n 195: \"\\\\~A\",\n 196: \"\\\\\\\"A\",\n 197: \"\\\\r{A}\",\n 198: \"\\\\AE\",\n 199: \"\\\\c{C}\",\n 200: \"\\\\`E\",\n 201: \"\\\\'E\",\n 202: \"\\\\^E\",\n 203: \"\\\\\\\"E\",\n 204: \"\\\\`I\",\n 205: \"\\\\'I\",\n 206: \"\\\\^I\",\n 207: \"\\\\\\\"I\",\n 208: \"\\\\DH\",\n 209: \"\\\\~N\",\n 210: \"\\\\`O\",\n 211: \"\\\\'O\",\n 212: \"\\\\^O\",\n 213: \"\\\\~O\",\n 214: \"\\\\\\\"O\",\n 215: \"\\\\texttimes\",\n 216: \"\\\\O\",\n 217: \"\\\\`U\",\n 218: \"\\\\'U\",\n 219: \"\\\\^U\",\n 220: \"\\\\\\\"U\",\n 221: \"\\\\'Y\",\n 222: \"\\\\TH\",\n 223: \"\\\\ss\",\n 224: \"\\\\`a\",\n 225: \"\\\\'a\",\n 226: \"\\\\^a\",\n 227: \"\\\\~a\",\n 228: \"\\\\\\\"a\",\n 229: \"\\\\r{a}\",\n 230: \"\\\\ae\",\n 231: \"\\\\c{c}\",\n 232: \"\\\\`e\",\n 233: \"\\\\'e\",\n 234: \"\\\\^e\",\n 235: \"\\\\\\\"e\",\n 236: \"\\\\`\\\\i\",\n 237: \"\\\\'\\\\i\",\n 238: \"\\\\^\\\\i\",\n 239: \"\\\\\\\"\\\\i\",\n 240: \"\\\\dh\",\n 241: \"\\\\~n\",\n 242: \"\\\\`o\",\n 243: \"\\\\'o\",\n 244: \"\\\\^o\",\n 245: \"\\\\~o\",\n 246: \"\\\\\\\"o\",\n 247: \"\\\\textdiv\",\n 248: \"\\\\o\",\n 249: \"\\\\`u\",\n 250: \"\\\\'u\",\n 251: \"\\\\^u\",\n 252: \"\\\\\\\"u\",\n 253: \"\\\\'y\",\n 254: \"\\\\th\",\n 255: \"\\\\\\\"y\",\n 256: \"\\\\={A}\",\n 257: \"\\\\={a}\",\n 258: \"\\\\u{A}\",\n 259: \"\\\\u{a}\",\n 260: \"\\\\k{A}\",\n 261: \"\\\\k{a}\",\n 262: \"\\\\'C\",\n 263: \"\\\\'c\",\n 264: \"\\\\^{C}\",\n 265: \"\\\\^{c}\",\n 266: \"\\\\.{C}\",\n 267: \"\\\\.{c}\",\n 268: \"\\\\v{C}\",\n 269: \"\\\\v{c}\",\n 270: \"\\\\v{D}\",\n 271: \"\\\\v{d}\",\n 272: \"\\\\DJ\",\n 273: \"\\\\dj\",\n 274: \"\\\\={E}\",\n 275: \"\\\\={e}\",\n 276: \"\\\\u{E}\",\n 277: \"\\\\u{e}\",\n 278: \"\\\\.{E}\",\n 279: \"\\\\.{e}\",\n 280: \"\\\\k{E}\",\n 281: \"\\\\k{e}\",\n 282: \"\\\\v{E}\",\n 283: \"\\\\v{e}\",\n 284: \"\\\\^{G}\",\n 285: \"\\\\^{g}\",\n 286: \"\\\\u{G}\",\n 287: \"\\\\u{g}\",\n 288: \"\\\\.{G}\",\n 289: \"\\\\.{g}\",\n 290: \"\\\\c{G}\",\n 291: \"\\\\c{g}\",\n 292: \"\\\\^{H}\",\n 293: \"\\\\^{h}\",\n 294: \"\\\\={H}\",\n 295: \"\\\\={h}\",\n 296: \"\\\\~{I}\",\n 297: \"\\\\~{i}\",\n 298: \"\\\\={I}\",\n 299: \"\\\\={i}\",\n 300: \"\\\\u{I}\",\n 301: \"\\\\u{i}\",\n 302: \"\\\\k{I}\",\n 303: \"\\\\k{i}\",\n 304: \"\\\\.I\",\n 305: \"\\\\i\",\n 306: \"\\\\IJ\",\n 307: \"\\\\ij\",\n 308: \"\\\\^{J}\",\n 309: \"\\\\^{j}\",\n 310: \"\\\\c{K}\",\n 311: \"\\\\c{k}\",\n 312: \"\\\\textsc{k}\",\n 313: \"\\\\'L\",\n 314: \"\\\\'l\",\n 315: \"\\\\c{L}\",\n 316: \"\\\\c{l}\",\n 317: \"\\\\v{L}\",\n 318: \"\\\\v{l}\",\n 319: \"\\\\.{L}\",\n 320: \"\\\\.{l}\",\n 321: \"\\\\L\",\n 322: \"\\\\l\",\n 323: \"\\\\'N\",\n 324: \"\\\\'n\",\n 325: \"\\\\c{N}\",\n 326: \"\\\\c{n}\",\n 327: \"\\\\v{N}\",\n 328: \"\\\\v{n}\",\n 329: \"\\\\nument{149}\",\n 330: \"\\\\NG\",\n 331: \"\\\\ng\",\n 332: \"\\\\={O}\",\n 333: \"\\\\={o}\",\n 334: \"\\\\u{O}\",\n 335: \"\\\\u{o}\",\n 336: \"\\\\H{O}\",\n 337: \"\\\\H{o}\",\n 338: \"\\\\OE\",\n 339: \"\\\\oe\",\n 340: \"\\\\'R\",\n 341: \"\\\\'r\",\n 342: \"\\\\c{R}\",\n 343: \"\\\\c{r}\",\n 344: \"\\\\v{R}\",\n 345: \"\\\\v{r}\",\n 346: \"\\\\'S\",\n 347: \"\\\\'s\",\n 348: \"\\\\^{S}\",\n 349: \"\\\\^{s}\",\n 350: \"\\\\c{S}\",\n 351: \"\\\\c{s}\",\n 352: \"\\\\v{S}\",\n 353: \"\\\\v{s}\",\n 354: \"\\\\c{T}\",\n 355: \"\\\\c{t}\",\n 356: \"\\\\v{T}\",\n 357: \"\\\\v{t}\",\n 358: \"\\\\={T}\",\n 359: \"\\\\={t}\",\n 360: \"\\\\~{U}\",\n 361: \"\\\\~{u}\",\n 362: \"\\\\={U}\",\n 363: \"\\\\={u}\",\n 364: \"\\\\u{U}\",\n 365: \"\\\\u{u}\",\n 366: \"\\\\r{U}\",\n 367: \"\\\\r{u}\",\n 368: \"\\\\'{U}\",\n 369: \"\\\\'{u}\",\n 370: \"\\\\k{U}\",\n 371: \"\\\\k{u}\",\n 372: \"\\\\^{W}\",\n 373: \"\\\\^{w}\",\n 374: \"\\\\^{Y}\",\n 375: \"\\\\^{y}\",\n 376: \"\\\\\\\"Y\",\n 377: \"\\\\'Z\",\n 378: \"\\\\'z\",\n 379: \"\\\\.Z\",\n 380: \"\\\\.z\",\n 381: \"\\\\v{Z}\",\n 382: \"\\\\v{z}\",\n 402: \"\\\\textflorin\",\n 405: \"\\\\texthvlig\",\n 414: \"\\\\textnrleg\",\n 501: \"\\\\'{g}\",\n 552: \"\\\\c{E}\",\n 553: \"\\\\c{e}\",\n 601: \"\\\\textschwa\",\n 603: \"\\\\varepsilon\",\n 632: \"\\\\textphi\",\n 660: \"\\\\textglotstop\",\n 670: \"\\\\textturnk\",\n 695: \"\\\\textsuperscript{w}\",\n 700: \"'\",\n 710: \"\\\\textasciicircum\",\n 711: \"\\\\textasciicaron\",\n 728: \"\\\\textasciibreve\",\n 729: \"\\\\textperiodcentered\",\n 730: \"\\\\r{}\",\n 731: \"\\\\k{}\",\n 732: \"\\\\textasciitilde\",\n 733: \"\\\\textacutedbl\",\n 775: \"\\\\ensuremath{\\\\dot{}}\",\n 776: \"\\\\ensuremath{\\\\ddot{}}\",\n 902: \"\\\\'{}A\",\n 904: \"\\\\'{}E\",\n 905: \"\\\\'{}H\",\n 906: \"\\\\'{}I\",\n 908: \"\\\\'{}O\",\n 910: \"\\\\'{}Y\",\n 911: \"\\\\'{}\\\\ensuremath{\\\\Omega}\",\n 912: \"\\\\acute{\\\\ddot{\\\\iota}}\",\n 913: \"A\",\n 914: \"B\",\n 915: \"\\\\ensuremath{\\\\Gamma}\",\n 916: \"\\\\ensuremath{\\\\Delta}\",\n 917: \"E\",\n 918: \"Z\",\n 919: \"H\",\n 920: \"\\\\ensuremath{\\\\Theta}\",\n 921: \"I\",\n 922: \"K\",\n 923: \"\\\\ensuremath{\\\\Lambda}\",\n 924: \"M\",\n 925: \"N\",\n 926: \"\\\\ensuremath{\\\\Xi}\",\n 927: \"O\",\n 928: \"\\\\ensuremath{\\\\Pi}\",\n 929: \"P\",\n 931: \"\\\\ensuremath{\\\\Sigma}\",\n 932: \"T\",\n 933: \"\\\\ensuremath{\\\\Upsilon}\",\n 934: \"\\\\ensuremath{\\\\Phi}\",\n 935: \"X\",\n 936: \"\\\\ensuremath{\\\\Psi}\",\n 937: \"\\\\ensuremath{\\\\Omega}\",\n 938: \"\\\\ensuremath{\\\\ddot{I}}\",\n 939: \"\\\\ensuremath{\\\\ddot{Y}}\",\n 940: \"\\\\ensuremath{\\\\acute\\\\alpha}\",\n 941: \"\\\\ensuremath{\\\\acute\\\\epsilon}\",\n 942: \"\\\\ensuremath{\\\\acute\\\\eta}\",\n 943: \"\\\\ensuremath{\\\\acute\\\\iota}\",\n 944: \"\\\\ensuremath{\\\\acute{\\\\ddot{\\\\upsilon}}}\",\n 945: \"\\\\ensuremath{\\\\alpha}\",\n 946: \"\\\\ensuremath{\\\\beta}\",\n 947: \"\\\\ensuremath{\\\\gamma}\",\n 948: \"\\\\ensuremath{\\\\delta}\",\n 949: \"\\\\ensuremath{\\\\varepsilon}\",\n 950: \"\\\\ensuremath{\\\\zeta}\",\n 951: \"\\\\ensuremath{\\\\eta}\",\n 952: \"\\\\ensuremath{\\\\theta}\",\n 953: \"\\\\ensuremath{\\\\iota}\",\n 954: \"\\\\ensuremath{\\\\kappa}\",\n 955: \"\\\\ensuremath{\\\\lambda}\",\n 956: \"\\\\ensuremath{\\\\mu}\",\n 957: \"\\\\ensuremath{\\\\nu}\",\n 958: \"\\\\ensuremath{\\\\xi}\",\n 959: \"o\",\n 960: \"\\\\ensuremath{\\\\pi}\",\n 961: \"\\\\ensuremath{\\\\rho}\",\n 962: \"\\\\ensuremath{\\\\varsigma}\",\n 963: \"\\\\ensuremath{\\\\sigma}\",\n 964: \"\\\\ensuremath{\\\\tau}\",\n 965: \"\\\\ensuremath{\\\\upsilon}\",\n 966: \"\\\\ensuremath{\\\\varphi}\",\n 967: \"\\\\ensuremath{\\\\chi}\",\n 968: \"\\\\ensuremath{\\\\psi}\",\n 969: \"\\\\ensuremath{\\\\omega}\",\n 970: \"\\\\ensuremath{\\\\ddot\\\\iota}\",\n 971: \"\\\\ensuremath{\\\\ddot{\\\\upsilon}}\",\n 972: \"\\\\'{o}\",\n 973: \"\\\\ensuremath{\\\\acute\\\\upsilon}\",\n 974: \"\\\\ensuremath{\\\\acute\\\\omega}\",\n 977: \"\\\\ensuremath{\\\\vartheta}\",\n 978: \"\\\\Upsilon\",\n 981: \"\\\\ensuremath{\\\\phi}\",\n 982: \"\\\\ensuremath{\\\\varpi}\",\n 1008: \"\\\\ensuremath{\\\\varkappa}\",\n 1009: \"\\\\ensuremath{\\\\varrho}\",\n 1013: \"\\\\ensuremath{\\\\epsilon}\",\n 1014: \"\\\\ensuremath{\\\\backepsilon}\",\n 1024: \"\\\\`\\\\CYRE\",\n 1025: \"\\\\CYRYO\",\n 1026: \"\\\\CYRDJE\",\n 1027: \"\\\\`\\\\CYRG\",\n 1028: \"\\\\CYRIE\",\n 1029: \"\\\\CYRDZE\",\n 1030: \"\\\\CYRII\",\n 1031: \"\\\\CYRYI\",\n 1032: \"\\\\CYRJE\",\n 1033: \"\\\\CYRLJE\",\n 1034: \"\\\\CYRNJE\",\n 1035: \"\\\\CYRTSHE\",\n 1036: \"\\\\`\\\\CYRK\",\n 1037: \"\\\\`\\\\CYRI\",\n 1038: \"\\\\CYRUSHRT\",\n 1039: \"\\\\CYRDZHE\",\n 1040: \"\\\\CYRA\",\n 1041: \"\\\\CYRB\",\n 1042: \"\\\\CYRV\",\n 1043: \"\\\\CYRG\",\n 1044: \"\\\\CYRD\",\n 1045: \"\\\\CYRE\",\n 1046: \"\\\\CYRZH\",\n 1047: \"\\\\CYRZ\",\n 1048: \"\\\\CYRI\",\n 1049: \"\\\\CYRISHRT\",\n 1050: \"\\\\CYRK\",\n 1051: \"\\\\CYRL\",\n 1052: \"\\\\CYRM\",\n 1053: \"\\\\CYRN\",\n 1054: \"\\\\CYRO\",\n 1055: \"\\\\CYRP\",\n 1056: \"\\\\CYRR\",\n 1057: \"\\\\CYRS\",\n 1058: \"\\\\CYRT\",\n 1059: \"\\\\CYRU\",\n 1060: \"\\\\CYRF\",\n 1061: \"\\\\CYRH\",\n 1062: \"\\\\CYRC\",\n 1063: \"\\\\CYRCH\",\n 1064: \"\\\\CYRSH\",\n 1065: \"\\\\CYRSHCH\",\n 1066: \"\\\\CYRHRDSN\",\n 1067: \"\\\\CYRERY\",\n 1068: \"\\\\CYRSFTSN\",\n 1069: \"\\\\CYREREV\",\n 1070: \"\\\\CYRYU\",\n 1071: \"\\\\CYRYA\",\n 1072: \"\\\\cyra\",\n 1073: \"\\\\cyrb\",\n 1074: \"\\\\cyrv\",\n 1075: \"\\\\cyrg\",\n 1076: \"\\\\cyrd\",\n 1077: \"\\\\cyre\",\n 1078: \"\\\\cyrzh\",\n 1079: \"\\\\cyrz\",\n 1080: \"\\\\cyri\",\n 1081: \"\\\\cyrishrt\",\n 1082: \"\\\\cyrk\",\n 1083: \"\\\\cyrl\",\n 1084: \"\\\\cyrm\",\n 1085: \"\\\\cyrn\",\n 1086: \"\\\\cyro\",\n 1087: \"\\\\cyrp\",\n 1088: \"\\\\cyrr\",\n 1089: \"\\\\cyrs\",\n 1090: \"\\\\cyrt\",\n 1091: \"\\\\cyru\",\n 1092: \"\\\\cyrf\",\n 1093: \"\\\\cyrh\",\n 1094: \"\\\\cyrc\",\n 1095: \"\\\\cyrch\",\n 1096: \"\\\\cyrsh\",\n 1097: \"\\\\cyrshch\",\n 1098: \"\\\\cyrhrdsn\",\n 1099: \"\\\\cyrery\",\n 1100: \"\\\\cyrsftsn\",\n 1101: \"\\\\cyrerev\",\n 1102: \"\\\\cyryu\",\n 1103: \"\\\\cyrya\",\n 1104: \"\\\\`\\\\cyre\",\n 1105: \"\\\\cyryo\",\n 1106: \"\\\\cyrdje\",\n 1107: \"\\\\`\\\\cyrg\",\n 1108: \"\\\\cyrie\",\n 1109: \"\\\\cyrdze\",\n 1110: \"\\\\cyrii\",\n 1111: \"\\\\cyryi\",\n 1112: \"\\\\cyrje\",\n 1113: \"\\\\cyrlje\",\n 1114: \"\\\\cyrnje\",\n 1115: \"\\\\cyrtshe\",\n 1116: \"\\\\`\\\\cyrk\",\n 1117: \"\\\\`\\\\cyri\",\n 1118: \"\\\\cyrushrt\",\n 1119: \"\\\\cyrdzhe\",\n 1120: \"\\\\cyrchar\\\\CYROMEGA\",\n 1121: \"\\\\cyrchar\\\\cyromega\",\n 1122: \"\\\\CYRYAT\",\n 1123: \"\\\\cyryat\",\n 1124: \"\\\\cyrchar\\\\CYRIOTE\",\n 1125: \"\\\\cyrchar\\\\cyriote\",\n 1126: \"\\\\cyrchar\\\\CYRLYUS\",\n 1127: \"\\\\cyrchar\\\\cyrlyus\",\n 1128: \"\\\\cyrchar\\\\CYRIOTLYUS\",\n 1129: \"\\\\cyrchar\\\\cyriotlyus\",\n 1130: \"\\\\CYRBYUS\",\n 1131: \"\\\\cyrbyus\",\n 1132: \"\\\\cyrchar\\\\CYRIOTBYUS\",\n 1133: \"\\\\cyrchar\\\\cyriotbyus\",\n 1134: \"\\\\cyrchar\\\\CYRKSI\",\n 1135: \"\\\\cyrchar\\\\cyrksi\",\n 1136: \"\\\\cyrchar\\\\CYRPSI\",\n 1137: \"\\\\cyrchar\\\\cyrpsi\",\n 1138: \"\\\\CYRFITA\",\n 1139: \"\\\\cyrfita\",\n 1140: \"\\\\CYRIZH\",\n 1141: \"\\\\cyrizh\",\n 1142: \"\\\\C\\\\CYRIZH\",\n 1143: \"\\\\C\\\\cyrizh\",\n 1144: \"\\\\cyrchar\\\\CYRUK\",\n 1145: \"\\\\cyrchar\\\\cyruk\",\n 1146: \"\\\\cyrchar\\\\CYROMEGARND\",\n 1147: \"\\\\cyrchar\\\\cyromegarnd\",\n 1148: \"\\\\cyrchar\\\\CYROMEGATITLO\",\n 1149: \"\\\\cyrchar\\\\cyromegatitlo\",\n 1150: \"\\\\cyrchar\\\\CYROT\",\n 1151: \"\\\\cyrchar\\\\cyrot\",\n 1152: \"\\\\cyrchar\\\\CYRKOPPA\",\n 1153: \"\\\\cyrchar\\\\cyrkoppa\",\n 1154: \"\\\\cyrchar\\\\cyrthousands\",\n 1160: \"\\\\cyrchar\\\\cyrhundredthousands\",\n 1161: \"\\\\cyrchar\\\\cyrmillions\",\n 1164: \"\\\\CYRSEMISFTSN\",\n 1165: \"\\\\cyrsemisftsn\",\n 1166: \"\\\\CYRRTICK\",\n 1167: \"\\\\cyrrtick\",\n 1168: \"\\\\CYRGUP\",\n 1169: \"\\\\cyrgup\",\n 1170: \"\\\\CYRGHCRS\",\n 1171: \"\\\\cyrghcrs\",\n 1172: \"\\\\CYRGHK\",\n 1173: \"\\\\cyrghk\",\n 1174: \"\\\\CYRZHDSC\",\n 1175: \"\\\\cyrzhdsc\",\n 1176: \"\\\\CYRZDSC\",\n 1177: \"\\\\cyrzdsc\",\n 1178: \"\\\\CYRKDSC\",\n 1179: \"\\\\cyrkdsc\",\n 1180: \"\\\\CYRKVCRS\",\n 1181: \"\\\\cyrkvcrs\",\n 1182: \"\\\\CYRKHCRS\",\n 1183: \"\\\\cyrkhcrs\",\n 1184: \"\\\\CYRKBEAK\",\n 1185: \"\\\\cyrkbeak\",\n 1186: \"\\\\CYRNDSC\",\n 1187: \"\\\\cyrndsc\",\n 1188: \"\\\\CYRNG\",\n 1189: \"\\\\cyrng\",\n 1190: \"\\\\CYRPHK\",\n 1191: \"\\\\cyrphk\",\n 1192: \"\\\\CYRABHHA\",\n 1193: \"\\\\cyrabhha\",\n 1194: \"\\\\CYRSDSC\",\n 1195: \"\\\\cyrsdsc\",\n 1196: \"\\\\CYRTDSC\",\n 1197: \"\\\\cyrtdsc\",\n 1198: \"\\\\CYRY\",\n 1199: \"\\\\cyry\",\n 1200: \"\\\\CYRYHCRS\",\n 1201: \"\\\\cyryhcrs\",\n 1202: \"\\\\CYRHDSC\",\n 1203: \"\\\\cyrhdsc\",\n 1204: \"\\\\CYRTETSE\",\n 1205: \"\\\\cyrtetse\",\n 1206: \"\\\\CYRCHRDSC\",\n 1207: \"\\\\cyrchrdsc\",\n 1208: \"\\\\CYRCHVCRS\",\n 1209: \"\\\\cyrchvcrs\",\n 1210: \"\\\\CYRSHHA\",\n 1211: \"\\\\cyrshha\",\n 1212: \"\\\\CYRABHCH\",\n 1213: \"\\\\cyrabhch\",\n 1214: \"\\\\CYRABHCHDSC\",\n 1215: \"\\\\cyrabhchdsc\",\n 1216: \"\\\\CYRpalochka\",\n 1217: \"\\\\U\\\\CYRZH\",\n 1218: \"\\\\U\\\\cyrzh\",\n 1219: \"\\\\CYRKHK\",\n 1220: \"\\\\cyrkhk\",\n 1221: \"\\\\CYRLDSC\",\n 1222: \"\\\\cyrldsc\",\n 1223: \"\\\\CYRNHK\",\n 1224: \"\\\\cyrnhk\",\n 1227: \"\\\\CYRCHLDSC\",\n 1228: \"\\\\cyrchldsc\",\n 1229: \"\\\\CYRMDSC\",\n 1230: \"\\\\cyrmdsc\",\n 1232: \"\\\\U\\\\CYRA\",\n 1233: \"\\\\U\\\\cyra\",\n 1234: \"\\\\\\\"\\\\CYRA\",\n 1235: \"\\\\\\\"\\\\cyra\",\n 1236: \"\\\\CYRAE\",\n 1237: \"\\\\cyrae\",\n 1238: \"\\\\U\\\\CYRE\",\n 1239: \"\\\\U\\\\cyre\",\n 1240: \"\\\\CYRSCHWA\",\n 1241: \"\\\\cyrschwa\",\n 1242: \"\\\\\\\"\\\\CYRSCHWA\",\n 1243: \"\\\\\\\"\\\\cyrschwa\",\n 1244: \"\\\\\\\"\\\\CYRZH\",\n 1245: \"\\\\\\\"\\\\cyrzh\",\n 1246: \"\\\\\\\"\\\\CYRZ\",\n 1247: \"\\\\\\\"\\\\cyrz\",\n 1248: \"\\\\CYRABHDZE\",\n 1249: \"\\\\cyrabhdze\",\n 1250: \"\\\\=\\\\CYRI\",\n 1251: \"\\\\=\\\\cyri\",\n 1252: \"\\\\\\\"\\\\CYRI\",\n 1253: \"\\\\\\\"\\\\cyri\",\n 1254: \"\\\\\\\"\\\\CYRO\",\n 1255: \"\\\\\\\"\\\\cyro\",\n 1256: \"\\\\CYROTLD\",\n 1257: \"\\\\cyrotld\",\n 1260: \"\\\\\\\"\\\\CYREREV\",\n 1261: \"\\\\\\\"\\\\cyrerev\",\n 1262: \"\\\\=\\\\CYRU\",\n 1263: \"\\\\=\\\\cyru\",\n 1264: \"\\\\\\\"\\\\CYRU\",\n 1265: \"\\\\\\\"\\\\cyru\",\n 1266: \"\\\\H\\\\CYRU\",\n 1267: \"\\\\H\\\\cyru\",\n 1268: \"\\\\\\\"\\\\CYRCH\",\n 1269: \"\\\\\\\"\\\\cyrch\",\n 1270: \"\\\\CYRGDSC\",\n 1271: \"\\\\cyrgdsc\",\n 1272: \"\\\\\\\"\\\\CYRERY\",\n 1273: \"\\\\\\\"\\\\cyrery\",\n 1274: \"\\\\CYRGDSCHCRS\",\n 1275: \"\\\\cyrgdschcrs\",\n 1276: \"\\\\CYRHHK\",\n 1277: \"\\\\cyrhhk\",\n 1278: \"\\\\CYRHHCRS\",\n 1279: \"\\\\cyrhhcrs\",\n 3647: \"\\\\textbaht\",\n 8192: \"\\\\enskip\",\n 8193: \"\\\\quad\",\n 8194: \"\\\\enskip\",\n 8195: \"\\\\quad\",\n 8196: \"\\\\hspace{0.33em}\",\n 8197: \"\\\\hspace{0.25em}\",\n 8198: \"\\\\hspace{0.167em}\",\n 8199: \"~\",\n 8200: \"\\\\;\",\n 8201: \"\\\\,\",\n 8202: \"\\\\hspace{1pt}\",\n 8204: \"\\\\textcompwordmark\",\n 8208: \"-\",\n 8209: \"\\\\nobreakdash-\",\n 8210: \"-\",\n 8211: \"\\\\textendash\",\n 8212: \"\\\\textemdash\",\n 8213: \"\\\\textemdash\",\n 8214: \"\\\\ensuremath{\\\\Vert}\",\n 8216: \"\\\\textquoteleft\",\n 8217: \"\\\\textquoteright\",\n 8218: \"\\\\quotesinglbase\",\n 8220: \"\\\\textquotedblleft\",\n 8221: \"\\\\textquotedblright\",\n 8222: \"\\\\quotedblbase\",\n 8224: \"\\\\textdagger\",\n 8225: \"\\\\textdaggerdbl\",\n 8226: \"\\\\textbullet\",\n 8228: \".\",\n 8229: \"..\",\n 8230: \"\\\\textellipsis\",\n 8240: \"\\\\textperthousand\",\n 8241: \"\\\\textpertenthousand\",\n 8242: \"'\",\n 8243: \"''\",\n 8244: \"'''\",\n 8245: \"\\\\ensuremath{\\\\backprime}\",\n 8249: \"\\\\guilsinglleft\",\n 8250: \"\\\\guilsinglright\",\n 8251: \"\\\\textreferencemark\",\n 8253: \"\\\\textinterrobang\",\n 8260: \"\\\\textfractionsolidus\",\n 8270: \"\\\\textasteriskcentered\",\n 8274: \"\\\\textdiscount\",\n 8279: \"''''\",\n 8287: \"\\\\hspace{0.22em}\",\n 8288: \"\\\\nolinebreak\",\n 8289: \"\",\n 8353: \"\\\\textcolonmonetary\",\n 8356: \"\\\\textlira\",\n 8358: \"\\\\textnaira\",\n 8361: \"\\\\textwon\",\n 8363: \"\\\\textdong\",\n 8364: \"\\\\texteuro\",\n 8369: \"\\\\textpeso\",\n 8450: \"\\\\ensuremath{\\\\mathbb{C}}\",\n 8451: \"\\\\textcelsius\",\n 8457: \"\\\\ensuremath{^\\\\circ}F\",\n 8458: \"\\\\ensuremath{g}\",\n 8459: \"\\\\ensuremath{\\\\mathscr{H}}\",\n 8460: \"\\\\ensuremath{\\\\mathfrak{H}}\",\n 8461: \"\\\\ensuremath{\\\\mathbb{H}}\",\n 8462: \"\\\\ensuremath{h}\",\n 8463: \"\\\\ensuremath{\\\\hbar}\",\n 8464: \"\\\\ensuremath{\\\\mathscr{I}}\",\n 8465: \"\\\\ensuremath{\\\\mathfrak{I}}\",\n 8466: \"\\\\ensuremath{\\\\mathscr{L}}\",\n 8467: \"\\\\ensuremath{\\\\ell}\",\n 8469: \"\\\\ensuremath{\\\\mathbb{N}}\",\n 8470: \"\\\\textnumero\",\n 8471: \"\\\\textcircledP\",\n 8472: \"\\\\ensuremath{\\\\wp}\",\n 8473: \"\\\\ensuremath{\\\\mathbb{P}}\",\n 8474: \"\\\\ensuremath{\\\\mathbb{Q}}\",\n 8475: \"\\\\ensuremath{\\\\mathscr{R}}\",\n 8476: \"\\\\ensuremath{\\\\mathfrak{R}}\",\n 8477: \"\\\\ensuremath{\\\\mathbb{R}}\",\n 8478: \"\\\\textrecipe\",\n 8480: \"\\\\textservicemark\",\n 8482: \"\\\\texttrademark\",\n 8484: \"\\\\ensuremath{\\\\mathbb{Z}}\",\n 8486: \"\\\\textohm\",\n 8487: \"\\\\textmho\",\n 8488: \"\\\\ensuremath{\\\\mathfrak{Z}}\",\n 8490: \"K\",\n 8491: \"\\\\r{A}\",\n 8492: \"\\\\ensuremath{\\\\mathscr{B}}\",\n 8493: \"\\\\ensuremath{\\\\mathfrak{C}}\",\n 8494: \"\\\\textestimated\",\n 8495: \"\\\\ensuremath{e}\",\n 8496: \"\\\\ensuremath{\\\\mathscr{E}}\",\n 8497: \"\\\\ensuremath{\\\\mathscr{F}}\",\n 8499: \"\\\\ensuremath{\\\\mathscr{M}}\",\n 8500: \"\\\\ensuremath{o}\",\n 8501: \"\\\\ensuremath{\\\\aleph}\",\n 8502: \"\\\\ensuremath{\\\\beth}\",\n 8503: \"\\\\ensuremath{\\\\gimel}\",\n 8504: \"\\\\ensuremath{\\\\daleth}\",\n 8531: \"\\\\textfrac{1}{3}\",\n 8532: \"\\\\textfrac{2}{3}\",\n 8533: \"\\\\textfrac{1}{5}\",\n 8534: \"\\\\textfrac{2}{5}\",\n 8535: \"\\\\textfrac{3}{5}\",\n 8536: \"\\\\textfrac{4}{5}\",\n 8537: \"\\\\textfrac{1}{6}\",\n 8538: \"\\\\textfrac{5}{6}\",\n 8539: \"\\\\textfrac{1}{8}\",\n 8540: \"\\\\textfrac{3}{8}\",\n 8541: \"\\\\textfrac{5}{8}\",\n 8542: \"\\\\textfrac{7}{8}\",\n 8592: \"\\\\textleftarrow\",\n 8593: \"\\\\textuparrow\",\n 8594: \"\\\\textrightarrow\",\n 8595: \"\\\\textdownarrow\",\n 8596: \"\\\\ensuremath{\\\\leftrightarrow}\",\n 8597: \"\\\\ensuremath{\\\\updownarrow}\",\n 8598: \"\\\\ensuremath{\\\\nwarrow}\",\n 8599: \"\\\\ensuremath{\\\\nearrow}\",\n 8600: \"\\\\ensuremath{\\\\searrow}\",\n 8601: \"\\\\ensuremath{\\\\swarrow}\",\n 8602: \"\\\\ensuremath{\\\\nleftarrow}\",\n 8603: \"\\\\ensuremath{\\\\nrightarrow}\",\n 8604: \"\\\\ensuremath{\\\\arrowwaveleft}\",\n 8605: \"\\\\ensuremath{\\\\arrowwaveright}\",\n 8606: \"\\\\ensuremath{\\\\twoheadleftarrow}\",\n 8608: \"\\\\ensuremath{\\\\twoheadrightarrow}\",\n 8610: \"\\\\ensuremath{\\\\leftarrowtail}\",\n 8611: \"\\\\ensuremath{\\\\rightarrowtail}\",\n 8614: \"\\\\ensuremath{\\\\mapsto}\",\n 8617: \"\\\\ensuremath{\\\\hookleftarrow}\",\n 8618: \"\\\\ensuremath{\\\\hookrightarrow}\",\n 8619: \"\\\\ensuremath{\\\\looparrowleft}\",\n 8620: \"\\\\ensuremath{\\\\looparrowright}\",\n 8621: \"\\\\ensuremath{\\\\leftrightsquigarrow}\",\n 8622: \"\\\\ensuremath{\\\\nleftrightarrow}\",\n 8624: \"\\\\ensuremath{\\\\Lsh}\",\n 8625: \"\\\\ensuremath{\\\\Rsh}\",\n 8630: \"\\\\ensuremath{\\\\curvearrowleft}\",\n 8631: \"\\\\ensuremath{\\\\curvearrowright}\",\n 8634: \"\\\\ensuremath{\\\\circlearrowleft}\",\n 8635: \"\\\\ensuremath{\\\\circlearrowright}\",\n 8636: \"\\\\ensuremath{\\\\leftharpoonup}\",\n 8637: \"\\\\ensuremath{\\\\leftharpoondown}\",\n 8638: \"\\\\ensuremath{\\\\upharpoonright}\",\n 8639: \"\\\\ensuremath{\\\\upharpoonleft}\",\n 8640: \"\\\\ensuremath{\\\\rightharpoonup}\",\n 8641: \"\\\\ensuremath{\\\\rightharpoondown}\",\n 8642: \"\\\\ensuremath{\\\\downharpoonright}\",\n 8643: \"\\\\ensuremath{\\\\downharpoonleft}\",\n 8644: \"\\\\ensuremath{\\\\rightleftarrows}\",\n 8645: \"\\\\ensuremath{\\\\dblarrowupdown}\",\n 8646: \"\\\\ensuremath{\\\\leftrightarrows}\",\n 8647: \"\\\\ensuremath{\\\\leftleftarrows}\",\n 8648: \"\\\\ensuremath{\\\\upuparrows}\",\n 8649: \"\\\\ensuremath{\\\\rightrightarrows}\",\n 8650: \"\\\\ensuremath{\\\\downdownarrows}\",\n 8651: \"\\\\ensuremath{\\\\leftrightharpoons}\",\n 8652: \"\\\\ensuremath{\\\\rightleftharpoons}\",\n 8653: \"\\\\ensuremath{\\\\nLeftarrow}\",\n 8654: \"\\\\ensuremath{\\\\nLeftrightarrow}\",\n 8655: \"\\\\ensuremath{\\\\nRightarrow}\",\n 8656: \"\\\\ensuremath{\\\\Leftarrow}\",\n 8657: \"\\\\ensuremath{\\\\Uparrow}\",\n 8658: \"\\\\ensuremath{\\\\Rightarrow}\",\n 8659: \"\\\\ensuremath{\\\\Downarrow}\",\n 8660: \"\\\\ensuremath{\\\\Leftrightarrow}\",\n 8661: \"\\\\ensuremath{\\\\Updownarrow}\",\n 8666: \"\\\\ensuremath{\\\\Lleftarrow}\",\n 8667: \"\\\\ensuremath{\\\\Rrightarrow}\",\n 8669: \"\\\\ensuremath{\\\\rightsquigarrow}\",\n 8693: \"\\\\ensuremath{\\\\DownArrowUpArrow}\",\n 8704: \"\\\\ensuremath{\\\\forall}\",\n 8705: \"\\\\ensuremath{\\\\complement}\",\n 8706: \"\\\\ensuremath{\\\\partial}\",\n 8707: \"\\\\ensuremath{\\\\exists}\",\n 8708: \"\\\\ensuremath{\\\\nexists}\",\n 8709: \"\\\\ensuremath{\\\\varnothing}\",\n 8710: \"\\\\ensuremath{\\\\Delta}\",\n 8711: \"\\\\ensuremath{\\\\nabla}\",\n 8712: \"\\\\ensuremath{\\\\in}\",\n 8713: \"\\\\ensuremath{\\\\notin}\",\n 8714: \"\\\\ensuremath{\\\\in}\",\n 8715: \"\\\\ensuremath{\\\\ni}\",\n 8716: \"\\\\ensuremath{\\\\not\\\\ni}\",\n 8717: \"\\\\ensuremath{\\\\ni}\",\n 8718: \"\\\\ensuremath{\\\\blacksquare}\",\n 8719: \"\\\\ensuremath{\\\\prod}\",\n 8720: \"\\\\ensuremath{\\\\coprod}\",\n 8721: \"\\\\ensuremath{\\\\sum}\",\n 8722: \"\\\\ensuremath{-}\",\n 8723: \"\\\\ensuremath{\\\\mp}\",\n 8724: \"\\\\ensuremath{\\\\dotplus}\",\n 8725: \"\\\\ensuremath{/}\",\n 8726: \"\\\\ensuremath{\\\\smallsetminus}\",\n 8727: \"\\\\ensuremath{*}\",\n 8728: \"\\\\ensuremath{\\\\circ}\",\n 8729: \"\\\\ensuremath{\\\\bullet}\",\n 8730: \"\\\\ensuremath{\\\\sqrt{}}\",\n 8731: \"\\\\ensuremath{\\\\sqrt[3]{}}\",\n 8732: \"\\\\ensuremath{\\\\sqrt[4]{}}\",\n 8733: \"\\\\ensuremath{\\\\propto}\",\n 8734: \"\\\\ensuremath{\\\\infty}\",\n 8735: \"\\\\ensuremath{\\\\rightangle}\",\n 8736: \"\\\\ensuremath{\\\\angle}\",\n 8737: \"\\\\ensuremath{\\\\measuredangle}\",\n 8738: \"\\\\ensuremath{\\\\sphericalangle}\",\n 8739: \"\\\\ensuremath{\\\\mid}\",\n 8740: \"\\\\ensuremath{\\\\nmid}\",\n 8741: \"\\\\ensuremath{\\\\parallel}\",\n 8742: \"\\\\ensuremath{\\\\nparallel}\",\n 8743: \"\\\\ensuremath{\\\\wedge}\",\n 8744: \"\\\\ensuremath{\\\\vee}\",\n 8745: \"\\\\ensuremath{\\\\cap}\",\n 8746: \"\\\\ensuremath{\\\\cup}\",\n 8747: \"\\\\ensuremath{\\\\int}\",\n 8748: \"\\\\ensuremath{\\\\iint}\",\n 8749: \"\\\\ensuremath{\\\\iiint}\",\n 8750: \"\\\\ensuremath{\\\\oint}\",\n 8751: \"\\\\ensuremath{\\\\surfintegral}\",\n 8752: \"\\\\ensuremath{\\\\volintegral}\",\n 8753: \"\\\\ensuremath{\\\\clwintegral}\",\n 8756: \"\\\\ensuremath{\\\\therefore}\",\n 8757: \"\\\\ensuremath{\\\\because}\",\n 8758: \"\\\\ensuremath{:}\",\n 8759: \"\\\\ensuremath{::}\",\n 8762: \"\\\\ensuremath{\\\\mathbin{{:}\\\\!\\\\!{-}\\\\!\\\\!{:}}}\",\n 8763: \"\\\\ensuremath{\\\\homothetic}\",\n 8764: \"\\\\ensuremath{\\\\sim}\",\n 8765: \"\\\\ensuremath{\\\\backsim}\",\n 8766: \"\\\\ensuremath{\\\\lazysinv}\",\n 8768: \"\\\\ensuremath{\\\\wr}\",\n 8769: \"\\\\ensuremath{\\\\not\\\\sim}\",\n 8771: \"\\\\ensuremath{\\\\simeq}\",\n 8772: \"\\\\ensuremath{\\\\not\\\\simeq}\",\n 8773: \"\\\\ensuremath{\\\\cong}\",\n 8774: \"\\\\ensuremath{\\\\approxnotequal}\",\n 8775: \"\\\\ensuremath{\\\\not\\\\cong}\",\n 8776: \"\\\\ensuremath{\\\\approx}\",\n 8777: \"\\\\ensuremath{\\\\not\\\\approx}\",\n 8778: \"\\\\ensuremath{\\\\approxeq}\",\n 8779: \"\\\\ensuremath{\\\\tildetrpl}\",\n 8780: \"\\\\ensuremath{\\\\allequal}\",\n 8781: \"\\\\ensuremath{\\\\asymp}\",\n 8782: \"\\\\ensuremath{\\\\Bumpeq}\",\n 8783: \"\\\\ensuremath{\\\\bumpeq}\",\n 8784: \"\\\\ensuremath{\\\\doteq}\",\n 8785: \"\\\\ensuremath{\\\\doteqdot}\",\n 8786: \"\\\\ensuremath{\\\\fallingdotseq}\",\n 8787: \"\\\\ensuremath{\\\\risingdotseq}\",\n 8788: \"\\\\ensuremath{:=}\",\n 8789: \"\\\\ensuremath{=:}\",\n 8790: \"\\\\ensuremath{\\\\eqcirc}\",\n 8791: \"\\\\ensuremath{\\\\circeq}\",\n 8793: \"\\\\ensuremath{\\\\estimates}\",\n 8795: \"\\\\ensuremath{\\\\starequal}\",\n 8796: \"\\\\ensuremath{\\\\triangleq}\",\n 8800: \"\\\\ensuremath{\\\\neq}\",\n 8801: \"\\\\ensuremath{\\\\equiv}\",\n 8802: \"\\\\ensuremath{\\\\not\\\\equiv}\",\n 8804: \"\\\\ensuremath{\\\\leq}\",\n 8805: \"\\\\ensuremath{\\\\geq}\",\n 8806: \"\\\\ensuremath{\\\\leqq}\",\n 8807: \"\\\\ensuremath{\\\\geqq}\",\n 8808: \"\\\\ensuremath{\\\\lneqq}\",\n 8809: \"\\\\ensuremath{\\\\gneqq}\",\n 8810: \"\\\\ensuremath{\\\\ll}\",\n 8811: \"\\\\ensuremath{\\\\gg}\",\n 8812: \"\\\\ensuremath{\\\\between}\",\n 8813: \"\\\\ensuremath{\\\\not\\\\kern-0.3em\\\\times}\",\n 8814: \"\\\\ensuremath{\\\\nless}\",\n 8815: \"\\\\ensuremath{\\\\ngtr}\",\n 8816: \"\\\\ensuremath{\\\\nleq}\",\n 8817: \"\\\\ensuremath{\\\\ngeq}\",\n 8818: \"\\\\ensuremath{\\\\lesssim}\",\n 8819: \"\\\\ensuremath{\\\\gtrsim}\",\n 8820: \"\\\\ensuremath{\\\\not\\\\lesssim}\",\n 8821: \"\\\\ensuremath{\\\\not\\\\gtrsim}\",\n 8822: \"\\\\ensuremath{\\\\lessgtr}\",\n 8823: \"\\\\ensuremath{\\\\gtrless}\",\n 8824: \"\\\\ensuremath{\\\\notlessgreater}\",\n 8825: \"\\\\ensuremath{\\\\notgreaterless}\",\n 8826: \"\\\\ensuremath{\\\\prec}\",\n 8827: \"\\\\ensuremath{\\\\succ}\",\n 8828: \"\\\\ensuremath{\\\\preceq}\",\n 8829: \"\\\\ensuremath{\\\\succeq}\",\n 8830: \"\\\\ensuremath{\\\\precsim}\",\n 8831: \"\\\\ensuremath{\\\\succsim}\",\n 8832: \"\\\\ensuremath{\\\\nprec}\",\n 8833: \"\\\\ensuremath{\\\\nsucc}\",\n 8834: \"\\\\ensuremath{\\\\subset}\",\n 8835: \"\\\\ensuremath{\\\\supset}\",\n 8836: \"\\\\ensuremath{\\\\not\\\\subset}\",\n 8837: \"\\\\ensuremath{\\\\not\\\\supset}\",\n 8838: \"\\\\ensuremath{\\\\subseteq}\",\n 8839: \"\\\\ensuremath{\\\\supseteq}\",\n 8840: \"\\\\ensuremath{\\\\nsubseteq}\",\n 8841: \"\\\\ensuremath{\\\\nsupseteq}\",\n 8842: \"\\\\ensuremath{\\\\subsetneq}\",\n 8843: \"\\\\ensuremath{\\\\supsetneq}\",\n 8846: \"\\\\ensuremath{\\\\uplus}\",\n 8847: \"\\\\ensuremath{\\\\sqsubset}\",\n 8848: \"\\\\ensuremath{\\\\sqsupset}\",\n 8849: \"\\\\ensuremath{\\\\sqsubseteq}\",\n 8850: \"\\\\ensuremath{\\\\sqsupseteq}\",\n 8851: \"\\\\ensuremath{\\\\sqcap}\",\n 8852: \"\\\\ensuremath{\\\\sqcup}\",\n 8853: \"\\\\ensuremath{\\\\oplus}\",\n 8854: \"\\\\ensuremath{\\\\ominus}\",\n 8855: \"\\\\ensuremath{\\\\otimes}\",\n 8856: \"\\\\ensuremath{\\\\oslash}\",\n 8857: \"\\\\ensuremath{\\\\odot}\",\n 8858: \"\\\\ensuremath{\\\\circledcirc}\",\n 8859: \"\\\\ensuremath{\\\\circledast}\",\n 8861: \"\\\\ensuremath{\\\\circleddash}\",\n 8862: \"\\\\ensuremath{\\\\boxplus}\",\n 8863: \"\\\\ensuremath{\\\\boxminus}\",\n 8864: \"\\\\ensuremath{\\\\boxtimes}\",\n 8865: \"\\\\ensuremath{\\\\boxdot}\",\n 8866: \"\\\\ensuremath{\\\\vdash}\",\n 8867: \"\\\\ensuremath{\\\\dashv}\",\n 8868: \"\\\\ensuremath{\\\\top}\",\n 8869: \"\\\\ensuremath{\\\\perp}\",\n 8871: \"\\\\ensuremath{\\\\truestate}\",\n 8872: \"\\\\ensuremath{\\\\forcesextra}\",\n 8873: \"\\\\ensuremath{\\\\Vdash}\",\n 8874: \"\\\\ensuremath{\\\\Vvdash}\",\n 8875: \"\\\\ensuremath{\\\\VDash}\",\n 8876: \"\\\\ensuremath{\\\\nvdash}\",\n 8877: \"\\\\ensuremath{\\\\nvDash}\",\n 8878: \"\\\\ensuremath{\\\\nVdash}\",\n 8879: \"\\\\ensuremath{\\\\nVDash}\",\n 8882: \"\\\\ensuremath{\\\\vartriangleleft}\",\n 8883: \"\\\\ensuremath{\\\\vartriangleright}\",\n 8884: \"\\\\ensuremath{\\\\trianglelefteq}\",\n 8885: \"\\\\ensuremath{\\\\trianglerighteq}\",\n 8886: \"\\\\ensuremath{\\\\original}\",\n 8887: \"\\\\ensuremath{\\\\image}\",\n 8888: \"\\\\ensuremath{\\\\multimap}\",\n 8889: \"\\\\ensuremath{\\\\hermitconjmatrix}\",\n 8890: \"\\\\ensuremath{\\\\intercal}\",\n 8891: \"\\\\ensuremath{\\\\veebar}\",\n 8894: \"\\\\ensuremath{\\\\rightanglearc}\",\n 8896: \"\\\\ensuremath{\\\\bigwedge}\",\n 8897: \"\\\\ensuremath{\\\\bigvee}\",\n 8898: \"\\\\ensuremath{\\\\bigcap}\",\n 8899: \"\\\\ensuremath{\\\\bigcup}\",\n 8900: \"\\\\ensuremath{\\\\diamond}\",\n 8901: \"\\\\ensuremath{\\\\cdot}\",\n 8902: \"\\\\ensuremath{\\\\star}\",\n 8903: \"\\\\ensuremath{\\\\divideontimes}\",\n 8904: \"\\\\ensuremath{\\\\bowtie}\",\n 8905: \"\\\\ensuremath{\\\\ltimes}\",\n 8906: \"\\\\ensuremath{\\\\rtimes}\",\n 8907: \"\\\\ensuremath{\\\\leftthreetimes}\",\n 8908: \"\\\\ensuremath{\\\\rightthreetimes}\",\n 8909: \"\\\\ensuremath{\\\\backsimeq}\",\n 8910: \"\\\\ensuremath{\\\\curlyvee}\",\n 8911: \"\\\\ensuremath{\\\\curlywedge}\",\n 8912: \"\\\\ensuremath{\\\\Subset}\",\n 8913: \"\\\\ensuremath{\\\\Supset}\",\n 8914: \"\\\\ensuremath{\\\\Cap}\",\n 8915: \"\\\\ensuremath{\\\\Cup}\",\n 8916: \"\\\\ensuremath{\\\\pitchfork}\",\n 8918: \"\\\\ensuremath{\\\\lessdot}\",\n 8919: \"\\\\ensuremath{\\\\gtrdot}\",\n 8920: \"\\\\ensuremath{\\\\verymuchless}\",\n 8921: \"\\\\ensuremath{\\\\verymuchgreater}\",\n 8922: \"\\\\ensuremath{\\\\lesseqgtr}\",\n 8923: \"\\\\ensuremath{\\\\gtreqless}\",\n 8926: \"\\\\ensuremath{\\\\curlyeqprec}\",\n 8927: \"\\\\ensuremath{\\\\curlyeqsucc}\",\n 8930: \"\\\\ensuremath{\\\\not\\\\sqsubseteq}\",\n 8931: \"\\\\ensuremath{\\\\not\\\\sqsupseteq}\",\n 8934: \"\\\\ensuremath{\\\\lnsim}\",\n 8935: \"\\\\ensuremath{\\\\gnsim}\",\n 8936: \"\\\\ensuremath{\\\\precedesnotsimilar}\",\n 8937: \"\\\\ensuremath{\\\\succnsim}\",\n 8938: \"\\\\ensuremath{\\\\ntriangleleft}\",\n 8939: \"\\\\ensuremath{\\\\ntriangleright}\",\n 8940: \"\\\\ensuremath{\\\\ntrianglelefteq}\",\n 8941: \"\\\\ensuremath{\\\\ntrianglerighteq}\",\n 8942: \"\\\\ensuremath{\\\\vdots}\",\n 8943: \"\\\\ensuremath{\\\\cdots}\",\n 8944: \"\\\\ensuremath{\\\\udots}\",\n 8945: \"\\\\ensuremath{\\\\ddots}\",\n 8965: \"\\\\ensuremath{\\\\barwedge}\",\n 8966: \"\\\\ensuremath{\\\\varperspcorrespond}\",\n 8968: \"\\\\ensuremath{\\\\lceil}\",\n 8969: \"\\\\ensuremath{\\\\rceil}\",\n 8970: \"\\\\ensuremath{\\\\lfloor}\",\n 8971: \"\\\\ensuremath{\\\\rfloor}\",\n 8981: \"\\\\ensuremath{\\\\recorder}\",\n 8982: \"\\\\ensuremath{\\\\mathchar\\\"2208}\",\n 8988: \"\\\\ensuremath{\\\\ulcorner}\",\n 8989: \"\\\\ensuremath{\\\\urcorner}\",\n 8990: \"\\\\ensuremath{\\\\llcorner}\",\n 8991: \"\\\\ensuremath{\\\\lrcorner}\",\n 8994: \"\\\\ensuremath{\\\\frown}\",\n 8995: \"\\\\ensuremath{\\\\smile}\",\n 9001: \"\\\\textlangle\",\n 9002: \"\\\\textrangle\",\n 9136: \"\\\\ensuremath{\\\\lmoustache}\",\n 9137: \"\\\\ensuremath{\\\\rmoustache}\",\n 9250: \"\\\\textblank\",\n 9251: \"\\\\textvisiblespace\",\n 9632: \"\\\\ensuremath{\\\\blacksquare}\",\n 9633: \"\\\\ensuremath{\\\\square}\",\n 9642: \"{\\\\small\\\\ensuremath{\\\\blacksquare}}\",\n 9645: \"\\\\fbox{~~}\",\n 9651: \"\\\\ensuremath{\\\\bigtriangleup}\",\n 9652: \"\\\\ensuremath{\\\\blacktriangle}\",\n 9653: \"\\\\ensuremath{\\\\vartriangle}\",\n 9656: \"\\\\ensuremath{\\\\blacktriangleright}\",\n 9657: \"\\\\ensuremath{\\\\triangleright}\",\n 9661: \"\\\\ensuremath{\\\\bigtriangledown}\",\n 9662: \"\\\\ensuremath{\\\\blacktriangledown}\",\n 9663: \"\\\\ensuremath{\\\\triangledown}\",\n 9666: \"\\\\ensuremath{\\\\blacktriangleleft}\",\n 9667: \"\\\\ensuremath{\\\\triangleleft}\",\n 9674: \"\\\\ensuremath{\\\\lozenge}\",\n 9675: \"\\\\ensuremath{\\\\bigcirc}\",\n 9702: \"\\\\textopenbullet\",\n 9711: \"\\\\textbigcircle\",\n 9826: \"\\\\ensuremath{\\\\diamond}\",\n 9833: \"\\\\quarternote\",\n 9834: \"\\\\textmusicalnote\",\n 9837: \"\\\\flat\",\n 9838: \"\\\\natural\",\n 9839: \"\\\\sharp\",\n 10216: \"\\\\ensuremath{\\\\langle}\",\n 10217: \"\\\\ensuremath{\\\\rangle}\",\n 10229: \"\\\\ensuremath{\\\\longleftarrow}\",\n 10230: \"\\\\ensuremath{\\\\longrightarrow}\",\n 10231: \"\\\\ensuremath{\\\\longleftrightarrow}\",\n 10232: \"\\\\ensuremath{\\\\Longleftarrow}\",\n 10233: \"\\\\ensuremath{\\\\Longrightarrow}\",\n 10234: \"\\\\ensuremath{\\\\Longleftrightarrow}\",\n 10236: \"\\\\ensuremath{\\\\longmapsto}\",\n 10239: \"\\\\ensuremath{\\\\sim\\\\joinrel\\\\leadsto}\",\n 10643: \"\\\\ensuremath{<\\\\kern-0.58em(}\",\n 10731: \"\\\\ensuremath{\\\\blacklozenge}\",\n 10767: \"\\\\ensuremath{\\\\clockoint}\",\n 10774: \"\\\\ensuremath{\\\\sqrint}\",\n 10815: \"\\\\ensuremath{\\\\amalg}\",\n 10862: \"\\\\ensuremath{\\\\stackrel{*}{=}}\",\n 10869: \"==\",\n 10877: \"\\\\ensuremath{\\\\leqslant}\",\n 10878: \"\\\\ensuremath{\\\\geqslant}\",\n 10885: \"\\\\ensuremath{\\\\lessapprox}\",\n 10886: \"\\\\ensuremath{\\\\gtrapprox}\",\n 10887: \"\\\\ensuremath{\\\\lneq}\",\n 10888: \"\\\\ensuremath{\\\\gneq}\",\n 10889: \"\\\\ensuremath{\\\\lnapprox}\",\n 10890: \"\\\\ensuremath{\\\\gnapprox}\",\n 10891: \"\\\\ensuremath{\\\\lesseqqgtr}\",\n 10892: \"\\\\ensuremath{\\\\gtreqqless}\",\n 10901: \"\\\\ensuremath{\\\\eqslantless}\",\n 10902: \"\\\\ensuremath{\\\\eqslantgtr}\",\n 10927: \"\\\\ensuremath{\\\\preceq}\",\n 10928: \"\\\\ensuremath{\\\\succeq}\",\n 10933: \"\\\\ensuremath{\\\\precneqq}\",\n 10934: \"\\\\ensuremath{\\\\succneqq}\",\n 10935: \"\\\\ensuremath{\\\\precapprox}\",\n 10936: \"\\\\ensuremath{\\\\succapprox}\",\n 10937: \"\\\\ensuremath{\\\\precnapprox}\",\n 10938: \"\\\\ensuremath{\\\\succnapprox}\",\n 10949: \"\\\\ensuremath{\\\\subseteqq}\",\n 10950: \"\\\\ensuremath{\\\\supseteqq}\",\n 10955: \"\\\\ensuremath{\\\\subsetneqq}\",\n 10956: \"\\\\ensuremath{\\\\supsetneqq}\",\n 11005: \"\\\\ensuremath{{{/}\\\\!\\\\!{/}}}\",\n 12296: \"\\\\ensuremath{\\\\langle}\",\n 12297: \"\\\\ensuremath{\\\\rangle}\",\n 64256: \"ff\",\n 64257: \"fi\",\n 64258: \"fl\",\n 64259: \"ffi\",\n 64260: \"ffl\",\n 119808: \"\\\\ensuremath{\\\\mathbf{A}}\",\n 119809: \"\\\\ensuremath{\\\\mathbf{B}}\",\n 119810: \"\\\\ensuremath{\\\\mathbf{C}}\",\n 119811: \"\\\\ensuremath{\\\\mathbf{D}}\",\n 119812: \"\\\\ensuremath{\\\\mathbf{E}}\",\n 119813: \"\\\\ensuremath{\\\\mathbf{F}}\",\n 119814: \"\\\\ensuremath{\\\\mathbf{G}}\",\n 119815: \"\\\\ensuremath{\\\\mathbf{H}}\",\n 119816: \"\\\\ensuremath{\\\\mathbf{I}}\",\n 119817: \"\\\\ensuremath{\\\\mathbf{J}}\",\n 119818: \"\\\\ensuremath{\\\\mathbf{K}}\",\n 119819: \"\\\\ensuremath{\\\\mathbf{L}}\",\n 119820: \"\\\\ensuremath{\\\\mathbf{M}}\",\n 119821: \"\\\\ensuremath{\\\\mathbf{N}}\",\n 119822: \"\\\\ensuremath{\\\\mathbf{O}}\",\n 119823: \"\\\\ensuremath{\\\\mathbf{P}}\",\n 119824: \"\\\\ensuremath{\\\\mathbf{Q}}\",\n 119825: \"\\\\ensuremath{\\\\mathbf{R}}\",\n 119826: \"\\\\ensuremath{\\\\mathbf{S}}\",\n 119827: \"\\\\ensuremath{\\\\mathbf{T}}\",\n 119828: \"\\\\ensuremath{\\\\mathbf{U}}\",\n 119829: \"\\\\ensuremath{\\\\mathbf{V}}\",\n 119830: \"\\\\ensuremath{\\\\mathbf{W}}\",\n 119831: \"\\\\ensuremath{\\\\mathbf{X}}\",\n 119832: \"\\\\ensuremath{\\\\mathbf{Y}}\",\n 119833: \"\\\\ensuremath{\\\\mathbf{Z}}\",\n 119834: \"\\\\ensuremath{\\\\mathbf{a}}\",\n 119835: \"\\\\ensuremath{\\\\mathbf{b}}\",\n 119836: \"\\\\ensuremath{\\\\mathbf{c}}\",\n 119837: \"\\\\ensuremath{\\\\mathbf{d}}\",\n 119838: \"\\\\ensuremath{\\\\mathbf{e}}\",\n 119839: \"\\\\ensuremath{\\\\mathbf{f}}\",\n 119840: \"\\\\ensuremath{\\\\mathbf{g}}\",\n 119841: \"\\\\ensuremath{\\\\mathbf{h}}\",\n 119842: \"\\\\ensuremath{\\\\mathbf{i}}\",\n 119843: \"\\\\ensuremath{\\\\mathbf{j}}\",\n 119844: \"\\\\ensuremath{\\\\mathbf{k}}\",\n 119845: \"\\\\ensuremath{\\\\mathbf{l}}\",\n 119846: \"\\\\ensuremath{\\\\mathbf{m}}\",\n 119847: \"\\\\ensuremath{\\\\mathbf{n}}\",\n 119848: \"\\\\ensuremath{\\\\mathbf{o}}\",\n 119849: \"\\\\ensuremath{\\\\mathbf{p}}\",\n 119850: \"\\\\ensuremath{\\\\mathbf{q}}\",\n 119851: \"\\\\ensuremath{\\\\mathbf{r}}\",\n 119852: \"\\\\ensuremath{\\\\mathbf{s}}\",\n 119853: \"\\\\ensuremath{\\\\mathbf{t}}\",\n 119854: \"\\\\ensuremath{\\\\mathbf{u}}\",\n 119855: \"\\\\ensuremath{\\\\mathbf{v}}\",\n 119856: \"\\\\ensuremath{\\\\mathbf{w}}\",\n 119857: \"\\\\ensuremath{\\\\mathbf{x}}\",\n 119858: \"\\\\ensuremath{\\\\mathbf{y}}\",\n 119859: \"\\\\ensuremath{\\\\mathbf{z}}\",\n 119860: \"\\\\ensuremath{\\\\mathit{A}}\",\n 119861: \"\\\\ensuremath{\\\\mathit{B}}\",\n 119862: \"\\\\ensuremath{\\\\mathit{C}}\",\n 119863: \"\\\\ensuremath{\\\\mathit{D}}\",\n 119864: \"\\\\ensuremath{\\\\mathit{E}}\",\n 119865: \"\\\\ensuremath{\\\\mathit{F}}\",\n 119866: \"\\\\ensuremath{\\\\mathit{G}}\",\n 119867: \"\\\\ensuremath{\\\\mathit{H}}\",\n 119868: \"\\\\ensuremath{\\\\mathit{I}}\",\n 119869: \"\\\\ensuremath{\\\\mathit{J}}\",\n 119870: \"\\\\ensuremath{\\\\mathit{K}}\",\n 119871: \"\\\\ensuremath{\\\\mathit{L}}\",\n 119872: \"\\\\ensuremath{\\\\mathit{M}}\",\n 119873: \"\\\\ensuremath{\\\\mathit{N}}\",\n 119874: \"\\\\ensuremath{\\\\mathit{O}}\",\n 119875: \"\\\\ensuremath{\\\\mathit{P}}\",\n 119876: \"\\\\ensuremath{\\\\mathit{Q}}\",\n 119877: \"\\\\ensuremath{\\\\mathit{R}}\",\n 119878: \"\\\\ensuremath{\\\\mathit{S}}\",\n 119879: \"\\\\ensuremath{\\\\mathit{T}}\",\n 119880: \"\\\\ensuremath{\\\\mathit{U}}\",\n 119881: \"\\\\ensuremath{\\\\mathit{V}}\",\n 119882: \"\\\\ensuremath{\\\\mathit{W}}\",\n 119883: \"\\\\ensuremath{\\\\mathit{X}}\",\n 119884: \"\\\\ensuremath{\\\\mathit{Y}}\",\n 119885: \"\\\\ensuremath{\\\\mathit{Z}}\",\n 119886: \"\\\\ensuremath{\\\\mathit{a}}\",\n 119887: \"\\\\ensuremath{\\\\mathit{b}}\",\n 119888: \"\\\\ensuremath{\\\\mathit{c}}\",\n 119889: \"\\\\ensuremath{\\\\mathit{d}}\",\n 119890: \"\\\\ensuremath{\\\\mathit{e}}\",\n 119891: \"\\\\ensuremath{\\\\mathit{f}}\",\n 119892: \"\\\\ensuremath{\\\\mathit{g}}\",\n 119893: \"\\\\ensuremath{\\\\mathit{h}}\",\n 119894: \"\\\\ensuremath{\\\\mathit{i}}\",\n 119895: \"\\\\ensuremath{\\\\mathit{j}}\",\n 119896: \"\\\\ensuremath{\\\\mathit{k}}\",\n 119897: \"\\\\ensuremath{\\\\mathit{l}}\",\n 119898: \"\\\\ensuremath{\\\\mathit{m}}\",\n 119899: \"\\\\ensuremath{\\\\mathit{n}}\",\n 119900: \"\\\\ensuremath{\\\\mathit{o}}\",\n 119901: \"\\\\ensuremath{\\\\mathit{p}}\",\n 119902: \"\\\\ensuremath{\\\\mathit{q}}\",\n 119903: \"\\\\ensuremath{\\\\mathit{r}}\",\n 119904: \"\\\\ensuremath{\\\\mathit{s}}\",\n 119905: \"\\\\ensuremath{\\\\mathit{t}}\",\n 119906: \"\\\\ensuremath{\\\\mathit{u}}\",\n 119907: \"\\\\ensuremath{\\\\mathit{v}}\",\n 119908: \"\\\\ensuremath{\\\\mathit{w}}\",\n 119909: \"\\\\ensuremath{\\\\mathit{x}}\",\n 119910: \"\\\\ensuremath{\\\\mathit{y}}\",\n 119911: \"\\\\ensuremath{\\\\mathit{z}}\",\n 119912: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{A}}}\",\n 119913: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{B}}}\",\n 119914: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{C}}}\",\n 119915: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{D}}}\",\n 119916: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{E}}}\",\n 119917: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{F}}}\",\n 119918: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{G}}}\",\n 119919: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{H}}}\",\n 119920: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{I}}}\",\n 119921: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{J}}}\",\n 119922: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{K}}}\",\n 119923: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{L}}}\",\n 119924: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{M}}}\",\n 119925: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{N}}}\",\n 119926: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{O}}}\",\n 119927: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{P}}}\",\n 119928: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{Q}}}\",\n 119929: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{R}}}\",\n 119930: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{S}}}\",\n 119931: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{T}}}\",\n 119932: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{U}}}\",\n 119933: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{V}}}\",\n 119934: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{W}}}\",\n 119935: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{X}}}\",\n 119936: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{Y}}}\",\n 119937: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{Z}}}\",\n 119938: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{a}}}\",\n 119939: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{b}}}\",\n 119940: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{c}}}\",\n 119941: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{d}}}\",\n 119942: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{e}}}\",\n 119943: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{f}}}\",\n 119944: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{g}}}\",\n 119945: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{h}}}\",\n 119946: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{i}}}\",\n 119947: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{j}}}\",\n 119948: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{k}}}\",\n 119949: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{l}}}\",\n 119950: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{m}}}\",\n 119951: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{n}}}\",\n 119952: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{o}}}\",\n 119953: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{p}}}\",\n 119954: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{q}}}\",\n 119955: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{r}}}\",\n 119956: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{s}}}\",\n 119957: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{t}}}\",\n 119958: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{u}}}\",\n 119959: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{v}}}\",\n 119960: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{w}}}\",\n 119961: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{x}}}\",\n 119962: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{y}}}\",\n 119963: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{z}}}\",\n 119964: \"\\\\ensuremath{\\\\mathscr{A}}\",\n 119965: \"\\\\ensuremath{\\\\mathscr{B}}\",\n 119966: \"\\\\ensuremath{\\\\mathscr{C}}\",\n 119967: \"\\\\ensuremath{\\\\mathscr{D}}\",\n 119968: \"\\\\ensuremath{\\\\mathscr{E}}\",\n 119969: \"\\\\ensuremath{\\\\mathscr{F}}\",\n 119970: \"\\\\ensuremath{\\\\mathscr{G}}\",\n 119971: \"\\\\ensuremath{\\\\mathscr{H}}\",\n 119972: \"\\\\ensuremath{\\\\mathscr{I}}\",\n 119973: \"\\\\ensuremath{\\\\mathscr{J}}\",\n 119974: \"\\\\ensuremath{\\\\mathscr{K}}\",\n 119975: \"\\\\ensuremath{\\\\mathscr{L}}\",\n 119976: \"\\\\ensuremath{\\\\mathscr{M}}\",\n 119977: \"\\\\ensuremath{\\\\mathscr{N}}\",\n 119978: \"\\\\ensuremath{\\\\mathscr{O}}\",\n 119979: \"\\\\ensuremath{\\\\mathscr{P}}\",\n 119980: \"\\\\ensuremath{\\\\mathscr{Q}}\",\n 119981: \"\\\\ensuremath{\\\\mathscr{R}}\",\n 119982: \"\\\\ensuremath{\\\\mathscr{S}}\",\n 119983: \"\\\\ensuremath{\\\\mathscr{T}}\",\n 119984: \"\\\\ensuremath{\\\\mathscr{U}}\",\n 119985: \"\\\\ensuremath{\\\\mathscr{V}}\",\n 119986: \"\\\\ensuremath{\\\\mathscr{W}}\",\n 119987: \"\\\\ensuremath{\\\\mathscr{X}}\",\n 119988: \"\\\\ensuremath{\\\\mathscr{Y}}\",\n 119989: \"\\\\ensuremath{\\\\mathscr{Z}}\",\n 119990: \"\\\\ensuremath{\\\\mathscr{a}}\",\n 119991: \"\\\\ensuremath{\\\\mathscr{b}}\",\n 119992: \"\\\\ensuremath{\\\\mathscr{c}}\",\n 119993: \"\\\\ensuremath{\\\\mathscr{d}}\",\n 119995: \"\\\\ensuremath{\\\\mathscr{f}}\",\n 119997: \"\\\\ensuremath{\\\\mathscr{h}}\",\n 119998: \"\\\\ensuremath{\\\\mathscr{i}}\",\n 119999: \"\\\\ensuremath{\\\\mathscr{j}}\",\n 120000: \"\\\\ensuremath{\\\\mathscr{k}}\",\n 120001: \"\\\\ensuremath{\\\\mathscr{l}}\",\n 120002: \"\\\\ensuremath{\\\\mathscr{m}}\",\n 120003: \"\\\\ensuremath{\\\\mathscr{n}}\",\n 120005: \"\\\\ensuremath{\\\\mathscr{p}}\",\n 120006: \"\\\\ensuremath{\\\\mathscr{q}}\",\n 120007: \"\\\\ensuremath{\\\\mathscr{r}}\",\n 120008: \"\\\\ensuremath{\\\\mathscr{s}}\",\n 120009: \"\\\\ensuremath{\\\\mathscr{t}}\",\n 120010: \"\\\\ensuremath{\\\\mathscr{u}}\",\n 120011: \"\\\\ensuremath{\\\\mathscr{v}}\",\n 120012: \"\\\\ensuremath{\\\\mathscr{w}}\",\n 120013: \"\\\\ensuremath{\\\\mathscr{x}}\",\n 120014: \"\\\\ensuremath{\\\\mathscr{y}}\",\n 120015: \"\\\\ensuremath{\\\\mathscr{z}}\",\n 120068: \"\\\\ensuremath{\\\\mathfrak{A}}\",\n 120069: \"\\\\ensuremath{\\\\mathfrak{B}}\",\n 120070: \"\\\\ensuremath{\\\\mathfrak{C}}\",\n 120071: \"\\\\ensuremath{\\\\mathfrak{D}}\",\n 120072: \"\\\\ensuremath{\\\\mathfrak{E}}\",\n 120073: \"\\\\ensuremath{\\\\mathfrak{F}}\",\n 120074: \"\\\\ensuremath{\\\\mathfrak{G}}\",\n 120075: \"\\\\ensuremath{\\\\mathfrak{H}}\",\n 120076: \"\\\\ensuremath{\\\\mathfrak{I}}\",\n 120077: \"\\\\ensuremath{\\\\mathfrak{J}}\",\n 120078: \"\\\\ensuremath{\\\\mathfrak{K}}\",\n 120079: \"\\\\ensuremath{\\\\mathfrak{L}}\",\n 120080: \"\\\\ensuremath{\\\\mathfrak{M}}\",\n 120081: \"\\\\ensuremath{\\\\mathfrak{N}}\",\n 120082: \"\\\\ensuremath{\\\\mathfrak{O}}\",\n 120083: \"\\\\ensuremath{\\\\mathfrak{P}}\",\n 120084: \"\\\\ensuremath{\\\\mathfrak{Q}}\",\n 120085: \"\\\\ensuremath{\\\\mathfrak{R}}\",\n 120086: \"\\\\ensuremath{\\\\mathfrak{S}}\",\n 120087: \"\\\\ensuremath{\\\\mathfrak{T}}\",\n 120088: \"\\\\ensuremath{\\\\mathfrak{U}}\",\n 120089: \"\\\\ensuremath{\\\\mathfrak{V}}\",\n 120090: \"\\\\ensuremath{\\\\mathfrak{W}}\",\n 120091: \"\\\\ensuremath{\\\\mathfrak{X}}\",\n 120092: \"\\\\ensuremath{\\\\mathfrak{Y}}\",\n 120093: \"\\\\ensuremath{\\\\mathfrak{Z}}\",\n 120094: \"\\\\ensuremath{\\\\mathfrak{a}}\",\n 120095: \"\\\\ensuremath{\\\\mathfrak{b}}\",\n 120096: \"\\\\ensuremath{\\\\mathfrak{c}}\",\n 120097: \"\\\\ensuremath{\\\\mathfrak{d}}\",\n 120098: \"\\\\ensuremath{\\\\mathfrak{e}}\",\n 120099: \"\\\\ensuremath{\\\\mathfrak{f}}\",\n 120100: \"\\\\ensuremath{\\\\mathfrak{g}}\",\n 120101: \"\\\\ensuremath{\\\\mathfrak{h}}\",\n 120102: \"\\\\ensuremath{\\\\mathfrak{i}}\",\n 120103: \"\\\\ensuremath{\\\\mathfrak{j}}\",\n 120104: \"\\\\ensuremath{\\\\mathfrak{k}}\",\n 120105: \"\\\\ensuremath{\\\\mathfrak{l}}\",\n 120106: \"\\\\ensuremath{\\\\mathfrak{m}}\",\n 120107: \"\\\\ensuremath{\\\\mathfrak{n}}\",\n 120108: \"\\\\ensuremath{\\\\mathfrak{o}}\",\n 120109: \"\\\\ensuremath{\\\\mathfrak{p}}\",\n 120110: \"\\\\ensuremath{\\\\mathfrak{q}}\",\n 120111: \"\\\\ensuremath{\\\\mathfrak{r}}\",\n 120112: \"\\\\ensuremath{\\\\mathfrak{s}}\",\n 120113: \"\\\\ensuremath{\\\\mathfrak{t}}\",\n 120114: \"\\\\ensuremath{\\\\mathfrak{u}}\",\n 120115: \"\\\\ensuremath{\\\\mathfrak{v}}\",\n 120116: \"\\\\ensuremath{\\\\mathfrak{w}}\",\n 120117: \"\\\\ensuremath{\\\\mathfrak{x}}\",\n 120118: \"\\\\ensuremath{\\\\mathfrak{y}}\",\n 120119: \"\\\\ensuremath{\\\\mathfrak{z}}\",\n 120120: \"\\\\ensuremath{\\\\mathbb{A}}\",\n 120121: \"\\\\ensuremath{\\\\mathbb{B}}\",\n 120122: \"\\\\ensuremath{\\\\mathbb{C}}\",\n 120123: \"\\\\ensuremath{\\\\mathbb{D}}\",\n 120124: \"\\\\ensuremath{\\\\mathbb{E}}\",\n 120125: \"\\\\ensuremath{\\\\mathbb{F}}\",\n 120126: \"\\\\ensuremath{\\\\mathbb{G}}\",\n 120127: \"\\\\ensuremath{\\\\mathbb{H}}\",\n 120128: \"\\\\ensuremath{\\\\mathbb{I}}\",\n 120129: \"\\\\ensuremath{\\\\mathbb{J}}\",\n 120130: \"\\\\ensuremath{\\\\mathbb{K}}\",\n 120131: \"\\\\ensuremath{\\\\mathbb{L}}\",\n 120132: \"\\\\ensuremath{\\\\mathbb{M}}\",\n 120133: \"\\\\ensuremath{\\\\mathbb{N}}\",\n 120134: \"\\\\ensuremath{\\\\mathbb{O}}\",\n 120135: \"\\\\ensuremath{\\\\mathbb{P}}\",\n 120136: \"\\\\ensuremath{\\\\mathbb{Q}}\",\n 120137: \"\\\\ensuremath{\\\\mathbb{R}}\",\n 120138: \"\\\\ensuremath{\\\\mathbb{S}}\",\n 120139: \"\\\\ensuremath{\\\\mathbb{T}}\",\n 120140: \"\\\\ensuremath{\\\\mathbb{U}}\",\n 120141: \"\\\\ensuremath{\\\\mathbb{V}}\",\n 120142: \"\\\\ensuremath{\\\\mathbb{W}}\",\n 120143: \"\\\\ensuremath{\\\\mathbb{X}}\",\n 120144: \"\\\\ensuremath{\\\\mathbb{Y}}\",\n 120145: \"\\\\ensuremath{\\\\mathbb{Z}}\",\n 120146: \"\\\\ensuremath{\\\\mathbb{a}}\",\n 120147: \"\\\\ensuremath{\\\\mathbb{b}}\",\n 120148: \"\\\\ensuremath{\\\\mathbb{c}}\",\n 120149: \"\\\\ensuremath{\\\\mathbb{d}}\",\n 120150: \"\\\\ensuremath{\\\\mathbb{e}}\",\n 120151: \"\\\\ensuremath{\\\\mathbb{f}}\",\n 120152: \"\\\\ensuremath{\\\\mathbb{g}}\",\n 120153: \"\\\\ensuremath{\\\\mathbb{h}}\",\n 120154: \"\\\\ensuremath{\\\\mathbb{i}}\",\n 120155: \"\\\\ensuremath{\\\\mathbb{j}}\",\n 120156: \"\\\\ensuremath{\\\\mathbb{k}}\",\n 120157: \"\\\\ensuremath{\\\\mathbb{l}}\",\n 120158: \"\\\\ensuremath{\\\\mathbb{m}}\",\n 120159: \"\\\\ensuremath{\\\\mathbb{n}}\",\n 120160: \"\\\\ensuremath{\\\\mathbb{o}}\",\n 120161: \"\\\\ensuremath{\\\\mathbb{p}}\",\n 120162: \"\\\\ensuremath{\\\\mathbb{q}}\",\n 120163: \"\\\\ensuremath{\\\\mathbb{r}}\",\n 120164: \"\\\\ensuremath{\\\\mathbb{s}}\",\n 120165: \"\\\\ensuremath{\\\\mathbb{t}}\",\n 120166: \"\\\\ensuremath{\\\\mathbb{u}}\",\n 120167: \"\\\\ensuremath{\\\\mathbb{v}}\",\n 120168: \"\\\\ensuremath{\\\\mathbb{w}}\",\n 120169: \"\\\\ensuremath{\\\\mathbb{x}}\",\n 120170: \"\\\\ensuremath{\\\\mathbb{y}}\",\n 120171: \"\\\\ensuremath{\\\\mathbb{z}}\",\n 120224: \"\\\\ensuremath{\\\\mathsf{A}}\",\n 120225: \"\\\\ensuremath{\\\\mathsf{B}}\",\n 120226: \"\\\\ensuremath{\\\\mathsf{C}}\",\n 120227: \"\\\\ensuremath{\\\\mathsf{D}}\",\n 120228: \"\\\\ensuremath{\\\\mathsf{E}}\",\n 120229: \"\\\\ensuremath{\\\\mathsf{F}}\",\n 120230: \"\\\\ensuremath{\\\\mathsf{G}}\",\n 120231: \"\\\\ensuremath{\\\\mathsf{H}}\",\n 120232: \"\\\\ensuremath{\\\\mathsf{I}}\",\n 120233: \"\\\\ensuremath{\\\\mathsf{J}}\",\n 120234: \"\\\\ensuremath{\\\\mathsf{K}}\",\n 120235: \"\\\\ensuremath{\\\\mathsf{L}}\",\n 120236: \"\\\\ensuremath{\\\\mathsf{M}}\",\n 120237: \"\\\\ensuremath{\\\\mathsf{N}}\",\n 120238: \"\\\\ensuremath{\\\\mathsf{O}}\",\n 120239: \"\\\\ensuremath{\\\\mathsf{P}}\",\n 120240: \"\\\\ensuremath{\\\\mathsf{Q}}\",\n 120241: \"\\\\ensuremath{\\\\mathsf{R}}\",\n 120242: \"\\\\ensuremath{\\\\mathsf{S}}\",\n 120243: \"\\\\ensuremath{\\\\mathsf{T}}\",\n 120244: \"\\\\ensuremath{\\\\mathsf{U}}\",\n 120245: \"\\\\ensuremath{\\\\mathsf{V}}\",\n 120246: \"\\\\ensuremath{\\\\mathsf{W}}\",\n 120247: \"\\\\ensuremath{\\\\mathsf{X}}\",\n 120248: \"\\\\ensuremath{\\\\mathsf{Y}}\",\n 120249: \"\\\\ensuremath{\\\\mathsf{Z}}\",\n 120250: \"\\\\ensuremath{\\\\mathsf{a}}\",\n 120251: \"\\\\ensuremath{\\\\mathsf{b}}\",\n 120252: \"\\\\ensuremath{\\\\mathsf{c}}\",\n 120253: \"\\\\ensuremath{\\\\mathsf{d}}\",\n 120254: \"\\\\ensuremath{\\\\mathsf{e}}\",\n 120255: \"\\\\ensuremath{\\\\mathsf{f}}\",\n 120256: \"\\\\ensuremath{\\\\mathsf{g}}\",\n 120257: \"\\\\ensuremath{\\\\mathsf{h}}\",\n 120258: \"\\\\ensuremath{\\\\mathsf{i}}\",\n 120259: \"\\\\ensuremath{\\\\mathsf{j}}\",\n 120260: \"\\\\ensuremath{\\\\mathsf{k}}\",\n 120261: \"\\\\ensuremath{\\\\mathsf{l}}\",\n 120262: \"\\\\ensuremath{\\\\mathsf{m}}\",\n 120263: \"\\\\ensuremath{\\\\mathsf{n}}\",\n 120264: \"\\\\ensuremath{\\\\mathsf{o}}\",\n 120265: \"\\\\ensuremath{\\\\mathsf{p}}\",\n 120266: \"\\\\ensuremath{\\\\mathsf{q}}\",\n 120267: \"\\\\ensuremath{\\\\mathsf{r}}\",\n 120268: \"\\\\ensuremath{\\\\mathsf{s}}\",\n 120269: \"\\\\ensuremath{\\\\mathsf{t}}\",\n 120270: \"\\\\ensuremath{\\\\mathsf{u}}\",\n 120271: \"\\\\ensuremath{\\\\mathsf{v}}\",\n 120272: \"\\\\ensuremath{\\\\mathsf{w}}\",\n 120273: \"\\\\ensuremath{\\\\mathsf{x}}\",\n 120274: \"\\\\ensuremath{\\\\mathsf{y}}\",\n 120275: \"\\\\ensuremath{\\\\mathsf{z}}\",\n 120432: \"\\\\ensuremath{\\\\mathtt{A}}\",\n 120433: \"\\\\ensuremath{\\\\mathtt{B}}\",\n 120434: \"\\\\ensuremath{\\\\mathtt{C}}\",\n 120435: \"\\\\ensuremath{\\\\mathtt{D}}\",\n 120436: \"\\\\ensuremath{\\\\mathtt{E}}\",\n 120437: \"\\\\ensuremath{\\\\mathtt{F}}\",\n 120438: \"\\\\ensuremath{\\\\mathtt{G}}\",\n 120439: \"\\\\ensuremath{\\\\mathtt{H}}\",\n 120440: \"\\\\ensuremath{\\\\mathtt{I}}\",\n 120441: \"\\\\ensuremath{\\\\mathtt{J}}\",\n 120442: \"\\\\ensuremath{\\\\mathtt{K}}\",\n 120443: \"\\\\ensuremath{\\\\mathtt{L}}\",\n 120444: \"\\\\ensuremath{\\\\mathtt{M}}\",\n 120445: \"\\\\ensuremath{\\\\mathtt{N}}\",\n 120446: \"\\\\ensuremath{\\\\mathtt{O}}\",\n 120447: \"\\\\ensuremath{\\\\mathtt{P}}\",\n 120448: \"\\\\ensuremath{\\\\mathtt{Q}}\",\n 120449: \"\\\\ensuremath{\\\\mathtt{R}}\",\n 120450: \"\\\\ensuremath{\\\\mathtt{S}}\",\n 120451: \"\\\\ensuremath{\\\\mathtt{T}}\",\n 120452: \"\\\\ensuremath{\\\\mathtt{U}}\",\n 120453: \"\\\\ensuremath{\\\\mathtt{V}}\",\n 120454: \"\\\\ensuremath{\\\\mathtt{W}}\",\n 120455: \"\\\\ensuremath{\\\\mathtt{X}}\",\n 120456: \"\\\\ensuremath{\\\\mathtt{Y}}\",\n 120457: \"\\\\ensuremath{\\\\mathtt{Z}}\",\n 120458: \"\\\\ensuremath{\\\\mathtt{a}}\",\n 120459: \"\\\\ensuremath{\\\\mathtt{b}}\",\n 120460: \"\\\\ensuremath{\\\\mathtt{c}}\",\n 120461: \"\\\\ensuremath{\\\\mathtt{d}}\",\n 120462: \"\\\\ensuremath{\\\\mathtt{e}}\",\n 120463: \"\\\\ensuremath{\\\\mathtt{f}}\",\n 120464: \"\\\\ensuremath{\\\\mathtt{g}}\",\n 120465: \"\\\\ensuremath{\\\\mathtt{h}}\",\n 120466: \"\\\\ensuremath{\\\\mathtt{i}}\",\n 120467: \"\\\\ensuremath{\\\\mathtt{j}}\",\n 120468: \"\\\\ensuremath{\\\\mathtt{k}}\",\n 120469: \"\\\\ensuremath{\\\\mathtt{l}}\",\n 120470: \"\\\\ensuremath{\\\\mathtt{m}}\",\n 120471: \"\\\\ensuremath{\\\\mathtt{n}}\",\n 120472: \"\\\\ensuremath{\\\\mathtt{o}}\",\n 120473: \"\\\\ensuremath{\\\\mathtt{p}}\",\n 120474: \"\\\\ensuremath{\\\\mathtt{q}}\",\n 120475: \"\\\\ensuremath{\\\\mathtt{r}}\",\n 120476: \"\\\\ensuremath{\\\\mathtt{s}}\",\n 120477: \"\\\\ensuremath{\\\\mathtt{t}}\",\n 120478: \"\\\\ensuremath{\\\\mathtt{u}}\",\n 120479: \"\\\\ensuremath{\\\\mathtt{v}}\",\n 120480: \"\\\\ensuremath{\\\\mathtt{w}}\",\n 120481: \"\\\\ensuremath{\\\\mathtt{x}}\",\n 120482: \"\\\\ensuremath{\\\\mathtt{y}}\",\n 120483: \"\\\\ensuremath{\\\\mathtt{z}}\",\n 120782: \"\\\\ensuremath{\\\\mathbf{0}}\",\n 120783: \"\\\\ensuremath{\\\\mathbf{1}}\",\n 120784: \"\\\\ensuremath{\\\\mathbf{2}}\",\n 120785: \"\\\\ensuremath{\\\\mathbf{3}}\",\n 120786: \"\\\\ensuremath{\\\\mathbf{4}}\",\n 120787: \"\\\\ensuremath{\\\\mathbf{5}}\",\n 120788: \"\\\\ensuremath{\\\\mathbf{6}}\",\n 120789: \"\\\\ensuremath{\\\\mathbf{7}}\",\n 120790: \"\\\\ensuremath{\\\\mathbf{8}}\",\n 120791: \"\\\\ensuremath{\\\\mathbf{9}}\",\n 120792: \"\\\\ensuremath{\\\\mathbb{0}}\",\n 120793: \"\\\\ensuremath{\\\\mathbb{1}}\",\n 120794: \"\\\\ensuremath{\\\\mathbb{2}}\",\n 120795: \"\\\\ensuremath{\\\\mathbb{3}}\",\n 120796: \"\\\\ensuremath{\\\\mathbb{4}}\",\n 120797: \"\\\\ensuremath{\\\\mathbb{5}}\",\n 120798: \"\\\\ensuremath{\\\\mathbb{6}}\",\n 120799: \"\\\\ensuremath{\\\\mathbb{7}}\",\n 120800: \"\\\\ensuremath{\\\\mathbb{8}}\",\n 120801: \"\\\\ensuremath{\\\\mathbb{9}}\",\n 120802: \"\\\\ensuremath{\\\\mathsf{0}}\",\n 120803: \"\\\\ensuremath{\\\\mathsf{1}}\",\n 120804: \"\\\\ensuremath{\\\\mathsf{2}}\",\n 120805: \"\\\\ensuremath{\\\\mathsf{3}}\",\n 120806: \"\\\\ensuremath{\\\\mathsf{4}}\",\n 120807: \"\\\\ensuremath{\\\\mathsf{5}}\",\n 120808: \"\\\\ensuremath{\\\\mathsf{6}}\",\n 120809: \"\\\\ensuremath{\\\\mathsf{7}}\",\n 120810: \"\\\\ensuremath{\\\\mathsf{8}}\",\n 120811: \"\\\\ensuremath{\\\\mathsf{9}}\",\n 120822: \"\\\\ensuremath{\\\\mathtt{0}}\",\n 120823: \"\\\\ensuremath{\\\\mathtt{1}}\",\n 120824: \"\\\\ensuremath{\\\\mathtt{2}}\",\n 120825: \"\\\\ensuremath{\\\\mathtt{3}}\",\n 120826: \"\\\\ensuremath{\\\\mathtt{4}}\",\n 120827: \"\\\\ensuremath{\\\\mathtt{5}}\",\n 120828: \"\\\\ensuremath{\\\\mathtt{6}}\",\n 120829: \"\\\\ensuremath{\\\\mathtt{7}}\",\n 120830: \"\\\\ensuremath{\\\\mathtt{8}}\",\n 120831: \"\\\\ensuremath{\\\\mathtt{9}}\",\n};\n","/**\r\n * Unicode -> LaTeX encoder.\r\n *\r\n * Internalized port of pylatexenc 2.x `latexencode.UnicodeToLatexEncoder`\r\n * (MIT, (c) Philippe Faist), restricted to the configuration dwml uses:\r\n * replacement_latex_protection = 'braces-all'\r\n * unknown_char_policy = 'keep'\r\n * unknown_char_warning = false\r\n * non_ascii_only = false\r\n * conversion_rules = ['defaults']\r\n *\r\n * The `braces-all` scheme wraps every rule replacement in curly braces.\r\n * Unknown characters (no mapping) are kept verbatim.\r\n */\r\n\r\nimport { UNI2LATEX } from './uni2latex.generated';\r\n\r\n/**\r\n * Convert a unicode string to a LaTeX snippet using the default\r\n * uni2latex map with `braces-all` protection, NFC normalization, and\r\n * `keep` policy for unknown characters.\r\n *\r\n * Iteration is by Unicode code point (matching Python's str indexing),\r\n * so astral-plane characters (e.g. Mathematical Alphanumeric Symbols\r\n * U+1D400–U+1D7FF) are treated as single characters.\r\n */\r\nexport function unicodeToLatex(input: string): string {\r\n const s = String(input).normalize('NFC');\r\n let out = '';\r\n for (const ch of s) {\r\n const cp = ch.codePointAt(0)!;\r\n const repl = UNI2LATEX[cp];\r\n if (repl !== undefined) {\r\n out += '{' + repl + '}'; // braces-all protection\r\n } else if ((cp >= 32 && cp <= 127) || ch === '\\n' || ch === '\\r' || ch === '\\t') {\r\n out += ch;\r\n } else {\r\n out += ch; // unknown_char_policy = 'keep'\r\n }\r\n }\r\n return out;\r\n}\r\n","/**\r\n * LaTeX symbol dictionaries for OMML to LaTeX conversion.\r\n *\r\n * References:\r\n * - http://web.ift.uib.no/Teori/KURS/WRK/TeX/symALL.html\r\n * - http://en.wikibooks.org/wiki/LaTeX/Mathematics\r\n * - http://www.ctan.org/tex-archive/macros/latex/contrib/unicode-math\r\n * - https://github.com/wspr/unicode-math/blob/master/unicode-math-table.tex\r\n * - https://github.com/transpect/mml2tex (texmap.xml, function-names.xsl)\r\n */\r\n\r\nexport const CHARS: readonly string[] = ['{', '}', '_', '^', '#', '&', '$', '%', '~'];\r\n\r\nexport const BLANK = '';\r\nexport const BACKSLASH = '\\\\';\r\nexport const ALN = '&';\r\n\r\n/** Unicode combining accents -> LaTeX accent commands */\r\nexport const CHR: Record<string, string> = {\r\n // Top accents\r\n '̀': '\\\\grave{{{0}}}',\r\n '́': '\\\\acute{{{0}}}',\r\n '̂': '\\\\hat{{{0}}}',\r\n '̃': '\\\\tilde{{{0}}}',\r\n '̄': '\\\\bar{{{0}}}',\r\n '̅': '\\\\overbar{{{0}}}',\r\n '̆': '\\\\breve{{{0}}}',\r\n '̇': '\\\\dot{{{0}}}',\r\n '̈': '\\\\ddot{{{0}}}',\r\n '̉': '\\\\ovhook{{{0}}}',\r\n '̊': '\\\\ocirc{{{0}}}}',\r\n '̌': '\\\\check{{{0}}}}',\r\n '̐': '\\\\candra{{{0}}}',\r\n '̒': '\\\\oturnedcomma{{{0}}}',\r\n '̕': '\\\\ocommatopright{{{0}}}',\r\n '̚': '\\\\droang{{{0}}}',\r\n '̸': '\\\\not{{{0}}}',\r\n '⃝': '\\\\enclosecircle{{{0}}}',\r\n '⃞': '\\\\enclosesquare{{{0}}}',\r\n '⃟': '\\\\enclosediamond{{{0}}}',\r\n '⃤': '\\\\enclosetriangle{{{0}}}',\r\n '⃐': '\\\\leftharpoonup{{{0}}}',\r\n '⃑': '\\\\rightharpoonup{{{0}}}',\r\n '⃒': '\\\\vertoverlay{{{0}}}',\r\n '⃖': '\\\\LVec{{{0}}}',\r\n '⃗': '\\\\vec{{{0}}}',\r\n '⃛': '\\\\dddot{{{0}}}',\r\n '⃜': '\\\\ddddot{{{0}}}',\r\n '⃡': '\\\\overleftrightarrow{{{0}}}',\r\n '⃧': '\\\\annuity{{{0}}}',\r\n '⃩': '\\\\widebridgeabove{{{0}}}',\r\n '⃰': '\\\\asteraccent{{{0}}}',\r\n // Bottom accents\r\n '̰': '\\\\wideutilde{{{0}}}',\r\n '̱': '\\\\underbar{{{0}}}',\r\n '⃨': '\\\\threeunderdot{{{0}}}',\r\n '⃬': '\\\\underrightharpoondown{{{0}}}',\r\n '⃭': '\\\\underleftharpoondown{{{0}}}',\r\n '⃮': '\\\\underleftarrow{{{0}}}',\r\n '⃯': '\\\\underrightarrow{{{0}}}',\r\n // Over | group\r\n '⎴': '\\\\overbracket{{{0}}}',\r\n '⏜': '\\\\overparen{{{0}}}',\r\n '⏞': '\\\\overbrace{{{0}}}',\r\n // Under | group\r\n '⎵': '\\\\underbracket{{{0}}}',\r\n '⏝': '\\\\underparen{{{0}}}',\r\n '⏟': '\\\\underbrace{{{0}}}',\r\n};\r\n\r\n/** Big operators */\r\nexport const CHR_BO: Record<string, string> = {\r\n '⅀': '\\\\Bbbsum',\r\n '∏': '\\\\prod',\r\n '∐': '\\\\coprod',\r\n '∑': '\\\\sum',\r\n '∫': '\\\\int',\r\n '∬': '\\\\iint',\r\n '∭': '\\\\iiint',\r\n '⨌': '\\\\iiiint',\r\n '∮': '\\\\oint',\r\n '∯': '\\\\oiint',\r\n '∰': '\\\\oiiint',\r\n '⨍': '\\\\fint',\r\n '⨖': '\\\\sqint',\r\n '⋀': '\\\\bigwedge',\r\n '⋁': '\\\\bigvee',\r\n '⋂': '\\\\bigcap',\r\n '⋃': '\\\\bigcup',\r\n '⨀': '\\\\bigodot',\r\n '⨁': '\\\\bigoplus',\r\n '⨂': '\\\\bigotimes',\r\n '⨄': '\\\\biguplus',\r\n '⨅': '\\\\bigsqcap',\r\n '⨆': '\\\\bigsqcup',\r\n '⨉': '\\\\varprod',\r\n};\r\n\r\n/** Unicode math symbols -> LaTeX */\r\nexport const T: Record<string, string> = {\r\n '→': '\\\\rightarrow ',\r\n // Greek letters (bold italic math, U+1D6FC..)\r\n '𝛼': '\\\\alpha ',\r\n '𝛽': '\\\\beta ',\r\n '𝛾': '\\\\gamma ',\r\n '𝛿': '\\\\delta ',\r\n '𝜀': '\\\\epsilon ',\r\n '𝜁': '\\\\zeta ',\r\n '𝜂': '\\\\eta ',\r\n '𝜃': '\\\\theta ',\r\n '𝜄': '\\\\iota ',\r\n '𝜅': '\\\\kappa ',\r\n '𝜆': '\\\\lambda ',\r\n '𝜇': '\\\\mu ',\r\n '𝜈': '\\\\nu ',\r\n '𝜉': '\\\\xi ',\r\n '𝜊': '\\\\omicron ',\r\n '𝜋': '\\\\pi ',\r\n '𝜌': '\\\\rho ',\r\n '𝜍': '\\\\varsigma ',\r\n '𝜎': '\\\\sigma ',\r\n '𝜏': '\\\\tau ',\r\n '𝜐': '\\\\upsilon ',\r\n '𝜑': '\\\\phi ',\r\n '𝜒': '\\\\chi ',\r\n '𝜓': '\\\\psi ',\r\n '𝜔': '\\\\omega ',\r\n '𝜕': '\\\\partial ',\r\n '𝜖': '\\\\varepsilon ',\r\n '𝜗': '\\\\vartheta ',\r\n '𝜘': '\\\\varkappa ',\r\n '𝜙': '\\\\varphi ',\r\n '𝜚': '\\\\varrho ',\r\n '𝜛': '\\\\varpi ',\r\n // Relation symbols\r\n '←': '\\\\leftarrow ',\r\n '↑': '\\\\uparrow ',\r\n '↓': '\\\\downarrow ',\r\n '↔': '\\\\leftrightarrow ',\r\n '↕': '\\\\updownarrow ',\r\n '↖': '\\\\nwarrow ',\r\n '↗': '\\\\nearrow ',\r\n '↘': '\\\\searrow ',\r\n '↙': '\\\\swarrow ',\r\n '⋮': '\\\\vdots ',\r\n '⋯': '\\\\cdots ',\r\n '⋰': '\\\\adots ',\r\n '⋱': '\\\\ddots ',\r\n '⇐': '\\\\Leftarrow ',\r\n '⇒': '\\\\Rightarrow ',\r\n '⇔': '\\\\Leftrightarrow ',\r\n '⇑': '\\\\Uparrow ',\r\n '⇓': '\\\\Downarrow ',\r\n '⇕': '\\\\Updownarrow ',\r\n '↦': '\\\\mapsto ',\r\n // Delimiter symbols (used by doD for begChr/endChr)\r\n '⟨': '\\\\langle ',\r\n '⟩': '\\\\rangle ',\r\n '⌈': '\\\\lceil ',\r\n '⌉': '\\\\rceil ',\r\n '⌊': '\\\\lfloor ',\r\n '⌋': '\\\\rfloor ',\r\n '‖': '\\\\Vert ',\r\n '∥': '\\\\parallel ',\r\n '≠': '\\\\ne ',\r\n '≤': '\\\\leq ',\r\n '≥': '\\\\geq ',\r\n '≦': '\\\\leqq ',\r\n '≧': '\\\\geqq ',\r\n '≨': '\\\\lneqq ',\r\n '≩': '\\\\gneqq ',\r\n '≪': '\\\\ll ',\r\n '≫': '\\\\gg ',\r\n '∈': '\\\\in ',\r\n '∉': '\\\\notin ',\r\n '∋': '\\\\ni ',\r\n '∌': '\\\\nni ',\r\n // Ordinary symbols\r\n '∞': '\\\\infty ',\r\n // Binary relations / operators\r\n '±': '\\\\pm ',\r\n '∓': '\\\\mp ',\r\n '·': '\\\\cdot ',\r\n '⋅': '\\\\cdot ',\r\n '×': '\\\\times ',\r\n '÷': '\\\\div ',\r\n '∗': '\\\\ast ',\r\n '∘': '\\\\circ ',\r\n '∙': '\\\\bullet ',\r\n '−': '-',\r\n '<': '<',\r\n '>': '>',\r\n '=': '=',\r\n '≈': '\\\\approx ',\r\n '≡': '\\\\equiv ',\r\n '≅': '\\\\cong ',\r\n '∼': '\\\\sim ',\r\n '≃': '\\\\simeq ',\r\n '≐': '\\\\doteq ',\r\n '∝': '\\\\propto ',\r\n '∴': '\\\\therefore ',\r\n '∵': '\\\\because ',\r\n '∀': '\\\\forall ',\r\n '∃': '\\\\exists ',\r\n '∄': '\\\\nexists ',\r\n '∅': '\\\\emptyset ',\r\n '∇': '\\\\nabla ',\r\n '∧': '\\\\wedge ',\r\n '∨': '\\\\vee ',\r\n '¬': '\\\\neg ',\r\n '∩': '\\\\cap ',\r\n '∪': '\\\\cup ',\r\n '⊂': '\\\\subset ',\r\n '⊃': '\\\\supset ',\r\n '⊆': '\\\\subseteq ',\r\n '⊇': '\\\\supseteq ',\r\n '⊕': '\\\\oplus ',\r\n '⊗': '\\\\otimes ',\r\n '⊥': '\\\\perp ',\r\n '°': '\\\\degree ',\r\n '′': '\\\\prime ',\r\n '″': '\\\\prime\\\\prime ',\r\n '…': '\\\\ldots ',\r\n // Greek letters (plain, U+03B1..) — for run text\r\n 'α': '\\\\alpha ',\r\n 'β': '\\\\beta ',\r\n 'γ': '\\\\gamma ',\r\n 'δ': '\\\\delta ',\r\n 'ε': '\\\\epsilon ',\r\n 'ζ': '\\\\zeta ',\r\n 'η': '\\\\eta ',\r\n 'θ': '\\\\theta ',\r\n 'ι': '\\\\iota ',\r\n 'κ': '\\\\kappa ',\r\n 'λ': '\\\\lambda ',\r\n 'μ': '\\\\mu ',\r\n 'ν': '\\\\nu ',\r\n 'ξ': '\\\\xi ',\r\n 'ο': '\\\\omicron ',\r\n 'π': '\\\\pi ',\r\n 'ρ': '\\\\rho ',\r\n 'ς': '\\\\varsigma ',\r\n 'σ': '\\\\sigma ',\r\n 'τ': '\\\\tau ',\r\n 'υ': '\\\\upsilon ',\r\n 'φ': '\\\\phi ',\r\n 'χ': '\\\\chi ',\r\n 'ψ': '\\\\psi ',\r\n 'ω': '\\\\omega ',\r\n '∂': '\\\\partial ',\r\n 'ϵ': '\\\\epsilon ',\r\n 'ϑ': '\\\\vartheta ',\r\n 'ϰ': '\\\\varkappa ',\r\n 'ϕ': '\\\\phi ',\r\n 'ϱ': '\\\\varrho ',\r\n 'ϖ': '\\\\varpi ',\r\n // Italic, Latin, uppercase (U+1D434..)\r\n '𝐴': 'A',\r\n '𝐵': 'B',\r\n '𝐶': 'C',\r\n '𝐷': 'D',\r\n '𝐸': 'E',\r\n '𝐹': 'F',\r\n '𝐺': 'G',\r\n '𝐻': 'H',\r\n '𝐼': 'I',\r\n '𝐽': 'J',\r\n '𝐾': 'K',\r\n '𝐿': 'L',\r\n '𝑀': 'M',\r\n '𝑁': 'N',\r\n '𝑂': 'O',\r\n '𝑃': 'P',\r\n '𝑄': 'Q',\r\n '𝑅': 'R',\r\n '𝑆': 'S',\r\n '𝑇': 'T',\r\n '𝑈': 'U',\r\n '𝑉': 'V',\r\n '𝑊': 'W',\r\n '𝑋': 'X',\r\n '𝑌': 'Y',\r\n '𝑍': 'Z',\r\n // Italic, Latin, lowercase (U+1D44E..)\r\n '𝑎': 'a',\r\n '𝑏': 'b',\r\n '𝑐': 'c',\r\n '𝑑': 'd',\r\n '𝑒': 'e',\r\n '𝑓': 'f',\r\n '𝑔': 'g',\r\n '𝑖': 'i',\r\n '𝑗': 'j',\r\n '𝑘': 'k',\r\n '𝑙': 'l',\r\n '𝑚': 'm',\r\n '𝑛': 'n',\r\n '𝑜': 'o',\r\n '𝑝': 'p',\r\n '𝑞': 'q',\r\n '𝑟': 'r',\r\n '𝑠': 's',\r\n '𝑡': 't',\r\n '𝑢': 'u',\r\n '𝑣': 'v',\r\n '𝑤': 'w',\r\n '𝑥': 'x',\r\n '𝑦': 'y',\r\n '𝑧': 'z',\r\n};\r\n\r\n/** Function names (sin, cos, ...) -> LaTeX templates */\r\nexport const FUNC: Record<string, string> = {\r\n sin: '\\\\sin({fe})',\r\n cos: '\\\\cos({fe})',\r\n tan: '\\\\tan({fe})',\r\n cot: '\\\\cot({fe})',\r\n sec: '\\\\sec({fe})',\r\n csc: '\\\\csc({fe})',\r\n arcsin: '\\\\arcsin({fe})',\r\n arccos: '\\\\arccos({fe})',\r\n arctan: '\\\\arctan({fe})',\r\n arccot: '\\\\arccot({fe})',\r\n arcsec: '\\\\arcsec({fe})',\r\n arccsc: '\\\\arccsc({fe})',\r\n sinh: '\\\\sinh({fe})',\r\n cosh: '\\\\cosh({fe})',\r\n tanh: '\\\\tanh({fe})',\r\n coth: '\\\\coth({fe})',\r\n sech: '\\\\sech({fe})',\r\n csch: '\\\\csch({fe})',\r\n arcsinh: '\\\\arcsinh({fe})',\r\n arccosh: '\\\\arccosh({fe})',\r\n arctanh: '\\\\arctanh({fe})',\r\n arccoth: '\\\\arccoth({fe})',\r\n arcsech: '\\\\arcsech({fe})',\r\n arccsch: '\\\\arccsch({fe})',\r\n log: '\\\\log{{fe}}',\r\n ln: '\\\\ln{{fe}}',\r\n lg: '\\\\lg{{fe}}',\r\n exp: '\\\\exp({fe})',\r\n arg: '\\\\arg({fe})',\r\n deg: '\\\\deg({fe})',\r\n det: '\\\\det({fe})',\r\n dim: '\\\\dim({fe})',\r\n gcd: '\\\\gcd({fe})',\r\n hom: '\\\\hom({fe})',\r\n ker: '\\\\ker({fe})',\r\n mod: '\\\\bmod({fe})',\r\n Pr: '\\\\Pr({fe})',\r\n};\r\n\r\nexport const FUNC_PLACE = '{fe}';\r\n\r\nexport const BRK = '\\\\\\\\';\r\n\r\nexport const CHR_DEFAULT: Record<string, string> = {\r\n ACC_VAL: '\\\\hat{{{0}}}',\r\n};\r\n\r\n/** Bar positions */\r\nexport const POS: Record<string, string> = {\r\n top: '\\\\overline{{{0}}}',\r\n bot: '\\\\underline{{{0}}}',\r\n};\r\n\r\nexport const POS_DEFAULT: Record<string, string> = {\r\n BAR_VAL: '\\\\overline{{{0}}}',\r\n};\r\n\r\nexport const SUB = '_{{{0}}}';\r\nexport const SUP = '^{{{0}}}';\r\n\r\n/** Fraction types */\r\nexport const F: Record<string, string> = {\r\n bar: '\\\\frac{{{num}}}{{{den}}}',\r\n skw: '^{{{num}}}/_{{{den}}}',\r\n noBar: '\\\\genfrac{{}}{{}}{{0pt}}{{}}{{{num}}}{{{den}}}',\r\n lin: '{{{num}}}/{{{den}}}',\r\n};\r\nexport const F_DEFAULT = '\\\\frac{{{num}}}{{{den}}}';\r\n\r\nexport const D = '\\\\left{left}{text}\\\\right{right}';\r\n\r\nexport const D_DEFAULT: Record<string, string> = {\r\n left: '(',\r\n right: ')',\r\n null: '.',\r\n};\r\n\r\nexport const RAD = '\\\\sqrt[{deg}]{{{text}}}';\r\nexport const RAD_DEFAULT = '\\\\sqrt{{{text}}}';\r\n\r\nexport const ARR = '\\\\begin{{array}}{{c}}{text}\\\\end{{array}}';\r\n\r\nexport const LIM_FUNC: Record<string, string> = {\r\n lim: '\\\\lim_{{{lim}}}',\r\n max: '\\\\max_{{{lim}}}',\r\n min: '\\\\min_{{{lim}}}',\r\n sup: '\\\\sup_{{{lim}}}',\r\n inf: '\\\\inf_{{{lim}}}',\r\n limsup: '\\\\limsup_{{{lim}}}',\r\n liminf: '\\\\liminf_{{{lim}}}',\r\n injlim: '\\\\injlim_{{{lim}}}',\r\n projlim: '\\\\projlim_{{{lim}}}',\r\n};\r\n\r\nexport const LIM_TO: readonly [string, string] = ['\\\\rightarrow', '\\\\to'];\r\n\r\nexport const LIM_UPP = '\\\\overset{{{lim}}}{{{text}}}';\r\n\r\nexport const M = '\\\\begin{{matrix}}{text}\\\\end{{matrix}}';\r\n","/**\r\n * OMML (Office Math Markup Language) -> LaTeX converter.\r\n *\r\n * Port of the Python `dwml` library (Apache-2.0, (c) xiilei) to TypeScript,\r\n * with 100% output fidelity on the reference fixtures. Namespace handling is\r\n * prefix-agnostic (matches by local name), and unknown constructs degrade to\r\n * their concatenated text content instead of throwing.\r\n *\r\n * The conversion operates directly on txml `TNode`s (see https://github.com/TobiasNickel/tXml),\r\n * which PPTist already ships, so a caller can pass already-parsed nodes in\r\n * without a DOM and without re-parsing.\r\n */\r\n\r\nimport type { TNode } from 'txml';\r\nimport { unicodeToLatex } from './latex-encode';\r\nimport {\r\n CHARS,\r\n CHR,\r\n CHR_BO,\r\n CHR_DEFAULT,\r\n POS,\r\n POS_DEFAULT,\r\n F,\r\n F_DEFAULT,\r\n T,\r\n FUNC,\r\n D,\r\n D_DEFAULT,\r\n RAD,\r\n RAD_DEFAULT,\r\n ARR,\r\n LIM_FUNC,\r\n LIM_TO,\r\n LIM_UPP,\r\n M,\r\n BRK,\r\n BLANK,\r\n BACKSLASH,\r\n ALN,\r\n FUNC_PLACE,\r\n} from './latex-dict';\r\n\r\n/** Options accepted by the conversion entry points. */\r\nexport interface OmmlToLatexOptions {\r\n /** Called once per element local-name the converter had to degrade. */\r\n onUnsupported?: (localName: string) => void;\r\n}\r\n\r\nconst VAL_SUFFIX = 'val';\r\n\r\n/** Local name of a tag: strips any namespace prefix (`m:oMath` -> `oMath`). */\r\nexport function localName(tagName: string): string {\r\n const idx = tagName.indexOf(':');\r\n return idx === -1 ? tagName : tagName.slice(idx + 1);\r\n}\r\n\r\nfunction isElement(node: TNode | string): node is TNode {\r\n return typeof node !== 'string';\r\n}\r\n\r\n/**\r\n * Concatenated text content of a node (the \"never throw\" degradation target).\r\n */\r\nexport function textContent(node: TNode): string {\r\n let out = '';\r\n for (const child of node.children) {\r\n out += typeof child === 'string' ? child : textContent(child);\r\n }\r\n return out;\r\n}\r\n\r\n/**\r\n * Python's `str.format`-style substitution for the small set of templates\r\n * used by dwml's latex_dict: `{0}` positional and `{name}` named, with `{{`\r\n * and `}}` escaped braces.\r\n */\r\nfunction pyFormat(template: string, positional: string[] = [], named: Record<string, string> = {}): string {\r\n let out = '';\r\n let i = 0;\r\n const n = template.length;\r\n while (i < n) {\r\n const ch = template[i]!;\r\n if (ch === '{') {\r\n if (template[i + 1] === '{') {\r\n out += '{';\r\n i += 2;\r\n continue;\r\n }\r\n const close = template.indexOf('}', i + 1);\r\n if (close === -1) {\r\n out += ch;\r\n i += 1;\r\n continue;\r\n }\r\n const field = template.slice(i + 1, close);\r\n if (/^\\d+$/.test(field)) {\r\n out += positional[Number(field)] ?? '';\r\n } else {\r\n out += named[field] ?? '';\r\n }\r\n i = close + 1;\r\n continue;\r\n }\r\n if (ch === '}' && template[i + 1] === '}') {\r\n out += '}';\r\n i += 2;\r\n continue;\r\n }\r\n out += ch;\r\n i += 1;\r\n }\r\n return out;\r\n}\r\n\r\n/**\r\n * Escape LaTeX-special characters, matching dwml's `escape_latex`:\r\n * `\\\\` is first collapsed to `\\`, then any CHARS member not preceded by a\r\n * backslash is prefixed with a backslash.\r\n */\r\nexport function escapeLatex(strs: string): string {\r\n const collapsed = strs.split('\\\\\\\\').join('\\\\');\r\n let out = '';\r\n let last: string | null = null;\r\n for (const c of collapsed) {\r\n if (CHARS.includes(c) && last !== BACKSLASH) {\r\n out += BACKSLASH + c;\r\n } else {\r\n out += c;\r\n }\r\n last = c;\r\n }\r\n return out;\r\n}\r\n\r\n/**\r\n * Lookup a key in a symbol store. `null`/`undefined` key returns `default`;\r\n * otherwise returns the store value if present, else the key itself\r\n * (mirrors dwml's `get_val`). An empty `store` means \"no store\" -> key.\r\n */\r\nfunction getVal(\r\n key: string | undefined,\r\n def?: string,\r\n store?: Record<string, string>,\r\n): string | undefined {\r\n if (key !== undefined) {\r\n if (!store) return key;\r\n return store[key] !== undefined ? store[key] : key;\r\n }\r\n return def;\r\n}\r\n\r\ntype ProcessedChild = { stag: string; value: unknown; node: TNode };\r\n\r\n/** Value tags that contribute to a `*Pr` element's attribute dictionary. */\r\nconst PR_VAL_TAGS = new Set(['chr', 'pos', 'begChr', 'endChr', 'type']);\r\n\r\n/** Property element (`accPr`, `dPr`, `barPr`, ...) — attributes + inner text. */\r\nclass Pr {\r\n text = '';\r\n private attrs: Record<string, string | undefined> = {};\r\n\r\n constructor(elm: TNode, conv: Converter) {\r\n for (const child of elm.children) {\r\n if (!isElement(child)) continue;\r\n const stag = localName(child.tagName);\r\n if (stag === 'brk') {\r\n this.attrs['brk'] = BRK;\r\n this.text += BRK;\r\n } else if (PR_VAL_TAGS.has(stag)) {\r\n this.attrs[stag] = getAttr(child, VAL_SUFFIX);\r\n }\r\n }\r\n void conv;\r\n }\r\n\r\n get(name: string): string | undefined {\r\n return this.attrs[name];\r\n }\r\n}\r\n\r\n/** Get an attribute by local name (`m:val` / `val` / any re-prefix). */\r\nfunction getAttr(node: TNode, attrLocal: string): string | undefined {\r\n for (const key of Object.keys(node.attributes)) {\r\n if (localName(key) === attrLocal) {\r\n const v = node.attributes[key];\r\n return v === null || v === undefined ? undefined : v;\r\n }\r\n }\r\n return undefined;\r\n}\r\n\r\nconst DIRECT_TAGS = new Set(['box', 'sSub', 'sSup', 'sSubSup', 'num', 'den', 'deg', 'e']);\r\n\r\nclass Converter {\r\n private unsupported = new Set<string>();\r\n\r\n constructor(private options: OmmlToLatexOptions = {}) {}\r\n\r\n convert(node: TNode): string {\r\n const out = this.oMath(node);\r\n for (const name of this.unsupported) {\r\n this.options.onUnsupported?.(name);\r\n }\r\n return out;\r\n }\r\n\r\n private noteUnsupported(stag: string): void {\r\n this.unsupported.add(stag);\r\n }\r\n\r\n /** Convert an `oMath` (or oMath-like) element's children to LaTeX. */\r\n oMath(elm: TNode): string {\r\n return this.processChildren(elm);\r\n }\r\n\r\n private processChildrenList(elm: TNode, include?: Set<string>): ProcessedChild[] {\r\n const out: ProcessedChild[] = [];\r\n for (const child of elm.children) {\r\n if (!isElement(child)) continue;\r\n const stag = localName(child.tagName);\r\n if (include && !include.has(stag)) continue;\r\n let value = this.dispatch(stag, child);\r\n if (value === null || value === undefined) {\r\n value = this.processUnknown(stag, child);\r\n if (value === null || value === undefined) continue;\r\n }\r\n out.push({ stag, value, node: child });\r\n }\r\n return out;\r\n }\r\n\r\n private processChildrenDict(elm: TNode, include?: Set<string>): Record<string, unknown> {\r\n const dict: Record<string, unknown> = {};\r\n for (const { stag, value } of this.processChildrenList(elm, include)) {\r\n dict[stag] = value;\r\n }\r\n return dict;\r\n }\r\n\r\n private processChildren(elm: TNode, include?: Set<string>): string {\r\n let out = '';\r\n for (const { value } of this.processChildrenList(elm, include)) {\r\n out += value instanceof Pr ? value.text : String(value);\r\n }\r\n return out;\r\n }\r\n\r\n /** Dispatch on local name; returns null when no handler exists. */\r\n private dispatch(stag: string, elm: TNode): unknown {\r\n switch (stag) {\r\n case 'acc': return this.doAcc(elm);\r\n case 'r': return this.doR(elm);\r\n case 'bar': return this.doBar(elm);\r\n case 'sub': return this.doSub(elm);\r\n case 'sup': return this.doSup(elm);\r\n case 'f': return this.doF(elm);\r\n case 'func': return this.doFunc(elm);\r\n case 'fName': return this.doFName(elm);\r\n case 'groupChr': return this.doGroupChr(elm);\r\n case 'd': return this.doD(elm);\r\n case 'rad': return this.doRad(elm);\r\n case 'eqArr': return this.doEqArr(elm);\r\n case 'limLow': return this.doLimLow(elm);\r\n case 'limUpp': return this.doLimUpp(elm);\r\n case 'lim': return this.doLim(elm);\r\n case 'm': return this.doM(elm);\r\n case 'mr': return this.doMr(elm);\r\n case 'nary': return this.doNary(elm);\r\n default: return null;\r\n }\r\n }\r\n\r\n /**\r\n * Fallback for unhandled tags. Mirrors dwml's `process_unknow` (direct\r\n * passthrough tags, `*Pr` -> Pr), but degrades anything else to text\r\n * content instead of dropping it, so conversion never throws.\r\n */\r\n private processUnknown(stag: string, elm: TNode): unknown {\r\n if (DIRECT_TAGS.has(stag)) {\r\n return this.processChildren(elm);\r\n }\r\n if (stag.endsWith('Pr')) {\r\n return new Pr(elm, this);\r\n }\r\n this.noteUnsupported(stag);\r\n return textContent(elm);\r\n }\r\n\r\n private doAcc(elm: TNode): string {\r\n const c = this.processChildrenDict(elm);\r\n const pr = c['accPr'] as Pr | undefined;\r\n const latexS = getVal(pr?.get('chr'), CHR_DEFAULT['ACC_VAL'], CHR) ?? '';\r\n const e = (c['e'] as string | undefined) ?? '';\r\n return pyFormat(latexS, [e]);\r\n }\r\n\r\n private doBar(elm: TNode): string {\r\n const c = this.processChildrenDict(elm);\r\n const pr = c['barPr'] as Pr | undefined;\r\n const latexS = getVal(pr?.get('pos'), POS_DEFAULT['BAR_VAL'], POS) ?? '';\r\n const e = (c['e'] as string | undefined) ?? '';\r\n return (pr?.text ?? '') + pyFormat(latexS, [e]);\r\n }\r\n\r\n private doD(elm: TNode): string {\r\n const c = this.processChildrenDict(elm);\r\n const pr = c['dPr'] as Pr | undefined;\r\n const nullChar = D_DEFAULT['null']!;\r\n const sVal = getVal(pr?.get('begChr'), D_DEFAULT['left'], T);\r\n const eVal = getVal(pr?.get('endChr'), D_DEFAULT['right'], T);\r\n const text = (c['e'] as string | undefined) ?? '';\r\n return (\r\n (pr?.text ?? '') +\r\n pyFormat(D, [], {\r\n left: !sVal ? nullChar : escapeLatex(sVal),\r\n text,\r\n right: !eVal ? nullChar : escapeLatex(eVal),\r\n })\r\n );\r\n }\r\n\r\n private doSub(elm: TNode): string {\r\n return pyFormat(SUB_TEMPLATE, [this.processChildren(elm)]);\r\n }\r\n\r\n private doSup(elm: TNode): string {\r\n return pyFormat(SUP_TEMPLATE, [this.processChildren(elm)]);\r\n }\r\n\r\n private doF(elm: TNode): string {\r\n const c = this.processChildrenDict(elm);\r\n const pr = c['fPr'] as Pr | undefined;\r\n const latexS = getVal(pr?.get('type'), F_DEFAULT, F) ?? '';\r\n const num = (c['num'] as string | undefined) ?? '';\r\n const den = (c['den'] as string | undefined) ?? '';\r\n return (pr?.text ?? '') + pyFormat(latexS, [], { num, den });\r\n }\r\n\r\n private doFunc(elm: TNode): string {\r\n const c = this.processChildrenDict(elm);\r\n const fName = (c['fName'] as string | undefined) ?? '';\r\n const e = (c['e'] as string | undefined) ?? '';\r\n return fName.split(FUNC_PLACE).join(e);\r\n }\r\n\r\n private doFName(elm: TNode): string {\r\n const parts: string[] = [];\r\n for (const { stag, value } of this.processChildrenList(elm)) {\r\n if (stag === 'r') {\r\n const key = String(value).trim();\r\n if (FUNC[key] !== undefined) {\r\n parts.push(FUNC[key]!);\r\n } else {\r\n // degrade: keep raw text (dwml would raise NotSupport)\r\n this.noteUnsupported('fName:' + key);\r\n parts.push(String(value));\r\n }\r\n } else {\r\n parts.push(String(value));\r\n }\r\n }\r\n const joined = parts.join(BLANK);\r\n return joined.includes(FUNC_PLACE) ? joined : joined + FUNC_PLACE;\r\n }\r\n\r\n private doGroupChr(elm: TNode): string {\r\n const c = this.processChildrenDict(elm);\r\n const pr = c['groupChrPr'] as Pr | undefined;\r\n const latexS = getVal(pr?.get('chr'), undefined, CHR) ?? '';\r\n const e = (c['e'] as string | undefined) ?? '';\r\n return (pr?.text ?? '') + pyFormat(latexS, [e]);\r\n }\r\n\r\n private doRad(elm: TNode): string {\r\n const c = this.processChildrenDict(elm);\r\n const text = (c['e'] as string | undefined) ?? '';\r\n const deg = c['deg'] as string | undefined;\r\n if (deg) {\r\n return pyFormat(RAD, [], { deg, text });\r\n }\r\n return pyFormat(RAD_DEFAULT, [], { text });\r\n }\r\n\r\n private doEqArr(elm: TNode): string {\r\n const rows = this.processChildrenList(elm, new Set(['e'])).map((c) => String(c.value));\r\n return pyFormat(ARR, [], { text: rows.join(BRK) });\r\n }\r\n\r\n private doLimLow(elm: TNode): string {\r\n const c = this.processChildrenDict(elm, new Set(['e', 'lim']));\r\n const e = (c['e'] as string | undefined) ?? '';\r\n const lim = (c['lim'] as string | undefined) ?? '';\r\n const latexS = LIM_FUNC[e];\r\n if (!latexS) {\r\n // degrade (dwml would raise NotSupport)\r\n this.noteUnsupported('limLow:' + e);\r\n return e + lim;\r\n }\r\n return pyFormat(latexS, [], { lim });\r\n }\r\n\r\n private doLimUpp(elm: TNode): string {\r\n const c = this.processChildrenDict(elm, new Set(['e', 'lim']));\r\n const lim = (c['lim'] as string | undefined) ?? '';\r\n const text = (c['e'] as string | undefined) ?? '';\r\n return pyFormat(LIM_UPP, [], { lim, text });\r\n }\r\n\r\n private doLim(elm: TNode): string {\r\n return this.processChildren(elm).split(LIM_TO[0]).join(LIM_TO[1]);\r\n }\r\n\r\n private doM(elm: TNode): string {\r\n const rows: string[] = [];\r\n for (const { stag, value } of this.processChildrenList(elm)) {\r\n if (stag === 'mPr') continue;\r\n if (stag === 'mr') rows.push(String(value));\r\n }\r\n return pyFormat(M, [], { text: rows.join(BRK) });\r\n }\r\n\r\n private doMr(elm: TNode): string {\r\n return this.processChildrenList(elm, new Set(['e'])).map((c) => String(c.value)).join(ALN);\r\n }\r\n\r\n private doNary(elm: TNode): string {\r\n const res: string[] = [];\r\n let bo = '';\r\n for (const { stag, value } of this.processChildrenList(elm)) {\r\n if (stag === 'naryPr') {\r\n bo = getVal((value as Pr).get('chr'), undefined, CHR_BO) ?? '';\r\n } else {\r\n res.push(String(value));\r\n }\r\n }\r\n return bo + res.join(BLANK);\r\n }\r\n\r\n /**\r\n * Map a run's text to LaTeX. dwml's `T` dictionary is consulted first\r\n * (per Unicode code point) so Mathematical Alphanumeric Symbols and math\r\n * operators map to their clean ASCII / command forms; anything not in `T`\r\n * falls back to the pylatexenc-derived encoder.\r\n */\r\n private processUnicode(s: string): string {\r\n let out = '';\r\n for (const ch of s.normalize('NFC')) {\r\n const mapped = T[ch];\r\n if (mapped !== undefined) {\r\n out += mapped;\r\n } else if (CHARS.includes(ch)) {\r\n // LaTeX-special char: pass through raw; escape_latex (in do_r)\r\n // will prefix it with a backslash.\r\n out += ch;\r\n } else {\r\n out += unicodeToLatex(ch);\r\n }\r\n }\r\n return out;\r\n }\r\n\r\n private doR(elm: TNode): string {\r\n const strs: string[] = [];\r\n const baseStrs: string[] = [];\r\n for (const child of elm.children) {\r\n if (!isElement(child)) continue;\r\n if (localName(child.tagName) !== 't') continue;\r\n const s = textContent(child);\r\n strs.push(this.processUnicode(s));\r\n baseStrs.push(s);\r\n }\r\n let procStr = escapeLatex(strs.join(BLANK));\r\n const baseProcStr = baseStrs.join(BLANK);\r\n\r\n if (!baseProcStr.includes('{') && procStr.includes('\\\\{')) {\r\n procStr = procStr.split('\\\\{').join('{');\r\n }\r\n if (!baseProcStr.includes('}') && procStr.includes('\\\\}')) {\r\n procStr = procStr.split('\\\\}').join('}');\r\n }\r\n return procStr;\r\n }\r\n}\r\n\r\nconst SUB_TEMPLATE = '_{{{0}}}';\r\nconst SUP_TEMPLATE = '^{{{0}}}';\r\n\r\n/**\r\n * Convert an already-parsed `oMath` (or oMath-like) node to bare LaTeX.\r\n * Never throws on unknown constructs.\r\n */\r\nexport function ommlNodeToLatex(node: TNode, options: OmmlToLatexOptions = {}): string {\r\n return new Converter(options).convert(node);\r\n}\r\n","/**\r\n * dwml-ts — MS Office OMML (Office Math Markup Language) -> LaTeX converter.\r\n *\r\n * TypeScript port of the Python `dwml` library (Apache-2.0), with 100%\r\n * output fidelity on the reference fixtures. Pure, synchronous, DOM-free —\r\n * runs identically in the browser and in Node. Parsing uses txml.\r\n *\r\n * Consumer contract:\r\n * - ommlToLatex(xml) -> convert one OMML fragment string to bare LaTeX\r\n * - ommlNodeToLatex(node) -> convert an already-parsed txml node\r\n * - extractOmmlLatex(xml) -> find & convert every m:oMath in any fragment\r\n *\r\n * All output is bare LaTeX with no $/$$ delimiters and no trailing whitespace.\r\n * Unknown constructs degrade per-node to concatenated text (never throws).\r\n */\r\n\r\nimport { parse, type TNode } from 'txml';\r\nimport {\r\n ommlNodeToLatex,\r\n localName,\r\n type OmmlToLatexOptions,\r\n} from './omml';\r\n\r\nexport { ommlNodeToLatex, localName, escapeLatex, textContent } from './omml';\r\nexport { unicodeToLatex } from './latex-encode';\r\nexport type { OmmlToLatexOptions } from './omml';\r\nexport type { TNode };\r\n\r\n/**\r\n * Find all element nodes whose local name matches `name`, depth-first.\r\n */\r\nfunction findAll(nodes: (TNode | string)[], name: string, acc: TNode[] = []): TNode[] {\r\n for (const node of nodes) {\r\n if (typeof node === 'string') continue;\r\n if (localName(node.tagName) === name) acc.push(node);\r\n findAll(node.children, name, acc);\r\n }\r\n return acc;\r\n}\r\n\r\nfunction elementChildren(node: TNode): TNode[] {\r\n return node.children.filter((c): c is TNode => typeof c !== 'string');\r\n}\r\n\r\n/**\r\n * Normalize an OMML fragment into the list of oMath nodes to convert.\r\n *\r\n * Accepts (prefix-agnostic):\r\n * - a bare `<oMath>` element\r\n * - an `<oMathPara>` wrapper\r\n * - an `<a14:m>` / `m` wrapper (PowerPoint's math container)\r\n * - a whole document/fragment containing oMath elements\r\n */\r\nfunction collectOMathNodes(nodes: (TNode | string)[]): TNode[] {\r\n const elements = nodes.filter((n): n is TNode => typeof n !== 'string');\r\n\r\n // Single-root cases.\r\n if (elements.length === 1) {\r\n const root = elements[0]!;\r\n const name = localName(root.tagName);\r\n if (name === 'oMath') return [root];\r\n if (name === 'oMathPara' || name === 'm') {\r\n // unwrap; fall through to a scoped search below.\r\n const found = findAll(root.children, 'oMath');\r\n if (found.length > 0) return found;\r\n // The wrapper itself may contain oMath deeper; already searched.\r\n return [];\r\n }\r\n }\r\n\r\n // General case: search the whole forest.\r\n return findAll(nodes, 'oMath');\r\n}\r\n\r\n/**\r\n * Convert one OMML fragment to bare LaTeX.\r\n *\r\n * Accepts `<m:oMath>`, `<m:oMathPara>` or the `<a14:m>` wrapper as an XML\r\n * string. Tolerates missing xmlns declarations (fragments sliced out of\r\n * slide XML). Returns bare LaTeX — no $/$$ delimiters, no trailing\r\n * whitespace. If the fragment contains multiple oMath elements, their LaTeX\r\n * is concatenated.\r\n */\r\nexport function ommlToLatex(xml: string, options: OmmlToLatexOptions = {}): string {\r\n const nodes = parse(xml, { decodeEntities: true });\r\n const omaths = collectOMathNodes(nodes);\r\n let out = '';\r\n for (const omath of omaths) {\r\n out += ommlNodeToLatex(omath, options);\r\n }\r\n return out.trim();\r\n}\r\n\r\n/**\r\n * Find and convert every `oMath` element in any OOXML document or fragment,\r\n * returning one bare LaTeX string per formula (in document order).\r\n */\r\nexport function extractOmmlLatex(xml: string, options: OmmlToLatexOptions = {}): string[] {\r\n const nodes = parse(xml, { decodeEntities: true });\r\n return findAll(nodes, 'oMath').map((omath) => ommlNodeToLatex(omath, options).trim());\r\n}\r\n\r\n// Re-export elementChildren for potential node-walking consumers.\r\nexport { elementChildren };\r\n"],"names":["UNI2LATEX","unicodeToLatex","input","s","String","out","ch","cp","repl","undefined","CHARS","CHR","CHR_BO","T","FUNC","CHR_DEFAULT","POS","POS_DEFAULT","F","F_DEFAULT","D","D_DEFAULT","RAD","RAD_DEFAULT","ARR","LIM_FUNC","LIM_TO","LIM_UPP","M","VAL_SUFFIX","localName","tagName","idx","isElement","node","textContent","child","pyFormat","template","positional","named","i","n","close","field","Number","escapeLatex","strs","collapsed","last","c","BACKSLASH","getVal","key","def","store","PR_VAL_TAGS","Set","Pr","name","elm","conv","stag","BRK","getAttr","attrLocal","Object","v","DIRECT_TAGS","Converter","include","value","dict","pr","latexS","e","nullChar","sVal","eVal","text","SUB_TEMPLATE","SUP_TEMPLATE","num","den","fName","FUNC_PLACE","parts","joined","BLANK","deg","rows","lim","ALN","res","bo","mapped","baseStrs","procStr","baseProcStr","options","ommlNodeToLatex","findAll","nodes","acc","elementChildren","collectOMathNodes","elements","root","found","ommlToLatex","xml","parse","omaths","omath","extractOmmlLatex"],"mappings":";AAKO,MAAMA,YAA8C;IACzD,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;AACV;ACn9CO,SAASC,eAAeC,KAAa;IAC1C,MAAMC,IAAIC,OAAOF,OAAO,SAAS,CAAC;IAClC,IAAIG,MAAM;IACV,KAAK,MAAMC,MAAMH,EAAG;QAClB,MAAMI,KAAKD,GAAG,WAAW,CAAC;QAC1B,MAAME,OAAOR,SAAS,CAACO,GAAG;QAC1B,IAAIC,AAASC,WAATD,MACFH,OAAO,MAAMG,OAAO;aAEpBH,OAAOC;IAIX;IACA,OAAOD;AACT;AC9BO,MAAMK,QAA2B;IAAC;IAAK;IAAK;IAAK;IAAK;IAAK;IAAK;IAAK;IAAK;CAAI;AAO9E,MAAMC,MAA8B;IAEzC,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IAEL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IAEL,KAAK;IACL,KAAK;IACL,KAAK;IAEL,KAAK;IACL,KAAK;IACL,KAAK;AACP;AAGO,MAAMC,SAAiC;IAC5C,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;AACP;AAGO,MAAMC,IAA4B;IACvC,KAAK;IAEL,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,MAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IAEN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IAEL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IAEL,KAAK;IAEL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IAEL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,KAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IACL,GAAK;IAEL,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IAEN,IAAM;IACN,IAAM;IACN,IAAM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"}
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "dwml-ts",
3
+ "version": "0.4.0",
4
+ "description": "Convert MS Office OMML (Office Math Markup Language) to LaTeX, ported to TypeScript with 100% fidelity",
5
+ "license": "Apache-2.0",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "module": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/index.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "scripts": {
20
+ "build": "rslib build",
21
+ "prepublishOnly": "npm run build && npm test",
22
+ "test": "rstest run",
23
+ "test:watch": "rstest",
24
+ "gen:unicode": "python scripts/gen_uni2latex.py",
25
+ "gen:groundtruth": "python scripts/gen_ground_truth.py"
26
+ },
27
+ "devDependencies": {
28
+ "@microsoft/api-extractor": "^7.58.12",
29
+ "@rslib/core": "^0.23.2",
30
+ "@rstest/core": "^0.7.4",
31
+ "@types/node": "^24.0.0",
32
+ "typescript": "^5.9.0"
33
+ },
34
+ "dependencies": {
35
+ "txml": "^6.0.0"
36
+ }
37
+ }