/ Hex Artifact Content
Login

Artifact 3ddf1728a396a03b5a73ff0f11ecfd2009de117d:


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: 20 21 64 65 66 69 6e 65 64 28 53 51 4c 49 54 45   !defined(SQLITE
01c0: 5f 44 49 53 41 42 4c 45 5f 46 54 53 33 5f 55 4e  _DISABLE_FTS3_UN
01d0: 49 43 4f 44 45 29 0a 23 69 66 20 64 65 66 69 6e  ICODE).#if defin
01e0: 65 64 28 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45  ed(SQLITE_ENABLE
01f0: 5f 46 54 53 33 29 20 7c 7c 20 64 65 66 69 6e 65  _FTS3) || define
0200: 64 28 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f  d(SQLITE_ENABLE_
0210: 46 54 53 34 29 0a 0a 23 69 6e 63 6c 75 64 65 20  FTS4)..#include 
0220: 3c 61 73 73 65 72 74 2e 68 3e 0a 0a 2f 2a 0a 2a  <assert.h>../*.*
0230: 2a 20 52 65 74 75 72 6e 20 74 72 75 65 20 69 66  * Return true if
0240: 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 63 6f   the argument co
0250: 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 61 20 75  rresponds to a u
0260: 6e 69 63 6f 64 65 20 63 6f 64 65 70 6f 69 6e 74  nicode codepoint
0270: 0a 2a 2a 20 63 6c 61 73 73 69 66 69 65 64 20 61  .** classified a
0280: 73 20 65 69 74 68 65 72 20 61 20 6c 65 74 74 65  s either a lette
0290: 72 20 6f 72 20 61 20 6e 75 6d 62 65 72 2e 20 4f  r or a number. O
02a0: 74 68 65 72 77 69 73 65 20 66 61 6c 73 65 2e 0a  therwise false..
02b0: 2a 2a 0a 2a 2a 20 54 68 65 20 72 65 73 75 6c 74  **.** The result
02c0: 73 20 61 72 65 20 75 6e 64 65 66 69 6e 65 64 20  s are undefined 
02d0: 69 66 20 74 68 65 20 76 61 6c 75 65 20 70 61 73  if the value pas
02e0: 73 65 64 20 74 6f 20 74 68 69 73 20 66 75 6e 63  sed to this func
02f0: 74 69 6f 6e 0a 2a 2a 20 69 73 20 6c 65 73 73 20  tion.** is less 
0300: 74 68 61 6e 20 7a 65 72 6f 2e 0a 2a 2f 0a 69 6e  than zero..*/.in
0310: 74 20 73 71 6c 69 74 65 33 46 74 73 55 6e 69 63  t sqlite3FtsUnic
0320: 6f 64 65 49 73 61 6c 6e 75 6d 28 69 6e 74 20 63  odeIsalnum(int c
0330: 29 7b 0a 20 20 2f 2a 20 45 61 63 68 20 75 6e 73  ){.  /* Each uns
0340: 69 67 6e 65 64 20 69 6e 74 65 67 65 72 20 69 6e  igned integer in
0350: 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 61   the following a
0360: 72 72 61 79 20 63 6f 72 72 65 73 70 6f 6e 64 73  rray corresponds
0370: 20 74 6f 20 61 20 63 6f 6e 74 69 67 75 6f 75 73   to a contiguous
0380: 0a 20 20 2a 2a 20 72 61 6e 67 65 20 6f 66 20 75  .  ** range of u
0390: 6e 69 63 6f 64 65 20 63 6f 64 65 70 6f 69 6e 74  nicode codepoint
03a0: 73 20 74 68 61 74 20 61 72 65 20 6e 6f 74 20 65  s that are not e
03b0: 69 74 68 65 72 20 6c 65 74 74 65 72 73 20 6f 72  ither letters or
03c0: 20 6e 75 6d 62 65 72 73 20 28 69 2e 65 2e 0a 20   numbers (i.e.. 
03d0: 20 2a 2a 20 63 6f 64 65 70 6f 69 6e 74 73 20 66   ** codepoints f
03e0: 6f 72 20 77 68 69 63 68 20 74 68 69 73 20 66 75  or which this fu
03f0: 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 72 65  nction should re
0400: 74 75 72 6e 20 30 29 2e 0a 20 20 2a 2a 0a 20 20  turn 0)..  **.  
0410: 2a 2a 20 54 68 65 20 6d 6f 73 74 20 73 69 67 6e  ** The most sign
0420: 69 66 69 63 61 6e 74 20 32 32 20 62 69 74 73 20  ificant 22 bits 
0430: 69 6e 20 65 61 63 68 20 33 32 2d 62 69 74 20 76  in each 32-bit v
0440: 61 6c 75 65 20 63 6f 6e 74 61 69 6e 20 74 68 65  alue contain the
0450: 20 66 69 72 73 74 20 0a 20 20 2a 2a 20 63 6f 64   first .  ** cod
0460: 65 70 6f 69 6e 74 20 69 6e 20 74 68 65 20 72 61  epoint in the ra
0470: 6e 67 65 2e 20 54 68 65 20 6c 65 61 73 74 20 73  nge. The least s
0480: 69 67 6e 69 66 69 63 61 6e 74 20 31 30 20 62 69  ignificant 10 bi
0490: 74 73 20 61 72 65 20 75 73 65 64 20 74 6f 20 73  ts are used to s
04a0: 74 6f 72 65 0a 20 20 2a 2a 20 74 68 65 20 73 69  tore.  ** the si
04b0: 7a 65 20 6f 66 20 74 68 65 20 72 61 6e 67 65 20  ze of the range 
04c0: 28 61 6c 77 61 79 73 20 61 74 20 6c 65 61 73 74  (always at least
04d0: 20 31 29 2e 20 49 6e 20 6f 74 68 65 72 20 77 6f   1). In other wo
04e0: 72 64 73 2c 20 74 68 65 20 76 61 6c 75 65 20 0a  rds, the value .
04f0: 20 20 2a 2a 20 28 28 43 3c 3c 32 32 29 20 2b 20    ** ((C<<22) + 
0500: 4e 29 20 72 65 70 72 65 73 65 6e 74 73 20 61 20  N) represents a 
0510: 72 61 6e 67 65 20 6f 66 20 4e 20 63 6f 64 65 70  range of N codep
0520: 6f 69 6e 74 73 20 73 74 61 72 74 69 6e 67 20 77  oints starting w
0530: 69 74 68 20 63 6f 64 65 70 6f 69 6e 74 20 0a 20  ith codepoint . 
0540: 20 2a 2a 20 43 2e 20 49 74 20 69 73 20 6e 6f 74   ** C. It is not
0550: 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 72 65 70   possible to rep
0560: 72 65 73 65 6e 74 20 61 20 72 61 6e 67 65 20 6c  resent a range l
0570: 61 72 67 65 72 20 74 68 61 6e 20 31 30 32 33 20  arger than 1023 
0580: 63 6f 64 65 70 6f 69 6e 74 73 20 0a 20 20 2a 2a  codepoints .  **
0590: 20 75 73 69 6e 67 20 74 68 69 73 20 66 6f 72 6d   using this form
05a0: 61 74 2e 0a 20 20 2a 2f 0a 20 20 63 6f 6e 73 74  at..  */.  const
05b0: 20 73 74 61 74 69 63 20 75 6e 73 69 67 6e 65 64   static unsigned
05c0: 20 69 6e 74 20 61 45 6e 74 72 79 5b 5d 20 3d 20   int aEntry[] = 
05d0: 7b 0a 20 20 20 20 30 78 30 30 30 30 30 30 33 30  {.    0x00000030
05e0: 2c 20 30 78 30 30 30 30 45 38 30 37 2c 20 30 78  , 0x0000E807, 0x
05f0: 30 30 30 31 36 43 30 36 2c 20 30 78 30 30 30 31  00016C06, 0x0001
0600: 45 43 32 46 2c 20 30 78 30 30 30 32 41 43 30 37  EC2F, 0x0002AC07
0610: 2c 0a 20 20 20 20 30 78 30 30 30 32 44 30 30 31  ,.    0x0002D001
0620: 2c 20 30 78 30 30 30 32 44 38 30 33 2c 20 30 78  , 0x0002D803, 0x
0630: 30 30 30 32 45 43 30 31 2c 20 30 78 30 30 30 32  0002EC01, 0x0002
0640: 46 43 30 31 2c 20 30 78 30 30 30 33 35 43 30 31  FC01, 0x00035C01
0650: 2c 0a 20 20 20 20 30 78 30 30 30 33 44 43 30 31  ,.    0x0003DC01
0660: 2c 20 30 78 30 30 30 42 30 38 30 34 2c 20 30 78  , 0x000B0804, 0x
0670: 30 30 30 42 34 38 30 45 2c 20 30 78 30 30 30 42  000B480E, 0x000B
0680: 39 34 30 37 2c 20 30 78 30 30 30 42 42 34 30 31  9407, 0x000BB401
0690: 2c 0a 20 20 20 20 30 78 30 30 30 42 42 43 38 31  ,.    0x000BBC81
06a0: 2c 20 30 78 30 30 30 44 44 34 30 31 2c 20 30 78  , 0x000DD401, 0x
06b0: 30 30 30 44 46 38 30 31 2c 20 30 78 30 30 30 45  000DF801, 0x000E
06c0: 31 30 30 32 2c 20 30 78 30 30 30 45 31 43 30 31  1002, 0x000E1C01
06d0: 2c 0a 20 20 20 20 30 78 30 30 30 46 44 38 30 31  ,.    0x000FD801
06e0: 2c 20 30 78 30 30 31 32 30 38 30 38 2c 20 30 78  , 0x00120808, 0x
06f0: 30 30 31 35 36 38 30 36 2c 20 30 78 30 30 31 36  00156806, 0x0016
0700: 32 34 30 32 2c 20 30 78 30 30 31 36 33 43 30 31  2402, 0x00163C01
0710: 2c 0a 20 20 20 20 30 78 30 30 31 36 34 34 33 37  ,.    0x00164437
0720: 2c 20 30 78 30 30 31 37 43 43 30 32 2c 20 30 78  , 0x0017CC02, 0x
0730: 30 30 31 38 30 30 30 35 2c 20 30 78 30 30 31 38  00180005, 0x0018
0740: 31 38 31 36 2c 20 30 78 30 30 31 38 37 38 30 32  1816, 0x00187802
0750: 2c 0a 20 20 20 20 30 78 30 30 31 39 32 43 31 35  ,.    0x00192C15
0760: 2c 20 30 78 30 30 31 39 41 38 30 34 2c 20 30 78  , 0x0019A804, 0x
0770: 30 30 31 39 43 30 30 31 2c 20 30 78 30 30 31 42  0019C001, 0x001B
0780: 35 30 30 31 2c 20 30 78 30 30 31 42 35 38 30 46  5001, 0x001B580F
0790: 2c 0a 20 20 20 20 30 78 30 30 31 42 39 43 30 37  ,.    0x001B9C07
07a0: 2c 20 30 78 30 30 31 42 46 34 30 32 2c 20 30 78  , 0x001BF402, 0x
07b0: 30 30 31 43 30 30 30 45 2c 20 30 78 30 30 31 43  001C000E, 0x001C
07c0: 33 43 30 31 2c 20 30 78 30 30 31 43 34 34 30 31  3C01, 0x001C4401
07d0: 2c 0a 20 20 20 20 30 78 30 30 31 43 43 30 31 42  ,.    0x001CC01B
07e0: 2c 20 30 78 30 30 31 45 39 38 30 42 2c 20 30 78  , 0x001E980B, 0x
07f0: 30 30 31 46 41 43 30 39 2c 20 30 78 30 30 31 46  001FAC09, 0x001F
0800: 44 38 30 34 2c 20 30 78 30 30 32 30 35 38 30 34  D804, 0x00205804
0810: 2c 0a 20 20 20 20 30 78 30 30 32 30 36 43 30 39  ,.    0x00206C09
0820: 2c 20 30 78 30 30 32 30 39 34 30 33 2c 20 30 78  , 0x00209403, 0x
0830: 30 30 32 30 41 34 30 35 2c 20 30 78 30 30 32 30  0020A405, 0x0020
0840: 43 30 30 46 2c 20 30 78 30 30 32 31 36 34 30 33  C00F, 0x00216403
0850: 2c 0a 20 20 20 20 30 78 30 30 32 31 37 38 30 31  ,.    0x00217801
0860: 2c 20 30 78 30 30 32 33 39 30 31 42 2c 20 30 78  , 0x0023901B, 0x
0870: 30 30 32 34 30 30 30 34 2c 20 30 78 30 30 32 34  00240004, 0x0024
0880: 45 38 30 33 2c 20 30 78 30 30 32 34 46 38 31 32  E803, 0x0024F812
0890: 2c 0a 20 20 20 20 30 78 30 30 32 35 34 34 30 37  ,.    0x00254407
08a0: 2c 20 30 78 30 30 32 35 38 38 30 34 2c 20 30 78  , 0x00258804, 0x
08b0: 30 30 32 35 43 30 30 31 2c 20 30 78 30 30 32 36  0025C001, 0x0026
08c0: 30 34 30 33 2c 20 30 78 30 30 32 36 46 30 30 31  0403, 0x0026F001
08d0: 2c 0a 20 20 20 20 30 78 30 30 32 36 46 38 30 37  ,.    0x0026F807
08e0: 2c 20 30 78 30 30 32 37 31 43 30 32 2c 20 30 78  , 0x00271C02, 0x
08f0: 30 30 32 37 32 43 30 33 2c 20 30 78 30 30 32 37  00272C03, 0x0027
0900: 35 43 30 31 2c 20 30 78 30 30 32 37 38 38 30 32  5C01, 0x00278802
0910: 2c 0a 20 20 20 20 30 78 30 30 32 37 43 38 30 32  ,.    0x0027C802
0920: 2c 20 30 78 30 30 32 37 45 38 30 32 2c 20 30 78  , 0x0027E802, 0x
0930: 30 30 32 38 30 34 30 33 2c 20 30 78 30 30 32 38  00280403, 0x0028
0940: 46 30 30 31 2c 20 30 78 30 30 32 38 46 38 30 35  F001, 0x0028F805
0950: 2c 0a 20 20 20 20 30 78 30 30 32 39 31 43 30 32  ,.    0x00291C02
0960: 2c 20 30 78 30 30 32 39 32 43 30 33 2c 20 30 78  , 0x00292C03, 0x
0970: 30 30 32 39 34 34 30 31 2c 20 30 78 30 30 32 39  00294401, 0x0029
0980: 43 30 30 32 2c 20 30 78 30 30 32 39 44 34 30 31  C002, 0x0029D401
0990: 2c 0a 20 20 20 20 30 78 30 30 32 41 30 34 30 33  ,.    0x002A0403
09a0: 2c 20 30 78 30 30 32 41 46 30 30 31 2c 20 30 78  , 0x002AF001, 0x
09b0: 30 30 32 41 46 38 30 38 2c 20 30 78 30 30 32 42  002AF808, 0x002B
09c0: 31 43 30 33 2c 20 30 78 30 30 32 42 32 43 30 33  1C03, 0x002B2C03
09d0: 2c 0a 20 20 20 20 30 78 30 30 32 42 38 38 30 32  ,.    0x002B8802
09e0: 2c 20 30 78 30 30 32 42 43 30 30 32 2c 20 30 78  , 0x002BC002, 0x
09f0: 30 30 32 43 30 34 30 33 2c 20 30 78 30 30 32 43  002C0403, 0x002C
0a00: 46 30 30 31 2c 20 30 78 30 30 32 43 46 38 30 37  F001, 0x002CF807
0a10: 2c 0a 20 20 20 20 30 78 30 30 32 44 31 43 30 32  ,.    0x002D1C02
0a20: 2c 20 30 78 30 30 32 44 32 43 30 33 2c 20 30 78  , 0x002D2C03, 0x
0a30: 30 30 32 44 35 38 30 32 2c 20 30 78 30 30 32 44  002D5802, 0x002D
0a40: 38 38 30 32 2c 20 30 78 30 30 32 44 43 30 30 31  8802, 0x002DC001
0a50: 2c 0a 20 20 20 20 30 78 30 30 32 45 30 38 30 31  ,.    0x002E0801
0a60: 2c 20 30 78 30 30 32 45 46 38 30 35 2c 20 30 78  , 0x002EF805, 0x
0a70: 30 30 32 46 31 38 30 33 2c 20 30 78 30 30 32 46  002F1803, 0x002F
0a80: 32 38 30 34 2c 20 30 78 30 30 32 46 35 43 30 31  2804, 0x002F5C01
0a90: 2c 0a 20 20 20 20 30 78 30 30 32 46 43 43 30 38  ,.    0x002FCC08
0aa0: 2c 20 30 78 30 30 33 30 30 34 30 33 2c 20 30 78  , 0x00300403, 0x
0ab0: 30 30 33 30 46 38 30 37 2c 20 30 78 30 30 33 31  0030F807, 0x0031
0ac0: 31 38 30 33 2c 20 30 78 30 30 33 31 32 38 30 34  1803, 0x00312804
0ad0: 2c 0a 20 20 20 20 30 78 30 30 33 31 35 34 30 32  ,.    0x00315402
0ae0: 2c 20 30 78 30 30 33 31 38 38 30 32 2c 20 30 78  , 0x00318802, 0x
0af0: 30 30 33 31 46 43 30 31 2c 20 30 78 30 30 33 32  0031FC01, 0x0032
0b00: 30 38 30 32 2c 20 30 78 30 30 33 32 46 30 30 31  0802, 0x0032F001
0b10: 2c 0a 20 20 20 20 30 78 30 30 33 32 46 38 30 37  ,.    0x0032F807
0b20: 2c 20 30 78 30 30 33 33 31 38 30 33 2c 20 30 78  , 0x00331803, 0x
0b30: 30 30 33 33 32 38 30 34 2c 20 30 78 30 30 33 33  00332804, 0x0033
0b40: 35 34 30 32 2c 20 30 78 30 30 33 33 38 38 30 32  5402, 0x00338802
0b50: 2c 0a 20 20 20 20 30 78 30 30 33 34 30 38 30 32  ,.    0x00340802
0b60: 2c 20 30 78 30 30 33 34 46 38 30 37 2c 20 30 78  , 0x0034F807, 0x
0b70: 30 30 33 35 31 38 30 33 2c 20 30 78 30 30 33 35  00351803, 0x0035
0b80: 32 38 30 34 2c 20 30 78 30 30 33 35 35 43 30 31  2804, 0x00355C01
0b90: 2c 0a 20 20 20 20 30 78 30 30 33 35 38 38 30 32  ,.    0x00358802
0ba0: 2c 20 30 78 30 30 33 35 45 34 30 31 2c 20 30 78  , 0x0035E401, 0x
0bb0: 30 30 33 36 30 38 30 32 2c 20 30 78 30 30 33 37  00360802, 0x0037
0bc0: 32 38 30 31 2c 20 30 78 30 30 33 37 33 43 30 36  2801, 0x00373C06
0bd0: 2c 0a 20 20 20 20 30 78 30 30 33 37 35 38 30 31  ,.    0x00375801
0be0: 2c 20 30 78 30 30 33 37 36 30 30 38 2c 20 30 78  , 0x00376008, 0x
0bf0: 30 30 33 37 43 38 30 33 2c 20 30 78 30 30 33 38  0037C803, 0x0038
0c00: 43 34 30 31 2c 20 30 78 30 30 33 38 44 30 30 37  C401, 0x0038D007
0c10: 2c 0a 20 20 20 20 30 78 30 30 33 38 46 43 30 31  ,.    0x0038FC01
0c20: 2c 20 30 78 30 30 33 39 31 43 30 39 2c 20 30 78  , 0x00391C09, 0x
0c30: 30 30 33 39 36 38 30 32 2c 20 30 78 30 30 33 41  00396802, 0x003A
0c40: 43 34 30 31 2c 20 30 78 30 30 33 41 44 30 30 36  C401, 0x003AD006
0c50: 2c 0a 20 20 20 20 30 78 30 30 33 41 45 43 30 32  ,.    0x003AEC02
0c60: 2c 20 30 78 30 30 33 42 32 30 30 36 2c 20 30 78  , 0x003B2006, 0x
0c70: 30 30 33 43 30 34 31 46 2c 20 30 78 30 30 33 43  003C041F, 0x003C
0c80: 44 30 30 43 2c 20 30 78 30 30 33 44 43 34 31 37  D00C, 0x003DC417
0c90: 2c 0a 20 20 20 20 30 78 30 30 33 45 33 34 30 42  ,.    0x003E340B
0ca0: 2c 20 30 78 30 30 33 45 36 34 32 34 2c 20 30 78  , 0x003E6424, 0x
0cb0: 30 30 33 45 46 38 30 46 2c 20 30 78 30 30 33 46  003EF80F, 0x003F
0cc0: 33 38 30 44 2c 20 30 78 30 30 34 30 41 43 31 34  380D, 0x0040AC14
0cd0: 2c 0a 20 20 20 20 30 78 30 30 34 31 32 38 30 36  ,.    0x00412806
0ce0: 2c 20 30 78 30 30 34 31 35 38 30 34 2c 20 30 78  , 0x00415804, 0x
0cf0: 30 30 34 31 37 38 30 33 2c 20 30 78 30 30 34 31  00417803, 0x0041
0d00: 38 38 30 33 2c 20 30 78 30 30 34 31 39 43 30 37  8803, 0x00419C07
0d10: 2c 0a 20 20 20 20 30 78 30 30 34 31 43 34 30 34  ,.    0x0041C404
0d20: 2c 20 30 78 30 30 34 32 30 38 30 43 2c 20 30 78  , 0x0042080C, 0x
0d30: 30 30 34 32 33 43 30 31 2c 20 30 78 30 30 34 32  00423C01, 0x0042
0d40: 36 38 30 36 2c 20 30 78 30 30 34 33 45 43 30 31  6806, 0x0043EC01
0d50: 2c 0a 20 20 20 20 30 78 30 30 34 44 37 34 30 43  ,.    0x004D740C
0d60: 2c 20 30 78 30 30 34 45 34 30 30 41 2c 20 30 78  , 0x004E400A, 0x
0d70: 30 30 35 30 30 30 30 31 2c 20 30 78 30 30 35 39  00500001, 0x0059
0d80: 42 34 30 32 2c 20 30 78 30 30 35 41 30 30 30 31  B402, 0x005A0001
0d90: 2c 0a 20 20 20 20 30 78 30 30 35 41 36 43 30 32  ,.    0x005A6C02
0da0: 2c 20 30 78 30 30 35 42 41 43 30 33 2c 20 30 78  , 0x005BAC03, 0x
0db0: 30 30 35 43 34 38 30 33 2c 20 30 78 30 30 35 43  005C4803, 0x005C
0dc0: 43 38 30 35 2c 20 30 78 30 30 35 44 34 38 30 32  C805, 0x005D4802
0dd0: 2c 0a 20 20 20 20 30 78 30 30 35 44 43 38 30 32  ,.    0x005DC802
0de0: 2c 20 30 78 30 30 35 45 44 30 32 33 2c 20 30 78  , 0x005ED023, 0x
0df0: 30 30 35 46 36 30 30 34 2c 20 30 78 30 30 35 46  005F6004, 0x005F
0e00: 37 34 30 31 2c 20 30 78 30 30 36 30 30 30 30 46  7401, 0x0060000F
0e10: 2c 0a 20 20 20 20 30 78 30 30 36 32 41 34 30 31  ,.    0x0062A401
0e20: 2c 20 30 78 30 30 36 34 38 30 30 43 2c 20 30 78  , 0x0064800C, 0x
0e30: 30 30 36 34 43 30 30 43 2c 20 30 78 30 30 36 35  0064C00C, 0x0065
0e40: 30 30 30 31 2c 20 30 78 30 30 36 35 31 30 30 32  0001, 0x00651002
0e50: 2c 0a 20 20 20 20 30 78 30 30 36 36 43 30 31 31  ,.    0x0066C011
0e60: 2c 20 30 78 30 30 36 37 32 30 30 32 2c 20 30 78  , 0x00672002, 0x
0e70: 30 30 36 37 37 38 32 32 2c 20 30 78 30 30 36 38  00677822, 0x0068
0e80: 35 43 30 35 2c 20 30 78 30 30 36 38 37 38 30 32  5C05, 0x00687802
0e90: 2c 0a 20 20 20 20 30 78 30 30 36 39 35 34 30 41  ,.    0x0069540A
0ea0: 2c 20 30 78 30 30 36 39 38 30 31 44 2c 20 30 78  , 0x0069801D, 0x
0eb0: 30 30 36 39 46 43 30 31 2c 20 30 78 30 30 36 41  0069FC01, 0x006A
0ec0: 38 30 30 37 2c 20 30 78 30 30 36 41 41 30 30 36  8007, 0x006AA006
0ed0: 2c 0a 20 20 20 20 30 78 30 30 36 43 30 30 30 35  ,.    0x006C0005
0ee0: 2c 20 30 78 30 30 36 43 44 30 31 31 2c 20 30 78  , 0x006CD011, 0x
0ef0: 30 30 36 44 36 38 32 33 2c 20 30 78 30 30 36 45  006D6823, 0x006E
0f00: 30 30 30 33 2c 20 30 78 30 30 36 45 38 34 30 44  0003, 0x006E840D
0f10: 2c 0a 20 20 20 20 30 78 30 30 36 46 39 38 30 45  ,.    0x006F980E
0f20: 2c 20 30 78 30 30 36 46 46 30 30 34 2c 20 30 78  , 0x006FF004, 0x
0f30: 30 30 37 30 39 30 31 34 2c 20 30 78 30 30 37 30  00709014, 0x0070
0f40: 45 43 30 35 2c 20 30 78 30 30 37 31 46 38 30 32  EC05, 0x0071F802
0f50: 2c 0a 20 20 20 20 30 78 30 30 37 33 30 30 30 38  ,.    0x00730008
0f60: 2c 20 30 78 30 30 37 33 34 30 31 39 2c 20 30 78  , 0x00734019, 0x
0f70: 30 30 37 33 42 34 30 31 2c 20 30 78 30 30 37 33  0073B401, 0x0073
0f80: 43 38 30 33 2c 20 30 78 30 30 37 37 30 30 32 37  C803, 0x00770027
0f90: 2c 0a 20 20 20 20 30 78 30 30 37 37 46 30 30 34  ,.    0x0077F004
0fa0: 2c 20 30 78 30 30 37 45 46 34 30 31 2c 20 30 78  , 0x007EF401, 0x
0fb0: 30 30 37 45 46 43 30 33 2c 20 30 78 30 30 37 46  007EFC03, 0x007F
0fc0: 33 34 30 33 2c 20 30 78 30 30 37 46 37 34 30 33  3403, 0x007F7403
0fd0: 2c 0a 20 20 20 20 30 78 30 30 37 46 42 34 30 33  ,.    0x007FB403
0fe0: 2c 20 30 78 30 30 37 46 46 34 30 32 2c 20 30 78  , 0x007FF402, 0x
0ff0: 30 30 38 30 30 30 36 35 2c 20 30 78 30 30 38 31  00800065, 0x0081
1000: 41 38 30 36 2c 20 30 78 30 30 38 31 45 38 30 35  A806, 0x0081E805
1010: 2c 0a 20 20 20 20 30 78 30 30 38 32 32 38 30 35  ,.    0x00822805
1020: 2c 20 30 78 30 30 38 32 38 30 31 41 2c 20 30 78  , 0x0082801A, 0x
1030: 30 30 38 33 34 30 32 31 2c 20 30 78 30 30 38 34  00834021, 0x0084
1040: 30 30 30 32 2c 20 30 78 30 30 38 34 30 43 30 34  0002, 0x00840C04
1050: 2c 0a 20 20 20 20 30 78 30 30 38 34 32 30 30 32  ,.    0x00842002
1060: 2c 20 30 78 30 30 38 34 35 30 30 31 2c 20 30 78  , 0x00845001, 0x
1070: 30 30 38 34 35 38 30 33 2c 20 30 78 30 30 38 34  00845803, 0x0084
1080: 37 38 30 36 2c 20 30 78 30 30 38 34 39 34 30 31  7806, 0x00849401
1090: 2c 0a 20 20 20 20 30 78 30 30 38 34 39 43 30 31  ,.    0x00849C01
10a0: 2c 20 30 78 30 30 38 34 41 34 30 31 2c 20 30 78  , 0x0084A401, 0x
10b0: 30 30 38 34 42 38 30 31 2c 20 30 78 30 30 38 34  0084B801, 0x0084
10c0: 45 38 30 32 2c 20 30 78 30 30 38 35 30 30 30 35  E802, 0x00850005
10d0: 2c 0a 20 20 20 20 30 78 30 30 38 35 32 38 30 34  ,.    0x00852804
10e0: 2c 20 30 78 30 30 38 35 33 43 30 31 2c 20 30 78  , 0x00853C01, 0x
10f0: 30 30 38 36 34 32 36 34 2c 20 30 78 30 30 39 30  00864264, 0x0090
1100: 30 30 32 37 2c 20 30 78 30 30 39 31 30 30 30 42  0027, 0x0091000B
1110: 2c 0a 20 20 20 20 30 78 30 30 39 32 37 30 34 45  ,.    0x0092704E
1120: 2c 20 30 78 30 30 39 34 30 32 30 30 2c 20 30 78  , 0x00940200, 0x
1130: 30 30 39 43 30 34 37 35 2c 20 30 78 30 30 39 45  009C0475, 0x009E
1140: 35 33 42 39 2c 20 30 78 30 30 41 44 34 30 30 41  53B9, 0x00AD400A
1150: 2c 0a 20 20 20 20 30 78 30 30 42 33 39 34 30 36  ,.    0x00B39406
1160: 2c 20 30 78 30 30 42 33 42 43 30 33 2c 20 30 78  , 0x00B3BC03, 0x
1170: 30 30 42 33 45 34 30 34 2c 20 30 78 30 30 42 33  00B3E404, 0x00B3
1180: 46 38 30 32 2c 20 30 78 30 30 42 35 43 30 30 31  F802, 0x00B5C001
1190: 2c 0a 20 20 20 20 30 78 30 30 42 35 46 43 30 31  ,.    0x00B5FC01
11a0: 2c 20 30 78 30 30 42 37 38 30 34 46 2c 20 30 78  , 0x00B7804F, 0x
11b0: 30 30 42 38 43 30 30 43 2c 20 30 78 30 30 42 41  00B8C00C, 0x00BA
11c0: 30 30 31 41 2c 20 30 78 30 30 42 41 36 43 35 39  001A, 0x00BA6C59
11d0: 2c 0a 20 20 20 20 30 78 30 30 42 43 30 30 44 36  ,.    0x00BC00D6
11e0: 2c 20 30 78 30 30 42 46 43 30 30 43 2c 20 30 78  , 0x00BFC00C, 0x
11f0: 30 30 43 30 30 30 30 35 2c 20 30 78 30 30 43 30  00C00005, 0x00C0
1200: 32 30 31 39 2c 20 30 78 30 30 43 30 41 38 30 37  2019, 0x00C0A807
1210: 2c 0a 20 20 20 20 30 78 30 30 43 30 44 38 30 32  ,.    0x00C0D802
1220: 2c 20 30 78 30 30 43 30 46 34 30 33 2c 20 30 78  , 0x00C0F403, 0x
1230: 30 30 43 32 36 34 30 34 2c 20 30 78 30 30 43 32  00C26404, 0x00C2
1240: 38 30 30 31 2c 20 30 78 30 30 43 33 45 43 30 31  8001, 0x00C3EC01
1250: 2c 0a 20 20 20 20 30 78 30 30 43 36 34 30 30 32  ,.    0x00C64002
1260: 2c 20 30 78 30 30 43 36 35 38 30 41 2c 20 30 78  , 0x00C6580A, 0x
1270: 30 30 43 37 30 30 32 34 2c 20 30 78 30 30 43 38  00C70024, 0x00C8
1280: 30 30 31 46 2c 20 30 78 30 30 43 38 41 38 31 45  001F, 0x00C8A81E
1290: 2c 0a 20 20 20 20 30 78 30 30 43 39 34 30 30 31  ,.    0x00C94001
12a0: 2c 20 30 78 30 30 43 39 38 30 32 30 2c 20 30 78  , 0x00C98020, 0x
12b0: 30 30 43 41 32 38 32 37 2c 20 30 78 30 30 43 42  00CA2827, 0x00CB
12c0: 30 30 33 46 2c 20 30 78 30 30 43 43 30 31 30 30  003F, 0x00CC0100
12d0: 2c 0a 20 20 20 20 30 78 30 31 33 37 30 30 34 30  ,.    0x01370040
12e0: 2c 20 30 78 30 32 39 32 34 30 33 37 2c 20 30 78  , 0x02924037, 0x
12f0: 30 32 39 33 46 38 30 32 2c 20 30 78 30 32 39 38  0293F802, 0x0298
1300: 33 34 30 33 2c 20 30 78 30 32 39 39 42 43 31 30  3403, 0x0299BC10
1310: 2c 0a 20 20 20 20 30 78 30 32 39 41 37 43 30 31  ,.    0x029A7C01
1320: 2c 20 30 78 30 32 39 42 43 30 30 38 2c 20 30 78  , 0x029BC008, 0x
1330: 30 32 39 43 30 30 31 37 2c 20 30 78 30 32 39 43  029C0017, 0x029C
1340: 38 30 30 32 2c 20 30 78 30 32 39 45 32 34 30 32  8002, 0x029E2402
1350: 2c 0a 20 20 20 20 30 78 30 32 41 30 30 38 30 31  ,.    0x02A00801
1360: 2c 20 30 78 30 32 41 30 31 38 30 31 2c 20 30 78  , 0x02A01801, 0x
1370: 30 32 41 30 32 43 30 31 2c 20 30 78 30 32 41 30  02A02C01, 0x02A0
1380: 38 43 30 39 2c 20 30 78 30 32 41 30 44 38 30 34  8C09, 0x02A0D804
1390: 2c 0a 20 20 20 20 30 78 30 32 41 31 44 30 30 34  ,.    0x02A1D004
13a0: 2c 20 30 78 30 32 41 32 30 30 30 32 2c 20 30 78  , 0x02A20002, 0x
13b0: 30 32 41 32 44 30 31 31 2c 20 30 78 30 32 41 33  02A2D011, 0x02A3
13c0: 33 38 30 32 2c 20 30 78 30 32 41 33 38 30 31 32  3802, 0x02A38012
13d0: 2c 0a 20 20 20 20 30 78 30 32 41 33 45 30 30 33  ,.    0x02A3E003
13e0: 2c 20 30 78 30 32 41 34 39 38 30 41 2c 20 30 78  , 0x02A4980A, 0x
13f0: 30 32 41 35 31 43 30 44 2c 20 30 78 30 32 41 35  02A51C0D, 0x02A5
1400: 37 43 30 31 2c 20 30 78 30 32 41 36 30 30 30 34  7C01, 0x02A60004
1410: 2c 0a 20 20 20 20 30 78 30 32 41 36 43 43 31 42  ,.    0x02A6CC1B
1420: 2c 20 30 78 30 32 41 37 37 38 30 32 2c 20 30 78  , 0x02A77802, 0x
1430: 30 32 41 38 41 34 30 45 2c 20 30 78 30 32 41 39  02A8A40E, 0x02A9
1440: 30 43 30 31 2c 20 30 78 30 32 41 39 33 30 30 32  0C01, 0x02A93002
1450: 2c 0a 20 20 20 20 30 78 30 32 41 39 37 30 30 34  ,.    0x02A97004
1460: 2c 20 30 78 30 32 41 39 44 43 30 33 2c 20 30 78  , 0x02A9DC03, 0x
1470: 30 32 41 39 45 43 30 31 2c 20 30 78 30 32 41 41  02A9EC01, 0x02AA
1480: 43 30 30 31 2c 20 30 78 30 32 41 41 43 38 30 33  C001, 0x02AAC803
1490: 2c 0a 20 20 20 20 30 78 30 32 41 41 44 43 30 32  ,.    0x02AADC02
14a0: 2c 20 30 78 30 32 41 41 46 38 30 32 2c 20 30 78  , 0x02AAF802, 0x
14b0: 30 32 41 42 30 34 30 31 2c 20 30 78 30 32 41 42  02AB0401, 0x02AB
14c0: 37 38 30 32 2c 20 30 78 30 32 41 42 41 43 30 37  7802, 0x02ABAC07
14d0: 2c 0a 20 20 20 20 30 78 30 32 41 42 44 34 30 32  ,.    0x02ABD402
14e0: 2c 20 30 78 30 32 41 46 38 43 30 42 2c 20 30 78  , 0x02AF8C0B, 0x
14f0: 30 33 36 30 30 30 30 31 2c 20 30 78 30 33 36 44  03600001, 0x036D
1500: 46 43 30 32 2c 20 30 78 30 33 36 46 46 43 30 32  FC02, 0x036FFC02
1510: 2c 0a 20 20 20 20 30 78 30 33 37 46 46 43 30 32  ,.    0x037FFC02
1520: 2c 20 30 78 30 33 45 33 46 43 30 31 2c 20 30 78  , 0x03E3FC01, 0x
1530: 30 33 45 43 37 38 30 31 2c 20 30 78 30 33 45 43  03EC7801, 0x03EC
1540: 41 34 30 31 2c 20 30 78 30 33 45 45 43 38 31 30  A401, 0x03EEC810
1550: 2c 0a 20 20 20 20 30 78 30 33 46 34 46 38 30 32  ,.    0x03F4F802
1560: 2c 20 30 78 30 33 46 37 46 30 30 32 2c 20 30 78  , 0x03F7F002, 0x
1570: 30 33 46 38 30 30 31 41 2c 20 30 78 30 33 46 38  03F8001A, 0x03F8
1580: 38 30 30 37 2c 20 30 78 30 33 46 38 43 30 32 33  8007, 0x03F8C023
1590: 2c 0a 20 20 20 20 30 78 30 33 46 39 35 30 31 33  ,.    0x03F95013
15a0: 2c 20 30 78 30 33 46 39 41 30 30 34 2c 20 30 78  , 0x03F9A004, 0x
15b0: 30 33 46 42 46 43 30 31 2c 20 30 78 30 33 46 43  03FBFC01, 0x03FC
15c0: 30 34 30 46 2c 20 30 78 30 33 46 43 36 38 30 37  040F, 0x03FC6807
15d0: 2c 0a 20 20 20 20 30 78 30 33 46 43 45 43 30 36  ,.    0x03FCEC06
15e0: 2c 20 30 78 30 33 46 44 36 43 30 42 2c 20 30 78  , 0x03FD6C0B, 0x
15f0: 30 33 46 46 38 30 30 37 2c 20 30 78 30 33 46 46  03FF8007, 0x03FF
1600: 41 30 30 37 2c 20 30 78 30 33 46 46 45 34 30 35  A007, 0x03FFE405
1610: 2c 0a 20 20 20 20 30 78 30 34 30 34 30 30 30 33  ,.    0x04040003
1620: 2c 20 30 78 30 34 30 34 44 43 30 39 2c 20 30 78  , 0x0404DC09, 0x
1630: 30 34 30 35 45 34 31 31 2c 20 30 78 30 34 30 36  0405E411, 0x0406
1640: 34 30 30 43 2c 20 30 78 30 34 30 37 34 30 32 45  400C, 0x0407402E
1650: 2c 0a 20 20 20 20 30 78 30 34 30 45 37 43 30 31  ,.    0x040E7C01
1660: 2c 20 30 78 30 34 30 46 34 30 30 31 2c 20 30 78  , 0x040F4001, 0x
1670: 30 34 32 31 35 43 30 31 2c 20 30 78 30 34 32 34  04215C01, 0x0424
1680: 37 43 30 31 2c 20 30 78 30 34 32 34 46 43 30 31  7C01, 0x0424FC01
1690: 2c 0a 20 20 20 20 30 78 30 34 32 38 30 34 30 33  ,.    0x04280403
16a0: 2c 20 30 78 30 34 32 38 31 34 30 32 2c 20 30 78  , 0x04281402, 0x
16b0: 30 34 32 38 33 30 30 34 2c 20 30 78 30 34 32 38  04283004, 0x0428
16c0: 45 30 30 33 2c 20 30 78 30 34 32 38 46 43 30 31  E003, 0x0428FC01
16d0: 2c 0a 20 20 20 20 30 78 30 34 32 39 34 30 30 39  ,.    0x04294009
16e0: 2c 20 30 78 30 34 32 39 46 43 30 31 2c 20 30 78  , 0x0429FC01, 0x
16f0: 30 34 32 43 45 34 30 37 2c 20 30 78 30 34 34 30  042CE407, 0x0440
1700: 30 30 30 33 2c 20 30 78 30 34 34 30 45 30 31 36  0003, 0x0440E016
1710: 2c 0a 20 20 20 20 30 78 30 34 34 32 30 30 30 33  ,.    0x04420003
1720: 2c 20 30 78 30 34 34 32 43 30 31 32 2c 20 30 78  , 0x0442C012, 0x
1730: 30 34 34 34 30 30 30 33 2c 20 30 78 30 34 34 34  04440003, 0x0444
1740: 39 43 30 45 2c 20 30 78 30 34 34 35 30 30 30 34  9C0E, 0x04450004
1750: 2c 0a 20 20 20 20 30 78 30 34 34 36 30 30 30 33  ,.    0x04460003
1760: 2c 20 30 78 30 34 34 36 43 43 30 45 2c 20 30 78  , 0x0446CC0E, 0x
1770: 30 34 34 37 31 34 30 34 2c 20 30 78 30 34 35 41  04471404, 0x045A
1780: 41 43 30 44 2c 20 30 78 30 34 39 31 43 30 30 34  AC0D, 0x0491C004
1790: 2c 0a 20 20 20 20 30 78 30 35 42 44 34 34 32 45  ,.    0x05BD442E
17a0: 2c 20 30 78 30 35 42 45 33 43 30 34 2c 20 30 78  , 0x05BE3C04, 0x
17b0: 30 37 34 30 30 30 46 36 2c 20 30 78 30 37 34 34  074000F6, 0x0744
17c0: 30 30 32 37 2c 20 30 78 30 37 34 34 41 34 42 35  0027, 0x0744A4B5
17d0: 2c 0a 20 20 20 20 30 78 30 37 34 38 30 30 34 36  ,.    0x07480046
17e0: 2c 20 30 78 30 37 34 43 30 30 35 37 2c 20 30 78  , 0x074C0057, 0x
17f0: 30 37 35 42 30 34 30 31 2c 20 30 78 30 37 35 42  075B0401, 0x075B
1800: 36 43 30 31 2c 20 30 78 30 37 35 42 45 43 30 31  6C01, 0x075BEC01
1810: 2c 0a 20 20 20 20 30 78 30 37 35 43 35 34 30 31  ,.    0x075C5401
1820: 2c 20 30 78 30 37 35 43 44 34 30 31 2c 20 30 78  , 0x075CD401, 0x
1830: 30 37 35 44 33 43 30 31 2c 20 30 78 30 37 35 44  075D3C01, 0x075D
1840: 42 43 30 31 2c 20 30 78 30 37 35 45 32 34 30 31  BC01, 0x075E2401
1850: 2c 0a 20 20 20 20 30 78 30 37 35 45 41 34 30 31  ,.    0x075EA401
1860: 2c 20 30 78 30 37 35 46 30 43 30 31 2c 20 30 78  , 0x075F0C01, 0x
1870: 30 37 42 42 43 30 30 32 2c 20 30 78 30 37 43 30  07BBC002, 0x07C0
1880: 30 30 32 43 2c 20 30 78 30 37 43 30 43 30 36 34  002C, 0x07C0C064
1890: 2c 0a 20 20 20 20 30 78 30 37 43 32 38 30 30 46  ,.    0x07C2800F
18a0: 2c 20 30 78 30 37 43 32 43 34 30 45 2c 20 30 78  , 0x07C2C40E, 0x
18b0: 30 37 43 33 30 34 30 46 2c 20 30 78 30 37 43 33  07C3040F, 0x07C3
18c0: 34 34 30 46 2c 20 30 78 30 37 43 34 34 30 31 46  440F, 0x07C4401F
18d0: 2c 0a 20 20 20 20 30 78 30 37 43 34 43 30 33 43  ,.    0x07C4C03C
18e0: 2c 20 30 78 30 37 43 35 43 30 32 42 2c 20 30 78  , 0x07C5C02B, 0x
18f0: 30 37 43 37 39 38 31 44 2c 20 30 78 30 37 43 38  07C7981D, 0x07C8
1900: 34 30 32 42 2c 20 30 78 30 37 43 39 30 30 30 39  402B, 0x07C90009
1910: 2c 0a 20 20 20 20 30 78 30 37 43 39 34 30 30 32  ,.    0x07C94002
1920: 2c 20 30 78 30 37 43 43 30 30 32 31 2c 20 30 78  , 0x07CC0021, 0x
1930: 30 37 43 43 43 30 30 36 2c 20 30 78 30 37 43 43  07CCC006, 0x07CC
1940: 44 43 34 36 2c 20 30 78 30 37 43 45 30 30 31 34  DC46, 0x07CE0014
1950: 2c 0a 20 20 20 20 30 78 30 37 43 45 38 30 32 35  ,.    0x07CE8025
1960: 2c 20 30 78 30 37 43 46 31 38 30 35 2c 20 30 78  , 0x07CF1805, 0x
1970: 30 37 43 46 38 30 31 31 2c 20 30 78 30 37 44 30  07CF8011, 0x07D0
1980: 30 30 33 46 2c 20 30 78 30 37 44 31 30 30 30 31  003F, 0x07D10001
1990: 2c 0a 20 20 20 20 30 78 30 37 44 31 30 38 42 36  ,.    0x07D108B6
19a0: 2c 20 30 78 30 37 44 33 45 34 30 34 2c 20 30 78  , 0x07D3E404, 0x
19b0: 30 37 44 34 30 30 33 45 2c 20 30 78 30 37 44 35  07D4003E, 0x07D5
19c0: 30 30 30 34 2c 20 30 78 30 37 44 35 34 30 31 38  0004, 0x07D54018
19d0: 2c 0a 20 20 20 20 30 78 30 37 44 37 45 43 34 36  ,.    0x07D7EC46
19e0: 2c 20 30 78 30 37 44 39 31 34 30 42 2c 20 30 78  , 0x07D9140B, 0x
19f0: 30 37 44 41 30 30 34 36 2c 20 30 78 30 37 44 43  07DA0046, 0x07DC
1a00: 30 30 37 34 2c 20 30 78 33 38 30 30 30 34 30 31  0074, 0x38000401
1a10: 2c 0a 20 20 20 20 30 78 33 38 30 30 38 30 36 30  ,.    0x38008060
1a20: 2c 20 30 78 33 38 30 34 30 30 46 30 2c 20 30 78  , 0x380400F0, 0x
1a30: 33 43 30 30 30 30 30 31 2c 20 30 78 33 46 46 46  3C000001, 0x3FFF
1a40: 46 34 30 31 2c 20 30 78 34 30 30 30 30 30 30 31  F401, 0x40000001
1a50: 2c 0a 20 20 20 20 30 78 34 33 46 46 46 34 30 31  ,.    0x43FFF401
1a60: 2c 0a 20 20 7d 3b 0a 20 20 73 74 61 74 69 63 20  ,.  };.  static 
1a70: 63 6f 6e 73 74 20 75 6e 73 69 67 6e 65 64 20 69  const unsigned i
1a80: 6e 74 20 61 41 73 63 69 69 5b 34 5d 20 3d 20 7b  nt aAscii[4] = {
1a90: 0a 20 20 20 20 30 78 46 46 46 46 46 46 46 46 2c  .    0xFFFFFFFF,
1aa0: 20 30 78 46 43 30 30 46 46 46 46 2c 20 30 78 46   0xFC00FFFF, 0xF
1ab0: 38 30 30 30 30 30 31 2c 20 30 78 46 38 30 30 30  8000001, 0xF8000
1ac0: 30 30 31 2c 0a 20 20 7d 3b 0a 0a 20 20 69 66 28  001,.  };..  if(
1ad0: 20 63 3c 31 32 38 20 29 7b 0a 20 20 20 20 72 65   c<128 ){.    re
1ae0: 74 75 72 6e 20 28 20 28 61 41 73 63 69 69 5b 63  turn ( (aAscii[c
1af0: 20 3e 3e 20 35 5d 20 26 20 28 31 20 3c 3c 20 28   >> 5] & (1 << (
1b00: 63 20 26 20 30 78 30 30 31 46 29 29 29 3d 3d 30  c & 0x001F)))==0
1b10: 20 29 3b 0a 20 20 7d 65 6c 73 65 20 69 66 28 20   );.  }else if( 
1b20: 63 3c 28 31 3c 3c 32 32 29 20 29 7b 0a 20 20 20  c<(1<<22) ){.   
1b30: 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 6b 65   unsigned int ke
1b40: 79 20 3d 20 28 28 28 75 6e 73 69 67 6e 65 64 20  y = (((unsigned 
1b50: 69 6e 74 29 63 29 3c 3c 31 30 29 20 7c 20 30 78  int)c)<<10) | 0x
1b60: 30 30 30 30 30 33 46 46 3b 0a 20 20 20 20 69 6e  000003FF;.    in
1b70: 74 20 69 52 65 73 3b 0a 20 20 20 20 69 6e 74 20  t iRes;.    int 
1b80: 69 48 69 20 3d 20 73 69 7a 65 6f 66 28 61 45 6e  iHi = sizeof(aEn
1b90: 74 72 79 29 2f 73 69 7a 65 6f 66 28 61 45 6e 74  try)/sizeof(aEnt
1ba0: 72 79 5b 30 5d 29 20 2d 20 31 3b 0a 20 20 20 20  ry[0]) - 1;.    
1bb0: 69 6e 74 20 69 4c 6f 20 3d 20 30 3b 0a 20 20 20  int iLo = 0;.   
1bc0: 20 77 68 69 6c 65 28 20 69 48 69 3e 3d 69 4c 6f   while( iHi>=iLo
1bd0: 20 29 7b 0a 20 20 20 20 20 20 69 6e 74 20 69 54   ){.      int iT
1be0: 65 73 74 20 3d 20 28 69 48 69 20 2b 20 69 4c 6f  est = (iHi + iLo
1bf0: 29 20 2f 20 32 3b 0a 20 20 20 20 20 20 69 66 28  ) / 2;.      if(
1c00: 20 6b 65 79 20 3e 3d 20 61 45 6e 74 72 79 5b 69   key >= aEntry[i
1c10: 54 65 73 74 5d 20 29 7b 0a 20 20 20 20 20 20 20  Test] ){.       
1c20: 20 69 52 65 73 20 3d 20 69 54 65 73 74 3b 0a 20   iRes = iTest;. 
1c30: 20 20 20 20 20 20 20 69 4c 6f 20 3d 20 69 54 65         iLo = iTe
1c40: 73 74 2b 31 3b 0a 20 20 20 20 20 20 7d 65 6c 73  st+1;.      }els
1c50: 65 7b 0a 20 20 20 20 20 20 20 20 69 48 69 20 3d  e{.        iHi =
1c60: 20 69 54 65 73 74 2d 31 3b 0a 20 20 20 20 20 20   iTest-1;.      
1c70: 7d 0a 20 20 20 20 7d 0a 20 20 20 20 61 73 73 65  }.    }.    asse
1c80: 72 74 28 20 61 45 6e 74 72 79 5b 30 5d 3c 6b 65  rt( aEntry[0]<ke
1c90: 79 20 29 3b 0a 20 20 20 20 61 73 73 65 72 74 28  y );.    assert(
1ca0: 20 6b 65 79 3e 3d 61 45 6e 74 72 79 5b 69 52 65   key>=aEntry[iRe
1cb0: 73 5d 20 29 3b 0a 20 20 20 20 72 65 74 75 72 6e  s] );.    return
1cc0: 20 28 63 20 3e 3d 20 28 28 61 45 6e 74 72 79 5b   (c >= ((aEntry[
1cd0: 69 52 65 73 5d 3e 3e 31 30 29 20 2b 20 28 61 45  iRes]>>10) + (aE
1ce0: 6e 74 72 79 5b 69 52 65 73 5d 26 30 78 33 46 46  ntry[iRes]&0x3FF
1cf0: 29 29 29 3b 0a 20 20 7d 0a 20 20 72 65 74 75 72  )));.  }.  retur
1d00: 6e 20 31 3b 0a 7d 0a 0a 0a 2f 2a 0a 2a 2a 20 49  n 1;.}.../*.** I
1d10: 6e 74 65 72 70 72 65 74 20 74 68 65 20 61 72 67  nterpret the arg
1d20: 75 6d 65 6e 74 20 61 73 20 61 20 75 6e 69 63 6f  ument as a unico
1d30: 64 65 20 63 6f 64 65 70 6f 69 6e 74 2e 20 49 66  de codepoint. If
1d40: 20 74 68 65 20 63 6f 64 65 70 6f 69 6e 74 0a 2a   the codepoint.*
1d50: 2a 20 69 73 20 61 6e 20 75 70 70 65 72 20 63 61  * is an upper ca
1d60: 73 65 20 63 68 61 72 61 63 74 65 72 20 74 68 61  se character tha
1d70: 74 20 68 61 73 20 61 20 6c 6f 77 65 72 20 63 61  t has a lower ca
1d80: 73 65 20 65 71 75 69 76 61 6c 65 6e 74 2c 0a 2a  se equivalent,.*
1d90: 2a 20 72 65 74 75 72 6e 20 74 68 65 20 63 6f 64  * return the cod
1da0: 65 70 6f 69 6e 74 20 63 6f 72 72 65 73 70 6f 6e  epoint correspon
1db0: 64 69 6e 67 20 74 6f 20 74 68 65 20 6c 6f 77 65  ding to the lowe
1dc0: 72 20 63 61 73 65 20 76 65 72 73 69 6f 6e 2e 0a  r case version..
1dd0: 2a 2a 20 4f 74 68 65 72 77 69 73 65 2c 20 72 65  ** Otherwise, re
1de0: 74 75 72 6e 20 61 20 63 6f 70 79 20 6f 66 20 74  turn a copy of t
1df0: 68 65 20 61 72 67 75 6d 65 6e 74 2e 0a 2a 2a 0a  he argument..**.
1e00: 2a 2a 20 54 68 65 20 72 65 73 75 6c 74 73 20 61  ** The results a
1e10: 72 65 20 75 6e 64 65 66 69 6e 65 64 20 69 66 20  re undefined if 
1e20: 74 68 65 20 76 61 6c 75 65 20 70 61 73 73 65 64  the value passed
1e30: 20 74 6f 20 74 68 69 73 20 66 75 6e 63 74 69 6f   to this functio
1e40: 6e 0a 2a 2a 20 69 73 20 6c 65 73 73 20 74 68 61  n.** is less tha
1e50: 6e 20 7a 65 72 6f 2e 0a 2a 2f 0a 69 6e 74 20 73  n zero..*/.int s
1e60: 71 6c 69 74 65 33 46 74 73 55 6e 69 63 6f 64 65  qlite3FtsUnicode
1e70: 54 6f 6c 6f 77 65 72 28 69 6e 74 20 63 29 7b 0a  Tolower(int c){.
1e80: 20 20 2f 2a 20 45 61 63 68 20 65 6e 74 72 79 20    /* Each entry 
1e90: 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67  in the following
1ea0: 20 61 72 72 61 79 20 64 65 66 69 6e 65 73 20 61   array defines a
1eb0: 20 72 75 6c 65 20 66 6f 72 20 66 6f 6c 64 69 6e   rule for foldin
1ec0: 67 20 61 20 72 61 6e 67 65 0a 20 20 2a 2a 20 6f  g a range.  ** o
1ed0: 66 20 63 6f 64 65 70 6f 69 6e 74 73 20 74 6f 20  f codepoints to 
1ee0: 6c 6f 77 65 72 20 63 61 73 65 2e 20 54 68 65 20  lower case. The 
1ef0: 72 75 6c 65 20 61 70 70 6c 69 65 73 20 74 6f 20  rule applies to 
1f00: 61 20 72 61 6e 67 65 20 6f 66 20 6e 52 61 6e 67  a range of nRang
1f10: 65 0a 20 20 2a 2a 20 63 6f 64 65 70 6f 69 6e 74  e.  ** codepoint
1f20: 73 20 73 74 61 72 74 69 6e 67 20 61 74 20 63 6f  s starting at co
1f30: 64 65 70 6f 69 6e 74 20 69 43 6f 64 65 2e 0a 20  depoint iCode.. 
1f40: 20 2a 2a 0a 20 20 2a 2a 20 49 66 20 74 68 65 20   **.  ** If the 
1f50: 6c 65 61 73 74 20 73 69 67 6e 69 66 69 63 61 6e  least significan
1f60: 74 20 62 69 74 20 69 6e 20 66 6c 61 67 73 20 69  t bit in flags i
1f70: 73 20 63 6c 65 61 72 2c 20 74 68 65 6e 20 74 68  s clear, then th
1f80: 65 20 72 75 6c 65 20 61 70 70 6c 69 65 73 0a 20  e rule applies. 
1f90: 20 2a 2a 20 74 6f 20 61 6c 6c 20 6e 52 61 6e 67   ** to all nRang
1fa0: 65 20 63 6f 64 65 70 6f 69 6e 74 73 20 28 69 2e  e codepoints (i.
1fb0: 65 2e 20 61 6c 6c 20 6e 52 61 6e 67 65 20 63 6f  e. all nRange co
1fc0: 64 65 70 6f 69 6e 74 73 20 61 72 65 20 75 70 70  depoints are upp
1fd0: 65 72 20 63 61 73 65 20 61 6e 64 0a 20 20 2a 2a  er case and.  **
1fe0: 20 6e 65 65 64 20 74 6f 20 62 65 20 66 6f 6c 64   need to be fold
1ff0: 65 64 29 2e 20 4f 72 2c 20 69 66 20 69 74 20 69  ed). Or, if it i
2000: 73 20 73 65 74 2c 20 74 68 65 6e 20 74 68 65 20  s set, then the 
2010: 72 75 6c 65 20 6f 6e 6c 79 20 61 70 70 6c 69 65  rule only applie
2020: 73 20 74 6f 0a 20 20 2a 2a 20 65 76 65 72 79 20  s to.  ** every 
2030: 73 65 63 6f 6e 64 20 63 6f 64 65 70 6f 69 6e 74  second codepoint
2040: 20 69 6e 20 74 68 65 20 72 61 6e 67 65 2c 20 73   in the range, s
2050: 74 61 72 74 69 6e 67 20 77 69 74 68 20 63 6f 64  tarting with cod
2060: 65 70 6f 69 6e 74 20 43 2e 0a 20 20 2a 2a 0a 20  epoint C..  **. 
2070: 20 2a 2a 20 54 68 65 20 37 20 6d 6f 73 74 20 73   ** The 7 most s
2080: 69 67 6e 69 66 69 63 61 6e 74 20 62 69 74 73 20  ignificant bits 
2090: 69 6e 20 66 6c 61 67 73 20 61 72 65 20 61 6e 20  in flags are an 
20a0: 69 6e 64 65 78 20 69 6e 74 6f 20 74 68 65 20 61  index into the a
20b0: 69 4f 66 66 5b 5d 0a 20 20 2a 2a 20 61 72 72 61  iOff[].  ** arra
20c0: 79 2e 20 49 66 20 61 20 73 70 65 63 69 66 69 63  y. If a specific
20d0: 20 63 6f 64 65 70 6f 69 6e 74 20 43 20 64 6f 65   codepoint C doe
20e0: 73 20 72 65 71 75 69 72 65 20 66 6f 6c 64 69 6e  s require foldin
20f0: 67 2c 20 74 68 65 6e 20 69 74 73 20 6c 6f 77 65  g, then its lowe
2100: 72 0a 20 20 2a 2a 20 63 61 73 65 20 65 71 75 69  r.  ** case equi
2110: 76 61 6c 65 6e 74 20 69 73 20 28 28 43 20 2b 20  valent is ((C + 
2120: 61 69 4f 66 66 5b 66 6c 61 67 73 3e 3e 31 5d 29  aiOff[flags>>1])
2130: 20 26 20 30 78 46 46 46 46 29 2e 0a 20 20 2a 2a   & 0xFFFF)..  **
2140: 0a 20 20 2a 2a 20 54 68 65 20 63 6f 6e 74 65 6e  .  ** The conten
2150: 74 73 20 6f 66 20 74 68 69 73 20 61 72 72 61 79  ts of this array
2160: 20 61 72 65 20 67 65 6e 65 72 61 74 65 64 20 62   are generated b
2170: 79 20 70 61 72 73 69 6e 67 20 74 68 65 20 43 61  y parsing the Ca
2180: 73 65 46 6f 6c 64 69 6e 67 2e 74 78 74 0a 20 20  seFolding.txt.  
2190: 2a 2a 20 66 69 6c 65 20 64 69 73 74 72 69 62 75  ** file distribu
21a0: 74 65 64 20 61 73 20 70 61 72 74 20 6f 66 20 74  ted as part of t
21b0: 68 65 20 22 55 6e 69 63 6f 64 65 20 43 68 61 72  he "Unicode Char
21c0: 61 63 74 65 72 20 44 61 74 61 62 61 73 65 22 2e  acter Database".
21d0: 20 53 65 65 0a 20 20 2a 2a 20 68 74 74 70 3a 2f   See.  ** http:/
21e0: 2f 77 77 77 2e 75 6e 69 63 6f 64 65 2e 6f 72 67  /www.unicode.org
21f0: 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 0a 20 20   for details..  
2200: 2a 2f 0a 20 20 73 74 61 74 69 63 20 63 6f 6e 73  */.  static cons
2210: 74 20 73 74 72 75 63 74 20 54 61 62 6c 65 45 6e  t struct TableEn
2220: 74 72 79 20 7b 0a 20 20 20 20 75 6e 73 69 67 6e  try {.    unsign
2230: 65 64 20 73 68 6f 72 74 20 69 43 6f 64 65 3b 0a  ed short iCode;.
2240: 20 20 20 20 75 6e 73 69 67 6e 65 64 20 63 68 61      unsigned cha
2250: 72 20 66 6c 61 67 73 3b 0a 20 20 20 20 75 6e 73  r flags;.    uns
2260: 69 67 6e 65 64 20 63 68 61 72 20 6e 52 61 6e 67  igned char nRang
2270: 65 3b 0a 20 20 7d 20 61 45 6e 74 72 79 5b 5d 20  e;.  } aEntry[] 
2280: 3d 20 7b 0a 20 20 20 20 7b 36 35 2c 20 31 34 2c  = {.    {65, 14,
2290: 20 32 36 7d 2c 20 20 20 20 20 20 20 20 20 20 7b   26},          {
22a0: 31 38 31 2c 20 36 34 2c 20 31 7d 2c 20 20 20 20  181, 64, 1},    
22b0: 20 20 20 20 20 20 7b 31 39 32 2c 20 31 34 2c 20        {192, 14, 
22c0: 32 33 7d 2c 0a 20 20 20 20 7b 32 31 36 2c 20 31  23},.    {216, 1
22d0: 34 2c 20 37 7d 2c 20 20 20 20 20 20 20 20 20 20  4, 7},          
22e0: 7b 32 35 36 2c 20 31 2c 20 34 38 7d 2c 20 20 20  {256, 1, 48},   
22f0: 20 20 20 20 20 20 20 7b 33 30 36 2c 20 31 2c 20         {306, 1, 
2300: 36 7d 2c 0a 20 20 20 20 7b 33 31 33 2c 20 31 2c  6},.    {313, 1,
2310: 20 31 36 7d 2c 20 20 20 20 20 20 20 20 20 20 7b   16},          {
2320: 33 33 30 2c 20 31 2c 20 34 36 7d 2c 20 20 20 20  330, 1, 46},    
2330: 20 20 20 20 20 20 7b 33 37 36 2c 20 31 31 36 2c        {376, 116,
2340: 20 31 7d 2c 0a 20 20 20 20 7b 33 37 37 2c 20 31   1},.    {377, 1
2350: 2c 20 36 7d 2c 20 20 20 20 20 20 20 20 20 20 20  , 6},           
2360: 7b 33 38 33 2c 20 31 30 34 2c 20 31 7d 2c 20 20  {383, 104, 1},  
2370: 20 20 20 20 20 20 20 7b 33 38 35 2c 20 35 30 2c         {385, 50,
2380: 20 31 7d 2c 0a 20 20 20 20 7b 33 38 36 2c 20 31   1},.    {386, 1
2390: 2c 20 34 7d 2c 20 20 20 20 20 20 20 20 20 20 20  , 4},           
23a0: 7b 33 39 30 2c 20 34 34 2c 20 31 7d 2c 20 20 20  {390, 44, 1},   
23b0: 20 20 20 20 20 20 20 7b 33 39 31 2c 20 30 2c 20         {391, 0, 
23c0: 31 7d 2c 0a 20 20 20 20 7b 33 39 33 2c 20 34 32  1},.    {393, 42
23d0: 2c 20 32 7d 2c 20 20 20 20 20 20 20 20 20 20 7b  , 2},          {
23e0: 33 39 35 2c 20 30 2c 20 31 7d 2c 20 20 20 20 20  395, 0, 1},     
23f0: 20 20 20 20 20 20 7b 33 39 38 2c 20 33 32 2c 20        {398, 32, 
2400: 31 7d 2c 0a 20 20 20 20 7b 33 39 39 2c 20 33 38  1},.    {399, 38
2410: 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 20 20 7b  , 1},          {
2420: 34 30 30 2c 20 34 30 2c 20 31 7d 2c 20 20 20 20  400, 40, 1},    
2430: 20 20 20 20 20 20 7b 34 30 31 2c 20 30 2c 20 31        {401, 0, 1
2440: 7d 2c 0a 20 20 20 20 7b 34 30 33 2c 20 34 32 2c  },.    {403, 42,
2450: 20 31 7d 2c 20 20 20 20 20 20 20 20 20 20 7b 34   1},          {4
2460: 30 34 2c 20 34 36 2c 20 31 7d 2c 20 20 20 20 20  04, 46, 1},     
2470: 20 20 20 20 20 7b 34 30 36 2c 20 35 32 2c 20 31       {406, 52, 1
2480: 7d 2c 0a 20 20 20 20 7b 34 30 37 2c 20 34 38 2c  },.    {407, 48,
2490: 20 31 7d 2c 20 20 20 20 20 20 20 20 20 20 7b 34   1},          {4
24a0: 30 38 2c 20 30 2c 20 31 7d 2c 20 20 20 20 20 20  08, 0, 1},      
24b0: 20 20 20 20 20 7b 34 31 32 2c 20 35 32 2c 20 31       {412, 52, 1
24c0: 7d 2c 0a 20 20 20 20 7b 34 31 33 2c 20 35 34 2c  },.    {413, 54,
24d0: 20 31 7d 2c 20 20 20 20 20 20 20 20 20 20 7b 34   1},          {4
24e0: 31 35 2c 20 35 36 2c 20 31 7d 2c 20 20 20 20 20  15, 56, 1},     
24f0: 20 20 20 20 20 7b 34 31 36 2c 20 31 2c 20 36 7d       {416, 1, 6}
2500: 2c 0a 20 20 20 20 7b 34 32 32 2c 20 36 30 2c 20  ,.    {422, 60, 
2510: 31 7d 2c 20 20 20 20 20 20 20 20 20 20 7b 34 32  1},          {42
2520: 33 2c 20 30 2c 20 31 7d 2c 20 20 20 20 20 20 20  3, 0, 1},       
2530: 20 20 20 20 7b 34 32 35 2c 20 36 30 2c 20 31 7d      {425, 60, 1}
2540: 2c 0a 20 20 20 20 7b 34 32 38 2c 20 30 2c 20 31  ,.    {428, 0, 1
2550: 7d 2c 20 20 20 20 20 20 20 20 20 20 20 7b 34 33  },           {43
2560: 30 2c 20 36 30 2c 20 31 7d 2c 20 20 20 20 20 20  0, 60, 1},      
2570: 20 20 20 20 7b 34 33 31 2c 20 30 2c 20 31 7d 2c      {431, 0, 1},
2580: 0a 20 20 20 20 7b 34 33 33 2c 20 35 38 2c 20 32  .    {433, 58, 2
2590: 7d 2c 20 20 20 20 20 20 20 20 20 20 7b 34 33 35  },          {435
25a0: 2c 20 31 2c 20 34 7d 2c 20 20 20 20 20 20 20 20  , 1, 4},        
25b0: 20 20 20 7b 34 33 39 2c 20 36 32 2c 20 31 7d 2c     {439, 62, 1},
25c0: 0a 20 20 20 20 7b 34 34 30 2c 20 30 2c 20 31 7d  .    {440, 0, 1}
25d0: 2c 20 20 20 20 20 20 20 20 20 20 20 7b 34 34 34  ,           {444
25e0: 2c 20 30 2c 20 31 7d 2c 20 20 20 20 20 20 20 20  , 0, 1},        
25f0: 20 20 20 7b 34 35 32 2c 20 32 2c 20 31 7d 2c 0a     {452, 2, 1},.
2600: 20 20 20 20 7b 34 35 33 2c 20 30 2c 20 31 7d 2c      {453, 0, 1},
2610: 20 20 20 20 20 20 20 20 20 20 20 7b 34 35 35 2c             {455,
2620: 20 32 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 20   2, 1},         
2630: 20 20 7b 34 35 36 2c 20 30 2c 20 31 7d 2c 0a 20    {456, 0, 1},. 
2640: 20 20 20 7b 34 35 38 2c 20 32 2c 20 31 7d 2c 20     {458, 2, 1}, 
2650: 20 20 20 20 20 20 20 20 20 20 7b 34 35 39 2c 20            {459, 
2660: 31 2c 20 31 38 7d 2c 20 20 20 20 20 20 20 20 20  1, 18},         
2670: 20 7b 34 37 38 2c 20 31 2c 20 31 38 7d 2c 0a 20   {478, 1, 18},. 
2680: 20 20 20 7b 34 39 37 2c 20 32 2c 20 31 7d 2c 20     {497, 2, 1}, 
2690: 20 20 20 20 20 20 20 20 20 20 7b 34 39 38 2c 20            {498, 
26a0: 31 2c 20 34 7d 2c 20 20 20 20 20 20 20 20 20 20  1, 4},          
26b0: 20 7b 35 30 32 2c 20 31 32 32 2c 20 31 7d 2c 0a   {502, 122, 1},.
26c0: 20 20 20 20 7b 35 30 33 2c 20 31 33 34 2c 20 31      {503, 134, 1
26d0: 7d 2c 20 20 20 20 20 20 20 20 20 7b 35 30 34 2c  },         {504,
26e0: 20 31 2c 20 34 30 7d 2c 20 20 20 20 20 20 20 20   1, 40},        
26f0: 20 20 7b 35 34 34 2c 20 31 31 30 2c 20 31 7d 2c    {544, 110, 1},
2700: 0a 20 20 20 20 7b 35 34 36 2c 20 31 2c 20 31 38  .    {546, 1, 18
2710: 7d 2c 20 20 20 20 20 20 20 20 20 20 7b 35 37 30  },          {570
2720: 2c 20 37 30 2c 20 31 7d 2c 20 20 20 20 20 20 20  , 70, 1},       
2730: 20 20 20 7b 35 37 31 2c 20 30 2c 20 31 7d 2c 0a     {571, 0, 1},.
2740: 20 20 20 20 7b 35 37 33 2c 20 31 30 38 2c 20 31      {573, 108, 1
2750: 7d 2c 20 20 20 20 20 20 20 20 20 7b 35 37 34 2c  },         {574,
2760: 20 36 38 2c 20 31 7d 2c 20 20 20 20 20 20 20 20   68, 1},        
2770: 20 20 7b 35 37 37 2c 20 30 2c 20 31 7d 2c 0a 20    {577, 0, 1},. 
2780: 20 20 20 7b 35 37 39 2c 20 31 30 36 2c 20 31 7d     {579, 106, 1}
2790: 2c 20 20 20 20 20 20 20 20 20 7b 35 38 30 2c 20  ,         {580, 
27a0: 32 38 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 20  28, 1},         
27b0: 20 7b 35 38 31 2c 20 33 30 2c 20 31 7d 2c 0a 20   {581, 30, 1},. 
27c0: 20 20 20 7b 35 38 32 2c 20 31 2c 20 31 30 7d 2c     {582, 1, 10},
27d0: 20 20 20 20 20 20 20 20 20 20 7b 38 33 37 2c 20            {837, 
27e0: 33 36 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 20  36, 1},         
27f0: 20 7b 38 38 30 2c 20 31 2c 20 34 7d 2c 0a 20 20   {880, 1, 4},.  
2800: 20 20 7b 38 38 36 2c 20 30 2c 20 31 7d 2c 20 20    {886, 0, 1},  
2810: 20 20 20 20 20 20 20 20 20 7b 39 30 32 2c 20 31           {902, 1
2820: 38 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 20 20  8, 1},          
2830: 7b 39 30 34 2c 20 31 36 2c 20 33 7d 2c 0a 20 20  {904, 16, 3},.  
2840: 20 20 7b 39 30 38 2c 20 32 36 2c 20 31 7d 2c 20    {908, 26, 1}, 
2850: 20 20 20 20 20 20 20 20 20 7b 39 31 30 2c 20 32           {910, 2
2860: 34 2c 20 32 7d 2c 20 20 20 20 20 20 20 20 20 20  4, 2},          
2870: 7b 39 31 33 2c 20 31 34 2c 20 31 37 7d 2c 0a 20  {913, 14, 17},. 
2880: 20 20 20 7b 39 33 31 2c 20 31 34 2c 20 39 7d 2c     {931, 14, 9},
2890: 20 20 20 20 20 20 20 20 20 20 7b 39 36 32 2c 20            {962, 
28a0: 30 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 20 20  0, 1},          
28b0: 20 7b 39 37 35 2c 20 34 2c 20 31 7d 2c 0a 20 20   {975, 4, 1},.  
28c0: 20 20 7b 39 37 36 2c 20 31 34 30 2c 20 31 7d 2c    {976, 140, 1},
28d0: 20 20 20 20 20 20 20 20 20 7b 39 37 37 2c 20 31           {977, 1
28e0: 34 32 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 20  42, 1},         
28f0: 7b 39 38 31 2c 20 31 34 36 2c 20 31 7d 2c 0a 20  {981, 146, 1},. 
2900: 20 20 20 7b 39 38 32 2c 20 31 34 34 2c 20 31 7d     {982, 144, 1}
2910: 2c 20 20 20 20 20 20 20 20 20 7b 39 38 34 2c 20  ,         {984, 
2920: 31 2c 20 32 34 7d 2c 20 20 20 20 20 20 20 20 20  1, 24},         
2930: 20 7b 31 30 30 38 2c 20 31 33 36 2c 20 31 7d 2c   {1008, 136, 1},
2940: 0a 20 20 20 20 7b 31 30 30 39 2c 20 31 33 38 2c  .    {1009, 138,
2950: 20 31 7d 2c 20 20 20 20 20 20 20 20 7b 31 30 31   1},        {101
2960: 32 2c 20 31 33 30 2c 20 31 7d 2c 20 20 20 20 20  2, 130, 1},     
2970: 20 20 20 7b 31 30 31 33 2c 20 31 32 38 2c 20 31     {1013, 128, 1
2980: 7d 2c 0a 20 20 20 20 7b 31 30 31 35 2c 20 30 2c  },.    {1015, 0,
2990: 20 31 7d 2c 20 20 20 20 20 20 20 20 20 20 7b 31   1},          {1
29a0: 30 31 37 2c 20 31 35 32 2c 20 31 7d 2c 20 20 20  017, 152, 1},   
29b0: 20 20 20 20 20 7b 31 30 31 38 2c 20 30 2c 20 31       {1018, 0, 1
29c0: 7d 2c 0a 20 20 20 20 7b 31 30 32 31 2c 20 31 31  },.    {1021, 11
29d0: 30 2c 20 33 7d 2c 20 20 20 20 20 20 20 20 7b 31  0, 3},        {1
29e0: 30 32 34 2c 20 33 34 2c 20 31 36 7d 2c 20 20 20  024, 34, 16},   
29f0: 20 20 20 20 20 7b 31 30 34 30 2c 20 31 34 2c 20       {1040, 14, 
2a00: 33 32 7d 2c 0a 20 20 20 20 7b 31 31 32 30 2c 20  32},.    {1120, 
2a10: 31 2c 20 33 34 7d 2c 20 20 20 20 20 20 20 20 20  1, 34},         
2a20: 7b 31 31 36 32 2c 20 31 2c 20 35 34 7d 2c 20 20  {1162, 1, 54},  
2a30: 20 20 20 20 20 20 20 7b 31 32 31 36 2c 20 36 2c         {1216, 6,
2a40: 20 31 7d 2c 0a 20 20 20 20 7b 31 32 31 37 2c 20   1},.    {1217, 
2a50: 31 2c 20 31 34 7d 2c 20 20 20 20 20 20 20 20 20  1, 14},         
2a60: 7b 31 32 33 32 2c 20 31 2c 20 38 38 7d 2c 20 20  {1232, 1, 88},  
2a70: 20 20 20 20 20 20 20 7b 31 33 32 39 2c 20 32 32         {1329, 22
2a80: 2c 20 33 38 7d 2c 0a 20 20 20 20 7b 34 32 35 36  , 38},.    {4256
2a90: 2c 20 36 36 2c 20 33 38 7d 2c 20 20 20 20 20 20  , 66, 38},      
2aa0: 20 20 7b 34 32 39 35 2c 20 36 36 2c 20 31 7d 2c    {4295, 66, 1},
2ab0: 20 20 20 20 20 20 20 20 20 7b 34 33 30 31 2c 20           {4301, 
2ac0: 36 36 2c 20 31 7d 2c 0a 20 20 20 20 7b 37 36 38  66, 1},.    {768
2ad0: 30 2c 20 31 2c 20 31 35 30 7d 2c 20 20 20 20 20  0, 1, 150},     
2ae0: 20 20 20 7b 37 38 33 35 2c 20 31 33 32 2c 20 31     {7835, 132, 1
2af0: 7d 2c 20 20 20 20 20 20 20 20 7b 37 38 33 38 2c  },        {7838,
2b00: 20 39 36 2c 20 31 7d 2c 0a 20 20 20 20 7b 37 38   96, 1},.    {78
2b10: 34 30 2c 20 31 2c 20 39 36 7d 2c 20 20 20 20 20  40, 1, 96},     
2b20: 20 20 20 20 7b 37 39 34 34 2c 20 31 35 30 2c 20      {7944, 150, 
2b30: 38 7d 2c 20 20 20 20 20 20 20 20 7b 37 39 36 30  8},        {7960
2b40: 2c 20 31 35 30 2c 20 36 7d 2c 0a 20 20 20 20 7b  , 150, 6},.    {
2b50: 37 39 37 36 2c 20 31 35 30 2c 20 38 7d 2c 20 20  7976, 150, 8},  
2b60: 20 20 20 20 20 20 7b 37 39 39 32 2c 20 31 35 30        {7992, 150
2b70: 2c 20 38 7d 2c 20 20 20 20 20 20 20 20 7b 38 30  , 8},        {80
2b80: 30 38 2c 20 31 35 30 2c 20 36 7d 2c 0a 20 20 20  08, 150, 6},.   
2b90: 20 7b 38 30 32 35 2c 20 31 35 31 2c 20 38 7d 2c   {8025, 151, 8},
2ba0: 20 20 20 20 20 20 20 20 7b 38 30 34 30 2c 20 31          {8040, 1
2bb0: 35 30 2c 20 38 7d 2c 20 20 20 20 20 20 20 20 7b  50, 8},        {
2bc0: 38 30 37 32 2c 20 31 35 30 2c 20 38 7d 2c 0a 20  8072, 150, 8},. 
2bd0: 20 20 20 7b 38 30 38 38 2c 20 31 35 30 2c 20 38     {8088, 150, 8
2be0: 7d 2c 20 20 20 20 20 20 20 20 7b 38 31 30 34 2c  },        {8104,
2bf0: 20 31 35 30 2c 20 38 7d 2c 20 20 20 20 20 20 20   150, 8},       
2c00: 20 7b 38 31 32 30 2c 20 31 35 30 2c 20 32 7d 2c   {8120, 150, 2},
2c10: 0a 20 20 20 20 7b 38 31 32 32 2c 20 31 32 36 2c  .    {8122, 126,
2c20: 20 32 7d 2c 20 20 20 20 20 20 20 20 7b 38 31 32   2},        {812
2c30: 34 2c 20 31 34 38 2c 20 31 7d 2c 20 20 20 20 20  4, 148, 1},     
2c40: 20 20 20 7b 38 31 32 36 2c 20 31 30 30 2c 20 31     {8126, 100, 1
2c50: 7d 2c 0a 20 20 20 20 7b 38 31 33 36 2c 20 31 32  },.    {8136, 12
2c60: 34 2c 20 34 7d 2c 20 20 20 20 20 20 20 20 7b 38  4, 4},        {8
2c70: 31 34 30 2c 20 31 34 38 2c 20 31 7d 2c 20 20 20  140, 148, 1},   
2c80: 20 20 20 20 20 7b 38 31 35 32 2c 20 31 35 30 2c       {8152, 150,
2c90: 20 32 7d 2c 0a 20 20 20 20 7b 38 31 35 34 2c 20   2},.    {8154, 
2ca0: 31 32 30 2c 20 32 7d 2c 20 20 20 20 20 20 20 20  120, 2},        
2cb0: 7b 38 31 36 38 2c 20 31 35 30 2c 20 32 7d 2c 20  {8168, 150, 2}, 
2cc0: 20 20 20 20 20 20 20 7b 38 31 37 30 2c 20 31 31         {8170, 11
2cd0: 38 2c 20 32 7d 2c 0a 20 20 20 20 7b 38 31 37 32  8, 2},.    {8172
2ce0: 2c 20 31 35 32 2c 20 31 7d 2c 20 20 20 20 20 20  , 152, 1},      
2cf0: 20 20 7b 38 31 38 34 2c 20 31 31 32 2c 20 32 7d    {8184, 112, 2}
2d00: 2c 20 20 20 20 20 20 20 20 7b 38 31 38 36 2c 20  ,        {8186, 
2d10: 31 31 34 2c 20 32 7d 2c 0a 20 20 20 20 7b 38 31  114, 2},.    {81
2d20: 38 38 2c 20 31 34 38 2c 20 31 7d 2c 20 20 20 20  88, 148, 1},    
2d30: 20 20 20 20 7b 38 34 38 36 2c 20 39 38 2c 20 31      {8486, 98, 1
2d40: 7d 2c 20 20 20 20 20 20 20 20 20 7b 38 34 39 30  },         {8490
2d50: 2c 20 39 32 2c 20 31 7d 2c 0a 20 20 20 20 7b 38  , 92, 1},.    {8
2d60: 34 39 31 2c 20 39 34 2c 20 31 7d 2c 20 20 20 20  491, 94, 1},    
2d70: 20 20 20 20 20 7b 38 34 39 38 2c 20 31 32 2c 20       {8498, 12, 
2d80: 31 7d 2c 20 20 20 20 20 20 20 20 20 7b 38 35 34  1},         {854
2d90: 34 2c 20 38 2c 20 31 36 7d 2c 0a 20 20 20 20 7b  4, 8, 16},.    {
2da0: 38 35 37 39 2c 20 30 2c 20 31 7d 2c 20 20 20 20  8579, 0, 1},    
2db0: 20 20 20 20 20 20 7b 39 33 39 38 2c 20 31 30 2c        {9398, 10,
2dc0: 20 32 36 7d 2c 20 20 20 20 20 20 20 20 7b 31 31   26},        {11
2dd0: 32 36 34 2c 20 32 32 2c 20 34 37 7d 2c 0a 20 20  264, 22, 47},.  
2de0: 20 20 7b 31 31 33 36 30 2c 20 30 2c 20 31 7d 2c    {11360, 0, 1},
2df0: 20 20 20 20 20 20 20 20 20 7b 31 31 33 36 32 2c           {11362,
2e00: 20 38 38 2c 20 31 7d 2c 20 20 20 20 20 20 20 20   88, 1},        
2e10: 7b 31 31 33 36 33 2c 20 31 30 32 2c 20 31 7d 2c  {11363, 102, 1},
2e20: 0a 20 20 20 20 7b 31 31 33 36 34 2c 20 39 30 2c  .    {11364, 90,
2e30: 20 31 7d 2c 20 20 20 20 20 20 20 20 7b 31 31 33   1},        {113
2e40: 36 37 2c 20 31 2c 20 36 7d 2c 20 20 20 20 20 20  67, 1, 6},      
2e50: 20 20 20 7b 31 31 33 37 33 2c 20 38 34 2c 20 31     {11373, 84, 1
2e60: 7d 2c 0a 20 20 20 20 7b 31 31 33 37 34 2c 20 38  },.    {11374, 8
2e70: 36 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 7b 31  6, 1},        {1
2e80: 31 33 37 35 2c 20 38 30 2c 20 31 7d 2c 20 20 20  1375, 80, 1},   
2e90: 20 20 20 20 20 7b 31 31 33 37 36 2c 20 38 32 2c       {11376, 82,
2ea0: 20 31 7d 2c 0a 20 20 20 20 7b 31 31 33 37 38 2c   1},.    {11378,
2eb0: 20 30 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 20   0, 1},         
2ec0: 7b 31 31 33 38 31 2c 20 30 2c 20 31 7d 2c 20 20  {11381, 0, 1},  
2ed0: 20 20 20 20 20 20 20 7b 31 31 33 39 30 2c 20 37         {11390, 7
2ee0: 38 2c 20 32 7d 2c 0a 20 20 20 20 7b 31 31 33 39  8, 2},.    {1139
2ef0: 32 2c 20 31 2c 20 31 30 30 7d 2c 20 20 20 20 20  2, 1, 100},     
2f00: 20 20 7b 31 31 34 39 39 2c 20 31 2c 20 34 7d 2c    {11499, 1, 4},
2f10: 20 20 20 20 20 20 20 20 20 7b 31 31 35 30 36 2c           {11506,
2f20: 20 30 2c 20 31 7d 2c 0a 20 20 20 20 7b 34 32 35   0, 1},.    {425
2f30: 36 30 2c 20 31 2c 20 34 36 7d 2c 20 20 20 20 20  60, 1, 46},     
2f40: 20 20 20 7b 34 32 36 32 34 2c 20 31 2c 20 32 34     {42624, 1, 24
2f50: 7d 2c 20 20 20 20 20 20 20 20 7b 34 32 37 38 36  },        {42786
2f60: 2c 20 31 2c 20 31 34 7d 2c 0a 20 20 20 20 7b 34  , 1, 14},.    {4
2f70: 32 38 30 32 2c 20 31 2c 20 36 32 7d 2c 20 20 20  2802, 1, 62},   
2f80: 20 20 20 20 20 7b 34 32 38 37 33 2c 20 31 2c 20       {42873, 1, 
2f90: 34 7d 2c 20 20 20 20 20 20 20 20 20 7b 34 32 38  4},         {428
2fa0: 37 37 2c 20 37 36 2c 20 31 7d 2c 0a 20 20 20 20  77, 76, 1},.    
2fb0: 7b 34 32 38 37 38 2c 20 31 2c 20 31 30 7d 2c 20  {42878, 1, 10}, 
2fc0: 20 20 20 20 20 20 20 7b 34 32 38 39 31 2c 20 30         {42891, 0
2fd0: 2c 20 31 7d 2c 20 20 20 20 20 20 20 20 20 7b 34  , 1},         {4
2fe0: 32 38 39 33 2c 20 37 34 2c 20 31 7d 2c 0a 20 20  2893, 74, 1},.  
2ff0: 20 20 7b 34 32 38 39 36 2c 20 31 2c 20 34 7d 2c    {42896, 1, 4},
3000: 20 20 20 20 20 20 20 20 20 7b 34 32 39 31 32 2c           {42912,
3010: 20 31 2c 20 31 30 7d 2c 20 20 20 20 20 20 20 20   1, 10},        
3020: 7b 34 32 39 32 32 2c 20 37 32 2c 20 31 7d 2c 0a  {42922, 72, 1},.
3030: 20 20 20 20 7b 36 35 33 31 33 2c 20 31 34 2c 20      {65313, 14, 
3040: 32 36 7d 2c 20 20 20 20 20 20 20 0a 20 20 7d 3b  26},       .  };
3050: 0a 20 20 73 74 61 74 69 63 20 63 6f 6e 73 74 20  .  static const 
3060: 75 6e 73 69 67 6e 65 64 20 73 68 6f 72 74 20 61  unsigned short a
3070: 69 4f 66 66 5b 5d 20 3d 20 7b 0a 20 20 20 31 2c  iOff[] = {.   1,
3080: 20 20 20 20 20 32 2c 20 20 20 20 20 38 2c 20 20       2,     8,  
3090: 20 20 20 31 35 2c 20 20 20 20 31 36 2c 20 20 20     15,    16,   
30a0: 20 32 36 2c 20 20 20 20 32 38 2c 20 20 20 20 33   26,    28,    3
30b0: 32 2c 20 20 20 20 0a 20 20 20 33 37 2c 20 20 20  2,    .   37,   
30c0: 20 33 38 2c 20 20 20 20 34 30 2c 20 20 20 20 34   38,    40,    4
30d0: 38 2c 20 20 20 20 36 33 2c 20 20 20 20 36 34 2c  8,    63,    64,
30e0: 20 20 20 20 36 39 2c 20 20 20 20 37 31 2c 20 20      69,    71,  
30f0: 20 20 0a 20 20 20 37 39 2c 20 20 20 20 38 30 2c    .   79,    80,
3100: 20 20 20 20 31 31 36 2c 20 20 20 32 30 32 2c 20      116,   202, 
3110: 20 20 32 30 33 2c 20 20 20 32 30 35 2c 20 20 20    203,   205,   
3120: 32 30 36 2c 20 20 20 32 30 37 2c 20 20 20 0a 20  206,   207,   . 
3130: 20 20 32 30 39 2c 20 20 20 32 31 30 2c 20 20 20    209,   210,   
3140: 32 31 31 2c 20 20 20 32 31 33 2c 20 20 20 32 31  211,   213,   21
3150: 34 2c 20 20 20 32 31 37 2c 20 20 20 32 31 38 2c  4,   217,   218,
3160: 20 20 20 32 31 39 2c 20 20 20 0a 20 20 20 37 37     219,   .   77
3170: 35 2c 20 20 20 37 32 36 34 2c 20 20 31 30 37 39  5,   7264,  1079
3180: 32 2c 20 31 30 37 39 35 2c 20 32 33 32 32 38 2c  2, 10795, 23228,
3190: 20 32 33 32 35 36 2c 20 33 30 32 30 34 2c 20 35   23256, 30204, 5
31a0: 34 37 32 31 2c 20 0a 20 20 20 35 34 37 35 33 2c  4721, .   54753,
31b0: 20 35 34 37 35 34 2c 20 35 34 37 35 36 2c 20 35   54754, 54756, 5
31c0: 34 37 38 37 2c 20 35 34 37 39 33 2c 20 35 34 38  4787, 54793, 548
31d0: 30 39 2c 20 35 37 31 35 33 2c 20 35 37 32 37 34  09, 57153, 57274
31e0: 2c 20 0a 20 20 20 35 37 39 32 31 2c 20 35 38 30  , .   57921, 580
31f0: 31 39 2c 20 35 38 33 36 33 2c 20 36 31 37 32 32  19, 58363, 61722
3200: 2c 20 36 35 32 36 38 2c 20 36 35 33 34 31 2c 20  , 65268, 65341, 
3210: 36 35 33 37 33 2c 20 36 35 34 30 36 2c 20 0a 20  65373, 65406, . 
3220: 20 20 36 35 34 30 38 2c 20 36 35 34 31 30 2c 20    65408, 65410, 
3230: 36 35 34 31 35 2c 20 36 35 34 32 34 2c 20 36 35  65415, 65424, 65
3240: 34 33 36 2c 20 36 35 34 33 39 2c 20 36 35 34 35  436, 65439, 6545
3250: 30 2c 20 36 35 34 36 32 2c 20 0a 20 20 20 36 35  0, 65462, .   65
3260: 34 37 32 2c 20 36 35 34 37 36 2c 20 36 35 34 37  472, 65476, 6547
3270: 38 2c 20 36 35 34 38 30 2c 20 36 35 34 38 32 2c  8, 65480, 65482,
3280: 20 36 35 34 38 38 2c 20 36 35 35 30 36 2c 20 36   65488, 65506, 6
3290: 35 35 31 31 2c 20 0a 20 20 20 36 35 35 31 34 2c  5511, .   65514,
32a0: 20 36 35 35 32 31 2c 20 36 35 35 32 37 2c 20 36   65521, 65527, 6
32b0: 35 35 32 38 2c 20 36 35 35 32 39 2c 20 0a 20 20  5528, 65529, .  
32c0: 7d 3b 0a 0a 20 20 69 6e 74 20 72 65 74 20 3d 20  };..  int ret = 
32d0: 63 3b 0a 0a 20 20 61 73 73 65 72 74 28 20 63 3e  c;..  assert( c>
32e0: 3d 30 20 29 3b 0a 20 20 61 73 73 65 72 74 28 20  =0 );.  assert( 
32f0: 73 69 7a 65 6f 66 28 75 6e 73 69 67 6e 65 64 20  sizeof(unsigned 
3300: 73 68 6f 72 74 29 3d 3d 32 20 26 26 20 73 69 7a  short)==2 && siz
3310: 65 6f 66 28 75 6e 73 69 67 6e 65 64 20 63 68 61  eof(unsigned cha
3320: 72 29 3d 3d 31 20 29 3b 0a 0a 20 20 69 66 28 20  r)==1 );..  if( 
3330: 63 3c 31 32 38 20 29 7b 0a 20 20 20 20 69 66 28  c<128 ){.    if(
3340: 20 63 3e 3d 27 41 27 20 26 26 20 63 3c 3d 27 5a   c>='A' && c<='Z
3350: 27 20 29 20 72 65 74 20 3d 20 63 20 2b 20 28 27  ' ) ret = c + ('
3360: 61 27 20 2d 20 27 41 27 29 3b 0a 20 20 7d 65 6c  a' - 'A');.  }el
3370: 73 65 20 69 66 28 20 63 3c 36 35 35 33 36 20 29  se if( c<65536 )
3380: 7b 0a 20 20 20 20 69 6e 74 20 69 48 69 20 3d 20  {.    int iHi = 
3390: 73 69 7a 65 6f 66 28 61 45 6e 74 72 79 29 2f 73  sizeof(aEntry)/s
33a0: 69 7a 65 6f 66 28 61 45 6e 74 72 79 5b 30 5d 29  izeof(aEntry[0])
33b0: 20 2d 20 31 3b 0a 20 20 20 20 69 6e 74 20 69 4c   - 1;.    int iL
33c0: 6f 20 3d 20 30 3b 0a 20 20 20 20 69 6e 74 20 69  o = 0;.    int i
33d0: 52 65 73 20 3d 20 2d 31 3b 0a 0a 20 20 20 20 77  Res = -1;..    w
33e0: 68 69 6c 65 28 20 69 48 69 3e 3d 69 4c 6f 20 29  hile( iHi>=iLo )
33f0: 7b 0a 20 20 20 20 20 20 69 6e 74 20 69 54 65 73  {.      int iTes
3400: 74 20 3d 20 28 69 48 69 20 2b 20 69 4c 6f 29 20  t = (iHi + iLo) 
3410: 2f 20 32 3b 0a 20 20 20 20 20 20 69 6e 74 20 63  / 2;.      int c
3420: 6d 70 20 3d 20 28 63 20 2d 20 61 45 6e 74 72 79  mp = (c - aEntry
3430: 5b 69 54 65 73 74 5d 2e 69 43 6f 64 65 29 3b 0a  [iTest].iCode);.
3440: 20 20 20 20 20 20 69 66 28 20 63 6d 70 3e 3d 30        if( cmp>=0
3450: 20 29 7b 0a 20 20 20 20 20 20 20 20 69 52 65 73   ){.        iRes
3460: 20 3d 20 69 54 65 73 74 3b 0a 20 20 20 20 20 20   = iTest;.      
3470: 20 20 69 4c 6f 20 3d 20 69 54 65 73 74 2b 31 3b    iLo = iTest+1;
3480: 0a 20 20 20 20 20 20 7d 65 6c 73 65 7b 0a 20 20  .      }else{.  
3490: 20 20 20 20 20 20 69 48 69 20 3d 20 69 54 65 73        iHi = iTes
34a0: 74 2d 31 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20  t-1;.      }.   
34b0: 20 7d 0a 20 20 20 20 61 73 73 65 72 74 28 20 69   }.    assert( i
34c0: 52 65 73 3c 30 20 7c 7c 20 63 3e 3d 61 45 6e 74  Res<0 || c>=aEnt
34d0: 72 79 5b 69 52 65 73 5d 2e 69 43 6f 64 65 20 29  ry[iRes].iCode )
34e0: 3b 0a 0a 20 20 20 20 69 66 28 20 69 52 65 73 3e  ;..    if( iRes>
34f0: 3d 30 20 29 7b 0a 20 20 20 20 20 20 63 6f 6e 73  =0 ){.      cons
3500: 74 20 73 74 72 75 63 74 20 54 61 62 6c 65 45 6e  t struct TableEn
3510: 74 72 79 20 2a 70 20 3d 20 26 61 45 6e 74 72 79  try *p = &aEntry
3520: 5b 69 52 65 73 5d 3b 0a 20 20 20 20 20 20 69 66  [iRes];.      if
3530: 28 20 63 3c 28 70 2d 3e 69 43 6f 64 65 20 2b 20  ( c<(p->iCode + 
3540: 70 2d 3e 6e 52 61 6e 67 65 29 20 26 26 20 30 3d  p->nRange) && 0=
3550: 3d 28 30 78 30 31 20 26 20 70 2d 3e 66 6c 61 67  =(0x01 & p->flag
3560: 73 20 26 20 28 70 2d 3e 69 43 6f 64 65 20 5e 20  s & (p->iCode ^ 
3570: 63 29 29 20 29 7b 0a 20 20 20 20 20 20 20 20 72  c)) ){.        r
3580: 65 74 20 3d 20 28 63 20 2b 20 28 61 69 4f 66 66  et = (c + (aiOff
3590: 5b 70 2d 3e 66 6c 61 67 73 3e 3e 31 5d 29 29 20  [p->flags>>1])) 
35a0: 26 20 30 78 30 30 30 30 46 46 46 46 3b 0a 20 20  & 0x0000FFFF;.  
35b0: 20 20 20 20 20 20 61 73 73 65 72 74 28 20 72 65        assert( re
35c0: 74 3e 30 20 29 3b 0a 20 20 20 20 20 20 7d 0a 20  t>0 );.      }. 
35d0: 20 20 20 7d 0a 20 20 7d 0a 20 20 0a 20 20 65 6c     }.  }.  .  el
35e0: 73 65 20 69 66 28 20 63 3e 3d 36 36 35 36 30 20  se if( c>=66560 
35f0: 26 26 20 63 3c 36 36 36 30 30 20 29 7b 0a 20 20  && c<66600 ){.  
3600: 20 20 72 65 74 20 3d 20 63 20 2b 20 34 30 3b 0a    ret = c + 40;.
3610: 20 20 7d 0a 0a 20 20 72 65 74 75 72 6e 20 72 65    }..  return re
3620: 74 3b 0a 7d 0a 23 65 6e 64 69 66 20 2f 2a 20 64  t;.}.#endif /* d
3630: 65 66 69 6e 65 64 28 53 51 4c 49 54 45 5f 45 4e  efined(SQLITE_EN
3640: 41 42 4c 45 5f 46 54 53 33 29 20 7c 7c 20 64 65  ABLE_FTS3) || de
3650: 66 69 6e 65 64 28 53 51 4c 49 54 45 5f 45 4e 41  fined(SQLITE_ENA
3660: 42 4c 45 5f 46 54 53 34 29 20 2a 2f 0a 23 65 6e  BLE_FTS4) */.#en
3670: 64 69 66 20 2f 2a 20 21 64 65 66 69 6e 65 64 28  dif /* !defined(
3680: 53 51 4c 49 54 45 5f 44 49 53 41 42 4c 45 5f 46  SQLITE_DISABLE_F
3690: 54 53 33 5f 55 4e 49 43 4f 44 45 29 20 2a 2f 0a  TS3_UNICODE) */.