• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <cstdint>
2 #include "node_url.h"
3 
4 namespace node {
5 namespace url {
6 namespace table_data {
7 
8 const char hex[1024] =
9   "%00\0%01\0%02\0%03\0%04\0%05\0%06\0%07\0"
10   "%08\0%09\0%0A\0%0B\0%0C\0%0D\0%0E\0%0F\0"
11   "%10\0%11\0%12\0%13\0%14\0%15\0%16\0%17\0"
12   "%18\0%19\0%1A\0%1B\0%1C\0%1D\0%1E\0%1F\0"
13   "%20\0%21\0%22\0%23\0%24\0%25\0%26\0%27\0"
14   "%28\0%29\0%2A\0%2B\0%2C\0%2D\0%2E\0%2F\0"
15   "%30\0%31\0%32\0%33\0%34\0%35\0%36\0%37\0"
16   "%38\0%39\0%3A\0%3B\0%3C\0%3D\0%3E\0%3F\0"
17   "%40\0%41\0%42\0%43\0%44\0%45\0%46\0%47\0"
18   "%48\0%49\0%4A\0%4B\0%4C\0%4D\0%4E\0%4F\0"
19   "%50\0%51\0%52\0%53\0%54\0%55\0%56\0%57\0"
20   "%58\0%59\0%5A\0%5B\0%5C\0%5D\0%5E\0%5F\0"
21   "%60\0%61\0%62\0%63\0%64\0%65\0%66\0%67\0"
22   "%68\0%69\0%6A\0%6B\0%6C\0%6D\0%6E\0%6F\0"
23   "%70\0%71\0%72\0%73\0%74\0%75\0%76\0%77\0"
24   "%78\0%79\0%7A\0%7B\0%7C\0%7D\0%7E\0%7F\0"
25   "%80\0%81\0%82\0%83\0%84\0%85\0%86\0%87\0"
26   "%88\0%89\0%8A\0%8B\0%8C\0%8D\0%8E\0%8F\0"
27   "%90\0%91\0%92\0%93\0%94\0%95\0%96\0%97\0"
28   "%98\0%99\0%9A\0%9B\0%9C\0%9D\0%9E\0%9F\0"
29   "%A0\0%A1\0%A2\0%A3\0%A4\0%A5\0%A6\0%A7\0"
30   "%A8\0%A9\0%AA\0%AB\0%AC\0%AD\0%AE\0%AF\0"
31   "%B0\0%B1\0%B2\0%B3\0%B4\0%B5\0%B6\0%B7\0"
32   "%B8\0%B9\0%BA\0%BB\0%BC\0%BD\0%BE\0%BF\0"
33   "%C0\0%C1\0%C2\0%C3\0%C4\0%C5\0%C6\0%C7\0"
34   "%C8\0%C9\0%CA\0%CB\0%CC\0%CD\0%CE\0%CF\0"
35   "%D0\0%D1\0%D2\0%D3\0%D4\0%D5\0%D6\0%D7\0"
36   "%D8\0%D9\0%DA\0%DB\0%DC\0%DD\0%DE\0%DF\0"
37   "%E0\0%E1\0%E2\0%E3\0%E4\0%E5\0%E6\0%E7\0"
38   "%E8\0%E9\0%EA\0%EB\0%EC\0%ED\0%EE\0%EF\0"
39   "%F0\0%F1\0%F2\0%F3\0%F4\0%F5\0%F6\0%F7\0"
40   "%F8\0%F9\0%FA\0%FB\0%FC\0%FD\0%FE\0%FF";
41 
42 const uint8_t C0_CONTROL_ENCODE_SET[32] = {
43   // 00     01     02     03     04     05     06     07
44     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
45   // 08     09     0A     0B     0C     0D     0E     0F
46     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
47   // 10     11     12     13     14     15     16     17
48     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
49   // 18     19     1A     1B     1C     1D     1E     1F
50     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
51   // 20     21     22     23     24     25     26     27
52     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
53   // 28     29     2A     2B     2C     2D     2E     2F
54     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
55   // 30     31     32     33     34     35     36     37
56     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
57   // 38     39     3A     3B     3C     3D     3E     3F
58     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
59   // 40     41     42     43     44     45     46     47
60     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
61   // 48     49     4A     4B     4C     4D     4E     4F
62     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
63   // 50     51     52     53     54     55     56     57
64     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
65   // 58     59     5A     5B     5C     5D     5E     5F
66     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
67   // 60     61     62     63     64     65     66     67
68     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
69   // 68     69     6A     6B     6C     6D     6E     6F
70     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
71   // 70     71     72     73     74     75     76     77
72     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
73   // 78     79     7A     7B     7C     7D     7E     7F
74     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x80,
75   // 80     81     82     83     84     85     86     87
76     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
77   // 88     89     8A     8B     8C     8D     8E     8F
78     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
79   // 90     91     92     93     94     95     96     97
80     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
81   // 98     99     9A     9B     9C     9D     9E     9F
82     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
83   // A0     A1     A2     A3     A4     A5     A6     A7
84     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
85   // A8     A9     AA     AB     AC     AD     AE     AF
86     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
87   // B0     B1     B2     B3     B4     B5     B6     B7
88     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
89   // B8     B9     BA     BB     BC     BD     BE     BF
90     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
91   // C0     C1     C2     C3     C4     C5     C6     C7
92     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
93   // C8     C9     CA     CB     CC     CD     CE     CF
94     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
95   // D0     D1     D2     D3     D4     D5     D6     D7
96     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
97   // D8     D9     DA     DB     DC     DD     DE     DF
98     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
99   // E0     E1     E2     E3     E4     E5     E6     E7
100     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
101   // E8     E9     EA     EB     EC     ED     EE     EF
102     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
103   // F0     F1     F2     F3     F4     F5     F6     F7
104     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
105   // F8     F9     FA     FB     FC     FD     FE     FF
106     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80
107 };
108 
109 const uint8_t FRAGMENT_ENCODE_SET[32] = {
110   // 00     01     02     03     04     05     06     07
111     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
112   // 08     09     0A     0B     0C     0D     0E     0F
113     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
114   // 10     11     12     13     14     15     16     17
115     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
116   // 18     19     1A     1B     1C     1D     1E     1F
117     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
118   // 20     21     22     23     24     25     26     27
119     0x01 | 0x00 | 0x04 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
120   // 28     29     2A     2B     2C     2D     2E     2F
121     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
122   // 30     31     32     33     34     35     36     37
123     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
124   // 38     39     3A     3B     3C     3D     3E     3F
125     0x00 | 0x00 | 0x00 | 0x00 | 0x10 | 0x00 | 0x40 | 0x00,
126   // 40     41     42     43     44     45     46     47
127     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
128   // 48     49     4A     4B     4C     4D     4E     4F
129     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
130   // 50     51     52     53     54     55     56     57
131     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
132   // 58     59     5A     5B     5C     5D     5E     5F
133     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
134   // 60     61     62     63     64     65     66     67
135     0x01 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
136   // 68     69     6A     6B     6C     6D     6E     6F
137     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
138   // 70     71     72     73     74     75     76     77
139     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
140   // 78     79     7A     7B     7C     7D     7E     7F
141     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x80,
142   // 80     81     82     83     84     85     86     87
143     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
144   // 88     89     8A     8B     8C     8D     8E     8F
145     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
146   // 90     91     92     93     94     95     96     97
147     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
148   // 98     99     9A     9B     9C     9D     9E     9F
149     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
150   // A0     A1     A2     A3     A4     A5     A6     A7
151     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
152   // A8     A9     AA     AB     AC     AD     AE     AF
153     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
154   // B0     B1     B2     B3     B4     B5     B6     B7
155     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
156   // B8     B9     BA     BB     BC     BD     BE     BF
157     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
158   // C0     C1     C2     C3     C4     C5     C6     C7
159     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
160   // C8     C9     CA     CB     CC     CD     CE     CF
161     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
162   // D0     D1     D2     D3     D4     D5     D6     D7
163     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
164   // D8     D9     DA     DB     DC     DD     DE     DF
165     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
166   // E0     E1     E2     E3     E4     E5     E6     E7
167     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
168   // E8     E9     EA     EB     EC     ED     EE     EF
169     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
170   // F0     F1     F2     F3     F4     F5     F6     F7
171     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
172   // F8     F9     FA     FB     FC     FD     FE     FF
173     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80
174 };
175 
176 
177 const uint8_t PATH_ENCODE_SET[32] = {
178   // 00     01     02     03     04     05     06     07
179     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
180   // 08     09     0A     0B     0C     0D     0E     0F
181     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
182   // 10     11     12     13     14     15     16     17
183     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
184   // 18     19     1A     1B     1C     1D     1E     1F
185     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
186   // 20     21     22     23     24     25     26     27
187     0x01 | 0x00 | 0x04 | 0x08 | 0x00 | 0x00 | 0x00 | 0x00,
188   // 28     29     2A     2B     2C     2D     2E     2F
189     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
190   // 30     31     32     33     34     35     36     37
191     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
192   // 38     39     3A     3B     3C     3D     3E     3F
193     0x00 | 0x00 | 0x00 | 0x00 | 0x10 | 0x00 | 0x40 | 0x80,
194   // 40     41     42     43     44     45     46     47
195     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
196   // 48     49     4A     4B     4C     4D     4E     4F
197     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
198   // 50     51     52     53     54     55     56     57
199     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
200   // 58     59     5A     5B     5C     5D     5E     5F
201     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
202   // 60     61     62     63     64     65     66     67
203     0x01 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
204   // 68     69     6A     6B     6C     6D     6E     6F
205     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
206   // 70     71     72     73     74     75     76     77
207     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
208   // 78     79     7A     7B     7C     7D     7E     7F
209     0x00 | 0x00 | 0x00 | 0x08 | 0x00 | 0x20 | 0x00 | 0x80,
210   // 80     81     82     83     84     85     86     87
211     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
212   // 88     89     8A     8B     8C     8D     8E     8F
213     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
214   // 90     91     92     93     94     95     96     97
215     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
216   // 98     99     9A     9B     9C     9D     9E     9F
217     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
218   // A0     A1     A2     A3     A4     A5     A6     A7
219     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
220   // A8     A9     AA     AB     AC     AD     AE     AF
221     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
222   // B0     B1     B2     B3     B4     B5     B6     B7
223     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
224   // B8     B9     BA     BB     BC     BD     BE     BF
225     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
226   // C0     C1     C2     C3     C4     C5     C6     C7
227     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
228   // C8     C9     CA     CB     CC     CD     CE     CF
229     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
230   // D0     D1     D2     D3     D4     D5     D6     D7
231     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
232   // D8     D9     DA     DB     DC     DD     DE     DF
233     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
234   // E0     E1     E2     E3     E4     E5     E6     E7
235     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
236   // E8     E9     EA     EB     EC     ED     EE     EF
237     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
238   // F0     F1     F2     F3     F4     F5     F6     F7
239     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
240   // F8     F9     FA     FB     FC     FD     FE     FF
241     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80
242 };
243 
244 const uint8_t USERINFO_ENCODE_SET[32] = {
245   // 00     01     02     03     04     05     06     07
246     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
247   // 08     09     0A     0B     0C     0D     0E     0F
248     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
249   // 10     11     12     13     14     15     16     17
250     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
251   // 18     19     1A     1B     1C     1D     1E     1F
252     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
253   // 20     21     22     23     24     25     26     27
254     0x01 | 0x00 | 0x04 | 0x08 | 0x00 | 0x00 | 0x00 | 0x00,
255   // 28     29     2A     2B     2C     2D     2E     2F
256     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x80,
257   // 30     31     32     33     34     35     36     37
258     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
259   // 38     39     3A     3B     3C     3D     3E     3F
260     0x00 | 0x00 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
261   // 40     41     42     43     44     45     46     47
262     0x01 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
263   // 48     49     4A     4B     4C     4D     4E     4F
264     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
265   // 50     51     52     53     54     55     56     57
266     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
267   // 58     59     5A     5B     5C     5D     5E     5F
268     0x00 | 0x00 | 0x00 | 0x08 | 0x10 | 0x20 | 0x40 | 0x00,
269   // 60     61     62     63     64     65     66     67
270     0x01 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
271   // 68     69     6A     6B     6C     6D     6E     6F
272     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
273   // 70     71     72     73     74     75     76     77
274     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
275   // 78     79     7A     7B     7C     7D     7E     7F
276     0x00 | 0x00 | 0x00 | 0x08 | 0x10 | 0x20 | 0x00 | 0x80,
277   // 80     81     82     83     84     85     86     87
278     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
279   // 88     89     8A     8B     8C     8D     8E     8F
280     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
281   // 90     91     92     93     94     95     96     97
282     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
283   // 98     99     9A     9B     9C     9D     9E     9F
284     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
285   // A0     A1     A2     A3     A4     A5     A6     A7
286     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
287   // A8     A9     AA     AB     AC     AD     AE     AF
288     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
289   // B0     B1     B2     B3     B4     B5     B6     B7
290     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
291   // B8     B9     BA     BB     BC     BD     BE     BF
292     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
293   // C0     C1     C2     C3     C4     C5     C6     C7
294     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
295   // C8     C9     CA     CB     CC     CD     CE     CF
296     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
297   // D0     D1     D2     D3     D4     D5     D6     D7
298     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
299   // D8     D9     DA     DB     DC     DD     DE     DF
300     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
301   // E0     E1     E2     E3     E4     E5     E6     E7
302     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
303   // E8     E9     EA     EB     EC     ED     EE     EF
304     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
305   // F0     F1     F2     F3     F4     F5     F6     F7
306     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
307   // F8     F9     FA     FB     FC     FD     FE     FF
308     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80
309 };
310 
311 const uint8_t QUERY_ENCODE_SET_NONSPECIAL[32] = {
312   // 00     01     02     03     04     05     06     07
313     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
314   // 08     09     0A     0B     0C     0D     0E     0F
315     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
316   // 10     11     12     13     14     15     16     17
317     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
318   // 18     19     1A     1B     1C     1D     1E     1F
319     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
320   // 20     21     22     23     24     25     26     27
321     0x01 | 0x00 | 0x04 | 0x08 | 0x00 | 0x00 | 0x00 | 0x00,
322   // 28     29     2A     2B     2C     2D     2E     2F
323     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
324   // 30     31     32     33     34     35     36     37
325     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
326   // 38     39     3A     3B     3C     3D     3E     3F
327     0x00 | 0x00 | 0x00 | 0x00 | 0x10 | 0x00 | 0x40 | 0x00,
328   // 40     41     42     43     44     45     46     47
329     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
330   // 48     49     4A     4B     4C     4D     4E     4F
331     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
332   // 50     51     52     53     54     55     56     57
333     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
334   // 58     59     5A     5B     5C     5D     5E     5F
335     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
336   // 60     61     62     63     64     65     66     67
337     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
338   // 68     69     6A     6B     6C     6D     6E     6F
339     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
340   // 70     71     72     73     74     75     76     77
341     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
342   // 78     79     7A     7B     7C     7D     7E     7F
343     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x80,
344   // 80     81     82     83     84     85     86     87
345     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
346   // 88     89     8A     8B     8C     8D     8E     8F
347     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
348   // 90     91     92     93     94     95     96     97
349     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
350   // 98     99     9A     9B     9C     9D     9E     9F
351     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
352   // A0     A1     A2     A3     A4     A5     A6     A7
353     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
354   // A8     A9     AA     AB     AC     AD     AE     AF
355     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
356   // B0     B1     B2     B3     B4     B5     B6     B7
357     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
358   // B8     B9     BA     BB     BC     BD     BE     BF
359     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
360   // C0     C1     C2     C3     C4     C5     C6     C7
361     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
362   // C8     C9     CA     CB     CC     CD     CE     CF
363     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
364   // D0     D1     D2     D3     D4     D5     D6     D7
365     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
366   // D8     D9     DA     DB     DC     DD     DE     DF
367     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
368   // E0     E1     E2     E3     E4     E5     E6     E7
369     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
370   // E8     E9     EA     EB     EC     ED     EE     EF
371     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
372   // F0     F1     F2     F3     F4     F5     F6     F7
373     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
374   // F8     F9     FA     FB     FC     FD     FE     FF
375     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80
376 };
377 
378 // Same as QUERY_ENCODE_SET_NONSPECIAL, but with 0x27 (') encoded.
379 const uint8_t QUERY_ENCODE_SET_SPECIAL[32] = {
380   // 00     01     02     03     04     05     06     07
381     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
382   // 08     09     0A     0B     0C     0D     0E     0F
383     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
384   // 10     11     12     13     14     15     16     17
385     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
386   // 18     19     1A     1B     1C     1D     1E     1F
387     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
388   // 20     21     22     23     24     25     26     27
389     0x01 | 0x00 | 0x04 | 0x08 | 0x00 | 0x00 | 0x00 | 0x80,
390   // 28     29     2A     2B     2C     2D     2E     2F
391     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
392   // 30     31     32     33     34     35     36     37
393     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
394   // 38     39     3A     3B     3C     3D     3E     3F
395     0x00 | 0x00 | 0x00 | 0x00 | 0x10 | 0x00 | 0x40 | 0x00,
396   // 40     41     42     43     44     45     46     47
397     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
398   // 48     49     4A     4B     4C     4D     4E     4F
399     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
400   // 50     51     52     53     54     55     56     57
401     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
402   // 58     59     5A     5B     5C     5D     5E     5F
403     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
404   // 60     61     62     63     64     65     66     67
405     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
406   // 68     69     6A     6B     6C     6D     6E     6F
407     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
408   // 70     71     72     73     74     75     76     77
409     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00,
410   // 78     79     7A     7B     7C     7D     7E     7F
411     0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x00 | 0x80,
412   // 80     81     82     83     84     85     86     87
413     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
414   // 88     89     8A     8B     8C     8D     8E     8F
415     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
416   // 90     91     92     93     94     95     96     97
417     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
418   // 98     99     9A     9B     9C     9D     9E     9F
419     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
420   // A0     A1     A2     A3     A4     A5     A6     A7
421     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
422   // A8     A9     AA     AB     AC     AD     AE     AF
423     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
424   // B0     B1     B2     B3     B4     B5     B6     B7
425     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
426   // B8     B9     BA     BB     BC     BD     BE     BF
427     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
428   // C0     C1     C2     C3     C4     C5     C6     C7
429     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
430   // C8     C9     CA     CB     CC     CD     CE     CF
431     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
432   // D0     D1     D2     D3     D4     D5     D6     D7
433     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
434   // D8     D9     DA     DB     DC     DD     DE     DF
435     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
436   // E0     E1     E2     E3     E4     E5     E6     E7
437     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
438   // E8     E9     EA     EB     EC     ED     EE     EF
439     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
440   // F0     F1     F2     F3     F4     F5     F6     F7
441     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80,
442   // F8     F9     FA     FB     FC     FD     FE     FF
443     0x01 | 0x02 | 0x04 | 0x08 | 0x10 | 0x20 | 0x40 | 0x80
444 };
445 
446 }  // namespace table_data
447 }  // namespace url
448 }  // namespace node
449