/ Hex Artifact Content
Login

Artifact 46ff2289f52e661ef030b4aed4c9e5b6132b6ea9:


0000: 2f 2a 0a 2a 2a 20 32 30 31 32 20 4d 61 79 20 32  /*.** 2012 May 2
0010: 35 0a 2a 2a 0a 2a 2a 20 54 68 65 20 61 75 74 68  5.**.** The auth
0020: 6f 72 20 64 69 73 63 6c 61 69 6d 73 20 63 6f 70  or disclaims cop
0030: 79 72 69 67 68 74 20 74 6f 20 74 68 69 73 20 73  yright to this s
0040: 6f 75 72 63 65 20 63 6f 64 65 2e 20 20 49 6e 20  ource code.  In 
0050: 70 6c 61 63 65 20 6f 66 0a 2a 2a 20 61 20 6c 65  place of.** a le
0060: 67 61 6c 20 6e 6f 74 69 63 65 2c 20 68 65 72 65  gal notice, here
0070: 20 69 73 20 61 20 62 6c 65 73 73 69 6e 67 3a 0a   is a blessing:.
0080: 2a 2a 0a 2a 2a 20 20 20 20 4d 61 79 20 79 6f 75  **.**    May you
0090: 20 64 6f 20 67 6f 6f 64 20 61 6e 64 20 6e 6f 74   do good and not
00a0: 20 65 76 69 6c 2e 0a 2a 2a 20 20 20 20 4d 61 79   evil..**    May
00b0: 20 79 6f 75 20 66 69 6e 64 20 66 6f 72 67 69 76   you find forgiv
00c0: 65 6e 65 73 73 20 66 6f 72 20 79 6f 75 72 73 65  eness for yourse
00d0: 6c 66 20 61 6e 64 20 66 6f 72 67 69 76 65 20 6f  lf and forgive o
00e0: 74 68 65 72 73 2e 0a 2a 2a 20 20 20 20 4d 61 79  thers..**    May
00f0: 20 79 6f 75 20 73 68 61 72 65 20 66 72 65 65 6c   you share freel
0100: 79 2c 20 6e 65 76 65 72 20 74 61 6b 69 6e 67 20  y, never taking 
0110: 6d 6f 72 65 20 74 68 61 6e 20 79 6f 75 20 67 69  more than you gi
0120: 76 65 2e 0a 2a 2a 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ve..**.*********
0130: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0140: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0150: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0160: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0170: 2a 2a 2a 2a 2a 0a 2a 2f 0a 0a 2f 2a 0a 2a 2a 20  *****.*/../*.** 
0180: 44 4f 20 4e 4f 54 20 45 44 49 54 20 54 48 49 53  DO NOT EDIT THIS
0190: 20 4d 41 43 48 49 4e 45 20 47 45 4e 45 52 41 54   MACHINE GENERAT
01a0: 45 44 20 46 49 4c 45 2e 0a 2a 2f 0a 0a 23 69 66  ED FILE..*/..#if
01b0: 6e 64 65 66 20 53 51 4c 49 54 45 5f 44 49 53 41  ndef SQLITE_DISA
01c0: 42 4c 45 5f 46 54 53 33 5f 55 4e 49 43 4f 44 45  BLE_FTS3_UNICODE
01d0: 0a 0a 23 69 6e 63 6c 75 64 65 20 3c 61 73 73 65  ..#include <asse
01e0: 72 74 2e 68 3e 0a 0a 2f 2a 0a 2a 2a 20 52 65 74  rt.h>../*.** Ret
01f0: 75 72 6e 20 74 72 75 65 20 69 66 20 74 68 65 20  urn true if the 
0200: 61 72 67 75 6d 65 6e 74 20 63 6f 72 72 65 73 70  argument corresp
0210: 6f 6e 64 73 20 74 6f 20 61 20 75 6e 69 63 6f 64  onds to a unicod
0220: 65 20 63 6f 64 65 70 6f 69 6e 74 0a 2a 2a 20 63  e codepoint.** c
0230: 6c 61 73 73 69 66 69 65 64 20 61 73 20 65 69 74  lassified as eit
0240: 68 65 72 20 61 20 6c 65 74 74 65 72 20 6f 72 20  her a letter or 
0250: 61 20 6e 75 6d 62 65 72 2e 20 4f 74 68 65 72 77  a number. Otherw
0260: 69 73 65 20 66 61 6c 73 65 2e 0a 2a 2a 0a 2a 2a  ise false..**.**
0270: 20 54 68 65 20 72 65 73 75 6c 74 73 20 61 72 65   The results are
0280: 20 75 6e 64 65 66 69 6e 65 64 20 69 66 20 74 68   undefined if th
0290: 65 20 76 61 6c 75 65 20 70 61 73 73 65 64 20 74  e value passed t
02a0: 6f 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 0a  o this function.
02b0: 2a 2a 20 69 73 20 6c 65 73 73 20 74 68 61 6e 20  ** is less than 
02c0: 7a 65 72 6f 2e 0a 2a 2f 0a 69 6e 74 20 73 71 6c  zero..*/.int sql
02d0: 69 74 65 33 46 74 73 55 6e 69 63 6f 64 65 49 73  ite3FtsUnicodeIs
02e0: 61 6c 6e 75 6d 28 69 6e 74 20 63 29 7b 0a 20 20  alnum(int c){.  
02f0: 2f 2a 20 45 61 63 68 20 75 6e 73 69 67 6e 65 64  /* Each unsigned
0300: 20 69 6e 74 65 67 65 72 20 69 6e 20 74 68 65 20   integer in the 
0310: 66 6f 6c 6c 6f 77 69 6e 67 20 61 72 72 61 79 20  following array 
0320: 63 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 61  corresponds to a
0330: 20 63 6f 6e 74 69 67 75 6f 75 73 0a 20 20 2a 2a   contiguous.  **
0340: 20 72 61 6e 67 65 20 6f 66 20 75 6e 69 63 6f 64   range of unicod
0350: 65 20 63 6f 64 65 70 6f 69 6e 74 73 20 74 68 61  e codepoints tha
0360: 74 20 61 72 65 20 6e 6f 74 20 65 69 74 68 65 72  t are not either
0370: 20 6c 65 74 74 65 72 73 20 6f 72 20 6e 75 6d 62   letters or numb
0380: 65 72 73 20 28 69 2e 65 2e 0a 20 20 2a 2a 20 63  ers (i.e..  ** c
0390: 6f 64 65 70 6f 69 6e 74 73 20 66 6f 72 20 77 68  odepoints for wh
03a0: 69 63 68 20 74 68 69 73 20 66 75 6e 63 74 69 6f  ich this functio
03b0: 6e 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20  n should return 
03c0: 30 29 2e 0a 20 20 2a 2a 0a 20 20 2a 2a 20 54 68  0)..  **.  ** Th
03d0: 65 20 6d 6f 73 74 20 73 69 67 6e 69 66 69 63 61  e most significa
03e0: 6e 74 20 32 32 20 62 69 74 73 20 69 6e 20 65 61  nt 22 bits in ea
03f0: 63 68 20 33 32 2d 62 69 74 20 76 61 6c 75 65 20  ch 32-bit value 
0400: 63 6f 6e 74 61 69 6e 20 74 68 65 20 66 69 72 73  contain the firs
0410: 74 20 0a 20 20 2a 2a 20 63 6f 64 65 70 6f 69 6e  t .  ** codepoin
0420: 74 20 69 6e 20 74 68 65 20 72 61 6e 67 65 2e 20  t in the range. 
0430: 54 68 65 20 6c 65 61 73 74 20 73 69 67 6e 69 66  The least signif
0440: 69 63 61 6e 74 20 31 30 20 62 69 74 73 20 61 72  icant 10 bits ar
0450: 65 20 75 73 65 64 20 74 6f 20 73 74 6f 72 65 0a  e used to store.
0460: 20 20 2a 2a 20 74 68 65 20 73 69 7a 65 20 6f 66    ** the size of
0470: 20 74 68 65 20 72 61 6e 67 65 20 28 61 6c 77 61   the range (alwa
0480: 79 73 20 61 74 20 6c 65 61 73 74 20 31 29 2e 20  ys at least 1). 
0490: 49 6e 20 6f 74 68 65 72 20 77 6f 72 64 73 2c 20  In other words, 
04a0: 74 68 65 20 76 61 6c 75 65 20 0a 20 20 2a 2a 20  the value .  ** 
04b0: 28 28 43 3c 3c 32 32 29 20 2b 20 4e 29 20 72 65  ((C<<22) + N) re
04c0: 70 72 65 73 65 6e 74 73 20 61 20 72 61 6e 67 65  presents a range
04d0: 20 6f 66 20 4e 20 63 6f 64 65 70 6f 69 6e 74 73   of N codepoints
04e0: 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 63   starting with c
04f0: 6f 64 65 70 6f 69 6e 74 20 0a 20 20 2a 2a 20 43  odepoint .  ** C
0500: 2e 20 49 74 20 69 73 20 6e 6f 74 20 70 6f 73 73  . It is not poss
0510: 69 62 6c 65 20 74 6f 20 72 65 70 72 65 73 65 6e  ible to represen
0520: 74 20 61 20 72 61 6e 67 65 20 6c 61 72 67 65 72  t a range larger
0530: 20 74 68 61 6e 20 31 30 32 33 20 63 6f 64 65 70   than 1023 codep
0540: 6f 69 6e 74 73 20 0a 20 20 2a 2a 20 75 73 69 6e  oints .  ** usin
0550: 67 20 74 68 69 73 20 66 6f 72 6d 61 74 2e 0a 20  g this format.. 
0560: 20 2a 2f 0a 20 20 63 6f 6e 73 74 20 73 74 61 74   */.  const stat
0570: 69 63 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20  ic unsigned int 
0580: 61 45 6e 74 72 79 5b 5d 20 3d 20 7b 0a 20 20 20  aEntry[] = {.   
0590: 20 30 78 30 30 30 30 30 30 33 30 2c 20 30 78 30   0x00000030, 0x0
05a0: 30 30 30 45 38 30 37 2c 20 30 78 30 30 30 31 36  000E807, 0x00016
05b0: 43 30 36 2c 20 30 78 30 30 30 31 45 43 32 46 2c  C06, 0x0001EC2F,
05c0: 20 30 78 30 30 30 32 41 43 30 37 2c 0a 20 20 20   0x0002AC07,.   
05d0: 20 30 78 30 30 30 32 44 30 30 31 2c 20 30 78 30   0x0002D001, 0x0
05e0: 30 30 32 44 38 30 33 2c 20 30 78 30 30 30 32 45  002D803, 0x0002E
05f0: 43 30 31 2c 20 30 78 30 30 30 32 46 43 30 31 2c  C01, 0x0002FC01,
0600: 20 30 78 30 30 30 33 35 43 30 31 2c 0a 20 20 20   0x00035C01,.   
0610: 20 30 78 30 30 30 33 44 43 30 31 2c 20 30 78 30   0x0003DC01, 0x0
0620: 30 30 42 30 38 30 34 2c 20 30 78 30 30 30 42 34  00B0804, 0x000B4
0630: 38 30 45 2c 20 30 78 30 30 30 42 39 34 30 37 2c  80E, 0x000B9407,
0640: 20 30 78 30 30 30 42 42 34 30 31 2c 0a 20 20 20   0x000BB401,.   
0650: 20 30 78 30 30 30 42 42 43 38 31 2c 20 30 78 30   0x000BBC81, 0x0
0660: 30 30 44 44 34 30 31 2c 20 30 78 30 30 30 44 46  00DD401, 0x000DF
0670: 38 30 31 2c 20 30 78 30 30 30 45 31 30 30 32 2c  801, 0x000E1002,
0680: 20 30 78 30 30 30 45 31 43 30 31 2c 0a 20 20 20   0x000E1C01,.   
0690: 20 30 78 30 30 30 46 44 38 30 31 2c 20 30 78 30   0x000FD801, 0x0
06a0: 30 31 32 30 38 30 38 2c 20 30 78 30 30 31 35 36  0120808, 0x00156
06b0: 38 30 36 2c 20 30 78 30 30 31 36 32 34 30 32 2c  806, 0x00162402,
06c0: 20 30 78 30 30 31 36 33 43 30 31 2c 0a 20 20 20   0x00163C01,.   
06d0: 20 30 78 30 30 31 36 34 34 33 37 2c 20 30 78 30   0x00164437, 0x0
06e0: 30 31 37 43 43 30 32 2c 20 30 78 30 30 31 38 30  017CC02, 0x00180
06f0: 30 30 35 2c 20 30 78 30 30 31 38 31 38 31 36 2c  005, 0x00181816,
0700: 20 30 78 30 30 31 38 37 38 30 32 2c 0a 20 20 20   0x00187802,.   
0710: 20 30 78 30 30 31 39 32 43 31 35 2c 20 30 78 30   0x00192C15, 0x0
0720: 30 31 39 41 38 30 34 2c 20 30 78 30 30 31 39 43  019A804, 0x0019C
0730: 30 30 31 2c 20 30 78 30 30 31 42 35 30 30 31 2c  001, 0x001B5001,
0740: 20 30 78 30 30 31 42 35 38 30 46 2c 0a 20 20 20   0x001B580F,.   
0750: 20 30 78 30 30 31 42 39 43 30 37 2c 20 30 78 30   0x001B9C07, 0x0
0760: 30 31 42 46 34 30 32 2c 20 30 78 30 30 31 43 30  01BF402, 0x001C0
0770: 30 30 45 2c 20 30 78 30 30 31 43 33 43 30 31 2c  00E, 0x001C3C01,
0780: 20 30 78 30 30 31 43 34 34 30 31 2c 0a 20 20 20   0x001C4401,.   
0790: 20 30 78 30 30 31 43 43 30 31 42 2c 20 30 78 30   0x001CC01B, 0x0
07a0: 30 31 45 39 38 30 42 2c 20 30 78 30 30 31 46 41  01E980B, 0x001FA
07b0: 43 30 39 2c 20 30 78 30 30 31 46 44 38 30 34 2c  C09, 0x001FD804,
07c0: 20 30 78 30 30 32 30 35 38 30 34 2c 0a 20 20 20   0x00205804,.   
07d0: 20 30 78 30 30 32 30 36 43 30 39 2c 20 30 78 30   0x00206C09, 0x0
07e0: 30 32 30 39 34 30 33 2c 20 30 78 30 30 32 30 41  0209403, 0x0020A
07f0: 34 30 35 2c 20 30 78 30 30 32 30 43 30 30 46 2c  405, 0x0020C00F,
0800: 20 30 78 30 30 32 31 36 34 30 33 2c 0a 20 20 20   0x00216403,.   
0810: 20 30 78 30 30 32 31 37 38 30 31 2c 20 30 78 30   0x00217801, 0x0
0820: 30 32 33 39 30 31 42 2c 20 30 78 30 30 32 34 30  023901B, 0x00240
0830: 30 30 34 2c 20 30 78 30 30 32 34 45 38 30 33 2c  004, 0x0024E803,
0840: 20 30 78 30 30 32 34 46 38 31 32 2c 0a 20 20 20   0x0024F812,.   
0850: 20 30 78 30 30 32 35 34 34 30 37 2c 20 30 78 30   0x00254407, 0x0
0860: 30 32 35 38 38 30 34 2c 20 30 78 30 30 32 35 43  0258804, 0x0025C
0870: 30 30 31 2c 20 30 78 30 30 32 36 30 34 30 33 2c  001, 0x00260403,
0880: 20 30 78 30 30 32 36 46 30 30 31 2c 0a 20 20 20   0x0026F001,.   
0890: 20 30 78 30 30 32 36 46 38 30 37 2c 20 30 78 30   0x0026F807, 0x0
08a0: 30 32 37 31 43 30 32 2c 20 30 78 30 30 32 37 32  0271C02, 0x00272
08b0: 43 30 33 2c 20 30 78 30 30 32 37 35 43 30 31 2c  C03, 0x00275C01,
08c0: 20 30 78 30 30 32 37 38 38 30 32 2c 0a 20 20 20   0x00278802,.   
08d0: 20 30 78 30 30 32 37 43 38 30 32 2c 20 30 78 30   0x0027C802, 0x0
08e0: 30 32 37 45 38 30 32 2c 20 30 78 30 30 32 38 30  027E802, 0x00280
08f0: 34 30 33 2c 20 30 78 30 30 32 38 46 30 30 31 2c  403, 0x0028F001,
0900: 20 30 78 30 30 32 38 46 38 30 35 2c 0a 20 20 20   0x0028F805,.   
0910: 20 30 78 30 30 32 39 31 43 30 32 2c 20 30 78 30   0x00291C02, 0x0
0920: 30 32 39 32 43 30 33 2c 20 30 78 30 30 32 39 34  0292C03, 0x00294
0930: 34 30 31 2c 20 30 78 30 30 32 39 43 30 30 32 2c  401, 0x0029C002,
0940: 20 30 78 30 30 32 39 44 34 30 31 2c 0a 20 20 20   0x0029D401,.   
0950: 20 30 78 30 30 32 41 30 34 30 33 2c 20 30 78 30   0x002A0403, 0x0
0960: 30 32 41 46 30 30 31 2c 20 30 78 30 30 32 41 46  02AF001, 0x002AF
0970: 38 30 38 2c 20 30 78 30 30 32 42 31 43 30 33 2c  808, 0x002B1C03,
0980: 20 30 78 30 30 32 42 32 43 30 33 2c 0a 20 20 20   0x002B2C03,.   
0990: 20 30 78 30 30 32 42 38 38 30 32 2c 20 30 78 30   0x002B8802, 0x0
09a0: 30 32 42 43 30 30 32 2c 20 30 78 30 30 32 43 30  02BC002, 0x002C0
09b0: 34 30 33 2c 20 30 78 30 30 32 43 46 30 30 31 2c  403, 0x002CF001,
09c0: 20 30 78 30 30 32 43 46 38 30 37 2c 0a 20 20 20   0x002CF807,.   
09d0: 20 30 78 30 30 32 44 31 43 30 32 2c 20 30 78 30   0x002D1C02, 0x0
09e0: 30 32 44 32 43 30 33 2c 20 30 78 30 30 32 44 35  02D2C03, 0x002D5
09f0: 38 30 32 2c 20 30 78 30 30 32 44 38 38 30 32 2c  802, 0x002D8802,
0a00: 20 30 78 30 30 32 44 43 30 30 31 2c 0a 20 20 20   0x002DC001,.   
0a10: 20 30 78 30 30 32 45 30 38 30 31 2c 20 30 78 30   0x002E0801, 0x0
0a20: 30 32 45 46 38 30 35 2c 20 30 78 30 30 32 46 31  02EF805, 0x002F1
0a30: 38 30 33 2c 20 30 78 30 30 32 46 32 38 30 34 2c  803, 0x002F2804,
0a40: 20 30 78 30 30 32 46 35 43 30 31 2c 0a 20 20 20   0x002F5C01,.   
0a50: 20 30 78 30 30 32 46 43 43 30 38 2c 20 30 78 30   0x002FCC08, 0x0
0a60: 30 33 30 30 34 30 33 2c 20 30 78 30 30 33 30 46  0300403, 0x0030F
0a70: 38 30 37 2c 20 30 78 30 30 33 31 31 38 30 33 2c  807, 0x00311803,
0a80: 20 30 78 30 30 33 31 32 38 30 34 2c 0a 20 20 20   0x00312804,.   
0a90: 20 30 78 30 30 33 31 35 34 30 32 2c 20 30 78 30   0x00315402, 0x0
0aa0: 30 33 31 38 38 30 32 2c 20 30 78 30 30 33 31 46  0318802, 0x0031F
0ab0: 43 30 31 2c 20 30 78 30 30 33 32 30 38 30 32 2c  C01, 0x00320802,
0ac0: 20 30 78 30 30 33 32 46 30 30 31 2c 0a 20 20 20   0x0032F001,.   
0ad0: 20 30 78 30 30 33 32 46 38 30 37 2c 20 30 78 30   0x0032F807, 0x0
0ae0: 30 33 33 31 38 30 33 2c 20 30 78 30 30 33 33 32  0331803, 0x00332
0af0: 38 30 34 2c 20 30 78 30 30 33 33 35 34 30 32 2c  804, 0x00335402,
0b00: 20 30 78 30 30 33 33 38 38 30 32 2c 0a 20 20 20   0x00338802,.   
0b10: 20 30 78 30 30 33 34 30 38 30 32 2c 20 30 78 30   0x00340802, 0x0
0b20: 30 33 34 46 38 30 37 2c 20 30 78 30 30 33 35 31  034F807, 0x00351
0b30: 38 30 33 2c 20 30 78 30 30 33 35 32 38 30 34 2c  803, 0x00352804,
0b40: 20 30 78 30 30 33 35 35 43 30 31 2c 0a 20 20 20   0x00355C01,.   
0b50: 20 30 78 30 30 33 35 38 38 30 32 2c 20 30 78 30   0x00358802, 0x0
0b60: 30 33 35 45 34 30 31 2c 20 30 78 30 30 33 36 30  035E401, 0x00360
0b70: 38 30 32 2c 20 30 78 30 30 33 37 32 38 30 31 2c  802, 0x00372801,
0b80: 20 30 78 30 30 33 37 33 43 30 36 2c 0a 20 20 20   0x00373C06,.   
0b90: 20 30 78 30 30 33 37 35 38 30 31 2c 20 30 78 30   0x00375801, 0x0
0ba0: 30 33 37 36 30 30 38 2c 20 30 78 30 30 33 37 43  0376008, 0x0037C
0bb0: 38 30 33 2c 20 30 78 30 30 33 38 43 34 30 31 2c  803, 0x0038C401,
0bc0: 20 30 78 30 30 33 38 44 30 30 37 2c 0a 20 20 20   0x0038D007,.   
0bd0: 20 30 78 30 30 33 38 46 43 30 31 2c 20 30 78 30   0x0038FC01, 0x0
0be0: 30 33 39 31 43 30 39 2c 20 30 78 30 30 33 39 36  0391C09, 0x00396
0bf0: 38 30 32 2c 20 30 78 30 30 33 41 43 34 30 31 2c  802, 0x003AC401,
0c00: 20 30 78 30 30 33 41 44 30 30 36 2c 0a 20 20 20   0x003AD006,.   
0c10: 20 30 78 30 30 33 41 45 43 30 32 2c 20 30 78 30   0x003AEC02, 0x0
0c20: 30 33 42 32 30 30 36 2c 20 30 78 30 30 33 43 30  03B2006, 0x003C0
0c30: 34 31 46 2c 20 30 78 30 30 33 43 44 30 30 43 2c  41F, 0x003CD00C,
0c40: 20 30 78 30 30 33 44 43 34 31 37 2c 0a 20 20 20   0x003DC417,.   
0c50: 20 30 78 30 30 33 45 33 34 30 42 2c 20 30 78 30   0x003E340B, 0x0
0c60: 30 33 45 36 34 32 34 2c 20 30 78 30 30 33 45 46  03E6424, 0x003EF
0c70: 38 30 46 2c 20 30 78 30 30 33 46 33 38 30 44 2c  80F, 0x003F380D,
0c80: 20 30 78 30 30 34 30 41 43 31 34 2c 0a 20 20 20   0x0040AC14,.   
0c90: 20 30 78 30 30 34 31 32 38 30 36 2c 20 30 78 30   0x00412806, 0x0
0ca0: 30 34 31 35 38 30 34 2c 20 30 78 30 30 34 31 37  0415804, 0x00417
0cb0: 38 30 33 2c 20 30 78 30 30 34 31 38 38 30 33 2c  803, 0x00418803,
0cc0: 20 30 78 30 30 34 31 39 43 30 37 2c 0a 20 20 20   0x00419C07,.   
0cd0: 20 30 78 30 30 34 31 43 34 30 34 2c 20 30 78 30   0x0041C404, 0x0
0ce0: 30 34 32 30 38 30 43 2c 20 30 78 30 30 34 32 33  042080C, 0x00423
0cf0: 43 30 31 2c 20 30 78 30 30 34 32 36 38 30 36 2c  C01, 0x00426806,
0d00: 20 30 78 30 30 34 33 45 43 30 31 2c 0a 20 20 20   0x0043EC01,.   
0d10: 20 30 78 30 30 34 44 37 34 30 43 2c 20 30 78 30   0x004D740C, 0x0
0d20: 30 34 45 34 30 30 41 2c 20 30 78 30 30 35 30 30  04E400A, 0x00500
0d30: 30 30 31 2c 20 30 78 30 30 35 39 42 34 30 32 2c  001, 0x0059B402,
0d40: 20 30 78 30 30 35 41 30 30 30 31 2c 0a 20 20 20   0x005A0001,.   
0d50: 20 30 78 30 30 35 41 36 43 30 32 2c 20 30 78 30   0x005A6C02, 0x0
0d60: 30 35 42 41 43 30 33 2c 20 30 78 30 30 35 43 34  05BAC03, 0x005C4
0d70: 38 30 33 2c 20 30 78 30 30 35 43 43 38 30 35 2c  803, 0x005CC805,
0d80: 20 30 78 30 30 35 44 34 38 30 32 2c 0a 20 20 20   0x005D4802,.   
0d90: 20 30 78 30 30 35 44 43 38 30 32 2c 20 30 78 30   0x005DC802, 0x0
0da0: 30 35 45 44 30 32 33 2c 20 30 78 30 30 35 46 36  05ED023, 0x005F6
0db0: 30 30 34 2c 20 30 78 30 30 35 46 37 34 30 31 2c  004, 0x005F7401,
0dc0: 20 30 78 30 30 36 30 30 30 30 46 2c 0a 20 20 20   0x0060000F,.   
0dd0: 20 30 78 30 30 36 32 41 34 30 31 2c 20 30 78 30   0x0062A401, 0x0
0de0: 30 36 34 38 30 30 43 2c 20 30 78 30 30 36 34 43  064800C, 0x0064C
0df0: 30 30 43 2c 20 30 78 30 30 36 35 30 30 30 31 2c  00C, 0x00650001,
0e00: 20 30 78 30 30 36 35 31 30 30 32 2c 0a 20 20 20   0x00651002,.   
0e10: 20 30 78 30 30 36 36 43 30 31 31 2c 20 30 78 30   0x0066C011, 0x0
0e20: 30 36 37 32 30 30 32 2c 20 30 78 30 30 36 37 37  0672002, 0x00677
0e30: 38 32 32 2c 20 30 78 30 30 36 38 35 43 30 35 2c  822, 0x00685C05,
0e40: 20 30 78 30 30 36 38 37 38 30 32 2c 0a 20 20 20   0x00687802,.   
0e50: 20 30 78 30 30 36 39 35 34 30 41 2c 20 30 78 30   0x0069540A, 0x0
0e60: 30 36 39 38 30 31 44 2c 20 30 78 30 30 36 39 46  069801D, 0x0069F
0e70: 43 30 31 2c 20 30 78 30 30 36 41 38 30 30 37 2c  C01, 0x006A8007,
0e80: 20 30 78 30 30 36 41 41 30 30 36 2c 0a 20 20 20   0x006AA006,.   
0e90: 20 30 78 30 30 36 43 30 30 30 35 2c 20 30 78 30   0x006C0005, 0x0
0ea0: 30 36 43 44 30 31 31 2c 20 30 78 30 30 36 44 36  06CD011, 0x006D6
0eb0: 38 32 33 2c 20 30 78 30 30 36 45 30 30 30 33 2c  823, 0x006E0003,
0ec0: 20 30 78 30 30 36 45 38 34 30 44 2c 0a 20 20 20   0x006E840D,.   
0ed0: 20 30 78 30 30 36 46 39 38 30 45 2c 20 30 78 30   0x006F980E, 0x0
0ee0: 30 36 46 46 30 30 34 2c 20 30 78 30 30 37 30 39  06FF004, 0x00709
0ef0: 30 31 34 2c 20 30 78 30 30 37 30 45 43 30 35 2c  014, 0x0070EC05,
0f00: 20 30 78 30 30 37 31 46 38 30 32 2c 0a 20 20 20   0x0071F802,.   
0f10: 20 30 78 30 30 37 33 30 30 30 38 2c 20 30 78 30   0x00730008, 0x0
0f20: 30 37 33 34 30 31 39 2c 20 30 78 30 30 37 33 42  0734019, 0x0073B
0f30: 34 30 31 2c 20 30 78 30 30 37 33 43 38 30 33 2c  401, 0x0073C803,
0f40: 20 30 78 30 30 37 37 30 30 32 37 2c 0a 20 20 20   0x00770027,.   
0f50: 20 30 78 30 30 37 37 46 30 30 34 2c 20 30 78 30   0x0077F004, 0x0
0f60: 30 37 45 46 34 30 31 2c 20 30 78 30 30 37 45 46  07EF401, 0x007EF
0f70: 43 30 33 2c 20 30 78 30 30 37 46 33 34 30 33 2c  C03, 0x007F3403,
0f80: 20 30 78 30 30 37 46 37 34 30 33 2c 0a 20 20 20   0x007F7403,.   
0f90: 20 30 78 30 30 37 46 42 34 30 33 2c 20 30 78 30   0x007FB403, 0x0
0fa0: 30 37 46 46 34 30 32 2c 20 30 78 30 30 38 30 30  07FF402, 0x00800
0fb0: 30 36 35 2c 20 30 78 30 30 38 31 41 38 30 36 2c  065, 0x0081A806,
0fc0: 20 30 78 30 30 38 31 45 38 30 35 2c 0a 20 20 20   0x0081E805,.   
0fd0: 20 30 78 30 30 38 32 32 38 30 35 2c 20 30 78 30   0x00822805, 0x0
0fe0: 30 38 32 38 30 31 41 2c 20 30 78 30 30 38 33 34  082801A, 0x00834
0ff0: 30 32 31 2c 20 30 78 30 30 38 34 30 30 30 32 2c  021, 0x00840002,
1000: 20 30 78 30 30 38 34 30 43 30 34 2c 0a 20 20 20   0x00840C04,.   
1010: 20 30 78 30 30 38 34 32 30 30 32 2c 20 30 78 30   0x00842002, 0x0
1020: 30 38 34 35 30 30 31 2c 20 30 78 30 30 38 34 35  0845001, 0x00845
1030: 38 30 33 2c 20 30 78 30 30 38 34 37 38 30 36 2c  803, 0x00847806,
1040: 20 30 78 30 30 38 34 39 34 30 31 2c 0a 20 20 20   0x00849401,.   
1050: 20 30 78 30 30 38 34 39 43 30 31 2c 20 30 78 30   0x00849C01, 0x0
1060: 30 38 34 41 34 30 31 2c 20 30 78 30 30 38 34 42  084A401, 0x0084B
1070: 38 30 31 2c 20 30 78 30 30 38 34 45 38 30 32 2c  801, 0x0084E802,
1080: 20 30 78 30 30 38 35 30 30 30 35 2c 0a 20 20 20   0x00850005,.   
1090: 20 30 78 30 30 38 35 32 38 30 34 2c 20 30 78 30   0x00852804, 0x0
10a0: 30 38 35 33 43 30 31 2c 20 30 78 30 30 38 36 34  0853C01, 0x00864
10b0: 32 36 34 2c 20 30 78 30 30 39 30 30 30 32 37 2c  264, 0x00900027,
10c0: 20 30 78 30 30 39 31 30 30 30 42 2c 0a 20 20 20   0x0091000B,.   
10d0: 20 30 78 30 30 39 32 37 30 34 45 2c 20 30 78 30   0x0092704E, 0x0
10e0: 30 39 34 30 32 30 30 2c 20 30 78 30 30 39 43 30  0940200, 0x009C0
10f0: 34 37 35 2c 20 30 78 30 30 39 45 35 33 42 39 2c  475, 0x009E53B9,
1100: 20 30 78 30 30 41 44 34 30 30 41 2c 0a 20 20 20   0x00AD400A,.   
1110: 20 30 78 30 30 42 33 39 34 30 36 2c 20 30 78 30   0x00B39406, 0x0
1120: 30 42 33 42 43 30 33 2c 20 30 78 30 30 42 33 45  0B3BC03, 0x00B3E
1130: 34 30 34 2c 20 30 78 30 30 42 33 46 38 30 32 2c  404, 0x00B3F802,
1140: 20 30 78 30 30 42 35 43 30 30 31 2c 0a 20 20 20   0x00B5C001,.   
1150: 20 30 78 30 30 42 35 46 43 30 31 2c 20 30 78 30   0x00B5FC01, 0x0
1160: 30 42 37 38 30 34 46 2c 20 30 78 30 30 42 38 43  0B7804F, 0x00B8C
1170: 30 30 43 2c 20 30 78 30 30 42 41 30 30 31 41 2c  00C, 0x00BA001A,
1180: 20 30 78 30 30 42 41 36 43 35 39 2c 0a 20 20 20   0x00BA6C59,.   
1190: 20 30 78 30 30 42 43 30 30 44 36 2c 20 30 78 30   0x00BC00D6, 0x0
11a0: 30 42 46 43 30 30 43 2c 20 30 78 30 30 43 30 30  0BFC00C, 0x00C00
11b0: 30 30 35 2c 20 30 78 30 30 43 30 32 30 31 39 2c  005, 0x00C02019,
11c0: 20 30 78 30 30 43 30 41 38 30 37 2c 0a 20 20 20   0x00C0A807,.   
11d0: 20 30 78 30 30 43 30 44 38 30 32 2c 20 30 78 30   0x00C0D802, 0x0
11e0: 30 43 30 46 34 30 33 2c 20 30 78 30 30 43 32 36  0C0F403, 0x00C26
11f0: 34 30 34 2c 20 30 78 30 30 43 32 38 30 30 31 2c  404, 0x00C28001,
1200: 20 30 78 30 30 43 33 45 43 30 31 2c 0a 20 20 20   0x00C3EC01,.   
1210: 20 30 78 30 30 43 36 34 30 30 32 2c 20 30 78 30   0x00C64002, 0x0
1220: 30 43 36 35 38 30 41 2c 20 30 78 30 30 43 37 30  0C6580A, 0x00C70
1230: 30 32 34 2c 20 30 78 30 30 43 38 30 30 31 46 2c  024, 0x00C8001F,
1240: 20 30 78 30 30 43 38 41 38 31 45 2c 0a 20 20 20   0x00C8A81E,.   
1250: 20 30 78 30 30 43 39 34 30 30 31 2c 20 30 78 30   0x00C94001, 0x0
1260: 30 43 39 38 30 32 30 2c 20 30 78 30 30 43 41 32  0C98020, 0x00CA2
1270: 38 32 37 2c 20 30 78 30 30 43 42 30 30 33 46 2c  827, 0x00CB003F,
1280: 20 30 78 30 30 43 43 30 31 30 30 2c 0a 20 20 20   0x00CC0100,.   
1290: 20 30 78 30 31 33 37 30 30 34 30 2c 20 30 78 30   0x01370040, 0x0
12a0: 32 39 32 34 30 33 37 2c 20 30 78 30 32 39 33 46  2924037, 0x0293F
12b0: 38 30 32 2c 20 30 78 30 32 39 38 33 34 30 33 2c  802, 0x02983403,
12c0: 20 30 78 30 32 39 39 42 43 31 30 2c 0a 20 20 20   0x0299BC10,.   
12d0: 20 30 78 30 32 39 41 37 43 30 31 2c 20 30 78 30   0x029A7C01, 0x0
12e0: 32 39 42 43 30 30 38 2c 20 30 78 30 32 39 43 30  29BC008, 0x029C0
12f0: 30 31 37 2c 20 30 78 30 32 39 43 38 30 30 32 2c  017, 0x029C8002,
1300: 20 30 78 30 32 39 45 32 34 30 32 2c 0a 20 20 20   0x029E2402,.   
1310: 20 30 78 30 32 41 30 30 38 30 31 2c 20 30 78 30   0x02A00801, 0x0
1320: 32 41 30 31 38 30 31 2c 20 30 78 30 32 41 30 32  2A01801, 0x02A02
1330: 43 30 31 2c 20 30 78 30 32 41 30 38 43 30 39 2c  C01, 0x02A08C09,
1340: 20 30 78 30 32 41 30 44 38 30 34 2c 0a 20 20 20   0x02A0D804,.   
1350: 20 30 78 30 32 41 31 44 30 30 34 2c 20 30 78 30   0x02A1D004, 0x0
1360: 32 41 32 30 30 30 32 2c 20 30 78 30 32 41 32 44  2A20002, 0x02A2D
1370: 30 31 31 2c 20 30 78 30 32 41 33 33 38 30 32 2c  011, 0x02A33802,
1380: 20 30 78 30 32 41 33 38 30 31 32 2c 0a 20 20 20   0x02A38012,.   
1390: 20 30 78 30 32 41 33 45 30 30 33 2c 20 30 78 30   0x02A3E003, 0x0
13a0: 32 41 34 39 38 30 41 2c 20 30 78 30 32 41 35 31  2A4980A, 0x02A51
13b0: 43 30 44 2c 20 30 78 30 32 41 35 37 43 30 31 2c  C0D, 0x02A57C01,
13c0: 20 30 78 30 32 41 36 30 30 30 34 2c 0a 20 20 20   0x02A60004,.   
13d0: 20 30 78 30 32 41 36 43 43 31 42 2c 20 30 78 30   0x02A6CC1B, 0x0
13e0: 32 41 37 37 38 30 32 2c 20 30 78 30 32 41 38 41  2A77802, 0x02A8A
13f0: 34 30 45 2c 20 30 78 30 32 41 39 30 43 30 31 2c  40E, 0x02A90C01,
1400: 20 30 78 30 32 41 39 33 30 30 32 2c 0a 20 20 20   0x02A93002,.   
1410: 20 30 78 30 32 41 39 37 30 30 34 2c 20 30 78 30   0x02A97004, 0x0
1420: 32 41 39 44 43 30 33 2c 20 30 78 30 32 41 39 45  2A9DC03, 0x02A9E
1430: 43 30 31 2c 20 30 78 30 32 41 41 43 30 30 31 2c  C01, 0x02AAC001,
1440: 20 30 78 30 32 41 41 43 38 30 33 2c 0a 20 20 20   0x02AAC803,.   
1450: 20 30 78 30 32 41 41 44 43 30 32 2c 20 30 78 30   0x02AADC02, 0x0
1460: 32 41 41 46 38 30 32 2c 20 30 78 30 32 41 42 30  2AAF802, 0x02AB0
1470: 34 30 31 2c 20 30 78 30 32 41 42 37 38 30 32 2c  401, 0x02AB7802,
1480: 20 30 78 30 32 41 42 41 43 30 37 2c 0a 20 20 20   0x02ABAC07,.   
1490: 20 30 78 30 32 41 42 44 34 30 32 2c 20 30 78 30   0x02ABD402, 0x0
14a0: 32 41 46 38 43 30 42 2c 20 30 78 30 33 36 30 30  2AF8C0B, 0x03600
14b0: 30 30 31 2c 20 30 78 30 33 36 44 46 43 30 32 2c  001, 0x036DFC02,
14c0: 20 30 78 30 33 36 46 46 43 30 32 2c 0a 20 20 20   0x036FFC02,.   
14d0: 20 30 78 30 33 37 46 46 43 30 32 2c 20 30 78 30   0x037FFC02, 0x0
14e0: 33 45 33 46 43 30 31 2c 20 30 78 30 33 45 43 37  3E3FC01, 0x03EC7
14f0: 38 30 31 2c 20 30 78 30 33 45 43 41 34 30 31 2c  801, 0x03ECA401,
1500: 20 30 78 30 33 45 45 43 38 31 30 2c 0a 20 20 20   0x03EEC810,.   
1510: 20 30 78 30 33 46 34 46 38 30 32 2c 20 30 78 30   0x03F4F802, 0x0
1520: 33 46 37 46 30 30 32 2c 20 30 78 30 33 46 38 30  3F7F002, 0x03F80
1530: 30 31 41 2c 20 30 78 30 33 46 38 38 30 30 37 2c  01A, 0x03F88007,
1540: 20 30 78 30 33 46 38 43 30 32 33 2c 0a 20 20 20   0x03F8C023,.   
1550: 20 30 78 30 33 46 39 35 30 31 33 2c 20 30 78 30   0x03F95013, 0x0
1560: 33 46 39 41 30 30 34 2c 20 30 78 30 33 46 42 46  3F9A004, 0x03FBF
1570: 43 30 31 2c 20 30 78 30 33 46 43 30 34 30 46 2c  C01, 0x03FC040F,
1580: 20 30 78 30 33 46 43 36 38 30 37 2c 0a 20 20 20   0x03FC6807,.   
1590: 20 30 78 30 33 46 43 45 43 30 36 2c 20 30 78 30   0x03FCEC06, 0x0
15a0: 33 46 44 36 43 30 42 2c 20 30 78 30 33 46 46 38  3FD6C0B, 0x03FF8
15b0: 30 30 37 2c 20 30 78 30 33 46 46 41 30 30 37 2c  007, 0x03FFA007,
15c0: 20 30 78 30 33 46 46 45 34 30 35 2c 0a 20 20 20   0x03FFE405,.   
15d0: 20 30 78 30 34 30 34 30 30 30 33 2c 20 30 78 30   0x04040003, 0x0
15e0: 34 30 34 44 43 30 39 2c 20 30 78 30 34 30 35 45  404DC09, 0x0405E
15f0: 34 31 31 2c 20 30 78 30 34 30 36 34 30 30 43 2c  411, 0x0406400C,
1600: 20 30 78 30 34 30 37 34 30 32 45 2c 0a 20 20 20   0x0407402E,.   
1610: 20 30 78 30 34 30 45 37 43 30 31 2c 20 30 78 30   0x040E7C01, 0x0
1620: 34 30 46 34 30 30 31 2c 20 30 78 30 34 32 31 35  40F4001, 0x04215
1630: 43 30 31 2c 20 30 78 30 34 32 34 37 43 30 31 2c  C01, 0x04247C01,
1640: 20 30 78 30 34 32 34 46 43 30 31 2c 0a 20 20 20   0x0424FC01,.   
1650: 20 30 78 30 34 32 38 30 34 30 33 2c 20 30 78 30   0x04280403, 0x0
1660: 34 32 38 31 34 30 32 2c 20 30 78 30 34 32 38 33  4281402, 0x04283
1670: 30 30 34 2c 20 30 78 30 34 32 38 45 30 30 33 2c  004, 0x0428E003,
1680: 20 30 78 30 34 32 38 46 43 30 31 2c 0a 20 20 20   0x0428FC01,.   
1690: 20 30 78 30 34 32 39 34 30 30 39 2c 20 30 78 30   0x04294009, 0x0
16a0: 34 32 39 46 43 30 31 2c 20 30 78 30 34 32 43 45  429FC01, 0x042CE
16b0: 34 30 37 2c 20 30 78 30 34 34 30 30 30 30 33 2c  407, 0x04400003,
16c0: 20 30 78 30 34 34 30 45 30 31 36 2c 0a 20 20 20   0x0440E016,.   
16d0: 20 30 78 30 34 34 32 30 30 30 33 2c 20 30 78 30   0x04420003, 0x0
16e0: 34 34 32 43 30 31 32 2c 20 30 78 30 34 34 34 30  442C012, 0x04440
16f0: 30 30 33 2c 20 30 78 30 34 34 34 39 43 30 45 2c  003, 0x04449C0E,
1700: 20 30 78 30 34 34 35 30 30 30 34 2c 0a 20 20 20   0x04450004,.   
1710: 20 30 78 30 34 34 36 30 30 30 33 2c 20 30 78 30   0x04460003, 0x0
1720: 34 34 36 43 43 30 45 2c 20 30 78 30 34 34 37 31  446CC0E, 0x04471
1730: 34 30 34 2c 20 30 78 30 34 35 41 41 43 30 44 2c  404, 0x045AAC0D,
1740: 20 30 78 30 34 39 31 43 30 30 34 2c 0a 20 20 20   0x0491C004,.   
1750: 20 30 78 30 35 42 44 34 34 32 45 2c 20 30 78 30   0x05BD442E, 0x0
1760: 35 42 45 33 43 30 34 2c 20 30 78 30 37 34 30 30  5BE3C04, 0x07400
1770: 30 46 36 2c 20 30 78 30 37 34 34 30 30 32 37 2c  0F6, 0x07440027,
1780: 20 30 78 30 37 34 34 41 34 42 35 2c 0a 20 20 20   0x0744A4B5,.   
1790: 20 30 78 30 37 34 38 30 30 34 36 2c 20 30 78 30   0x07480046, 0x0
17a0: 37 34 43 30 30 35 37 2c 20 30 78 30 37 35 42 30  74C0057, 0x075B0
17b0: 34 30 31 2c 20 30 78 30 37 35 42 36 43 30 31 2c  401, 0x075B6C01,
17c0: 20 30 78 30 37 35 42 45 43 30 31 2c 0a 20 20 20   0x075BEC01,.   
17d0: 20 30 78 30 37 35 43 35 34 30 31 2c 20 30 78 30   0x075C5401, 0x0
17e0: 37 35 43 44 34 30 31 2c 20 30 78 30 37 35 44 33  75CD401, 0x075D3
17f0: 43 30 31 2c 20 30 78 30 37 35 44 42 43 30 31 2c  C01, 0x075DBC01,
1800: 20 30 78 30 37 35 45 32 34 30 31 2c 0a 20 20 20   0x075E2401,.   
1810: 20 30 78 30 37 35 45 41 34 30 31 2c 20 30 78 30   0x075EA401, 0x0
1820: 37 35 46 30 43 30 31 2c 20 30 78 30 37 42 42 43  75F0C01, 0x07BBC
1830: 30 30 32 2c 20 30 78 30 37 43 30 30 30 32 43 2c  002, 0x07C0002C,
1840: 20 30 78 30 37 43 30 43 30 36 34 2c 0a 20 20 20   0x07C0C064,.   
1850: 20 30 78 30 37 43 32 38 30 30 46 2c 20 30 78 30   0x07C2800F, 0x0
1860: 37 43 32 43 34 30 45 2c 20 30 78 30 37 43 33 30  7C2C40E, 0x07C30
1870: 34 30 46 2c 20 30 78 30 37 43 33 34 34 30 46 2c  40F, 0x07C3440F,
1880: 20 30 78 30 37 43 34 34 30 31 46 2c 0a 20 20 20   0x07C4401F,.   
1890: 20 30 78 30 37 43 34 43 30 33 43 2c 20 30 78 30   0x07C4C03C, 0x0
18a0: 37 43 35 43 30 32 42 2c 20 30 78 30 37 43 37 39  7C5C02B, 0x07C79
18b0: 38 31 44 2c 20 30 78 30 37 43 38 34 30 32 42 2c  81D, 0x07C8402B,
18c0: 20 30 78 30 37 43 39 30 30 30 39 2c 0a 20 20 20   0x07C90009,.   
18d0: 20 30 78 30 37 43 39 34 30 30 32 2c 20 30 78 30   0x07C94002, 0x0
18e0: 37 43 43 30 30 32 31 2c 20 30 78 30 37 43 43 43  7CC0021, 0x07CCC
18f0: 30 30 36 2c 20 30 78 30 37 43 43 44 43 34 36 2c  006, 0x07CCDC46,
1900: 20 30 78 30 37 43 45 30 30 31 34 2c 0a 20 20 20   0x07CE0014,.   
1910: 20 30 78 30 37 43 45 38 30 32 35 2c 20 30 78 30   0x07CE8025, 0x0
1920: 37 43 46 31 38 30 35 2c 20 30 78 30 37 43 46 38  7CF1805, 0x07CF8
1930: 30 31 31 2c 20 30 78 30 37 44 30 30 30 33 46 2c  011, 0x07D0003F,
1940: 20 30 78 30 37 44 31 30 30 30 31 2c 0a 20 20 20   0x07D10001,.   
1950: 20 30 78 30 37 44 31 30 38 42 36 2c 20 30 78 30   0x07D108B6, 0x0
1960: 37 44 33 45 34 30 34 2c 20 30 78 30 37 44 34 30  7D3E404, 0x07D40
1970: 30 33 45 2c 20 30 78 30 37 44 35 30 30 30 34 2c  03E, 0x07D50004,
1980: 20 30 78 30 37 44 35 34 30 31 38 2c 0a 20 20 20   0x07D54018,.   
1990: 20 30 78 30 37 44 37 45 43 34 36 2c 20 30 78 30   0x07D7EC46, 0x0
19a0: 37 44 39 31 34 30 42 2c 20 30 78 30 37 44 41 30  7D9140B, 0x07DA0
19b0: 30 34 36 2c 20 30 78 30 37 44 43 30 30 37 34 2c  046, 0x07DC0074,
19c0: 20 30 78 33 38 30 30 30 34 30 31 2c 0a 20 20 20   0x38000401,.   
19d0: 20 30 78 33 38 30 30 38 30 36 30 2c 20 30 78 33   0x38008060, 0x3
19e0: 38 30 34 30 30 46 30 2c 20 30 78 33 43 30 30 30  80400F0, 0x3C000
19f0: 30 30 31 2c 20 30 78 33 46 46 46 46 34 30 31 2c  001, 0x3FFFF401,
1a00: 20 30 78 34 30 30 30 30 30 30 31 2c 0a 20 20 20   0x40000001,.   
1a10: 20 30 78 34 33 46 46 46 34 30 31 2c 0a 20 20 7d   0x43FFF401,.  }
1a20: 3b 0a 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74  ;.  static const
1a30: 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 61 41   unsigned int aA
1a40: 73 63 69 69 5b 34 5d 20 3d 20 7b 0a 20 20 20 20  scii[4] = {.    
1a50: 30 78 46 46 46 46 46 46 46 46 2c 20 30 78 46 43  0xFFFFFFFF, 0xFC
1a60: 30 30 46 46 46 46 2c 20 30 78 46 38 30 30 30 30  00FFFF, 0xF80000
1a70: 30 31 2c 20 30 78 46 38 30 30 30 30 30 31 2c 0a  01, 0xF8000001,.
1a80: 20 20 7d 3b 0a 0a 20 20 69 66 28 20 63 3c 31 32    };..  if( c<12
1a90: 38 20 29 7b 0a 20 20 20 20 72 65 74 75 72 6e 20  8 ){.    return 
1aa0: 28 20 28 61 41 73 63 69 69 5b 63 20 3e 3e 20 35  ( (aAscii[c >> 5
1ab0: 5d 20 26 20 28 31 20 3c 3c 20 28 63 20 26 20 30  ] & (1 << (c & 0
1ac0: 78 30 30 31 46 29 29 29 3d 3d 30 20 29 3b 0a 20  x001F)))==0 );. 
1ad0: 20 7d 65 6c 73 65 20 69 66 28 20 63 3c 28 31 3c   }else if( c<(1<
1ae0: 3c 32 32 29 20 29 7b 0a 20 20 20 20 75 6e 73 69  <22) ){.    unsi
1af0: 67 6e 65 64 20 69 6e 74 20 6b 65 79 20 3d 20 28  gned int key = (
1b00: 28 28 75 6e 73 69 67 6e 65 64 20 69 6e 74 29 63  ((unsigned int)c
1b10: 29 3c 3c 31 30 29 20 7c 20 30 78 30 30 30 30 30  )<<10) | 0x00000
1b20: 33 46 46 3b 0a 20 20 20 20 69 6e 74 20 69 52 65  3FF;.    int iRe
1b30: 73 3b 0a 20 20 20 20 69 6e 74 20 69 48 69 20 3d  s;.    int iHi =
1b40: 20 73 69 7a 65 6f 66 28 61 45 6e 74 72 79 29 2f   sizeof(aEntry)/
1b50: 73 69 7a 65 6f 66 28 61 45 6e 74 72 79 5b 30 5d  sizeof(aEntry[0]
1b60: 29 20 2d 20 31 3b 0a 20 20 20 20 69 6e 74 20 69  ) - 1;.    int i
1b70: 4c 6f 20 3d 20 30 3b 0a 20 20 20 20 77 68 69 6c  Lo = 0;.    whil
1b80: 65 28 20 69 48 69 3e 3d 69 4c 6f 20 29 7b 0a 20  e( iHi>=iLo ){. 
1b90: 20 20 20 20 20 69 6e 74 20 69 54 65 73 74 20 3d       int iTest =
1ba0: 20 28 69 48 69 20 2b 20 69 4c 6f 29 20 2f 20 32   (iHi + iLo) / 2
1bb0: 3b 0a 20 20 20 20 20 20 69 66 28 20 6b 65 79 20  ;.      if( key 
1bc0: 3e 3d 20 61 45 6e 74 72 79 5b 69 54 65 73 74 5d  >= aEntry[iTest]
1bd0: 20 29 7b 0a 20 20 20 20 20 20 20 20 69 52 65 73   ){.        iRes
1be0: 20 3d 20 69 54 65 73 74 3b 0a 20 20 20 20 20 20   = iTest;.      
1bf0: 20 20 69 4c 6f 20 3d 20 69 54 65 73 74 2b 31 3b    iLo = iTest+1;
1c00: 0a 20 20 20 20 20 20 7d 65 6c 73 65 7b 0a 20 20  .      }else{.  
1c10: 20 20 20 20 20 20 69 48 69 20 3d 20 69 54 65 73        iHi = iTes
1c20: 74 2d 31 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20  t-1;.      }.   
1c30: 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 20 61   }.    assert( a
1c40: 45 6e 74 72 79 5b 30 5d 3c 6b 65 79 20 29 3b 0a  Entry[0]<key );.
1c50: 20 20 20 20 61 73 73 65 72 74 28 20 6b 65 79 3e      assert( key>
1c60: 3d 61 45 6e 74 72 79 5b 69 52 65 73 5d 20 29 3b  =aEntry[iRes] );
1c70: 0a 20 20 20 20 72 65 74 75 72 6e 20 28 63 20 3e  .    return (c >
1c80: 3d 20 28 28 61 45 6e 74 72 79 5b 69 52 65 73 5d  = ((aEntry[iRes]
1c90: 3e 3e 31 30 29 20 2b 20 28 61 45 6e 74 72 79 5b  >>10) + (aEntry[
1ca0: 69 52 65 73 5d 26 30 78 33 46 46 29 29 29 3b 0a  iRes]&0x3FF)));.
1cb0: 20 20 7d 0a 20 20 72 65 74 75 72 6e 20 31 3b 0a    }.  return 1;.
1cc0: 7d 0a 0a 0a 2f 2a 0a 2a 2a 20 49 6e 74 65 72 70  }.../*.** Interp
1cd0: 72 65 74 20 74 68 65 20 61 72 67 75 6d 65 6e 74  ret the argument
1ce0: 20 61 73 20 61 20 75 6e 69 63 6f 64 65 20 63 6f   as a unicode co
1cf0: 64 65 70 6f 69 6e 74 2e 20 49 66 20 74 68 65 20  depoint. If the 
1d00: 63 6f 64 65 70 6f 69 6e 74 0a 2a 2a 20 69 73 20  codepoint.** is 
1d10: 61 6e 20 75 70 70 65 72 20 63 61 73 65 20 63 68  an upper case ch
1d20: 61 72 61 63 74 65 72 20 74 68 61 74 20 68 61 73  aracter that has
1d30: 20 61 20 6c 6f 77 65 72 20 63 61 73 65 20 65 71   a lower case eq
1d40: 75 69 76 61 6c 65 6e 74 2c 0a 2a 2a 20 72 65 74  uivalent,.** ret
1d50: 75 72 6e 20 74 68 65 20 63 6f 64 65 70 6f 69 6e  urn the codepoin
1d60: 74 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20  t corresponding 
1d70: 74 6f 20 74 68 65 20 6c 6f 77 65 72 20 63 61 73  to the lower cas
1d80: 65 20 76 65 72 73 69 6f 6e 2e 0a 2a 2a 20 4f 74  e version..** Ot
1d90: 68 65 72 77 69 73 65 2c 20 72 65 74 75 72 6e 20  herwise, return 
1da0: 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 61 72  a copy of the ar
1db0: 67 75 6d 65 6e 74 2e 0a 2a 2a 0a 2a 2a 20 54 68  gument..**.** Th
1dc0: 65 20 72 65 73 75 6c 74 73 20 61 72 65 20 75 6e  e results are un
1dd0: 64 65 66 69 6e 65 64 20 69 66 20 74 68 65 20 76  defined if the v
1de0: 61 6c 75 65 20 70 61 73 73 65 64 20 74 6f 20 74  alue passed to t
1df0: 68 69 73 20 66 75 6e 63 74 69 6f 6e 0a 2a 2a 20  his function.** 
1e00: 69 73 20 6c 65 73 73 20 74 68 61 6e 20 7a 65 72  is less than zer
1e10: 6f 2e 0a 2a 2f 0a 69 6e 74 20 73 71 6c 69 74 65  o..*/.int sqlite
1e20: 33 46 74 73 55 6e 69 63 6f 64 65 54 6f 6c 6f 77  3FtsUnicodeTolow
1e30: 65 72 28 69 6e 74 20 63 29 7b 0a 20 20 2f 2a 20  er(int c){.  /* 
1e40: 45 61 63 68 20 65 6e 74 72 79 20 69 6e 20 74 68  Each entry in th
1e50: 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 61 72 72 61  e following arra
1e60: 79 20 64 65 66 69 6e 65 73 20 61 20 72 75 6c 65  y defines a rule
1e70: 20 66 6f 72 20 66 6f 6c 64 69 6e 67 20 61 20 72   for folding a r
1e80: 61 6e 67 65 0a 20 20 2a 2a 20 6f 66 20 63 6f 64  ange.  ** of cod
1e90: 65 70 6f 69 6e 74 73 20 74 6f 20 6c 6f 77 65 72  epoints to lower
1ea0: 20 63 61 73 65 2e 20 54 68 65 20 72 75 6c 65 20   case. The rule 
1eb0: 61 70 70 6c 69 65 73 20 74 6f 20 61 20 72 61 6e  applies to a ran
1ec0: 67 65 20 6f 66 20 6e 52 61 6e 67 65 0a 20 20 2a  ge of nRange.  *
1ed0: 2a 20 63 6f 64 65 70 6f 69 6e 74 73 20 73 74 61  * codepoints sta
1ee0: 72 74 69 6e 67 20 61 74 20 63 6f 64 65 70 6f 69  rting at codepoi
1ef0: 6e 74 20 69 43 6f 64 65 2e 0a 20 20 2a 2a 0a 20  nt iCode..  **. 
1f00: 20 2a 2a 20 49 66 20 74 68 65 20 6c 65 61 73 74   ** If the least
1f10: 20 73 69 67 6e 69 66 69 63 61 6e 74 20 62 69 74   significant bit
1f20: 20 69 6e 20 66 6c 61 67 73 20 69 73 20 63 6c 65   in flags is cle
1f30: 61 72 2c 20 74 68 65 6e 20 74 68 65 20 72 75 6c  ar, then the rul
1f40: 65 20 61 70 70 6c 69 65 73 0a 20 20 2a 2a 20 74  e applies.  ** t
1f50: 6f 20 61 6c 6c 20 6e 52 61 6e 67 65 20 63 6f 64  o all nRange cod
1f60: 65 70 6f 69 6e 74 73 20 28 69 2e 65 2e 20 61 6c  epoints (i.e. al
1f70: 6c 20 6e 52 61 6e 67 65 20 63 6f 64 65 70 6f 69  l nRange codepoi
1f80: 6e 74 73 20 61 72 65 20 75 70 70 65 72 20 63 61  nts are upper ca
1f90: 73 65 20 61 6e 64 0a 20 20 2a 2a 20 6e 65 65 64  se and.  ** need
1fa0: 20 74 6f 20 62 65 20 66 6f 6c 64 65 64 29 2e 20   to be folded). 
1fb0: 4f 72 2c 20 69 66 20 69 74 20 69 73 20 73 65 74  Or, if it is set
1fc0: 2c 20 74 68 65 6e 20 74 68 65 20 72 75 6c 65 20  , then the rule 
1fd0: 6f 6e 6c 79 20 61 70 70 6c 69 65 73 20 74 6f 0a  only applies to.
1fe0: 20 20 2a 2a 20 65 76 65 72 79 20 73 65 63 6f 6e    ** every secon
1ff0: 64 20 63 6f 64 65 70 6f 69 6e 74 20 69 6e 20 74  d codepoint in t
2000: 68 65 20 72 61 6e 67 65 2c 20 73 74 61 72 74 69  he range, starti
2010: 6e 67 20 77 69 74 68 20 63 6f 64 65 70 6f 69 6e  ng with codepoin
2020: 74 20 43 2e 0a 20 20 2a 2a 0a 20 20 2a 2a 20 54  t C..  **.  ** T
2030: 68 65 20 37 20 6d 6f 73 74 20 73 69 67 6e 69 66  he 7 most signif
2040: 69 63 61 6e 74 20 62 69 74 73 20 69 6e 20 66 6c  icant bits in fl
2050: 61 67 73 20 61 72 65 20 61 6e 20 69 6e 64 65 78  ags are an index
2060: 20 69 6e 74 6f 20 74 68 65 20 61 69 4f 66 66 5b   into the aiOff[
2070: 5d 0a 20 20 2a 2a 20 61 72 72 61 79 2e 20 49 66  ].  ** array. If
2080: 20 61 20 73 70 65 63 69 66 69 63 20 63 6f 64 65   a specific code
2090: 70 6f 69 6e 74 20 43 20 64 6f 65 73 20 72 65 71  point C does req
20a0: 75 69 72 65 20 66 6f 6c 64 69 6e 67 2c 20 74 68  uire folding, th
20b0: 65 6e 20 69 74 73 20 6c 6f 77 65 72 0a 20 20 2a  en its lower.  *
20c0: 2a 20 63 61 73 65 20 65 71 75 69 76 61 6c 65 6e  * case equivalen
20d0: 74 20 69 73 20 28 28 43 20 2b 20 61 69 4f 66 66  t is ((C + aiOff
20e0: 5b 66 6c 61 67 73 3e 3e 31 5d 29 20 26 20 30 78  [flags>>1]) & 0x
20f0: 46 46 46 46 29 2e 0a 20 20 2a 2a 0a 20 20 2a 2a  FFFF)..  **.  **
2100: 20 54 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66   The contents of
2110: 20 74 68 69 73 20 61 72 72 61 79 20 61 72 65 20   this array are 
2120: 67 65 6e 65 72 61 74 65 64 20 62 79 20 70 61 72  generated by par
2130: 73 69 6e 67 20 74 68 65 20 43 61 73 65 46 6f 6c  sing the CaseFol
2140: 64 69 6e 67 2e 74 78 74 0a 20 20 2a 2a 20 66 69  ding.txt.  ** fi
2150: 6c 65 20 64 69 73 74 72 69 62 75 74 65 64 20 61  le distributed a
2160: 73 20 70 61 72 74 20 6f 66 20 74 68 65 20 22 55  s part of the "U
2170: 6e 69 63 6f 64 65 20 43 68 61 72 61 63 74 65 72  nicode Character
2180: 20 44 61 74 61 62 61 73 65 22 2e 20 53 65 65 0a   Database". See.
2190: 20 20 2a 2a 20 68 74 74 70 3a 2f 2f 77 77 77 2e    ** http://www.
21a0: 75 6e 69 63 6f 64 65 2e 6f 72 67 20 66 6f 72 20  unicode.org for 
21b0: 64 65 74 61 69 6c 73 2e 0a 20 20 2a 2f 0a 20 20  details..  */.  
21c0: 73 74 61 74 69 63 20 63 6f 6e 73 74 20 73 74 72  static const str
21d0: 75 63 74 20 54 61 62 6c 65 45 6e 74 72 79 20 7b  uct TableEntry {
21e0: 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 73 68  .    unsigned sh
21f0: 6f 72 74 20 69 43 6f 64 65 3b 0a 20 20 20 20 75  ort iCode;.    u
2200: 6e 73 69 67 6e 65 64 20 63 68 61 72 20 66 6c 61  nsigned char fla
2210: 67 73 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64  gs;.    unsigned
2220: 20 63 68 61 72 20 6e 52 61 6e 67 65 3b 0a 20 20   char nRange;.  
2230: 7d 20 61 45 6e 74 72 79 5b 5d 20 3d 20 7b 0a 20  } aEntry[] = {. 
2240: 20 20 20 7b 36 35 2c 20 31 34 2c 20 32 36 7d 2c     {65, 14, 26},
2250: 20 20 20 20 20 20 20 20 20 20 7b 31 38 31 2c 20            {181, 
2260: 36 34 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 20  64, 1},         
2270: 20 7b 31 39 32 2c 20 31 34 2c 20 32 33 7d 2c 0a   {192, 14, 23},.
2280: 20 20 20 20 7b 32 31 36 2c 20 31 34 2c 20 37 7d      {216, 14, 7}
2290: 2c 20 20 20 20 20 20 20 20 20 20 7b 32 35 36 2c  ,          {256,
22a0: 20 31 2c 20 34 38 7d 2c 20 20 20 20 20 20 20 20   1, 48},        
22b0: 20 20 7b 33 30 36 2c 20 31 2c 20 36 7d 2c 0a 20    {306, 1, 6},. 
22c0: 20 20 20 7b 33 31 33 2c 20 31 2c 20 31 36 7d 2c     {313, 1, 16},
22d0: 20 20 20 20 20 20 20 20 20 20 7b 33 33 30 2c 20            {330, 
22e0: 31 2c 20 34 36 7d 2c 20 20 20 20 20 20 20 20 20  1, 46},         
22f0: 20 7b 33 37 36 2c 20 31 31 36 2c 20 31 7d 2c 0a   {376, 116, 1},.
2300: 20 20 20 20 7b 33 37 37 2c 20 31 2c 20 36 7d 2c      {377, 1, 6},
2310: 20 20 20 20 20 20 20 20 20 20 20 7b 33 38 33 2c             {383,
2320: 20 31 30 34 2c 20 31 7d 2c 20 20 20 20 20 20 20   104, 1},       
2330: 20 20 7b 33 38 35 2c 20 35 30 2c 20 31 7d 2c 0a    {385, 50, 1},.
2340: 20 20 20 20 7b 33 38 36 2c 20 31 2c 20 34 7d 2c      {386, 1, 4},
2350: 20 20 20 20 20 20 20 20 20 20 20 7b 33 39 30 2c             {390,
2360: 20 34 34 2c 20 31 7d 2c 20 20 20 20 20 20 20 20   44, 1},        
2370: 20 20 7b 33 39 31 2c 20 30 2c 20 31 7d 2c 0a 20    {391, 0, 1},. 
2380: 20 20 20 7b 33 39 33 2c 20 34 32 2c 20 32 7d 2c     {393, 42, 2},
2390: 20 20 20 20 20 20 20 20 20 20 7b 33 39 35 2c 20            {395, 
23a0: 30 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 20 20  0, 1},          
23b0: 20 7b 33 39 38 2c 20 33 32 2c 20 31 7d 2c 0a 20   {398, 32, 1},. 
23c0: 20 20 20 7b 33 39 39 2c 20 33 38 2c 20 31 7d 2c     {399, 38, 1},
23d0: 20 20 20 20 20 20 20 20 20 20 7b 34 30 30 2c 20            {400, 
23e0: 34 30 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 20  40, 1},         
23f0: 20 7b 34 30 31 2c 20 30 2c 20 31 7d 2c 0a 20 20   {401, 0, 1},.  
2400: 20 20 7b 34 30 33 2c 20 34 32 2c 20 31 7d 2c 20    {403, 42, 1}, 
2410: 20 20 20 20 20 20 20 20 20 7b 34 30 34 2c 20 34           {404, 4
2420: 36 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 20 20  6, 1},          
2430: 7b 34 30 36 2c 20 35 32 2c 20 31 7d 2c 0a 20 20  {406, 52, 1},.  
2440: 20 20 7b 34 30 37 2c 20 34 38 2c 20 31 7d 2c 20    {407, 48, 1}, 
2450: 20 20 20 20 20 20 20 20 20 7b 34 30 38 2c 20 30           {408, 0
2460: 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 20 20 20  , 1},           
2470: 7b 34 31 32 2c 20 35 32 2c 20 31 7d 2c 0a 20 20  {412, 52, 1},.  
2480: 20 20 7b 34 31 33 2c 20 35 34 2c 20 31 7d 2c 20    {413, 54, 1}, 
2490: 20 20 20 20 20 20 20 20 20 7b 34 31 35 2c 20 35           {415, 5
24a0: 36 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 20 20  6, 1},          
24b0: 7b 34 31 36 2c 20 31 2c 20 36 7d 2c 0a 20 20 20  {416, 1, 6},.   
24c0: 20 7b 34 32 32 2c 20 36 30 2c 20 31 7d 2c 20 20   {422, 60, 1},  
24d0: 20 20 20 20 20 20 20 20 7b 34 32 33 2c 20 30 2c          {423, 0,
24e0: 20 31 7d 2c 20 20 20 20 20 20 20 20 20 20 20 7b   1},           {
24f0: 34 32 35 2c 20 36 30 2c 20 31 7d 2c 0a 20 20 20  425, 60, 1},.   
2500: 20 7b 34 32 38 2c 20 30 2c 20 31 7d 2c 20 20 20   {428, 0, 1},   
2510: 20 20 20 20 20 20 20 20 7b 34 33 30 2c 20 36 30          {430, 60
2520: 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 20 20 7b  , 1},          {
2530: 34 33 31 2c 20 30 2c 20 31 7d 2c 0a 20 20 20 20  431, 0, 1},.    
2540: 7b 34 33 33 2c 20 35 38 2c 20 32 7d 2c 20 20 20  {433, 58, 2},   
2550: 20 20 20 20 20 20 20 7b 34 33 35 2c 20 31 2c 20         {435, 1, 
2560: 34 7d 2c 20 20 20 20 20 20 20 20 20 20 20 7b 34  4},           {4
2570: 33 39 2c 20 36 32 2c 20 31 7d 2c 0a 20 20 20 20  39, 62, 1},.    
2580: 7b 34 34 30 2c 20 30 2c 20 31 7d 2c 20 20 20 20  {440, 0, 1},    
2590: 20 20 20 20 20 20 20 7b 34 34 34 2c 20 30 2c 20         {444, 0, 
25a0: 31 7d 2c 20 20 20 20 20 20 20 20 20 20 20 7b 34  1},           {4
25b0: 35 32 2c 20 32 2c 20 31 7d 2c 0a 20 20 20 20 7b  52, 2, 1},.    {
25c0: 34 35 33 2c 20 30 2c 20 31 7d 2c 20 20 20 20 20  453, 0, 1},     
25d0: 20 20 20 20 20 20 7b 34 35 35 2c 20 32 2c 20 31        {455, 2, 1
25e0: 7d 2c 20 20 20 20 20 20 20 20 20 20 20 7b 34 35  },           {45
25f0: 36 2c 20 30 2c 20 31 7d 2c 0a 20 20 20 20 7b 34  6, 0, 1},.    {4
2600: 35 38 2c 20 32 2c 20 31 7d 2c 20 20 20 20 20 20  58, 2, 1},      
2610: 20 20 20 20 20 7b 34 35 39 2c 20 31 2c 20 31 38       {459, 1, 18
2620: 7d 2c 20 20 20 20 20 20 20 20 20 20 7b 34 37 38  },          {478
2630: 2c 20 31 2c 20 31 38 7d 2c 0a 20 20 20 20 7b 34  , 1, 18},.    {4
2640: 39 37 2c 20 32 2c 20 31 7d 2c 20 20 20 20 20 20  97, 2, 1},      
2650: 20 20 20 20 20 7b 34 39 38 2c 20 31 2c 20 34 7d       {498, 1, 4}
2660: 2c 20 20 20 20 20 20 20 20 20 20 20 7b 35 30 32  ,           {502
2670: 2c 20 31 32 32 2c 20 31 7d 2c 0a 20 20 20 20 7b  , 122, 1},.    {
2680: 35 30 33 2c 20 31 33 34 2c 20 31 7d 2c 20 20 20  503, 134, 1},   
2690: 20 20 20 20 20 20 7b 35 30 34 2c 20 31 2c 20 34        {504, 1, 4
26a0: 30 7d 2c 20 20 20 20 20 20 20 20 20 20 7b 35 34  0},          {54
26b0: 34 2c 20 31 31 30 2c 20 31 7d 2c 0a 20 20 20 20  4, 110, 1},.    
26c0: 7b 35 34 36 2c 20 31 2c 20 31 38 7d 2c 20 20 20  {546, 1, 18},   
26d0: 20 20 20 20 20 20 20 7b 35 37 30 2c 20 37 30 2c         {570, 70,
26e0: 20 31 7d 2c 20 20 20 20 20 20 20 20 20 20 7b 35   1},          {5
26f0: 37 31 2c 20 30 2c 20 31 7d 2c 0a 20 20 20 20 7b  71, 0, 1},.    {
2700: 35 37 33 2c 20 31 30 38 2c 20 31 7d 2c 20 20 20  573, 108, 1},   
2710: 20 20 20 20 20 20 7b 35 37 34 2c 20 36 38 2c 20        {574, 68, 
2720: 31 7d 2c 20 20 20 20 20 20 20 20 20 20 7b 35 37  1},          {57
2730: 37 2c 20 30 2c 20 31 7d 2c 0a 20 20 20 20 7b 35  7, 0, 1},.    {5
2740: 37 39 2c 20 31 30 36 2c 20 31 7d 2c 20 20 20 20  79, 106, 1},    
2750: 20 20 20 20 20 7b 35 38 30 2c 20 32 38 2c 20 31       {580, 28, 1
2760: 7d 2c 20 20 20 20 20 20 20 20 20 20 7b 35 38 31  },          {581
2770: 2c 20 33 30 2c 20 31 7d 2c 0a 20 20 20 20 7b 35  , 30, 1},.    {5
2780: 38 32 2c 20 31 2c 20 31 30 7d 2c 20 20 20 20 20  82, 1, 10},     
2790: 20 20 20 20 20 7b 38 33 37 2c 20 33 36 2c 20 31       {837, 36, 1
27a0: 7d 2c 20 20 20 20 20 20 20 20 20 20 7b 38 38 30  },          {880
27b0: 2c 20 31 2c 20 34 7d 2c 0a 20 20 20 20 7b 38 38  , 1, 4},.    {88
27c0: 36 2c 20 30 2c 20 31 7d 2c 20 20 20 20 20 20 20  6, 0, 1},       
27d0: 20 20 20 20 7b 39 30 32 2c 20 31 38 2c 20 31 7d      {902, 18, 1}
27e0: 2c 20 20 20 20 20 20 20 20 20 20 7b 39 30 34 2c  ,          {904,
27f0: 20 31 36 2c 20 33 7d 2c 0a 20 20 20 20 7b 39 30   16, 3},.    {90
2800: 38 2c 20 32 36 2c 20 31 7d 2c 20 20 20 20 20 20  8, 26, 1},      
2810: 20 20 20 20 7b 39 31 30 2c 20 32 34 2c 20 32 7d      {910, 24, 2}
2820: 2c 20 20 20 20 20 20 20 20 20 20 7b 39 31 33 2c  ,          {913,
2830: 20 31 34 2c 20 31 37 7d 2c 0a 20 20 20 20 7b 39   14, 17},.    {9
2840: 33 31 2c 20 31 34 2c 20 39 7d 2c 20 20 20 20 20  31, 14, 9},     
2850: 20 20 20 20 20 7b 39 36 32 2c 20 30 2c 20 31 7d       {962, 0, 1}
2860: 2c 20 20 20 20 20 20 20 20 20 20 20 7b 39 37 35  ,           {975
2870: 2c 20 34 2c 20 31 7d 2c 0a 20 20 20 20 7b 39 37  , 4, 1},.    {97
2880: 36 2c 20 31 34 30 2c 20 31 7d 2c 20 20 20 20 20  6, 140, 1},     
2890: 20 20 20 20 7b 39 37 37 2c 20 31 34 32 2c 20 31      {977, 142, 1
28a0: 7d 2c 20 20 20 20 20 20 20 20 20 7b 39 38 31 2c  },         {981,
28b0: 20 31 34 36 2c 20 31 7d 2c 0a 20 20 20 20 7b 39   146, 1},.    {9
28c0: 38 32 2c 20 31 34 34 2c 20 31 7d 2c 20 20 20 20  82, 144, 1},    
28d0: 20 20 20 20 20 7b 39 38 34 2c 20 31 2c 20 32 34       {984, 1, 24
28e0: 7d 2c 20 20 20 20 20 20 20 20 20 20 7b 31 30 30  },          {100
28f0: 38 2c 20 31 33 36 2c 20 31 7d 2c 0a 20 20 20 20  8, 136, 1},.    
2900: 7b 31 30 30 39 2c 20 31 33 38 2c 20 31 7d 2c 20  {1009, 138, 1}, 
2910: 20 20 20 20 20 20 20 7b 31 30 31 32 2c 20 31 33         {1012, 13
2920: 30 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 7b 31  0, 1},        {1
2930: 30 31 33 2c 20 31 32 38 2c 20 31 7d 2c 0a 20 20  013, 128, 1},.  
2940: 20 20 7b 31 30 31 35 2c 20 30 2c 20 31 7d 2c 20    {1015, 0, 1}, 
2950: 20 20 20 20 20 20 20 20 20 7b 31 30 31 37 2c 20           {1017, 
2960: 31 35 32 2c 20 31 7d 2c 20 20 20 20 20 20 20 20  152, 1},        
2970: 7b 31 30 31 38 2c 20 30 2c 20 31 7d 2c 0a 20 20  {1018, 0, 1},.  
2980: 20 20 7b 31 30 32 31 2c 20 31 31 30 2c 20 33 7d    {1021, 110, 3}
2990: 2c 20 20 20 20 20 20 20 20 7b 31 30 32 34 2c 20  ,        {1024, 
29a0: 33 34 2c 20 31 36 7d 2c 20 20 20 20 20 20 20 20  34, 16},        
29b0: 7b 31 30 34 30 2c 20 31 34 2c 20 33 32 7d 2c 0a  {1040, 14, 32},.
29c0: 20 20 20 20 7b 31 31 32 30 2c 20 31 2c 20 33 34      {1120, 1, 34
29d0: 7d 2c 20 20 20 20 20 20 20 20 20 7b 31 31 36 32  },         {1162
29e0: 2c 20 31 2c 20 35 34 7d 2c 20 20 20 20 20 20 20  , 1, 54},       
29f0: 20 20 7b 31 32 31 36 2c 20 36 2c 20 31 7d 2c 0a    {1216, 6, 1},.
2a00: 20 20 20 20 7b 31 32 31 37 2c 20 31 2c 20 31 34      {1217, 1, 14
2a10: 7d 2c 20 20 20 20 20 20 20 20 20 7b 31 32 33 32  },         {1232
2a20: 2c 20 31 2c 20 38 38 7d 2c 20 20 20 20 20 20 20  , 1, 88},       
2a30: 20 20 7b 31 33 32 39 2c 20 32 32 2c 20 33 38 7d    {1329, 22, 38}
2a40: 2c 0a 20 20 20 20 7b 34 32 35 36 2c 20 36 36 2c  ,.    {4256, 66,
2a50: 20 33 38 7d 2c 20 20 20 20 20 20 20 20 7b 34 32   38},        {42
2a60: 39 35 2c 20 36 36 2c 20 31 7d 2c 20 20 20 20 20  95, 66, 1},     
2a70: 20 20 20 20 7b 34 33 30 31 2c 20 36 36 2c 20 31      {4301, 66, 1
2a80: 7d 2c 0a 20 20 20 20 7b 37 36 38 30 2c 20 31 2c  },.    {7680, 1,
2a90: 20 31 35 30 7d 2c 20 20 20 20 20 20 20 20 7b 37   150},        {7
2aa0: 38 33 35 2c 20 31 33 32 2c 20 31 7d 2c 20 20 20  835, 132, 1},   
2ab0: 20 20 20 20 20 7b 37 38 33 38 2c 20 39 36 2c 20       {7838, 96, 
2ac0: 31 7d 2c 0a 20 20 20 20 7b 37 38 34 30 2c 20 31  1},.    {7840, 1
2ad0: 2c 20 39 36 7d 2c 20 20 20 20 20 20 20 20 20 7b  , 96},         {
2ae0: 37 39 34 34 2c 20 31 35 30 2c 20 38 7d 2c 20 20  7944, 150, 8},  
2af0: 20 20 20 20 20 20 7b 37 39 36 30 2c 20 31 35 30        {7960, 150
2b00: 2c 20 36 7d 2c 0a 20 20 20 20 7b 37 39 37 36 2c  , 6},.    {7976,
2b10: 20 31 35 30 2c 20 38 7d 2c 20 20 20 20 20 20 20   150, 8},       
2b20: 20 7b 37 39 39 32 2c 20 31 35 30 2c 20 38 7d 2c   {7992, 150, 8},
2b30: 20 20 20 20 20 20 20 20 7b 38 30 30 38 2c 20 31          {8008, 1
2b40: 35 30 2c 20 36 7d 2c 0a 20 20 20 20 7b 38 30 32  50, 6},.    {802
2b50: 35 2c 20 31 35 31 2c 20 38 7d 2c 20 20 20 20 20  5, 151, 8},     
2b60: 20 20 20 7b 38 30 34 30 2c 20 31 35 30 2c 20 38     {8040, 150, 8
2b70: 7d 2c 20 20 20 20 20 20 20 20 7b 38 30 37 32 2c  },        {8072,
2b80: 20 31 35 30 2c 20 38 7d 2c 0a 20 20 20 20 7b 38   150, 8},.    {8
2b90: 30 38 38 2c 20 31 35 30 2c 20 38 7d 2c 20 20 20  088, 150, 8},   
2ba0: 20 20 20 20 20 7b 38 31 30 34 2c 20 31 35 30 2c       {8104, 150,
2bb0: 20 38 7d 2c 20 20 20 20 20 20 20 20 7b 38 31 32   8},        {812
2bc0: 30 2c 20 31 35 30 2c 20 32 7d 2c 0a 20 20 20 20  0, 150, 2},.    
2bd0: 7b 38 31 32 32 2c 20 31 32 36 2c 20 32 7d 2c 20  {8122, 126, 2}, 
2be0: 20 20 20 20 20 20 20 7b 38 31 32 34 2c 20 31 34         {8124, 14
2bf0: 38 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 7b 38  8, 1},        {8
2c00: 31 32 36 2c 20 31 30 30 2c 20 31 7d 2c 0a 20 20  126, 100, 1},.  
2c10: 20 20 7b 38 31 33 36 2c 20 31 32 34 2c 20 34 7d    {8136, 124, 4}
2c20: 2c 20 20 20 20 20 20 20 20 7b 38 31 34 30 2c 20  ,        {8140, 
2c30: 31 34 38 2c 20 31 7d 2c 20 20 20 20 20 20 20 20  148, 1},        
2c40: 7b 38 31 35 32 2c 20 31 35 30 2c 20 32 7d 2c 0a  {8152, 150, 2},.
2c50: 20 20 20 20 7b 38 31 35 34 2c 20 31 32 30 2c 20      {8154, 120, 
2c60: 32 7d 2c 20 20 20 20 20 20 20 20 7b 38 31 36 38  2},        {8168
2c70: 2c 20 31 35 30 2c 20 32 7d 2c 20 20 20 20 20 20  , 150, 2},      
2c80: 20 20 7b 38 31 37 30 2c 20 31 31 38 2c 20 32 7d    {8170, 118, 2}
2c90: 2c 0a 20 20 20 20 7b 38 31 37 32 2c 20 31 35 32  ,.    {8172, 152
2ca0: 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 7b 38 31  , 1},        {81
2cb0: 38 34 2c 20 31 31 32 2c 20 32 7d 2c 20 20 20 20  84, 112, 2},    
2cc0: 20 20 20 20 7b 38 31 38 36 2c 20 31 31 34 2c 20      {8186, 114, 
2cd0: 32 7d 2c 0a 20 20 20 20 7b 38 31 38 38 2c 20 31  2},.    {8188, 1
2ce0: 34 38 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 7b  48, 1},        {
2cf0: 38 34 38 36 2c 20 39 38 2c 20 31 7d 2c 20 20 20  8486, 98, 1},   
2d00: 20 20 20 20 20 20 7b 38 34 39 30 2c 20 39 32 2c        {8490, 92,
2d10: 20 31 7d 2c 0a 20 20 20 20 7b 38 34 39 31 2c 20   1},.    {8491, 
2d20: 39 34 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 20  94, 1},         
2d30: 7b 38 34 39 38 2c 20 31 32 2c 20 31 7d 2c 20 20  {8498, 12, 1},  
2d40: 20 20 20 20 20 20 20 7b 38 35 34 34 2c 20 38 2c         {8544, 8,
2d50: 20 31 36 7d 2c 0a 20 20 20 20 7b 38 35 37 39 2c   16},.    {8579,
2d60: 20 30 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 20   0, 1},         
2d70: 20 7b 39 33 39 38 2c 20 31 30 2c 20 32 36 7d 2c   {9398, 10, 26},
2d80: 20 20 20 20 20 20 20 20 7b 31 31 32 36 34 2c 20          {11264, 
2d90: 32 32 2c 20 34 37 7d 2c 0a 20 20 20 20 7b 31 31  22, 47},.    {11
2da0: 33 36 30 2c 20 30 2c 20 31 7d 2c 20 20 20 20 20  360, 0, 1},     
2db0: 20 20 20 20 7b 31 31 33 36 32 2c 20 38 38 2c 20      {11362, 88, 
2dc0: 31 7d 2c 20 20 20 20 20 20 20 20 7b 31 31 33 36  1},        {1136
2dd0: 33 2c 20 31 30 32 2c 20 31 7d 2c 0a 20 20 20 20  3, 102, 1},.    
2de0: 7b 31 31 33 36 34 2c 20 39 30 2c 20 31 7d 2c 20  {11364, 90, 1}, 
2df0: 20 20 20 20 20 20 20 7b 31 31 33 36 37 2c 20 31         {11367, 1
2e00: 2c 20 36 7d 2c 20 20 20 20 20 20 20 20 20 7b 31  , 6},         {1
2e10: 31 33 37 33 2c 20 38 34 2c 20 31 7d 2c 0a 20 20  1373, 84, 1},.  
2e20: 20 20 7b 31 31 33 37 34 2c 20 38 36 2c 20 31 7d    {11374, 86, 1}
2e30: 2c 20 20 20 20 20 20 20 20 7b 31 31 33 37 35 2c  ,        {11375,
2e40: 20 38 30 2c 20 31 7d 2c 20 20 20 20 20 20 20 20   80, 1},        
2e50: 7b 31 31 33 37 36 2c 20 38 32 2c 20 31 7d 2c 0a  {11376, 82, 1},.
2e60: 20 20 20 20 7b 31 31 33 37 38 2c 20 30 2c 20 31      {11378, 0, 1
2e70: 7d 2c 20 20 20 20 20 20 20 20 20 7b 31 31 33 38  },         {1138
2e80: 31 2c 20 30 2c 20 31 7d 2c 20 20 20 20 20 20 20  1, 0, 1},       
2e90: 20 20 7b 31 31 33 39 30 2c 20 37 38 2c 20 32 7d    {11390, 78, 2}
2ea0: 2c 0a 20 20 20 20 7b 31 31 33 39 32 2c 20 31 2c  ,.    {11392, 1,
2eb0: 20 31 30 30 7d 2c 20 20 20 20 20 20 20 7b 31 31   100},       {11
2ec0: 34 39 39 2c 20 31 2c 20 34 7d 2c 20 20 20 20 20  499, 1, 4},     
2ed0: 20 20 20 20 7b 31 31 35 30 36 2c 20 30 2c 20 31      {11506, 0, 1
2ee0: 7d 2c 0a 20 20 20 20 7b 34 32 35 36 30 2c 20 31  },.    {42560, 1
2ef0: 2c 20 34 36 7d 2c 20 20 20 20 20 20 20 20 7b 34  , 46},        {4
2f00: 32 36 32 34 2c 20 31 2c 20 32 34 7d 2c 20 20 20  2624, 1, 24},   
2f10: 20 20 20 20 20 7b 34 32 37 38 36 2c 20 31 2c 20       {42786, 1, 
2f20: 31 34 7d 2c 0a 20 20 20 20 7b 34 32 38 30 32 2c  14},.    {42802,
2f30: 20 31 2c 20 36 32 7d 2c 20 20 20 20 20 20 20 20   1, 62},        
2f40: 7b 34 32 38 37 33 2c 20 31 2c 20 34 7d 2c 20 20  {42873, 1, 4},  
2f50: 20 20 20 20 20 20 20 7b 34 32 38 37 37 2c 20 37         {42877, 7
2f60: 36 2c 20 31 7d 2c 0a 20 20 20 20 7b 34 32 38 37  6, 1},.    {4287
2f70: 38 2c 20 31 2c 20 31 30 7d 2c 20 20 20 20 20 20  8, 1, 10},      
2f80: 20 20 7b 34 32 38 39 31 2c 20 30 2c 20 31 7d 2c    {42891, 0, 1},
2f90: 20 20 20 20 20 20 20 20 20 7b 34 32 38 39 33 2c           {42893,
2fa0: 20 37 34 2c 20 31 7d 2c 0a 20 20 20 20 7b 34 32   74, 1},.    {42
2fb0: 38 39 36 2c 20 31 2c 20 34 7d 2c 20 20 20 20 20  896, 1, 4},     
2fc0: 20 20 20 20 7b 34 32 39 31 32 2c 20 31 2c 20 31      {42912, 1, 1
2fd0: 30 7d 2c 20 20 20 20 20 20 20 20 7b 34 32 39 32  0},        {4292
2fe0: 32 2c 20 37 32 2c 20 31 7d 2c 0a 20 20 20 20 7b  2, 72, 1},.    {
2ff0: 36 35 33 31 33 2c 20 31 34 2c 20 32 36 7d 2c 20  65313, 14, 26}, 
3000: 20 20 20 20 20 20 0a 20 20 7d 3b 0a 20 20 73 74        .  };.  st
3010: 61 74 69 63 20 63 6f 6e 73 74 20 75 6e 73 69 67  atic const unsig
3020: 6e 65 64 20 73 68 6f 72 74 20 61 69 4f 66 66 5b  ned short aiOff[
3030: 5d 20 3d 20 7b 0a 20 20 20 31 2c 20 20 20 20 20  ] = {.   1,     
3040: 32 2c 20 20 20 20 20 38 2c 20 20 20 20 20 31 35  2,     8,     15
3050: 2c 20 20 20 20 31 36 2c 20 20 20 20 32 36 2c 20  ,    16,    26, 
3060: 20 20 20 32 38 2c 20 20 20 20 33 32 2c 20 20 20     28,    32,   
3070: 20 0a 20 20 20 33 37 2c 20 20 20 20 33 38 2c 20   .   37,    38, 
3080: 20 20 20 34 30 2c 20 20 20 20 34 38 2c 20 20 20     40,    48,   
3090: 20 36 33 2c 20 20 20 20 36 34 2c 20 20 20 20 36   63,    64,    6
30a0: 39 2c 20 20 20 20 37 31 2c 20 20 20 20 0a 20 20  9,    71,    .  
30b0: 20 37 39 2c 20 20 20 20 38 30 2c 20 20 20 20 31   79,    80,    1
30c0: 31 36 2c 20 20 20 32 30 32 2c 20 20 20 32 30 33  16,   202,   203
30d0: 2c 20 20 20 32 30 35 2c 20 20 20 32 30 36 2c 20  ,   205,   206, 
30e0: 20 20 32 30 37 2c 20 20 20 0a 20 20 20 32 30 39    207,   .   209
30f0: 2c 20 20 20 32 31 30 2c 20 20 20 32 31 31 2c 20  ,   210,   211, 
3100: 20 20 32 31 33 2c 20 20 20 32 31 34 2c 20 20 20    213,   214,   
3110: 32 31 37 2c 20 20 20 32 31 38 2c 20 20 20 32 31  217,   218,   21
3120: 39 2c 20 20 20 0a 20 20 20 37 37 35 2c 20 20 20  9,   .   775,   
3130: 37 32 36 34 2c 20 20 31 30 37 39 32 2c 20 31 30  7264,  10792, 10
3140: 37 39 35 2c 20 32 33 32 32 38 2c 20 32 33 32 35  795, 23228, 2325
3150: 36 2c 20 33 30 32 30 34 2c 20 35 34 37 32 31 2c  6, 30204, 54721,
3160: 20 0a 20 20 20 35 34 37 35 33 2c 20 35 34 37 35   .   54753, 5475
3170: 34 2c 20 35 34 37 35 36 2c 20 35 34 37 38 37 2c  4, 54756, 54787,
3180: 20 35 34 37 39 33 2c 20 35 34 38 30 39 2c 20 35   54793, 54809, 5
3190: 37 31 35 33 2c 20 35 37 32 37 34 2c 20 0a 20 20  7153, 57274, .  
31a0: 20 35 37 39 32 31 2c 20 35 38 30 31 39 2c 20 35   57921, 58019, 5
31b0: 38 33 36 33 2c 20 36 31 37 32 32 2c 20 36 35 32  8363, 61722, 652
31c0: 36 38 2c 20 36 35 33 34 31 2c 20 36 35 33 37 33  68, 65341, 65373
31d0: 2c 20 36 35 34 30 36 2c 20 0a 20 20 20 36 35 34  , 65406, .   654
31e0: 30 38 2c 20 36 35 34 31 30 2c 20 36 35 34 31 35  08, 65410, 65415
31f0: 2c 20 36 35 34 32 34 2c 20 36 35 34 33 36 2c 20  , 65424, 65436, 
3200: 36 35 34 33 39 2c 20 36 35 34 35 30 2c 20 36 35  65439, 65450, 65
3210: 34 36 32 2c 20 0a 20 20 20 36 35 34 37 32 2c 20  462, .   65472, 
3220: 36 35 34 37 36 2c 20 36 35 34 37 38 2c 20 36 35  65476, 65478, 65
3230: 34 38 30 2c 20 36 35 34 38 32 2c 20 36 35 34 38  480, 65482, 6548
3240: 38 2c 20 36 35 35 30 36 2c 20 36 35 35 31 31 2c  8, 65506, 65511,
3250: 20 0a 20 20 20 36 35 35 31 34 2c 20 36 35 35 32   .   65514, 6552
3260: 31 2c 20 36 35 35 32 37 2c 20 36 35 35 32 38 2c  1, 65527, 65528,
3270: 20 36 35 35 32 39 2c 20 0a 20 20 7d 3b 0a 0a 20   65529, .  };.. 
3280: 20 69 6e 74 20 72 65 74 20 3d 20 63 3b 0a 0a 20   int ret = c;.. 
3290: 20 61 73 73 65 72 74 28 20 63 3e 3d 30 20 29 3b   assert( c>=0 );
32a0: 0a 20 20 61 73 73 65 72 74 28 20 73 69 7a 65 6f  .  assert( sizeo
32b0: 66 28 75 6e 73 69 67 6e 65 64 20 73 68 6f 72 74  f(unsigned short
32c0: 29 3d 3d 32 20 26 26 20 73 69 7a 65 6f 66 28 75  )==2 && sizeof(u
32d0: 6e 73 69 67 6e 65 64 20 63 68 61 72 29 3d 3d 31  nsigned char)==1
32e0: 20 29 3b 0a 0a 20 20 69 66 28 20 63 3c 31 32 38   );..  if( c<128
32f0: 20 29 7b 0a 20 20 20 20 69 66 28 20 63 3e 3d 27   ){.    if( c>='
3300: 41 27 20 26 26 20 63 3c 3d 27 5a 27 20 29 20 72  A' && c<='Z' ) r
3310: 65 74 20 3d 20 63 20 2b 20 28 27 61 27 20 2d 20  et = c + ('a' - 
3320: 27 41 27 29 3b 0a 20 20 7d 65 6c 73 65 20 69 66  'A');.  }else if
3330: 28 20 63 3c 36 35 35 33 36 20 29 7b 0a 20 20 20  ( c<65536 ){.   
3340: 20 69 6e 74 20 69 48 69 20 3d 20 73 69 7a 65 6f   int iHi = sizeo
3350: 66 28 61 45 6e 74 72 79 29 2f 73 69 7a 65 6f 66  f(aEntry)/sizeof
3360: 28 61 45 6e 74 72 79 5b 30 5d 29 20 2d 20 31 3b  (aEntry[0]) - 1;
3370: 0a 20 20 20 20 69 6e 74 20 69 4c 6f 20 3d 20 30  .    int iLo = 0
3380: 3b 0a 20 20 20 20 69 6e 74 20 69 52 65 73 20 3d  ;.    int iRes =
3390: 20 2d 31 3b 0a 0a 20 20 20 20 77 68 69 6c 65 28   -1;..    while(
33a0: 20 69 48 69 3e 3d 69 4c 6f 20 29 7b 0a 20 20 20   iHi>=iLo ){.   
33b0: 20 20 20 69 6e 74 20 69 54 65 73 74 20 3d 20 28     int iTest = (
33c0: 69 48 69 20 2b 20 69 4c 6f 29 20 2f 20 32 3b 0a  iHi + iLo) / 2;.
33d0: 20 20 20 20 20 20 69 6e 74 20 63 6d 70 20 3d 20        int cmp = 
33e0: 28 63 20 2d 20 61 45 6e 74 72 79 5b 69 54 65 73  (c - aEntry[iTes
33f0: 74 5d 2e 69 43 6f 64 65 29 3b 0a 20 20 20 20 20  t].iCode);.     
3400: 20 69 66 28 20 63 6d 70 3e 3d 30 20 29 7b 0a 20   if( cmp>=0 ){. 
3410: 20 20 20 20 20 20 20 69 52 65 73 20 3d 20 69 54         iRes = iT
3420: 65 73 74 3b 0a 20 20 20 20 20 20 20 20 69 4c 6f  est;.        iLo
3430: 20 3d 20 69 54 65 73 74 2b 31 3b 0a 20 20 20 20   = iTest+1;.    
3440: 20 20 7d 65 6c 73 65 7b 0a 20 20 20 20 20 20 20    }else{.       
3450: 20 69 48 69 20 3d 20 69 54 65 73 74 2d 31 3b 0a   iHi = iTest-1;.
3460: 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20        }.    }.  
3470: 20 20 61 73 73 65 72 74 28 20 69 52 65 73 3c 30    assert( iRes<0
3480: 20 7c 7c 20 63 3e 3d 61 45 6e 74 72 79 5b 69 52   || c>=aEntry[iR
3490: 65 73 5d 2e 69 43 6f 64 65 20 29 3b 0a 0a 20 20  es].iCode );..  
34a0: 20 20 69 66 28 20 69 52 65 73 3e 3d 30 20 29 7b    if( iRes>=0 ){
34b0: 0a 20 20 20 20 20 20 63 6f 6e 73 74 20 73 74 72  .      const str
34c0: 75 63 74 20 54 61 62 6c 65 45 6e 74 72 79 20 2a  uct TableEntry *
34d0: 70 20 3d 20 26 61 45 6e 74 72 79 5b 69 52 65 73  p = &aEntry[iRes
34e0: 5d 3b 0a 20 20 20 20 20 20 69 66 28 20 63 3c 28  ];.      if( c<(
34f0: 70 2d 3e 69 43 6f 64 65 20 2b 20 70 2d 3e 6e 52  p->iCode + p->nR
3500: 61 6e 67 65 29 20 26 26 20 30 3d 3d 28 30 78 30  ange) && 0==(0x0
3510: 31 20 26 20 70 2d 3e 66 6c 61 67 73 20 26 20 28  1 & p->flags & (
3520: 70 2d 3e 69 43 6f 64 65 20 5e 20 63 29 29 20 29  p->iCode ^ c)) )
3530: 7b 0a 20 20 20 20 20 20 20 20 72 65 74 20 3d 20  {.        ret = 
3540: 28 63 20 2b 20 28 61 69 4f 66 66 5b 70 2d 3e 66  (c + (aiOff[p->f
3550: 6c 61 67 73 3e 3e 31 5d 29 29 20 26 20 30 78 30  lags>>1])) & 0x0
3560: 30 30 30 46 46 46 46 3b 0a 20 20 20 20 20 20 20  000FFFF;.       
3570: 20 61 73 73 65 72 74 28 20 72 65 74 3e 30 20 29   assert( ret>0 )
3580: 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a  ;.      }.    }.
3590: 20 20 7d 0a 20 20 0a 20 20 65 6c 73 65 20 69 66    }.  .  else if
35a0: 28 20 63 3e 3d 36 36 35 36 30 20 26 26 20 63 3c  ( c>=66560 && c<
35b0: 36 36 36 30 30 20 29 7b 0a 20 20 20 20 72 65 74  66600 ){.    ret
35c0: 20 3d 20 63 20 2b 20 34 30 3b 0a 20 20 7d 0a 0a   = c + 40;.  }..
35d0: 20 20 72 65 74 75 72 6e 20 72 65 74 3b 0a 7d 0a    return ret;.}.
35e0: 23 65 6e 64 69 66 20 2f 2a 20 69 66 6e 64 65 66  #endif /* ifndef
35f0: 20 53 51 4c 49 54 45 5f 44 49 53 41 42 4c 45 5f   SQLITE_DISABLE_
3600: 46 54 53 33 5f 55 4e 49 43 4f 44 45 20 2a 2f 0a  FTS3_UNICODE */.