cosmopolitan/third_party/python/Modules/unicodedata_tonumeric.c
Justine Tunney 39bf41f4eb Make numerous improvements
- Python static hello world now 1.8mb
- Python static fully loaded now 10mb
- Python HTTPS client now uses MbedTLS
- Python REPL now completes import stmts
- Increase stack size for Python for now
- Begin synthesizing posixpath and ntpath
- Restore Python \N{UNICODE NAME} support
- Restore Python NFKD symbol normalization
- Add optimized code path for Intel SHA-NI
- Get more Python unit tests passing faster
- Get Python help() pagination working on NT
- Python hashlib now supports MbedTLS PBKDF2
- Make memcpy/memmove/memcmp/bcmp/etc. faster
- Add Mersenne Twister and Vigna to LIBC_RAND
- Provide privileged __printf() for error code
- Fix zipos opendir() so that it reports ENOTDIR
- Add basic chmod() implementation for Windows NT
- Add Cosmo's best functions to Python cosmo module
- Pin function trace indent depth to that of caller
- Show memory diagram on invalid access in MODE=dbg
- Differentiate stack overflow on crash in MODE=dbg
- Add stb_truetype and tools for analyzing font files
- Upgrade to UNICODE 13 and reduce its binary footprint
- COMPILE.COM now logs resource usage of build commands
- Start implementing basic poll() support on bare metal
- Set getauxval(AT_EXECFN) to GetModuleFileName() on NT
- Add descriptions to strerror() in non-TINY build modes
- Add COUNTBRANCH() macro to help with micro-optimizations
- Make error / backtrace / asan / memory code more unbreakable
- Add fast perfect C implementation of μ-Law and a-Law audio codecs
- Make strtol() functions consistent with other libc implementations
- Improve Linenoise implementation (see also github.com/jart/bestline)
- COMPILE.COM now suppresses stdout/stderr of successful build commands
2021-09-28 01:52:34 -07:00

2228 lines
38 KiB
C

#include "libc/nexgen32e/kompressor.h"
#include "third_party/python/Modules/unicodedata.h"
/* clang-format off */
/* GENERATED BY third_party/python/Tools/unicode/makeunicodedata.py 3.2 */
/* Returns the numeric value as double for Unicode characters
* having this property, -1.0 otherwise.
*/
double _PyUnicode_ToNumeric(Py_UCS4 ch)
{
long a, b = 1;
switch (ch) {
case 0x0F33:
a = -1;
b = 2;
break;
case 0x0030:
case 0x0660:
case 0x06F0:
case 0x07C0:
case 0x0966:
case 0x09E6:
case 0x0A66:
case 0x0AE6:
case 0x0B66:
case 0x0BE6:
case 0x0C66:
case 0x0C78:
case 0x0CE6:
case 0x0D66:
case 0x0DE6:
case 0x0E50:
case 0x0ED0:
case 0x0F20:
case 0x1040:
case 0x1090:
case 0x17E0:
case 0x17F0:
case 0x1810:
case 0x1946:
case 0x19D0:
case 0x1A80:
case 0x1A90:
case 0x1B50:
case 0x1BB0:
case 0x1C40:
case 0x1C50:
case 0x2070:
case 0x2080:
case 0x2189:
case 0x24EA:
case 0x24FF:
case 0x3007:
case 0x96F6:
case 0xA620:
case 0xA6EF:
case 0xA8D0:
case 0xA900:
case 0xA9D0:
case 0xA9F0:
case 0xAA50:
case 0xABF0:
case 0xF9B2:
case 0xFF10:
case 0x1018A:
case 0x104A0:
case 0x10D30:
case 0x11066:
case 0x110F0:
case 0x11136:
case 0x111D0:
case 0x112F0:
case 0x11450:
case 0x114D0:
case 0x11650:
case 0x116C0:
case 0x11730:
case 0x118E0:
case 0x11950:
case 0x11C50:
case 0x11D50:
case 0x11DA0:
case 0x16A60:
case 0x16B50:
case 0x16E80:
case 0x1D2E0:
case 0x1D7CE:
case 0x1D7D8:
case 0x1D7E2:
case 0x1D7EC:
case 0x1D7F6:
case 0x1E140:
case 0x1E2F0:
case 0x1E950:
case 0x1F100:
case 0x1F101:
case 0x1F10B:
case 0x1F10C:
case 0x1FBF0:
a = 0;
break;
case 0x0031:
case 0x00B9:
case 0x0661:
case 0x06F1:
case 0x07C1:
case 0x0967:
case 0x09E7:
case 0x0A67:
case 0x0AE7:
case 0x0B67:
case 0x0BE7:
case 0x0C67:
case 0x0C79:
case 0x0C7C:
case 0x0CE7:
case 0x0D67:
case 0x0DE7:
case 0x0E51:
case 0x0ED1:
case 0x0F21:
case 0x1041:
case 0x1091:
case 0x1369:
case 0x17E1:
case 0x17F1:
case 0x1811:
case 0x1947:
case 0x19D1:
case 0x19DA:
case 0x1A81:
case 0x1A91:
case 0x1B51:
case 0x1BB1:
case 0x1C41:
case 0x1C51:
case 0x2081:
case 0x215F:
case 0x2160:
case 0x2170:
case 0x2460:
case 0x2474:
case 0x2488:
case 0x24F5:
case 0x2776:
case 0x2780:
case 0x278A:
case 0x3021:
case 0x3192:
case 0x3220:
case 0x3280:
case 0x4E00:
case 0x58F1:
case 0x58F9:
case 0x5E7A:
case 0x5F0C:
case 0xA621:
case 0xA6E6:
case 0xA8D1:
case 0xA901:
case 0xA9D1:
case 0xA9F1:
case 0xAA51:
case 0xABF1:
case 0xFF11:
case 0x10107:
case 0x10142:
case 0x10158:
case 0x10159:
case 0x1015A:
case 0x102E1:
case 0x10320:
case 0x103D1:
case 0x104A1:
case 0x10858:
case 0x10879:
case 0x108A7:
case 0x108FB:
case 0x10916:
case 0x109C0:
case 0x10A40:
case 0x10A7D:
case 0x10A9D:
case 0x10AEB:
case 0x10B58:
case 0x10B78:
case 0x10BA9:
case 0x10CFA:
case 0x10D31:
case 0x10E60:
case 0x10F1D:
case 0x10F51:
case 0x10FC5:
case 0x11052:
case 0x11067:
case 0x110F1:
case 0x11137:
case 0x111D1:
case 0x111E1:
case 0x112F1:
case 0x11451:
case 0x114D1:
case 0x11651:
case 0x116C1:
case 0x11731:
case 0x118E1:
case 0x11951:
case 0x11C51:
case 0x11C5A:
case 0x11D51:
case 0x11DA1:
case 0x12415:
case 0x1241E:
case 0x1242C:
case 0x12434:
case 0x1244F:
case 0x12458:
case 0x16A61:
case 0x16B51:
case 0x16E81:
case 0x16E94:
case 0x1D2E1:
case 0x1D360:
case 0x1D372:
case 0x1D377:
case 0x1D7CF:
case 0x1D7D9:
case 0x1D7E3:
case 0x1D7ED:
case 0x1D7F7:
case 0x1E141:
case 0x1E2F1:
case 0x1E8C7:
case 0x1E951:
case 0x1EC71:
case 0x1ECA3:
case 0x1ECB1:
case 0x1ED01:
case 0x1F102:
case 0x1FBF1:
case 0x2092A:
a = 1;
break;
case 0x0D5C:
case 0x2152:
case 0x11FCB:
a = 1;
b = 10;
break;
case 0x109F6:
a = 1;
b = 12;
break;
case 0x09F4:
case 0x0B75:
case 0x0D76:
case 0xA833:
case 0x11FC9:
case 0x11FCA:
a = 1;
b = 16;
break;
case 0x0D58:
case 0x11FC1:
a = 1;
b = 160;
break;
case 0x00BD:
case 0x0B73:
case 0x0D74:
case 0x0F2A:
case 0x2CFD:
case 0xA831:
case 0x10141:
case 0x10175:
case 0x10176:
case 0x109BD:
case 0x10A48:
case 0x10E7B:
case 0x10F26:
case 0x11FD1:
case 0x11FD2:
case 0x12464:
case 0x1ECAE:
case 0x1ED3C:
a = 1;
b = 2;
break;
case 0x0D5B:
case 0x11FC8:
a = 1;
b = 20;
break;
case 0x2153:
case 0x10E7D:
case 0x1245A:
case 0x1245D:
case 0x12465:
a = 1;
b = 3;
break;
case 0x11FC5:
a = 1;
b = 32;
break;
case 0x11FC0:
case 0x11FD4:
a = 1;
b = 320;
break;
case 0x00BC:
case 0x09F7:
case 0x0B72:
case 0x0D73:
case 0xA830:
case 0x10140:
case 0x1018B:
case 0x10E7C:
case 0x11FD0:
case 0x12460:
case 0x12462:
case 0x12463:
case 0x1ECAD:
a = 1;
b = 4;
break;
case 0x0D59:
case 0x11FC4:
a = 1;
b = 40;
break;
case 0x0D5E:
case 0x2155:
case 0x11FCF:
a = 1;
b = 5;
break;
case 0x2159:
case 0x12461:
case 0x1ED3D:
a = 1;
b = 6;
break;
case 0x11FC3:
a = 1;
b = 64;
break;
case 0x2150:
a = 1;
b = 7;
break;
case 0x09F5:
case 0x0B76:
case 0x0D77:
case 0x215B:
case 0xA834:
case 0x11FCC:
case 0x1245F:
a = 1;
b = 8;
break;
case 0x11FC2:
a = 1;
b = 80;
break;
case 0x2151:
a = 1;
b = 9;
break;
case 0x0BF0:
case 0x0D70:
case 0x1372:
case 0x2169:
case 0x2179:
case 0x2469:
case 0x247D:
case 0x2491:
case 0x24FE:
case 0x277F:
case 0x2789:
case 0x2793:
case 0x3038:
case 0x3229:
case 0x3248:
case 0x3289:
case 0x4EC0:
case 0x5341:
case 0x62FE:
case 0xF973:
case 0xF9FD:
case 0x10110:
case 0x10149:
case 0x10150:
case 0x10157:
case 0x10160:
case 0x10161:
case 0x10162:
case 0x10163:
case 0x10164:
case 0x102EA:
case 0x10322:
case 0x103D3:
case 0x1085B:
case 0x1087E:
case 0x108AD:
case 0x108FD:
case 0x10917:
case 0x109C9:
case 0x10A44:
case 0x10A9E:
case 0x10AED:
case 0x10B5C:
case 0x10B7C:
case 0x10BAD:
case 0x10CFC:
case 0x10E69:
case 0x10F22:
case 0x10F52:
case 0x10FC9:
case 0x1105B:
case 0x111EA:
case 0x1173A:
case 0x118EA:
case 0x11C63:
case 0x16B5B:
case 0x16E8A:
case 0x1D2EA:
case 0x1D369:
case 0x1EC7A:
case 0x1ED0A:
case 0x1ED37:
a = 10;
break;
case 0x109FF:
a = 10;
b = 12;
break;
case 0x0BF1:
case 0x0D71:
case 0x137B:
case 0x216D:
case 0x217D:
case 0x4F70:
case 0x767E:
case 0x964C:
case 0x10119:
case 0x1014B:
case 0x10152:
case 0x1016A:
case 0x102F3:
case 0x103D5:
case 0x1085D:
case 0x108AF:
case 0x108FF:
case 0x10919:
case 0x109D2:
case 0x10A46:
case 0x10AEF:
case 0x10B5E:
case 0x10B7E:
case 0x10BAF:
case 0x10CFE:
case 0x10E72:
case 0x10F25:
case 0x10F54:
case 0x10FCB:
case 0x11064:
case 0x111F3:
case 0x11C6C:
case 0x16B5C:
case 0x1EC83:
case 0x1ED13:
a = 100;
break;
case 0x0BF2:
case 0x0D72:
case 0x216F:
case 0x217F:
case 0x2180:
case 0x4EDF:
case 0x5343:
case 0x9621:
case 0x10122:
case 0x1014D:
case 0x10154:
case 0x10171:
case 0x1085E:
case 0x109DB:
case 0x10A47:
case 0x10B5F:
case 0x10B7F:
case 0x10CFF:
case 0x11065:
case 0x111F4:
case 0x1EC8C:
case 0x1ED1C:
a = 1000;
break;
case 0x137C:
case 0x2182:
case 0x4E07:
case 0x842C:
case 0x1012B:
case 0x10155:
case 0x1085F:
case 0x109E4:
case 0x16B5D:
case 0x1EC95:
case 0x1ECB3:
case 0x1ED25:
case 0x1ED3B:
a = 10000;
break;
case 0x2188:
case 0x109ED:
case 0x1EC9E:
case 0x1ECA0:
case 0x1ECB4:
a = 100000;
break;
case 0x16B5E:
a = 1000000;
break;
case 0x1ECA1:
a = 10000000;
break;
case 0x4EBF:
case 0x5104:
case 0x16B5F:
a = 100000000;
break;
case 0x16B60:
a = 10000000000;
break;
case 0x5146:
case 0x16B61:
a = 1000000000000;
break;
case 0x216A:
case 0x217A:
case 0x246A:
case 0x247E:
case 0x2492:
case 0x24EB:
case 0x16E8B:
case 0x1D2EB:
a = 11;
break;
case 0x109BC:
a = 11;
b = 12;
break;
case 0x0F2F:
a = 11;
b = 2;
break;
case 0x216B:
case 0x217B:
case 0x246B:
case 0x247F:
case 0x2493:
case 0x24EC:
case 0x16E8C:
case 0x1D2EC:
a = 12;
break;
case 0x246C:
case 0x2480:
case 0x2494:
case 0x24ED:
case 0x16E8D:
case 0x1D2ED:
a = 13;
break;
case 0x0F30:
a = 13;
b = 2;
break;
case 0x246D:
case 0x2481:
case 0x2495:
case 0x24EE:
case 0x16E8E:
case 0x1D2EE:
a = 14;
break;
case 0x246E:
case 0x2482:
case 0x2496:
case 0x24EF:
case 0x16E8F:
case 0x1D2EF:
a = 15;
break;
case 0x0F31:
a = 15;
b = 2;
break;
case 0x09F9:
case 0x246F:
case 0x2483:
case 0x2497:
case 0x24F0:
case 0x16E90:
case 0x1D2F0:
a = 16;
break;
case 0x16EE:
case 0x2470:
case 0x2484:
case 0x2498:
case 0x24F1:
case 0x16E91:
case 0x1D2F1:
a = 17;
break;
case 0x0F32:
a = 17;
b = 2;
break;
case 0x16EF:
case 0x2471:
case 0x2485:
case 0x2499:
case 0x24F2:
case 0x16E92:
case 0x1D2F2:
a = 18;
break;
case 0x16F0:
case 0x2472:
case 0x2486:
case 0x249A:
case 0x24F3:
case 0x16E93:
case 0x1D2F3:
a = 19;
break;
case 0x0032:
case 0x00B2:
case 0x0662:
case 0x06F2:
case 0x07C2:
case 0x0968:
case 0x09E8:
case 0x0A68:
case 0x0AE8:
case 0x0B68:
case 0x0BE8:
case 0x0C68:
case 0x0C7A:
case 0x0C7D:
case 0x0CE8:
case 0x0D68:
case 0x0DE8:
case 0x0E52:
case 0x0ED2:
case 0x0F22:
case 0x1042:
case 0x1092:
case 0x136A:
case 0x17E2:
case 0x17F2:
case 0x1812:
case 0x1948:
case 0x19D2:
case 0x1A82:
case 0x1A92:
case 0x1B52:
case 0x1BB2:
case 0x1C42:
case 0x1C52:
case 0x2082:
case 0x2161:
case 0x2171:
case 0x2461:
case 0x2475:
case 0x2489:
case 0x24F6:
case 0x2777:
case 0x2781:
case 0x278B:
case 0x3022:
case 0x3193:
case 0x3221:
case 0x3281:
case 0x3483:
case 0x4E8C:
case 0x5169:
case 0x5F0D:
case 0x5F10:
case 0x8CAE:
case 0x8CB3:
case 0x8D30:
case 0xA622:
case 0xA6E7:
case 0xA8D2:
case 0xA902:
case 0xA9D2:
case 0xA9F2:
case 0xAA52:
case 0xABF2:
case 0xF978:
case 0xFF12:
case 0x10108:
case 0x1015B:
case 0x1015C:
case 0x1015D:
case 0x1015E:
case 0x102E2:
case 0x103D2:
case 0x104A2:
case 0x10859:
case 0x1087A:
case 0x108A8:
case 0x1091A:
case 0x109C1:
case 0x10A41:
case 0x10B59:
case 0x10B79:
case 0x10BAA:
case 0x10D32:
case 0x10E61:
case 0x10F1E:
case 0x10FC6:
case 0x11053:
case 0x11068:
case 0x110F2:
case 0x11138:
case 0x111D2:
case 0x111E2:
case 0x112F2:
case 0x11452:
case 0x114D2:
case 0x11652:
case 0x116C2:
case 0x11732:
case 0x118E2:
case 0x11952:
case 0x11C52:
case 0x11C5B:
case 0x11D52:
case 0x11DA2:
case 0x12400:
case 0x12416:
case 0x1241F:
case 0x12423:
case 0x1242D:
case 0x12435:
case 0x1244A:
case 0x12450:
case 0x12456:
case 0x12459:
case 0x16A62:
case 0x16B52:
case 0x16E82:
case 0x16E95:
case 0x1D2E2:
case 0x1D361:
case 0x1D373:
case 0x1D7D0:
case 0x1D7DA:
case 0x1D7E4:
case 0x1D7EE:
case 0x1D7F8:
case 0x1E142:
case 0x1E2F2:
case 0x1E8C8:
case 0x1E952:
case 0x1EC72:
case 0x1ECA4:
case 0x1ECB2:
case 0x1ED02:
case 0x1ED2F:
case 0x1F103:
case 0x1FBF2:
case 0x22390:
a = 2;
break;
case 0x109F7:
a = 2;
b = 12;
break;
case 0x2154:
case 0x10177:
case 0x10E7E:
case 0x1245B:
case 0x1245E:
case 0x12466:
a = 2;
b = 3;
break;
case 0x2156:
a = 2;
b = 5;
break;
case 0x1373:
case 0x2473:
case 0x2487:
case 0x249B:
case 0x24F4:
case 0x3039:
case 0x3249:
case 0x5344:
case 0x5EFF:
case 0x10111:
case 0x102EB:
case 0x103D4:
case 0x1085C:
case 0x1087F:
case 0x108AE:
case 0x108FE:
case 0x10918:
case 0x109CA:
case 0x10A45:
case 0x10A9F:
case 0x10AEE:
case 0x10B5D:
case 0x10B7D:
case 0x10BAE:
case 0x10E6A:
case 0x10F23:
case 0x10F53:
case 0x10FCA:
case 0x1105C:
case 0x111EB:
case 0x1173B:
case 0x118EB:
case 0x11C64:
case 0x1D36A:
case 0x1EC7B:
case 0x1ED0B:
a = 20;
break;
case 0x1011A:
case 0x102F4:
case 0x109D3:
case 0x10E73:
case 0x1EC84:
case 0x1ED14:
a = 200;
break;
case 0x10123:
case 0x109DC:
case 0x1EC8D:
case 0x1ED1D:
case 0x1ED3A:
a = 2000;
break;
case 0x1012C:
case 0x109E5:
case 0x1EC96:
case 0x1ED26:
a = 20000;
break;
case 0x109EE:
case 0x1EC9F:
a = 200000;
break;
case 0x1ECA2:
a = 20000000;
break;
case 0x3251:
a = 21;
break;
case 0x12432:
a = 216000;
break;
case 0x3252:
a = 22;
break;
case 0x3253:
a = 23;
break;
case 0x3254:
a = 24;
break;
case 0x3255:
a = 25;
break;
case 0x3256:
a = 26;
break;
case 0x3257:
a = 27;
break;
case 0x3258:
a = 28;
break;
case 0x3259:
a = 29;
break;
case 0x0033:
case 0x00B3:
case 0x0663:
case 0x06F3:
case 0x07C3:
case 0x0969:
case 0x09E9:
case 0x0A69:
case 0x0AE9:
case 0x0B69:
case 0x0BE9:
case 0x0C69:
case 0x0C7B:
case 0x0C7E:
case 0x0CE9:
case 0x0D69:
case 0x0DE9:
case 0x0E53:
case 0x0ED3:
case 0x0F23:
case 0x1043:
case 0x1093:
case 0x136B:
case 0x17E3:
case 0x17F3:
case 0x1813:
case 0x1949:
case 0x19D3:
case 0x1A83:
case 0x1A93:
case 0x1B53:
case 0x1BB3:
case 0x1C43:
case 0x1C53:
case 0x2083:
case 0x2162:
case 0x2172:
case 0x2462:
case 0x2476:
case 0x248A:
case 0x24F7:
case 0x2778:
case 0x2782:
case 0x278C:
case 0x3023:
case 0x3194:
case 0x3222:
case 0x3282:
case 0x4E09:
case 0x4EE8:
case 0x53C1:
case 0x53C2:
case 0x53C3:
case 0x53C4:
case 0x5F0E:
case 0xA623:
case 0xA6E8:
case 0xA8D3:
case 0xA903:
case 0xA9D3:
case 0xA9F3:
case 0xAA53:
case 0xABF3:
case 0xF96B:
case 0xFF13:
case 0x10109:
case 0x102E3:
case 0x104A3:
case 0x1085A:
case 0x1087B:
case 0x108A9:
case 0x1091B:
case 0x109C2:
case 0x10A42:
case 0x10B5A:
case 0x10B7A:
case 0x10BAB:
case 0x10D33:
case 0x10E62:
case 0x10F1F:
case 0x10FC7:
case 0x11054:
case 0x11069:
case 0x110F3:
case 0x11139:
case 0x111D3:
case 0x111E3:
case 0x112F3:
case 0x11453:
case 0x114D3:
case 0x11653:
case 0x116C3:
case 0x11733:
case 0x118E3:
case 0x11953:
case 0x11C53:
case 0x11C5C:
case 0x11D53:
case 0x11DA3:
case 0x12401:
case 0x12408:
case 0x12417:
case 0x12420:
case 0x12424:
case 0x12425:
case 0x1242E:
case 0x1242F:
case 0x12436:
case 0x12437:
case 0x1243A:
case 0x1243B:
case 0x1244B:
case 0x12451:
case 0x12457:
case 0x16A63:
case 0x16B53:
case 0x16E83:
case 0x16E96:
case 0x1D2E3:
case 0x1D362:
case 0x1D374:
case 0x1D7D1:
case 0x1D7DB:
case 0x1D7E5:
case 0x1D7EF:
case 0x1D7F9:
case 0x1E143:
case 0x1E2F3:
case 0x1E8C9:
case 0x1E953:
case 0x1EC73:
case 0x1ECA5:
case 0x1ED03:
case 0x1ED30:
case 0x1F104:
case 0x1FBF3:
case 0x20AFD:
case 0x20B19:
case 0x22998:
case 0x23B1B:
a = 3;
break;
case 0x109F8:
a = 3;
b = 12;
break;
case 0x09F6:
case 0x0B77:
case 0x0D78:
case 0xA835:
case 0x11FCE:
a = 3;
b = 16;
break;
case 0x0F2B:
a = 3;
b = 2;
break;
case 0x0D5D:
case 0x11FCD:
a = 3;
b = 20;
break;
case 0x00BE:
case 0x09F8:
case 0x0B74:
case 0x0D75:
case 0xA832:
case 0x10178:
case 0x11FD3:
case 0x1ECAF:
a = 3;
b = 4;
break;
case 0x2157:
a = 3;
b = 5;
break;
case 0x11FC7:
a = 3;
b = 64;
break;
case 0x215C:
a = 3;
b = 8;
break;
case 0x0D5A:
case 0x11FC6:
a = 3;
b = 80;
break;
case 0x1374:
case 0x303A:
case 0x324A:
case 0x325A:
case 0x5345:
case 0x10112:
case 0x10165:
case 0x102EC:
case 0x109CB:
case 0x10E6B:
case 0x10F24:
case 0x1105D:
case 0x111EC:
case 0x118EC:
case 0x11C65:
case 0x1D36B:
case 0x1EC7C:
case 0x1ED0C:
case 0x20983:
a = 30;
break;
case 0x1011B:
case 0x1016B:
case 0x102F5:
case 0x109D4:
case 0x10E74:
case 0x1EC85:
case 0x1ED15:
a = 300;
break;
case 0x10124:
case 0x109DD:
case 0x1EC8E:
case 0x1ED1E:
a = 3000;
break;
case 0x1012D:
case 0x109E6:
case 0x1EC97:
case 0x1ED27:
a = 30000;
break;
case 0x109EF:
a = 300000;
break;
case 0x325B:
a = 31;
break;
case 0x325C:
a = 32;
break;
case 0x325D:
a = 33;
break;
case 0x325E:
a = 34;
break;
case 0x325F:
a = 35;
break;
case 0x32B1:
a = 36;
break;
case 0x32B2:
a = 37;
break;
case 0x32B3:
a = 38;
break;
case 0x32B4:
a = 39;
break;
case 0x0034:
case 0x0664:
case 0x06F4:
case 0x07C4:
case 0x096A:
case 0x09EA:
case 0x0A6A:
case 0x0AEA:
case 0x0B6A:
case 0x0BEA:
case 0x0C6A:
case 0x0CEA:
case 0x0D6A:
case 0x0DEA:
case 0x0E54:
case 0x0ED4:
case 0x0F24:
case 0x1044:
case 0x1094:
case 0x136C:
case 0x17E4:
case 0x17F4:
case 0x1814:
case 0x194A:
case 0x19D4:
case 0x1A84:
case 0x1A94:
case 0x1B54:
case 0x1BB4:
case 0x1C44:
case 0x1C54:
case 0x2074:
case 0x2084:
case 0x2163:
case 0x2173:
case 0x2463:
case 0x2477:
case 0x248B:
case 0x24F8:
case 0x2779:
case 0x2783:
case 0x278D:
case 0x3024:
case 0x3195:
case 0x3223:
case 0x3283:
case 0x4E96:
case 0x56DB:
case 0x8086:
case 0xA624:
case 0xA6E9:
case 0xA8D4:
case 0xA904:
case 0xA9D4:
case 0xA9F4:
case 0xAA54:
case 0xABF4:
case 0xFF14:
case 0x1010A:
case 0x102E4:
case 0x104A4:
case 0x1087C:
case 0x108AA:
case 0x108AB:
case 0x109C3:
case 0x10A43:
case 0x10B5B:
case 0x10B7B:
case 0x10BAC:
case 0x10D34:
case 0x10E63:
case 0x10F20:
case 0x10FC8:
case 0x11055:
case 0x1106A:
case 0x110F4:
case 0x1113A:
case 0x111D4:
case 0x111E4:
case 0x112F4:
case 0x11454:
case 0x114D4:
case 0x11654:
case 0x116C4:
case 0x11734:
case 0x118E4:
case 0x11954:
case 0x11C54:
case 0x11C5D:
case 0x11D54:
case 0x11DA4:
case 0x12402:
case 0x12409:
case 0x1240F:
case 0x12418:
case 0x12421:
case 0x12426:
case 0x12430:
case 0x12438:
case 0x1243C:
case 0x1243D:
case 0x1243E:
case 0x1243F:
case 0x1244C:
case 0x12452:
case 0x12453:
case 0x12469:
case 0x16A64:
case 0x16B54:
case 0x16E84:
case 0x1D2E4:
case 0x1D363:
case 0x1D375:
case 0x1D7D2:
case 0x1D7DC:
case 0x1D7E6:
case 0x1D7F0:
case 0x1D7FA:
case 0x1E144:
case 0x1E2F4:
case 0x1E8CA:
case 0x1E954:
case 0x1EC74:
case 0x1ECA6:
case 0x1ED04:
case 0x1ED31:
case 0x1F105:
case 0x1FBF4:
case 0x20064:
case 0x200E2:
case 0x2626D:
a = 4;
break;
case 0x109F9:
a = 4;
b = 12;
break;
case 0x2158:
a = 4;
b = 5;
break;
case 0x1375:
case 0x324B:
case 0x32B5:
case 0x534C:
case 0x10113:
case 0x102ED:
case 0x109CC:
case 0x10E6C:
case 0x1105E:
case 0x111ED:
case 0x118ED:
case 0x11C66:
case 0x12467:
case 0x1D36C:
case 0x1EC7D:
case 0x1ED0D:
case 0x2098C:
case 0x2099C:
a = 40;
break;
case 0x1011C:
case 0x102F6:
case 0x109D5:
case 0x10E75:
case 0x1EC86:
case 0x1ED16:
case 0x1ED38:
a = 400;
break;
case 0x10125:
case 0x109DE:
case 0x1EC8F:
case 0x1ED1F:
a = 4000;
break;
case 0x1012E:
case 0x109E7:
case 0x1EC98:
case 0x1ED28:
a = 40000;
break;
case 0x109F0:
a = 400000;
break;
case 0x32B6:
a = 41;
break;
case 0x32B7:
a = 42;
break;
case 0x32B8:
a = 43;
break;
case 0x12433:
a = 432000;
break;
case 0x32B9:
a = 44;
break;
case 0x32BA:
a = 45;
break;
case 0x32BB:
a = 46;
break;
case 0x32BC:
a = 47;
break;
case 0x32BD:
a = 48;
break;
case 0x32BE:
a = 49;
break;
case 0x0035:
case 0x0665:
case 0x06F5:
case 0x07C5:
case 0x096B:
case 0x09EB:
case 0x0A6B:
case 0x0AEB:
case 0x0B6B:
case 0x0BEB:
case 0x0C6B:
case 0x0CEB:
case 0x0D6B:
case 0x0DEB:
case 0x0E55:
case 0x0ED5:
case 0x0F25:
case 0x1045:
case 0x1095:
case 0x136D:
case 0x17E5:
case 0x17F5:
case 0x1815:
case 0x194B:
case 0x19D5:
case 0x1A85:
case 0x1A95:
case 0x1B55:
case 0x1BB5:
case 0x1C45:
case 0x1C55:
case 0x2075:
case 0x2085:
case 0x2164:
case 0x2174:
case 0x2464:
case 0x2478:
case 0x248C:
case 0x24F9:
case 0x277A:
case 0x2784:
case 0x278E:
case 0x3025:
case 0x3224:
case 0x3284:
case 0x3405:
case 0x382A:
case 0x4E94:
case 0x4F0D:
case 0xA625:
case 0xA6EA:
case 0xA8D5:
case 0xA905:
case 0xA9D5:
case 0xA9F5:
case 0xAA55:
case 0xABF5:
case 0xFF15:
case 0x1010B:
case 0x10143:
case 0x10148:
case 0x1014F:
case 0x1015F:
case 0x10173:
case 0x102E5:
case 0x10321:
case 0x104A5:
case 0x1087D:
case 0x108AC:
case 0x108FC:
case 0x109C4:
case 0x10AEC:
case 0x10CFB:
case 0x10D35:
case 0x10E64:
case 0x10F21:
case 0x11056:
case 0x1106B:
case 0x110F5:
case 0x1113B:
case 0x111D5:
case 0x111E5:
case 0x112F5:
case 0x11455:
case 0x114D5:
case 0x11655:
case 0x116C5:
case 0x11735:
case 0x118E5:
case 0x11955:
case 0x11C55:
case 0x11C5E:
case 0x11D55:
case 0x11DA5:
case 0x12403:
case 0x1240A:
case 0x12410:
case 0x12419:
case 0x12422:
case 0x12427:
case 0x12431:
case 0x12439:
case 0x1244D:
case 0x12454:
case 0x12455:
case 0x1246A:
case 0x16A65:
case 0x16B55:
case 0x16E85:
case 0x1D2E5:
case 0x1D364:
case 0x1D376:
case 0x1D378:
case 0x1D7D3:
case 0x1D7DD:
case 0x1D7E7:
case 0x1D7F1:
case 0x1D7FB:
case 0x1E145:
case 0x1E2F5:
case 0x1E8CB:
case 0x1E955:
case 0x1EC75:
case 0x1ECA7:
case 0x1ED05:
case 0x1ED32:
case 0x1F106:
case 0x1FBF5:
case 0x20121:
a = 5;
break;
case 0x109FA:
a = 5;
b = 12;
break;
case 0x0F2C:
a = 5;
b = 2;
break;
case 0x215A:
case 0x1245C:
a = 5;
b = 6;
break;
case 0x215D:
a = 5;
b = 8;
break;
case 0x1376:
case 0x216C:
case 0x217C:
case 0x2186:
case 0x324C:
case 0x32BF:
case 0x10114:
case 0x10144:
case 0x1014A:
case 0x10151:
case 0x10166:
case 0x10167:
case 0x10168:
case 0x10169:
case 0x10174:
case 0x102EE:
case 0x10323:
case 0x109CD:
case 0x10A7E:
case 0x10CFD:
case 0x10E6D:
case 0x1105F:
case 0x111EE:
case 0x118EE:
case 0x11C67:
case 0x12468:
case 0x1D36D:
case 0x1EC7E:
case 0x1ED0E:
a = 50;
break;
case 0x216E:
case 0x217E:
case 0x1011D:
case 0x10145:
case 0x1014C:
case 0x10153:
case 0x1016C:
case 0x1016D:
case 0x1016E:
case 0x1016F:
case 0x10170:
case 0x102F7:
case 0x109D6:
case 0x10E76:
case 0x1EC87:
case 0x1ED17:
a = 500;
break;
case 0x2181:
case 0x10126:
case 0x10146:
case 0x1014E:
case 0x10172:
case 0x109DF:
case 0x1EC90:
case 0x1ED20:
a = 5000;
break;
case 0x2187:
case 0x1012F:
case 0x10147:
case 0x10156:
case 0x109E8:
case 0x1EC99:
case 0x1ED29:
a = 50000;
break;
case 0x109F1:
a = 500000;
break;
case 0x0036:
case 0x0666:
case 0x06F6:
case 0x07C6:
case 0x096C:
case 0x09EC:
case 0x0A6C:
case 0x0AEC:
case 0x0B6C:
case 0x0BEC:
case 0x0C6C:
case 0x0CEC:
case 0x0D6C:
case 0x0DEC:
case 0x0E56:
case 0x0ED6:
case 0x0F26:
case 0x1046:
case 0x1096:
case 0x136E:
case 0x17E6:
case 0x17F6:
case 0x1816:
case 0x194C:
case 0x19D6:
case 0x1A86:
case 0x1A96:
case 0x1B56:
case 0x1BB6:
case 0x1C46:
case 0x1C56:
case 0x2076:
case 0x2086:
case 0x2165:
case 0x2175:
case 0x2185:
case 0x2465:
case 0x2479:
case 0x248D:
case 0x24FA:
case 0x277B:
case 0x2785:
case 0x278F:
case 0x3026:
case 0x3225:
case 0x3285:
case 0x516D:
case 0x9646:
case 0x9678:
case 0xA626:
case 0xA6EB:
case 0xA8D6:
case 0xA906:
case 0xA9D6:
case 0xA9F6:
case 0xAA56:
case 0xABF6:
case 0xF9D1:
case 0xF9D3:
case 0xFF16:
case 0x1010C:
case 0x102E6:
case 0x104A6:
case 0x109C5:
case 0x10D36:
case 0x10E65:
case 0x11057:
case 0x1106C:
case 0x110F6:
case 0x1113C:
case 0x111D6:
case 0x111E6:
case 0x112F6:
case 0x11456:
case 0x114D6:
case 0x11656:
case 0x116C6:
case 0x11736:
case 0x118E6:
case 0x11956:
case 0x11C56:
case 0x11C5F:
case 0x11D56:
case 0x11DA6:
case 0x12404:
case 0x1240B:
case 0x12411:
case 0x1241A:
case 0x12428:
case 0x12440:
case 0x1244E:
case 0x1246B:
case 0x16A66:
case 0x16B56:
case 0x16E86:
case 0x1D2E6:
case 0x1D365:
case 0x1D7D4:
case 0x1D7DE:
case 0x1D7E8:
case 0x1D7F2:
case 0x1D7FC:
case 0x1E146:
case 0x1E2F6:
case 0x1E8CC:
case 0x1E956:
case 0x1EC76:
case 0x1ECA8:
case 0x1ED06:
case 0x1ED33:
case 0x1F107:
case 0x1FBF6:
case 0x20AEA:
a = 6;
break;
case 0x109FB:
a = 6;
b = 12;
break;
case 0x1377:
case 0x324D:
case 0x10115:
case 0x102EF:
case 0x109CE:
case 0x10E6E:
case 0x11060:
case 0x111EF:
case 0x118EF:
case 0x11C68:
case 0x1D36E:
case 0x1EC7F:
case 0x1ED0F:
a = 60;
break;
case 0x1011E:
case 0x102F8:
case 0x109D7:
case 0x10E77:
case 0x1EC88:
case 0x1ED18:
case 0x1ED39:
a = 600;
break;
case 0x10127:
case 0x109E0:
case 0x1EC91:
case 0x1ED21:
a = 6000;
break;
case 0x10130:
case 0x109E9:
case 0x1EC9A:
case 0x1ED2A:
a = 60000;
break;
case 0x109F2:
a = 600000;
break;
case 0x0037:
case 0x0667:
case 0x06F7:
case 0x07C7:
case 0x096D:
case 0x09ED:
case 0x0A6D:
case 0x0AED:
case 0x0B6D:
case 0x0BED:
case 0x0C6D:
case 0x0CED:
case 0x0D6D:
case 0x0DED:
case 0x0E57:
case 0x0ED7:
case 0x0F27:
case 0x1047:
case 0x1097:
case 0x136F:
case 0x17E7:
case 0x17F7:
case 0x1817:
case 0x194D:
case 0x19D7:
case 0x1A87:
case 0x1A97:
case 0x1B57:
case 0x1BB7:
case 0x1C47:
case 0x1C57:
case 0x2077:
case 0x2087:
case 0x2166:
case 0x2176:
case 0x2466:
case 0x247A:
case 0x248E:
case 0x24FB:
case 0x277C:
case 0x2786:
case 0x2790:
case 0x3027:
case 0x3226:
case 0x3286:
case 0x3B4D:
case 0x4E03:
case 0x67D2:
case 0x6F06:
case 0xA627:
case 0xA6EC:
case 0xA8D7:
case 0xA907:
case 0xA9D7:
case 0xA9F7:
case 0xAA57:
case 0xABF7:
case 0xFF17:
case 0x1010D:
case 0x102E7:
case 0x104A7:
case 0x109C6:
case 0x10D37:
case 0x10E66:
case 0x11058:
case 0x1106D:
case 0x110F7:
case 0x1113D:
case 0x111D7:
case 0x111E7:
case 0x112F7:
case 0x11457:
case 0x114D7:
case 0x11657:
case 0x116C7:
case 0x11737:
case 0x118E7:
case 0x11957:
case 0x11C57:
case 0x11C60:
case 0x11D57:
case 0x11DA7:
case 0x12405:
case 0x1240C:
case 0x12412:
case 0x1241B:
case 0x12429:
case 0x12441:
case 0x12442:
case 0x12443:
case 0x1246C:
case 0x16A67:
case 0x16B57:
case 0x16E87:
case 0x1D2E7:
case 0x1D366:
case 0x1D7D5:
case 0x1D7DF:
case 0x1D7E9:
case 0x1D7F3:
case 0x1D7FD:
case 0x1E147:
case 0x1E2F7:
case 0x1E8CD:
case 0x1E957:
case 0x1EC77:
case 0x1ECA9:
case 0x1ED07:
case 0x1ED34:
case 0x1F108:
case 0x1FBF7:
case 0x20001:
a = 7;
break;
case 0x109FC:
a = 7;
b = 12;
break;
case 0x0F2D:
a = 7;
b = 2;
break;
case 0x215E:
a = 7;
b = 8;
break;
case 0x1378:
case 0x324E:
case 0x10116:
case 0x102F0:
case 0x109CF:
case 0x10E6F:
case 0x11061:
case 0x111F0:
case 0x118F0:
case 0x11C69:
case 0x1D36F:
case 0x1EC80:
case 0x1ED10:
a = 70;
break;
case 0x1011F:
case 0x102F9:
case 0x109D8:
case 0x10E78:
case 0x1EC89:
case 0x1ED19:
a = 700;
break;
case 0x10128:
case 0x109E1:
case 0x1EC92:
case 0x1ED22:
a = 7000;
break;
case 0x10131:
case 0x109EA:
case 0x1EC9B:
case 0x1ED2B:
a = 70000;
break;
case 0x109F3:
a = 700000;
break;
case 0x0038:
case 0x0668:
case 0x06F8:
case 0x07C8:
case 0x096E:
case 0x09EE:
case 0x0A6E:
case 0x0AEE:
case 0x0B6E:
case 0x0BEE:
case 0x0C6E:
case 0x0CEE:
case 0x0D6E:
case 0x0DEE:
case 0x0E58:
case 0x0ED8:
case 0x0F28:
case 0x1048:
case 0x1098:
case 0x1370:
case 0x17E8:
case 0x17F8:
case 0x1818:
case 0x194E:
case 0x19D8:
case 0x1A88:
case 0x1A98:
case 0x1B58:
case 0x1BB8:
case 0x1C48:
case 0x1C58:
case 0x2078:
case 0x2088:
case 0x2167:
case 0x2177:
case 0x2467:
case 0x247B:
case 0x248F:
case 0x24FC:
case 0x277D:
case 0x2787:
case 0x2791:
case 0x3028:
case 0x3227:
case 0x3287:
case 0x516B:
case 0x634C:
case 0xA628:
case 0xA6ED:
case 0xA8D8:
case 0xA908:
case 0xA9D8:
case 0xA9F8:
case 0xAA58:
case 0xABF8:
case 0xFF18:
case 0x1010E:
case 0x102E8:
case 0x104A8:
case 0x109C7:
case 0x10D38:
case 0x10E67:
case 0x11059:
case 0x1106E:
case 0x110F8:
case 0x1113E:
case 0x111D8:
case 0x111E8:
case 0x112F8:
case 0x11458:
case 0x114D8:
case 0x11658:
case 0x116C8:
case 0x11738:
case 0x118E8:
case 0x11958:
case 0x11C58:
case 0x11C61:
case 0x11D58:
case 0x11DA8:
case 0x12406:
case 0x1240D:
case 0x12413:
case 0x1241C:
case 0x1242A:
case 0x12444:
case 0x12445:
case 0x1246D:
case 0x16A68:
case 0x16B58:
case 0x16E88:
case 0x1D2E8:
case 0x1D367:
case 0x1D7D6:
case 0x1D7E0:
case 0x1D7EA:
case 0x1D7F4:
case 0x1D7FE:
case 0x1E148:
case 0x1E2F8:
case 0x1E8CE:
case 0x1E958:
case 0x1EC78:
case 0x1ECAA:
case 0x1ED08:
case 0x1ED35:
case 0x1F109:
case 0x1FBF8:
a = 8;
break;
case 0x109FD:
a = 8;
b = 12;
break;
case 0x1379:
case 0x324F:
case 0x10117:
case 0x102F1:
case 0x10E70:
case 0x11062:
case 0x111F1:
case 0x118F1:
case 0x11C6A:
case 0x1D370:
case 0x1EC81:
case 0x1ED11:
a = 80;
break;
case 0x10120:
case 0x102FA:
case 0x109D9:
case 0x10E79:
case 0x1EC8A:
case 0x1ED1A:
a = 800;
break;
case 0x10129:
case 0x109E2:
case 0x1EC93:
case 0x1ED23:
a = 8000;
break;
case 0x10132:
case 0x109EB:
case 0x1EC9C:
case 0x1ED2C:
a = 80000;
break;
case 0x109F4:
a = 800000;
break;
case 0x0039:
case 0x0669:
case 0x06F9:
case 0x07C9:
case 0x096F:
case 0x09EF:
case 0x0A6F:
case 0x0AEF:
case 0x0B6F:
case 0x0BEF:
case 0x0C6F:
case 0x0CEF:
case 0x0D6F:
case 0x0DEF:
case 0x0E59:
case 0x0ED9:
case 0x0F29:
case 0x1049:
case 0x1099:
case 0x1371:
case 0x17E9:
case 0x17F9:
case 0x1819:
case 0x194F:
case 0x19D9:
case 0x1A89:
case 0x1A99:
case 0x1B59:
case 0x1BB9:
case 0x1C49:
case 0x1C59:
case 0x2079:
case 0x2089:
case 0x2168:
case 0x2178:
case 0x2468:
case 0x247C:
case 0x2490:
case 0x24FD:
case 0x277E:
case 0x2788:
case 0x2792:
case 0x3029:
case 0x3228:
case 0x3288:
case 0x4E5D:
case 0x5EFE:
case 0x7396:
case 0xA629:
case 0xA6EE:
case 0xA8D9:
case 0xA909:
case 0xA9D9:
case 0xA9F9:
case 0xAA59:
case 0xABF9:
case 0xFF19:
case 0x1010F:
case 0x102E9:
case 0x104A9:
case 0x109C8:
case 0x10D39:
case 0x10E68:
case 0x1105A:
case 0x1106F:
case 0x110F9:
case 0x1113F:
case 0x111D9:
case 0x111E9:
case 0x112F9:
case 0x11459:
case 0x114D9:
case 0x11659:
case 0x116C9:
case 0x11739:
case 0x118E9:
case 0x11959:
case 0x11C59:
case 0x11C62:
case 0x11D59:
case 0x11DA9:
case 0x12407:
case 0x1240E:
case 0x12414:
case 0x1241D:
case 0x1242B:
case 0x12446:
case 0x12447:
case 0x12448:
case 0x12449:
case 0x1246E:
case 0x16A69:
case 0x16B59:
case 0x16E89:
case 0x1D2E9:
case 0x1D368:
case 0x1D7D7:
case 0x1D7E1:
case 0x1D7EB:
case 0x1D7F5:
case 0x1D7FF:
case 0x1E149:
case 0x1E2F9:
case 0x1E8CF:
case 0x1E959:
case 0x1EC79:
case 0x1ECAB:
case 0x1ED09:
case 0x1ED36:
case 0x1F10A:
case 0x1FBF9:
case 0x2F890:
a = 9;
break;
case 0x109FE:
a = 9;
b = 12;
break;
case 0x0F2E:
a = 9;
b = 2;
break;
case 0x137A:
case 0x10118:
case 0x102F2:
case 0x10341:
case 0x10E71:
case 0x11063:
case 0x111F2:
case 0x118F2:
case 0x11C6B:
case 0x1D371:
case 0x1EC82:
case 0x1ED12:
a = 90;
break;
case 0x10121:
case 0x102FB:
case 0x1034A:
case 0x109DA:
case 0x10E7A:
case 0x1EC8B:
case 0x1ED1B:
a = 900;
break;
case 0x1012A:
case 0x109E3:
case 0x1EC94:
case 0x1ED24:
a = 9000;
break;
case 0x10133:
case 0x109EC:
case 0x1EC9D:
case 0x1ED2D:
a = 90000;
break;
case 0x109F5:
a = 900000;
break;
default:
a = -1;
break;
}
return (double)a / b;
}