• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2std::map<uint64_t, uint32_t> GetOpcodeAndNumOperandsHist() {
3  return std::map<uint64_t, uint32_t>({
4    { CombineOpcodeAndNumOperands(SpvOpExtInst, 7), 158282 },
5    { CombineOpcodeAndNumOperands(SpvOpDot, 4), 151035 },
6    { CombineOpcodeAndNumOperands(SpvOpVectorShuffle, 6), 183292 },
7    { CombineOpcodeAndNumOperands(SpvOpImageSampleImplicitLod, 4), 126492 },
8    { CombineOpcodeAndNumOperands(SpvOpExecutionMode, 2), 13311 },
9    { CombineOpcodeAndNumOperands(SpvOpFNegate, 3), 29952 },
10    { CombineOpcodeAndNumOperands(SpvOpExtInst, 5), 106847 },
11    { CombineOpcodeAndNumOperands(SpvOpImageSampleExplicitLod, 7), 26350 },
12    { CombineOpcodeAndNumOperands(SpvOpImageSampleExplicitLod, 6), 28186 },
13    { CombineOpcodeAndNumOperands(SpvOpFDiv, 4), 41635 },
14    { CombineOpcodeAndNumOperands(SpvOpFMul, 4), 412786 },
15    { CombineOpcodeAndNumOperands(SpvOpFunction, 4), 62905 },
16    { CombineOpcodeAndNumOperands(SpvOpVectorShuffle, 8), 118614 },
17    { CombineOpcodeAndNumOperands(SpvOpDecorate, 2), 100735 },
18    { CombineOpcodeAndNumOperands(SpvOpReturnValue, 1), 40852 },
19    { CombineOpcodeAndNumOperands(SpvOpVectorTimesScalar, 4), 157091 },
20    { CombineOpcodeAndNumOperands(SpvOpExtInst, 6), 122100 },
21    { CombineOpcodeAndNumOperands(SpvOpAccessChain, 5), 82930 },
22    { CombineOpcodeAndNumOperands(SpvOpFSub, 4), 161019 },
23    { CombineOpcodeAndNumOperands(SpvOpConstant, 3), 466014 },
24    { CombineOpcodeAndNumOperands(SpvOpCompositeExtract, 5), 107126 },
25    { CombineOpcodeAndNumOperands(SpvOpTypeImage, 8), 34775 },
26    { CombineOpcodeAndNumOperands(SpvOpImageSampleDrefExplicitLod, 7), 26146 },
27    { CombineOpcodeAndNumOperands(SpvOpMemoryModel, 2), 18879 },
28    { CombineOpcodeAndNumOperands(SpvOpDecorate, 3), 485251 },
29    { CombineOpcodeAndNumOperands(SpvOpCompositeConstruct, 4), 78011 },
30    { CombineOpcodeAndNumOperands(SpvOpTypeFloat, 2), 18879 },
31    { CombineOpcodeAndNumOperands(SpvOpVectorTimesMatrix, 4), 15848 },
32    { CombineOpcodeAndNumOperands(SpvOpTypeVector, 3), 69404 },
33    { CombineOpcodeAndNumOperands(SpvOpTypeFunction, 3), 19998 },
34    { CombineOpcodeAndNumOperands(SpvOpConstantComposite, 6), 40228 },
35    { CombineOpcodeAndNumOperands(SpvOpCapability, 1), 22510 },
36    { CombineOpcodeAndNumOperands(SpvOpTypeArray, 3), 37585 },
37    { CombineOpcodeAndNumOperands(SpvOpTypeInt, 3), 30454 },
38    { CombineOpcodeAndNumOperands(SpvOpFunctionCall, 4), 29021 },
39    { CombineOpcodeAndNumOperands(SpvOpFAdd, 4), 342237 },
40    { CombineOpcodeAndNumOperands(SpvOpTypeMatrix, 3), 24449 },
41    { CombineOpcodeAndNumOperands(SpvOpLabel, 1), 129408 },
42    { CombineOpcodeAndNumOperands(SpvOpTypePointer, 3), 246535 },
43    { CombineOpcodeAndNumOperands(SpvOpAccessChain, 4), 503456 },
44    { CombineOpcodeAndNumOperands(SpvOpTypeFunction, 2), 19779 },
45    { CombineOpcodeAndNumOperands(SpvOpBranchConditional, 3), 24139 },
46    { CombineOpcodeAndNumOperands(SpvOpVariable, 3), 697946 },
47    { CombineOpcodeAndNumOperands(SpvOpConstantComposite, 5), 55769 },
48    { CombineOpcodeAndNumOperands(SpvOpTypeVoid, 1), 18879 },
49    { CombineOpcodeAndNumOperands(SpvOpCompositeConstruct, 6), 145508 },
50    { CombineOpcodeAndNumOperands(SpvOpFunctionParameter, 2), 85583 },
51    { CombineOpcodeAndNumOperands(SpvOpTypeSampledImage, 2), 34775 },
52    { CombineOpcodeAndNumOperands(SpvOpConstantComposite, 4), 66362 },
53    { CombineOpcodeAndNumOperands(SpvOpLoad, 3), 1272902 },
54    { CombineOpcodeAndNumOperands(SpvOpReturn, 0), 22122 },
55    { CombineOpcodeAndNumOperands(SpvOpCompositeExtract, 4), 861008 },
56    { CombineOpcodeAndNumOperands(SpvOpFunctionEnd, 0), 62905 },
57    { CombineOpcodeAndNumOperands(SpvOpExtInstImport, 2), 18879 },
58    { CombineOpcodeAndNumOperands(SpvOpSelectionMerge, 2), 22009 },
59    { CombineOpcodeAndNumOperands(SpvOpBranch, 1), 38275 },
60    { CombineOpcodeAndNumOperands(SpvOpTypeBool, 1), 12208 },
61    { CombineOpcodeAndNumOperands(SpvOpSampledImage, 4), 95518 },
62    { CombineOpcodeAndNumOperands(SpvOpMemberDecorate, 3), 94887 },
63    { CombineOpcodeAndNumOperands(SpvOpMemberDecorate, 4), 1942215 },
64    { CombineOpcodeAndNumOperands(SpvOpCompositeConstruct, 5), 205266 },
65    { CombineOpcodeAndNumOperands(SpvOpUndef, 2), 22157 },
66    { CombineOpcodeAndNumOperands(SpvOpCompositeInsert, 5), 142749 },
67    { CombineOpcodeAndNumOperands(SpvOpCompositeInsert, 6), 24420 },
68    { CombineOpcodeAndNumOperands(SpvOpCompositeExtract, 6), 16896 },
69    { CombineOpcodeAndNumOperands(SpvOpStore, 2), 604982 },
70    { CombineOpcodeAndNumOperands(SpvOpIAdd, 4), 14471 },
71    { CombineOpcodeAndNumOperands(SpvOpVectorShuffle, 7), 269658 },
72    { kMarkvNoneOfTheAbove, 399895 },
73  });
74}
75
76std::map<uint32_t, std::unique_ptr<HuffmanCodec<uint64_t>>>
77GetOpcodeAndNumOperandsMarkovHuffmanCodecs() {
78  std::map<uint32_t, std::unique_ptr<HuffmanCodec<uint64_t>>> codecs;
79  {
80    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(35, {
81      {0, 0, 0},
82      {65790, 0, 0},
83      {131134, 0, 0},
84      {196669, 0, 0},
85      {262209, 0, 0},
86      {262221, 0, 0},
87      {262225, 0, 0},
88      {262230, 0, 0},
89      {262273, 0, 0},
90      {262277, 0, 0},
91      {262286, 0, 0},
92      {327745, 0, 0},
93      {327761, 0, 0},
94      {327762, 0, 0},
95      {393295, 0, 0},
96      {393304, 0, 0},
97      {458831, 0, 0},
98      {458840, 0, 0},
99      {1111111111111111111, 0, 0},
100      {0, 11, 8},
101      {0, 12, 19},
102      {0, 18, 20},
103      {0, 5, 21},
104      {0, 15, 7},
105      {0, 10, 1},
106      {0, 23, 22},
107      {0, 14, 24},
108      {0, 6, 4},
109      {0, 2, 17},
110      {0, 13, 25},
111      {0, 9, 26},
112      {0, 28, 27},
113      {0, 3, 29},
114      {0, 30, 16},
115      {0, 32, 31},
116      {0, 34, 33},
117    }));
118
119    codecs.emplace(SpvOpImageSampleExplicitLod, std::move(codec));
120  }
121
122  {
123    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(55, {
124      {0, 0, 0},
125      {65785, 0, 0},
126      {65790, 0, 0},
127      {131134, 0, 0},
128      {196669, 0, 0},
129      {196735, 0, 0},
130      {262201, 0, 0},
131      {262209, 0, 0},
132      {262224, 0, 0},
133      {262225, 0, 0},
134      {262231, 0, 0},
135      {262273, 0, 0},
136      {262275, 0, 0},
137      {262277, 0, 0},
138      {262280, 0, 0},
139      {262286, 0, 0},
140      {327692, 0, 0},
141      {327745, 0, 0},
142      {327760, 0, 0},
143      {327762, 0, 0},
144      {393228, 0, 0},
145      {393295, 0, 0},
146      {393296, 0, 0},
147      {393303, 0, 0},
148      {393304, 0, 0},
149      {458764, 0, 0},
150      {458831, 0, 0},
151      {524367, 0, 0},
152      {1111111111111111111, 0, 0},
153      {0, 14, 5},
154      {0, 29, 17},
155      {0, 1, 30},
156      {0, 10, 20},
157      {0, 32, 31},
158      {0, 33, 2},
159      {0, 34, 23},
160      {0, 8, 35},
161      {0, 6, 36},
162      {0, 19, 22},
163      {0, 28, 25},
164      {0, 38, 37},
165      {0, 13, 39},
166      {0, 40, 24},
167      {0, 27, 21},
168      {0, 26, 41},
169      {0, 42, 12},
170      {0, 15, 43},
171      {0, 44, 18},
172      {0, 45, 3},
173      {0, 11, 7},
174      {0, 16, 46},
175      {0, 47, 9},
176      {0, 4, 48},
177      {0, 50, 49},
178      {0, 52, 51},
179      {0, 54, 53},
180    }));
181
182    codecs.emplace(SpvOpFDiv, std::move(codec));
183  }
184
185  {
186    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(19, {
187      {0, 0, 0},
188      {196669, 0, 0},
189      {262209, 0, 0},
190      {262224, 0, 0},
191      {262225, 0, 0},
192      {262231, 0, 0},
193      {262286, 0, 0},
194      {393295, 0, 0},
195      {393304, 0, 0},
196      {458840, 0, 0},
197      {1111111111111111111, 0, 0},
198      {0, 8, 10},
199      {0, 11, 3},
200      {0, 2, 9},
201      {0, 4, 1},
202      {0, 5, 6},
203      {0, 13, 12},
204      {0, 15, 14},
205      {0, 16, 7},
206      {0, 18, 17},
207    }));
208
209    codecs.emplace(SpvOpSampledImage, std::move(codec));
210  }
211
212  {
213    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(67, {
214      {0, 0, 0},
215      {65785, 0, 0},
216      {65790, 0, 0},
217      {131134, 0, 0},
218      {131319, 0, 0},
219      {196669, 0, 0},
220      {196735, 0, 0},
221      {262209, 0, 0},
222      {262224, 0, 0},
223      {262225, 0, 0},
224      {262231, 0, 0},
225      {262272, 0, 0},
226      {262273, 0, 0},
227      {262275, 0, 0},
228      {262277, 0, 0},
229      {262280, 0, 0},
230      {262285, 0, 0},
231      {262286, 0, 0},
232      {262292, 0, 0},
233      {327692, 0, 0},
234      {327745, 0, 0},
235      {327760, 0, 0},
236      {327761, 0, 0},
237      {327762, 0, 0},
238      {393228, 0, 0},
239      {393281, 0, 0},
240      {393295, 0, 0},
241      {393296, 0, 0},
242      {393297, 0, 0},
243      {393298, 0, 0},
244      {393304, 0, 0},
245      {458764, 0, 0},
246      {458831, 0, 0},
247      {524367, 0, 0},
248      {1111111111111111111, 0, 0},
249      {0, 4, 10},
250      {0, 30, 35},
251      {0, 1, 36},
252      {0, 11, 37},
253      {0, 38, 6},
254      {0, 16, 39},
255      {0, 15, 40},
256      {0, 25, 2},
257      {0, 41, 20},
258      {0, 26, 19},
259      {0, 42, 29},
260      {0, 28, 22},
261      {0, 23, 34},
262      {0, 44, 43},
263      {0, 17, 45},
264      {0, 24, 27},
265      {0, 18, 33},
266      {0, 47, 46},
267      {0, 8, 48},
268      {0, 50, 49},
269      {0, 32, 51},
270      {0, 31, 52},
271      {0, 53, 21},
272      {0, 54, 13},
273      {0, 3, 55},
274      {0, 7, 14},
275      {0, 57, 56},
276      {0, 58, 5},
277      {0, 59, 9},
278      {0, 61, 60},
279      {0, 63, 62},
280      {0, 64, 12},
281      {0, 66, 65},
282    }));
283
284    codecs.emplace(SpvOpFMul, std::move(codec));
285  }
286
287  {
288    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(79, {
289      {0, 0, 0},
290      {65785, 0, 0},
291      {65790, 0, 0},
292      {131134, 0, 0},
293      {196669, 0, 0},
294      {196735, 0, 0},
295      {262201, 0, 0},
296      {262209, 0, 0},
297      {262224, 0, 0},
298      {262225, 0, 0},
299      {262230, 0, 0},
300      {262231, 0, 0},
301      {262272, 0, 0},
302      {262273, 0, 0},
303      {262275, 0, 0},
304      {262277, 0, 0},
305      {262280, 0, 0},
306      {262286, 0, 0},
307      {262288, 0, 0},
308      {262292, 0, 0},
309      {262328, 0, 0},
310      {262334, 0, 0},
311      {327692, 0, 0},
312      {327737, 0, 0},
313      {327745, 0, 0},
314      {327760, 0, 0},
315      {327761, 0, 0},
316      {327762, 0, 0},
317      {393228, 0, 0},
318      {393281, 0, 0},
319      {393295, 0, 0},
320      {393296, 0, 0},
321      {393297, 0, 0},
322      {393303, 0, 0},
323      {393304, 0, 0},
324      {458764, 0, 0},
325      {458831, 0, 0},
326      {458840, 0, 0},
327      {524345, 0, 0},
328      {524367, 0, 0},
329      {1111111111111111111, 0, 0},
330      {0, 38, 33},
331      {0, 18, 41},
332      {0, 42, 23},
333      {0, 43, 6},
334      {0, 34, 44},
335      {0, 1, 45},
336      {0, 31, 14},
337      {0, 47, 46},
338      {0, 48, 2},
339      {0, 12, 21},
340      {0, 49, 30},
341      {0, 37, 50},
342      {0, 51, 20},
343      {0, 5, 24},
344      {0, 40, 16},
345      {0, 29, 13},
346      {0, 26, 52},
347      {0, 53, 17},
348      {0, 36, 54},
349      {0, 55, 28},
350      {0, 57, 56},
351      {0, 19, 25},
352      {0, 39, 8},
353      {0, 32, 58},
354      {0, 59, 27},
355      {0, 22, 10},
356      {0, 35, 60},
357      {0, 62, 61},
358      {0, 63, 7},
359      {0, 65, 64},
360      {0, 4, 66},
361      {0, 68, 67},
362      {0, 11, 3},
363      {0, 15, 69},
364      {0, 9, 70},
365      {0, 72, 71},
366      {0, 74, 73},
367      {0, 76, 75},
368      {0, 78, 77},
369    }));
370
371    codecs.emplace(SpvOpFAdd, std::move(codec));
372  }
373
374  {
375    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(55, {
376      {0, 0, 0},
377      {65556, 0, 0},
378      {65562, 0, 0},
379      {131073, 0, 0},
380      {131094, 0, 0},
381      {131105, 0, 0},
382      {196629, 0, 0},
383      {196631, 0, 0},
384      {196632, 0, 0},
385      {196636, 0, 0},
386      {196640, 0, 0},
387      {196641, 0, 0},
388      {196651, 0, 0},
389      {196667, 0, 0},
390      {262177, 0, 0},
391      {262188, 0, 0},
392      {262198, 0, 0},
393      {327713, 0, 0},
394      {327724, 0, 0},
395      {393249, 0, 0},
396      {393260, 0, 0},
397      {458785, 0, 0},
398      {524313, 0, 0},
399      {524321, 0, 0},
400      {589857, 0, 0},
401      {655393, 0, 0},
402      {720929, 0, 0},
403      {852001, 0, 0},
404      {1111111111111111111, 0, 0},
405      {0, 26, 24},
406      {0, 29, 27},
407      {0, 4, 30},
408      {0, 21, 9},
409      {0, 31, 20},
410      {0, 33, 32},
411      {0, 34, 3},
412      {0, 8, 35},
413      {0, 36, 5},
414      {0, 23, 16},
415      {0, 38, 37},
416      {0, 25, 2},
417      {0, 39, 1},
418      {0, 17, 40},
419      {0, 41, 15},
420      {0, 18, 42},
421      {0, 43, 6},
422      {0, 44, 14},
423      {0, 28, 19},
424      {0, 7, 45},
425      {0, 46, 22},
426      {0, 48, 47},
427      {0, 49, 11},
428      {0, 51, 50},
429      {0, 12, 10},
430      {0, 53, 52},
431      {0, 13, 54},
432    }));
433
434    codecs.emplace(SpvOpTypePointer, std::move(codec));
435  }
436
437  {
438    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(57, {
439      {0, 0, 0},
440      {65785, 0, 0},
441      {65790, 0, 0},
442      {131134, 0, 0},
443      {196669, 0, 0},
444      {196735, 0, 0},
445      {262209, 0, 0},
446      {262224, 0, 0},
447      {262225, 0, 0},
448      {262272, 0, 0},
449      {262273, 0, 0},
450      {262275, 0, 0},
451      {262277, 0, 0},
452      {262280, 0, 0},
453      {262286, 0, 0},
454      {262292, 0, 0},
455      {262328, 0, 0},
456      {327692, 0, 0},
457      {327745, 0, 0},
458      {327760, 0, 0},
459      {327761, 0, 0},
460      {327762, 0, 0},
461      {393228, 0, 0},
462      {393273, 0, 0},
463      {393295, 0, 0},
464      {393296, 0, 0},
465      {458764, 0, 0},
466      {458831, 0, 0},
467      {524367, 0, 0},
468      {1111111111111111111, 0, 0},
469      {0, 9, 23},
470      {0, 1, 30},
471      {0, 5, 31},
472      {0, 32, 28},
473      {0, 33, 25},
474      {0, 34, 29},
475      {0, 18, 24},
476      {0, 27, 16},
477      {0, 7, 13},
478      {0, 14, 35},
479      {0, 20, 10},
480      {0, 36, 21},
481      {0, 2, 37},
482      {0, 38, 3},
483      {0, 39, 22},
484      {0, 40, 19},
485      {0, 41, 11},
486      {0, 6, 4},
487      {0, 12, 42},
488      {0, 43, 8},
489      {0, 15, 26},
490      {0, 45, 44},
491      {0, 47, 46},
492      {0, 48, 17},
493      {0, 50, 49},
494      {0, 52, 51},
495      {0, 54, 53},
496      {0, 56, 55},
497    }));
498
499    codecs.emplace(SpvOpFSub, std::move(codec));
500  }
501
502  {
503    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(13, {
504      {0, 0, 0},
505      {65785, 0, 0},
506      {131134, 0, 0},
507      {196719, 0, 0},
508      {262209, 0, 0},
509      {262276, 0, 0},
510      {327745, 0, 0},
511      {1111111111111111111, 0, 0},
512      {0, 7, 4},
513      {0, 2, 8},
514      {0, 1, 9},
515      {0, 5, 10},
516      {0, 3, 6},
517      {0, 12, 11},
518    }));
519
520    codecs.emplace(SpvOpIAdd, std::move(codec));
521  }
522
523  {
524    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(83, {
525      {0, 0, 0},
526      {65785, 0, 0},
527      {65790, 0, 0},
528      {131134, 0, 0},
529      {131319, 0, 0},
530      {196669, 0, 0},
531      {196732, 0, 0},
532      {196735, 0, 0},
533      {262209, 0, 0},
534      {262221, 0, 0},
535      {262224, 0, 0},
536      {262225, 0, 0},
537      {262230, 0, 0},
538      {262231, 0, 0},
539      {262273, 0, 0},
540      {262275, 0, 0},
541      {262277, 0, 0},
542      {262280, 0, 0},
543      {262286, 0, 0},
544      {262288, 0, 0},
545      {262292, 0, 0},
546      {262328, 0, 0},
547      {262334, 0, 0},
548      {262340, 0, 0},
549      {327692, 0, 0},
550      {327737, 0, 0},
551      {327745, 0, 0},
552      {327760, 0, 0},
553      {327761, 0, 0},
554      {327762, 0, 0},
555      {393228, 0, 0},
556      {393273, 0, 0},
557      {393295, 0, 0},
558      {393296, 0, 0},
559      {393297, 0, 0},
560      {393298, 0, 0},
561      {393304, 0, 0},
562      {458764, 0, 0},
563      {458831, 0, 0},
564      {458840, 0, 0},
565      {458842, 0, 0},
566      {524367, 0, 0},
567      {1111111111111111111, 0, 0},
568      {0, 25, 2},
569      {0, 31, 43},
570      {0, 4, 44},
571      {0, 26, 45},
572      {0, 39, 46},
573      {0, 34, 36},
574      {0, 19, 47},
575      {0, 6, 48},
576      {0, 35, 9},
577      {0, 12, 29},
578      {0, 21, 49},
579      {0, 22, 13},
580      {0, 17, 50},
581      {0, 23, 51},
582      {0, 52, 7},
583      {0, 37, 1},
584      {0, 53, 3},
585      {0, 54, 24},
586      {0, 56, 55},
587      {0, 32, 57},
588      {0, 59, 58},
589      {0, 42, 10},
590      {0, 60, 8},
591      {0, 5, 41},
592      {0, 61, 20},
593      {0, 62, 38},
594      {0, 64, 63},
595      {0, 40, 65},
596      {0, 66, 18},
597      {0, 15, 28},
598      {0, 14, 67},
599      {0, 68, 30},
600      {0, 70, 69},
601      {0, 72, 71},
602      {0, 73, 27},
603      {0, 16, 74},
604      {0, 75, 33},
605      {0, 77, 76},
606      {0, 79, 78},
607      {0, 81, 80},
608      {0, 82, 11},
609    }));
610
611    codecs.emplace(SpvOpCompositeExtract, std::move(codec));
612  }
613
614  {
615    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(29, {
616      {0, 0, 0},
617      {65790, 0, 0},
618      {131134, 0, 0},
619      {196669, 0, 0},
620      {262209, 0, 0},
621      {262225, 0, 0},
622      {262273, 0, 0},
623      {262288, 0, 0},
624      {262292, 0, 0},
625      {327692, 0, 0},
626      {327761, 0, 0},
627      {327762, 0, 0},
628      {393295, 0, 0},
629      {458831, 0, 0},
630      {524367, 0, 0},
631      {1111111111111111111, 0, 0},
632      {0, 10, 6},
633      {0, 16, 13},
634      {0, 7, 17},
635      {0, 15, 18},
636      {0, 19, 12},
637      {0, 20, 14},
638      {0, 1, 4},
639      {0, 22, 21},
640      {0, 11, 8},
641      {0, 2, 5},
642      {0, 9, 23},
643      {0, 3, 24},
644      {0, 26, 25},
645      {0, 28, 27},
646    }));
647
648    codecs.emplace(SpvOpVectorTimesMatrix, std::move(codec));
649  }
650
651  {
652    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
653      {0, 0, 0},
654      {65784, 0, 0},
655      {1111111111111111111, 0, 0},
656      {0, 1, 2},
657    }));
658
659    codecs.emplace(SpvOpBranch, std::move(codec));
660  }
661
662  {
663    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
664      {0, 0, 0},
665      {262198, 0, 0},
666      {1111111111111111111, 0, 0},
667      {0, 1, 2},
668    }));
669
670    codecs.emplace(SpvOpFunctionEnd, std::move(codec));
671  }
672
673  {
674    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
675      {0, 0, 0},
676      {65784, 0, 0},
677      {1111111111111111111, 0, 0},
678      {0, 1, 2},
679    }));
680
681    codecs.emplace(SpvOpBranchConditional, std::move(codec));
682  }
683
684  {
685    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(53, {
686      {0, 0, 0},
687      {65785, 0, 0},
688      {65790, 0, 0},
689      {131134, 0, 0},
690      {131319, 0, 0},
691      {196665, 0, 0},
692      {196669, 0, 0},
693      {196735, 0, 0},
694      {262201, 0, 0},
695      {262209, 0, 0},
696      {262224, 0, 0},
697      {262225, 0, 0},
698      {262231, 0, 0},
699      {262273, 0, 0},
700      {262275, 0, 0},
701      {262277, 0, 0},
702      {262280, 0, 0},
703      {262286, 0, 0},
704      {262288, 0, 0},
705      {262292, 0, 0},
706      {327692, 0, 0},
707      {327745, 0, 0},
708      {327760, 0, 0},
709      {393228, 0, 0},
710      {393295, 0, 0},
711      {458764, 0, 0},
712      {458831, 0, 0},
713      {1111111111111111111, 0, 0},
714      {0, 25, 16},
715      {0, 21, 28},
716      {0, 18, 23},
717      {0, 4, 29},
718      {0, 10, 5},
719      {0, 1, 30},
720      {0, 32, 31},
721      {0, 22, 33},
722      {0, 34, 8},
723      {0, 35, 15},
724      {0, 13, 36},
725      {0, 26, 17},
726      {0, 38, 37},
727      {0, 39, 11},
728      {0, 40, 14},
729      {0, 12, 27},
730      {0, 19, 41},
731      {0, 24, 42},
732      {0, 44, 43},
733      {0, 45, 7},
734      {0, 20, 46},
735      {0, 9, 47},
736      {0, 48, 2},
737      {0, 50, 49},
738      {0, 6, 3},
739      {0, 52, 51},
740    }));
741
742    codecs.emplace(SpvOpFunctionCall, std::move(codec));
743  }
744
745  {
746    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(71, {
747      {0, 0, 0},
748      {65556, 0, 0},
749      {65562, 0, 0},
750      {131073, 0, 0},
751      {131094, 0, 0},
752      {131099, 0, 0},
753      {131134, 0, 0},
754      {196629, 0, 0},
755      {196631, 0, 0},
756      {196632, 0, 0},
757      {196636, 0, 0},
758      {196640, 0, 0},
759      {196651, 0, 0},
760      {196665, 0, 0},
761      {196667, 0, 0},
762      {196669, 0, 0},
763      {262188, 0, 0},
764      {262198, 0, 0},
765      {262201, 0, 0},
766      {262209, 0, 0},
767      {262225, 0, 0},
768      {262275, 0, 0},
769      {262280, 0, 0},
770      {262292, 0, 0},
771      {327692, 0, 0},
772      {327724, 0, 0},
773      {327737, 0, 0},
774      {327745, 0, 0},
775      {393228, 0, 0},
776      {393260, 0, 0},
777      {393273, 0, 0},
778      {393295, 0, 0},
779      {393296, 0, 0},
780      {458831, 0, 0},
781      {524313, 0, 0},
782      {524367, 0, 0},
783      {1111111111111111111, 0, 0},
784      {0, 22, 4},
785      {0, 32, 23},
786      {0, 37, 30},
787      {0, 21, 38},
788      {0, 39, 31},
789      {0, 41, 40},
790      {0, 13, 42},
791      {0, 43, 26},
792      {0, 10, 44},
793      {0, 28, 45},
794      {0, 35, 18},
795      {0, 20, 46},
796      {0, 33, 47},
797      {0, 24, 48},
798      {0, 6, 49},
799      {0, 3, 50},
800      {0, 16, 51},
801      {0, 27, 52},
802      {0, 53, 1},
803      {0, 9, 17},
804      {0, 29, 54},
805      {0, 19, 2},
806      {0, 8, 36},
807      {0, 55, 34},
808      {0, 25, 56},
809      {0, 7, 57},
810      {0, 5, 58},
811      {0, 60, 59},
812      {0, 61, 15},
813      {0, 63, 62},
814      {0, 65, 64},
815      {0, 66, 11},
816      {0, 12, 67},
817      {0, 69, 68},
818      {0, 14, 70},
819    }));
820
821    codecs.emplace(SpvOpVariable, std::move(codec));
822  }
823
824  {
825    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
826      {0, 0, 0},
827      {131134, 0, 0},
828      {196669, 0, 0},
829      {1111111111111111111, 0, 0},
830      {0, 1, 3},
831      {0, 2, 4},
832    }));
833
834    codecs.emplace(SpvOpAccessChain, std::move(codec));
835  }
836
837  {
838    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(73, {
839      {0, 0, 0},
840      {252, 0, 0},
841      {253, 0, 0},
842      {65785, 0, 0},
843      {65790, 0, 0},
844      {131073, 0, 0},
845      {131134, 0, 0},
846      {131319, 0, 0},
847      {196665, 0, 0},
848      {196667, 0, 0},
849      {196669, 0, 0},
850      {196735, 0, 0},
851      {196854, 0, 0},
852      {262201, 0, 0},
853      {262209, 0, 0},
854      {262221, 0, 0},
855      {262225, 0, 0},
856      {262272, 0, 0},
857      {262273, 0, 0},
858      {262275, 0, 0},
859      {262276, 0, 0},
860      {262277, 0, 0},
861      {262280, 0, 0},
862      {262286, 0, 0},
863      {262292, 0, 0},
864      {262321, 0, 0},
865      {327692, 0, 0},
866      {327745, 0, 0},
867      {327761, 0, 0},
868      {327762, 0, 0},
869      {393228, 0, 0},
870      {393295, 0, 0},
871      {393296, 0, 0},
872      {393298, 0, 0},
873      {393461, 0, 0},
874      {458831, 0, 0},
875      {524367, 0, 0},
876      {1111111111111111111, 0, 0},
877      {0, 28, 5},
878      {0, 30, 8},
879      {0, 13, 38},
880      {0, 40, 39},
881      {0, 41, 26},
882      {0, 42, 19},
883      {0, 43, 29},
884      {0, 23, 44},
885      {0, 36, 32},
886      {0, 45, 22},
887      {0, 2, 46},
888      {0, 21, 20},
889      {0, 48, 47},
890      {0, 33, 49},
891      {0, 4, 50},
892      {0, 51, 24},
893      {0, 18, 11},
894      {0, 52, 12},
895      {0, 25, 15},
896      {0, 53, 17},
897      {0, 37, 54},
898      {0, 55, 35},
899      {0, 7, 27},
900      {0, 57, 56},
901      {0, 58, 31},
902      {0, 6, 59},
903      {0, 1, 60},
904      {0, 62, 61},
905      {0, 63, 14},
906      {0, 3, 16},
907      {0, 34, 64},
908      {0, 66, 65},
909      {0, 68, 67},
910      {0, 70, 69},
911      {0, 10, 9},
912      {0, 72, 71},
913    }));
914
915    codecs.emplace(SpvOpLabel, std::move(codec));
916  }
917
918  {
919    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
920      {0, 0, 0},
921      {56, 0, 0},
922      {65784, 0, 0},
923      {1111111111111111111, 0, 0},
924      {0, 3, 2},
925      {0, 1, 4},
926    }));
927
928    codecs.emplace(SpvOpReturn, std::move(codec));
929  }
930
931  {
932    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
933      {0, 0, 0},
934      {65784, 0, 0},
935      {131127, 0, 0},
936      {1111111111111111111, 0, 0},
937      {0, 1, 3},
938      {0, 2, 4},
939    }));
940
941    codecs.emplace(SpvOpFunction, std::move(codec));
942  }
943
944  {
945    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(31, {
946      {0, 0, 0},
947      {65556, 0, 0},
948      {196629, 0, 0},
949      {196631, 0, 0},
950      {196632, 0, 0},
951      {196636, 0, 0},
952      {196640, 0, 0},
953      {196641, 0, 0},
954      {196651, 0, 0},
955      {196667, 0, 0},
956      {262177, 0, 0},
957      {262188, 0, 0},
958      {262198, 0, 0},
959      {327713, 0, 0},
960      {393260, 0, 0},
961      {524313, 0, 0},
962      {1111111111111111111, 0, 0},
963      {0, 12, 1},
964      {0, 13, 5},
965      {0, 18, 17},
966      {0, 7, 19},
967      {0, 9, 20},
968      {0, 16, 21},
969      {0, 15, 10},
970      {0, 22, 4},
971      {0, 24, 23},
972      {0, 25, 14},
973      {0, 8, 11},
974      {0, 2, 26},
975      {0, 28, 27},
976      {0, 3, 6},
977      {0, 30, 29},
978    }));
979
980    codecs.emplace(SpvOpTypeVector, std::move(codec));
981  }
982
983  {
984    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
985      {0, 0, 0},
986      {65784, 0, 0},
987      {131127, 0, 0},
988      {1111111111111111111, 0, 0},
989      {0, 2, 3},
990      {0, 4, 1},
991    }));
992
993    codecs.emplace(SpvOpFunctionParameter, std::move(codec));
994  }
995
996  {
997    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
998      {0, 0, 0},
999      {56, 0, 0},
1000      {65784, 0, 0},
1001      {1111111111111111111, 0, 0},
1002      {0, 3, 2},
1003      {0, 1, 4},
1004    }));
1005
1006    codecs.emplace(SpvOpReturnValue, std::move(codec));
1007  }
1008
1009  {
1010    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
1011      {0, 0, 0},
1012      {131105, 0, 0},
1013      {1111111111111111111, 0, 0},
1014      {0, 1, 2},
1015    }));
1016
1017    codecs.emplace(SpvOpTypeVoid, std::move(codec));
1018  }
1019
1020  {
1021    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(89, {
1022      {0, 0, 0},
1023      {253, 0, 0},
1024      {65785, 0, 0},
1025      {65790, 0, 0},
1026      {131134, 0, 0},
1027      {131319, 0, 0},
1028      {196665, 0, 0},
1029      {196669, 0, 0},
1030      {196735, 0, 0},
1031      {262201, 0, 0},
1032      {262209, 0, 0},
1033      {262224, 0, 0},
1034      {262225, 0, 0},
1035      {262272, 0, 0},
1036      {262273, 0, 0},
1037      {262275, 0, 0},
1038      {262277, 0, 0},
1039      {262280, 0, 0},
1040      {262286, 0, 0},
1041      {262288, 0, 0},
1042      {262292, 0, 0},
1043      {327692, 0, 0},
1044      {327737, 0, 0},
1045      {327745, 0, 0},
1046      {327760, 0, 0},
1047      {327761, 0, 0},
1048      {327762, 0, 0},
1049      {393228, 0, 0},
1050      {393273, 0, 0},
1051      {393281, 0, 0},
1052      {393295, 0, 0},
1053      {393296, 0, 0},
1054      {458764, 0, 0},
1055      {458809, 0, 0},
1056      {458831, 0, 0},
1057      {524345, 0, 0},
1058      {524367, 0, 0},
1059      {589881, 0, 0},
1060      {655417, 0, 0},
1061      {720953, 0, 0},
1062      {786489, 0, 0},
1063      {852025, 0, 0},
1064      {917561, 0, 0},
1065      {983097, 0, 0},
1066      {1114169, 0, 0},
1067      {1111111111111111111, 0, 0},
1068      {0, 40, 32},
1069      {0, 46, 29},
1070      {0, 38, 27},
1071      {0, 20, 47},
1072      {0, 49, 48},
1073      {0, 50, 44},
1074      {0, 51, 43},
1075      {0, 14, 5},
1076      {0, 42, 52},
1077      {0, 13, 19},
1078      {0, 3, 26},
1079      {0, 54, 53},
1080      {0, 56, 55},
1081      {0, 57, 6},
1082      {0, 39, 37},
1083      {0, 15, 58},
1084      {0, 18, 31},
1085      {0, 59, 21},
1086      {0, 60, 17},
1087      {0, 61, 41},
1088      {0, 62, 24},
1089      {0, 34, 63},
1090      {0, 35, 64},
1091      {0, 65, 8},
1092      {0, 66, 36},
1093      {0, 67, 30},
1094      {0, 16, 11},
1095      {0, 69, 68},
1096      {0, 70, 28},
1097      {0, 22, 71},
1098      {0, 33, 72},
1099      {0, 45, 73},
1100      {0, 75, 74},
1101      {0, 77, 76},
1102      {0, 78, 12},
1103      {0, 1, 2},
1104      {0, 9, 79},
1105      {0, 25, 80},
1106      {0, 23, 81},
1107      {0, 4, 82},
1108      {0, 84, 83},
1109      {0, 86, 85},
1110      {0, 7, 10},
1111      {0, 88, 87},
1112    }));
1113
1114    codecs.emplace(SpvOpStore, std::move(codec));
1115  }
1116
1117  {
1118    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(13, {
1119      {0, 0, 0},
1120      {131075, 0, 0},
1121      {131088, 0, 0},
1122      {131143, 0, 0},
1123      {196624, 0, 0},
1124      {196679, 0, 0},
1125      {262216, 0, 0},
1126      {1111111111111111111, 0, 0},
1127      {0, 3, 4},
1128      {0, 1, 8},
1129      {0, 7, 9},
1130      {0, 6, 10},
1131      {0, 5, 11},
1132      {0, 2, 12},
1133    }));
1134
1135    codecs.emplace(SpvOpEntryPoint, std::move(codec));
1136  }
1137
1138  {
1139    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(97, {
1140      {0, 0, 0},
1141      {65785, 0, 0},
1142      {65790, 0, 0},
1143      {131134, 0, 0},
1144      {131319, 0, 0},
1145      {196665, 0, 0},
1146      {196669, 0, 0},
1147      {196732, 0, 0},
1148      {196735, 0, 0},
1149      {262201, 0, 0},
1150      {262209, 0, 0},
1151      {262224, 0, 0},
1152      {262225, 0, 0},
1153      {262230, 0, 0},
1154      {262231, 0, 0},
1155      {262272, 0, 0},
1156      {262273, 0, 0},
1157      {262275, 0, 0},
1158      {262276, 0, 0},
1159      {262277, 0, 0},
1160      {262280, 0, 0},
1161      {262286, 0, 0},
1162      {262288, 0, 0},
1163      {262292, 0, 0},
1164      {262326, 0, 0},
1165      {262328, 0, 0},
1166      {262330, 0, 0},
1167      {327692, 0, 0},
1168      {327737, 0, 0},
1169      {327745, 0, 0},
1170      {327760, 0, 0},
1171      {327761, 0, 0},
1172      {327762, 0, 0},
1173      {393228, 0, 0},
1174      {393273, 0, 0},
1175      {393281, 0, 0},
1176      {393295, 0, 0},
1177      {393296, 0, 0},
1178      {393297, 0, 0},
1179      {393304, 0, 0},
1180      {458764, 0, 0},
1181      {458809, 0, 0},
1182      {458817, 0, 0},
1183      {458831, 0, 0},
1184      {458840, 0, 0},
1185      {524345, 0, 0},
1186      {524367, 0, 0},
1187      {589881, 0, 0},
1188      {720953, 0, 0},
1189      {1111111111111111111, 0, 0},
1190      {0, 42, 47},
1191      {0, 48, 50},
1192      {0, 45, 51},
1193      {0, 34, 52},
1194      {0, 53, 41},
1195      {0, 1, 54},
1196      {0, 55, 5},
1197      {0, 15, 4},
1198      {0, 56, 35},
1199      {0, 26, 24},
1200      {0, 18, 28},
1201      {0, 57, 38},
1202      {0, 59, 58},
1203      {0, 60, 25},
1204      {0, 20, 9},
1205      {0, 7, 61},
1206      {0, 62, 22},
1207      {0, 11, 31},
1208      {0, 63, 8},
1209      {0, 64, 40},
1210      {0, 66, 65},
1211      {0, 27, 44},
1212      {0, 29, 67},
1213      {0, 68, 39},
1214      {0, 69, 2},
1215      {0, 37, 49},
1216      {0, 71, 70},
1217      {0, 30, 72},
1218      {0, 73, 17},
1219      {0, 33, 74},
1220      {0, 23, 14},
1221      {0, 32, 75},
1222      {0, 21, 76},
1223      {0, 77, 16},
1224      {0, 46, 78},
1225      {0, 13, 79},
1226      {0, 80, 12},
1227      {0, 19, 81},
1228      {0, 43, 36},
1229      {0, 83, 82},
1230      {0, 10, 84},
1231      {0, 85, 3},
1232      {0, 6, 86},
1233      {0, 88, 87},
1234      {0, 90, 89},
1235      {0, 92, 91},
1236      {0, 94, 93},
1237      {0, 96, 95},
1238    }));
1239
1240    codecs.emplace(SpvOpLoad, std::move(codec));
1241  }
1242
1243  {
1244    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(47, {
1245      {0, 0, 0},
1246      {262159, 0, 0},
1247      {327695, 0, 0},
1248      {393231, 0, 0},
1249      {458767, 0, 0},
1250      {524303, 0, 0},
1251      {589839, 0, 0},
1252      {655375, 0, 0},
1253      {720911, 0, 0},
1254      {786447, 0, 0},
1255      {851983, 0, 0},
1256      {917519, 0, 0},
1257      {983055, 0, 0},
1258      {1048591, 0, 0},
1259      {1114127, 0, 0},
1260      {1179663, 0, 0},
1261      {1245199, 0, 0},
1262      {1310735, 0, 0},
1263      {1376271, 0, 0},
1264      {1441807, 0, 0},
1265      {1507343, 0, 0},
1266      {1572879, 0, 0},
1267      {1638415, 0, 0},
1268      {1703951, 0, 0},
1269      {1111111111111111111, 0, 0},
1270      {0, 1, 23},
1271      {0, 22, 25},
1272      {0, 21, 26},
1273      {0, 6, 20},
1274      {0, 19, 27},
1275      {0, 29, 28},
1276      {0, 24, 18},
1277      {0, 30, 13},
1278      {0, 31, 14},
1279      {0, 32, 7},
1280      {0, 17, 15},
1281      {0, 33, 2},
1282      {0, 34, 8},
1283      {0, 16, 12},
1284      {0, 35, 3},
1285      {0, 36, 5},
1286      {0, 9, 37},
1287      {0, 39, 38},
1288      {0, 11, 40},
1289      {0, 4, 10},
1290      {0, 42, 41},
1291      {0, 44, 43},
1292      {0, 46, 45},
1293    }));
1294
1295    codecs.emplace(SpvOpMemoryModel, std::move(codec));
1296  }
1297
1298  {
1299    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
1300      {0, 0, 0},
1301      {196631, 0, 0},
1302      {196640, 0, 0},
1303      {196641, 0, 0},
1304      {1111111111111111111, 0, 0},
1305      {0, 2, 3},
1306      {0, 4, 5},
1307      {0, 1, 6},
1308    }));
1309
1310    codecs.emplace(SpvOpTypeFloat, std::move(codec));
1311  }
1312
1313  {
1314    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(69, {
1315      {0, 0, 0},
1316      {65790, 0, 0},
1317      {131134, 0, 0},
1318      {196669, 0, 0},
1319      {196735, 0, 0},
1320      {262201, 0, 0},
1321      {262209, 0, 0},
1322      {262224, 0, 0},
1323      {262225, 0, 0},
1324      {262231, 0, 0},
1325      {262272, 0, 0},
1326      {262273, 0, 0},
1327      {262275, 0, 0},
1328      {262277, 0, 0},
1329      {262280, 0, 0},
1330      {262286, 0, 0},
1331      {262288, 0, 0},
1332      {262289, 0, 0},
1333      {262292, 0, 0},
1334      {327692, 0, 0},
1335      {327745, 0, 0},
1336      {327760, 0, 0},
1337      {327761, 0, 0},
1338      {327762, 0, 0},
1339      {327849, 0, 0},
1340      {393228, 0, 0},
1341      {393281, 0, 0},
1342      {393295, 0, 0},
1343      {393296, 0, 0},
1344      {393304, 0, 0},
1345      {458764, 0, 0},
1346      {458809, 0, 0},
1347      {458831, 0, 0},
1348      {524345, 0, 0},
1349      {524367, 0, 0},
1350      {1111111111111111111, 0, 0},
1351      {0, 33, 10},
1352      {0, 31, 36},
1353      {0, 26, 37},
1354      {0, 5, 38},
1355      {0, 20, 39},
1356      {0, 22, 40},
1357      {0, 24, 25},
1358      {0, 15, 41},
1359      {0, 9, 17},
1360      {0, 1, 42},
1361      {0, 4, 43},
1362      {0, 35, 44},
1363      {0, 34, 45},
1364      {0, 19, 46},
1365      {0, 7, 29},
1366      {0, 16, 47},
1367      {0, 48, 32},
1368      {0, 49, 27},
1369      {0, 11, 14},
1370      {0, 18, 28},
1371      {0, 23, 50},
1372      {0, 51, 12},
1373      {0, 52, 21},
1374      {0, 6, 53},
1375      {0, 55, 54},
1376      {0, 57, 56},
1377      {0, 3, 58},
1378      {0, 13, 59},
1379      {0, 60, 8},
1380      {0, 30, 61},
1381      {0, 62, 2},
1382      {0, 64, 63},
1383      {0, 66, 65},
1384      {0, 68, 67},
1385    }));
1386
1387    codecs.emplace(SpvOpCompositeConstruct, std::move(codec));
1388  }
1389
1390  {
1391    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(39, {
1392      {0, 0, 0},
1393      {65556, 0, 0},
1394      {131094, 0, 0},
1395      {131105, 0, 0},
1396      {196629, 0, 0},
1397      {196631, 0, 0},
1398      {196632, 0, 0},
1399      {196640, 0, 0},
1400      {196641, 0, 0},
1401      {262177, 0, 0},
1402      {327713, 0, 0},
1403      {393249, 0, 0},
1404      {458785, 0, 0},
1405      {524313, 0, 0},
1406      {524321, 0, 0},
1407      {589857, 0, 0},
1408      {655393, 0, 0},
1409      {786465, 0, 0},
1410      {917537, 0, 0},
1411      {1048609, 0, 0},
1412      {1111111111111111111, 0, 0},
1413      {0, 19, 18},
1414      {0, 21, 15},
1415      {0, 1, 22},
1416      {0, 16, 23},
1417      {0, 14, 24},
1418      {0, 20, 25},
1419      {0, 13, 17},
1420      {0, 3, 26},
1421      {0, 6, 11},
1422      {0, 27, 12},
1423      {0, 4, 28},
1424      {0, 29, 10},
1425      {0, 9, 30},
1426      {0, 7, 31},
1427      {0, 33, 32},
1428      {0, 34, 5},
1429      {0, 8, 35},
1430      {0, 2, 36},
1431      {0, 38, 37},
1432    }));
1433
1434    codecs.emplace(SpvOpTypeFunction, std::move(codec));
1435  }
1436
1437  {
1438    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
1439      {0, 0, 0},
1440      {131086, 0, 0},
1441      {1111111111111111111, 0, 0},
1442      {0, 1, 2},
1443    }));
1444
1445    codecs.emplace(SpvOpExtInstImport, std::move(codec));
1446  }
1447
1448  {
1449    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
1450      {0, 0, 0},
1451      {131099, 0, 0},
1452      {196640, 0, 0},
1453      {1111111111111111111, 0, 0},
1454      {0, 2, 3},
1455      {0, 1, 4},
1456    }));
1457
1458    codecs.emplace(SpvOpTypeImage, std::move(codec));
1459  }
1460
1461  {
1462    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
1463      {0, 0, 0},
1464      {131143, 0, 0},
1465      {196679, 0, 0},
1466      {196680, 0, 0},
1467      {262216, 0, 0},
1468      {1111111111111111111, 0, 0},
1469      {0, 5, 2},
1470      {0, 3, 6},
1471      {0, 7, 1},
1472      {0, 4, 8},
1473    }));
1474
1475    codecs.emplace(SpvOpMemberDecorate, std::move(codec));
1476  }
1477
1478  {
1479    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
1480      {0, 0, 0},
1481      {65553, 0, 0},
1482      {131083, 0, 0},
1483      {1111111111111111111, 0, 0},
1484      {0, 1, 3},
1485      {0, 2, 4},
1486    }));
1487
1488    codecs.emplace(SpvOpCapability, std::move(codec));
1489  }
1490
1491  {
1492    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(17, {
1493      {0, 0, 0},
1494      {196629, 0, 0},
1495      {196631, 0, 0},
1496      {196632, 0, 0},
1497      {196640, 0, 0},
1498      {196651, 0, 0},
1499      {196667, 0, 0},
1500      {327713, 0, 0},
1501      {458785, 0, 0},
1502      {1111111111111111111, 0, 0},
1503      {0, 7, 8},
1504      {0, 1, 10},
1505      {0, 6, 11},
1506      {0, 9, 12},
1507      {0, 4, 13},
1508      {0, 3, 14},
1509      {0, 15, 2},
1510      {0, 5, 16},
1511    }));
1512
1513    codecs.emplace(SpvOpTypeInt, std::move(codec));
1514  }
1515
1516  {
1517    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(29, {
1518      {0, 0, 0},
1519      {65556, 0, 0},
1520      {131073, 0, 0},
1521      {196629, 0, 0},
1522      {196631, 0, 0},
1523      {196632, 0, 0},
1524      {196636, 0, 0},
1525      {196640, 0, 0},
1526      {196651, 0, 0},
1527      {196667, 0, 0},
1528      {262188, 0, 0},
1529      {262198, 0, 0},
1530      {327724, 0, 0},
1531      {393260, 0, 0},
1532      {524313, 0, 0},
1533      {1111111111111111111, 0, 0},
1534      {0, 2, 6},
1535      {0, 16, 3},
1536      {0, 11, 17},
1537      {0, 5, 18},
1538      {0, 15, 19},
1539      {0, 13, 20},
1540      {0, 1, 4},
1541      {0, 12, 21},
1542      {0, 7, 22},
1543      {0, 14, 23},
1544      {0, 24, 10},
1545      {0, 25, 9},
1546      {0, 27, 26},
1547      {0, 8, 28},
1548    }));
1549
1550    codecs.emplace(SpvOpConstantComposite, std::move(codec));
1551  }
1552
1553  {
1554    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(15, {
1555      {0, 0, 0},
1556      {65556, 0, 0},
1557      {196631, 0, 0},
1558      {196640, 0, 0},
1559      {196651, 0, 0},
1560      {196667, 0, 0},
1561      {327724, 0, 0},
1562      {393260, 0, 0},
1563      {1111111111111111111, 0, 0},
1564      {0, 6, 7},
1565      {0, 1, 9},
1566      {0, 10, 8},
1567      {0, 2, 11},
1568      {0, 5, 12},
1569      {0, 13, 4},
1570      {0, 3, 14},
1571    }));
1572
1573    codecs.emplace(SpvOpTypeSampledImage, std::move(codec));
1574  }
1575
1576  {
1577    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(21, {
1578      {0, 0, 0},
1579      {131073, 0, 0},
1580      {196629, 0, 0},
1581      {196631, 0, 0},
1582      {196632, 0, 0},
1583      {196636, 0, 0},
1584      {196640, 0, 0},
1585      {196641, 0, 0},
1586      {196651, 0, 0},
1587      {196667, 0, 0},
1588      {262198, 0, 0},
1589      {1111111111111111111, 0, 0},
1590      {0, 3, 5},
1591      {0, 11, 12},
1592      {0, 8, 13},
1593      {0, 7, 14},
1594      {0, 4, 10},
1595      {0, 9, 2},
1596      {0, 16, 15},
1597      {0, 1, 17},
1598      {0, 19, 18},
1599      {0, 6, 20},
1600    }));
1601
1602    codecs.emplace(SpvOpTypeStruct, std::move(codec));
1603  }
1604
1605  {
1606    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(49, {
1607      {0, 0, 0},
1608      {65785, 0, 0},
1609      {65790, 0, 0},
1610      {131134, 0, 0},
1611      {196669, 0, 0},
1612      {196735, 0, 0},
1613      {262201, 0, 0},
1614      {262209, 0, 0},
1615      {262224, 0, 0},
1616      {262225, 0, 0},
1617      {262272, 0, 0},
1618      {262273, 0, 0},
1619      {262275, 0, 0},
1620      {262277, 0, 0},
1621      {262286, 0, 0},
1622      {262292, 0, 0},
1623      {327692, 0, 0},
1624      {327745, 0, 0},
1625      {327760, 0, 0},
1626      {327762, 0, 0},
1627      {393228, 0, 0},
1628      {393295, 0, 0},
1629      {393296, 0, 0},
1630      {458764, 0, 0},
1631      {458831, 0, 0},
1632      {1111111111111111111, 0, 0},
1633      {0, 20, 12},
1634      {0, 26, 24},
1635      {0, 21, 27},
1636      {0, 28, 16},
1637      {0, 10, 8},
1638      {0, 30, 29},
1639      {0, 31, 17},
1640      {0, 32, 13},
1641      {0, 25, 6},
1642      {0, 1, 33},
1643      {0, 14, 11},
1644      {0, 3, 34},
1645      {0, 18, 35},
1646      {0, 37, 36},
1647      {0, 23, 5},
1648      {0, 38, 2},
1649      {0, 39, 7},
1650      {0, 4, 9},
1651      {0, 40, 19},
1652      {0, 42, 41},
1653      {0, 43, 22},
1654      {0, 45, 44},
1655      {0, 46, 15},
1656      {0, 48, 47},
1657    }));
1658
1659    codecs.emplace(SpvOpFNegate, std::move(codec));
1660  }
1661
1662  {
1663    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(11, {
1664      {0, 0, 0},
1665      {65555, 0, 0},
1666      {131143, 0, 0},
1667      {196679, 0, 0},
1668      {196680, 0, 0},
1669      {262216, 0, 0},
1670      {1111111111111111111, 0, 0},
1671      {0, 4, 6},
1672      {0, 1, 2},
1673      {0, 8, 7},
1674      {0, 5, 9},
1675      {0, 3, 10},
1676    }));
1677
1678    codecs.emplace(SpvOpDecorate, std::move(codec));
1679  }
1680
1681  {
1682    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(25, {
1683      {0, 0, 0},
1684      {65562, 0, 0},
1685      {196629, 0, 0},
1686      {196631, 0, 0},
1687      {196632, 0, 0},
1688      {196636, 0, 0},
1689      {196640, 0, 0},
1690      {196641, 0, 0},
1691      {196651, 0, 0},
1692      {196667, 0, 0},
1693      {262177, 0, 0},
1694      {262198, 0, 0},
1695      {327713, 0, 0},
1696      {1111111111111111111, 0, 0},
1697      {0, 12, 11},
1698      {0, 9, 14},
1699      {0, 10, 15},
1700      {0, 13, 16},
1701      {0, 4, 17},
1702      {0, 2, 1},
1703      {0, 18, 7},
1704      {0, 20, 19},
1705      {0, 21, 3},
1706      {0, 22, 6},
1707      {0, 5, 8},
1708      {0, 24, 23},
1709    }));
1710
1711    codecs.emplace(SpvOpTypeMatrix, std::move(codec));
1712  }
1713
1714  {
1715    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(31, {
1716      {0, 0, 0},
1717      {65556, 0, 0},
1718      {131073, 0, 0},
1719      {131094, 0, 0},
1720      {196629, 0, 0},
1721      {196631, 0, 0},
1722      {196632, 0, 0},
1723      {196636, 0, 0},
1724      {196640, 0, 0},
1725      {196651, 0, 0},
1726      {196667, 0, 0},
1727      {262188, 0, 0},
1728      {262198, 0, 0},
1729      {327724, 0, 0},
1730      {393260, 0, 0},
1731      {524313, 0, 0},
1732      {1111111111111111111, 0, 0},
1733      {0, 12, 2},
1734      {0, 17, 3},
1735      {0, 5, 18},
1736      {0, 1, 19},
1737      {0, 16, 4},
1738      {0, 21, 20},
1739      {0, 6, 15},
1740      {0, 7, 22},
1741      {0, 24, 23},
1742      {0, 13, 14},
1743      {0, 25, 8},
1744      {0, 26, 11},
1745      {0, 27, 10},
1746      {0, 29, 28},
1747      {0, 30, 9},
1748    }));
1749
1750    codecs.emplace(SpvOpConstant, std::move(codec));
1751  }
1752
1753  {
1754    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(33, {
1755      {0, 0, 0},
1756      {131113, 0, 0},
1757      {196629, 0, 0},
1758      {196631, 0, 0},
1759      {196632, 0, 0},
1760      {196640, 0, 0},
1761      {196641, 0, 0},
1762      {196651, 0, 0},
1763      {196667, 0, 0},
1764      {262188, 0, 0},
1765      {262198, 0, 0},
1766      {327713, 0, 0},
1767      {327724, 0, 0},
1768      {393249, 0, 0},
1769      {393260, 0, 0},
1770      {524313, 0, 0},
1771      {524321, 0, 0},
1772      {1111111111111111111, 0, 0},
1773      {0, 6, 4},
1774      {0, 13, 11},
1775      {0, 16, 15},
1776      {0, 18, 10},
1777      {0, 20, 19},
1778      {0, 21, 2},
1779      {0, 23, 22},
1780      {0, 8, 24},
1781      {0, 9, 25},
1782      {0, 17, 26},
1783      {0, 14, 27},
1784      {0, 12, 28},
1785      {0, 1, 3},
1786      {0, 5, 29},
1787      {0, 30, 7},
1788      {0, 32, 31},
1789    }));
1790
1791    codecs.emplace(SpvOpTypeBool, std::move(codec));
1792  }
1793
1794  {
1795    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(11, {
1796      {0, 0, 0},
1797      {196636, 0, 0},
1798      {196640, 0, 0},
1799      {196651, 0, 0},
1800      {196667, 0, 0},
1801      {524313, 0, 0},
1802      {1111111111111111111, 0, 0},
1803      {0, 4, 5},
1804      {0, 3, 7},
1805      {0, 2, 8},
1806      {0, 6, 9},
1807      {0, 1, 10},
1808    }));
1809
1810    codecs.emplace(SpvOpTypeArray, std::move(codec));
1811  }
1812
1813  {
1814    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(67, {
1815      {0, 0, 0},
1816      {65785, 0, 0},
1817      {65790, 0, 0},
1818      {131134, 0, 0},
1819      {131319, 0, 0},
1820      {196669, 0, 0},
1821      {196735, 0, 0},
1822      {262201, 0, 0},
1823      {262209, 0, 0},
1824      {262224, 0, 0},
1825      {262225, 0, 0},
1826      {262231, 0, 0},
1827      {262272, 0, 0},
1828      {262273, 0, 0},
1829      {262275, 0, 0},
1830      {262277, 0, 0},
1831      {262280, 0, 0},
1832      {262286, 0, 0},
1833      {262292, 0, 0},
1834      {262334, 0, 0},
1835      {327692, 0, 0},
1836      {327737, 0, 0},
1837      {327745, 0, 0},
1838      {327760, 0, 0},
1839      {327761, 0, 0},
1840      {327762, 0, 0},
1841      {393228, 0, 0},
1842      {393273, 0, 0},
1843      {393281, 0, 0},
1844      {393295, 0, 0},
1845      {393296, 0, 0},
1846      {458764, 0, 0},
1847      {458831, 0, 0},
1848      {524367, 0, 0},
1849      {1111111111111111111, 0, 0},
1850      {0, 7, 27},
1851      {0, 11, 28},
1852      {0, 35, 21},
1853      {0, 36, 1},
1854      {0, 4, 37},
1855      {0, 39, 38},
1856      {0, 40, 30},
1857      {0, 41, 12},
1858      {0, 19, 42},
1859      {0, 13, 43},
1860      {0, 16, 44},
1861      {0, 45, 22},
1862      {0, 34, 18},
1863      {0, 29, 24},
1864      {0, 46, 25},
1865      {0, 6, 2},
1866      {0, 9, 31},
1867      {0, 17, 47},
1868      {0, 49, 48},
1869      {0, 50, 33},
1870      {0, 51, 26},
1871      {0, 20, 52},
1872      {0, 32, 53},
1873      {0, 3, 54},
1874      {0, 15, 14},
1875      {0, 23, 55},
1876      {0, 8, 56},
1877      {0, 58, 57},
1878      {0, 10, 59},
1879      {0, 5, 60},
1880      {0, 62, 61},
1881      {0, 64, 63},
1882      {0, 66, 65},
1883    }));
1884
1885    codecs.emplace(SpvOpExtInst, std::move(codec));
1886  }
1887
1888  {
1889    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(57, {
1890      {0, 0, 0},
1891      {65790, 0, 0},
1892      {131134, 0, 0},
1893      {196665, 0, 0},
1894      {196669, 0, 0},
1895      {196718, 0, 0},
1896      {262201, 0, 0},
1897      {262209, 0, 0},
1898      {262224, 0, 0},
1899      {262225, 0, 0},
1900      {262231, 0, 0},
1901      {262273, 0, 0},
1902      {262275, 0, 0},
1903      {262277, 0, 0},
1904      {262280, 0, 0},
1905      {262286, 0, 0},
1906      {262292, 0, 0},
1907      {327692, 0, 0},
1908      {327745, 0, 0},
1909      {327760, 0, 0},
1910      {327762, 0, 0},
1911      {393228, 0, 0},
1912      {393273, 0, 0},
1913      {393295, 0, 0},
1914      {393296, 0, 0},
1915      {393303, 0, 0},
1916      {458764, 0, 0},
1917      {458831, 0, 0},
1918      {524367, 0, 0},
1919      {1111111111111111111, 0, 0},
1920      {0, 18, 6},
1921      {0, 30, 22},
1922      {0, 31, 25},
1923      {0, 10, 32},
1924      {0, 21, 33},
1925      {0, 3, 34},
1926      {0, 35, 5},
1927      {0, 23, 36},
1928      {0, 14, 17},
1929      {0, 37, 26},
1930      {0, 1, 38},
1931      {0, 29, 39},
1932      {0, 13, 40},
1933      {0, 41, 19},
1934      {0, 28, 20},
1935      {0, 16, 42},
1936      {0, 27, 43},
1937      {0, 8, 24},
1938      {0, 7, 44},
1939      {0, 9, 45},
1940      {0, 15, 46},
1941      {0, 12, 47},
1942      {0, 48, 2},
1943      {0, 4, 49},
1944      {0, 51, 50},
1945      {0, 11, 52},
1946      {0, 54, 53},
1947      {0, 56, 55},
1948    }));
1949
1950    codecs.emplace(SpvOpVectorTimesScalar, std::move(codec));
1951  }
1952
1953  {
1954    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(67, {
1955      {0, 0, 0},
1956      {65785, 0, 0},
1957      {65790, 0, 0},
1958      {131134, 0, 0},
1959      {196669, 0, 0},
1960      {196735, 0, 0},
1961      {262201, 0, 0},
1962      {262209, 0, 0},
1963      {262224, 0, 0},
1964      {262225, 0, 0},
1965      {262230, 0, 0},
1966      {262231, 0, 0},
1967      {262272, 0, 0},
1968      {262273, 0, 0},
1969      {262275, 0, 0},
1970      {262277, 0, 0},
1971      {262280, 0, 0},
1972      {262286, 0, 0},
1973      {262292, 0, 0},
1974      {327692, 0, 0},
1975      {327737, 0, 0},
1976      {327745, 0, 0},
1977      {327760, 0, 0},
1978      {327761, 0, 0},
1979      {327762, 0, 0},
1980      {393228, 0, 0},
1981      {393273, 0, 0},
1982      {393295, 0, 0},
1983      {393296, 0, 0},
1984      {393303, 0, 0},
1985      {393304, 0, 0},
1986      {458764, 0, 0},
1987      {458831, 0, 0},
1988      {524367, 0, 0},
1989      {1111111111111111111, 0, 0},
1990      {0, 26, 29},
1991      {0, 20, 35},
1992      {0, 12, 36},
1993      {0, 6, 37},
1994      {0, 38, 28},
1995      {0, 30, 5},
1996      {0, 8, 39},
1997      {0, 2, 40},
1998      {0, 41, 21},
1999      {0, 1, 10},
2000      {0, 43, 42},
2001      {0, 23, 16},
2002      {0, 44, 33},
2003      {0, 34, 31},
2004      {0, 14, 45},
2005      {0, 19, 46},
2006      {0, 25, 47},
2007      {0, 49, 48},
2008      {0, 27, 22},
2009      {0, 7, 50},
2010      {0, 17, 32},
2011      {0, 18, 51},
2012      {0, 24, 52},
2013      {0, 54, 53},
2014      {0, 55, 9},
2015      {0, 56, 11},
2016      {0, 57, 4},
2017      {0, 15, 58},
2018      {0, 59, 13},
2019      {0, 60, 3},
2020      {0, 62, 61},
2021      {0, 64, 63},
2022      {0, 66, 65},
2023    }));
2024
2025    codecs.emplace(SpvOpVectorShuffle, std::move(codec));
2026  }
2027
2028  {
2029    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(33, {
2030      {0, 0, 0},
2031      {65790, 0, 0},
2032      {131134, 0, 0},
2033      {196669, 0, 0},
2034      {262201, 0, 0},
2035      {262209, 0, 0},
2036      {262225, 0, 0},
2037      {262231, 0, 0},
2038      {262273, 0, 0},
2039      {262277, 0, 0},
2040      {262286, 0, 0},
2041      {262292, 0, 0},
2042      {327745, 0, 0},
2043      {393281, 0, 0},
2044      {393295, 0, 0},
2045      {393296, 0, 0},
2046      {458831, 0, 0},
2047      {1111111111111111111, 0, 0},
2048      {0, 13, 12},
2049      {0, 1, 18},
2050      {0, 19, 11},
2051      {0, 9, 20},
2052      {0, 10, 21},
2053      {0, 22, 15},
2054      {0, 23, 8},
2055      {0, 4, 24},
2056      {0, 25, 7},
2057      {0, 17, 26},
2058      {0, 5, 27},
2059      {0, 14, 3},
2060      {0, 29, 28},
2061      {0, 30, 2},
2062      {0, 6, 31},
2063      {0, 32, 16},
2064    }));
2065
2066    codecs.emplace(SpvOpImageSampleImplicitLod, std::move(codec));
2067  }
2068
2069  {
2070    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(55, {
2071      {0, 0, 0},
2072      {65785, 0, 0},
2073      {65790, 0, 0},
2074      {131134, 0, 0},
2075      {196669, 0, 0},
2076      {196735, 0, 0},
2077      {196817, 0, 0},
2078      {262209, 0, 0},
2079      {262224, 0, 0},
2080      {262225, 0, 0},
2081      {262273, 0, 0},
2082      {262275, 0, 0},
2083      {262277, 0, 0},
2084      {262280, 0, 0},
2085      {262286, 0, 0},
2086      {262292, 0, 0},
2087      {327692, 0, 0},
2088      {327745, 0, 0},
2089      {327760, 0, 0},
2090      {327761, 0, 0},
2091      {327762, 0, 0},
2092      {393228, 0, 0},
2093      {393281, 0, 0},
2094      {393295, 0, 0},
2095      {393296, 0, 0},
2096      {393298, 0, 0},
2097      {458764, 0, 0},
2098      {458831, 0, 0},
2099      {1111111111111111111, 0, 0},
2100      {0, 5, 2},
2101      {0, 22, 29},
2102      {0, 30, 1},
2103      {0, 6, 31},
2104      {0, 9, 32},
2105      {0, 28, 3},
2106      {0, 27, 33},
2107      {0, 20, 16},
2108      {0, 34, 8},
2109      {0, 10, 35},
2110      {0, 4, 36},
2111      {0, 24, 23},
2112      {0, 21, 13},
2113      {0, 7, 37},
2114      {0, 38, 14},
2115      {0, 25, 39},
2116      {0, 17, 11},
2117      {0, 12, 19},
2118      {0, 41, 40},
2119      {0, 42, 18},
2120      {0, 15, 43},
2121      {0, 45, 44},
2122      {0, 47, 46},
2123      {0, 26, 48},
2124      {0, 50, 49},
2125      {0, 52, 51},
2126      {0, 54, 53},
2127    }));
2128
2129    codecs.emplace(SpvOpDot, std::move(codec));
2130  }
2131
2132  {
2133    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(11, {
2134      {0, 0, 0},
2135      {131075, 0, 0},
2136      {131088, 0, 0},
2137      {196624, 0, 0},
2138      {196679, 0, 0},
2139      {262216, 0, 0},
2140      {1111111111111111111, 0, 0},
2141      {0, 5, 3},
2142      {0, 2, 7},
2143      {0, 1, 8},
2144      {0, 6, 9},
2145      {0, 4, 10},
2146    }));
2147
2148    codecs.emplace(SpvOpExecutionMode, std::move(codec));
2149  }
2150
2151  {
2152    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
2153      {0, 0, 0},
2154      {196858, 0, 0},
2155      {1111111111111111111, 0, 0},
2156      {0, 1, 2},
2157    }));
2158
2159    codecs.emplace(SpvOpSelectionMerge, std::move(codec));
2160  }
2161
2162  {
2163    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(23, {
2164      {0, 0, 0},
2165      {131134, 0, 0},
2166      {196669, 0, 0},
2167      {262209, 0, 0},
2168      {262224, 0, 0},
2169      {262225, 0, 0},
2170      {262277, 0, 0},
2171      {327745, 0, 0},
2172      {327761, 0, 0},
2173      {327762, 0, 0},
2174      {393295, 0, 0},
2175      {393296, 0, 0},
2176      {1111111111111111111, 0, 0},
2177      {0, 2, 12},
2178      {0, 7, 13},
2179      {0, 5, 1},
2180      {0, 4, 10},
2181      {0, 14, 6},
2182      {0, 16, 15},
2183      {0, 17, 11},
2184      {0, 3, 8},
2185      {0, 19, 18},
2186      {0, 9, 20},
2187      {0, 22, 21},
2188    }));
2189
2190    codecs.emplace(SpvOpImageSampleDrefExplicitLod, std::move(codec));
2191  }
2192
2193  {
2194    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
2195      {0, 0, 0},
2196      {65790, 0, 0},
2197      {131073, 0, 0},
2198      {262198, 0, 0},
2199      {1111111111111111111, 0, 0},
2200      {0, 4, 1},
2201      {0, 3, 5},
2202      {0, 2, 6},
2203    }));
2204
2205    codecs.emplace(SpvOpUndef, std::move(codec));
2206  }
2207
2208  {
2209    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(59, {
2210      {0, 0, 0},
2211      {65785, 0, 0},
2212      {131134, 0, 0},
2213      {131319, 0, 0},
2214      {196669, 0, 0},
2215      {196735, 0, 0},
2216      {262209, 0, 0},
2217      {262221, 0, 0},
2218      {262224, 0, 0},
2219      {262225, 0, 0},
2220      {262230, 0, 0},
2221      {262273, 0, 0},
2222      {262275, 0, 0},
2223      {262277, 0, 0},
2224      {262280, 0, 0},
2225      {262286, 0, 0},
2226      {262288, 0, 0},
2227      {262292, 0, 0},
2228      {262334, 0, 0},
2229      {327692, 0, 0},
2230      {327760, 0, 0},
2231      {327761, 0, 0},
2232      {327762, 0, 0},
2233      {393228, 0, 0},
2234      {393295, 0, 0},
2235      {393296, 0, 0},
2236      {393298, 0, 0},
2237      {458764, 0, 0},
2238      {458831, 0, 0},
2239      {524367, 0, 0},
2240      {1111111111111111111, 0, 0},
2241      {0, 17, 3},
2242      {0, 5, 31},
2243      {0, 11, 32},
2244      {0, 33, 12},
2245      {0, 34, 20},
2246      {0, 16, 27},
2247      {0, 35, 23},
2248      {0, 37, 36},
2249      {0, 14, 18},
2250      {0, 39, 38},
2251      {0, 7, 30},
2252      {0, 8, 25},
2253      {0, 40, 15},
2254      {0, 13, 2},
2255      {0, 1, 29},
2256      {0, 19, 41},
2257      {0, 43, 42},
2258      {0, 28, 44},
2259      {0, 46, 45},
2260      {0, 22, 21},
2261      {0, 47, 24},
2262      {0, 48, 26},
2263      {0, 10, 6},
2264      {0, 50, 49},
2265      {0, 52, 51},
2266      {0, 54, 53},
2267      {0, 4, 9},
2268      {0, 56, 55},
2269      {0, 58, 57},
2270    }));
2271
2272    codecs.emplace(SpvOpCompositeInsert, std::move(codec));
2273  }
2274
2275  return codecs;
2276}
2277
2278std::map<uint32_t, std::unique_ptr<HuffmanCodec<std::string>>>
2279GetLiteralStringHuffmanCodecs() {
2280  std::map<uint32_t, std::unique_ptr<HuffmanCodec<std::string>>> codecs;
2281  {
2282    std::unique_ptr<HuffmanCodec<std::string>> codec(new HuffmanCodec<std::string>(7, {
2283      {"", 0, 0},
2284      {"MainPs", 0, 0},
2285      {"MainVs", 0, 0},
2286      {"kMarkvNoneOfTheAbove", 0, 0},
2287      {"main", 0, 0},
2288      {"", 2, 3},
2289      {"", 1, 5},
2290      {"", 4, 6},
2291    }));
2292
2293    codecs.emplace(SpvOpEntryPoint, std::move(codec));
2294  }
2295
2296  {
2297    std::unique_ptr<HuffmanCodec<std::string>> codec(new HuffmanCodec<std::string>(3, {
2298      {"", 0, 0},
2299      {"GLSL.std.450", 0, 0},
2300      {"kMarkvNoneOfTheAbove", 0, 0},
2301      {"", 1, 2},
2302    }));
2303
2304    codecs.emplace(SpvOpExtInstImport, std::move(codec));
2305  }
2306
2307  return codecs;
2308}
2309
2310std::map<std::pair<uint32_t, uint32_t>, std::unique_ptr<HuffmanCodec<uint64_t>>>
2311GetNonIdWordHuffmanCodecs() {
2312  std::map<std::pair<uint32_t, uint32_t>, std::unique_ptr<HuffmanCodec<uint64_t>>> codecs;
2313  {
2314    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(33, {
2315      {0, 0, 0},
2316      {4, 0, 0},
2317      {8, 0, 0},
2318      {10, 0, 0},
2319      {26, 0, 0},
2320      {29, 0, 0},
2321      {31, 0, 0},
2322      {37, 0, 0},
2323      {40, 0, 0},
2324      {43, 0, 0},
2325      {46, 0, 0},
2326      {49, 0, 0},
2327      {66, 0, 0},
2328      {67, 0, 0},
2329      {68, 0, 0},
2330      {69, 0, 0},
2331      {71, 0, 0},
2332      {1111111111111111111, 0, 0},
2333      {0, 12, 5},
2334      {0, 18, 13},
2335      {0, 3, 7},
2336      {0, 19, 11},
2337      {0, 20, 16},
2338      {0, 14, 17},
2339      {0, 21, 1},
2340      {0, 2, 6},
2341      {0, 23, 22},
2342      {0, 4, 24},
2343      {0, 26, 25},
2344      {0, 28, 27},
2345      {0, 10, 15},
2346      {0, 8, 9},
2347      {0, 30, 29},
2348      {0, 32, 31},
2349    }));
2350
2351    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpExtInst, 3), std::move(codec));
2352  }
2353
2354  {
2355    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
2356      {0, 0, 0},
2357      {0, 0, 0},
2358      {1111111111111111111, 0, 0},
2359      {0, 1, 2},
2360    }));
2361
2362    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpMemoryModel, 0), std::move(codec));
2363  }
2364
2365  {
2366    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
2367      {0, 0, 0},
2368      {1, 0, 0},
2369      {1111111111111111111, 0, 0},
2370      {0, 1, 2},
2371    }));
2372
2373    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpMemoryModel, 1), std::move(codec));
2374  }
2375
2376  {
2377    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
2378      {0, 0, 0},
2379      {0, 0, 0},
2380      {4, 0, 0},
2381      {1111111111111111111, 0, 0},
2382      {0, 1, 3},
2383      {0, 2, 4},
2384    }));
2385
2386    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpEntryPoint, 0), std::move(codec));
2387  }
2388
2389  {
2390    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
2391      {0, 0, 0},
2392      {7, 0, 0},
2393      {8, 0, 0},
2394      {1111111111111111111, 0, 0},
2395      {0, 3, 2},
2396      {0, 1, 4},
2397    }));
2398
2399    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpExecutionMode, 1), std::move(codec));
2400  }
2401
2402  {
2403    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(11, {
2404      {0, 0, 0},
2405      {1, 0, 0},
2406      {2, 0, 0},
2407      {3, 0, 0},
2408      {4, 0, 0},
2409      {18, 0, 0},
2410      {1111111111111111111, 0, 0},
2411      {0, 4, 2},
2412      {0, 6, 5},
2413      {0, 7, 1},
2414      {0, 3, 8},
2415      {0, 10, 9},
2416    }));
2417
2418    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpExecutionMode, 2), std::move(codec));
2419  }
2420
2421  {
2422    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
2423      {0, 0, 0},
2424      {1, 0, 0},
2425      {32, 0, 0},
2426      {1111111111111111111, 0, 0},
2427      {0, 2, 3},
2428      {0, 1, 4},
2429    }));
2430
2431    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpCapability, 0), std::move(codec));
2432  }
2433
2434  {
2435    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
2436      {0, 0, 0},
2437      {32, 0, 0},
2438      {1111111111111111111, 0, 0},
2439      {0, 1, 2},
2440    }));
2441
2442    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeInt, 1), std::move(codec));
2443  }
2444
2445  {
2446    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
2447      {0, 0, 0},
2448      {0, 0, 0},
2449      {1, 0, 0},
2450      {1111111111111111111, 0, 0},
2451      {0, 2, 3},
2452      {0, 1, 4},
2453    }));
2454
2455    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeInt, 2), std::move(codec));
2456  }
2457
2458  {
2459    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
2460      {0, 0, 0},
2461      {32, 0, 0},
2462      {1111111111111111111, 0, 0},
2463      {0, 1, 2},
2464    }));
2465
2466    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeFloat, 1), std::move(codec));
2467  }
2468
2469  {
2470    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
2471      {0, 0, 0},
2472      {2, 0, 0},
2473      {3, 0, 0},
2474      {4, 0, 0},
2475      {1111111111111111111, 0, 0},
2476      {0, 2, 4},
2477      {0, 1, 5},
2478      {0, 6, 3},
2479    }));
2480
2481    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeVector, 2), std::move(codec));
2482  }
2483
2484  {
2485    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
2486      {0, 0, 0},
2487      {2, 0, 0},
2488      {3, 0, 0},
2489      {4, 0, 0},
2490      {1111111111111111111, 0, 0},
2491      {0, 1, 4},
2492      {0, 2, 5},
2493      {0, 3, 6},
2494    }));
2495
2496    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeMatrix, 2), std::move(codec));
2497  }
2498
2499  {
2500    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
2501      {0, 0, 0},
2502      {1, 0, 0},
2503      {2, 0, 0},
2504      {3, 0, 0},
2505      {1111111111111111111, 0, 0},
2506      {0, 3, 4},
2507      {0, 2, 5},
2508      {0, 1, 6},
2509    }));
2510
2511    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeImage, 2), std::move(codec));
2512  }
2513
2514  {
2515    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
2516      {0, 0, 0},
2517      {0, 0, 0},
2518      {1, 0, 0},
2519      {1111111111111111111, 0, 0},
2520      {0, 2, 3},
2521      {0, 1, 4},
2522    }));
2523
2524    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeImage, 3), std::move(codec));
2525  }
2526
2527  {
2528    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
2529      {0, 0, 0},
2530      {0, 0, 0},
2531      {1111111111111111111, 0, 0},
2532      {0, 1, 2},
2533    }));
2534
2535    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeImage, 4), std::move(codec));
2536  }
2537
2538  {
2539    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
2540      {0, 0, 0},
2541      {0, 0, 0},
2542      {1111111111111111111, 0, 0},
2543      {0, 1, 2},
2544    }));
2545
2546    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeImage, 5), std::move(codec));
2547  }
2548
2549  {
2550    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
2551      {0, 0, 0},
2552      {1, 0, 0},
2553      {1111111111111111111, 0, 0},
2554      {0, 1, 2},
2555    }));
2556
2557    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeImage, 6), std::move(codec));
2558  }
2559
2560  {
2561    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
2562      {0, 0, 0},
2563      {0, 0, 0},
2564      {1111111111111111111, 0, 0},
2565      {0, 1, 2},
2566    }));
2567
2568    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeImage, 7), std::move(codec));
2569  }
2570
2571  {
2572    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(13, {
2573      {0, 0, 0},
2574      {0, 0, 0},
2575      {1, 0, 0},
2576      {2, 0, 0},
2577      {3, 0, 0},
2578      {6, 0, 0},
2579      {7, 0, 0},
2580      {1111111111111111111, 0, 0},
2581      {0, 5, 7},
2582      {0, 6, 8},
2583      {0, 1, 4},
2584      {0, 2, 9},
2585      {0, 10, 3},
2586      {0, 12, 11},
2587    }));
2588
2589    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypePointer, 1), std::move(codec));
2590  }
2591
2592  {
2593    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(173, {
2594      {0, 0, 0},
2595      {0, 0, 0},
2596      {1, 0, 0},
2597      {2, 0, 0},
2598      {3, 0, 0},
2599      {4, 0, 0},
2600      {5, 0, 0},
2601      {6, 0, 0},
2602      {7, 0, 0},
2603      {8, 0, 0},
2604      {9, 0, 0},
2605      {10, 0, 0},
2606      {11, 0, 0},
2607      {12, 0, 0},
2608      {13, 0, 0},
2609      {14, 0, 0},
2610      {15, 0, 0},
2611      {16, 0, 0},
2612      {17, 0, 0},
2613      {18, 0, 0},
2614      {19, 0, 0},
2615      {20, 0, 0},
2616      {21, 0, 0},
2617      {22, 0, 0},
2618      {23, 0, 0},
2619      {24, 0, 0},
2620      {26, 0, 0},
2621      {27, 0, 0},
2622      {28, 0, 0},
2623      {29, 0, 0},
2624      {30, 0, 0},
2625      {31, 0, 0},
2626      {32, 0, 0},
2627      {256, 0, 0},
2628      {507307272, 0, 0},
2629      {864026611, 0, 0},
2630      {981668463, 0, 0},
2631      {997553156, 0, 0},
2632      {1014330372, 0, 0},
2633      {1020708227, 0, 0},
2634      {1028443341, 0, 0},
2635      {1032953056, 0, 0},
2636      {1033463938, 0, 0},
2637      {1033463943, 0, 0},
2638      {1039998884, 0, 0},
2639      {1039998950, 0, 0},
2640      {1040187392, 0, 0},
2641      {1042401985, 0, 0},
2642      {1044220635, 0, 0},
2643      {1045622707, 0, 0},
2644      {1045622740, 0, 0},
2645      {1048576000, 0, 0},
2646      {1053609165, 0, 0},
2647      {1053790359, 0, 0},
2648      {1054448026, 0, 0},
2649      {1055437881, 0, 0},
2650      {1056300230, 0, 0},
2651      {1056964608, 0, 0},
2652      {1058056805, 0, 0},
2653      {1059286575, 0, 0},
2654      {1061158912, 0, 0},
2655      {1061997773, 0, 0},
2656      {1064514355, 0, 0},
2657      {1064854933, 0, 0},
2658      {1065353216, 0, 0},
2659      {1069547520, 0, 0},
2660      {1073741824, 0, 0},
2661      {1077936128, 0, 0},
2662      {1082130432, 0, 0},
2663      {1091567616, 0, 0},
2664      {1115422720, 0, 0},
2665      {1124073472, 0, 0},
2666      {1132396544, 0, 0},
2667      {1140850688, 0, 0},
2668      {1199562752, 0, 0},
2669      {3179067684, 0, 0},
2670      {3180973575, 0, 0},
2671      {3182651297, 0, 0},
2672      {3196448879, 0, 0},
2673      {3204448256, 0, 0},
2674      {3204993516, 0, 0},
2675      {3205248529, 0, 0},
2676      {3207137644, 0, 0},
2677      {3208642560, 0, 0},
2678      {3211081967, 0, 0},
2679      {3212836864, 0, 0},
2680      {3332128768, 0, 0},
2681      {1111111111111111111, 0, 0},
2682      {0, 38, 37},
2683      {0, 42, 39},
2684      {0, 49, 44},
2685      {0, 45, 43},
2686      {0, 26, 50},
2687      {0, 46, 73},
2688      {0, 35, 28},
2689      {0, 32, 65},
2690      {0, 83, 40},
2691      {0, 60, 62},
2692      {0, 27, 54},
2693      {0, 79, 67},
2694      {0, 31, 74},
2695      {0, 51, 12},
2696      {0, 70, 30},
2697      {0, 15, 16},
2698      {0, 88, 25},
2699      {0, 90, 89},
2700      {0, 34, 71},
2701      {0, 72, 29},
2702      {0, 92, 91},
2703      {0, 14, 33},
2704      {0, 94, 93},
2705      {0, 22, 23},
2706      {0, 21, 95},
2707      {0, 19, 24},
2708      {0, 96, 13},
2709      {0, 47, 41},
2710      {0, 53, 48},
2711      {0, 58, 56},
2712      {0, 63, 59},
2713      {0, 76, 75},
2714      {0, 78, 77},
2715      {0, 81, 80},
2716      {0, 84, 82},
2717      {0, 52, 20},
2718      {0, 97, 69},
2719      {0, 99, 98},
2720      {0, 18, 10},
2721      {0, 68, 61},
2722      {0, 17, 100},
2723      {0, 102, 101},
2724      {0, 11, 36},
2725      {0, 104, 103},
2726      {0, 86, 105},
2727      {0, 107, 106},
2728      {0, 109, 108},
2729      {0, 110, 9},
2730      {0, 8, 111},
2731      {0, 113, 112},
2732      {0, 115, 114},
2733      {0, 117, 116},
2734      {0, 119, 118},
2735      {0, 121, 120},
2736      {0, 123, 122},
2737      {0, 125, 124},
2738      {0, 126, 7},
2739      {0, 127, 85},
2740      {0, 6, 128},
2741      {0, 129, 55},
2742      {0, 130, 5},
2743      {0, 132, 131},
2744      {0, 134, 133},
2745      {0, 136, 135},
2746      {0, 137, 66},
2747      {0, 139, 138},
2748      {0, 141, 140},
2749      {0, 143, 142},
2750      {0, 145, 144},
2751      {0, 146, 57},
2752      {0, 147, 64},
2753      {0, 148, 4},
2754      {0, 149, 2},
2755      {0, 151, 150},
2756      {0, 152, 3},
2757      {0, 154, 153},
2758      {0, 156, 155},
2759      {0, 158, 157},
2760      {0, 159, 1},
2761      {0, 160, 87},
2762      {0, 162, 161},
2763      {0, 164, 163},
2764      {0, 166, 165},
2765      {0, 168, 167},
2766      {0, 170, 169},
2767      {0, 172, 171},
2768    }));
2769
2770    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpConstant, 2), std::move(codec));
2771  }
2772
2773  {
2774    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
2775      {0, 0, 0},
2776      {0, 0, 0},
2777      {1111111111111111111, 0, 0},
2778      {0, 1, 2},
2779    }));
2780
2781    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunction, 2), std::move(codec));
2782  }
2783
2784  {
2785    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(13, {
2786      {0, 0, 0},
2787      {0, 0, 0},
2788      {1, 0, 0},
2789      {2, 0, 0},
2790      {3, 0, 0},
2791      {6, 0, 0},
2792      {7, 0, 0},
2793      {1111111111111111111, 0, 0},
2794      {0, 3, 7},
2795      {0, 4, 8},
2796      {0, 9, 2},
2797      {0, 1, 5},
2798      {0, 10, 6},
2799      {0, 12, 11},
2800    }));
2801
2802    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpVariable, 2), std::move(codec));
2803  }
2804
2805  {
2806    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(15, {
2807      {0, 0, 0},
2808      {0, 0, 0},
2809      {2, 0, 0},
2810      {6, 0, 0},
2811      {11, 0, 0},
2812      {30, 0, 0},
2813      {33, 0, 0},
2814      {34, 0, 0},
2815      {1111111111111111111, 0, 0},
2816      {0, 4, 8},
2817      {0, 9, 1},
2818      {0, 3, 10},
2819      {0, 6, 11},
2820      {0, 12, 2},
2821      {0, 7, 5},
2822      {0, 14, 13},
2823    }));
2824
2825    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpDecorate, 1), std::move(codec));
2826  }
2827
2828  {
2829    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(37, {
2830      {0, 0, 0},
2831      {0, 0, 0},
2832      {1, 0, 0},
2833      {2, 0, 0},
2834      {3, 0, 0},
2835      {4, 0, 0},
2836      {5, 0, 0},
2837      {6, 0, 0},
2838      {7, 0, 0},
2839      {8, 0, 0},
2840      {9, 0, 0},
2841      {10, 0, 0},
2842      {12, 0, 0},
2843      {13, 0, 0},
2844      {14, 0, 0},
2845      {15, 0, 0},
2846      {16, 0, 0},
2847      {18, 0, 0},
2848      {64, 0, 0},
2849      {1111111111111111111, 0, 0},
2850      {0, 17, 11},
2851      {0, 10, 13},
2852      {0, 12, 14},
2853      {0, 21, 20},
2854      {0, 9, 22},
2855      {0, 19, 15},
2856      {0, 8, 23},
2857      {0, 18, 24},
2858      {0, 25, 7},
2859      {0, 5, 6},
2860      {0, 26, 16},
2861      {0, 27, 4},
2862      {0, 28, 3},
2863      {0, 30, 29},
2864      {0, 31, 2},
2865      {0, 33, 32},
2866      {0, 35, 34},
2867      {0, 1, 36},
2868    }));
2869
2870    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpDecorate, 2), std::move(codec));
2871  }
2872
2873  {
2874    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(79, {
2875      {0, 0, 0},
2876      {0, 0, 0},
2877      {1, 0, 0},
2878      {2, 0, 0},
2879      {3, 0, 0},
2880      {4, 0, 0},
2881      {5, 0, 0},
2882      {6, 0, 0},
2883      {7, 0, 0},
2884      {8, 0, 0},
2885      {9, 0, 0},
2886      {10, 0, 0},
2887      {11, 0, 0},
2888      {12, 0, 0},
2889      {13, 0, 0},
2890      {14, 0, 0},
2891      {15, 0, 0},
2892      {16, 0, 0},
2893      {17, 0, 0},
2894      {18, 0, 0},
2895      {19, 0, 0},
2896      {20, 0, 0},
2897      {21, 0, 0},
2898      {22, 0, 0},
2899      {23, 0, 0},
2900      {24, 0, 0},
2901      {25, 0, 0},
2902      {26, 0, 0},
2903      {27, 0, 0},
2904      {28, 0, 0},
2905      {29, 0, 0},
2906      {30, 0, 0},
2907      {31, 0, 0},
2908      {32, 0, 0},
2909      {33, 0, 0},
2910      {34, 0, 0},
2911      {35, 0, 0},
2912      {36, 0, 0},
2913      {37, 0, 0},
2914      {38, 0, 0},
2915      {1111111111111111111, 0, 0},
2916      {0, 39, 37},
2917      {0, 40, 36},
2918      {0, 34, 35},
2919      {0, 32, 33},
2920      {0, 30, 31},
2921      {0, 27, 29},
2922      {0, 26, 28},
2923      {0, 42, 41},
2924      {0, 23, 25},
2925      {0, 38, 22},
2926      {0, 44, 43},
2927      {0, 46, 45},
2928      {0, 21, 47},
2929      {0, 19, 20},
2930      {0, 17, 18},
2931      {0, 14, 15},
2932      {0, 12, 10},
2933      {0, 16, 13},
2934      {0, 9, 11},
2935      {0, 7, 8},
2936      {0, 6, 5},
2937      {0, 24, 48},
2938      {0, 50, 49},
2939      {0, 3, 4},
2940      {0, 51, 2},
2941      {0, 1, 52},
2942      {0, 54, 53},
2943      {0, 56, 55},
2944      {0, 58, 57},
2945      {0, 60, 59},
2946      {0, 62, 61},
2947      {0, 64, 63},
2948      {0, 66, 65},
2949      {0, 68, 67},
2950      {0, 70, 69},
2951      {0, 72, 71},
2952      {0, 74, 73},
2953      {0, 76, 75},
2954      {0, 78, 77},
2955    }));
2956
2957    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpMemberDecorate, 1), std::move(codec));
2958  }
2959
2960  {
2961    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
2962      {0, 0, 0},
2963      {4, 0, 0},
2964      {7, 0, 0},
2965      {35, 0, 0},
2966      {1111111111111111111, 0, 0},
2967      {0, 1, 4},
2968      {0, 5, 2},
2969      {0, 3, 6},
2970    }));
2971
2972    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpMemberDecorate, 2), std::move(codec));
2973  }
2974
2975  {
2976    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(149, {
2977      {0, 0, 0},
2978      {0, 0, 0},
2979      {16, 0, 0},
2980      {28, 0, 0},
2981      {32, 0, 0},
2982      {36, 0, 0},
2983      {40, 0, 0},
2984      {44, 0, 0},
2985      {48, 0, 0},
2986      {60, 0, 0},
2987      {64, 0, 0},
2988      {76, 0, 0},
2989      {80, 0, 0},
2990      {84, 0, 0},
2991      {88, 0, 0},
2992      {92, 0, 0},
2993      {96, 0, 0},
2994      {100, 0, 0},
2995      {108, 0, 0},
2996      {112, 0, 0},
2997      {120, 0, 0},
2998      {124, 0, 0},
2999      {128, 0, 0},
3000      {132, 0, 0},
3001      {136, 0, 0},
3002      {140, 0, 0},
3003      {144, 0, 0},
3004      {148, 0, 0},
3005      {152, 0, 0},
3006      {156, 0, 0},
3007      {160, 0, 0},
3008      {172, 0, 0},
3009      {176, 0, 0},
3010      {192, 0, 0},
3011      {204, 0, 0},
3012      {208, 0, 0},
3013      {224, 0, 0},
3014      {236, 0, 0},
3015      {240, 0, 0},
3016      {248, 0, 0},
3017      {256, 0, 0},
3018      {272, 0, 0},
3019      {288, 0, 0},
3020      {292, 0, 0},
3021      {296, 0, 0},
3022      {300, 0, 0},
3023      {304, 0, 0},
3024      {316, 0, 0},
3025      {320, 0, 0},
3026      {332, 0, 0},
3027      {336, 0, 0},
3028      {348, 0, 0},
3029      {352, 0, 0},
3030      {364, 0, 0},
3031      {368, 0, 0},
3032      {372, 0, 0},
3033      {376, 0, 0},
3034      {384, 0, 0},
3035      {392, 0, 0},
3036      {400, 0, 0},
3037      {416, 0, 0},
3038      {424, 0, 0},
3039      {432, 0, 0},
3040      {448, 0, 0},
3041      {460, 0, 0},
3042      {464, 0, 0},
3043      {468, 0, 0},
3044      {472, 0, 0},
3045      {476, 0, 0},
3046      {480, 0, 0},
3047      {488, 0, 0},
3048      {492, 0, 0},
3049      {496, 0, 0},
3050      {512, 0, 0},
3051      {640, 0, 0},
3052      {1111111111111111111, 0, 0},
3053      {0, 14, 17},
3054      {0, 37, 31},
3055      {0, 21, 39},
3056      {0, 24, 23},
3057      {0, 5, 13},
3058      {0, 38, 76},
3059      {0, 51, 77},
3060      {0, 55, 53},
3061      {0, 58, 56},
3062      {0, 64, 61},
3063      {0, 67, 66},
3064      {0, 70, 68},
3065      {0, 54, 71},
3066      {0, 62, 60},
3067      {0, 65, 63},
3068      {0, 73, 72},
3069      {0, 59, 57},
3070      {0, 52, 74},
3071      {0, 50, 69},
3072      {0, 49, 47},
3073      {0, 48, 46},
3074      {0, 45, 43},
3075      {0, 42, 44},
3076      {0, 78, 41},
3077      {0, 20, 18},
3078      {0, 80, 79},
3079      {0, 15, 27},
3080      {0, 7, 34},
3081      {0, 81, 6},
3082      {0, 28, 3},
3083      {0, 35, 82},
3084      {0, 9, 36},
3085      {0, 84, 83},
3086      {0, 86, 85},
3087      {0, 88, 87},
3088      {0, 90, 89},
3089      {0, 92, 91},
3090      {0, 94, 93},
3091      {0, 96, 95},
3092      {0, 98, 97},
3093      {0, 11, 29},
3094      {0, 99, 25},
3095      {0, 100, 40},
3096      {0, 102, 101},
3097      {0, 26, 32},
3098      {0, 19, 30},
3099      {0, 16, 12},
3100      {0, 4, 8},
3101      {0, 104, 103},
3102      {0, 106, 105},
3103      {0, 33, 107},
3104      {0, 109, 108},
3105      {0, 111, 110},
3106      {0, 22, 112},
3107      {0, 113, 10},
3108      {0, 115, 114},
3109      {0, 75, 116},
3110      {0, 118, 117},
3111      {0, 119, 1},
3112      {0, 121, 120},
3113      {0, 123, 122},
3114      {0, 125, 124},
3115      {0, 127, 126},
3116      {0, 129, 128},
3117      {0, 131, 130},
3118      {0, 132, 2},
3119      {0, 134, 133},
3120      {0, 136, 135},
3121      {0, 138, 137},
3122      {0, 140, 139},
3123      {0, 142, 141},
3124      {0, 144, 143},
3125      {0, 146, 145},
3126      {0, 148, 147},
3127    }));
3128
3129    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpMemberDecorate, 3), std::move(codec));
3130  }
3131
3132  {
3133    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(11, {
3134      {0, 0, 0},
3135      {0, 0, 0},
3136      {1, 0, 0},
3137      {2, 0, 0},
3138      {3, 0, 0},
3139      {4, 0, 0},
3140      {1111111111111111111, 0, 0},
3141      {0, 2, 6},
3142      {0, 4, 7},
3143      {0, 8, 3},
3144      {0, 9, 5},
3145      {0, 1, 10},
3146    }));
3147
3148    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpVectorShuffle, 4), std::move(codec));
3149  }
3150
3151  {
3152    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(13, {
3153      {0, 0, 0},
3154      {0, 0, 0},
3155      {1, 0, 0},
3156      {2, 0, 0},
3157      {3, 0, 0},
3158      {4, 0, 0},
3159      {5, 0, 0},
3160      {1111111111111111111, 0, 0},
3161      {0, 3, 7},
3162      {0, 8, 5},
3163      {0, 9, 1},
3164      {0, 4, 10},
3165      {0, 11, 6},
3166      {0, 2, 12},
3167    }));
3168
3169    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpVectorShuffle, 5), std::move(codec));
3170  }
3171
3172  {
3173    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(15, {
3174      {0, 0, 0},
3175      {0, 0, 0},
3176      {1, 0, 0},
3177      {2, 0, 0},
3178      {3, 0, 0},
3179      {4, 0, 0},
3180      {5, 0, 0},
3181      {6, 0, 0},
3182      {1111111111111111111, 0, 0},
3183      {0, 6, 8},
3184      {0, 5, 2},
3185      {0, 10, 9},
3186      {0, 1, 4},
3187      {0, 12, 11},
3188      {0, 7, 13},
3189      {0, 3, 14},
3190    }));
3191
3192    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpVectorShuffle, 6), std::move(codec));
3193  }
3194
3195  {
3196    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(15, {
3197      {0, 0, 0},
3198      {0, 0, 0},
3199      {1, 0, 0},
3200      {2, 0, 0},
3201      {3, 0, 0},
3202      {4, 0, 0},
3203      {5, 0, 0},
3204      {6, 0, 0},
3205      {1111111111111111111, 0, 0},
3206      {0, 8, 5},
3207      {0, 9, 7},
3208      {0, 10, 3},
3209      {0, 11, 2},
3210      {0, 6, 1},
3211      {0, 13, 12},
3212      {0, 4, 14},
3213    }));
3214
3215    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpVectorShuffle, 7), std::move(codec));
3216  }
3217
3218  {
3219    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(61, {
3220      {0, 0, 0},
3221      {0, 0, 0},
3222      {1, 0, 0},
3223      {2, 0, 0},
3224      {3, 0, 0},
3225      {4, 0, 0},
3226      {5, 0, 0},
3227      {6, 0, 0},
3228      {7, 0, 0},
3229      {8, 0, 0},
3230      {9, 0, 0},
3231      {10, 0, 0},
3232      {11, 0, 0},
3233      {12, 0, 0},
3234      {13, 0, 0},
3235      {14, 0, 0},
3236      {15, 0, 0},
3237      {16, 0, 0},
3238      {17, 0, 0},
3239      {18, 0, 0},
3240      {19, 0, 0},
3241      {20, 0, 0},
3242      {21, 0, 0},
3243      {22, 0, 0},
3244      {23, 0, 0},
3245      {24, 0, 0},
3246      {27, 0, 0},
3247      {28, 0, 0},
3248      {29, 0, 0},
3249      {30, 0, 0},
3250      {31, 0, 0},
3251      {1111111111111111111, 0, 0},
3252      {0, 30, 16},
3253      {0, 26, 27},
3254      {0, 29, 28},
3255      {0, 18, 22},
3256      {0, 12, 19},
3257      {0, 15, 20},
3258      {0, 14, 23},
3259      {0, 32, 7},
3260      {0, 8, 21},
3261      {0, 11, 33},
3262      {0, 17, 34},
3263      {0, 25, 13},
3264      {0, 36, 35},
3265      {0, 9, 10},
3266      {0, 38, 37},
3267      {0, 39, 31},
3268      {0, 5, 40},
3269      {0, 42, 41},
3270      {0, 44, 43},
3271      {0, 6, 45},
3272      {0, 46, 24},
3273      {0, 48, 47},
3274      {0, 50, 49},
3275      {0, 52, 51},
3276      {0, 54, 53},
3277      {0, 55, 4},
3278      {0, 56, 3},
3279      {0, 57, 2},
3280      {0, 58, 1},
3281      {0, 60, 59},
3282    }));
3283
3284    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpCompositeExtract, 3), std::move(codec));
3285  }
3286
3287  {
3288    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(63, {
3289      {0, 0, 0},
3290      {0, 0, 0},
3291      {1, 0, 0},
3292      {2, 0, 0},
3293      {3, 0, 0},
3294      {4, 0, 0},
3295      {5, 0, 0},
3296      {6, 0, 0},
3297      {7, 0, 0},
3298      {8, 0, 0},
3299      {9, 0, 0},
3300      {10, 0, 0},
3301      {11, 0, 0},
3302      {12, 0, 0},
3303      {13, 0, 0},
3304      {29, 0, 0},
3305      {30, 0, 0},
3306      {31, 0, 0},
3307      {32, 0, 0},
3308      {33, 0, 0},
3309      {34, 0, 0},
3310      {35, 0, 0},
3311      {36, 0, 0},
3312      {37, 0, 0},
3313      {38, 0, 0},
3314      {39, 0, 0},
3315      {40, 0, 0},
3316      {41, 0, 0},
3317      {42, 0, 0},
3318      {43, 0, 0},
3319      {44, 0, 0},
3320      {45, 0, 0},
3321      {1111111111111111111, 0, 0},
3322      {0, 13, 14},
3323      {0, 12, 9},
3324      {0, 11, 25},
3325      {0, 27, 26},
3326      {0, 29, 28},
3327      {0, 31, 30},
3328      {0, 23, 22},
3329      {0, 10, 24},
3330      {0, 8, 21},
3331      {0, 17, 7},
3332      {0, 19, 18},
3333      {0, 15, 20},
3334      {0, 6, 16},
3335      {0, 5, 33},
3336      {0, 35, 34},
3337      {0, 37, 36},
3338      {0, 39, 38},
3339      {0, 41, 40},
3340      {0, 43, 42},
3341      {0, 45, 44},
3342      {0, 47, 46},
3343      {0, 49, 48},
3344      {0, 51, 50},
3345      {0, 32, 52},
3346      {0, 54, 53},
3347      {0, 56, 55},
3348      {0, 58, 57},
3349      {0, 3, 2},
3350      {0, 59, 4},
3351      {0, 60, 1},
3352      {0, 62, 61},
3353    }));
3354
3355    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpCompositeExtract, 4), std::move(codec));
3356  }
3357
3358  {
3359    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
3360      {0, 0, 0},
3361      {0, 0, 0},
3362      {1, 0, 0},
3363      {2, 0, 0},
3364      {3, 0, 0},
3365      {1111111111111111111, 0, 0},
3366      {0, 1, 5},
3367      {0, 3, 2},
3368      {0, 6, 4},
3369      {0, 8, 7},
3370    }));
3371
3372    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpCompositeExtract, 5), std::move(codec));
3373  }
3374
3375  {
3376    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(23, {
3377      {0, 0, 0},
3378      {0, 0, 0},
3379      {1, 0, 0},
3380      {2, 0, 0},
3381      {3, 0, 0},
3382      {4, 0, 0},
3383      {5, 0, 0},
3384      {6, 0, 0},
3385      {7, 0, 0},
3386      {8, 0, 0},
3387      {9, 0, 0},
3388      {10, 0, 0},
3389      {1111111111111111111, 0, 0},
3390      {0, 12, 11},
3391      {0, 10, 13},
3392      {0, 9, 14},
3393      {0, 7, 5},
3394      {0, 8, 6},
3395      {0, 4, 15},
3396      {0, 17, 16},
3397      {0, 18, 3},
3398      {0, 19, 2},
3399      {0, 20, 1},
3400      {0, 22, 21},
3401    }));
3402
3403    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpCompositeInsert, 4), std::move(codec));
3404  }
3405
3406  {
3407    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
3408      {0, 0, 0},
3409      {0, 0, 0},
3410      {1, 0, 0},
3411      {2, 0, 0},
3412      {3, 0, 0},
3413      {1111111111111111111, 0, 0},
3414      {0, 3, 5},
3415      {0, 2, 6},
3416      {0, 7, 1},
3417      {0, 4, 8},
3418    }));
3419
3420    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpCompositeInsert, 5), std::move(codec));
3421  }
3422
3423  {
3424    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
3425      {0, 0, 0},
3426      {1, 0, 0},
3427      {1111111111111111111, 0, 0},
3428      {0, 1, 2},
3429    }));
3430
3431    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpImageSampleImplicitLod, 4), std::move(codec));
3432  }
3433
3434  {
3435    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
3436      {0, 0, 0},
3437      {2, 0, 0},
3438      {10, 0, 0},
3439      {1111111111111111111, 0, 0},
3440      {0, 2, 3},
3441      {0, 1, 4},
3442    }));
3443
3444    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpImageSampleExplicitLod, 4), std::move(codec));
3445  }
3446
3447  {
3448    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
3449      {0, 0, 0},
3450      {2, 0, 0},
3451      {1111111111111111111, 0, 0},
3452      {0, 1, 2},
3453    }));
3454
3455    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpImageSampleDrefExplicitLod, 5), std::move(codec));
3456  }
3457
3458  {
3459    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
3460      {0, 0, 0},
3461      {0, 0, 0},
3462      {1111111111111111111, 0, 0},
3463      {0, 1, 2},
3464    }));
3465
3466    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpSelectionMerge, 1), std::move(codec));
3467  }
3468
3469  return codecs;
3470}
3471
3472std::map<std::pair<uint32_t, uint32_t>, std::unique_ptr<HuffmanCodec<uint64_t>>>
3473GetIdDescriptorHuffmanCodecs() {
3474  std::map<std::pair<uint32_t, uint32_t>, std::unique_ptr<HuffmanCodec<uint64_t>>> codecs;
3475  {
3476    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
3477      {0, 0, 0},
3478      {679771963, 0, 0},
3479      {1951208733, 0, 0},
3480      {2320303498, 0, 0},
3481      {3334207724, 0, 0},
3482      {1111111111111111111, 0, 0},
3483      {0, 3, 5},
3484      {0, 4, 6},
3485      {0, 1, 7},
3486      {0, 2, 8},
3487    }));
3488
3489    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpExtInst, 0), std::move(codec));
3490  }
3491
3492  {
3493    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(63, {
3494      {0, 0, 0},
3495      {34183582, 0, 0},
3496      {223800276, 0, 0},
3497      {295018543, 0, 0},
3498      {439764402, 0, 0},
3499      {443558693, 0, 0},
3500      {583624926, 0, 0},
3501      {599185303, 0, 0},
3502      {779021139, 0, 0},
3503      {1015552308, 0, 0},
3504      {1027242654, 0, 0},
3505      {1077859090, 0, 0},
3506      {1104362365, 0, 0},
3507      {1132589448, 0, 0},
3508      {1236389532, 0, 0},
3509      {1739837626, 0, 0},
3510      {1955104493, 0, 0},
3511      {2161102232, 0, 0},
3512      {2197874825, 0, 0},
3513      {2217833278, 0, 0},
3514      {2244470522, 0, 0},
3515      {2532518896, 0, 0},
3516      {2789375411, 0, 0},
3517      {3061690214, 0, 0},
3518      {3287039847, 0, 0},
3519      {3357301402, 0, 0},
3520      {3365041621, 0, 0},
3521      {3510257966, 0, 0},
3522      {3534235309, 0, 0},
3523      {4018237905, 0, 0},
3524      {4145966869, 0, 0},
3525      {4272200782, 0, 0},
3526      {1111111111111111111, 0, 0},
3527      {0, 10, 19},
3528      {0, 6, 1},
3529      {0, 26, 13},
3530      {0, 2, 11},
3531      {0, 15, 22},
3532      {0, 23, 18},
3533      {0, 4, 27},
3534      {0, 28, 12},
3535      {0, 3, 30},
3536      {0, 9, 7},
3537      {0, 20, 14},
3538      {0, 29, 16},
3539      {0, 21, 8},
3540      {0, 34, 33},
3541      {0, 36, 35},
3542      {0, 31, 25},
3543      {0, 37, 24},
3544      {0, 39, 38},
3545      {0, 41, 40},
3546      {0, 43, 42},
3547      {0, 45, 44},
3548      {0, 17, 5},
3549      {0, 47, 46},
3550      {0, 49, 48},
3551      {0, 51, 50},
3552      {0, 53, 52},
3553      {0, 55, 54},
3554      {0, 57, 56},
3555      {0, 59, 58},
3556      {0, 61, 60},
3557      {0, 32, 62},
3558    }));
3559
3560    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpExtInst, 1), std::move(codec));
3561  }
3562
3563  {
3564    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
3565      {0, 0, 0},
3566      {4228502127, 0, 0},
3567      {1111111111111111111, 0, 0},
3568      {0, 1, 2},
3569    }));
3570
3571    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpExtInst, 2), std::move(codec));
3572  }
3573
3574  {
3575    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(113, {
3576      {0, 0, 0},
3577      {50998433, 0, 0},
3578      {139011596, 0, 0},
3579      {181902171, 0, 0},
3580      {296981500, 0, 0},
3581      {321630747, 0, 0},
3582      {416853049, 0, 0},
3583      {464259778, 0, 0},
3584      {615982737, 0, 0},
3585      {669982125, 0, 0},
3586      {759277550, 0, 0},
3587      {810488476, 0, 0},
3588      {870594305, 0, 0},
3589      {922996215, 0, 0},
3590      {969500141, 0, 0},
3591      {1015552308, 0, 0},
3592      {1139547465, 0, 0},
3593      {1203545131, 0, 0},
3594      {1220643281, 0, 0},
3595      {1220749418, 0, 0},
3596      {1367301635, 0, 0},
3597      {1395923345, 0, 0},
3598      {1554194368, 0, 0},
3599      {1742737136, 0, 0},
3600      {1755648697, 0, 0},
3601      {1962162282, 0, 0},
3602      {1964254745, 0, 0},
3603      {2055836767, 0, 0},
3604      {2096388952, 0, 0},
3605      {2124837447, 0, 0},
3606      {2161102232, 0, 0},
3607      {2321729979, 0, 0},
3608      {2346547796, 0, 0},
3609      {2399809085, 0, 0},
3610      {2432827426, 0, 0},
3611      {2455417440, 0, 0},
3612      {2572638469, 0, 0},
3613      {2614879967, 0, 0},
3614      {2855506940, 0, 0},
3615      {2919796598, 0, 0},
3616      {2970183398, 0, 0},
3617      {2976066508, 0, 0},
3618      {3044188332, 0, 0},
3619      {3061690214, 0, 0},
3620      {3091876332, 0, 0},
3621      {3104643263, 0, 0},
3622      {3107165180, 0, 0},
3623      {3187066832, 0, 0},
3624      {3413713311, 0, 0},
3625      {3487022798, 0, 0},
3626      {3602693817, 0, 0},
3627      {3678875745, 0, 0},
3628      {3701632935, 0, 0},
3629      {3829325073, 0, 0},
3630      {4040340620, 0, 0},
3631      {4174489262, 0, 0},
3632      {4272200782, 0, 0},
3633      {1111111111111111111, 0, 0},
3634      {0, 33, 7},
3635      {0, 13, 34},
3636      {0, 21, 18},
3637      {0, 53, 22},
3638      {0, 39, 1},
3639      {0, 14, 9},
3640      {0, 43, 26},
3641      {0, 51, 35},
3642      {0, 19, 6},
3643      {0, 15, 25},
3644      {0, 55, 29},
3645      {0, 32, 3},
3646      {0, 27, 44},
3647      {0, 10, 46},
3648      {0, 45, 24},
3649      {0, 36, 40},
3650      {0, 47, 8},
3651      {0, 48, 54},
3652      {0, 58, 5},
3653      {0, 60, 59},
3654      {0, 30, 61},
3655      {0, 62, 56},
3656      {0, 64, 63},
3657      {0, 41, 50},
3658      {0, 66, 65},
3659      {0, 68, 67},
3660      {0, 70, 69},
3661      {0, 37, 31},
3662      {0, 4, 17},
3663      {0, 16, 20},
3664      {0, 72, 71},
3665      {0, 73, 52},
3666      {0, 49, 12},
3667      {0, 75, 74},
3668      {0, 76, 11},
3669      {0, 23, 42},
3670      {0, 78, 77},
3671      {0, 80, 79},
3672      {0, 82, 81},
3673      {0, 84, 83},
3674      {0, 85, 28},
3675      {0, 87, 86},
3676      {0, 89, 88},
3677      {0, 91, 90},
3678      {0, 93, 92},
3679      {0, 94, 2},
3680      {0, 96, 95},
3681      {0, 98, 97},
3682      {0, 100, 99},
3683      {0, 102, 101},
3684      {0, 38, 103},
3685      {0, 105, 104},
3686      {0, 107, 106},
3687      {0, 109, 108},
3688      {0, 111, 110},
3689      {0, 57, 112},
3690    }));
3691
3692    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpExtInst, 4), std::move(codec));
3693  }
3694
3695  {
3696    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(127, {
3697      {0, 0, 0},
3698      {72782198, 0, 0},
3699      {139011596, 0, 0},
3700      {296981500, 0, 0},
3701      {300939750, 0, 0},
3702      {401211099, 0, 0},
3703      {429277936, 0, 0},
3704      {505940164, 0, 0},
3705      {538168945, 0, 0},
3706      {603915804, 0, 0},
3707      {688216667, 0, 0},
3708      {706016261, 0, 0},
3709      {790502615, 0, 0},
3710      {810488476, 0, 0},
3711      {993150979, 0, 0},
3712      {1203545131, 0, 0},
3713      {1206726575, 0, 0},
3714      {1265796414, 0, 0},
3715      {1314843976, 0, 0},
3716      {1367301635, 0, 0},
3717      {1378082995, 0, 0},
3718      {1410311776, 0, 0},
3719      {1443829854, 0, 0},
3720      {1448448666, 0, 0},
3721      {1468919488, 0, 0},
3722      {1496351055, 0, 0},
3723      {1619778288, 0, 0},
3724      {1684282922, 0, 0},
3725      {1848784182, 0, 0},
3726      {1901166356, 0, 0},
3727      {2095546797, 0, 0},
3728      {2096388952, 0, 0},
3729      {2162986400, 0, 0},
3730      {2197874825, 0, 0},
3731      {2246405597, 0, 0},
3732      {2250225826, 0, 0},
3733      {2282454607, 0, 0},
3734      {2328748202, 0, 0},
3735      {2348201466, 0, 0},
3736      {2597020383, 0, 0},
3737      {2633682514, 0, 0},
3738      {2817335337, 0, 0},
3739      {2855506940, 0, 0},
3740      {2936040203, 0, 0},
3741      {2955375511, 0, 0},
3742      {3122368657, 0, 0},
3743      {3154597438, 0, 0},
3744      {3184381405, 0, 0},
3745      {3187066832, 0, 0},
3746      {3233393284, 0, 0},
3747      {3251128023, 0, 0},
3748      {3260309823, 0, 0},
3749      {3441531391, 0, 0},
3750      {3496407048, 0, 0},
3751      {3582002820, 0, 0},
3752      {3647586740, 0, 0},
3753      {3653838348, 0, 0},
3754      {3730093054, 0, 0},
3755      {3759072440, 0, 0},
3756      {3928764629, 0, 0},
3757      {3969279737, 0, 0},
3758      {3994511488, 0, 0},
3759      {4026740269, 0, 0},
3760      {4274214049, 0, 0},
3761      {1111111111111111111, 0, 0},
3762      {0, 43, 23},
3763      {0, 5, 24},
3764      {0, 9, 8},
3765      {0, 36, 21},
3766      {0, 13, 46},
3767      {0, 7, 12},
3768      {0, 35, 20},
3769      {0, 61, 59},
3770      {0, 22, 29},
3771      {0, 38, 62},
3772      {0, 56, 45},
3773      {0, 6, 48},
3774      {0, 33, 30},
3775      {0, 14, 58},
3776      {0, 34, 28},
3777      {0, 51, 40},
3778      {0, 63, 55},
3779      {0, 25, 16},
3780      {0, 17, 11},
3781      {0, 53, 52},
3782      {0, 65, 27},
3783      {0, 39, 41},
3784      {0, 67, 66},
3785      {0, 69, 68},
3786      {0, 10, 4},
3787      {0, 37, 18},
3788      {0, 60, 47},
3789      {0, 1, 32},
3790      {0, 71, 70},
3791      {0, 73, 72},
3792      {0, 57, 26},
3793      {0, 74, 31},
3794      {0, 76, 75},
3795      {0, 77, 44},
3796      {0, 78, 15},
3797      {0, 79, 54},
3798      {0, 81, 80},
3799      {0, 82, 49},
3800      {0, 84, 83},
3801      {0, 86, 85},
3802      {0, 88, 87},
3803      {0, 89, 19},
3804      {0, 91, 90},
3805      {0, 93, 92},
3806      {0, 95, 94},
3807      {0, 2, 96},
3808      {0, 98, 97},
3809      {0, 100, 99},
3810      {0, 102, 101},
3811      {0, 104, 103},
3812      {0, 106, 105},
3813      {0, 3, 107},
3814      {0, 109, 108},
3815      {0, 111, 110},
3816      {0, 113, 112},
3817      {0, 114, 50},
3818      {0, 116, 115},
3819      {0, 118, 117},
3820      {0, 120, 119},
3821      {0, 122, 121},
3822      {0, 124, 123},
3823      {0, 64, 42},
3824      {0, 126, 125},
3825    }));
3826
3827    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpExtInst, 5), std::move(codec));
3828  }
3829
3830  {
3831    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(93, {
3832      {0, 0, 0},
3833      {99347751, 0, 0},
3834      {102542696, 0, 0},
3835      {107497541, 0, 0},
3836      {112452386, 0, 0},
3837      {139011596, 0, 0},
3838      {296981500, 0, 0},
3839      {429277936, 0, 0},
3840      {451957774, 0, 0},
3841      {508217552, 0, 0},
3842      {573901046, 0, 0},
3843      {774727851, 0, 0},
3844      {801484894, 0, 0},
3845      {920604853, 0, 0},
3846      {925559698, 0, 0},
3847      {1022915255, 0, 0},
3848      {1209418480, 0, 0},
3849      {1287937401, 0, 0},
3850      {1319785741, 0, 0},
3851      {1392080469, 0, 0},
3852      {1538342947, 0, 0},
3853      {1541020250, 0, 0},
3854      {1587209598, 0, 0},
3855      {1594733696, 0, 0},
3856      {1631434666, 0, 0},
3857      {1636389511, 0, 0},
3858      {1684282922, 0, 0},
3859      {1859128680, 0, 0},
3860      {1901166356, 0, 0},
3861      {2004567202, 0, 0},
3862      {2119793999, 0, 0},
3863      {2280400314, 0, 0},
3864      {2538917932, 0, 0},
3865      {2677264274, 0, 0},
3866      {2683080096, 0, 0},
3867      {2854085372, 0, 0},
3868      {2879917501, 0, 0},
3869      {3059119137, 0, 0},
3870      {3174324790, 0, 0},
3871      {3194725903, 0, 0},
3872      {3358097187, 0, 0},
3873      {3547456240, 0, 0},
3874      {3614752756, 0, 0},
3875      {3753486980, 0, 0},
3876      {3811268385, 0, 0},
3877      {3953733490, 0, 0},
3878      {3990925720, 0, 0},
3879      {1111111111111111111, 0, 0},
3880      {0, 23, 22},
3881      {0, 36, 31},
3882      {0, 17, 40},
3883      {0, 27, 19},
3884      {0, 35, 33},
3885      {0, 30, 38},
3886      {0, 42, 39},
3887      {0, 46, 32},
3888      {0, 13, 12},
3889      {0, 44, 14},
3890      {0, 29, 11},
3891      {0, 10, 18},
3892      {0, 15, 37},
3893      {0, 1, 4},
3894      {0, 45, 2},
3895      {0, 21, 28},
3896      {0, 8, 5},
3897      {0, 49, 48},
3898      {0, 51, 50},
3899      {0, 53, 52},
3900      {0, 54, 16},
3901      {0, 55, 25},
3902      {0, 56, 3},
3903      {0, 58, 57},
3904      {0, 59, 26},
3905      {0, 20, 7},
3906      {0, 61, 60},
3907      {0, 62, 24},
3908      {0, 41, 63},
3909      {0, 65, 64},
3910      {0, 9, 34},
3911      {0, 67, 66},
3912      {0, 69, 68},
3913      {0, 71, 70},
3914      {0, 73, 72},
3915      {0, 75, 74},
3916      {0, 76, 43},
3917      {0, 78, 77},
3918      {0, 80, 79},
3919      {0, 82, 81},
3920      {0, 84, 83},
3921      {0, 86, 85},
3922      {0, 88, 87},
3923      {0, 90, 89},
3924      {0, 47, 91},
3925      {0, 92, 6},
3926    }));
3927
3928    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpExtInst, 6), std::move(codec));
3929  }
3930
3931  {
3932    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(15, {
3933      {0, 0, 0},
3934      {166253838, 0, 0},
3935      {679771963, 0, 0},
3936      {1247793383, 0, 0},
3937      {2261697609, 0, 0},
3938      {2263349224, 0, 0},
3939      {2320303498, 0, 0},
3940      {3334207724, 0, 0},
3941      {1111111111111111111, 0, 0},
3942      {0, 4, 8},
3943      {0, 9, 1},
3944      {0, 3, 5},
3945      {0, 11, 10},
3946      {0, 2, 12},
3947      {0, 7, 6},
3948      {0, 14, 13},
3949    }));
3950
3951    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeVector, 0), std::move(codec));
3952  }
3953
3954  {
3955    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
3956      {0, 0, 0},
3957      {789872778, 0, 0},
3958      {1415510495, 0, 0},
3959      {1951208733, 0, 0},
3960      {2430404313, 0, 0},
3961      {1111111111111111111, 0, 0},
3962      {0, 2, 5},
3963      {0, 4, 6},
3964      {0, 7, 1},
3965      {0, 3, 8},
3966    }));
3967
3968    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeVector, 1), std::move(codec));
3969  }
3970
3971  {
3972    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(15, {
3973      {0, 0, 0},
3974      {1389644742, 0, 0},
3975      {3232633974, 0, 0},
3976      {3278176820, 0, 0},
3977      {3648138580, 0, 0},
3978      {3687777340, 0, 0},
3979      {3694383800, 0, 0},
3980      {3697687030, 0, 0},
3981      {1111111111111111111, 0, 0},
3982      {0, 5, 4},
3983      {0, 9, 6},
3984      {0, 10, 8},
3985      {0, 2, 11},
3986      {0, 12, 3},
3987      {0, 1, 13},
3988      {0, 14, 7},
3989    }));
3990
3991    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeArray, 0), std::move(codec));
3992  }
3993
3994  {
3995    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
3996      {0, 0, 0},
3997      {1951208733, 0, 0},
3998      {2160380860, 0, 0},
3999      {3334207724, 0, 0},
4000      {1111111111111111111, 0, 0},
4001      {0, 1, 4},
4002      {0, 2, 5},
4003      {0, 3, 6},
4004    }));
4005
4006    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeArray, 1), std::move(codec));
4007  }
4008
4009  {
4010    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(13, {
4011      {0, 0, 0},
4012      {144116905, 0, 0},
4013      {827246872, 0, 0},
4014      {1545298048, 0, 0},
4015      {2715370488, 0, 0},
4016      {2798552666, 0, 0},
4017      {3812456892, 0, 0},
4018      {1111111111111111111, 0, 0},
4019      {0, 2, 3},
4020      {0, 8, 6},
4021      {0, 9, 7},
4022      {0, 1, 10},
4023      {0, 11, 4},
4024      {0, 5, 12},
4025    }));
4026
4027    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeArray, 2), std::move(codec));
4028  }
4029
4030  {
4031    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(67, {
4032      {0, 0, 0},
4033      {40653745, 0, 0},
4034      {119981689, 0, 0},
4035      {153085016, 0, 0},
4036      {451382997, 0, 0},
4037      {545678922, 0, 0},
4038      {899570100, 0, 0},
4039      {929101967, 0, 0},
4040      {1070791291, 0, 0},
4041      {1100599986, 0, 0},
4042      {1103903216, 0, 0},
4043      {1154919607, 0, 0},
4044      {1199157863, 0, 0},
4045      {1258105452, 0, 0},
4046      {1369578001, 0, 0},
4047      {1372881231, 0, 0},
4048      {1674803691, 0, 0},
4049      {1677700667, 0, 0},
4050      {1989520052, 0, 0},
4051      {2593884753, 0, 0},
4052      {2664825925, 0, 0},
4053      {2924146124, 0, 0},
4054      {2926633629, 0, 0},
4055      {3249265647, 0, 0},
4056      {3345288309, 0, 0},
4057      {3410158390, 0, 0},
4058      {3489360962, 0, 0},
4059      {3495967422, 0, 0},
4060      {3504981554, 0, 0},
4061      {3705139860, 0, 0},
4062      {3822983876, 0, 0},
4063      {4141567741, 0, 0},
4064      {4234287173, 0, 0},
4065      {4240893633, 0, 0},
4066      {1111111111111111111, 0, 0},
4067      {0, 15, 23},
4068      {0, 20, 17},
4069      {0, 32, 22},
4070      {0, 19, 12},
4071      {0, 13, 3},
4072      {0, 30, 27},
4073      {0, 4, 35},
4074      {0, 24, 36},
4075      {0, 31, 37},
4076      {0, 33, 38},
4077      {0, 39, 7},
4078      {0, 6, 40},
4079      {0, 41, 29},
4080      {0, 14, 42},
4081      {0, 43, 28},
4082      {0, 10, 44},
4083      {0, 45, 18},
4084      {0, 26, 46},
4085      {0, 5, 47},
4086      {0, 48, 2},
4087      {0, 49, 9},
4088      {0, 50, 16},
4089      {0, 34, 25},
4090      {0, 52, 51},
4091      {0, 54, 53},
4092      {0, 56, 55},
4093      {0, 58, 57},
4094      {0, 60, 59},
4095      {0, 8, 21},
4096      {0, 1, 11},
4097      {0, 62, 61},
4098      {0, 64, 63},
4099      {0, 66, 65},
4100    }));
4101
4102    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 0), std::move(codec));
4103  }
4104
4105  {
4106    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(11, {
4107      {0, 0, 0},
4108      {679771963, 0, 0},
4109      {1951208733, 0, 0},
4110      {2160380860, 0, 0},
4111      {3278176820, 0, 0},
4112      {3334207724, 0, 0},
4113      {1111111111111111111, 0, 0},
4114      {0, 4, 6},
4115      {0, 2, 7},
4116      {0, 3, 8},
4117      {0, 9, 1},
4118      {0, 5, 10},
4119    }));
4120
4121    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 1), std::move(codec));
4122  }
4123
4124  {
4125    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(13, {
4126      {0, 0, 0},
4127      {679771963, 0, 0},
4128      {1951208733, 0, 0},
4129      {2160380860, 0, 0},
4130      {2320303498, 0, 0},
4131      {3232633974, 0, 0},
4132      {3334207724, 0, 0},
4133      {1111111111111111111, 0, 0},
4134      {0, 5, 7},
4135      {0, 2, 8},
4136      {0, 4, 9},
4137      {0, 10, 3},
4138      {0, 1, 6},
4139      {0, 12, 11},
4140    }));
4141
4142    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 2), std::move(codec));
4143  }
4144
4145  {
4146    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(11, {
4147      {0, 0, 0},
4148      {679771963, 0, 0},
4149      {1951208733, 0, 0},
4150      {2160380860, 0, 0},
4151      {2320303498, 0, 0},
4152      {3334207724, 0, 0},
4153      {1111111111111111111, 0, 0},
4154      {0, 5, 6},
4155      {0, 1, 7},
4156      {0, 3, 4},
4157      {0, 8, 2},
4158      {0, 10, 9},
4159    }));
4160
4161    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 3), std::move(codec));
4162  }
4163
4164  {
4165    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(11, {
4166      {0, 0, 0},
4167      {679771963, 0, 0},
4168      {1951208733, 0, 0},
4169      {2160380860, 0, 0},
4170      {2320303498, 0, 0},
4171      {3334207724, 0, 0},
4172      {1111111111111111111, 0, 0},
4173      {0, 2, 6},
4174      {0, 3, 7},
4175      {0, 5, 4},
4176      {0, 8, 1},
4177      {0, 10, 9},
4178    }));
4179
4180    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 4), std::move(codec));
4181  }
4182
4183  {
4184    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
4185      {0, 0, 0},
4186      {679771963, 0, 0},
4187      {1951208733, 0, 0},
4188      {2263349224, 0, 0},
4189      {3334207724, 0, 0},
4190      {1111111111111111111, 0, 0},
4191      {0, 3, 5},
4192      {0, 1, 6},
4193      {0, 2, 7},
4194      {0, 8, 4},
4195    }));
4196
4197    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 5), std::move(codec));
4198  }
4199
4200  {
4201    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
4202      {0, 0, 0},
4203      {679771963, 0, 0},
4204      {1951208733, 0, 0},
4205      {2320303498, 0, 0},
4206      {3334207724, 0, 0},
4207      {1111111111111111111, 0, 0},
4208      {0, 3, 5},
4209      {0, 1, 6},
4210      {0, 2, 7},
4211      {0, 8, 4},
4212    }));
4213
4214    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 6), std::move(codec));
4215  }
4216
4217  {
4218    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
4219      {0, 0, 0},
4220      {679771963, 0, 0},
4221      {1951208733, 0, 0},
4222      {2320303498, 0, 0},
4223      {3334207724, 0, 0},
4224      {1111111111111111111, 0, 0},
4225      {0, 3, 5},
4226      {0, 4, 6},
4227      {0, 7, 1},
4228      {0, 2, 8},
4229    }));
4230
4231    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 7), std::move(codec));
4232  }
4233
4234  {
4235    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
4236      {0, 0, 0},
4237      {679771963, 0, 0},
4238      {1951208733, 0, 0},
4239      {2320303498, 0, 0},
4240      {3334207724, 0, 0},
4241      {1111111111111111111, 0, 0},
4242      {0, 3, 5},
4243      {0, 1, 6},
4244      {0, 7, 4},
4245      {0, 2, 8},
4246    }));
4247
4248    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 8), std::move(codec));
4249  }
4250
4251  {
4252    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
4253      {0, 0, 0},
4254      {1951208733, 0, 0},
4255      {2320303498, 0, 0},
4256      {3334207724, 0, 0},
4257      {1111111111111111111, 0, 0},
4258      {0, 2, 4},
4259      {0, 3, 5},
4260      {0, 1, 6},
4261    }));
4262
4263    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 9), std::move(codec));
4264  }
4265
4266  {
4267    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
4268      {0, 0, 0},
4269      {679771963, 0, 0},
4270      {1951208733, 0, 0},
4271      {2320303498, 0, 0},
4272      {3334207724, 0, 0},
4273      {1111111111111111111, 0, 0},
4274      {0, 5, 3},
4275      {0, 1, 6},
4276      {0, 4, 7},
4277      {0, 8, 2},
4278    }));
4279
4280    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 10), std::move(codec));
4281  }
4282
4283  {
4284    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
4285      {0, 0, 0},
4286      {679771963, 0, 0},
4287      {1951208733, 0, 0},
4288      {2320303498, 0, 0},
4289      {3334207724, 0, 0},
4290      {1111111111111111111, 0, 0},
4291      {0, 3, 5},
4292      {0, 1, 6},
4293      {0, 7, 4},
4294      {0, 8, 2},
4295    }));
4296
4297    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 11), std::move(codec));
4298  }
4299
4300  {
4301    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
4302      {0, 0, 0},
4303      {679771963, 0, 0},
4304      {1951208733, 0, 0},
4305      {1111111111111111111, 0, 0},
4306      {0, 2, 3},
4307      {0, 4, 1},
4308    }));
4309
4310    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 12), std::move(codec));
4311  }
4312
4313  {
4314    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
4315      {0, 0, 0},
4316      {679771963, 0, 0},
4317      {1951208733, 0, 0},
4318      {2320303498, 0, 0},
4319      {1111111111111111111, 0, 0},
4320      {0, 3, 4},
4321      {0, 1, 5},
4322      {0, 2, 6},
4323    }));
4324
4325    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 13), std::move(codec));
4326  }
4327
4328  {
4329    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
4330      {0, 0, 0},
4331      {679771963, 0, 0},
4332      {1951208733, 0, 0},
4333      {2320303498, 0, 0},
4334      {3334207724, 0, 0},
4335      {1111111111111111111, 0, 0},
4336      {0, 4, 5},
4337      {0, 3, 6},
4338      {0, 7, 1},
4339      {0, 8, 2},
4340    }));
4341
4342    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 14), std::move(codec));
4343  }
4344
4345  {
4346    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
4347      {0, 0, 0},
4348      {679771963, 0, 0},
4349      {1951208733, 0, 0},
4350      {2320303498, 0, 0},
4351      {1111111111111111111, 0, 0},
4352      {0, 1, 4},
4353      {0, 5, 3},
4354      {0, 6, 2},
4355    }));
4356
4357    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 15), std::move(codec));
4358  }
4359
4360  {
4361    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
4362      {0, 0, 0},
4363      {679771963, 0, 0},
4364      {1951208733, 0, 0},
4365      {2320303498, 0, 0},
4366      {1111111111111111111, 0, 0},
4367      {0, 3, 4},
4368      {0, 2, 5},
4369      {0, 1, 6},
4370    }));
4371
4372    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 16), std::move(codec));
4373  }
4374
4375  {
4376    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
4377      {0, 0, 0},
4378      {679771963, 0, 0},
4379      {1951208733, 0, 0},
4380      {2320303498, 0, 0},
4381      {3334207724, 0, 0},
4382      {1111111111111111111, 0, 0},
4383      {0, 3, 5},
4384      {0, 4, 6},
4385      {0, 7, 1},
4386      {0, 8, 2},
4387    }));
4388
4389    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 17), std::move(codec));
4390  }
4391
4392  {
4393    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
4394      {0, 0, 0},
4395      {679771963, 0, 0},
4396      {1951208733, 0, 0},
4397      {3334207724, 0, 0},
4398      {1111111111111111111, 0, 0},
4399      {0, 3, 4},
4400      {0, 1, 5},
4401      {0, 2, 6},
4402    }));
4403
4404    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 18), std::move(codec));
4405  }
4406
4407  {
4408    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
4409      {0, 0, 0},
4410      {679771963, 0, 0},
4411      {1951208733, 0, 0},
4412      {2320303498, 0, 0},
4413      {1111111111111111111, 0, 0},
4414      {0, 1, 4},
4415      {0, 3, 5},
4416      {0, 2, 6},
4417    }));
4418
4419    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 19), std::move(codec));
4420  }
4421
4422  {
4423    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
4424      {0, 0, 0},
4425      {679771963, 0, 0},
4426      {1951208733, 0, 0},
4427      {2320303498, 0, 0},
4428      {1111111111111111111, 0, 0},
4429      {0, 3, 4},
4430      {0, 1, 5},
4431      {0, 2, 6},
4432    }));
4433
4434    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 20), std::move(codec));
4435  }
4436
4437  {
4438    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
4439      {0, 0, 0},
4440      {679771963, 0, 0},
4441      {1951208733, 0, 0},
4442      {2320303498, 0, 0},
4443      {1111111111111111111, 0, 0},
4444      {0, 1, 4},
4445      {0, 2, 5},
4446      {0, 3, 6},
4447    }));
4448
4449    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 21), std::move(codec));
4450  }
4451
4452  {
4453    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
4454      {0, 0, 0},
4455      {679771963, 0, 0},
4456      {1951208733, 0, 0},
4457      {2320303498, 0, 0},
4458      {3334207724, 0, 0},
4459      {1111111111111111111, 0, 0},
4460      {0, 5, 1},
4461      {0, 2, 6},
4462      {0, 3, 7},
4463      {0, 8, 4},
4464    }));
4465
4466    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 22), std::move(codec));
4467  }
4468
4469  {
4470    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
4471      {0, 0, 0},
4472      {679771963, 0, 0},
4473      {1951208733, 0, 0},
4474      {2320303498, 0, 0},
4475      {3334207724, 0, 0},
4476      {1111111111111111111, 0, 0},
4477      {0, 1, 5},
4478      {0, 2, 6},
4479      {0, 4, 7},
4480      {0, 8, 3},
4481    }));
4482
4483    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 23), std::move(codec));
4484  }
4485
4486  {
4487    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(11, {
4488      {0, 0, 0},
4489      {679771963, 0, 0},
4490      {1951208733, 0, 0},
4491      {2160380860, 0, 0},
4492      {2320303498, 0, 0},
4493      {3334207724, 0, 0},
4494      {1111111111111111111, 0, 0},
4495      {0, 6, 4},
4496      {0, 1, 7},
4497      {0, 2, 8},
4498      {0, 3, 9},
4499      {0, 10, 5},
4500    }));
4501
4502    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 24), std::move(codec));
4503  }
4504
4505  {
4506    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
4507      {0, 0, 0},
4508      {679771963, 0, 0},
4509      {1951208733, 0, 0},
4510      {2320303498, 0, 0},
4511      {3334207724, 0, 0},
4512      {1111111111111111111, 0, 0},
4513      {0, 1, 5},
4514      {0, 2, 6},
4515      {0, 4, 7},
4516      {0, 8, 3},
4517    }));
4518
4519    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 25), std::move(codec));
4520  }
4521
4522  {
4523    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
4524      {0, 0, 0},
4525      {679771963, 0, 0},
4526      {1951208733, 0, 0},
4527      {2320303498, 0, 0},
4528      {1111111111111111111, 0, 0},
4529      {0, 1, 4},
4530      {0, 2, 5},
4531      {0, 3, 6},
4532    }));
4533
4534    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 26), std::move(codec));
4535  }
4536
4537  {
4538    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
4539      {0, 0, 0},
4540      {679771963, 0, 0},
4541      {1951208733, 0, 0},
4542      {2320303498, 0, 0},
4543      {1111111111111111111, 0, 0},
4544      {0, 1, 4},
4545      {0, 2, 5},
4546      {0, 3, 6},
4547    }));
4548
4549    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 27), std::move(codec));
4550  }
4551
4552  {
4553    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
4554      {0, 0, 0},
4555      {679771963, 0, 0},
4556      {1951208733, 0, 0},
4557      {1111111111111111111, 0, 0},
4558      {0, 2, 3},
4559      {0, 1, 4},
4560    }));
4561
4562    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 28), std::move(codec));
4563  }
4564
4565  {
4566    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
4567      {0, 0, 0},
4568      {679771963, 0, 0},
4569      {1951208733, 0, 0},
4570      {1111111111111111111, 0, 0},
4571      {0, 1, 3},
4572      {0, 2, 4},
4573    }));
4574
4575    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 29), std::move(codec));
4576  }
4577
4578  {
4579    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
4580      {0, 0, 0},
4581      {679771963, 0, 0},
4582      {1951208733, 0, 0},
4583      {1111111111111111111, 0, 0},
4584      {0, 1, 3},
4585      {0, 2, 4},
4586    }));
4587
4588    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 30), std::move(codec));
4589  }
4590
4591  {
4592    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
4593      {0, 0, 0},
4594      {679771963, 0, 0},
4595      {1951208733, 0, 0},
4596      {2320303498, 0, 0},
4597      {1111111111111111111, 0, 0},
4598      {0, 4, 3},
4599      {0, 1, 5},
4600      {0, 2, 6},
4601    }));
4602
4603    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 31), std::move(codec));
4604  }
4605
4606  {
4607    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
4608      {0, 0, 0},
4609      {679771963, 0, 0},
4610      {1951208733, 0, 0},
4611      {2320303498, 0, 0},
4612      {1111111111111111111, 0, 0},
4613      {0, 3, 4},
4614      {0, 1, 5},
4615      {0, 2, 6},
4616    }));
4617
4618    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 32), std::move(codec));
4619  }
4620
4621  {
4622    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
4623      {0, 0, 0},
4624      {1951208733, 0, 0},
4625      {2320303498, 0, 0},
4626      {1111111111111111111, 0, 0},
4627      {0, 2, 3},
4628      {0, 1, 4},
4629    }));
4630
4631    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 33), std::move(codec));
4632  }
4633
4634  {
4635    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
4636      {0, 0, 0},
4637      {1951208733, 0, 0},
4638      {2320303498, 0, 0},
4639      {1111111111111111111, 0, 0},
4640      {0, 1, 3},
4641      {0, 2, 4},
4642    }));
4643
4644    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 34), std::move(codec));
4645  }
4646
4647  {
4648    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
4649      {0, 0, 0},
4650      {1951208733, 0, 0},
4651      {2320303498, 0, 0},
4652      {1111111111111111111, 0, 0},
4653      {0, 2, 3},
4654      {0, 1, 4},
4655    }));
4656
4657    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 35), std::move(codec));
4658  }
4659
4660  {
4661    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
4662      {0, 0, 0},
4663      {1951208733, 0, 0},
4664      {2320303498, 0, 0},
4665      {1111111111111111111, 0, 0},
4666      {0, 2, 3},
4667      {0, 1, 4},
4668    }));
4669
4670    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 36), std::move(codec));
4671  }
4672
4673  {
4674    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
4675      {0, 0, 0},
4676      {679771963, 0, 0},
4677      {1111111111111111111, 0, 0},
4678      {0, 1, 2},
4679    }));
4680
4681    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 37), std::move(codec));
4682  }
4683
4684  {
4685    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
4686      {0, 0, 0},
4687      {1389644742, 0, 0},
4688      {1111111111111111111, 0, 0},
4689      {0, 1, 2},
4690    }));
4691
4692    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 38), std::move(codec));
4693  }
4694
4695  {
4696    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
4697      {0, 0, 0},
4698      {3697687030, 0, 0},
4699      {1111111111111111111, 0, 0},
4700      {0, 1, 2},
4701    }));
4702
4703    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 39), std::move(codec));
4704  }
4705
4706  {
4707    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
4708      {0, 0, 0},
4709      {2320303498, 0, 0},
4710      {1111111111111111111, 0, 0},
4711      {0, 1, 2},
4712    }));
4713
4714    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 40), std::move(codec));
4715  }
4716
4717  {
4718    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
4719      {0, 0, 0},
4720      {2320303498, 0, 0},
4721      {1111111111111111111, 0, 0},
4722      {0, 1, 2},
4723    }));
4724
4725    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 41), std::move(codec));
4726  }
4727
4728  {
4729    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
4730      {0, 0, 0},
4731      {679771963, 0, 0},
4732      {1111111111111111111, 0, 0},
4733      {0, 1, 2},
4734    }));
4735
4736    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 42), std::move(codec));
4737  }
4738
4739  {
4740    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
4741      {0, 0, 0},
4742      {679771963, 0, 0},
4743      {1111111111111111111, 0, 0},
4744      {0, 1, 2},
4745    }));
4746
4747    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 43), std::move(codec));
4748  }
4749
4750  {
4751    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
4752      {0, 0, 0},
4753      {679771963, 0, 0},
4754      {1111111111111111111, 0, 0},
4755      {0, 1, 2},
4756    }));
4757
4758    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 44), std::move(codec));
4759  }
4760
4761  {
4762    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
4763      {0, 0, 0},
4764      {679771963, 0, 0},
4765      {1111111111111111111, 0, 0},
4766      {0, 1, 2},
4767    }));
4768
4769    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 45), std::move(codec));
4770  }
4771
4772  {
4773    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
4774      {0, 0, 0},
4775      {679771963, 0, 0},
4776      {1111111111111111111, 0, 0},
4777      {0, 1, 2},
4778    }));
4779
4780    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 46), std::move(codec));
4781  }
4782
4783  {
4784    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
4785      {0, 0, 0},
4786      {679771963, 0, 0},
4787      {1111111111111111111, 0, 0},
4788      {0, 1, 2},
4789    }));
4790
4791    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 47), std::move(codec));
4792  }
4793
4794  {
4795    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
4796      {0, 0, 0},
4797      {679771963, 0, 0},
4798      {1111111111111111111, 0, 0},
4799      {0, 1, 2},
4800    }));
4801
4802    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 48), std::move(codec));
4803  }
4804
4805  {
4806    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
4807      {0, 0, 0},
4808      {679771963, 0, 0},
4809      {1111111111111111111, 0, 0},
4810      {0, 1, 2},
4811    }));
4812
4813    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 49), std::move(codec));
4814  }
4815
4816  {
4817    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
4818      {0, 0, 0},
4819      {679771963, 0, 0},
4820      {1111111111111111111, 0, 0},
4821      {0, 1, 2},
4822    }));
4823
4824    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 50), std::move(codec));
4825  }
4826
4827  {
4828    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
4829      {0, 0, 0},
4830      {679771963, 0, 0},
4831      {1111111111111111111, 0, 0},
4832      {0, 1, 2},
4833    }));
4834
4835    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeStruct, 51), std::move(codec));
4836  }
4837
4838  {
4839    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(101, {
4840      {0, 0, 0},
4841      {85880059, 0, 0},
4842      {135486769, 0, 0},
4843      {304448521, 0, 0},
4844      {436416061, 0, 0},
4845      {440421571, 0, 0},
4846      {450406196, 0, 0},
4847      {503094540, 0, 0},
4848      {543621065, 0, 0},
4849      {626892406, 0, 0},
4850      {628544021, 0, 0},
4851      {827698488, 0, 0},
4852      {869050696, 0, 0},
4853      {907126242, 0, 0},
4854      {908777857, 0, 0},
4855      {910429472, 0, 0},
4856      {1113409935, 0, 0},
4857      {1294403159, 0, 0},
4858      {1296054774, 0, 0},
4859      {1297706389, 0, 0},
4860      {1322549027, 0, 0},
4861      {1784441183, 0, 0},
4862      {2080953106, 0, 0},
4863      {2194691858, 0, 0},
4864      {2448331885, 0, 0},
4865      {2466255445, 0, 0},
4866      {2468230023, 0, 0},
4867      {2547657777, 0, 0},
4868      {2549309392, 0, 0},
4869      {2550961007, 0, 0},
4870      {2894051250, 0, 0},
4871      {2929019254, 0, 0},
4872      {2934934694, 0, 0},
4873      {2936586309, 0, 0},
4874      {2938237924, 0, 0},
4875      {3077271274, 0, 0},
4876      {3092528578, 0, 0},
4877      {3094180193, 0, 0},
4878      {3094857332, 0, 0},
4879      {3095831808, 0, 0},
4880      {3183924418, 0, 0},
4881      {3207966516, 0, 0},
4882      {3282979782, 0, 0},
4883      {3433956341, 0, 0},
4884      {3561562003, 0, 0},
4885      {3563213618, 0, 0},
4886      {3564865233, 0, 0},
4887      {3585511591, 0, 0},
4888      {4028622909, 0, 0},
4889      {4039938779, 0, 0},
4890      {4050155669, 0, 0},
4891      {1111111111111111111, 0, 0},
4892      {0, 16, 25},
4893      {0, 50, 1},
4894      {0, 42, 35},
4895      {0, 31, 41},
4896      {0, 4, 43},
4897      {0, 9, 10},
4898      {0, 3, 30},
4899      {0, 52, 47},
4900      {0, 12, 53},
4901      {0, 55, 54},
4902      {0, 36, 56},
4903      {0, 49, 57},
4904      {0, 6, 58},
4905      {0, 34, 33},
4906      {0, 59, 26},
4907      {0, 21, 32},
4908      {0, 60, 15},
4909      {0, 24, 61},
4910      {0, 62, 38},
4911      {0, 22, 2},
4912      {0, 37, 7},
4913      {0, 63, 46},
4914      {0, 14, 13},
4915      {0, 64, 5},
4916      {0, 65, 45},
4917      {0, 66, 19},
4918      {0, 18, 67},
4919      {0, 17, 20},
4920      {0, 68, 11},
4921      {0, 8, 69},
4922      {0, 70, 39},
4923      {0, 72, 71},
4924      {0, 74, 73},
4925      {0, 40, 75},
4926      {0, 76, 23},
4927      {0, 78, 77},
4928      {0, 29, 79},
4929      {0, 28, 80},
4930      {0, 27, 48},
4931      {0, 82, 81},
4932      {0, 51, 83},
4933      {0, 84, 44},
4934      {0, 86, 85},
4935      {0, 88, 87},
4936      {0, 90, 89},
4937      {0, 92, 91},
4938      {0, 94, 93},
4939      {0, 96, 95},
4940      {0, 98, 97},
4941      {0, 100, 99},
4942    }));
4943
4944    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypePointer, 0), std::move(codec));
4945  }
4946
4947  {
4948    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(65, {
4949      {0, 0, 0},
4950      {119981689, 0, 0},
4951      {162255877, 0, 0},
4952      {451382997, 0, 0},
4953      {545678922, 0, 0},
4954      {679771963, 0, 0},
4955      {789872778, 0, 0},
4956      {1100599986, 0, 0},
4957      {1103903216, 0, 0},
4958      {1154919607, 0, 0},
4959      {1343794461, 0, 0},
4960      {1415510495, 0, 0},
4961      {1674803691, 0, 0},
4962      {1951208733, 0, 0},
4963      {1989520052, 0, 0},
4964      {2160380860, 0, 0},
4965      {2263349224, 0, 0},
4966      {2320303498, 0, 0},
4967      {2924146124, 0, 0},
4968      {2984325996, 0, 0},
4969      {3334207724, 0, 0},
4970      {3345288309, 0, 0},
4971      {3410158390, 0, 0},
4972      {3489360962, 0, 0},
4973      {3495967422, 0, 0},
4974      {3504981554, 0, 0},
4975      {3800912395, 0, 0},
4976      {3802564010, 0, 0},
4977      {3866587616, 0, 0},
4978      {3868239231, 0, 0},
4979      {3869890846, 0, 0},
4980      {3998230222, 0, 0},
4981      {4240893633, 0, 0},
4982      {1111111111111111111, 0, 0},
4983      {0, 4, 3},
4984      {0, 6, 24},
4985      {0, 11, 7},
4986      {0, 32, 21},
4987      {0, 27, 34},
4988      {0, 35, 25},
4989      {0, 36, 8},
4990      {0, 26, 31},
4991      {0, 14, 15},
4992      {0, 28, 37},
4993      {0, 1, 23},
4994      {0, 39, 38},
4995      {0, 12, 40},
4996      {0, 22, 41},
4997      {0, 10, 16},
4998      {0, 43, 42},
4999      {0, 29, 44},
5000      {0, 2, 45},
5001      {0, 46, 19},
5002      {0, 48, 47},
5003      {0, 18, 49},
5004      {0, 50, 30},
5005      {0, 9, 33},
5006      {0, 52, 51},
5007      {0, 54, 53},
5008      {0, 13, 55},
5009      {0, 17, 56},
5010      {0, 5, 57},
5011      {0, 59, 58},
5012      {0, 60, 20},
5013      {0, 62, 61},
5014      {0, 64, 63},
5015    }));
5016
5017    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypePointer, 2), std::move(codec));
5018  }
5019
5020  {
5021    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(99, {
5022      {0, 0, 0},
5023      {75986790, 0, 0},
5024      {95470391, 0, 0},
5025      {170378107, 0, 0},
5026      {172029722, 0, 0},
5027      {204234270, 0, 0},
5028      {205885885, 0, 0},
5029      {244668133, 0, 0},
5030      {265778447, 0, 0},
5031      {616435646, 0, 0},
5032      {618087261, 0, 0},
5033      {753954113, 0, 0},
5034      {1000070091, 0, 0},
5035      {1308462133, 0, 0},
5036      {1671139745, 0, 0},
5037      {1774874546, 0, 0},
5038      {1776526161, 0, 0},
5039      {1887808856, 0, 0},
5040      {1889460471, 0, 0},
5041      {1917966999, 0, 0},
5042      {2044728014, 0, 0},
5043      {2192810893, 0, 0},
5044      {2293247016, 0, 0},
5045      {2503194620, 0, 0},
5046      {2605012269, 0, 0},
5047      {2608484640, 0, 0},
5048      {2615111110, 0, 0},
5049      {2668769415, 0, 0},
5050      {2759951687, 0, 0},
5051      {2761603302, 0, 0},
5052      {2856623532, 0, 0},
5053      {2945369269, 0, 0},
5054      {2956189845, 0, 0},
5055      {3085119011, 0, 0},
5056      {3367313400, 0, 0},
5057      {3447882276, 0, 0},
5058      {3633746133, 0, 0},
5059      {3635397748, 0, 0},
5060      {3710645347, 0, 0},
5061      {3712296962, 0, 0},
5062      {3715846592, 0, 0},
5063      {3727494858, 0, 0},
5064      {3747079365, 0, 0},
5065      {3748965853, 0, 0},
5066      {3750617468, 0, 0},
5067      {4018820793, 0, 0},
5068      {4022124023, 0, 0},
5069      {4024173916, 0, 0},
5070      {4215670524, 0, 0},
5071      {4217322139, 0, 0},
5072      {1111111111111111111, 0, 0},
5073      {0, 10, 9},
5074      {0, 31, 24},
5075      {0, 40, 13},
5076      {0, 45, 33},
5077      {0, 34, 46},
5078      {0, 43, 38},
5079      {0, 44, 15},
5080      {0, 11, 30},
5081      {0, 21, 6},
5082      {0, 47, 3},
5083      {0, 51, 16},
5084      {0, 14, 52},
5085      {0, 8, 53},
5086      {0, 35, 5},
5087      {0, 55, 54},
5088      {0, 56, 26},
5089      {0, 20, 57},
5090      {0, 39, 19},
5091      {0, 59, 58},
5092      {0, 61, 60},
5093      {0, 4, 62},
5094      {0, 2, 63},
5095      {0, 25, 7},
5096      {0, 64, 27},
5097      {0, 12, 22},
5098      {0, 65, 48},
5099      {0, 41, 42},
5100      {0, 17, 23},
5101      {0, 49, 66},
5102      {0, 68, 67},
5103      {0, 70, 69},
5104      {0, 72, 71},
5105      {0, 74, 73},
5106      {0, 18, 75},
5107      {0, 37, 32},
5108      {0, 76, 36},
5109      {0, 78, 77},
5110      {0, 79, 28},
5111      {0, 81, 80},
5112      {0, 82, 29},
5113      {0, 84, 83},
5114      {0, 86, 85},
5115      {0, 88, 87},
5116      {0, 90, 89},
5117      {0, 91, 50},
5118      {0, 93, 92},
5119      {0, 95, 94},
5120      {0, 1, 96},
5121      {0, 98, 97},
5122    }));
5123
5124    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeFunction, 0), std::move(codec));
5125  }
5126
5127  {
5128    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(27, {
5129      {0, 0, 0},
5130      {545678922, 0, 0},
5131      {679771963, 0, 0},
5132      {899570100, 0, 0},
5133      {929101967, 0, 0},
5134      {1100599986, 0, 0},
5135      {1951208733, 0, 0},
5136      {2320303498, 0, 0},
5137      {3056042030, 0, 0},
5138      {3334207724, 0, 0},
5139      {3357250579, 0, 0},
5140      {3705139860, 0, 0},
5141      {3800912395, 0, 0},
5142      {3802564010, 0, 0},
5143      {1111111111111111111, 0, 0},
5144      {0, 5, 3},
5145      {0, 10, 13},
5146      {0, 4, 15},
5147      {0, 16, 11},
5148      {0, 17, 1},
5149      {0, 14, 12},
5150      {0, 19, 18},
5151      {0, 21, 20},
5152      {0, 7, 6},
5153      {0, 9, 22},
5154      {0, 24, 23},
5155      {0, 25, 2},
5156      {0, 26, 8},
5157    }));
5158
5159    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeFunction, 1), std::move(codec));
5160  }
5161
5162  {
5163    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(57, {
5164      {0, 0, 0},
5165      {283209196, 0, 0},
5166      {436416061, 0, 0},
5167      {679771963, 0, 0},
5168      {789872778, 0, 0},
5169      {815757910, 0, 0},
5170      {827698488, 0, 0},
5171      {1164221089, 0, 0},
5172      {1294403159, 0, 0},
5173      {1296054774, 0, 0},
5174      {1297706389, 0, 0},
5175      {1525861001, 0, 0},
5176      {1579585816, 0, 0},
5177      {1675764636, 0, 0},
5178      {1824016656, 0, 0},
5179      {1951208733, 0, 0},
5180      {1991787192, 0, 0},
5181      {2180701723, 0, 0},
5182      {2194691858, 0, 0},
5183      {2320303498, 0, 0},
5184      {2881886868, 0, 0},
5185      {2926633629, 0, 0},
5186      {3249265647, 0, 0},
5187      {3334207724, 0, 0},
5188      {3472123498, 0, 0},
5189      {3674863070, 0, 0},
5190      {4050155669, 0, 0},
5191      {4141567741, 0, 0},
5192      {4155122613, 0, 0},
5193      {1111111111111111111, 0, 0},
5194      {0, 24, 7},
5195      {0, 17, 1},
5196      {0, 4, 15},
5197      {0, 11, 16},
5198      {0, 28, 30},
5199      {0, 25, 20},
5200      {0, 14, 31},
5201      {0, 32, 26},
5202      {0, 12, 5},
5203      {0, 2, 22},
5204      {0, 33, 13},
5205      {0, 35, 34},
5206      {0, 37, 36},
5207      {0, 39, 38},
5208      {0, 40, 21},
5209      {0, 29, 18},
5210      {0, 27, 41},
5211      {0, 43, 42},
5212      {0, 19, 44},
5213      {0, 45, 23},
5214      {0, 6, 3},
5215      {0, 47, 46},
5216      {0, 49, 48},
5217      {0, 51, 50},
5218      {0, 10, 8},
5219      {0, 53, 52},
5220      {0, 9, 54},
5221      {0, 56, 55},
5222    }));
5223
5224    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeFunction, 2), std::move(codec));
5225  }
5226
5227  {
5228    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(17, {
5229      {0, 0, 0},
5230      {679771963, 0, 0},
5231      {827698488, 0, 0},
5232      {1294403159, 0, 0},
5233      {1296054774, 0, 0},
5234      {1297706389, 0, 0},
5235      {1951208733, 0, 0},
5236      {2320303498, 0, 0},
5237      {3334207724, 0, 0},
5238      {1111111111111111111, 0, 0},
5239      {0, 8, 9},
5240      {0, 10, 6},
5241      {0, 1, 5},
5242      {0, 11, 3},
5243      {0, 12, 7},
5244      {0, 13, 2},
5245      {0, 15, 14},
5246      {0, 16, 4},
5247    }));
5248
5249    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeFunction, 3), std::move(codec));
5250  }
5251
5252  {
5253    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(17, {
5254      {0, 0, 0},
5255      {679771963, 0, 0},
5256      {827698488, 0, 0},
5257      {1294403159, 0, 0},
5258      {1296054774, 0, 0},
5259      {1951208733, 0, 0},
5260      {2194691858, 0, 0},
5261      {2320303498, 0, 0},
5262      {3334207724, 0, 0},
5263      {1111111111111111111, 0, 0},
5264      {0, 8, 5},
5265      {0, 10, 9},
5266      {0, 11, 6},
5267      {0, 7, 12},
5268      {0, 1, 3},
5269      {0, 2, 13},
5270      {0, 15, 14},
5271      {0, 4, 16},
5272    }));
5273
5274    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeFunction, 4), std::move(codec));
5275  }
5276
5277  {
5278    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(11, {
5279      {0, 0, 0},
5280      {827698488, 0, 0},
5281      {1294403159, 0, 0},
5282      {1296054774, 0, 0},
5283      {1297706389, 0, 0},
5284      {1951208733, 0, 0},
5285      {1111111111111111111, 0, 0},
5286      {0, 4, 6},
5287      {0, 5, 7},
5288      {0, 2, 8},
5289      {0, 1, 9},
5290      {0, 10, 3},
5291    }));
5292
5293    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeFunction, 5), std::move(codec));
5294  }
5295
5296  {
5297    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(11, {
5298      {0, 0, 0},
5299      {827698488, 0, 0},
5300      {1294403159, 0, 0},
5301      {1296054774, 0, 0},
5302      {1951208733, 0, 0},
5303      {3334207724, 0, 0},
5304      {1111111111111111111, 0, 0},
5305      {0, 2, 6},
5306      {0, 4, 7},
5307      {0, 8, 5},
5308      {0, 3, 9},
5309      {0, 1, 10},
5310    }));
5311
5312    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeFunction, 6), std::move(codec));
5313  }
5314
5315  {
5316    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
5317      {0, 0, 0},
5318      {789872778, 0, 0},
5319      {827698488, 0, 0},
5320      {1951208733, 0, 0},
5321      {2320303498, 0, 0},
5322      {1111111111111111111, 0, 0},
5323      {0, 5, 1},
5324      {0, 4, 6},
5325      {0, 3, 7},
5326      {0, 2, 8},
5327    }));
5328
5329    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeFunction, 7), std::move(codec));
5330  }
5331
5332  {
5333    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
5334      {0, 0, 0},
5335      {543621065, 0, 0},
5336      {827698488, 0, 0},
5337      {1951208733, 0, 0},
5338      {1111111111111111111, 0, 0},
5339      {0, 3, 4},
5340      {0, 1, 5},
5341      {0, 2, 6},
5342    }));
5343
5344    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeFunction, 8), std::move(codec));
5345  }
5346
5347  {
5348    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
5349      {0, 0, 0},
5350      {827698488, 0, 0},
5351      {1951208733, 0, 0},
5352      {3095831808, 0, 0},
5353      {1111111111111111111, 0, 0},
5354      {0, 2, 4},
5355      {0, 3, 5},
5356      {0, 1, 6},
5357    }));
5358
5359    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeFunction, 9), std::move(codec));
5360  }
5361
5362  {
5363    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
5364      {0, 0, 0},
5365      {1296054774, 0, 0},
5366      {1951208733, 0, 0},
5367      {1111111111111111111, 0, 0},
5368      {0, 3, 2},
5369      {0, 1, 4},
5370    }));
5371
5372    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeFunction, 10), std::move(codec));
5373  }
5374
5375  {
5376    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
5377      {0, 0, 0},
5378      {1296054774, 0, 0},
5379      {2320303498, 0, 0},
5380      {1111111111111111111, 0, 0},
5381      {0, 3, 2},
5382      {0, 1, 4},
5383    }));
5384
5385    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeFunction, 11), std::move(codec));
5386  }
5387
5388  {
5389    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
5390      {0, 0, 0},
5391      {789872778, 0, 0},
5392      {1951208733, 0, 0},
5393      {1111111111111111111, 0, 0},
5394      {0, 3, 2},
5395      {0, 4, 1},
5396    }));
5397
5398    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeFunction, 12), std::move(codec));
5399  }
5400
5401  {
5402    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
5403      {0, 0, 0},
5404      {789872778, 0, 0},
5405      {1951208733, 0, 0},
5406      {1111111111111111111, 0, 0},
5407      {0, 2, 1},
5408      {0, 4, 3},
5409    }));
5410
5411    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeFunction, 13), std::move(codec));
5412  }
5413
5414  {
5415    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
5416      {0, 0, 0},
5417      {1951208733, 0, 0},
5418      {1111111111111111111, 0, 0},
5419      {0, 2, 1},
5420    }));
5421
5422    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeFunction, 14), std::move(codec));
5423  }
5424
5425  {
5426    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
5427      {0, 0, 0},
5428      {1951208733, 0, 0},
5429      {1111111111111111111, 0, 0},
5430      {0, 2, 1},
5431    }));
5432
5433    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpTypeFunction, 15), std::move(codec));
5434  }
5435
5436  {
5437    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
5438      {0, 0, 0},
5439      {789872778, 0, 0},
5440      {1951208733, 0, 0},
5441      {2430404313, 0, 0},
5442      {1111111111111111111, 0, 0},
5443      {0, 3, 4},
5444      {0, 1, 5},
5445      {0, 2, 6},
5446    }));
5447
5448    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpConstant, 0), std::move(codec));
5449  }
5450
5451  {
5452    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(183, {
5453      {0, 0, 0},
5454      {51041423, 0, 0},
5455      {52882140, 0, 0},
5456      {72782198, 0, 0},
5457      {142465290, 0, 0},
5458      {144116905, 0, 0},
5459      {158160339, 0, 0},
5460      {169135842, 0, 0},
5461      {210116709, 0, 0},
5462      {290391815, 0, 0},
5463      {296981500, 0, 0},
5464      {385229009, 0, 0},
5465      {438318340, 0, 0},
5466      {529742207, 0, 0},
5467      {628331516, 0, 0},
5468      {677668732, 0, 0},
5469      {778500192, 0, 0},
5470      {825595257, 0, 0},
5471      {910398460, 0, 0},
5472      {917019124, 0, 0},
5473      {959681532, 0, 0},
5474      {1031290113, 0, 0},
5475      {1039111164, 0, 0},
5476      {1064945649, 0, 0},
5477      {1087394637, 0, 0},
5478      {1092948665, 0, 0},
5479      {1156369516, 0, 0},
5480      {1158021131, 0, 0},
5481      {1172110445, 0, 0},
5482      {1304296041, 0, 0},
5483      {1400019344, 0, 0},
5484      {1450415100, 0, 0},
5485      {1452222566, 0, 0},
5486      {1543646433, 0, 0},
5487      {1543672828, 0, 0},
5488      {1612361408, 0, 0},
5489      {1622381564, 0, 0},
5490      {1691572958, 0, 0},
5491      {1755648697, 0, 0},
5492      {1782996825, 0, 0},
5493      {1784648440, 0, 0},
5494      {1930923350, 0, 0},
5495      {1939359710, 0, 0},
5496      {1971252067, 0, 0},
5497      {1979847999, 0, 0},
5498      {2078849875, 0, 0},
5499      {2113115132, 0, 0},
5500      {2135340676, 0, 0},
5501      {2170273742, 0, 0},
5502      {2268204687, 0, 0},
5503      {2285081596, 0, 0},
5504      {2318200267, 0, 0},
5505      {2321729979, 0, 0},
5506      {2326636627, 0, 0},
5507      {2444465148, 0, 0},
5508      {2466126792, 0, 0},
5509      {2490492987, 0, 0},
5510      {2524697596, 0, 0},
5511      {2557550659, 0, 0},
5512      {2678954464, 0, 0},
5513      {2705477184, 0, 0},
5514      {2715370488, 0, 0},
5515      {2732195517, 0, 0},
5516      {2775815164, 0, 0},
5517      {2796901051, 0, 0},
5518      {2798552666, 0, 0},
5519      {2855506940, 0, 0},
5520      {2860348412, 0, 0},
5521      {2922615804, 0, 0},
5522      {2937761472, 0, 0},
5523      {2944827576, 0, 0},
5524      {3092754101, 0, 0},
5525      {3107165180, 0, 0},
5526      {3168953855, 0, 0},
5527      {3184177968, 0, 0},
5528      {3202349435, 0, 0},
5529      {3266548732, 0, 0},
5530      {3332104493, 0, 0},
5531      {3362723943, 0, 0},
5532      {3571454885, 0, 0},
5533      {3712763835, 0, 0},
5534      {3743748793, 0, 0},
5535      {3810805277, 0, 0},
5536      {3912967080, 0, 0},
5537      {3929248764, 0, 0},
5538      {3958731802, 0, 0},
5539      {3997952447, 0, 0},
5540      {4016096296, 0, 0},
5541      {4106658327, 0, 0},
5542      {4172568578, 0, 0},
5543      {4198082194, 0, 0},
5544      {4248015868, 0, 0},
5545      {1111111111111111111, 0, 0},
5546      {0, 35, 16},
5547      {0, 49, 42},
5548      {0, 86, 69},
5549      {0, 53, 30},
5550      {0, 45, 89},
5551      {0, 50, 68},
5552      {0, 73, 71},
5553      {0, 17, 46},
5554      {0, 14, 81},
5555      {0, 63, 44},
5556      {0, 12, 3},
5557      {0, 72, 31},
5558      {0, 55, 67},
5559      {0, 36, 19},
5560      {0, 22, 88},
5561      {0, 9, 70},
5562      {0, 93, 23},
5563      {0, 95, 94},
5564      {0, 47, 91},
5565      {0, 34, 32},
5566      {0, 97, 96},
5567      {0, 41, 61},
5568      {0, 99, 98},
5569      {0, 37, 1},
5570      {0, 77, 100},
5571      {0, 51, 60},
5572      {0, 101, 79},
5573      {0, 6, 2},
5574      {0, 11, 7},
5575      {0, 24, 21},
5576      {0, 43, 28},
5577      {0, 59, 56},
5578      {0, 75, 62},
5579      {0, 80, 78},
5580      {0, 87, 83},
5581      {0, 18, 15},
5582      {0, 102, 38},
5583      {0, 104, 103},
5584      {0, 85, 90},
5585      {0, 76, 25},
5586      {0, 29, 105},
5587      {0, 107, 106},
5588      {0, 58, 52},
5589      {0, 109, 108},
5590      {0, 57, 110},
5591      {0, 112, 111},
5592      {0, 114, 113},
5593      {0, 115, 33},
5594      {0, 74, 116},
5595      {0, 118, 117},
5596      {0, 120, 119},
5597      {0, 122, 121},
5598      {0, 124, 123},
5599      {0, 126, 125},
5600      {0, 128, 127},
5601      {0, 130, 129},
5602      {0, 131, 13},
5603      {0, 54, 27},
5604      {0, 133, 132},
5605      {0, 48, 40},
5606      {0, 5, 8},
5607      {0, 82, 134},
5608      {0, 26, 135},
5609      {0, 39, 4},
5610      {0, 136, 64},
5611      {0, 138, 137},
5612      {0, 140, 139},
5613      {0, 84, 141},
5614      {0, 143, 142},
5615      {0, 145, 144},
5616      {0, 147, 146},
5617      {0, 149, 148},
5618      {0, 20, 150},
5619      {0, 65, 151},
5620      {0, 66, 152},
5621      {0, 153, 10},
5622      {0, 155, 154},
5623      {0, 157, 156},
5624      {0, 159, 158},
5625      {0, 161, 160},
5626      {0, 163, 162},
5627      {0, 165, 164},
5628      {0, 167, 166},
5629      {0, 169, 168},
5630      {0, 170, 92},
5631      {0, 172, 171},
5632      {0, 174, 173},
5633      {0, 176, 175},
5634      {0, 178, 177},
5635      {0, 180, 179},
5636      {0, 182, 181},
5637    }));
5638
5639    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpConstant, 1), std::move(codec));
5640  }
5641
5642  {
5643    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
5644      {0, 0, 0},
5645      {679771963, 0, 0},
5646      {1247793383, 0, 0},
5647      {2320303498, 0, 0},
5648      {3334207724, 0, 0},
5649      {1111111111111111111, 0, 0},
5650      {0, 2, 5},
5651      {0, 4, 6},
5652      {0, 1, 3},
5653      {0, 8, 7},
5654    }));
5655
5656    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpConstantComposite, 0), std::move(codec));
5657  }
5658
5659  {
5660    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(83, {
5661      {0, 0, 0},
5662      {15502752, 0, 0},
5663      {46736908, 0, 0},
5664      {139011596, 0, 0},
5665      {149720480, 0, 0},
5666      {249378857, 0, 0},
5667      {251209228, 0, 0},
5668      {503145996, 0, 0},
5669      {836581417, 0, 0},
5670      {882718761, 0, 0},
5671      {1289566249, 0, 0},
5672      {1325348861, 0, 0},
5673      {1558001705, 0, 0},
5674      {1646147798, 0, 0},
5675      {1679946323, 0, 0},
5676      {1766401548, 0, 0},
5677      {1992893964, 0, 0},
5678      {2123388694, 0, 0},
5679      {2162986400, 0, 0},
5680      {2580096524, 0, 0},
5681      {2598189097, 0, 0},
5682      {2683080096, 0, 0},
5683      {2698156268, 0, 0},
5684      {2763960513, 0, 0},
5685      {3015046341, 0, 0},
5686      {3133016299, 0, 0},
5687      {3251128023, 0, 0},
5688      {3504158761, 0, 0},
5689      {3535289452, 0, 0},
5690      {3536941067, 0, 0},
5691      {3538592682, 0, 0},
5692      {3540244297, 0, 0},
5693      {3541895912, 0, 0},
5694      {3570219049, 0, 0},
5695      {3653838348, 0, 0},
5696      {3764205609, 0, 0},
5697      {3882634684, 0, 0},
5698      {3913885196, 0, 0},
5699      {3982047273, 0, 0},
5700      {4024252457, 0, 0},
5701      {4243119782, 0, 0},
5702      {4255182614, 0, 0},
5703      {1111111111111111111, 0, 0},
5704      {0, 8, 4},
5705      {0, 39, 2},
5706      {0, 38, 10},
5707      {0, 29, 41},
5708      {0, 23, 28},
5709      {0, 9, 24},
5710      {0, 44, 43},
5711      {0, 45, 6},
5712      {0, 20, 12},
5713      {0, 18, 33},
5714      {0, 19, 16},
5715      {0, 7, 46},
5716      {0, 48, 47},
5717      {0, 5, 49},
5718      {0, 13, 11},
5719      {0, 17, 14},
5720      {0, 25, 22},
5721      {0, 40, 36},
5722      {0, 1, 50},
5723      {0, 31, 30},
5724      {0, 51, 32},
5725      {0, 42, 52},
5726      {0, 54, 53},
5727      {0, 55, 15},
5728      {0, 37, 56},
5729      {0, 57, 34},
5730      {0, 59, 58},
5731      {0, 61, 60},
5732      {0, 35, 21},
5733      {0, 62, 26},
5734      {0, 64, 63},
5735      {0, 65, 27},
5736      {0, 3, 66},
5737      {0, 68, 67},
5738      {0, 70, 69},
5739      {0, 72, 71},
5740      {0, 74, 73},
5741      {0, 76, 75},
5742      {0, 78, 77},
5743      {0, 80, 79},
5744      {0, 82, 81},
5745    }));
5746
5747    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpConstantComposite, 1), std::move(codec));
5748  }
5749
5750  {
5751    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(65, {
5752      {0, 0, 0},
5753      {142465290, 0, 0},
5754      {158160339, 0, 0},
5755      {169135842, 0, 0},
5756      {210116709, 0, 0},
5757      {296981500, 0, 0},
5758      {615748604, 0, 0},
5759      {910398460, 0, 0},
5760      {959681532, 0, 0},
5761      {1039111164, 0, 0},
5762      {1087394637, 0, 0},
5763      {1156369516, 0, 0},
5764      {1450415100, 0, 0},
5765      {1543672828, 0, 0},
5766      {2100532220, 0, 0},
5767      {2170273742, 0, 0},
5768      {2285081596, 0, 0},
5769      {2326636627, 0, 0},
5770      {2444465148, 0, 0},
5771      {2732195517, 0, 0},
5772      {2763232252, 0, 0},
5773      {2796901051, 0, 0},
5774      {2855506940, 0, 0},
5775      {2922615804, 0, 0},
5776      {2937761472, 0, 0},
5777      {3202349435, 0, 0},
5778      {3362723943, 0, 0},
5779      {3712763835, 0, 0},
5780      {3810805277, 0, 0},
5781      {3929248764, 0, 0},
5782      {4016096296, 0, 0},
5783      {4172568578, 0, 0},
5784      {4248015868, 0, 0},
5785      {1111111111111111111, 0, 0},
5786      {0, 12, 23},
5787      {0, 13, 6},
5788      {0, 20, 14},
5789      {0, 15, 24},
5790      {0, 17, 28},
5791      {0, 16, 31},
5792      {0, 7, 34},
5793      {0, 9, 32},
5794      {0, 36, 35},
5795      {0, 38, 37},
5796      {0, 40, 39},
5797      {0, 2, 8},
5798      {0, 10, 3},
5799      {0, 25, 19},
5800      {0, 27, 26},
5801      {0, 33, 30},
5802      {0, 11, 41},
5803      {0, 1, 21},
5804      {0, 18, 42},
5805      {0, 44, 43},
5806      {0, 46, 45},
5807      {0, 48, 47},
5808      {0, 29, 49},
5809      {0, 4, 50},
5810      {0, 52, 51},
5811      {0, 54, 53},
5812      {0, 56, 55},
5813      {0, 58, 57},
5814      {0, 59, 5},
5815      {0, 61, 60},
5816      {0, 62, 22},
5817      {0, 64, 63},
5818    }));
5819
5820    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpConstantComposite, 2), std::move(codec));
5821  }
5822
5823  {
5824    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(57, {
5825      {0, 0, 0},
5826      {52882140, 0, 0},
5827      {210116709, 0, 0},
5828      {296981500, 0, 0},
5829      {385229009, 0, 0},
5830      {615748604, 0, 0},
5831      {910398460, 0, 0},
5832      {959681532, 0, 0},
5833      {1031290113, 0, 0},
5834      {1039111164, 0, 0},
5835      {1172110445, 0, 0},
5836      {1450415100, 0, 0},
5837      {1543672828, 0, 0},
5838      {1622381564, 0, 0},
5839      {1782996825, 0, 0},
5840      {1971252067, 0, 0},
5841      {2100532220, 0, 0},
5842      {2268204687, 0, 0},
5843      {2326636627, 0, 0},
5844      {2444465148, 0, 0},
5845      {2490492987, 0, 0},
5846      {2678954464, 0, 0},
5847      {2763232252, 0, 0},
5848      {2855506940, 0, 0},
5849      {2922615804, 0, 0},
5850      {3912967080, 0, 0},
5851      {3929248764, 0, 0},
5852      {4172568578, 0, 0},
5853      {4248015868, 0, 0},
5854      {1111111111111111111, 0, 0},
5855      {0, 11, 24},
5856      {0, 12, 5},
5857      {0, 22, 16},
5858      {0, 18, 17},
5859      {0, 30, 27},
5860      {0, 6, 13},
5861      {0, 9, 28},
5862      {0, 32, 31},
5863      {0, 34, 33},
5864      {0, 7, 35},
5865      {0, 4, 1},
5866      {0, 10, 8},
5867      {0, 20, 15},
5868      {0, 25, 21},
5869      {0, 36, 29},
5870      {0, 19, 37},
5871      {0, 39, 38},
5872      {0, 41, 40},
5873      {0, 43, 42},
5874      {0, 26, 44},
5875      {0, 45, 2},
5876      {0, 47, 46},
5877      {0, 49, 48},
5878      {0, 50, 14},
5879      {0, 51, 3},
5880      {0, 53, 52},
5881      {0, 54, 23},
5882      {0, 56, 55},
5883    }));
5884
5885    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpConstantComposite, 3), std::move(codec));
5886  }
5887
5888  {
5889    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(39, {
5890      {0, 0, 0},
5891      {210116709, 0, 0},
5892      {296981500, 0, 0},
5893      {615748604, 0, 0},
5894      {910398460, 0, 0},
5895      {959681532, 0, 0},
5896      {1039111164, 0, 0},
5897      {1092948665, 0, 0},
5898      {1450415100, 0, 0},
5899      {1543672828, 0, 0},
5900      {1612361408, 0, 0},
5901      {2100532220, 0, 0},
5902      {2326636627, 0, 0},
5903      {2444465148, 0, 0},
5904      {2524697596, 0, 0},
5905      {2763232252, 0, 0},
5906      {2855506940, 0, 0},
5907      {3929248764, 0, 0},
5908      {4172568578, 0, 0},
5909      {4248015868, 0, 0},
5910      {1111111111111111111, 0, 0},
5911      {0, 8, 7},
5912      {0, 9, 3},
5913      {0, 15, 11},
5914      {0, 10, 21},
5915      {0, 18, 12},
5916      {0, 4, 20},
5917      {0, 22, 19},
5918      {0, 23, 6},
5919      {0, 14, 24},
5920      {0, 5, 25},
5921      {0, 27, 26},
5922      {0, 28, 17},
5923      {0, 30, 29},
5924      {0, 31, 13},
5925      {0, 1, 32},
5926      {0, 34, 33},
5927      {0, 16, 35},
5928      {0, 2, 36},
5929      {0, 38, 37},
5930    }));
5931
5932    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpConstantComposite, 4), std::move(codec));
5933  }
5934
5935  {
5936    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(35, {
5937      {0, 0, 0},
5938      {296981500, 0, 0},
5939      {615748604, 0, 0},
5940      {673708384, 0, 0},
5941      {959681532, 0, 0},
5942      {1039111164, 0, 0},
5943      {1450415100, 0, 0},
5944      {1543672828, 0, 0},
5945      {1939359710, 0, 0},
5946      {2100532220, 0, 0},
5947      {2113115132, 0, 0},
5948      {2326636627, 0, 0},
5949      {2444465148, 0, 0},
5950      {2763232252, 0, 0},
5951      {2855506940, 0, 0},
5952      {3929248764, 0, 0},
5953      {4172568578, 0, 0},
5954      {4248015868, 0, 0},
5955      {1111111111111111111, 0, 0},
5956      {0, 18, 3},
5957      {0, 6, 19},
5958      {0, 12, 4},
5959      {0, 17, 2},
5960      {0, 9, 7},
5961      {0, 20, 13},
5962      {0, 11, 8},
5963      {0, 10, 16},
5964      {0, 21, 15},
5965      {0, 5, 22},
5966      {0, 24, 23},
5967      {0, 26, 25},
5968      {0, 28, 27},
5969      {0, 29, 1},
5970      {0, 31, 30},
5971      {0, 33, 32},
5972      {0, 34, 14},
5973    }));
5974
5975    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpConstantComposite, 5), std::move(codec));
5976  }
5977
5978  {
5979    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(23, {
5980      {0, 0, 0},
5981      {545678922, 0, 0},
5982      {679771963, 0, 0},
5983      {929101967, 0, 0},
5984      {1951208733, 0, 0},
5985      {2320303498, 0, 0},
5986      {3056042030, 0, 0},
5987      {3334207724, 0, 0},
5988      {3357250579, 0, 0},
5989      {3705139860, 0, 0},
5990      {3800912395, 0, 0},
5991      {3802564010, 0, 0},
5992      {1111111111111111111, 0, 0},
5993      {0, 8, 11},
5994      {0, 9, 3},
5995      {0, 1, 13},
5996      {0, 14, 10},
5997      {0, 12, 15},
5998      {0, 17, 16},
5999      {0, 18, 4},
6000      {0, 7, 5},
6001      {0, 20, 19},
6002      {0, 2, 21},
6003      {0, 22, 6},
6004    }));
6005
6006    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunction, 0), std::move(codec));
6007  }
6008
6009  {
6010    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(89, {
6011      {0, 0, 0},
6012      {35240468, 0, 0},
6013      {123060826, 0, 0},
6014      {184634770, 0, 0},
6015      {359054425, 0, 0},
6016      {459968607, 0, 0},
6017      {619875033, 0, 0},
6018      {904486530, 0, 0},
6019      {945128292, 0, 0},
6020      {950731750, 0, 0},
6021      {1058429216, 0, 0},
6022      {1182296898, 0, 0},
6023      {1238120570, 0, 0},
6024      {1429389803, 0, 0},
6025      {1652168174, 0, 0},
6026      {1717510093, 0, 0},
6027      {1766422419, 0, 0},
6028      {1775308984, 0, 0},
6029      {1776629361, 0, 0},
6030      {1824526196, 0, 0},
6031      {1957265068, 0, 0},
6032      {1998433745, 0, 0},
6033      {2055664760, 0, 0},
6034      {2303184249, 0, 0},
6035      {2451531615, 0, 0},
6036      {2507457870, 0, 0},
6037      {2550501832, 0, 0},
6038      {2590402790, 0, 0},
6039      {2649103430, 0, 0},
6040      {2780190687, 0, 0},
6041      {2831059514, 0, 0},
6042      {3167253437, 0, 0},
6043      {3269075805, 0, 0},
6044      {3323202731, 0, 0},
6045      {3361419439, 0, 0},
6046      {3464197236, 0, 0},
6047      {3472029049, 0, 0},
6048      {3518630848, 0, 0},
6049      {3604842236, 0, 0},
6050      {3653985133, 0, 0},
6051      {4091916710, 0, 0},
6052      {4121643374, 0, 0},
6053      {4185590212, 0, 0},
6054      {4233562270, 0, 0},
6055      {4235213885, 0, 0},
6056      {1111111111111111111, 0, 0},
6057      {0, 6, 40},
6058      {0, 14, 31},
6059      {0, 7, 9},
6060      {0, 29, 27},
6061      {0, 18, 44},
6062      {0, 8, 5},
6063      {0, 10, 3},
6064      {0, 41, 37},
6065      {0, 42, 35},
6066      {0, 2, 1},
6067      {0, 47, 46},
6068      {0, 48, 4},
6069      {0, 11, 49},
6070      {0, 50, 36},
6071      {0, 19, 51},
6072      {0, 53, 52},
6073      {0, 55, 54},
6074      {0, 15, 12},
6075      {0, 26, 16},
6076      {0, 56, 21},
6077      {0, 25, 33},
6078      {0, 43, 24},
6079      {0, 57, 39},
6080      {0, 59, 58},
6081      {0, 61, 60},
6082      {0, 62, 34},
6083      {0, 64, 63},
6084      {0, 17, 30},
6085      {0, 66, 65},
6086      {0, 20, 67},
6087      {0, 13, 68},
6088      {0, 28, 69},
6089      {0, 70, 32},
6090      {0, 72, 71},
6091      {0, 73, 22},
6092      {0, 75, 74},
6093      {0, 77, 76},
6094      {0, 79, 78},
6095      {0, 80, 23},
6096      {0, 45, 81},
6097      {0, 83, 82},
6098      {0, 85, 84},
6099      {0, 38, 86},
6100      {0, 88, 87},
6101    }));
6102
6103    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunction, 1), std::move(codec));
6104  }
6105
6106  {
6107    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(87, {
6108      {0, 0, 0},
6109      {75986790, 0, 0},
6110      {95470391, 0, 0},
6111      {170378107, 0, 0},
6112      {172029722, 0, 0},
6113      {204234270, 0, 0},
6114      {205885885, 0, 0},
6115      {244668133, 0, 0},
6116      {265778447, 0, 0},
6117      {753954113, 0, 0},
6118      {1000070091, 0, 0},
6119      {1671139745, 0, 0},
6120      {1774874546, 0, 0},
6121      {1776526161, 0, 0},
6122      {1887808856, 0, 0},
6123      {1889460471, 0, 0},
6124      {1917966999, 0, 0},
6125      {2044728014, 0, 0},
6126      {2192810893, 0, 0},
6127      {2293247016, 0, 0},
6128      {2503194620, 0, 0},
6129      {2608484640, 0, 0},
6130      {2615111110, 0, 0},
6131      {2668769415, 0, 0},
6132      {2759951687, 0, 0},
6133      {2761603302, 0, 0},
6134      {2856623532, 0, 0},
6135      {2956189845, 0, 0},
6136      {3085119011, 0, 0},
6137      {3367313400, 0, 0},
6138      {3447882276, 0, 0},
6139      {3633746133, 0, 0},
6140      {3635397748, 0, 0},
6141      {3710645347, 0, 0},
6142      {3712296962, 0, 0},
6143      {3727494858, 0, 0},
6144      {3747079365, 0, 0},
6145      {3748965853, 0, 0},
6146      {3750617468, 0, 0},
6147      {4018820793, 0, 0},
6148      {4022124023, 0, 0},
6149      {4024173916, 0, 0},
6150      {4215670524, 0, 0},
6151      {4217322139, 0, 0},
6152      {1111111111111111111, 0, 0},
6153      {0, 39, 28},
6154      {0, 29, 40},
6155      {0, 37, 33},
6156      {0, 38, 12},
6157      {0, 9, 26},
6158      {0, 18, 6},
6159      {0, 41, 3},
6160      {0, 11, 13},
6161      {0, 5, 8},
6162      {0, 45, 30},
6163      {0, 22, 46},
6164      {0, 48, 47},
6165      {0, 16, 17},
6166      {0, 34, 49},
6167      {0, 51, 50},
6168      {0, 53, 52},
6169      {0, 7, 2},
6170      {0, 23, 21},
6171      {0, 54, 10},
6172      {0, 20, 36},
6173      {0, 55, 35},
6174      {0, 56, 4},
6175      {0, 43, 57},
6176      {0, 59, 58},
6177      {0, 60, 42},
6178      {0, 62, 61},
6179      {0, 63, 15},
6180      {0, 64, 31},
6181      {0, 14, 65},
6182      {0, 66, 24},
6183      {0, 67, 32},
6184      {0, 68, 19},
6185      {0, 70, 69},
6186      {0, 71, 27},
6187      {0, 73, 72},
6188      {0, 75, 74},
6189      {0, 77, 76},
6190      {0, 78, 25},
6191      {0, 44, 79},
6192      {0, 81, 80},
6193      {0, 83, 82},
6194      {0, 1, 84},
6195      {0, 86, 85},
6196    }));
6197
6198    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunction, 3), std::move(codec));
6199  }
6200
6201  {
6202    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(41, {
6203      {0, 0, 0},
6204      {436416061, 0, 0},
6205      {543621065, 0, 0},
6206      {679771963, 0, 0},
6207      {815757910, 0, 0},
6208      {827698488, 0, 0},
6209      {1294403159, 0, 0},
6210      {1296054774, 0, 0},
6211      {1297706389, 0, 0},
6212      {1579585816, 0, 0},
6213      {1675764636, 0, 0},
6214      {1824016656, 0, 0},
6215      {1951208733, 0, 0},
6216      {2194691858, 0, 0},
6217      {2320303498, 0, 0},
6218      {2926633629, 0, 0},
6219      {3095831808, 0, 0},
6220      {3249265647, 0, 0},
6221      {3334207724, 0, 0},
6222      {4050155669, 0, 0},
6223      {4141567741, 0, 0},
6224      {1111111111111111111, 0, 0},
6225      {0, 2, 11},
6226      {0, 19, 16},
6227      {0, 9, 4},
6228      {0, 1, 17},
6229      {0, 22, 10},
6230      {0, 24, 23},
6231      {0, 15, 25},
6232      {0, 13, 26},
6233      {0, 27, 20},
6234      {0, 12, 28},
6235      {0, 30, 29},
6236      {0, 31, 18},
6237      {0, 3, 21},
6238      {0, 32, 14},
6239      {0, 34, 33},
6240      {0, 35, 8},
6241      {0, 5, 6},
6242      {0, 37, 36},
6243      {0, 39, 38},
6244      {0, 40, 7},
6245    }));
6246
6247    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunctionParameter, 0), std::move(codec));
6248  }
6249
6250  {
6251    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(41, {
6252      {0, 0, 0},
6253      {522971108, 0, 0},
6254      {615341051, 0, 0},
6255      {718301639, 0, 0},
6256      {985750227, 0, 0},
6257      {1395113939, 0, 0},
6258      {1510333659, 0, 0},
6259      {1642805350, 0, 0},
6260      {1846856260, 0, 0},
6261      {1957218950, 0, 0},
6262      {1977038330, 0, 0},
6263      {1978689945, 0, 0},
6264      {1980341560, 0, 0},
6265      {2262220987, 0, 0},
6266      {2674422363, 0, 0},
6267      {3197739982, 0, 0},
6268      {3465954368, 0, 0},
6269      {3941049054, 0, 0},
6270      {3945795573, 0, 0},
6271      {4080527786, 0, 0},
6272      {4154758669, 0, 0},
6273      {1111111111111111111, 0, 0},
6274      {0, 3, 17},
6275      {0, 4, 15},
6276      {0, 8, 7},
6277      {0, 2, 20},
6278      {0, 22, 19},
6279      {0, 24, 23},
6280      {0, 14, 25},
6281      {0, 16, 26},
6282      {0, 27, 13},
6283      {0, 6, 28},
6284      {0, 30, 29},
6285      {0, 31, 10},
6286      {0, 11, 21},
6287      {0, 32, 12},
6288      {0, 34, 33},
6289      {0, 35, 5},
6290      {0, 9, 18},
6291      {0, 37, 36},
6292      {0, 39, 38},
6293      {0, 40, 1},
6294    }));
6295
6296    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunctionParameter, 1), std::move(codec));
6297  }
6298
6299  {
6300    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(27, {
6301      {0, 0, 0},
6302      {545678922, 0, 0},
6303      {679771963, 0, 0},
6304      {899570100, 0, 0},
6305      {929101967, 0, 0},
6306      {1100599986, 0, 0},
6307      {1951208733, 0, 0},
6308      {2320303498, 0, 0},
6309      {3056042030, 0, 0},
6310      {3334207724, 0, 0},
6311      {3357250579, 0, 0},
6312      {3705139860, 0, 0},
6313      {3800912395, 0, 0},
6314      {3802564010, 0, 0},
6315      {1111111111111111111, 0, 0},
6316      {0, 5, 3},
6317      {0, 10, 13},
6318      {0, 4, 15},
6319      {0, 16, 11},
6320      {0, 17, 1},
6321      {0, 14, 12},
6322      {0, 19, 18},
6323      {0, 21, 20},
6324      {0, 22, 8},
6325      {0, 7, 6},
6326      {0, 23, 9},
6327      {0, 25, 24},
6328      {0, 26, 2},
6329    }));
6330
6331    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunctionCall, 0), std::move(codec));
6332  }
6333
6334  {
6335    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(115, {
6336      {0, 0, 0},
6337      {57149555, 0, 0},
6338      {86116519, 0, 0},
6339      {168339452, 0, 0},
6340      {181902171, 0, 0},
6341      {284226441, 0, 0},
6342      {314809953, 0, 0},
6343      {330249537, 0, 0},
6344      {527665290, 0, 0},
6345      {545363837, 0, 0},
6346      {707478563, 0, 0},
6347      {740921498, 0, 0},
6348      {807276090, 0, 0},
6349      {824323032, 0, 0},
6350      {835458563, 0, 0},
6351      {1162127370, 0, 0},
6352      {1245448751, 0, 0},
6353      {1277245109, 0, 0},
6354      {1375043498, 0, 0},
6355      {1380991098, 0, 0},
6356      {1603937321, 0, 0},
6357      {1708264968, 0, 0},
6358      {1717555224, 0, 0},
6359      {1765126703, 0, 0},
6360      {1838993983, 0, 0},
6361      {1949856502, 0, 0},
6362      {2108571893, 0, 0},
6363      {2110223508, 0, 0},
6364      {2293637521, 0, 0},
6365      {2377112119, 0, 0},
6366      {2378763734, 0, 0},
6367      {2512398201, 0, 0},
6368      {2516325050, 0, 0},
6369      {2645135839, 0, 0},
6370      {2708915136, 0, 0},
6371      {2894979602, 0, 0},
6372      {2903897222, 0, 0},
6373      {2976581453, 0, 0},
6374      {3054834317, 0, 0},
6375      {3075866530, 0, 0},
6376      {3085157904, 0, 0},
6377      {3242843022, 0, 0},
6378      {3266028549, 0, 0},
6379      {3296691317, 0, 0},
6380      {3299488628, 0, 0},
6381      {3322500634, 0, 0},
6382      {3345707173, 0, 0},
6383      {3536390697, 0, 0},
6384      {3584683259, 0, 0},
6385      {3647606635, 0, 0},
6386      {3760372982, 0, 0},
6387      {3823959661, 0, 0},
6388      {3839389658, 0, 0},
6389      {4124281183, 0, 0},
6390      {4130950286, 0, 0},
6391      {4169878842, 0, 0},
6392      {4174489262, 0, 0},
6393      {4237497041, 0, 0},
6394      {1111111111111111111, 0, 0},
6395      {0, 17, 23},
6396      {0, 37, 8},
6397      {0, 45, 39},
6398      {0, 41, 14},
6399      {0, 48, 43},
6400      {0, 40, 31},
6401      {0, 19, 29},
6402      {0, 53, 26},
6403      {0, 10, 5},
6404      {0, 50, 24},
6405      {0, 27, 3},
6406      {0, 59, 32},
6407      {0, 51, 18},
6408      {0, 52, 55},
6409      {0, 60, 57},
6410      {0, 62, 61},
6411      {0, 36, 33},
6412      {0, 64, 63},
6413      {0, 65, 22},
6414      {0, 66, 46},
6415      {0, 6, 67},
6416      {0, 68, 13},
6417      {0, 21, 44},
6418      {0, 1, 69},
6419      {0, 30, 11},
6420      {0, 71, 70},
6421      {0, 12, 72},
6422      {0, 74, 73},
6423      {0, 76, 75},
6424      {0, 16, 2},
6425      {0, 49, 35},
6426      {0, 77, 9},
6427      {0, 42, 28},
6428      {0, 15, 78},
6429      {0, 80, 79},
6430      {0, 82, 81},
6431      {0, 47, 83},
6432      {0, 85, 84},
6433      {0, 87, 86},
6434      {0, 89, 88},
6435      {0, 20, 38},
6436      {0, 54, 90},
6437      {0, 34, 91},
6438      {0, 93, 92},
6439      {0, 25, 94},
6440      {0, 95, 7},
6441      {0, 97, 96},
6442      {0, 56, 98},
6443      {0, 100, 99},
6444      {0, 102, 101},
6445      {0, 104, 103},
6446      {0, 4, 105},
6447      {0, 107, 106},
6448      {0, 58, 108},
6449      {0, 110, 109},
6450      {0, 112, 111},
6451      {0, 114, 113},
6452    }));
6453
6454    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunctionCall, 1), std::move(codec));
6455  }
6456
6457  {
6458    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(81, {
6459      {0, 0, 0},
6460      {35240468, 0, 0},
6461      {36096192, 0, 0},
6462      {123060826, 0, 0},
6463      {184634770, 0, 0},
6464      {459968607, 0, 0},
6465      {619875033, 0, 0},
6466      {950731750, 0, 0},
6467      {1058429216, 0, 0},
6468      {1182296898, 0, 0},
6469      {1238120570, 0, 0},
6470      {1271484400, 0, 0},
6471      {1429389803, 0, 0},
6472      {1717510093, 0, 0},
6473      {1766422419, 0, 0},
6474      {1775308984, 0, 0},
6475      {1817271123, 0, 0},
6476      {1917336504, 0, 0},
6477      {1957265068, 0, 0},
6478      {1998433745, 0, 0},
6479      {2055664760, 0, 0},
6480      {2303184249, 0, 0},
6481      {2308565678, 0, 0},
6482      {2451531615, 0, 0},
6483      {2496297824, 0, 0},
6484      {2507457870, 0, 0},
6485      {2550501832, 0, 0},
6486      {2590402790, 0, 0},
6487      {2649103430, 0, 0},
6488      {2831059514, 0, 0},
6489      {2836440943, 0, 0},
6490      {3269075805, 0, 0},
6491      {3361419439, 0, 0},
6492      {3457269042, 0, 0},
6493      {3464197236, 0, 0},
6494      {3472029049, 0, 0},
6495      {3518630848, 0, 0},
6496      {3587381650, 0, 0},
6497      {3653985133, 0, 0},
6498      {4185590212, 0, 0},
6499      {4233562270, 0, 0},
6500      {1111111111111111111, 0, 0},
6501      {0, 40, 37},
6502      {0, 22, 30},
6503      {0, 2, 7},
6504      {0, 24, 11},
6505      {0, 16, 33},
6506      {0, 6, 34},
6507      {0, 42, 27},
6508      {0, 5, 43},
6509      {0, 4, 44},
6510      {0, 36, 8},
6511      {0, 39, 45},
6512      {0, 46, 1},
6513      {0, 3, 47},
6514      {0, 48, 23},
6515      {0, 49, 9},
6516      {0, 50, 35},
6517      {0, 52, 51},
6518      {0, 32, 53},
6519      {0, 13, 10},
6520      {0, 26, 14},
6521      {0, 19, 54},
6522      {0, 55, 25},
6523      {0, 56, 38},
6524      {0, 17, 57},
6525      {0, 59, 58},
6526      {0, 61, 60},
6527      {0, 62, 29},
6528      {0, 12, 15},
6529      {0, 18, 63},
6530      {0, 28, 64},
6531      {0, 65, 31},
6532      {0, 67, 66},
6533      {0, 20, 41},
6534      {0, 69, 68},
6535      {0, 71, 70},
6536      {0, 21, 72},
6537      {0, 74, 73},
6538      {0, 76, 75},
6539      {0, 78, 77},
6540      {0, 80, 79},
6541    }));
6542
6543    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunctionCall, 2), std::move(codec));
6544  }
6545
6546  {
6547    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(61, {
6548      {0, 0, 0},
6549      {37459569, 0, 0},
6550      {162167595, 0, 0},
6551      {535067202, 0, 0},
6552      {701281393, 0, 0},
6553      {837715723, 0, 0},
6554      {1320550031, 0, 0},
6555      {1630583316, 0, 0},
6556      {1913735398, 0, 0},
6557      {1918481917, 0, 0},
6558      {1955871800, 0, 0},
6559      {1977038330, 0, 0},
6560      {2053214130, 0, 0},
6561      {2443959748, 0, 0},
6562      {2564745684, 0, 0},
6563      {2622612602, 0, 0},
6564      {2677252364, 0, 0},
6565      {2736026107, 0, 0},
6566      {2790624748, 0, 0},
6567      {2882994691, 0, 0},
6568      {2888125966, 0, 0},
6569      {2970183398, 0, 0},
6570      {3253403867, 0, 0},
6571      {3427283542, 0, 0},
6572      {3570411982, 0, 0},
6573      {3619787319, 0, 0},
6574      {3662767579, 0, 0},
6575      {3884846406, 0, 0},
6576      {3910458990, 0, 0},
6577      {3927915220, 0, 0},
6578      {4224872590, 0, 0},
6579      {1111111111111111111, 0, 0},
6580      {0, 5, 20},
6581      {0, 6, 25},
6582      {0, 23, 3},
6583      {0, 2, 4},
6584      {0, 14, 17},
6585      {0, 11, 8},
6586      {0, 27, 10},
6587      {0, 19, 28},
6588      {0, 12, 16},
6589      {0, 33, 32},
6590      {0, 35, 34},
6591      {0, 37, 36},
6592      {0, 39, 38},
6593      {0, 40, 15},
6594      {0, 41, 7},
6595      {0, 1, 21},
6596      {0, 24, 13},
6597      {0, 29, 42},
6598      {0, 44, 43},
6599      {0, 22, 45},
6600      {0, 47, 46},
6601      {0, 49, 48},
6602      {0, 50, 30},
6603      {0, 31, 51},
6604      {0, 53, 52},
6605      {0, 55, 54},
6606      {0, 56, 9},
6607      {0, 57, 26},
6608      {0, 59, 58},
6609      {0, 60, 18},
6610    }));
6611
6612    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunctionCall, 3), std::move(codec));
6613  }
6614
6615  {
6616    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(39, {
6617      {0, 0, 0},
6618      {744062262, 0, 0},
6619      {810488476, 0, 0},
6620      {1040775722, 0, 0},
6621      {1280126114, 0, 0},
6622      {1367301635, 0, 0},
6623      {1684282922, 0, 0},
6624      {1918481917, 0, 0},
6625      {1978689945, 0, 0},
6626      {1980341560, 0, 0},
6627      {2443959748, 0, 0},
6628      {2629265310, 0, 0},
6629      {2790624748, 0, 0},
6630      {2970183398, 0, 0},
6631      {3044188332, 0, 0},
6632      {3496407048, 0, 0},
6633      {3662767579, 0, 0},
6634      {3887377256, 0, 0},
6635      {3971481069, 0, 0},
6636      {4224872590, 0, 0},
6637      {1111111111111111111, 0, 0},
6638      {0, 3, 2},
6639      {0, 18, 15},
6640      {0, 21, 6},
6641      {0, 13, 11},
6642      {0, 4, 22},
6643      {0, 14, 1},
6644      {0, 24, 23},
6645      {0, 25, 8},
6646      {0, 27, 26},
6647      {0, 20, 17},
6648      {0, 5, 28},
6649      {0, 29, 9},
6650      {0, 16, 10},
6651      {0, 31, 30},
6652      {0, 32, 7},
6653      {0, 19, 33},
6654      {0, 35, 34},
6655      {0, 37, 36},
6656      {0, 38, 12},
6657    }));
6658
6659    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunctionCall, 4), std::move(codec));
6660  }
6661
6662  {
6663    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(27, {
6664      {0, 0, 0},
6665      {37459569, 0, 0},
6666      {837715723, 0, 0},
6667      {1352628475, 0, 0},
6668      {1918481917, 0, 0},
6669      {1978689945, 0, 0},
6670      {1980341560, 0, 0},
6671      {2096388952, 0, 0},
6672      {2622612602, 0, 0},
6673      {2790624748, 0, 0},
6674      {2970183398, 0, 0},
6675      {3510682541, 0, 0},
6676      {3783543823, 0, 0},
6677      {4224872590, 0, 0},
6678      {1111111111111111111, 0, 0},
6679      {0, 7, 11},
6680      {0, 2, 8},
6681      {0, 15, 12},
6682      {0, 1, 3},
6683      {0, 16, 6},
6684      {0, 18, 17},
6685      {0, 19, 14},
6686      {0, 20, 5},
6687      {0, 10, 21},
6688      {0, 22, 4},
6689      {0, 23, 13},
6690      {0, 25, 24},
6691      {0, 9, 26},
6692    }));
6693
6694    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunctionCall, 5), std::move(codec));
6695  }
6696
6697  {
6698    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(13, {
6699      {0, 0, 0},
6700      {1510333659, 0, 0},
6701      {1684282922, 0, 0},
6702      {1918481917, 0, 0},
6703      {2790624748, 0, 0},
6704      {3662767579, 0, 0},
6705      {4224872590, 0, 0},
6706      {1111111111111111111, 0, 0},
6707      {0, 5, 1},
6708      {0, 8, 2},
6709      {0, 9, 7},
6710      {0, 3, 10},
6711      {0, 6, 11},
6712      {0, 4, 12},
6713    }));
6714
6715    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunctionCall, 6), std::move(codec));
6716  }
6717
6718  {
6719    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(27, {
6720      {0, 0, 0},
6721      {161668409, 0, 0},
6722      {188347929, 0, 0},
6723      {653708953, 0, 0},
6724      {976111724, 0, 0},
6725      {1510333659, 0, 0},
6726      {1918481917, 0, 0},
6727      {2790624748, 0, 0},
6728      {3033873113, 0, 0},
6729      {3499234137, 0, 0},
6730      {3525913657, 0, 0},
6731      {3552593177, 0, 0},
6732      {3570411982, 0, 0},
6733      {4224872590, 0, 0},
6734      {1111111111111111111, 0, 0},
6735      {0, 8, 3},
6736      {0, 2, 9},
6737      {0, 10, 11},
6738      {0, 15, 1},
6739      {0, 17, 16},
6740      {0, 19, 18},
6741      {0, 5, 4},
6742      {0, 20, 6},
6743      {0, 12, 21},
6744      {0, 14, 22},
6745      {0, 24, 23},
6746      {0, 7, 25},
6747      {0, 13, 26},
6748    }));
6749
6750    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunctionCall, 7), std::move(codec));
6751  }
6752
6753  {
6754    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(31, {
6755      {0, 0, 0},
6756      {226836633, 0, 0},
6757      {296981500, 0, 0},
6758      {718877177, 0, 0},
6759      {745556697, 0, 0},
6760      {798915737, 0, 0},
6761      {1510333659, 0, 0},
6762      {1684282922, 0, 0},
6763      {2444465148, 0, 0},
6764      {2713718873, 0, 0},
6765      {3495546641, 0, 0},
6766      {3564402361, 0, 0},
6767      {4056442905, 0, 0},
6768      {4083122425, 0, 0},
6769      {4123141705, 0, 0},
6770      {4224872590, 0, 0},
6771      {1111111111111111111, 0, 0},
6772      {0, 14, 4},
6773      {0, 5, 3},
6774      {0, 9, 8},
6775      {0, 13, 12},
6776      {0, 1, 11},
6777      {0, 18, 17},
6778      {0, 2, 19},
6779      {0, 21, 20},
6780      {0, 23, 22},
6781      {0, 25, 24},
6782      {0, 26, 7},
6783      {0, 27, 16},
6784      {0, 10, 6},
6785      {0, 29, 28},
6786      {0, 15, 30},
6787    }));
6788
6789    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunctionCall, 8), std::move(codec));
6790  }
6791
6792  {
6793    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(35, {
6794      {0, 0, 0},
6795      {161668409, 0, 0},
6796      {188347929, 0, 0},
6797      {215027449, 0, 0},
6798      {296981500, 0, 0},
6799      {653708953, 0, 0},
6800      {680388473, 0, 0},
6801      {1119069977, 0, 0},
6802      {1510333659, 0, 0},
6803      {1584774136, 0, 0},
6804      {2049792025, 0, 0},
6805      {2444465148, 0, 0},
6806      {2568512089, 0, 0},
6807      {3033873113, 0, 0},
6808      {3499234137, 0, 0},
6809      {3525913657, 0, 0},
6810      {3552593177, 0, 0},
6811      {4224872590, 0, 0},
6812      {1111111111111111111, 0, 0},
6813      {0, 7, 6},
6814      {0, 10, 12},
6815      {0, 4, 3},
6816      {0, 16, 11},
6817      {0, 19, 14},
6818      {0, 5, 2},
6819      {0, 20, 13},
6820      {0, 21, 15},
6821      {0, 1, 22},
6822      {0, 24, 23},
6823      {0, 26, 25},
6824      {0, 28, 27},
6825      {0, 18, 29},
6826      {0, 8, 30},
6827      {0, 32, 31},
6828      {0, 9, 33},
6829      {0, 17, 34},
6830    }));
6831
6832    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunctionCall, 9), std::move(codec));
6833  }
6834
6835  {
6836    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(25, {
6837      {0, 0, 0},
6838      {825595257, 0, 0},
6839      {1064945649, 0, 0},
6840      {1290956281, 0, 0},
6841      {1510333659, 0, 0},
6842      {2096388952, 0, 0},
6843      {2248357849, 0, 0},
6844      {2713718873, 0, 0},
6845      {3187066832, 0, 0},
6846      {3205759417, 0, 0},
6847      {4064212479, 0, 0},
6848      {4163160985, 0, 0},
6849      {4224872590, 0, 0},
6850      {1111111111111111111, 0, 0},
6851      {0, 8, 3},
6852      {0, 2, 9},
6853      {0, 7, 6},
6854      {0, 5, 14},
6855      {0, 16, 15},
6856      {0, 17, 11},
6857      {0, 19, 18},
6858      {0, 20, 1},
6859      {0, 4, 13},
6860      {0, 22, 21},
6861      {0, 10, 23},
6862      {0, 12, 24},
6863    }));
6864
6865    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunctionCall, 10), std::move(codec));
6866  }
6867
6868  {
6869    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(27, {
6870      {0, 0, 0},
6871      {123108003, 0, 0},
6872      {296981500, 0, 0},
6873      {595410904, 0, 0},
6874      {1466938734, 0, 0},
6875      {1503477720, 0, 0},
6876      {1816558243, 0, 0},
6877      {1990431740, 0, 0},
6878      {2724625059, 0, 0},
6879      {2790624748, 0, 0},
6880      {2812498065, 0, 0},
6881      {3160388974, 0, 0},
6882      {3745223676, 0, 0},
6883      {3982311384, 0, 0},
6884      {1111111111111111111, 0, 0},
6885      {0, 5, 13},
6886      {0, 8, 1},
6887      {0, 12, 11},
6888      {0, 15, 3},
6889      {0, 6, 4},
6890      {0, 16, 7},
6891      {0, 17, 14},
6892      {0, 18, 2},
6893      {0, 19, 10},
6894      {0, 21, 20},
6895      {0, 23, 22},
6896      {0, 25, 24},
6897      {0, 9, 26},
6898    }));
6899
6900    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunctionCall, 11), std::move(codec));
6901  }
6902
6903  {
6904    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(25, {
6905      {0, 0, 0},
6906      {94145952, 0, 0},
6907      {1054641568, 0, 0},
6908      {1269075360, 0, 0},
6909      {1675922848, 0, 0},
6910      {2038205856, 0, 0},
6911      {2433519008, 0, 0},
6912      {2636942752, 0, 0},
6913      {2790624748, 0, 0},
6914      {2840366496, 0, 0},
6915      {2851900832, 0, 0},
6916      {2964622752, 0, 0},
6917      {3654061472, 0, 0},
6918      {1111111111111111111, 0, 0},
6919      {0, 7, 1},
6920      {0, 12, 6},
6921      {0, 14, 10},
6922      {0, 13, 4},
6923      {0, 11, 15},
6924      {0, 3, 16},
6925      {0, 2, 17},
6926      {0, 18, 5},
6927      {0, 9, 19},
6928      {0, 21, 20},
6929      {0, 23, 22},
6930      {0, 8, 24},
6931    }));
6932
6933    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunctionCall, 12), std::move(codec));
6934  }
6935
6936  {
6937    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(45, {
6938      {0, 0, 0},
6939      {107544081, 0, 0},
6940      {125015036, 0, 0},
6941      {586244865, 0, 0},
6942      {1033081852, 0, 0},
6943      {1064945649, 0, 0},
6944      {1155765244, 0, 0},
6945      {1304296041, 0, 0},
6946      {1543646433, 0, 0},
6947      {1782996825, 0, 0},
6948      {1941148668, 0, 0},
6949      {2002490364, 0, 0},
6950      {2022347217, 0, 0},
6951      {2063832060, 0, 0},
6952      {2487708241, 0, 0},
6953      {2726532092, 0, 0},
6954      {2849215484, 0, 0},
6955      {2966409025, 0, 0},
6956      {3445109809, 0, 0},
6957      {3458449569, 0, 0},
6958      {3634598908, 0, 0},
6959      {3695940604, 0, 0},
6960      {3923810593, 0, 0},
6961      {1111111111111111111, 0, 0},
6962      {0, 7, 2},
6963      {0, 14, 13},
6964      {0, 1, 23},
6965      {0, 6, 5},
6966      {0, 16, 15},
6967      {0, 24, 17},
6968      {0, 12, 25},
6969      {0, 22, 18},
6970      {0, 10, 26},
6971      {0, 28, 27},
6972      {0, 21, 29},
6973      {0, 31, 30},
6974      {0, 9, 8},
6975      {0, 11, 32},
6976      {0, 33, 19},
6977      {0, 3, 34},
6978      {0, 36, 35},
6979      {0, 38, 37},
6980      {0, 20, 39},
6981      {0, 41, 40},
6982      {0, 42, 4},
6983      {0, 44, 43},
6984    }));
6985
6986    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunctionCall, 13), std::move(codec));
6987  }
6988
6989  {
6990    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(23, {
6991      {0, 0, 0},
6992      {247698428, 0, 0},
6993      {309040124, 0, 0},
6994      {333554713, 0, 0},
6995      {572905105, 0, 0},
6996      {1033081852, 0, 0},
6997      {2002490364, 0, 0},
6998      {2009007457, 0, 0},
6999      {2487708241, 0, 0},
7000      {3634598908, 0, 0},
7001      {3695940604, 0, 0},
7002      {3923810593, 0, 0},
7003      {1111111111111111111, 0, 0},
7004      {0, 6, 1},
7005      {0, 9, 7},
7006      {0, 5, 12},
7007      {0, 14, 13},
7008      {0, 15, 8},
7009      {0, 3, 16},
7010      {0, 17, 11},
7011      {0, 10, 4},
7012      {0, 2, 18},
7013      {0, 20, 19},
7014      {0, 22, 21},
7015    }));
7016
7017    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunctionCall, 14), std::move(codec));
7018  }
7019
7020  {
7021    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(11, {
7022      {0, 0, 0},
7023      {247698428, 0, 0},
7024      {1033081852, 0, 0},
7025      {2002490364, 0, 0},
7026      {2910557180, 0, 0},
7027      {3757282300, 0, 0},
7028      {1111111111111111111, 0, 0},
7029      {0, 6, 4},
7030      {0, 7, 3},
7031      {0, 2, 8},
7032      {0, 1, 5},
7033      {0, 10, 9},
7034    }));
7035
7036    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunctionCall, 15), std::move(codec));
7037  }
7038
7039  {
7040    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
7041      {0, 0, 0},
7042      {1033081852, 0, 0},
7043      {1094423548, 0, 0},
7044      {2002490364, 0, 0},
7045      {3757282300, 0, 0},
7046      {1111111111111111111, 0, 0},
7047      {0, 3, 5},
7048      {0, 6, 2},
7049      {0, 4, 7},
7050      {0, 8, 1},
7051    }));
7052
7053    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFunctionCall, 16), std::move(codec));
7054  }
7055
7056  {
7057    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(57, {
7058      {0, 0, 0},
7059      {135486769, 0, 0},
7060      {450406196, 0, 0},
7061      {503094540, 0, 0},
7062      {543621065, 0, 0},
7063      {827698488, 0, 0},
7064      {1294403159, 0, 0},
7065      {1296054774, 0, 0},
7066      {1297706389, 0, 0},
7067      {1322549027, 0, 0},
7068      {1784441183, 0, 0},
7069      {2194691858, 0, 0},
7070      {2448331885, 0, 0},
7071      {2468230023, 0, 0},
7072      {2547657777, 0, 0},
7073      {2549309392, 0, 0},
7074      {2550961007, 0, 0},
7075      {2934934694, 0, 0},
7076      {2936586309, 0, 0},
7077      {2938237924, 0, 0},
7078      {3094180193, 0, 0},
7079      {3095831808, 0, 0},
7080      {3183924418, 0, 0},
7081      {3561562003, 0, 0},
7082      {3563213618, 0, 0},
7083      {3564865233, 0, 0},
7084      {4028622909, 0, 0},
7085      {4039938779, 0, 0},
7086      {4050155669, 0, 0},
7087      {1111111111111111111, 0, 0},
7088      {0, 27, 28},
7089      {0, 10, 2},
7090      {0, 25, 24},
7091      {0, 1, 12},
7092      {0, 30, 3},
7093      {0, 20, 31},
7094      {0, 9, 32},
7095      {0, 34, 33},
7096      {0, 35, 22},
7097      {0, 26, 15},
7098      {0, 19, 36},
7099      {0, 18, 37},
7100      {0, 38, 16},
7101      {0, 39, 8},
7102      {0, 5, 40},
7103      {0, 6, 41},
7104      {0, 21, 42},
7105      {0, 11, 29},
7106      {0, 4, 43},
7107      {0, 13, 23},
7108      {0, 14, 17},
7109      {0, 7, 44},
7110      {0, 46, 45},
7111      {0, 48, 47},
7112      {0, 50, 49},
7113      {0, 52, 51},
7114      {0, 54, 53},
7115      {0, 56, 55},
7116    }));
7117
7118    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpVariable, 0), std::move(codec));
7119  }
7120
7121  {
7122    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(57, {
7123      {0, 0, 0},
7124      {37459569, 0, 0},
7125      {112745085, 0, 0},
7126      {137840602, 0, 0},
7127      {565334834, 0, 0},
7128      {625975427, 0, 0},
7129      {630964591, 0, 0},
7130      {680016782, 0, 0},
7131      {769422756, 0, 0},
7132      {1009983433, 0, 0},
7133      {1093210099, 0, 0},
7134      {1572088444, 0, 0},
7135      {1584774136, 0, 0},
7136      {1641565587, 0, 0},
7137      {1918481917, 0, 0},
7138      {2190437442, 0, 0},
7139      {2790624748, 0, 0},
7140      {3085467405, 0, 0},
7141      {3181646225, 0, 0},
7142      {3192069648, 0, 0},
7143      {3253403867, 0, 0},
7144      {3390051757, 0, 0},
7145      {3560665067, 0, 0},
7146      {3662767579, 0, 0},
7147      {4053789056, 0, 0},
7148      {4064212479, 0, 0},
7149      {4192247221, 0, 0},
7150      {4224872590, 0, 0},
7151      {4290024976, 0, 0},
7152      {1111111111111111111, 0, 0},
7153      {0, 2, 20},
7154      {0, 28, 10},
7155      {0, 13, 8},
7156      {0, 15, 17},
7157      {0, 30, 21},
7158      {0, 19, 31},
7159      {0, 4, 32},
7160      {0, 34, 33},
7161      {0, 35, 5},
7162      {0, 7, 24},
7163      {0, 9, 36},
7164      {0, 3, 37},
7165      {0, 38, 6},
7166      {0, 39, 23},
7167      {0, 27, 40},
7168      {0, 14, 41},
7169      {0, 25, 42},
7170      {0, 1, 29},
7171      {0, 12, 43},
7172      {0, 11, 26},
7173      {0, 18, 22},
7174      {0, 16, 44},
7175      {0, 46, 45},
7176      {0, 48, 47},
7177      {0, 50, 49},
7178      {0, 52, 51},
7179      {0, 54, 53},
7180      {0, 56, 55},
7181    }));
7182
7183    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpVariable, 1), std::move(codec));
7184  }
7185
7186  {
7187    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(27, {
7188      {0, 0, 0},
7189      {162255877, 0, 0},
7190      {679771963, 0, 0},
7191      {789872778, 0, 0},
7192      {1154919607, 0, 0},
7193      {1343794461, 0, 0},
7194      {1951208733, 0, 0},
7195      {2263349224, 0, 0},
7196      {2320303498, 0, 0},
7197      {2924146124, 0, 0},
7198      {2984325996, 0, 0},
7199      {3334207724, 0, 0},
7200      {3868239231, 0, 0},
7201      {3869890846, 0, 0},
7202      {1111111111111111111, 0, 0},
7203      {0, 5, 3},
7204      {0, 9, 7},
7205      {0, 12, 4},
7206      {0, 16, 15},
7207      {0, 18, 17},
7208      {0, 14, 19},
7209      {0, 13, 10},
7210      {0, 20, 1},
7211      {0, 21, 8},
7212      {0, 2, 22},
7213      {0, 11, 23},
7214      {0, 6, 24},
7215      {0, 26, 25},
7216    }));
7217
7218    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpLoad, 0), std::move(codec));
7219  }
7220
7221  {
7222    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(83, {
7223      {0, 0, 0},
7224      {169674806, 0, 0},
7225      {269823086, 0, 0},
7226      {408465899, 0, 0},
7227      {451264926, 0, 0},
7228      {543558236, 0, 0},
7229      {810488476, 0, 0},
7230      {850497536, 0, 0},
7231      {870594305, 0, 0},
7232      {883854656, 0, 0},
7233      {1033363654, 0, 0},
7234      {1069781886, 0, 0},
7235      {1141965917, 0, 0},
7236      {1323407757, 0, 0},
7237      {1570165302, 0, 0},
7238      {1684282922, 0, 0},
7239      {1742737136, 0, 0},
7240      {1901166356, 0, 0},
7241      {1949759310, 0, 0},
7242      {2043873558, 0, 0},
7243      {2087004702, 0, 0},
7244      {2096388952, 0, 0},
7245      {2157103435, 0, 0},
7246      {2219733501, 0, 0},
7247      {2356768706, 0, 0},
7248      {2443959748, 0, 0},
7249      {2517964682, 0, 0},
7250      {2614879967, 0, 0},
7251      {2622612602, 0, 0},
7252      {2660843182, 0, 0},
7253      {2959147533, 0, 0},
7254      {2970183398, 0, 0},
7255      {3044188332, 0, 0},
7256      {3091876332, 0, 0},
7257      {3187066832, 0, 0},
7258      {3244209297, 0, 0},
7259      {3487022798, 0, 0},
7260      {3496407048, 0, 0},
7261      {3570411982, 0, 0},
7262      {3692647551, 0, 0},
7263      {3713290482, 0, 0},
7264      {3831290364, 0, 0},
7265      {1111111111111111111, 0, 0},
7266      {0, 4, 1},
7267      {0, 35, 13},
7268      {0, 25, 11},
7269      {0, 7, 10},
7270      {0, 19, 36},
7271      {0, 43, 27},
7272      {0, 16, 29},
7273      {0, 22, 3},
7274      {0, 41, 30},
7275      {0, 44, 12},
7276      {0, 2, 24},
7277      {0, 40, 32},
7278      {0, 23, 45},
7279      {0, 46, 39},
7280      {0, 17, 33},
7281      {0, 48, 47},
7282      {0, 8, 49},
7283      {0, 51, 50},
7284      {0, 52, 20},
7285      {0, 53, 14},
7286      {0, 31, 54},
7287      {0, 15, 55},
7288      {0, 57, 56},
7289      {0, 59, 58},
7290      {0, 6, 26},
7291      {0, 61, 60},
7292      {0, 34, 62},
7293      {0, 64, 63},
7294      {0, 5, 37},
7295      {0, 9, 65},
7296      {0, 18, 28},
7297      {0, 66, 38},
7298      {0, 68, 67},
7299      {0, 69, 21},
7300      {0, 71, 70},
7301      {0, 73, 72},
7302      {0, 75, 74},
7303      {0, 77, 76},
7304      {0, 79, 78},
7305      {0, 80, 42},
7306      {0, 82, 81},
7307    }));
7308
7309    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpLoad, 1), std::move(codec));
7310  }
7311
7312  {
7313    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(83, {
7314      {0, 0, 0},
7315      {28782128, 0, 0},
7316      {30433743, 0, 0},
7317      {37459569, 0, 0},
7318      {137840602, 0, 0},
7319      {522971108, 0, 0},
7320      {565334834, 0, 0},
7321      {625975427, 0, 0},
7322      {630964591, 0, 0},
7323      {680016782, 0, 0},
7324      {1009983433, 0, 0},
7325      {1079999262, 0, 0},
7326      {1395113939, 0, 0},
7327      {1572088444, 0, 0},
7328      {1584774136, 0, 0},
7329      {1649426421, 0, 0},
7330      {1918481917, 0, 0},
7331      {1957218950, 0, 0},
7332      {2311941439, 0, 0},
7333      {2313593054, 0, 0},
7334      {2790624748, 0, 0},
7335      {2838165089, 0, 0},
7336      {2839816704, 0, 0},
7337      {2841468319, 0, 0},
7338      {3085467405, 0, 0},
7339      {3181646225, 0, 0},
7340      {3192069648, 0, 0},
7341      {3253403867, 0, 0},
7342      {3364388739, 0, 0},
7343      {3366040354, 0, 0},
7344      {3367691969, 0, 0},
7345      {3369343584, 0, 0},
7346      {3560665067, 0, 0},
7347      {3662767579, 0, 0},
7348      {3945795573, 0, 0},
7349      {4053789056, 0, 0},
7350      {4064212479, 0, 0},
7351      {4224872590, 0, 0},
7352      {4239834800, 0, 0},
7353      {4241486415, 0, 0},
7354      {4243138030, 0, 0},
7355      {4244789645, 0, 0},
7356      {1111111111111111111, 0, 0},
7357      {0, 1, 27},
7358      {0, 15, 2},
7359      {0, 10, 26},
7360      {0, 7, 24},
7361      {0, 9, 31},
7362      {0, 43, 30},
7363      {0, 29, 12},
7364      {0, 11, 41},
7365      {0, 40, 39},
7366      {0, 44, 23},
7367      {0, 22, 6},
7368      {0, 34, 35},
7369      {0, 18, 45},
7370      {0, 46, 21},
7371      {0, 17, 19},
7372      {0, 48, 47},
7373      {0, 28, 49},
7374      {0, 51, 50},
7375      {0, 52, 38},
7376      {0, 53, 33},
7377      {0, 4, 54},
7378      {0, 13, 55},
7379      {0, 57, 56},
7380      {0, 59, 58},
7381      {0, 37, 8},
7382      {0, 61, 60},
7383      {0, 5, 62},
7384      {0, 64, 63},
7385      {0, 36, 32},
7386      {0, 3, 65},
7387      {0, 14, 16},
7388      {0, 66, 25},
7389      {0, 68, 67},
7390      {0, 69, 20},
7391      {0, 71, 70},
7392      {0, 73, 72},
7393      {0, 75, 74},
7394      {0, 77, 76},
7395      {0, 79, 78},
7396      {0, 80, 42},
7397      {0, 82, 81},
7398    }));
7399
7400    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpLoad, 2), std::move(codec));
7401  }
7402
7403  {
7404    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(49, {
7405      {0, 0, 0},
7406      {137840602, 0, 0},
7407      {522971108, 0, 0},
7408      {769422756, 0, 0},
7409      {1009983433, 0, 0},
7410      {1079999262, 0, 0},
7411      {1558345254, 0, 0},
7412      {1572088444, 0, 0},
7413      {1641565587, 0, 0},
7414      {1918481917, 0, 0},
7415      {2311941439, 0, 0},
7416      {2313593054, 0, 0},
7417      {2790624748, 0, 0},
7418      {2838165089, 0, 0},
7419      {2994529201, 0, 0},
7420      {2996180816, 0, 0},
7421      {2997832431, 0, 0},
7422      {3027538652, 0, 0},
7423      {3253403867, 0, 0},
7424      {3364388739, 0, 0},
7425      {3560665067, 0, 0},
7426      {3662767579, 0, 0},
7427      {3945795573, 0, 0},
7428      {4192247221, 0, 0},
7429      {4224872590, 0, 0},
7430      {1111111111111111111, 0, 0},
7431      {0, 14, 17},
7432      {0, 16, 15},
7433      {0, 13, 11},
7434      {0, 10, 3},
7435      {0, 22, 18},
7436      {0, 6, 8},
7437      {0, 19, 2},
7438      {0, 27, 26},
7439      {0, 28, 5},
7440      {0, 30, 29},
7441      {0, 32, 31},
7442      {0, 34, 33},
7443      {0, 4, 35},
7444      {0, 37, 36},
7445      {0, 21, 1},
7446      {0, 39, 38},
7447      {0, 40, 24},
7448      {0, 7, 23},
7449      {0, 20, 9},
7450      {0, 42, 41},
7451      {0, 43, 25},
7452      {0, 44, 12},
7453      {0, 46, 45},
7454      {0, 48, 47},
7455    }));
7456
7457    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpStore, 0), std::move(codec));
7458  }
7459
7460  {
7461    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(59, {
7462      {0, 0, 0},
7463      {139011596, 0, 0},
7464      {177111659, 0, 0},
7465      {296981500, 0, 0},
7466      {408465899, 0, 0},
7467      {495107308, 0, 0},
7468      {810488476, 0, 0},
7469      {870594305, 0, 0},
7470      {1367301635, 0, 0},
7471      {1901166356, 0, 0},
7472      {2055836767, 0, 0},
7473      {2087004702, 0, 0},
7474      {2096388952, 0, 0},
7475      {2204920111, 0, 0},
7476      {2517964682, 0, 0},
7477      {2622612602, 0, 0},
7478      {2660843182, 0, 0},
7479      {2842919847, 0, 0},
7480      {2855506940, 0, 0},
7481      {2959147533, 0, 0},
7482      {3044188332, 0, 0},
7483      {3187066832, 0, 0},
7484      {3504158761, 0, 0},
7485      {3570411982, 0, 0},
7486      {3619787319, 0, 0},
7487      {3653838348, 0, 0},
7488      {3692647551, 0, 0},
7489      {3764205609, 0, 0},
7490      {3831290364, 0, 0},
7491      {3913885196, 0, 0},
7492      {1111111111111111111, 0, 0},
7493      {0, 20, 29},
7494      {0, 25, 8},
7495      {0, 5, 1},
7496      {0, 24, 26},
7497      {0, 14, 9},
7498      {0, 27, 16},
7499      {0, 31, 7},
7500      {0, 33, 32},
7501      {0, 17, 34},
7502      {0, 35, 13},
7503      {0, 22, 6},
7504      {0, 3, 2},
7505      {0, 23, 36},
7506      {0, 28, 37},
7507      {0, 19, 4},
7508      {0, 38, 10},
7509      {0, 39, 15},
7510      {0, 40, 18},
7511      {0, 42, 41},
7512      {0, 43, 12},
7513      {0, 44, 21},
7514      {0, 45, 11},
7515      {0, 47, 46},
7516      {0, 49, 48},
7517      {0, 51, 50},
7518      {0, 53, 52},
7519      {0, 55, 54},
7520      {0, 57, 56},
7521      {0, 30, 58},
7522    }));
7523
7524    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpStore, 1), std::move(codec));
7525  }
7526
7527  {
7528    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(35, {
7529      {0, 0, 0},
7530      {440421571, 0, 0},
7531      {827698488, 0, 0},
7532      {907126242, 0, 0},
7533      {908777857, 0, 0},
7534      {910429472, 0, 0},
7535      {1294403159, 0, 0},
7536      {1296054774, 0, 0},
7537      {1297706389, 0, 0},
7538      {2080953106, 0, 0},
7539      {2468230023, 0, 0},
7540      {2547657777, 0, 0},
7541      {2549309392, 0, 0},
7542      {2550961007, 0, 0},
7543      {3094857332, 0, 0},
7544      {3561562003, 0, 0},
7545      {3563213618, 0, 0},
7546      {3564865233, 0, 0},
7547      {1111111111111111111, 0, 0},
7548      {0, 16, 12},
7549      {0, 17, 13},
7550      {0, 14, 19},
7551      {0, 18, 20},
7552      {0, 5, 21},
7553      {0, 11, 7},
7554      {0, 15, 22},
7555      {0, 9, 8},
7556      {0, 24, 23},
7557      {0, 25, 4},
7558      {0, 27, 26},
7559      {0, 28, 3},
7560      {0, 29, 10},
7561      {0, 6, 1},
7562      {0, 31, 30},
7563      {0, 32, 2},
7564      {0, 34, 33},
7565    }));
7566
7567    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpAccessChain, 0), std::move(codec));
7568  }
7569
7570  {
7571    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(99, {
7572      {0, 0, 0},
7573      {27130513, 0, 0},
7574      {28782128, 0, 0},
7575      {30433743, 0, 0},
7576      {32085358, 0, 0},
7577      {155458798, 0, 0},
7578      {157110413, 0, 0},
7579      {163402553, 0, 0},
7580      {165054168, 0, 0},
7581      {213642219, 0, 0},
7582      {215293834, 0, 0},
7583      {216945449, 0, 0},
7584      {221900294, 0, 0},
7585      {545986953, 0, 0},
7586      {979993429, 0, 0},
7587      {1079999262, 0, 0},
7588      {1302400505, 0, 0},
7589      {1313182965, 0, 0},
7590      {1314834580, 0, 0},
7591      {1315613425, 0, 0},
7592      {1317265040, 0, 0},
7593      {1558345254, 0, 0},
7594      {1649426421, 0, 0},
7595      {2311941439, 0, 0},
7596      {2313593054, 0, 0},
7597      {2602027658, 0, 0},
7598      {2838165089, 0, 0},
7599      {2839816704, 0, 0},
7600      {2841468319, 0, 0},
7601      {2863084840, 0, 0},
7602      {2994529201, 0, 0},
7603      {2996180816, 0, 0},
7604      {2997832431, 0, 0},
7605      {3027538652, 0, 0},
7606      {3187387500, 0, 0},
7607      {3189039115, 0, 0},
7608      {3364388739, 0, 0},
7609      {3366040354, 0, 0},
7610      {3367691969, 0, 0},
7611      {3369343584, 0, 0},
7612      {3716914380, 0, 0},
7613      {3928842969, 0, 0},
7614      {3930494584, 0, 0},
7615      {3932146199, 0, 0},
7616      {3945482286, 0, 0},
7617      {4105051793, 0, 0},
7618      {4239834800, 0, 0},
7619      {4241486415, 0, 0},
7620      {4243138030, 0, 0},
7621      {4244789645, 0, 0},
7622      {1111111111111111111, 0, 0},
7623      {0, 29, 10},
7624      {0, 17, 18},
7625      {0, 13, 14},
7626      {0, 44, 25},
7627      {0, 8, 7},
7628      {0, 20, 11},
7629      {0, 33, 19},
7630      {0, 6, 45},
7631      {0, 42, 43},
7632      {0, 40, 5},
7633      {0, 9, 16},
7634      {0, 1, 4},
7635      {0, 35, 34},
7636      {0, 12, 21},
7637      {0, 52, 51},
7638      {0, 31, 30},
7639      {0, 41, 32},
7640      {0, 54, 53},
7641      {0, 55, 2},
7642      {0, 3, 56},
7643      {0, 58, 57},
7644      {0, 60, 59},
7645      {0, 61, 22},
7646      {0, 63, 62},
7647      {0, 65, 64},
7648      {0, 67, 66},
7649      {0, 39, 68},
7650      {0, 38, 69},
7651      {0, 47, 70},
7652      {0, 49, 71},
7653      {0, 28, 48},
7654      {0, 37, 15},
7655      {0, 73, 72},
7656      {0, 74, 27},
7657      {0, 23, 75},
7658      {0, 76, 26},
7659      {0, 24, 77},
7660      {0, 79, 78},
7661      {0, 81, 80},
7662      {0, 82, 46},
7663      {0, 36, 83},
7664      {0, 85, 84},
7665      {0, 87, 86},
7666      {0, 89, 88},
7667      {0, 91, 90},
7668      {0, 93, 92},
7669      {0, 95, 94},
7670      {0, 97, 96},
7671      {0, 50, 98},
7672    }));
7673
7674    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpAccessChain, 1), std::move(codec));
7675  }
7676
7677  {
7678    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(101, {
7679      {0, 0, 0},
7680      {112745085, 0, 0},
7681      {116376005, 0, 0},
7682      {137840602, 0, 0},
7683      {400248103, 0, 0},
7684      {406044930, 0, 0},
7685      {468372467, 0, 0},
7686      {522971108, 0, 0},
7687      {615341051, 0, 0},
7688      {625975427, 0, 0},
7689      {630964591, 0, 0},
7690      {680016782, 0, 0},
7691      {763027711, 0, 0},
7692      {977312655, 0, 0},
7693      {1009983433, 0, 0},
7694      {1062250709, 0, 0},
7695      {1395113939, 0, 0},
7696      {1410849099, 0, 0},
7697      {1642805350, 0, 0},
7698      {1692932387, 0, 0},
7699      {1698730948, 0, 0},
7700      {1827244161, 0, 0},
7701      {1918481917, 0, 0},
7702      {2096472894, 0, 0},
7703      {2190437442, 0, 0},
7704      {2299842241, 0, 0},
7705      {2433358586, 0, 0},
7706      {2593325766, 0, 0},
7707      {2785441472, 0, 0},
7708      {2790624748, 0, 0},
7709      {2879917723, 0, 0},
7710      {2882994691, 0, 0},
7711      {2902069960, 0, 0},
7712      {3090408469, 0, 0},
7713      {3181646225, 0, 0},
7714      {3255947500, 0, 0},
7715      {3263901372, 0, 0},
7716      {3268751013, 0, 0},
7717      {3347863687, 0, 0},
7718      {3390051757, 0, 0},
7719      {3560665067, 0, 0},
7720      {3617689692, 0, 0},
7721      {3662767579, 0, 0},
7722      {3717523241, 0, 0},
7723      {3854557817, 0, 0},
7724      {3910458990, 0, 0},
7725      {3941049054, 0, 0},
7726      {3945795573, 0, 0},
7727      {4080527786, 0, 0},
7728      {4101009465, 0, 0},
7729      {4290024976, 0, 0},
7730      {1111111111111111111, 0, 0},
7731      {0, 32, 44},
7732      {0, 41, 26},
7733      {0, 16, 10},
7734      {0, 27, 45},
7735      {0, 25, 38},
7736      {0, 12, 18},
7737      {0, 6, 35},
7738      {0, 46, 23},
7739      {0, 20, 37},
7740      {0, 52, 19},
7741      {0, 53, 21},
7742      {0, 54, 48},
7743      {0, 33, 55},
7744      {0, 3, 8},
7745      {0, 28, 56},
7746      {0, 13, 57},
7747      {0, 59, 58},
7748      {0, 1, 49},
7749      {0, 47, 60},
7750      {0, 61, 14},
7751      {0, 63, 62},
7752      {0, 64, 43},
7753      {0, 7, 4},
7754      {0, 65, 15},
7755      {0, 67, 66},
7756      {0, 68, 17},
7757      {0, 36, 2},
7758      {0, 30, 69},
7759      {0, 71, 70},
7760      {0, 34, 5},
7761      {0, 73, 72},
7762      {0, 75, 74},
7763      {0, 77, 76},
7764      {0, 24, 78},
7765      {0, 39, 31},
7766      {0, 80, 79},
7767      {0, 9, 11},
7768      {0, 42, 81},
7769      {0, 83, 82},
7770      {0, 29, 50},
7771      {0, 84, 51},
7772      {0, 86, 85},
7773      {0, 22, 40},
7774      {0, 88, 87},
7775      {0, 90, 89},
7776      {0, 92, 91},
7777      {0, 94, 93},
7778      {0, 96, 95},
7779      {0, 98, 97},
7780      {0, 100, 99},
7781    }));
7782
7783    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpAccessChain, 2), std::move(codec));
7784  }
7785
7786  {
7787    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(69, {
7788      {0, 0, 0},
7789      {51041423, 0, 0},
7790      {142465290, 0, 0},
7791      {144116905, 0, 0},
7792      {290391815, 0, 0},
7793      {438318340, 0, 0},
7794      {529742207, 0, 0},
7795      {677668732, 0, 0},
7796      {917019124, 0, 0},
7797      {1064945649, 0, 0},
7798      {1156369516, 0, 0},
7799      {1158021131, 0, 0},
7800      {1304296041, 0, 0},
7801      {1452222566, 0, 0},
7802      {1543646433, 0, 0},
7803      {1691572958, 0, 0},
7804      {1782996825, 0, 0},
7805      {1784648440, 0, 0},
7806      {1930923350, 0, 0},
7807      {2170273742, 0, 0},
7808      {2318200267, 0, 0},
7809      {2466126792, 0, 0},
7810      {2557550659, 0, 0},
7811      {2705477184, 0, 0},
7812      {2796901051, 0, 0},
7813      {2798552666, 0, 0},
7814      {2944827576, 0, 0},
7815      {3092754101, 0, 0},
7816      {3184177968, 0, 0},
7817      {3332104493, 0, 0},
7818      {3571454885, 0, 0},
7819      {3810805277, 0, 0},
7820      {3958731802, 0, 0},
7821      {4106658327, 0, 0},
7822      {4198082194, 0, 0},
7823      {1111111111111111111, 0, 0},
7824      {0, 27, 33},
7825      {0, 21, 5},
7826      {0, 26, 13},
7827      {0, 20, 8},
7828      {0, 15, 7},
7829      {0, 37, 36},
7830      {0, 32, 29},
7831      {0, 38, 4},
7832      {0, 30, 1},
7833      {0, 9, 12},
7834      {0, 39, 18},
7835      {0, 22, 40},
7836      {0, 42, 41},
7837      {0, 44, 43},
7838      {0, 45, 35},
7839      {0, 46, 34},
7840      {0, 6, 14},
7841      {0, 28, 23},
7842      {0, 48, 47},
7843      {0, 49, 31},
7844      {0, 51, 50},
7845      {0, 19, 24},
7846      {0, 52, 10},
7847      {0, 2, 53},
7848      {0, 55, 54},
7849      {0, 25, 56},
7850      {0, 11, 57},
7851      {0, 59, 58},
7852      {0, 3, 17},
7853      {0, 61, 60},
7854      {0, 16, 62},
7855      {0, 64, 63},
7856      {0, 66, 65},
7857      {0, 68, 67},
7858    }));
7859
7860    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpAccessChain, 3), std::move(codec));
7861  }
7862
7863  {
7864    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(85, {
7865      {0, 0, 0},
7866      {142465290, 0, 0},
7867      {144116905, 0, 0},
7868      {198967948, 0, 0},
7869      {290391815, 0, 0},
7870      {529742207, 0, 0},
7871      {586244865, 0, 0},
7872      {677668732, 0, 0},
7873      {825595257, 0, 0},
7874      {917019124, 0, 0},
7875      {973521782, 0, 0},
7876      {1064945649, 0, 0},
7877      {1156369516, 0, 0},
7878      {1158021131, 0, 0},
7879      {1212872174, 0, 0},
7880      {1304296041, 0, 0},
7881      {1452222566, 0, 0},
7882      {1543646433, 0, 0},
7883      {1600149091, 0, 0},
7884      {1782996825, 0, 0},
7885      {1784648440, 0, 0},
7886      {1839499483, 0, 0},
7887      {1930923350, 0, 0},
7888      {2170273742, 0, 0},
7889      {2226776400, 0, 0},
7890      {2318200267, 0, 0},
7891      {2466126792, 0, 0},
7892      {2557550659, 0, 0},
7893      {2614053317, 0, 0},
7894      {2796901051, 0, 0},
7895      {2798552666, 0, 0},
7896      {2853403709, 0, 0},
7897      {2944827576, 0, 0},
7898      {3184177968, 0, 0},
7899      {3240680626, 0, 0},
7900      {3480031018, 0, 0},
7901      {3571454885, 0, 0},
7902      {3810805277, 0, 0},
7903      {3867307935, 0, 0},
7904      {3958731802, 0, 0},
7905      {4106658327, 0, 0},
7906      {4198082194, 0, 0},
7907      {4254584852, 0, 0},
7908      {1111111111111111111, 0, 0},
7909      {0, 7, 11},
7910      {0, 15, 4},
7911      {0, 32, 25},
7912      {0, 44, 39},
7913      {0, 36, 22},
7914      {0, 45, 17},
7915      {0, 24, 46},
7916      {0, 10, 9},
7917      {0, 6, 27},
7918      {0, 28, 18},
7919      {0, 42, 34},
7920      {0, 31, 14},
7921      {0, 41, 38},
7922      {0, 26, 3},
7923      {0, 47, 33},
7924      {0, 21, 8},
7925      {0, 5, 35},
7926      {0, 40, 16},
7927      {0, 37, 23},
7928      {0, 49, 48},
7929      {0, 51, 50},
7930      {0, 53, 52},
7931      {0, 55, 54},
7932      {0, 57, 56},
7933      {0, 59, 58},
7934      {0, 61, 60},
7935      {0, 63, 62},
7936      {0, 65, 64},
7937      {0, 67, 66},
7938      {0, 68, 12},
7939      {0, 29, 69},
7940      {0, 70, 1},
7941      {0, 30, 2},
7942      {0, 43, 71},
7943      {0, 73, 72},
7944      {0, 74, 20},
7945      {0, 75, 19},
7946      {0, 77, 76},
7947      {0, 13, 78},
7948      {0, 80, 79},
7949      {0, 82, 81},
7950      {0, 84, 83},
7951    }));
7952
7953    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpAccessChain, 4), std::move(codec));
7954  }
7955
7956  {
7957    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
7958      {0, 0, 0},
7959      {144116905, 0, 0},
7960      {1158021131, 0, 0},
7961      {1784648440, 0, 0},
7962      {2798552666, 0, 0},
7963      {1111111111111111111, 0, 0},
7964      {0, 1, 5},
7965      {0, 4, 2},
7966      {0, 6, 3},
7967      {0, 8, 7},
7968    }));
7969
7970    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpAccessChain, 5), std::move(codec));
7971  }
7972
7973  {
7974    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(5, {
7975      {0, 0, 0},
7976      {142465290, 0, 0},
7977      {1782996825, 0, 0},
7978      {1111111111111111111, 0, 0},
7979      {0, 2, 1},
7980      {0, 4, 3},
7981    }));
7982
7983    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpAccessChain, 6), std::move(codec));
7984  }
7985
7986  {
7987    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
7988      {0, 0, 0},
7989      {679771963, 0, 0},
7990      {2320303498, 0, 0},
7991      {3334207724, 0, 0},
7992      {1111111111111111111, 0, 0},
7993      {0, 3, 4},
7994      {0, 2, 5},
7995      {0, 6, 1},
7996    }));
7997
7998    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpVectorShuffle, 0), std::move(codec));
7999  }
8000
8001  {
8002    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(59, {
8003      {0, 0, 0},
8004      {177111659, 0, 0},
8005      {413918748, 0, 0},
8006      {529383565, 0, 0},
8007      {646282397, 0, 0},
8008      {837715723, 0, 0},
8009      {1019457583, 0, 0},
8010      {1022544883, 0, 0},
8011      {1054461787, 0, 0},
8012      {1097775533, 0, 0},
8013      {1136775085, 0, 0},
8014      {1191015885, 0, 0},
8015      {1196280518, 0, 0},
8016      {1203545131, 0, 0},
8017      {1352628475, 0, 0},
8018      {1367301635, 0, 0},
8019      {1918742169, 0, 0},
8020      {1922045399, 0, 0},
8021      {2055836767, 0, 0},
8022      {2183547611, 0, 0},
8023      {2204920111, 0, 0},
8024      {2358141757, 0, 0},
8025      {2572638469, 0, 0},
8026      {2597020383, 0, 0},
8027      {2842919847, 0, 0},
8028      {3619787319, 0, 0},
8029      {3701632935, 0, 0},
8030      {3783543823, 0, 0},
8031      {4245257809, 0, 0},
8032      {4265894873, 0, 0},
8033      {1111111111111111111, 0, 0},
8034      {0, 11, 23},
8035      {0, 12, 2},
8036      {0, 9, 7},
8037      {0, 21, 19},
8038      {0, 4, 29},
8039      {0, 10, 28},
8040      {0, 17, 16},
8041      {0, 27, 3},
8042      {0, 32, 31},
8043      {0, 33, 22},
8044      {0, 6, 34},
8045      {0, 35, 8},
8046      {0, 36, 24},
8047      {0, 38, 37},
8048      {0, 1, 14},
8049      {0, 39, 20},
8050      {0, 5, 40},
8051      {0, 42, 41},
8052      {0, 43, 26},
8053      {0, 45, 44},
8054      {0, 47, 46},
8055      {0, 48, 18},
8056      {0, 15, 49},
8057      {0, 50, 25},
8058      {0, 51, 13},
8059      {0, 53, 52},
8060      {0, 55, 54},
8061      {0, 57, 56},
8062      {0, 30, 58},
8063    }));
8064
8065    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpVectorShuffle, 1), std::move(codec));
8066  }
8067
8068  {
8069    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(59, {
8070      {0, 0, 0},
8071      {236660303, 0, 0},
8072      {342159236, 0, 0},
8073      {371428004, 0, 0},
8074      {373079619, 0, 0},
8075      {488500848, 0, 0},
8076      {495107308, 0, 0},
8077      {864295921, 0, 0},
8078      {1071164424, 0, 0},
8079      {1136911283, 0, 0},
8080      {1178317551, 0, 0},
8081      {1510422521, 0, 0},
8082      {1570165302, 0, 0},
8083      {1822823090, 0, 0},
8084      {1858116930, 0, 0},
8085      {1977038330, 0, 0},
8086      {2096388952, 0, 0},
8087      {2157103435, 0, 0},
8088      {2231688008, 0, 0},
8089      {2604576561, 0, 0},
8090      {2622612602, 0, 0},
8091      {2771938750, 0, 0},
8092      {2777172031, 0, 0},
8093      {2996594997, 0, 0},
8094      {3187066832, 0, 0},
8095      {3496407048, 0, 0},
8096      {3570411982, 0, 0},
8097      {3609540589, 0, 0},
8098      {3713290482, 0, 0},
8099      {3797761273, 0, 0},
8100      {1111111111111111111, 0, 0},
8101      {0, 18, 8},
8102      {0, 27, 9},
8103      {0, 21, 10},
8104      {0, 14, 24},
8105      {0, 12, 19},
8106      {0, 11, 15},
8107      {0, 23, 2},
8108      {0, 7, 13},
8109      {0, 31, 22},
8110      {0, 32, 4},
8111      {0, 33, 29},
8112      {0, 34, 1},
8113      {0, 35, 3},
8114      {0, 37, 36},
8115      {0, 38, 28},
8116      {0, 39, 5},
8117      {0, 41, 40},
8118      {0, 42, 17},
8119      {0, 16, 43},
8120      {0, 45, 44},
8121      {0, 46, 6},
8122      {0, 48, 47},
8123      {0, 50, 49},
8124      {0, 52, 51},
8125      {0, 25, 53},
8126      {0, 54, 20},
8127      {0, 55, 26},
8128      {0, 57, 56},
8129      {0, 30, 58},
8130    }));
8131
8132    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpVectorShuffle, 2), std::move(codec));
8133  }
8134
8135  {
8136    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(47, {
8137      {0, 0, 0},
8138      {236660303, 0, 0},
8139      {342159236, 0, 0},
8140      {488500848, 0, 0},
8141      {495107308, 0, 0},
8142      {864295921, 0, 0},
8143      {1178317551, 0, 0},
8144      {1510422521, 0, 0},
8145      {1570165302, 0, 0},
8146      {1858116930, 0, 0},
8147      {1977038330, 0, 0},
8148      {2096388952, 0, 0},
8149      {2157103435, 0, 0},
8150      {2231688008, 0, 0},
8151      {2604576561, 0, 0},
8152      {2622612602, 0, 0},
8153      {2771938750, 0, 0},
8154      {2777172031, 0, 0},
8155      {2996594997, 0, 0},
8156      {3496407048, 0, 0},
8157      {3570411982, 0, 0},
8158      {3609540589, 0, 0},
8159      {3713290482, 0, 0},
8160      {3797761273, 0, 0},
8161      {1111111111111111111, 0, 0},
8162      {0, 21, 13},
8163      {0, 16, 6},
8164      {0, 14, 9},
8165      {0, 7, 10},
8166      {0, 18, 2},
8167      {0, 17, 5},
8168      {0, 25, 8},
8169      {0, 22, 12},
8170      {0, 26, 23},
8171      {0, 27, 1},
8172      {0, 28, 3},
8173      {0, 30, 29},
8174      {0, 32, 31},
8175      {0, 34, 33},
8176      {0, 35, 11},
8177      {0, 36, 4},
8178      {0, 38, 37},
8179      {0, 40, 39},
8180      {0, 41, 15},
8181      {0, 42, 19},
8182      {0, 20, 43},
8183      {0, 45, 44},
8184      {0, 24, 46},
8185    }));
8186
8187    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpVectorShuffle, 3), std::move(codec));
8188  }
8189
8190  {
8191    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(15, {
8192      {0, 0, 0},
8193      {679771963, 0, 0},
8194      {1146476634, 0, 0},
8195      {2160380860, 0, 0},
8196      {2320303498, 0, 0},
8197      {3334207724, 0, 0},
8198      {3800912395, 0, 0},
8199      {3802564010, 0, 0},
8200      {1111111111111111111, 0, 0},
8201      {0, 2, 3},
8202      {0, 9, 6},
8203      {0, 8, 7},
8204      {0, 11, 10},
8205      {0, 4, 12},
8206      {0, 5, 13},
8207      {0, 14, 1},
8208    }));
8209
8210    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpCompositeConstruct, 0), std::move(codec));
8211  }
8212
8213  {
8214    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(79, {
8215      {0, 0, 0},
8216      {107497541, 0, 0},
8217      {289648234, 0, 0},
8218      {348584153, 0, 0},
8219      {369686787, 0, 0},
8220      {429277936, 0, 0},
8221      {449954059, 0, 0},
8222      {508217552, 0, 0},
8223      {742917749, 0, 0},
8224      {1032593647, 0, 0},
8225      {1158929937, 0, 0},
8226      {1209418480, 0, 0},
8227      {1319785741, 0, 0},
8228      {1321616112, 0, 0},
8229      {1417363940, 0, 0},
8230      {1541020250, 0, 0},
8231      {1564342316, 0, 0},
8232      {1578775276, 0, 0},
8233      {1631434666, 0, 0},
8234      {1636389511, 0, 0},
8235      {2012838864, 0, 0},
8236      {2262137600, 0, 0},
8237      {2281956980, 0, 0},
8238      {2359973133, 0, 0},
8239      {2464905186, 0, 0},
8240      {2613179511, 0, 0},
8241      {2621255555, 0, 0},
8242      {2817335337, 0, 0},
8243      {2881302403, 0, 0},
8244      {3063300848, 0, 0},
8245      {3151638847, 0, 0},
8246      {3233393284, 0, 0},
8247      {3323682385, 0, 0},
8248      {3337532056, 0, 0},
8249      {3456899824, 0, 0},
8250      {3547456240, 0, 0},
8251      {3675926744, 0, 0},
8252      {3753486980, 0, 0},
8253      {3931641900, 0, 0},
8254      {3970432934, 0, 0},
8255      {1111111111111111111, 0, 0},
8256      {0, 25, 1},
8257      {0, 6, 4},
8258      {0, 8, 19},
8259      {0, 39, 24},
8260      {0, 3, 2},
8261      {0, 34, 14},
8262      {0, 10, 9},
8263      {0, 18, 38},
8264      {0, 32, 15},
8265      {0, 27, 16},
8266      {0, 28, 35},
8267      {0, 13, 26},
8268      {0, 20, 23},
8269      {0, 21, 11},
8270      {0, 36, 33},
8271      {0, 5, 22},
8272      {0, 42, 41},
8273      {0, 43, 29},
8274      {0, 45, 44},
8275      {0, 7, 46},
8276      {0, 48, 47},
8277      {0, 30, 31},
8278      {0, 50, 49},
8279      {0, 52, 51},
8280      {0, 54, 53},
8281      {0, 55, 17},
8282      {0, 57, 56},
8283      {0, 59, 58},
8284      {0, 61, 60},
8285      {0, 62, 12},
8286      {0, 64, 63},
8287      {0, 66, 65},
8288      {0, 67, 37},
8289      {0, 69, 68},
8290      {0, 71, 70},
8291      {0, 73, 72},
8292      {0, 75, 74},
8293      {0, 77, 76},
8294      {0, 40, 78},
8295    }));
8296
8297    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpCompositeConstruct, 1), std::move(codec));
8298  }
8299
8300  {
8301    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(87, {
8302      {0, 0, 0},
8303      {153013225, 0, 0},
8304      {296836635, 0, 0},
8305      {296981500, 0, 0},
8306      {778500192, 0, 0},
8307      {810488476, 0, 0},
8308      {848380423, 0, 0},
8309      {900522183, 0, 0},
8310      {910398460, 0, 0},
8311      {959681532, 0, 0},
8312      {1141965917, 0, 0},
8313      {1287304304, 0, 0},
8314      {1323407757, 0, 0},
8315      {1417363940, 0, 0},
8316      {1471851763, 0, 0},
8317      {1526654696, 0, 0},
8318      {1654776395, 0, 0},
8319      {1684282922, 0, 0},
8320      {1739837626, 0, 0},
8321      {1791352211, 0, 0},
8322      {2195550588, 0, 0},
8323      {2319227476, 0, 0},
8324      {2491124112, 0, 0},
8325      {2789375411, 0, 0},
8326      {2807448986, 0, 0},
8327      {2817579280, 0, 0},
8328      {2835131395, 0, 0},
8329      {2847102741, 0, 0},
8330      {2855506940, 0, 0},
8331      {2860348412, 0, 0},
8332      {3079287749, 0, 0},
8333      {3091876332, 0, 0},
8334      {3168953855, 0, 0},
8335      {3374978006, 0, 0},
8336      {3399062057, 0, 0},
8337      {3510257966, 0, 0},
8338      {3554463148, 0, 0},
8339      {3579593979, 0, 0},
8340      {3757851979, 0, 0},
8341      {3759503594, 0, 0},
8342      {3761155209, 0, 0},
8343      {3762806824, 0, 0},
8344      {3902853271, 0, 0},
8345      {4140081844, 0, 0},
8346      {1111111111111111111, 0, 0},
8347      {0, 38, 42},
8348      {0, 14, 23},
8349      {0, 26, 18},
8350      {0, 39, 35},
8351      {0, 6, 40},
8352      {0, 16, 13},
8353      {0, 33, 34},
8354      {0, 12, 4},
8355      {0, 27, 41},
8356      {0, 25, 21},
8357      {0, 24, 1},
8358      {0, 37, 19},
8359      {0, 32, 22},
8360      {0, 2, 8},
8361      {0, 20, 17},
8362      {0, 43, 36},
8363      {0, 29, 15},
8364      {0, 46, 45},
8365      {0, 48, 47},
8366      {0, 50, 49},
8367      {0, 52, 51},
8368      {0, 54, 53},
8369      {0, 7, 55},
8370      {0, 56, 30},
8371      {0, 57, 5},
8372      {0, 59, 58},
8373      {0, 60, 11},
8374      {0, 9, 61},
8375      {0, 63, 62},
8376      {0, 65, 64},
8377      {0, 66, 31},
8378      {0, 68, 67},
8379      {0, 10, 69},
8380      {0, 71, 70},
8381      {0, 28, 72},
8382      {0, 74, 73},
8383      {0, 76, 75},
8384      {0, 78, 77},
8385      {0, 79, 3},
8386      {0, 81, 80},
8387      {0, 83, 82},
8388      {0, 85, 84},
8389      {0, 44, 86},
8390    }));
8391
8392    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpCompositeConstruct, 2), std::move(codec));
8393  }
8394
8395  {
8396    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(81, {
8397      {0, 0, 0},
8398      {14244860, 0, 0},
8399      {150820676, 0, 0},
8400      {153013225, 0, 0},
8401      {269823086, 0, 0},
8402      {289648234, 0, 0},
8403      {296981500, 0, 0},
8404      {678695941, 0, 0},
8405      {810488476, 0, 0},
8406      {850592577, 0, 0},
8407      {870594305, 0, 0},
8408      {910398460, 0, 0},
8409      {959681532, 0, 0},
8410      {1206571206, 0, 0},
8411      {1287304304, 0, 0},
8412      {1323407757, 0, 0},
8413      {1471851763, 0, 0},
8414      {1526654696, 0, 0},
8415      {1684282922, 0, 0},
8416      {1734446471, 0, 0},
8417      {1758530522, 0, 0},
8418      {2117320444, 0, 0},
8419      {2118972059, 0, 0},
8420      {2120623674, 0, 0},
8421      {2122275289, 0, 0},
8422      {2219733501, 0, 0},
8423      {2262321736, 0, 0},
8424      {2807448986, 0, 0},
8425      {2817579280, 0, 0},
8426      {2835131395, 0, 0},
8427      {2855506940, 0, 0},
8428      {2860348412, 0, 0},
8429      {2951272396, 0, 0},
8430      {3079287749, 0, 0},
8431      {3168953855, 0, 0},
8432      {3502816184, 0, 0},
8433      {3510257966, 0, 0},
8434      {3554463148, 0, 0},
8435      {3997952447, 0, 0},
8436      {4140081844, 0, 0},
8437      {4182141402, 0, 0},
8438      {1111111111111111111, 0, 0},
8439      {0, 21, 26},
8440      {0, 29, 16},
8441      {0, 22, 36},
8442      {0, 1, 23},
8443      {0, 20, 5},
8444      {0, 19, 35},
8445      {0, 10, 38},
8446      {0, 13, 24},
8447      {0, 28, 7},
8448      {0, 27, 3},
8449      {0, 40, 2},
8450      {0, 34, 9},
8451      {0, 32, 11},
8452      {0, 33, 18},
8453      {0, 39, 37},
8454      {0, 31, 17},
8455      {0, 43, 42},
8456      {0, 45, 44},
8457      {0, 47, 46},
8458      {0, 49, 48},
8459      {0, 51, 50},
8460      {0, 8, 52},
8461      {0, 15, 53},
8462      {0, 55, 54},
8463      {0, 56, 14},
8464      {0, 58, 57},
8465      {0, 60, 59},
8466      {0, 61, 25},
8467      {0, 63, 62},
8468      {0, 4, 64},
8469      {0, 66, 65},
8470      {0, 68, 67},
8471      {0, 70, 69},
8472      {0, 71, 12},
8473      {0, 6, 72},
8474      {0, 30, 73},
8475      {0, 75, 74},
8476      {0, 77, 76},
8477      {0, 79, 78},
8478      {0, 41, 80},
8479    }));
8480
8481    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpCompositeConstruct, 3), std::move(codec));
8482  }
8483
8484  {
8485    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(111, {
8486      {0, 0, 0},
8487      {34183582, 0, 0},
8488      {93914936, 0, 0},
8489      {94303122, 0, 0},
8490      {117998987, 0, 0},
8491      {153013225, 0, 0},
8492      {296981500, 0, 0},
8493      {451264926, 0, 0},
8494      {473485679, 0, 0},
8495      {476788909, 0, 0},
8496      {478440524, 0, 0},
8497      {480092139, 0, 0},
8498      {481743754, 0, 0},
8499      {810488476, 0, 0},
8500      {871966503, 0, 0},
8501      {910398460, 0, 0},
8502      {918189168, 0, 0},
8503      {933769938, 0, 0},
8504      {959681532, 0, 0},
8505      {1149665466, 0, 0},
8506      {1166917451, 0, 0},
8507      {1227221002, 0, 0},
8508      {1310740861, 0, 0},
8509      {1323407757, 0, 0},
8510      {1341516288, 0, 0},
8511      {1373166395, 0, 0},
8512      {1445161581, 0, 0},
8513      {1461645203, 0, 0},
8514      {1471851763, 0, 0},
8515      {1526654696, 0, 0},
8516      {1561718045, 0, 0},
8517      {1593584949, 0, 0},
8518      {1684282922, 0, 0},
8519      {1800404122, 0, 0},
8520      {1862284649, 0, 0},
8521      {2213411495, 0, 0},
8522      {2668680621, 0, 0},
8523      {2805256437, 0, 0},
8524      {2807448986, 0, 0},
8525      {2835131395, 0, 0},
8526      {2855506940, 0, 0},
8527      {2860348412, 0, 0},
8528      {3000904950, 0, 0},
8529      {3107413701, 0, 0},
8530      {3168953855, 0, 0},
8531      {3333131702, 0, 0},
8532      {3365041621, 0, 0},
8533      {3456899824, 0, 0},
8534      {3505028338, 0, 0},
8535      {3510257966, 0, 0},
8536      {3554463148, 0, 0},
8537      {3606320646, 0, 0},
8538      {3692647551, 0, 0},
8539      {3861006967, 0, 0},
8540      {4126287524, 0, 0},
8541      {4140081844, 0, 0},
8542      {1111111111111111111, 0, 0},
8543      {0, 14, 33},
8544      {0, 35, 25},
8545      {0, 27, 17},
8546      {0, 8, 20},
8547      {0, 3, 54},
8548      {0, 1, 19},
8549      {0, 10, 46},
8550      {0, 11, 9},
8551      {0, 39, 28},
8552      {0, 53, 49},
8553      {0, 12, 2},
8554      {0, 34, 4},
8555      {0, 47, 36},
8556      {0, 23, 45},
8557      {0, 5, 37},
8558      {0, 24, 38},
8559      {0, 43, 26},
8560      {0, 48, 51},
8561      {0, 44, 32},
8562      {0, 15, 16},
8563      {0, 57, 22},
8564      {0, 55, 50},
8565      {0, 29, 58},
8566      {0, 60, 59},
8567      {0, 41, 61},
8568      {0, 63, 62},
8569      {0, 65, 64},
8570      {0, 67, 66},
8571      {0, 69, 68},
8572      {0, 13, 70},
8573      {0, 71, 7},
8574      {0, 42, 31},
8575      {0, 73, 72},
8576      {0, 75, 74},
8577      {0, 21, 30},
8578      {0, 77, 76},
8579      {0, 79, 78},
8580      {0, 81, 80},
8581      {0, 82, 18},
8582      {0, 84, 83},
8583      {0, 86, 85},
8584      {0, 88, 87},
8585      {0, 90, 89},
8586      {0, 52, 91},
8587      {0, 6, 92},
8588      {0, 94, 93},
8589      {0, 96, 95},
8590      {0, 98, 97},
8591      {0, 99, 40},
8592      {0, 101, 100},
8593      {0, 103, 102},
8594      {0, 105, 104},
8595      {0, 107, 106},
8596      {0, 109, 108},
8597      {0, 56, 110},
8598    }));
8599
8600    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpCompositeConstruct, 4), std::move(codec));
8601  }
8602
8603  {
8604    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(155, {
8605      {0, 0, 0},
8606      {18776483, 0, 0},
8607      {37009196, 0, 0},
8608      {277023757, 0, 0},
8609      {296981500, 0, 0},
8610      {348988933, 0, 0},
8611      {451264926, 0, 0},
8612      {564884461, 0, 0},
8613      {804899022, 0, 0},
8614      {810488476, 0, 0},
8615      {870594305, 0, 0},
8616      {876864198, 0, 0},
8617      {900522183, 0, 0},
8618      {928261291, 0, 0},
8619      {959681532, 0, 0},
8620      {1164724902, 0, 0},
8621      {1323407757, 0, 0},
8622      {1332774287, 0, 0},
8623      {1404739463, 0, 0},
8624      {1447712361, 0, 0},
8625      {1450415100, 0, 0},
8626      {1513770932, 0, 0},
8627      {1620634991, 0, 0},
8628      {1692600167, 0, 0},
8629      {1860649552, 0, 0},
8630      {1932614728, 0, 0},
8631      {2087004702, 0, 0},
8632      {2148510256, 0, 0},
8633      {2220475432, 0, 0},
8634      {2388524817, 0, 0},
8635      {2460489993, 0, 0},
8636      {2676385521, 0, 0},
8637      {2748350697, 0, 0},
8638      {2855506940, 0, 0},
8639      {2860348412, 0, 0},
8640      {2916400082, 0, 0},
8641      {2988365258, 0, 0},
8642      {3061856840, 0, 0},
8643      {3063508455, 0, 0},
8644      {3065160070, 0, 0},
8645      {3066811685, 0, 0},
8646      {3068463300, 0, 0},
8647      {3070114915, 0, 0},
8648      {3071766530, 0, 0},
8649      {3073418145, 0, 0},
8650      {3075069760, 0, 0},
8651      {3076721375, 0, 0},
8652      {3078372990, 0, 0},
8653      {3080024605, 0, 0},
8654      {3081676220, 0, 0},
8655      {3083327835, 0, 0},
8656      {3084979450, 0, 0},
8657      {3086631065, 0, 0},
8658      {3088282680, 0, 0},
8659      {3114708520, 0, 0},
8660      {3116360135, 0, 0},
8661      {3118011750, 0, 0},
8662      {3119663365, 0, 0},
8663      {3121314980, 0, 0},
8664      {3124618210, 0, 0},
8665      {3126269825, 0, 0},
8666      {3127921440, 0, 0},
8667      {3129573055, 0, 0},
8668      {3131224670, 0, 0},
8669      {3132876285, 0, 0},
8670      {3134527900, 0, 0},
8671      {3136179515, 0, 0},
8672      {3204260786, 0, 0},
8673      {3264086791, 0, 0},
8674      {3276225962, 0, 0},
8675      {3444275347, 0, 0},
8676      {3516240523, 0, 0},
8677      {3588205699, 0, 0},
8678      {3732136051, 0, 0},
8679      {3804101227, 0, 0},
8680      {3874089391, 0, 0},
8681      {4044115788, 0, 0},
8682      {4116080964, 0, 0},
8683      {1111111111111111111, 0, 0},
8684      {0, 45, 43},
8685      {0, 3, 46},
8686      {0, 71, 36},
8687      {0, 44, 34},
8688      {0, 76, 54},
8689      {0, 73, 55},
8690      {0, 57, 67},
8691      {0, 51, 56},
8692      {0, 31, 27},
8693      {0, 38, 37},
8694      {0, 40, 39},
8695      {0, 42, 41},
8696      {0, 49, 47},
8697      {0, 35, 50},
8698      {0, 21, 70},
8699      {0, 19, 5},
8700      {0, 8, 58},
8701      {0, 17, 11},
8702      {0, 24, 18},
8703      {0, 30, 29},
8704      {0, 52, 9},
8705      {0, 77, 22},
8706      {0, 62, 48},
8707      {0, 25, 53},
8708      {0, 20, 59},
8709      {0, 26, 60},
8710      {0, 72, 6},
8711      {0, 79, 69},
8712      {0, 80, 7},
8713      {0, 81, 2},
8714      {0, 12, 13},
8715      {0, 82, 68},
8716      {0, 65, 61},
8717      {0, 74, 63},
8718      {0, 23, 83},
8719      {0, 64, 10},
8720      {0, 84, 32},
8721      {0, 66, 28},
8722      {0, 15, 85},
8723      {0, 86, 16},
8724      {0, 88, 87},
8725      {0, 90, 89},
8726      {0, 92, 91},
8727      {0, 1, 93},
8728      {0, 95, 94},
8729      {0, 97, 96},
8730      {0, 99, 98},
8731      {0, 100, 75},
8732      {0, 102, 101},
8733      {0, 104, 103},
8734      {0, 106, 105},
8735      {0, 107, 14},
8736      {0, 109, 108},
8737      {0, 111, 110},
8738      {0, 113, 112},
8739      {0, 115, 114},
8740      {0, 117, 116},
8741      {0, 119, 118},
8742      {0, 121, 120},
8743      {0, 123, 122},
8744      {0, 125, 124},
8745      {0, 127, 126},
8746      {0, 129, 128},
8747      {0, 131, 130},
8748      {0, 133, 132},
8749      {0, 135, 134},
8750      {0, 137, 136},
8751      {0, 139, 138},
8752      {0, 141, 140},
8753      {0, 143, 142},
8754      {0, 145, 144},
8755      {0, 147, 146},
8756      {0, 33, 148},
8757      {0, 4, 149},
8758      {0, 78, 150},
8759      {0, 152, 151},
8760      {0, 154, 153},
8761    }));
8762
8763    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpCompositeConstruct, 5), std::move(codec));
8764  }
8765
8766  {
8767    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(11, {
8768      {0, 0, 0},
8769      {679771963, 0, 0},
8770      {789872778, 0, 0},
8771      {1951208733, 0, 0},
8772      {2320303498, 0, 0},
8773      {3334207724, 0, 0},
8774      {1111111111111111111, 0, 0},
8775      {0, 6, 2},
8776      {0, 4, 7},
8777      {0, 1, 8},
8778      {0, 9, 5},
8779      {0, 3, 10},
8780    }));
8781
8782    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpCompositeExtract, 0), std::move(codec));
8783  }
8784
8785  {
8786    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(49, {
8787      {0, 0, 0},
8788      {126463145, 0, 0},
8789      {171307615, 0, 0},
8790      {342159236, 0, 0},
8791      {354479447, 0, 0},
8792      {593829839, 0, 0},
8793      {743407979, 0, 0},
8794      {898191441, 0, 0},
8795      {900522183, 0, 0},
8796      {1265796414, 0, 0},
8797      {1287304304, 0, 0},
8798      {1356063462, 0, 0},
8799      {1368383673, 0, 0},
8800      {1526654696, 0, 0},
8801      {1766994680, 0, 0},
8802      {1793544760, 0, 0},
8803      {1811839150, 0, 0},
8804      {2234361374, 0, 0},
8805      {2279700640, 0, 0},
8806      {2383939514, 0, 0},
8807      {2780898906, 0, 0},
8808      {2996594997, 0, 0},
8809      {3413713311, 0, 0},
8810      {3554463148, 0, 0},
8811      {3635542517, 0, 0},
8812      {1111111111111111111, 0, 0},
8813      {0, 11, 15},
8814      {0, 20, 14},
8815      {0, 7, 18},
8816      {0, 6, 1},
8817      {0, 12, 10},
8818      {0, 23, 19},
8819      {0, 13, 5},
8820      {0, 24, 17},
8821      {0, 21, 3},
8822      {0, 22, 16},
8823      {0, 26, 2},
8824      {0, 27, 8},
8825      {0, 4, 28},
8826      {0, 29, 9},
8827      {0, 31, 30},
8828      {0, 33, 32},
8829      {0, 35, 34},
8830      {0, 37, 36},
8831      {0, 39, 38},
8832      {0, 41, 40},
8833      {0, 43, 42},
8834      {0, 45, 44},
8835      {0, 47, 46},
8836      {0, 25, 48},
8837    }));
8838
8839    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpCompositeExtract, 1), std::move(codec));
8840  }
8841
8842  {
8843    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(153, {
8844      {0, 0, 0},
8845      {13107491, 0, 0},
8846      {257136089, 0, 0},
8847      {293528591, 0, 0},
8848      {321459212, 0, 0},
8849      {425022309, 0, 0},
8850      {490769168, 0, 0},
8851      {495107308, 0, 0},
8852      {517919178, 0, 0},
8853      {617312262, 0, 0},
8854      {708736129, 0, 0},
8855      {753756604, 0, 0},
8856      {765238787, 0, 0},
8857      {796985462, 0, 0},
8858      {819503463, 0, 0},
8859      {850497536, 0, 0},
8860      {948086521, 0, 0},
8861      {1004589179, 0, 0},
8862      {1120149824, 0, 0},
8863      {1165671422, 0, 0},
8864      {1203545131, 0, 0},
8865      {1297165140, 0, 0},
8866      {1335363438, 0, 0},
8867      {1351676723, 0, 0},
8868      {1391866096, 0, 0},
8869      {1584369690, 0, 0},
8870      {1631216488, 0, 0},
8871      {1691646294, 0, 0},
8872      {1779143013, 0, 0},
8873      {1858116930, 0, 0},
8874      {1890300748, 0, 0},
8875      {1915438939, 0, 0},
8876      {1918742169, 0, 0},
8877      {1922045399, 0, 0},
8878      {1961990747, 0, 0},
8879      {2037710159, 0, 0},
8880      {2037814253, 0, 0},
8881      {2043873558, 0, 0},
8882      {2096388952, 0, 0},
8883      {2169307971, 0, 0},
8884      {2257843797, 0, 0},
8885      {2262220987, 0, 0},
8886      {2338272340, 0, 0},
8887      {2405770322, 0, 0},
8888      {2498042266, 0, 0},
8889      {2563789125, 0, 0},
8890      {2588618056, 0, 0},
8891      {2645120714, 0, 0},
8892      {2864863800, 0, 0},
8893      {2909957084, 0, 0},
8894      {2975894973, 0, 0},
8895      {3041450802, 0, 0},
8896      {3151638847, 0, 0},
8897      {3187066832, 0, 0},
8898      {3244716568, 0, 0},
8899      {3271748023, 0, 0},
8900      {3304438238, 0, 0},
8901      {3312467582, 0, 0},
8902      {3325419312, 0, 0},
8903      {3370185097, 0, 0},
8904      {3419674548, 0, 0},
8905      {3435931956, 0, 0},
8906      {3504158761, 0, 0},
8907      {3602522282, 0, 0},
8908      {3653059026, 0, 0},
8909      {3716353056, 0, 0},
8910      {3782099915, 0, 0},
8911      {3838648480, 0, 0},
8912      {3847846774, 0, 0},
8913      {3913593633, 0, 0},
8914      {3989799199, 0, 0},
8915      {3997038726, 0, 0},
8916      {4046301857, 0, 0},
8917      {4092654294, 0, 0},
8918      {4176581069, 0, 0},
8919      {4242327928, 0, 0},
8920      {4285652249, 0, 0},
8921      {1111111111111111111, 0, 0},
8922      {0, 74, 38},
8923      {0, 12, 56},
8924      {0, 28, 24},
8925      {0, 60, 43},
8926      {0, 65, 72},
8927      {0, 18, 2},
8928      {0, 52, 3},
8929      {0, 19, 10},
8930      {0, 49, 36},
8931      {0, 67, 66},
8932      {0, 41, 17},
8933      {0, 53, 11},
8934      {0, 29, 68},
8935      {0, 26, 55},
8936      {0, 70, 76},
8937      {0, 73, 47},
8938      {0, 51, 22},
8939      {0, 39, 21},
8940      {0, 5, 9},
8941      {0, 40, 48},
8942      {0, 59, 44},
8943      {0, 6, 69},
8944      {0, 32, 31},
8945      {0, 4, 33},
8946      {0, 13, 54},
8947      {0, 14, 50},
8948      {0, 35, 75},
8949      {0, 58, 23},
8950      {0, 16, 34},
8951      {0, 27, 63},
8952      {0, 45, 61},
8953      {0, 20, 46},
8954      {0, 71, 1},
8955      {0, 79, 78},
8956      {0, 81, 80},
8957      {0, 83, 82},
8958      {0, 84, 8},
8959      {0, 86, 85},
8960      {0, 88, 87},
8961      {0, 90, 89},
8962      {0, 92, 91},
8963      {0, 94, 93},
8964      {0, 96, 95},
8965      {0, 98, 97},
8966      {0, 64, 99},
8967      {0, 101, 100},
8968      {0, 103, 102},
8969      {0, 105, 104},
8970      {0, 106, 62},
8971      {0, 108, 107},
8972      {0, 110, 109},
8973      {0, 7, 111},
8974      {0, 113, 112},
8975      {0, 115, 114},
8976      {0, 117, 116},
8977      {0, 119, 118},
8978      {0, 121, 120},
8979      {0, 123, 122},
8980      {0, 30, 124},
8981      {0, 126, 125},
8982      {0, 128, 127},
8983      {0, 130, 129},
8984      {0, 132, 131},
8985      {0, 134, 133},
8986      {0, 135, 25},
8987      {0, 57, 136},
8988      {0, 138, 137},
8989      {0, 42, 139},
8990      {0, 37, 140},
8991      {0, 142, 141},
8992      {0, 143, 15},
8993      {0, 145, 144},
8994      {0, 147, 146},
8995      {0, 149, 148},
8996      {0, 151, 150},
8997      {0, 152, 77},
8998    }));
8999
9000    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpCompositeExtract, 2), std::move(codec));
9001  }
9002
9003  {
9004    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(47, {
9005      {0, 0, 0},
9006      {545678922, 0, 0},
9007      {630592085, 0, 0},
9008      {679771963, 0, 0},
9009      {899570100, 0, 0},
9010      {906176560, 0, 0},
9011      {929101967, 0, 0},
9012      {1100599986, 0, 0},
9013      {1103903216, 0, 0},
9014      {1107206446, 0, 0},
9015      {1369578001, 0, 0},
9016      {1372881231, 0, 0},
9017      {2320303498, 0, 0},
9018      {2926633629, 0, 0},
9019      {3249265647, 0, 0},
9020      {3334207724, 0, 0},
9021      {3486057732, 0, 0},
9022      {3674863070, 0, 0},
9023      {3705139860, 0, 0},
9024      {3800912395, 0, 0},
9025      {3802564010, 0, 0},
9026      {3822983876, 0, 0},
9027      {4141567741, 0, 0},
9028      {4292991777, 0, 0},
9029      {1111111111111111111, 0, 0},
9030      {0, 9, 17},
9031      {0, 20, 11},
9032      {0, 25, 5},
9033      {0, 2, 14},
9034      {0, 23, 13},
9035      {0, 16, 26},
9036      {0, 27, 24},
9037      {0, 28, 8},
9038      {0, 29, 18},
9039      {0, 22, 30},
9040      {0, 6, 31},
9041      {0, 21, 32},
9042      {0, 3, 33},
9043      {0, 35, 34},
9044      {0, 1, 12},
9045      {0, 10, 36},
9046      {0, 37, 19},
9047      {0, 4, 15},
9048      {0, 39, 38},
9049      {0, 7, 40},
9050      {0, 42, 41},
9051      {0, 44, 43},
9052      {0, 46, 45},
9053    }));
9054
9055    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpCompositeInsert, 0), std::move(codec));
9056  }
9057
9058  {
9059    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(103, {
9060      {0, 0, 0},
9061      {125792961, 0, 0},
9062      {132755933, 0, 0},
9063      {156014509, 0, 0},
9064      {436066778, 0, 0},
9065      {463084678, 0, 0},
9066      {531559080, 0, 0},
9067      {565233904, 0, 0},
9068      {578132535, 0, 0},
9069      {600906020, 0, 0},
9070      {602222721, 0, 0},
9071      {694743357, 0, 0},
9072      {760554870, 0, 0},
9073      {996663016, 0, 0},
9074      {1022309772, 0, 0},
9075      {1351676723, 0, 0},
9076      {1496901698, 0, 0},
9077      {1502470404, 0, 0},
9078      {1522901980, 0, 0},
9079      {1548254487, 0, 0},
9080      {1637661947, 0, 0},
9081      {1788504755, 0, 0},
9082      {2092468906, 0, 0},
9083      {2094647776, 0, 0},
9084      {2127660080, 0, 0},
9085      {2213946343, 0, 0},
9086      {2225172640, 0, 0},
9087      {2259467579, 0, 0},
9088      {2263866576, 0, 0},
9089      {2600961503, 0, 0},
9090      {2727022058, 0, 0},
9091      {2752967311, 0, 0},
9092      {2864705739, 0, 0},
9093      {3021406120, 0, 0},
9094      {3044723416, 0, 0},
9095      {3052439312, 0, 0},
9096      {3136865519, 0, 0},
9097      {3297860332, 0, 0},
9098      {3352361837, 0, 0},
9099      {3670298840, 0, 0},
9100      {3712946115, 0, 0},
9101      {3732709413, 0, 0},
9102      {3764662384, 0, 0},
9103      {3788324110, 0, 0},
9104      {3928555688, 0, 0},
9105      {4083347580, 0, 0},
9106      {4098876453, 0, 0},
9107      {4147239510, 0, 0},
9108      {4199470013, 0, 0},
9109      {4211577142, 0, 0},
9110      {4218799564, 0, 0},
9111      {4290374884, 0, 0},
9112      {1111111111111111111, 0, 0},
9113      {0, 4, 2},
9114      {0, 9, 8},
9115      {0, 17, 10},
9116      {0, 20, 18},
9117      {0, 22, 21},
9118      {0, 26, 23},
9119      {0, 31, 29},
9120      {0, 35, 34},
9121      {0, 45, 36},
9122      {0, 5, 3},
9123      {0, 12, 6},
9124      {0, 15, 14},
9125      {0, 25, 19},
9126      {0, 28, 27},
9127      {0, 38, 33},
9128      {0, 43, 39},
9129      {0, 47, 46},
9130      {0, 50, 49},
9131      {0, 7, 51},
9132      {0, 1, 48},
9133      {0, 37, 24},
9134      {0, 44, 42},
9135      {0, 13, 11},
9136      {0, 41, 40},
9137      {0, 54, 53},
9138      {0, 56, 55},
9139      {0, 58, 57},
9140      {0, 60, 59},
9141      {0, 62, 61},
9142      {0, 64, 63},
9143      {0, 66, 65},
9144      {0, 68, 67},
9145      {0, 70, 69},
9146      {0, 72, 71},
9147      {0, 30, 16},
9148      {0, 73, 32},
9149      {0, 75, 74},
9150      {0, 77, 76},
9151      {0, 79, 78},
9152      {0, 81, 80},
9153      {0, 83, 82},
9154      {0, 85, 84},
9155      {0, 87, 86},
9156      {0, 89, 88},
9157      {0, 91, 90},
9158      {0, 93, 92},
9159      {0, 95, 94},
9160      {0, 97, 96},
9161      {0, 99, 98},
9162      {0, 101, 100},
9163      {0, 52, 102},
9164    }));
9165
9166    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpCompositeInsert, 1), std::move(codec));
9167  }
9168
9169  {
9170    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(93, {
9171      {0, 0, 0},
9172      {17185761, 0, 0},
9173      {117250846, 0, 0},
9174      {296981500, 0, 0},
9175      {330388453, 0, 0},
9176      {346929928, 0, 0},
9177      {533021259, 0, 0},
9178      {564302770, 0, 0},
9179      {680157484, 0, 0},
9180      {721450866, 0, 0},
9181      {798549062, 0, 0},
9182      {853200279, 0, 0},
9183      {864295921, 0, 0},
9184      {900522183, 0, 0},
9185      {973908139, 0, 0},
9186      {983243705, 0, 0},
9187      {1033363654, 0, 0},
9188      {1037370721, 0, 0},
9189      {1464587427, 0, 0},
9190      {1670691893, 0, 0},
9191      {1686512349, 0, 0},
9192      {1849065716, 0, 0},
9193      {1917602962, 0, 0},
9194      {1965902997, 0, 0},
9195      {2121980967, 0, 0},
9196      {2311072371, 0, 0},
9197      {2339901602, 0, 0},
9198      {2517964682, 0, 0},
9199      {2542834724, 0, 0},
9200      {2558655180, 0, 0},
9201      {2736881867, 0, 0},
9202      {2855506940, 0, 0},
9203      {2888753905, 0, 0},
9204      {2950446516, 0, 0},
9205      {3044188332, 0, 0},
9206      {3079287749, 0, 0},
9207      {3153451899, 0, 0},
9208      {3214537066, 0, 0},
9209      {3234673086, 0, 0},
9210      {3349230696, 0, 0},
9211      {3504158761, 0, 0},
9212      {3570411982, 0, 0},
9213      {3652695478, 0, 0},
9214      {3764205609, 0, 0},
9215      {3940720663, 0, 0},
9216      {4180570743, 0, 0},
9217      {4221373527, 0, 0},
9218      {1111111111111111111, 0, 0},
9219      {0, 24, 18},
9220      {0, 4, 2},
9221      {0, 15, 14},
9222      {0, 21, 20},
9223      {0, 29, 26},
9224      {0, 42, 36},
9225      {0, 7, 45},
9226      {0, 37, 9},
9227      {0, 8, 5},
9228      {0, 32, 11},
9229      {0, 39, 38},
9230      {0, 12, 10},
9231      {0, 28, 19},
9232      {0, 1, 46},
9233      {0, 17, 6},
9234      {0, 30, 23},
9235      {0, 44, 33},
9236      {0, 35, 13},
9237      {0, 16, 48},
9238      {0, 50, 49},
9239      {0, 52, 51},
9240      {0, 54, 53},
9241      {0, 55, 40},
9242      {0, 57, 56},
9243      {0, 59, 58},
9244      {0, 61, 60},
9245      {0, 25, 22},
9246      {0, 63, 62},
9247      {0, 3, 64},
9248      {0, 66, 65},
9249      {0, 68, 67},
9250      {0, 70, 69},
9251      {0, 34, 71},
9252      {0, 73, 72},
9253      {0, 75, 74},
9254      {0, 77, 76},
9255      {0, 27, 43},
9256      {0, 79, 78},
9257      {0, 81, 80},
9258      {0, 83, 82},
9259      {0, 84, 31},
9260      {0, 86, 85},
9261      {0, 41, 87},
9262      {0, 89, 88},
9263      {0, 91, 90},
9264      {0, 47, 92},
9265    }));
9266
9267    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpCompositeInsert, 2), std::move(codec));
9268  }
9269
9270  {
9271    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(115, {
9272      {0, 0, 0},
9273      {132755933, 0, 0},
9274      {156014509, 0, 0},
9275      {255227811, 0, 0},
9276      {371186900, 0, 0},
9277      {371428004, 0, 0},
9278      {374731234, 0, 0},
9279      {531559080, 0, 0},
9280      {565233904, 0, 0},
9281      {578132535, 0, 0},
9282      {591140762, 0, 0},
9283      {600906020, 0, 0},
9284      {602222721, 0, 0},
9285      {656610661, 0, 0},
9286      {760554870, 0, 0},
9287      {996663016, 0, 0},
9288      {1022309772, 0, 0},
9289      {1496901698, 0, 0},
9290      {1502470404, 0, 0},
9291      {1522901980, 0, 0},
9292      {1536350567, 0, 0},
9293      {1543280290, 0, 0},
9294      {1548254487, 0, 0},
9295      {1788504755, 0, 0},
9296      {2064733527, 0, 0},
9297      {2092468906, 0, 0},
9298      {2094647776, 0, 0},
9299      {2162986400, 0, 0},
9300      {2225172640, 0, 0},
9301      {2259467579, 0, 0},
9302      {2263866576, 0, 0},
9303      {2360004627, 0, 0},
9304      {2507709226, 0, 0},
9305      {2600961503, 0, 0},
9306      {2727022058, 0, 0},
9307      {2752967311, 0, 0},
9308      {2864705739, 0, 0},
9309      {3021406120, 0, 0},
9310      {3052439312, 0, 0},
9311      {3136865519, 0, 0},
9312      {3297860332, 0, 0},
9313      {3352361837, 0, 0},
9314      {3598957382, 0, 0},
9315      {3619787319, 0, 0},
9316      {3655201337, 0, 0},
9317      {3670298840, 0, 0},
9318      {3774892253, 0, 0},
9319      {3788324110, 0, 0},
9320      {3808408202, 0, 0},
9321      {3951925872, 0, 0},
9322      {3952316364, 0, 0},
9323      {4098876453, 0, 0},
9324      {4147239510, 0, 0},
9325      {4199470013, 0, 0},
9326      {4211577142, 0, 0},
9327      {4217306348, 0, 0},
9328      {4218799564, 0, 0},
9329      {4290374884, 0, 0},
9330      {1111111111111111111, 0, 0},
9331      {0, 6, 43},
9332      {0, 4, 1},
9333      {0, 11, 9},
9334      {0, 13, 12},
9335      {0, 19, 18},
9336      {0, 25, 23},
9337      {0, 28, 26},
9338      {0, 35, 33},
9339      {0, 39, 38},
9340      {0, 2, 49},
9341      {0, 7, 3},
9342      {0, 16, 14},
9343      {0, 29, 22},
9344      {0, 37, 30},
9345      {0, 45, 41},
9346      {0, 51, 47},
9347      {0, 54, 52},
9348      {0, 57, 56},
9349      {0, 53, 8},
9350      {0, 32, 10},
9351      {0, 42, 40},
9352      {0, 24, 46},
9353      {0, 15, 50},
9354      {0, 55, 20},
9355      {0, 59, 44},
9356      {0, 61, 60},
9357      {0, 63, 62},
9358      {0, 65, 64},
9359      {0, 67, 66},
9360      {0, 69, 68},
9361      {0, 71, 70},
9362      {0, 73, 72},
9363      {0, 75, 74},
9364      {0, 77, 76},
9365      {0, 31, 17},
9366      {0, 36, 34},
9367      {0, 79, 78},
9368      {0, 81, 80},
9369      {0, 27, 82},
9370      {0, 5, 21},
9371      {0, 48, 83},
9372      {0, 85, 84},
9373      {0, 87, 86},
9374      {0, 89, 88},
9375      {0, 91, 90},
9376      {0, 93, 92},
9377      {0, 95, 94},
9378      {0, 97, 96},
9379      {0, 99, 98},
9380      {0, 101, 100},
9381      {0, 103, 102},
9382      {0, 105, 104},
9383      {0, 107, 106},
9384      {0, 109, 108},
9385      {0, 111, 110},
9386      {0, 113, 112},
9387      {0, 58, 114},
9388    }));
9389
9390    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpCompositeInsert, 3), std::move(codec));
9391  }
9392
9393  {
9394    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
9395      {0, 0, 0},
9396      {3866587616, 0, 0},
9397      {3868239231, 0, 0},
9398      {3869890846, 0, 0},
9399      {1111111111111111111, 0, 0},
9400      {0, 1, 4},
9401      {0, 2, 5},
9402      {0, 3, 6},
9403    }));
9404
9405    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpSampledImage, 0), std::move(codec));
9406  }
9407
9408  {
9409    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
9410      {0, 0, 0},
9411      {1164218401, 0, 0},
9412      {2036361232, 0, 0},
9413      {2637132451, 0, 0},
9414      {3237903670, 0, 0},
9415      {1111111111111111111, 0, 0},
9416      {0, 4, 5},
9417      {0, 3, 6},
9418      {0, 1, 7},
9419      {0, 2, 8},
9420    }));
9421
9422    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpSampledImage, 1), std::move(codec));
9423  }
9424
9425  {
9426    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
9427      {0, 0, 0},
9428      {543558236, 0, 0},
9429      {1069781886, 0, 0},
9430      {1596005536, 0, 0},
9431      {1111111111111111111, 0, 0},
9432      {0, 3, 4},
9433      {0, 2, 5},
9434      {0, 1, 6},
9435    }));
9436
9437    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpSampledImage, 2), std::move(codec));
9438  }
9439
9440  {
9441    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
9442      {0, 0, 0},
9443      {1949759310, 0, 0},
9444      {1111111111111111111, 0, 0},
9445      {0, 1, 2},
9446    }));
9447
9448    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpSampledImage, 3), std::move(codec));
9449  }
9450
9451  {
9452    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
9453      {0, 0, 0},
9454      {3334207724, 0, 0},
9455      {1111111111111111111, 0, 0},
9456      {0, 1, 2},
9457    }));
9458
9459    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpImageSampleImplicitLod, 0), std::move(codec));
9460  }
9461
9462  {
9463    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(87, {
9464      {0, 0, 0},
9465      {236660303, 0, 0},
9466      {347505241, 0, 0},
9467      {426360862, 0, 0},
9468      {439998433, 0, 0},
9469      {488500848, 0, 0},
9470      {495107308, 0, 0},
9471      {868652905, 0, 0},
9472      {1191735827, 0, 0},
9473      {1265998516, 0, 0},
9474      {1309728002, 0, 0},
9475      {1365842164, 0, 0},
9476      {1396344138, 0, 0},
9477      {1508074873, 0, 0},
9478      {1553476262, 0, 0},
9479      {1642818143, 0, 0},
9480      {1851510470, 0, 0},
9481      {1858116930, 0, 0},
9482      {1863199739, 0, 0},
9483      {1979978194, 0, 0},
9484      {1986584654, 0, 0},
9485      {2092100514, 0, 0},
9486      {2098706974, 0, 0},
9487      {2231688008, 0, 0},
9488      {2232491275, 0, 0},
9489      {2329992200, 0, 0},
9490      {2637935122, 0, 0},
9491      {2693892518, 0, 0},
9492      {2759250216, 0, 0},
9493      {2839765116, 0, 0},
9494      {2855895374, 0, 0},
9495      {2913136690, 0, 0},
9496      {3012980338, 0, 0},
9497      {3327770644, 0, 0},
9498      {3362344229, 0, 0},
9499      {3398925952, 0, 0},
9500      {3448018532, 0, 0},
9501      {3457985288, 0, 0},
9502      {3566035349, 0, 0},
9503      {3657635382, 0, 0},
9504      {3702405475, 0, 0},
9505      {3757479030, 0, 0},
9506      {3797204453, 0, 0},
9507      {4291477370, 0, 0},
9508      {1111111111111111111, 0, 0},
9509      {0, 32, 28},
9510      {0, 9, 35},
9511      {0, 31, 11},
9512      {0, 10, 30},
9513      {0, 25, 21},
9514      {0, 40, 2},
9515      {0, 15, 19},
9516      {0, 24, 36},
9517      {0, 42, 4},
9518      {0, 18, 16},
9519      {0, 29, 26},
9520      {0, 43, 7},
9521      {0, 45, 8},
9522      {0, 37, 13},
9523      {0, 47, 46},
9524      {0, 48, 33},
9525      {0, 49, 14},
9526      {0, 3, 22},
9527      {0, 50, 12},
9528      {0, 41, 39},
9529      {0, 51, 34},
9530      {0, 52, 20},
9531      {0, 54, 53},
9532      {0, 56, 55},
9533      {0, 58, 57},
9534      {0, 60, 59},
9535      {0, 61, 23},
9536      {0, 63, 62},
9537      {0, 65, 64},
9538      {0, 27, 66},
9539      {0, 67, 38},
9540      {0, 68, 17},
9541      {0, 70, 69},
9542      {0, 72, 71},
9543      {0, 74, 73},
9544      {0, 76, 75},
9545      {0, 5, 77},
9546      {0, 78, 1},
9547      {0, 80, 79},
9548      {0, 82, 81},
9549      {0, 83, 6},
9550      {0, 85, 84},
9551      {0, 44, 86},
9552    }));
9553
9554    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpImageSampleImplicitLod, 1), std::move(codec));
9555  }
9556
9557  {
9558    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(15, {
9559      {0, 0, 0},
9560      {883854656, 0, 0},
9561      {1962971231, 0, 0},
9562      {2036361232, 0, 0},
9563      {2356768706, 0, 0},
9564      {2637132451, 0, 0},
9565      {3237903670, 0, 0},
9566      {3829682756, 0, 0},
9567      {1111111111111111111, 0, 0},
9568      {0, 8, 2},
9569      {0, 6, 9},
9570      {0, 10, 7},
9571      {0, 4, 5},
9572      {0, 12, 11},
9573      {0, 3, 13},
9574      {0, 14, 1},
9575    }));
9576
9577    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpImageSampleImplicitLod, 2), std::move(codec));
9578  }
9579
9580  {
9581    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(87, {
9582      {0, 0, 0},
9583      {150685616, 0, 0},
9584      {255302575, 0, 0},
9585      {414620710, 0, 0},
9586      {557400685, 0, 0},
9587      {575205902, 0, 0},
9588      {618761615, 0, 0},
9589      {646282397, 0, 0},
9590      {686024761, 0, 0},
9591      {740921498, 0, 0},
9592      {921246433, 0, 0},
9593      {1057578789, 0, 0},
9594      {1162127370, 0, 0},
9595      {1329499601, 0, 0},
9596      {1352628475, 0, 0},
9597      {1502028603, 0, 0},
9598      {1519723107, 0, 0},
9599      {1543798545, 0, 0},
9600      {1545450160, 0, 0},
9601      {1570165302, 0, 0},
9602      {1600392975, 0, 0},
9603      {1641415225, 0, 0},
9604      {2204920111, 0, 0},
9605      {2257971049, 0, 0},
9606      {2276405827, 0, 0},
9607      {2339018837, 0, 0},
9608      {2340670452, 0, 0},
9609      {2517964682, 0, 0},
9610      {2532518896, 0, 0},
9611      {2674090849, 0, 0},
9612      {2754074729, 0, 0},
9613      {2804281092, 0, 0},
9614      {2816338013, 0, 0},
9615      {2841008029, 0, 0},
9616      {3234673086, 0, 0},
9617      {3249261197, 0, 0},
9618      {3619787319, 0, 0},
9619      {3627739127, 0, 0},
9620      {3669223677, 0, 0},
9621      {3787567939, 0, 0},
9622      {3898287302, 0, 0},
9623      {4142016703, 0, 0},
9624      {4237092412, 0, 0},
9625      {4285779501, 0, 0},
9626      {1111111111111111111, 0, 0},
9627      {0, 16, 15},
9628      {0, 2, 33},
9629      {0, 41, 35},
9630      {0, 32, 30},
9631      {0, 39, 38},
9632      {0, 5, 1},
9633      {0, 9, 43},
9634      {0, 40, 22},
9635      {0, 29, 12},
9636      {0, 4, 3},
9637      {0, 25, 37},
9638      {0, 34, 26},
9639      {0, 45, 19},
9640      {0, 31, 24},
9641      {0, 47, 46},
9642      {0, 48, 20},
9643      {0, 49, 6},
9644      {0, 8, 21},
9645      {0, 50, 11},
9646      {0, 13, 10},
9647      {0, 51, 42},
9648      {0, 52, 23},
9649      {0, 54, 53},
9650      {0, 56, 55},
9651      {0, 58, 57},
9652      {0, 60, 59},
9653      {0, 61, 28},
9654      {0, 63, 62},
9655      {0, 65, 64},
9656      {0, 17, 66},
9657      {0, 67, 18},
9658      {0, 68, 7},
9659      {0, 70, 69},
9660      {0, 72, 71},
9661      {0, 74, 73},
9662      {0, 76, 75},
9663      {0, 14, 77},
9664      {0, 78, 27},
9665      {0, 80, 79},
9666      {0, 82, 81},
9667      {0, 83, 36},
9668      {0, 85, 84},
9669      {0, 44, 86},
9670    }));
9671
9672    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpImageSampleImplicitLod, 3), std::move(codec));
9673  }
9674
9675  {
9676    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
9677      {0, 0, 0},
9678      {2855506940, 0, 0},
9679      {3266548732, 0, 0},
9680      {3732640764, 0, 0},
9681      {1111111111111111111, 0, 0},
9682      {0, 2, 1},
9683      {0, 5, 4},
9684      {0, 3, 6},
9685    }));
9686
9687    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpImageSampleImplicitLod, 5), std::move(codec));
9688  }
9689
9690  {
9691    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
9692      {0, 0, 0},
9693      {3334207724, 0, 0},
9694      {1111111111111111111, 0, 0},
9695      {0, 1, 2},
9696    }));
9697
9698    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpImageSampleExplicitLod, 0), std::move(codec));
9699  }
9700
9701  {
9702    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(139, {
9703      {0, 0, 0},
9704      {27177503, 0, 0},
9705      {30663912, 0, 0},
9706      {151672195, 0, 0},
9707      {162608772, 0, 0},
9708      {180913835, 0, 0},
9709      {371621315, 0, 0},
9710      {414444763, 0, 0},
9711      {421602934, 0, 0},
9712      {443347828, 0, 0},
9713      {458937500, 0, 0},
9714      {587888644, 0, 0},
9715      {601656217, 0, 0},
9716      {665789406, 0, 0},
9717      {712168842, 0, 0},
9718      {730943059, 0, 0},
9719      {750870327, 0, 0},
9720      {875212982, 0, 0},
9721      {899320334, 0, 0},
9722      {973908139, 0, 0},
9723      {989813600, 0, 0},
9724      {1057606514, 0, 0},
9725      {1171541710, 0, 0},
9726      {1243764146, 0, 0},
9727      {1310404265, 0, 0},
9728      {1366337101, 0, 0},
9729      {1443547269, 0, 0},
9730      {1472185378, 0, 0},
9731      {1473799048, 0, 0},
9732      {1543935193, 0, 0},
9733      {1572834111, 0, 0},
9734      {1623013158, 0, 0},
9735      {1686512349, 0, 0},
9736      {1705716306, 0, 0},
9737      {1747355813, 0, 0},
9738      {1755165354, 0, 0},
9739      {1781864804, 0, 0},
9740      {1916983087, 0, 0},
9741      {1941403425, 0, 0},
9742      {2023008475, 0, 0},
9743      {2043684541, 0, 0},
9744      {2274226560, 0, 0},
9745      {2285438321, 0, 0},
9746      {2315690100, 0, 0},
9747      {2344328209, 0, 0},
9748      {2414725163, 0, 0},
9749      {2493146691, 0, 0},
9750      {2495155989, 0, 0},
9751      {2558655180, 0, 0},
9752      {2577859137, 0, 0},
9753      {2857814560, 0, 0},
9754      {2895151306, 0, 0},
9755      {2986830770, 0, 0},
9756      {3006548167, 0, 0},
9757      {3127329373, 0, 0},
9758      {3157581152, 0, 0},
9759      {3216471040, 0, 0},
9760      {3296722158, 0, 0},
9761      {3367298820, 0, 0},
9762      {3376009661, 0, 0},
9763      {3450001968, 0, 0},
9764      {3526837441, 0, 0},
9765      {3609540589, 0, 0},
9766      {3743398113, 0, 0},
9767      {3858973601, 0, 0},
9768      {3953984401, 0, 0},
9769      {3999472204, 0, 0},
9770      {4088613871, 0, 0},
9771      {4184019303, 0, 0},
9772      {4258229445, 0, 0},
9773      {1111111111111111111, 0, 0},
9774      {0, 31, 16},
9775      {0, 58, 47},
9776      {0, 21, 61},
9777      {0, 6, 14},
9778      {0, 65, 23},
9779      {0, 35, 5},
9780      {0, 2, 7},
9781      {0, 10, 25},
9782      {0, 40, 22},
9783      {0, 9, 50},
9784      {0, 20, 11},
9785      {0, 38, 36},
9786      {0, 13, 12},
9787      {0, 67, 28},
9788      {0, 71, 68},
9789      {0, 73, 72},
9790      {0, 3, 29},
9791      {0, 27, 8},
9792      {0, 44, 37},
9793      {0, 74, 63},
9794      {0, 76, 75},
9795      {0, 18, 1},
9796      {0, 78, 77},
9797      {0, 80, 79},
9798      {0, 82, 81},
9799      {0, 26, 15},
9800      {0, 83, 43},
9801      {0, 85, 84},
9802      {0, 19, 86},
9803      {0, 48, 32},
9804      {0, 33, 46},
9805      {0, 87, 49},
9806      {0, 89, 88},
9807      {0, 91, 90},
9808      {0, 41, 30},
9809      {0, 52, 42},
9810      {0, 64, 55},
9811      {0, 92, 53},
9812      {0, 94, 93},
9813      {0, 51, 39},
9814      {0, 45, 95},
9815      {0, 66, 54},
9816      {0, 97, 96},
9817      {0, 57, 98},
9818      {0, 99, 69},
9819      {0, 101, 100},
9820      {0, 56, 102},
9821      {0, 4, 59},
9822      {0, 34, 17},
9823      {0, 103, 24},
9824      {0, 105, 104},
9825      {0, 107, 106},
9826      {0, 109, 108},
9827      {0, 60, 110},
9828      {0, 111, 62},
9829      {0, 113, 112},
9830      {0, 115, 114},
9831      {0, 117, 116},
9832      {0, 119, 118},
9833      {0, 121, 120},
9834      {0, 123, 122},
9835      {0, 125, 124},
9836      {0, 127, 126},
9837      {0, 129, 128},
9838      {0, 70, 130},
9839      {0, 132, 131},
9840      {0, 134, 133},
9841      {0, 136, 135},
9842      {0, 138, 137},
9843    }));
9844
9845    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpImageSampleExplicitLod, 1), std::move(codec));
9846  }
9847
9848  {
9849    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(11, {
9850      {0, 0, 0},
9851      {883854656, 0, 0},
9852      {1962971231, 0, 0},
9853      {2036361232, 0, 0},
9854      {2366506734, 0, 0},
9855      {3829682756, 0, 0},
9856      {1111111111111111111, 0, 0},
9857      {0, 4, 2},
9858      {0, 6, 7},
9859      {0, 8, 5},
9860      {0, 3, 9},
9861      {0, 1, 10},
9862    }));
9863
9864    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpImageSampleExplicitLod, 2), std::move(codec));
9865  }
9866
9867  {
9868    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(73, {
9869      {0, 0, 0},
9870      {178571546, 0, 0},
9871      {223310468, 0, 0},
9872      {388034151, 0, 0},
9873      {449954059, 0, 0},
9874      {694743357, 0, 0},
9875      {797415788, 0, 0},
9876      {835638766, 0, 0},
9877      {1002144380, 0, 0},
9878      {1221183390, 0, 0},
9879      {1570165302, 0, 0},
9880      {1663234329, 0, 0},
9881      {1750829822, 0, 0},
9882      {1894133125, 0, 0},
9883      {1967643923, 0, 0},
9884      {1980341560, 0, 0},
9885      {2278706468, 0, 0},
9886      {2326990117, 0, 0},
9887      {2464905186, 0, 0},
9888      {2511346984, 0, 0},
9889      {2517964682, 0, 0},
9890      {2616085763, 0, 0},
9891      {2710583246, 0, 0},
9892      {2745872368, 0, 0},
9893      {2924263085, 0, 0},
9894      {3027500544, 0, 0},
9895      {3044723416, 0, 0},
9896      {3202324433, 0, 0},
9897      {3289213933, 0, 0},
9898      {3323682385, 0, 0},
9899      {3366848728, 0, 0},
9900      {3417583519, 0, 0},
9901      {3732916270, 0, 0},
9902      {3787909072, 0, 0},
9903      {3877813395, 0, 0},
9904      {4028028350, 0, 0},
9905      {4178218543, 0, 0},
9906      {1111111111111111111, 0, 0},
9907      {0, 36, 31},
9908      {0, 15, 3},
9909      {0, 17, 1},
9910      {0, 24, 12},
9911      {0, 35, 34},
9912      {0, 28, 27},
9913      {0, 21, 38},
9914      {0, 6, 13},
9915      {0, 14, 7},
9916      {0, 39, 25},
9917      {0, 40, 30},
9918      {0, 42, 41},
9919      {0, 32, 43},
9920      {0, 23, 9},
9921      {0, 11, 44},
9922      {0, 45, 22},
9923      {0, 47, 46},
9924      {0, 2, 16},
9925      {0, 49, 48},
9926      {0, 4, 50},
9927      {0, 51, 18},
9928      {0, 53, 52},
9929      {0, 33, 54},
9930      {0, 26, 55},
9931      {0, 57, 56},
9932      {0, 5, 58},
9933      {0, 59, 8},
9934      {0, 19, 60},
9935      {0, 10, 61},
9936      {0, 29, 62},
9937      {0, 37, 63},
9938      {0, 65, 64},
9939      {0, 67, 66},
9940      {0, 20, 68},
9941      {0, 70, 69},
9942      {0, 72, 71},
9943    }));
9944
9945    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpImageSampleExplicitLod, 3), std::move(codec));
9946  }
9947
9948  {
9949    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
9950      {0, 0, 0},
9951      {2855506940, 0, 0},
9952      {1111111111111111111, 0, 0},
9953      {0, 1, 2},
9954    }));
9955
9956    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpImageSampleExplicitLod, 5), std::move(codec));
9957  }
9958
9959  {
9960    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(13, {
9961      {0, 0, 0},
9962      {3533637837, 0, 0},
9963      {3535289452, 0, 0},
9964      {3536941067, 0, 0},
9965      {3538592682, 0, 0},
9966      {3540244297, 0, 0},
9967      {3541895912, 0, 0},
9968      {1111111111111111111, 0, 0},
9969      {0, 1, 7},
9970      {0, 2, 8},
9971      {0, 9, 3},
9972      {0, 4, 10},
9973      {0, 5, 11},
9974      {0, 12, 6},
9975    }));
9976
9977    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpImageSampleExplicitLod, 6), std::move(codec));
9978  }
9979
9980  {
9981    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
9982      {0, 0, 0},
9983      {679771963, 0, 0},
9984      {1951208733, 0, 0},
9985      {2320303498, 0, 0},
9986      {3334207724, 0, 0},
9987      {1111111111111111111, 0, 0},
9988      {0, 4, 5},
9989      {0, 2, 6},
9990      {0, 1, 3},
9991      {0, 8, 7},
9992    }));
9993
9994    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFAdd, 0), std::move(codec));
9995  }
9996
9997  {
9998    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(45, {
9999      {0, 0, 0},
10000      {328661377, 0, 0},
10001      {464259778, 0, 0},
10002      {920941800, 0, 0},
10003      {969500141, 0, 0},
10004      {1449907751, 0, 0},
10005      {1451831482, 0, 0},
10006      {1543798545, 0, 0},
10007      {1545450160, 0, 0},
10008      {1626224034, 0, 0},
10009      {1669930486, 0, 0},
10010      {1770165905, 0, 0},
10011      {2278571792, 0, 0},
10012      {2432827426, 0, 0},
10013      {2656211099, 0, 0},
10014      {2736844435, 0, 0},
10015      {2870852215, 0, 0},
10016      {2919626325, 0, 0},
10017      {2923708820, 0, 0},
10018      {3325419312, 0, 0},
10019      {3678875745, 0, 0},
10020      {4182141402, 0, 0},
10021      {4241374559, 0, 0},
10022      {1111111111111111111, 0, 0},
10023      {0, 2, 6},
10024      {0, 9, 13},
10025      {0, 5, 15},
10026      {0, 4, 11},
10027      {0, 20, 22},
10028      {0, 10, 1},
10029      {0, 18, 14},
10030      {0, 16, 3},
10031      {0, 12, 21},
10032      {0, 8, 7},
10033      {0, 24, 17},
10034      {0, 19, 25},
10035      {0, 27, 26},
10036      {0, 29, 28},
10037      {0, 31, 30},
10038      {0, 33, 32},
10039      {0, 35, 34},
10040      {0, 37, 36},
10041      {0, 39, 38},
10042      {0, 41, 40},
10043      {0, 43, 42},
10044      {0, 23, 44},
10045    }));
10046
10047    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFAdd, 1), std::move(codec));
10048  }
10049
10050  {
10051    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(89, {
10052      {0, 0, 0},
10053      {135920445, 0, 0},
10054      {176166202, 0, 0},
10055      {294390719, 0, 0},
10056      {296981500, 0, 0},
10057      {743407979, 0, 0},
10058      {810488476, 0, 0},
10059      {837715723, 0, 0},
10060      {885020215, 0, 0},
10061      {922996215, 0, 0},
10062      {959681532, 0, 0},
10063      {963902061, 0, 0},
10064      {1136775085, 0, 0},
10065      {1189681639, 0, 0},
10066      {1203545131, 0, 0},
10067      {1297294717, 0, 0},
10068      {1317058015, 0, 0},
10069      {1352397672, 0, 0},
10070      {1367301635, 0, 0},
10071      {1412908157, 0, 0},
10072      {1570165302, 0, 0},
10073      {1763758554, 0, 0},
10074      {1791427568, 0, 0},
10075      {1992893964, 0, 0},
10076      {2013867381, 0, 0},
10077      {2096388952, 0, 0},
10078      {2219733501, 0, 0},
10079      {2383939514, 0, 0},
10080      {2517964682, 0, 0},
10081      {2555315060, 0, 0},
10082      {2572638469, 0, 0},
10083      {2762094724, 0, 0},
10084      {2770161927, 0, 0},
10085      {2855506940, 0, 0},
10086      {3044188332, 0, 0},
10087      {3187066832, 0, 0},
10088      {3319278167, 0, 0},
10089      {3653838348, 0, 0},
10090      {3675926744, 0, 0},
10091      {3701632935, 0, 0},
10092      {3712946115, 0, 0},
10093      {3732709413, 0, 0},
10094      {3743748793, 0, 0},
10095      {3783543823, 0, 0},
10096      {3930727258, 0, 0},
10097      {1111111111111111111, 0, 0},
10098      {0, 15, 12},
10099      {0, 38, 16},
10100      {0, 41, 40},
10101      {0, 1, 33},
10102      {0, 21, 34},
10103      {0, 9, 2},
10104      {0, 24, 7},
10105      {0, 39, 44},
10106      {0, 29, 22},
10107      {0, 17, 19},
10108      {0, 36, 32},
10109      {0, 26, 18},
10110      {0, 30, 3},
10111      {0, 11, 8},
10112      {0, 42, 35},
10113      {0, 46, 31},
10114      {0, 27, 5},
10115      {0, 48, 47},
10116      {0, 28, 49},
10117      {0, 51, 50},
10118      {0, 52, 23},
10119      {0, 54, 53},
10120      {0, 13, 14},
10121      {0, 6, 55},
10122      {0, 57, 56},
10123      {0, 59, 58},
10124      {0, 60, 43},
10125      {0, 62, 61},
10126      {0, 37, 63},
10127      {0, 65, 64},
10128      {0, 67, 66},
10129      {0, 69, 68},
10130      {0, 70, 4},
10131      {0, 10, 71},
10132      {0, 72, 20},
10133      {0, 74, 73},
10134      {0, 76, 75},
10135      {0, 78, 77},
10136      {0, 80, 79},
10137      {0, 81, 25},
10138      {0, 83, 82},
10139      {0, 85, 84},
10140      {0, 87, 86},
10141      {0, 45, 88},
10142    }));
10143
10144    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFAdd, 2), std::move(codec));
10145  }
10146
10147  {
10148    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(103, {
10149      {0, 0, 0},
10150      {126463145, 0, 0},
10151      {220008971, 0, 0},
10152      {246375791, 0, 0},
10153      {503145996, 0, 0},
10154      {628331516, 0, 0},
10155      {643418617, 0, 0},
10156      {743407979, 0, 0},
10157      {837715723, 0, 0},
10158      {858902117, 0, 0},
10159      {870594305, 0, 0},
10160      {939671928, 0, 0},
10161      {959681532, 0, 0},
10162      {1051471757, 0, 0},
10163      {1092948665, 0, 0},
10164      {1097775533, 0, 0},
10165      {1136775085, 0, 0},
10166      {1140367371, 0, 0},
10167      {1332643570, 0, 0},
10168      {1367301635, 0, 0},
10169      {1558001705, 0, 0},
10170      {1684282922, 0, 0},
10171      {2096388952, 0, 0},
10172      {2183547611, 0, 0},
10173      {2219733501, 0, 0},
10174      {2358141757, 0, 0},
10175      {2359973133, 0, 0},
10176      {2383939514, 0, 0},
10177      {2444465148, 0, 0},
10178      {2517964682, 0, 0},
10179      {2567901801, 0, 0},
10180      {2598189097, 0, 0},
10181      {2655147757, 0, 0},
10182      {2683080096, 0, 0},
10183      {2705434194, 0, 0},
10184      {2738307068, 0, 0},
10185      {2780898906, 0, 0},
10186      {3030911670, 0, 0},
10187      {3032677281, 0, 0},
10188      {3063300848, 0, 0},
10189      {3277199633, 0, 0},
10190      {3289969989, 0, 0},
10191      {3401762422, 0, 0},
10192      {3436143898, 0, 0},
10193      {3560552546, 0, 0},
10194      {3656163446, 0, 0},
10195      {3675926744, 0, 0},
10196      {3701632935, 0, 0},
10197      {3743748793, 0, 0},
10198      {3752211294, 0, 0},
10199      {3794803132, 0, 0},
10200      {4241374559, 0, 0},
10201      {1111111111111111111, 0, 0},
10202      {0, 1, 21},
10203      {0, 17, 11},
10204      {0, 36, 35},
10205      {0, 46, 45},
10206      {0, 50, 49},
10207      {0, 9, 3},
10208      {0, 20, 47},
10209      {0, 37, 31},
10210      {0, 2, 34},
10211      {0, 40, 13},
10212      {0, 51, 32},
10213      {0, 41, 10},
10214      {0, 38, 19},
10215      {0, 18, 44},
10216      {0, 43, 16},
10217      {0, 48, 24},
10218      {0, 26, 5},
10219      {0, 53, 8},
10220      {0, 15, 7},
10221      {0, 25, 23},
10222      {0, 54, 27},
10223      {0, 56, 55},
10224      {0, 58, 57},
10225      {0, 60, 59},
10226      {0, 39, 42},
10227      {0, 62, 61},
10228      {0, 30, 63},
10229      {0, 4, 64},
10230      {0, 65, 28},
10231      {0, 66, 22},
10232      {0, 68, 67},
10233      {0, 69, 14},
10234      {0, 70, 33},
10235      {0, 71, 6},
10236      {0, 73, 72},
10237      {0, 75, 74},
10238      {0, 29, 76},
10239      {0, 78, 77},
10240      {0, 80, 79},
10241      {0, 82, 81},
10242      {0, 84, 83},
10243      {0, 86, 85},
10244      {0, 88, 87},
10245      {0, 90, 89},
10246      {0, 91, 12},
10247      {0, 93, 92},
10248      {0, 95, 94},
10249      {0, 97, 96},
10250      {0, 99, 98},
10251      {0, 101, 100},
10252      {0, 52, 102},
10253    }));
10254
10255    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFAdd, 3), std::move(codec));
10256  }
10257
10258  {
10259    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
10260      {0, 0, 0},
10261      {679771963, 0, 0},
10262      {1951208733, 0, 0},
10263      {2320303498, 0, 0},
10264      {3334207724, 0, 0},
10265      {1111111111111111111, 0, 0},
10266      {0, 3, 5},
10267      {0, 4, 6},
10268      {0, 1, 7},
10269      {0, 2, 8},
10270    }));
10271
10272    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFSub, 0), std::move(codec));
10273  }
10274
10275  {
10276    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(159, {
10277      {0, 0, 0},
10278      {50385656, 0, 0},
10279      {117250846, 0, 0},
10280      {171494987, 0, 0},
10281      {195244192, 0, 0},
10282      {210754155, 0, 0},
10283      {265392489, 0, 0},
10284      {333855951, 0, 0},
10285      {416853049, 0, 0},
10286      {529068443, 0, 0},
10287      {533021259, 0, 0},
10288      {615982737, 0, 0},
10289      {660038281, 0, 0},
10290      {663341511, 0, 0},
10291      {669812542, 0, 0},
10292      {716890919, 0, 0},
10293      {1081536219, 0, 0},
10294      {1119744229, 0, 0},
10295      {1123617794, 0, 0},
10296      {1139547465, 0, 0},
10297      {1162789888, 0, 0},
10298      {1178317551, 0, 0},
10299      {1190147516, 0, 0},
10300      {1193734351, 0, 0},
10301      {1215030156, 0, 0},
10302      {1220749418, 0, 0},
10303      {1318479490, 0, 0},
10304      {1461398554, 0, 0},
10305      {1486207619, 0, 0},
10306      {1551372768, 0, 0},
10307      {1763758554, 0, 0},
10308      {1797960910, 0, 0},
10309      {1850331254, 0, 0},
10310      {1894417995, 0, 0},
10311      {1964254745, 0, 0},
10312      {1965902997, 0, 0},
10313      {1989327599, 0, 0},
10314      {2095027856, 0, 0},
10315      {2123683379, 0, 0},
10316      {2124837447, 0, 0},
10317      {2137526937, 0, 0},
10318      {2269114589, 0, 0},
10319      {2269130237, 0, 0},
10320      {2330636993, 0, 0},
10321      {2481746922, 0, 0},
10322      {2503770904, 0, 0},
10323      {2589449658, 0, 0},
10324      {2603020391, 0, 0},
10325      {2604576561, 0, 0},
10326      {2795773560, 0, 0},
10327      {2835131395, 0, 0},
10328      {2852854788, 0, 0},
10329      {2890638791, 0, 0},
10330      {2895413148, 0, 0},
10331      {2950446516, 0, 0},
10332      {2963744582, 0, 0},
10333      {3079287749, 0, 0},
10334      {3088785099, 0, 0},
10335      {3280064277, 0, 0},
10336      {3335250889, 0, 0},
10337      {3510242586, 0, 0},
10338      {3517169445, 0, 0},
10339      {3518703473, 0, 0},
10340      {3536471583, 0, 0},
10341      {3579593979, 0, 0},
10342      {3591222197, 0, 0},
10343      {3673811979, 0, 0},
10344      {3727034815, 0, 0},
10345      {3730093054, 0, 0},
10346      {3898287302, 0, 0},
10347      {3944781937, 0, 0},
10348      {3950980241, 0, 0},
10349      {4033586023, 0, 0},
10350      {4041974454, 0, 0},
10351      {4052965752, 0, 0},
10352      {4083161638, 0, 0},
10353      {4167600590, 0, 0},
10354      {4185661467, 0, 0},
10355      {4237092412, 0, 0},
10356      {4244540017, 0, 0},
10357      {1111111111111111111, 0, 0},
10358      {0, 44, 18},
10359      {0, 69, 57},
10360      {0, 24, 16},
10361      {0, 79, 5},
10362      {0, 59, 4},
10363      {0, 76, 40},
10364      {0, 53, 45},
10365      {0, 14, 2},
10366      {0, 62, 61},
10367      {0, 33, 75},
10368      {0, 38, 37},
10369      {0, 42, 58},
10370      {0, 66, 47},
10371      {0, 63, 67},
10372      {0, 1, 7},
10373      {0, 10, 3},
10374      {0, 13, 12},
10375      {0, 23, 22},
10376      {0, 32, 28},
10377      {0, 36, 35},
10378      {0, 72, 49},
10379      {0, 74, 73},
10380      {0, 77, 55},
10381      {0, 27, 41},
10382      {0, 31, 15},
10383      {0, 6, 54},
10384      {0, 78, 17},
10385      {0, 81, 56},
10386      {0, 83, 82},
10387      {0, 85, 84},
10388      {0, 48, 30},
10389      {0, 71, 60},
10390      {0, 65, 51},
10391      {0, 87, 86},
10392      {0, 50, 34},
10393      {0, 89, 88},
10394      {0, 90, 9},
10395      {0, 25, 8},
10396      {0, 92, 91},
10397      {0, 93, 26},
10398      {0, 95, 94},
10399      {0, 52, 39},
10400      {0, 29, 20},
10401      {0, 97, 96},
10402      {0, 99, 98},
10403      {0, 101, 100},
10404      {0, 64, 102},
10405      {0, 104, 103},
10406      {0, 106, 105},
10407      {0, 21, 107},
10408      {0, 108, 68},
10409      {0, 109, 46},
10410      {0, 110, 11},
10411      {0, 112, 111},
10412      {0, 114, 113},
10413      {0, 116, 115},
10414      {0, 117, 70},
10415      {0, 43, 118},
10416      {0, 120, 119},
10417      {0, 122, 121},
10418      {0, 124, 123},
10419      {0, 126, 125},
10420      {0, 128, 127},
10421      {0, 129, 19},
10422      {0, 131, 130},
10423      {0, 133, 132},
10424      {0, 135, 134},
10425      {0, 137, 136},
10426      {0, 139, 138},
10427      {0, 141, 140},
10428      {0, 143, 142},
10429      {0, 145, 144},
10430      {0, 147, 146},
10431      {0, 149, 148},
10432      {0, 151, 150},
10433      {0, 153, 152},
10434      {0, 155, 154},
10435      {0, 157, 156},
10436      {0, 158, 80},
10437    }));
10438
10439    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFSub, 1), std::move(codec));
10440  }
10441
10442  {
10443    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(103, {
10444      {0, 0, 0},
10445      {50998433, 0, 0},
10446      {171494987, 0, 0},
10447      {249378857, 0, 0},
10448      {296981500, 0, 0},
10449      {508007510, 0, 0},
10450      {610429940, 0, 0},
10451      {660038281, 0, 0},
10452      {663341511, 0, 0},
10453      {836581417, 0, 0},
10454      {1027242654, 0, 0},
10455      {1167160774, 0, 0},
10456      {1191015885, 0, 0},
10457      {1200870684, 0, 0},
10458      {1203545131, 0, 0},
10459      {1265796414, 0, 0},
10460      {1319785741, 0, 0},
10461      {1669959736, 0, 0},
10462      {1684282922, 0, 0},
10463      {1752686878, 0, 0},
10464      {1850331254, 0, 0},
10465      {1901166356, 0, 0},
10466      {1906988301, 0, 0},
10467      {2055836767, 0, 0},
10468      {2095027856, 0, 0},
10469      {2096388952, 0, 0},
10470      {2144962711, 0, 0},
10471      {2217833278, 0, 0},
10472      {2500819054, 0, 0},
10473      {2525173102, 0, 0},
10474      {2575525651, 0, 0},
10475      {2660843182, 0, 0},
10476      {2855506940, 0, 0},
10477      {2918750759, 0, 0},
10478      {2919787747, 0, 0},
10479      {3091876332, 0, 0},
10480      {3187066832, 0, 0},
10481      {3244209297, 0, 0},
10482      {3423702268, 0, 0},
10483      {3508792859, 0, 0},
10484      {3548535223, 0, 0},
10485      {3619787319, 0, 0},
10486      {3653838348, 0, 0},
10487      {3692647551, 0, 0},
10488      {3713290482, 0, 0},
10489      {3753486980, 0, 0},
10490      {3783756895, 0, 0},
10491      {3797961332, 0, 0},
10492      {3836822275, 0, 0},
10493      {4043078107, 0, 0},
10494      {4052965752, 0, 0},
10495      {4091394002, 0, 0},
10496      {1111111111111111111, 0, 0},
10497      {0, 31, 49},
10498      {0, 24, 19},
10499      {0, 46, 45},
10500      {0, 6, 48},
10501      {0, 12, 33},
10502      {0, 17, 21},
10503      {0, 43, 11},
10504      {0, 7, 2},
10505      {0, 9, 8},
10506      {0, 28, 13},
10507      {0, 44, 38},
10508      {0, 30, 50},
10509      {0, 26, 22},
10510      {0, 29, 51},
10511      {0, 34, 37},
10512      {0, 53, 40},
10513      {0, 23, 54},
10514      {0, 55, 25},
10515      {0, 27, 18},
10516      {0, 1, 10},
10517      {0, 57, 56},
10518      {0, 59, 58},
10519      {0, 5, 47},
10520      {0, 60, 20},
10521      {0, 62, 61},
10522      {0, 64, 63},
10523      {0, 66, 65},
10524      {0, 67, 39},
10525      {0, 69, 68},
10526      {0, 16, 70},
10527      {0, 3, 71},
10528      {0, 73, 72},
10529      {0, 41, 15},
10530      {0, 35, 74},
10531      {0, 76, 75},
10532      {0, 78, 77},
10533      {0, 36, 79},
10534      {0, 81, 80},
10535      {0, 83, 82},
10536      {0, 14, 84},
10537      {0, 86, 85},
10538      {0, 88, 87},
10539      {0, 32, 89},
10540      {0, 42, 90},
10541      {0, 92, 91},
10542      {0, 94, 93},
10543      {0, 96, 95},
10544      {0, 98, 97},
10545      {0, 52, 99},
10546      {0, 100, 4},
10547      {0, 102, 101},
10548    }));
10549
10550    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFSub, 2), std::move(codec));
10551  }
10552
10553  {
10554    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(157, {
10555      {0, 0, 0},
10556      {49456560, 0, 0},
10557      {170690025, 0, 0},
10558      {243178923, 0, 0},
10559      {295017943, 0, 0},
10560      {296981500, 0, 0},
10561      {330249537, 0, 0},
10562      {435256475, 0, 0},
10563      {443558693, 0, 0},
10564      {456043370, 0, 0},
10565      {470277359, 0, 0},
10566      {592180731, 0, 0},
10567      {663258455, 0, 0},
10568      {706238670, 0, 0},
10569      {810488476, 0, 0},
10570      {870594305, 0, 0},
10571      {877895868, 0, 0},
10572      {900522183, 0, 0},
10573      {1077859090, 0, 0},
10574      {1082941229, 0, 0},
10575      {1104362365, 0, 0},
10576      {1132589448, 0, 0},
10577      {1173092699, 0, 0},
10578      {1203545131, 0, 0},
10579      {1265796414, 0, 0},
10580      {1278818058, 0, 0},
10581      {1285705317, 0, 0},
10582      {1319785741, 0, 0},
10583      {1382106590, 0, 0},
10584      {1461897718, 0, 0},
10585      {1474506522, 0, 0},
10586      {1530183840, 0, 0},
10587      {1558001705, 0, 0},
10588      {1558990974, 0, 0},
10589      {1616846013, 0, 0},
10590      {1633850097, 0, 0},
10591      {1684282922, 0, 0},
10592      {1725011064, 0, 0},
10593      {1767704813, 0, 0},
10594      {1923453688, 0, 0},
10595      {1941148668, 0, 0},
10596      {1955104493, 0, 0},
10597      {2022961611, 0, 0},
10598      {2162274327, 0, 0},
10599      {2212501241, 0, 0},
10600      {2219733501, 0, 0},
10601      {2234361374, 0, 0},
10602      {2272221101, 0, 0},
10603      {2305269460, 0, 0},
10604      {2488410748, 0, 0},
10605      {2566666743, 0, 0},
10606      {2598189097, 0, 0},
10607      {2775815164, 0, 0},
10608      {2793529873, 0, 0},
10609      {2844616706, 0, 0},
10610      {2970183398, 0, 0},
10611      {3103302036, 0, 0},
10612      {3110479131, 0, 0},
10613      {3115038057, 0, 0},
10614      {3116932970, 0, 0},
10615      {3152745753, 0, 0},
10616      {3187066832, 0, 0},
10617      {3244209297, 0, 0},
10618      {3383007207, 0, 0},
10619      {3392887901, 0, 0},
10620      {3508792859, 0, 0},
10621      {3737376990, 0, 0},
10622      {3753486980, 0, 0},
10623      {3765247327, 0, 0},
10624      {3817149113, 0, 0},
10625      {3839047923, 0, 0},
10626      {3886529747, 0, 0},
10627      {4044928561, 0, 0},
10628      {4061558677, 0, 0},
10629      {4069720347, 0, 0},
10630      {4069810315, 0, 0},
10631      {4128942283, 0, 0},
10632      {4164704452, 0, 0},
10633      {4273793488, 0, 0},
10634      {1111111111111111111, 0, 0},
10635      {0, 74, 47},
10636      {0, 34, 33},
10637      {0, 36, 14},
10638      {0, 61, 48},
10639      {0, 13, 31},
10640      {0, 39, 25},
10641      {0, 37, 29},
10642      {0, 65, 54},
10643      {0, 4, 73},
10644      {0, 38, 10},
10645      {0, 15, 43},
10646      {0, 6, 35},
10647      {0, 9, 16},
10648      {0, 30, 19},
10649      {0, 49, 44},
10650      {0, 57, 53},
10651      {0, 60, 58},
10652      {0, 72, 66},
10653      {0, 59, 76},
10654      {0, 1, 68},
10655      {0, 70, 42},
10656      {0, 63, 3},
10657      {0, 28, 69},
10658      {0, 17, 55},
10659      {0, 45, 64},
10660      {0, 81, 80},
10661      {0, 7, 82},
10662      {0, 12, 11},
10663      {0, 21, 50},
10664      {0, 83, 18},
10665      {0, 22, 84},
10666      {0, 85, 26},
10667      {0, 20, 86},
10668      {0, 87, 40},
10669      {0, 56, 88},
10670      {0, 90, 89},
10671      {0, 92, 91},
10672      {0, 93, 2},
10673      {0, 95, 94},
10674      {0, 97, 96},
10675      {0, 98, 41},
10676      {0, 100, 99},
10677      {0, 101, 52},
10678      {0, 103, 102},
10679      {0, 77, 71},
10680      {0, 104, 78},
10681      {0, 105, 46},
10682      {0, 32, 8},
10683      {0, 106, 51},
10684      {0, 108, 107},
10685      {0, 23, 109},
10686      {0, 110, 27},
10687      {0, 112, 111},
10688      {0, 113, 75},
10689      {0, 115, 114},
10690      {0, 117, 116},
10691      {0, 119, 118},
10692      {0, 121, 120},
10693      {0, 123, 122},
10694      {0, 124, 62},
10695      {0, 126, 125},
10696      {0, 128, 127},
10697      {0, 67, 129},
10698      {0, 131, 130},
10699      {0, 5, 132},
10700      {0, 134, 133},
10701      {0, 136, 135},
10702      {0, 138, 137},
10703      {0, 139, 24},
10704      {0, 141, 140},
10705      {0, 143, 142},
10706      {0, 145, 144},
10707      {0, 147, 146},
10708      {0, 149, 148},
10709      {0, 151, 150},
10710      {0, 153, 152},
10711      {0, 79, 154},
10712      {0, 156, 155},
10713    }));
10714
10715    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFSub, 3), std::move(codec));
10716  }
10717
10718  {
10719    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
10720      {0, 0, 0},
10721      {679771963, 0, 0},
10722      {1951208733, 0, 0},
10723      {2320303498, 0, 0},
10724      {3334207724, 0, 0},
10725      {1111111111111111111, 0, 0},
10726      {0, 4, 5},
10727      {0, 3, 6},
10728      {0, 1, 7},
10729      {0, 8, 2},
10730    }));
10731
10732    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFMul, 0), std::move(codec));
10733  }
10734
10735  {
10736    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(41, {
10737      {0, 0, 0},
10738      {342197850, 0, 0},
10739      {885020215, 0, 0},
10740      {963902061, 0, 0},
10741      {1041368449, 0, 0},
10742      {1352397672, 0, 0},
10743      {1791427568, 0, 0},
10744      {2013867381, 0, 0},
10745      {2513230733, 0, 0},
10746      {2555315060, 0, 0},
10747      {2562485583, 0, 0},
10748      {2567901801, 0, 0},
10749      {2655147757, 0, 0},
10750      {2680283743, 0, 0},
10751      {2752766693, 0, 0},
10752      {2806716850, 0, 0},
10753      {3030911670, 0, 0},
10754      {3401762422, 0, 0},
10755      {3697738938, 0, 0},
10756      {4164704452, 0, 0},
10757      {4273793488, 0, 0},
10758      {1111111111111111111, 0, 0},
10759      {0, 14, 10},
10760      {0, 7, 16},
10761      {0, 1, 15},
10762      {0, 9, 6},
10763      {0, 4, 12},
10764      {0, 18, 5},
10765      {0, 13, 2},
10766      {0, 19, 3},
10767      {0, 17, 20},
10768      {0, 23, 22},
10769      {0, 24, 8},
10770      {0, 26, 25},
10771      {0, 27, 11},
10772      {0, 29, 28},
10773      {0, 31, 30},
10774      {0, 33, 32},
10775      {0, 35, 34},
10776      {0, 37, 36},
10777      {0, 39, 38},
10778      {0, 21, 40},
10779    }));
10780
10781    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFMul, 1), std::move(codec));
10782  }
10783
10784  {
10785    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(129, {
10786      {0, 0, 0},
10787      {126463145, 0, 0},
10788      {129135650, 0, 0},
10789      {200922300, 0, 0},
10790      {328661377, 0, 0},
10791      {354479447, 0, 0},
10792      {360730278, 0, 0},
10793      {451264926, 0, 0},
10794      {529068443, 0, 0},
10795      {593829839, 0, 0},
10796      {742917749, 0, 0},
10797      {761731755, 0, 0},
10798      {810488476, 0, 0},
10799      {870594305, 0, 0},
10800      {894529125, 0, 0},
10801      {959681532, 0, 0},
10802      {1054461787, 0, 0},
10803      {1077859090, 0, 0},
10804      {1086964761, 0, 0},
10805      {1158929937, 0, 0},
10806      {1168927492, 0, 0},
10807      {1196280518, 0, 0},
10808      {1203545131, 0, 0},
10809      {1367301635, 0, 0},
10810      {1508550646, 0, 0},
10811      {1618544981, 0, 0},
10812      {1661163736, 0, 0},
10813      {1684282922, 0, 0},
10814      {1766994680, 0, 0},
10815      {1830851200, 0, 0},
10816      {1901166356, 0, 0},
10817      {1955104493, 0, 0},
10818      {2055836767, 0, 0},
10819      {2096388952, 0, 0},
10820      {2100052708, 0, 0},
10821      {2161102232, 0, 0},
10822      {2197904616, 0, 0},
10823      {2262137600, 0, 0},
10824      {2278571792, 0, 0},
10825      {2281956980, 0, 0},
10826      {2438466459, 0, 0},
10827      {2443959748, 0, 0},
10828      {2517964682, 0, 0},
10829      {2557754096, 0, 0},
10830      {2622612602, 0, 0},
10831      {2660843182, 0, 0},
10832      {2736844435, 0, 0},
10833      {2780898906, 0, 0},
10834      {3044188332, 0, 0},
10835      {3059119137, 0, 0},
10836      {3194725903, 0, 0},
10837      {3270430997, 0, 0},
10838      {3337532056, 0, 0},
10839      {3407526215, 0, 0},
10840      {3496407048, 0, 0},
10841      {3504158761, 0, 0},
10842      {3534518722, 0, 0},
10843      {3570411982, 0, 0},
10844      {3701632935, 0, 0},
10845      {3929248764, 0, 0},
10846      {3944781937, 0, 0},
10847      {3970432934, 0, 0},
10848      {4008405264, 0, 0},
10849      {4245257809, 0, 0},
10850      {4253051659, 0, 0},
10851      {1111111111111111111, 0, 0},
10852      {0, 6, 26},
10853      {0, 46, 24},
10854      {0, 64, 50},
10855      {0, 7, 17},
10856      {0, 40, 57},
10857      {0, 56, 49},
10858      {0, 34, 10},
10859      {0, 32, 61},
10860      {0, 36, 44},
10861      {0, 8, 43},
10862      {0, 4, 18},
10863      {0, 25, 23},
10864      {0, 9, 54},
10865      {0, 45, 41},
10866      {0, 13, 21},
10867      {0, 47, 31},
10868      {0, 39, 53},
10869      {0, 11, 3},
10870      {0, 29, 20},
10871      {0, 38, 58},
10872      {0, 37, 14},
10873      {0, 66, 52},
10874      {0, 67, 35},
10875      {0, 48, 68},
10876      {0, 1, 69},
10877      {0, 70, 28},
10878      {0, 27, 63},
10879      {0, 72, 71},
10880      {0, 74, 73},
10881      {0, 75, 60},
10882      {0, 77, 76},
10883      {0, 5, 51},
10884      {0, 15, 78},
10885      {0, 30, 79},
10886      {0, 55, 80},
10887      {0, 42, 81},
10888      {0, 83, 82},
10889      {0, 85, 84},
10890      {0, 86, 2},
10891      {0, 19, 16},
10892      {0, 87, 59},
10893      {0, 62, 88},
10894      {0, 90, 89},
10895      {0, 22, 91},
10896      {0, 93, 92},
10897      {0, 95, 94},
10898      {0, 97, 96},
10899      {0, 99, 98},
10900      {0, 101, 100},
10901      {0, 12, 102},
10902      {0, 104, 103},
10903      {0, 33, 105},
10904      {0, 107, 106},
10905      {0, 109, 108},
10906      {0, 111, 110},
10907      {0, 113, 112},
10908      {0, 115, 114},
10909      {0, 117, 116},
10910      {0, 119, 118},
10911      {0, 121, 120},
10912      {0, 123, 122},
10913      {0, 125, 124},
10914      {0, 127, 126},
10915      {0, 65, 128},
10916    }));
10917
10918    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFMul, 2), std::move(codec));
10919  }
10920
10921  {
10922    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(127, {
10923      {0, 0, 0},
10924      {13319433, 0, 0},
10925      {15502752, 0, 0},
10926      {162608772, 0, 0},
10927      {171307615, 0, 0},
10928      {296981500, 0, 0},
10929      {354479447, 0, 0},
10930      {413918748, 0, 0},
10931      {443490822, 0, 0},
10932      {487719832, 0, 0},
10933      {593829839, 0, 0},
10934      {615982737, 0, 0},
10935      {703543228, 0, 0},
10936      {810488476, 0, 0},
10937      {870594305, 0, 0},
10938      {875212982, 0, 0},
10939      {959681532, 0, 0},
10940      {1019457583, 0, 0},
10941      {1203545131, 0, 0},
10942      {1278448636, 0, 0},
10943      {1325348861, 0, 0},
10944      {1368383673, 0, 0},
10945      {1400019344, 0, 0},
10946      {1646147798, 0, 0},
10947      {1679946323, 0, 0},
10948      {1684282922, 0, 0},
10949      {1747355813, 0, 0},
10950      {1755648697, 0, 0},
10951      {1793544760, 0, 0},
10952      {1811839150, 0, 0},
10953      {1901166356, 0, 0},
10954      {1947620272, 0, 0},
10955      {1992893964, 0, 0},
10956      {2042001863, 0, 0},
10957      {2096388952, 0, 0},
10958      {2123388694, 0, 0},
10959      {2128251367, 0, 0},
10960      {2130747644, 0, 0},
10961      {2135340676, 0, 0},
10962      {2161102232, 0, 0},
10963      {2443959748, 0, 0},
10964      {2513230733, 0, 0},
10965      {2557754096, 0, 0},
10966      {2580096524, 0, 0},
10967      {2589449658, 0, 0},
10968      {2614879967, 0, 0},
10969      {2698156268, 0, 0},
10970      {2970183398, 0, 0},
10971      {3002890475, 0, 0},
10972      {3133016299, 0, 0},
10973      {3142155593, 0, 0},
10974      {3187066832, 0, 0},
10975      {3266548732, 0, 0},
10976      {3287039847, 0, 0},
10977      {3357301402, 0, 0},
10978      {3413713311, 0, 0},
10979      {3434076295, 0, 0},
10980      {3496407048, 0, 0},
10981      {3504158761, 0, 0},
10982      {3882634684, 0, 0},
10983      {3929248764, 0, 0},
10984      {3987079331, 0, 0},
10985      {4076840151, 0, 0},
10986      {4243119782, 0, 0},
10987      {1111111111111111111, 0, 0},
10988      {0, 31, 8},
10989      {0, 14, 56},
10990      {0, 7, 12},
10991      {0, 9, 30},
10992      {0, 42, 36},
10993      {0, 19, 11},
10994      {0, 22, 40},
10995      {0, 15, 3},
10996      {0, 57, 26},
10997      {0, 58, 61},
10998      {0, 55, 51},
10999      {0, 48, 34},
11000      {0, 20, 1},
11001      {0, 24, 23},
11002      {0, 46, 35},
11003      {0, 59, 49},
11004      {0, 21, 63},
11005      {0, 62, 44},
11006      {0, 6, 50},
11007      {0, 28, 18},
11008      {0, 66, 65},
11009      {0, 41, 32},
11010      {0, 39, 54},
11011      {0, 53, 67},
11012      {0, 68, 37},
11013      {0, 33, 69},
11014      {0, 43, 70},
11015      {0, 71, 38},
11016      {0, 72, 27},
11017      {0, 13, 47},
11018      {0, 45, 73},
11019      {0, 75, 74},
11020      {0, 76, 5},
11021      {0, 77, 17},
11022      {0, 79, 78},
11023      {0, 52, 80},
11024      {0, 2, 81},
11025      {0, 83, 82},
11026      {0, 85, 84},
11027      {0, 87, 86},
11028      {0, 4, 88},
11029      {0, 16, 29},
11030      {0, 90, 89},
11031      {0, 92, 91},
11032      {0, 94, 93},
11033      {0, 60, 95},
11034      {0, 97, 96},
11035      {0, 98, 10},
11036      {0, 25, 99},
11037      {0, 101, 100},
11038      {0, 103, 102},
11039      {0, 105, 104},
11040      {0, 107, 106},
11041      {0, 109, 108},
11042      {0, 111, 110},
11043      {0, 113, 112},
11044      {0, 115, 114},
11045      {0, 117, 116},
11046      {0, 119, 118},
11047      {0, 121, 120},
11048      {0, 123, 122},
11049      {0, 125, 124},
11050      {0, 64, 126},
11051    }));
11052
11053    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFMul, 3), std::move(codec));
11054  }
11055
11056  {
11057    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(9, {
11058      {0, 0, 0},
11059      {679771963, 0, 0},
11060      {1951208733, 0, 0},
11061      {2320303498, 0, 0},
11062      {3334207724, 0, 0},
11063      {1111111111111111111, 0, 0},
11064      {0, 4, 5},
11065      {0, 3, 6},
11066      {0, 7, 1},
11067      {0, 2, 8},
11068    }));
11069
11070    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFDiv, 0), std::move(codec));
11071  }
11072
11073  {
11074    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(153, {
11075      {0, 0, 0},
11076      {10142671, 0, 0},
11077      {27865391, 0, 0},
11078      {29517006, 0, 0},
11079      {41739659, 0, 0},
11080      {97231530, 0, 0},
11081      {171334650, 0, 0},
11082      {200553094, 0, 0},
11083      {257136089, 0, 0},
11084      {294390719, 0, 0},
11085      {375530199, 0, 0},
11086      {380957745, 0, 0},
11087      {388034151, 0, 0},
11088      {455591063, 0, 0},
11089      {462664429, 0, 0},
11090      {491456522, 0, 0},
11091      {502863753, 0, 0},
11092      {626480004, 0, 0},
11093      {643418617, 0, 0},
11094      {651464351, 0, 0},
11095      {701281393, 0, 0},
11096      {744817486, 0, 0},
11097      {783918780, 0, 0},
11098      {862784766, 0, 0},
11099      {930804377, 0, 0},
11100      {952536201, 0, 0},
11101      {955476870, 0, 0},
11102      {1043738701, 0, 0},
11103      {1047011733, 0, 0},
11104      {1080545747, 0, 0},
11105      {1137442027, 0, 0},
11106      {1235468610, 0, 0},
11107      {1412908157, 0, 0},
11108      {1431749301, 0, 0},
11109      {1434223270, 0, 0},
11110      {1440646342, 0, 0},
11111      {1508570930, 0, 0},
11112      {1510422521, 0, 0},
11113      {1548121999, 0, 0},
11114      {1582841441, 0, 0},
11115      {1612225949, 0, 0},
11116      {1665981878, 0, 0},
11117      {1680746207, 0, 0},
11118      {1696076631, 0, 0},
11119      {1702168830, 0, 0},
11120      {1761469971, 0, 0},
11121      {1799299383, 0, 0},
11122      {1910240213, 0, 0},
11123      {1917451875, 0, 0},
11124      {1945006185, 0, 0},
11125      {1998444837, 0, 0},
11126      {2045285083, 0, 0},
11127      {2217966239, 0, 0},
11128      {2279273489, 0, 0},
11129      {2289803479, 0, 0},
11130      {2348676810, 0, 0},
11131      {2353194283, 0, 0},
11132      {2403632109, 0, 0},
11133      {2409539315, 0, 0},
11134      {2414984922, 0, 0},
11135      {2477389837, 0, 0},
11136      {2524531022, 0, 0},
11137      {2573160348, 0, 0},
11138      {2639720559, 0, 0},
11139      {2773229577, 0, 0},
11140      {2796513469, 0, 0},
11141      {2881225774, 0, 0},
11142      {2890570341, 0, 0},
11143      {2952850186, 0, 0},
11144      {3023287679, 0, 0},
11145      {3118548424, 0, 0},
11146      {3877813395, 0, 0},
11147      {3931288033, 0, 0},
11148      {3972309363, 0, 0},
11149      {4117704995, 0, 0},
11150      {4140081844, 0, 0},
11151      {4258414038, 0, 0},
11152      {1111111111111111111, 0, 0},
11153      {0, 74, 53},
11154      {0, 58, 52},
11155      {0, 65, 60},
11156      {0, 41, 5},
11157      {0, 1, 67},
11158      {0, 24, 28},
11159      {0, 27, 26},
11160      {0, 55, 31},
11161      {0, 36, 61},
11162      {0, 13, 49},
11163      {0, 56, 48},
11164      {0, 16, 64},
11165      {0, 76, 42},
11166      {0, 45, 29},
11167      {0, 23, 6},
11168      {0, 72, 12},
11169      {0, 35, 19},
11170      {0, 20, 7},
11171      {0, 21, 46},
11172      {0, 71, 78},
11173      {0, 80, 79},
11174      {0, 47, 17},
11175      {0, 81, 70},
11176      {0, 34, 25},
11177      {0, 83, 82},
11178      {0, 85, 84},
11179      {0, 37, 86},
11180      {0, 87, 73},
11181      {0, 10, 4},
11182      {0, 40, 30},
11183      {0, 88, 57},
11184      {0, 54, 89},
11185      {0, 50, 90},
11186      {0, 11, 91},
11187      {0, 39, 15},
11188      {0, 59, 44},
11189      {0, 92, 66},
11190      {0, 69, 93},
11191      {0, 95, 94},
11192      {0, 14, 96},
11193      {0, 98, 97},
11194      {0, 62, 51},
11195      {0, 100, 99},
11196      {0, 102, 101},
11197      {0, 104, 103},
11198      {0, 32, 43},
11199      {0, 105, 38},
11200      {0, 107, 106},
11201      {0, 109, 108},
11202      {0, 22, 9},
11203      {0, 33, 110},
11204      {0, 2, 111},
11205      {0, 112, 3},
11206      {0, 114, 113},
11207      {0, 116, 115},
11208      {0, 68, 63},
11209      {0, 118, 117},
11210      {0, 120, 119},
11211      {0, 121, 8},
11212      {0, 123, 122},
11213      {0, 125, 124},
11214      {0, 127, 126},
11215      {0, 129, 128},
11216      {0, 131, 130},
11217      {0, 133, 132},
11218      {0, 75, 18},
11219      {0, 135, 134},
11220      {0, 137, 136},
11221      {0, 139, 138},
11222      {0, 141, 140},
11223      {0, 143, 142},
11224      {0, 145, 144},
11225      {0, 147, 146},
11226      {0, 149, 148},
11227      {0, 150, 77},
11228      {0, 152, 151},
11229    }));
11230
11231    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFDiv, 1), std::move(codec));
11232  }
11233
11234  {
11235    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(131, {
11236      {0, 0, 0},
11237      {5908395, 0, 0},
11238      {139011596, 0, 0},
11239      {296981500, 0, 0},
11240      {342615870, 0, 0},
11241      {370232173, 0, 0},
11242      {492958971, 0, 0},
11243      {528662843, 0, 0},
11244      {551924251, 0, 0},
11245      {604894932, 0, 0},
11246      {610429940, 0, 0},
11247      {780957373, 0, 0},
11248      {810488476, 0, 0},
11249      {872544165, 0, 0},
11250      {878733439, 0, 0},
11251      {918849409, 0, 0},
11252      {959681532, 0, 0},
11253      {1013756921, 0, 0},
11254      {1038982109, 0, 0},
11255      {1081611718, 0, 0},
11256      {1125913837, 0, 0},
11257      {1209418480, 0, 0},
11258      {1318081294, 0, 0},
11259      {1367301635, 0, 0},
11260      {1417425499, 0, 0},
11261      {1625742020, 0, 0},
11262      {1684282922, 0, 0},
11263      {1746004874, 0, 0},
11264      {1758287856, 0, 0},
11265      {1777640493, 0, 0},
11266      {2066323109, 0, 0},
11267      {2094550054, 0, 0},
11268      {2096388952, 0, 0},
11269      {2144962711, 0, 0},
11270      {2434845539, 0, 0},
11271      {2480811229, 0, 0},
11272      {2552825357, 0, 0},
11273      {2636946065, 0, 0},
11274      {2651956495, 0, 0},
11275      {2669086217, 0, 0},
11276      {2680819379, 0, 0},
11277      {2709694527, 0, 0},
11278      {2715304020, 0, 0},
11279      {2790648021, 0, 0},
11280      {2802261839, 0, 0},
11281      {2806296851, 0, 0},
11282      {2864543087, 0, 0},
11283      {2952260510, 0, 0},
11284      {2963184673, 0, 0},
11285      {3091876332, 0, 0},
11286      {3098991995, 0, 0},
11287      {3131890669, 0, 0},
11288      {3138977758, 0, 0},
11289      {3198541202, 0, 0},
11290      {3260579369, 0, 0},
11291      {3263841912, 0, 0},
11292      {3335250889, 0, 0},
11293      {3345856521, 0, 0},
11294      {3381478137, 0, 0},
11295      {3489269251, 0, 0},
11296      {3510242586, 0, 0},
11297      {3820814597, 0, 0},
11298      {3900859293, 0, 0},
11299      {4041974454, 0, 0},
11300      {4244540017, 0, 0},
11301      {4265894873, 0, 0},
11302      {1111111111111111111, 0, 0},
11303      {0, 15, 52},
11304      {0, 20, 18},
11305      {0, 39, 29},
11306      {0, 9, 43},
11307      {0, 22, 13},
11308      {0, 46, 27},
11309      {0, 51, 48},
11310      {0, 19, 57},
11311      {0, 34, 24},
11312      {0, 64, 59},
11313      {0, 5, 7},
11314      {0, 38, 37},
11315      {0, 45, 47},
11316      {0, 2, 56},
11317      {0, 67, 8},
11318      {0, 17, 68},
11319      {0, 69, 61},
11320      {0, 70, 6},
11321      {0, 55, 54},
11322      {0, 72, 71},
11323      {0, 4, 73},
11324      {0, 74, 40},
11325      {0, 30, 11},
11326      {0, 42, 36},
11327      {0, 75, 58},
11328      {0, 31, 76},
11329      {0, 1, 77},
11330      {0, 44, 14},
11331      {0, 78, 50},
11332      {0, 79, 23},
11333      {0, 26, 80},
11334      {0, 81, 12},
11335      {0, 83, 82},
11336      {0, 84, 21},
11337      {0, 32, 85},
11338      {0, 87, 86},
11339      {0, 35, 10},
11340      {0, 88, 62},
11341      {0, 90, 89},
11342      {0, 41, 91},
11343      {0, 92, 53},
11344      {0, 93, 63},
11345      {0, 95, 94},
11346      {0, 33, 96},
11347      {0, 98, 97},
11348      {0, 99, 3},
11349      {0, 100, 28},
11350      {0, 101, 49},
11351      {0, 102, 60},
11352      {0, 104, 103},
11353      {0, 106, 105},
11354      {0, 108, 107},
11355      {0, 110, 109},
11356      {0, 65, 111},
11357      {0, 25, 112},
11358      {0, 114, 113},
11359      {0, 116, 115},
11360      {0, 117, 16},
11361      {0, 119, 118},
11362      {0, 121, 120},
11363      {0, 123, 122},
11364      {0, 125, 124},
11365      {0, 127, 126},
11366      {0, 128, 66},
11367      {0, 130, 129},
11368    }));
11369
11370    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFDiv, 2), std::move(codec));
11371  }
11372
11373  {
11374    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(95, {
11375      {0, 0, 0},
11376      {116093251, 0, 0},
11377      {149720480, 0, 0},
11378      {183103444, 0, 0},
11379      {251209228, 0, 0},
11380      {296981500, 0, 0},
11381      {357505993, 0, 0},
11382      {394654115, 0, 0},
11383      {410274915, 0, 0},
11384      {452208841, 0, 0},
11385      {788046331, 0, 0},
11386      {797934924, 0, 0},
11387      {810488476, 0, 0},
11388      {1144188012, 0, 0},
11389      {1220127364, 0, 0},
11390      {1321616112, 0, 0},
11391      {1324351672, 0, 0},
11392      {1348149915, 0, 0},
11393      {1459457331, 0, 0},
11394      {1465623797, 0, 0},
11395      {1531216990, 0, 0},
11396      {1543672828, 0, 0},
11397      {1578775276, 0, 0},
11398      {1738815671, 0, 0},
11399      {1904128160, 0, 0},
11400      {2071351379, 0, 0},
11401      {2119793999, 0, 0},
11402      {2274779301, 0, 0},
11403      {2291766425, 0, 0},
11404      {2357410109, 0, 0},
11405      {2438466459, 0, 0},
11406      {2496463830, 0, 0},
11407      {2630220147, 0, 0},
11408      {2682510803, 0, 0},
11409      {3047649911, 0, 0},
11410      {3085703811, 0, 0},
11411      {3235459678, 0, 0},
11412      {3261703164, 0, 0},
11413      {3331487616, 0, 0},
11414      {3462674048, 0, 0},
11415      {3570219049, 0, 0},
11416      {3585315836, 0, 0},
11417      {3602108619, 0, 0},
11418      {3724004880, 0, 0},
11419      {3931641900, 0, 0},
11420      {3955205564, 0, 0},
11421      {4073492988, 0, 0},
11422      {4127308103, 0, 0},
11423      {1111111111111111111, 0, 0},
11424      {0, 24, 37},
11425      {0, 13, 38},
11426      {0, 17, 39},
11427      {0, 35, 23},
11428      {0, 18, 36},
11429      {0, 46, 19},
11430      {0, 20, 33},
11431      {0, 47, 6},
11432      {0, 1, 45},
11433      {0, 3, 27},
11434      {0, 8, 49},
11435      {0, 50, 29},
11436      {0, 10, 51},
11437      {0, 43, 31},
11438      {0, 53, 52},
11439      {0, 54, 26},
11440      {0, 7, 55},
11441      {0, 56, 32},
11442      {0, 57, 41},
11443      {0, 59, 58},
11444      {0, 61, 60},
11445      {0, 63, 62},
11446      {0, 64, 25},
11447      {0, 2, 34},
11448      {0, 65, 14},
11449      {0, 67, 66},
11450      {0, 12, 21},
11451      {0, 9, 68},
11452      {0, 69, 16},
11453      {0, 71, 70},
11454      {0, 72, 44},
11455      {0, 11, 73},
11456      {0, 74, 30},
11457      {0, 4, 75},
11458      {0, 28, 15},
11459      {0, 76, 42},
11460      {0, 5, 77},
11461      {0, 78, 40},
11462      {0, 80, 79},
11463      {0, 82, 81},
11464      {0, 22, 83},
11465      {0, 85, 84},
11466      {0, 86, 48},
11467      {0, 88, 87},
11468      {0, 90, 89},
11469      {0, 92, 91},
11470      {0, 94, 93},
11471    }));
11472
11473    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpFDiv, 3), std::move(codec));
11474  }
11475
11476  {
11477    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(7, {
11478      {0, 0, 0},
11479      {679771963, 0, 0},
11480      {2320303498, 0, 0},
11481      {3334207724, 0, 0},
11482      {1111111111111111111, 0, 0},
11483      {0, 3, 4},
11484      {0, 2, 5},
11485      {0, 1, 6},
11486    }));
11487
11488    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpVectorTimesScalar, 0), std::move(codec));
11489  }
11490
11491  {
11492    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(121, {
11493      {0, 0, 0},
11494      {14113753, 0, 0},
11495      {102358168, 0, 0},
11496      {179458548, 0, 0},
11497      {330388453, 0, 0},
11498      {386525753, 0, 0},
11499      {470277359, 0, 0},
11500      {497658126, 0, 0},
11501      {508007510, 0, 0},
11502      {815034111, 0, 0},
11503      {826214242, 0, 0},
11504      {849867303, 0, 0},
11505      {885645401, 0, 0},
11506      {939415664, 0, 0},
11507      {968885186, 0, 0},
11508      {1105835505, 0, 0},
11509      {1159301677, 0, 0},
11510      {1461897718, 0, 0},
11511      {1482251215, 0, 0},
11512      {1486206763, 0, 0},
11513      {1527762373, 0, 0},
11514      {1558990974, 0, 0},
11515      {1618754372, 0, 0},
11516      {1669959736, 0, 0},
11517      {1752686878, 0, 0},
11518      {2004567202, 0, 0},
11519      {2055637638, 0, 0},
11520      {2113506324, 0, 0},
11521      {2154320787, 0, 0},
11522      {2162274327, 0, 0},
11523      {2306141594, 0, 0},
11524      {2345566651, 0, 0},
11525      {2457690657, 0, 0},
11526      {2473053808, 0, 0},
11527      {2500422644, 0, 0},
11528      {2504802016, 0, 0},
11529      {2506771164, 0, 0},
11530      {2793529873, 0, 0},
11531      {2801333547, 0, 0},
11532      {2879050471, 0, 0},
11533      {3032677281, 0, 0},
11534      {3045470312, 0, 0},
11535      {3181546731, 0, 0},
11536      {3240977890, 0, 0},
11537      {3262572726, 0, 0},
11538      {3307100165, 0, 0},
11539      {3425841570, 0, 0},
11540      {3560552546, 0, 0},
11541      {3641833815, 0, 0},
11542      {3652695478, 0, 0},
11543      {3782362128, 0, 0},
11544      {3797961332, 0, 0},
11545      {3837583704, 0, 0},
11546      {3886529747, 0, 0},
11547      {3907920335, 0, 0},
11548      {4043078107, 0, 0},
11549      {4044928561, 0, 0},
11550      {4069720347, 0, 0},
11551      {4180570743, 0, 0},
11552      {4245743275, 0, 0},
11553      {4285201458, 0, 0},
11554      {1111111111111111111, 0, 0},
11555      {0, 44, 28},
11556      {0, 13, 45},
11557      {0, 19, 15},
11558      {0, 32, 31},
11559      {0, 43, 42},
11560      {0, 16, 52},
11561      {0, 33, 22},
11562      {0, 57, 55},
11563      {0, 24, 21},
11564      {0, 2, 59},
11565      {0, 10, 3},
11566      {0, 18, 12},
11567      {0, 41, 39},
11568      {0, 60, 46},
11569      {0, 4, 25},
11570      {0, 58, 49},
11571      {0, 14, 1},
11572      {0, 27, 17},
11573      {0, 50, 36},
11574      {0, 23, 54},
11575      {0, 5, 30},
11576      {0, 11, 7},
11577      {0, 38, 29},
11578      {0, 37, 8},
11579      {0, 48, 56},
11580      {0, 20, 6},
11581      {0, 34, 26},
11582      {0, 63, 62},
11583      {0, 65, 64},
11584      {0, 67, 66},
11585      {0, 69, 68},
11586      {0, 71, 70},
11587      {0, 73, 72},
11588      {0, 75, 74},
11589      {0, 9, 76},
11590      {0, 78, 77},
11591      {0, 80, 79},
11592      {0, 82, 81},
11593      {0, 84, 83},
11594      {0, 40, 35},
11595      {0, 85, 47},
11596      {0, 86, 51},
11597      {0, 88, 87},
11598      {0, 90, 89},
11599      {0, 53, 91},
11600      {0, 93, 92},
11601      {0, 95, 94},
11602      {0, 97, 96},
11603      {0, 99, 98},
11604      {0, 101, 100},
11605      {0, 103, 102},
11606      {0, 105, 104},
11607      {0, 107, 106},
11608      {0, 109, 108},
11609      {0, 111, 110},
11610      {0, 113, 112},
11611      {0, 115, 114},
11612      {0, 117, 116},
11613      {0, 119, 118},
11614      {0, 61, 120},
11615    }));
11616
11617    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpVectorTimesScalar, 1), std::move(codec));
11618  }
11619
11620  {
11621    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(127, {
11622      {0, 0, 0},
11623      {100979271, 0, 0},
11624      {269576093, 0, 0},
11625      {314809953, 0, 0},
11626      {354479447, 0, 0},
11627      {497658126, 0, 0},
11628      {882718761, 0, 0},
11629      {968885186, 0, 0},
11630      {973908139, 0, 0},
11631      {1019457583, 0, 0},
11632      {1191015885, 0, 0},
11633      {1266262705, 0, 0},
11634      {1310404265, 0, 0},
11635      {1325348861, 0, 0},
11636      {1367301635, 0, 0},
11637      {1368383673, 0, 0},
11638      {1570165302, 0, 0},
11639      {1618544981, 0, 0},
11640      {1646147798, 0, 0},
11641      {1674464100, 0, 0},
11642      {1679946323, 0, 0},
11643      {1686512349, 0, 0},
11644      {1766401548, 0, 0},
11645      {1774052499, 0, 0},
11646      {1788301425, 0, 0},
11647      {2023008475, 0, 0},
11648      {2055836767, 0, 0},
11649      {2096388952, 0, 0},
11650      {2123388694, 0, 0},
11651      {2129301998, 0, 0},
11652      {2212501241, 0, 0},
11653      {2274226560, 0, 0},
11654      {2362972044, 0, 0},
11655      {2378763734, 0, 0},
11656      {2506771164, 0, 0},
11657      {2558655180, 0, 0},
11658      {2622612602, 0, 0},
11659      {2660843182, 0, 0},
11660      {2698156268, 0, 0},
11661      {2801333547, 0, 0},
11662      {2850246066, 0, 0},
11663      {2895151306, 0, 0},
11664      {2970183398, 0, 0},
11665      {2986830770, 0, 0},
11666      {3001444829, 0, 0},
11667      {3133016299, 0, 0},
11668      {3152745753, 0, 0},
11669      {3187066832, 0, 0},
11670      {3261122899, 0, 0},
11671      {3496407048, 0, 0},
11672      {3513669836, 0, 0},
11673      {3536390697, 0, 0},
11674      {3570411982, 0, 0},
11675      {3653838348, 0, 0},
11676      {3713290482, 0, 0},
11677      {3858973601, 0, 0},
11678      {3873587660, 0, 0},
11679      {3877583949, 0, 0},
11680      {3882634684, 0, 0},
11681      {3907920335, 0, 0},
11682      {3997432565, 0, 0},
11683      {4169226615, 0, 0},
11684      {4219766939, 0, 0},
11685      {4243119782, 0, 0},
11686      {1111111111111111111, 0, 0},
11687      {0, 25, 12},
11688      {0, 41, 29},
11689      {0, 56, 44},
11690      {0, 1, 3},
11691      {0, 48, 24},
11692      {0, 33, 60},
11693      {0, 8, 50},
11694      {0, 35, 21},
11695      {0, 11, 7},
11696      {0, 34, 23},
11697      {0, 59, 57},
11698      {0, 10, 62},
11699      {0, 40, 2},
11700      {0, 5, 49},
11701      {0, 39, 17},
11702      {0, 9, 61},
11703      {0, 30, 6},
11704      {0, 19, 46},
11705      {0, 53, 54},
11706      {0, 31, 52},
11707      {0, 55, 43},
11708      {0, 66, 65},
11709      {0, 16, 67},
11710      {0, 51, 68},
11711      {0, 70, 69},
11712      {0, 26, 36},
11713      {0, 72, 71},
11714      {0, 74, 73},
11715      {0, 76, 75},
11716      {0, 78, 77},
11717      {0, 80, 79},
11718      {0, 82, 81},
11719      {0, 37, 83},
11720      {0, 85, 84},
11721      {0, 13, 86},
11722      {0, 20, 18},
11723      {0, 38, 28},
11724      {0, 58, 45},
11725      {0, 87, 63},
11726      {0, 15, 88},
11727      {0, 32, 22},
11728      {0, 89, 4},
11729      {0, 90, 14},
11730      {0, 91, 42},
11731      {0, 93, 92},
11732      {0, 95, 94},
11733      {0, 97, 96},
11734      {0, 99, 98},
11735      {0, 101, 100},
11736      {0, 103, 102},
11737      {0, 105, 104},
11738      {0, 107, 106},
11739      {0, 109, 108},
11740      {0, 111, 110},
11741      {0, 113, 112},
11742      {0, 115, 114},
11743      {0, 27, 47},
11744      {0, 117, 116},
11745      {0, 119, 118},
11746      {0, 121, 120},
11747      {0, 123, 122},
11748      {0, 125, 124},
11749      {0, 126, 64},
11750    }));
11751
11752    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpVectorTimesScalar, 2), std::move(codec));
11753  }
11754
11755  {
11756    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(137, {
11757      {0, 0, 0},
11758      {11698369, 0, 0},
11759      {146392076, 0, 0},
11760      {151810803, 0, 0},
11761      {223800276, 0, 0},
11762      {227103506, 0, 0},
11763      {253329281, 0, 0},
11764      {346929928, 0, 0},
11765      {461040879, 0, 0},
11766      {629859130, 0, 0},
11767      {680157484, 0, 0},
11768      {783918780, 0, 0},
11769      {810488476, 0, 0},
11770      {824323032, 0, 0},
11771      {870594305, 0, 0},
11772      {959681532, 0, 0},
11773      {975807626, 0, 0},
11774      {1081642571, 0, 0},
11775      {1084574846, 0, 0},
11776      {1094817798, 0, 0},
11777      {1141965917, 0, 0},
11778      {1164137269, 0, 0},
11779      {1166917451, 0, 0},
11780      {1204787336, 0, 0},
11781      {1232501371, 0, 0},
11782      {1318479490, 0, 0},
11783      {1369818198, 0, 0},
11784      {1372785527, 0, 0},
11785      {1526654696, 0, 0},
11786      {1543672828, 0, 0},
11787      {1548121999, 0, 0},
11788      {1635292159, 0, 0},
11789      {1641070431, 0, 0},
11790      {1684282922, 0, 0},
11791      {1767704813, 0, 0},
11792      {1781765116, 0, 0},
11793      {1838763297, 0, 0},
11794      {1901166356, 0, 0},
11795      {1904846533, 0, 0},
11796      {2011183308, 0, 0},
11797      {2032069771, 0, 0},
11798      {2071351379, 0, 0},
11799      {2087004702, 0, 0},
11800      {2244928358, 0, 0},
11801      {2314864456, 0, 0},
11802      {2374216296, 0, 0},
11803      {2394332122, 0, 0},
11804      {2443610186, 0, 0},
11805      {2524697596, 0, 0},
11806      {2526961521, 0, 0},
11807      {2568098594, 0, 0},
11808      {2807907995, 0, 0},
11809      {3103302036, 0, 0},
11810      {3117071189, 0, 0},
11811      {3188115516, 0, 0},
11812      {3417584874, 0, 0},
11813      {3554463148, 0, 0},
11814      {3561482820, 0, 0},
11815      {3691770462, 0, 0},
11816      {3729929345, 0, 0},
11817      {3733675151, 0, 0},
11818      {3831290364, 0, 0},
11819      {3866493821, 0, 0},
11820      {3929248764, 0, 0},
11821      {4060703604, 0, 0},
11822      {4092487128, 0, 0},
11823      {4167600590, 0, 0},
11824      {4214779116, 0, 0},
11825      {4248015868, 0, 0},
11826      {1111111111111111111, 0, 0},
11827      {0, 36, 13},
11828      {0, 49, 60},
11829      {0, 51, 9},
11830      {0, 3, 62},
11831      {0, 67, 41},
11832      {0, 4, 31},
11833      {0, 66, 5},
11834      {0, 55, 32},
11835      {0, 2, 1},
11836      {0, 30, 16},
11837      {0, 7, 38},
11838      {0, 19, 10},
11839      {0, 34, 20},
11840      {0, 45, 46},
11841      {0, 22, 11},
11842      {0, 25, 23},
11843      {0, 40, 39},
11844      {0, 21, 57},
11845      {0, 6, 35},
11846      {0, 61, 8},
11847      {0, 52, 26},
11848      {0, 70, 59},
11849      {0, 71, 14},
11850      {0, 68, 47},
11851      {0, 73, 72},
11852      {0, 29, 74},
11853      {0, 76, 75},
11854      {0, 77, 17},
11855      {0, 79, 78},
11856      {0, 81, 80},
11857      {0, 82, 18},
11858      {0, 83, 42},
11859      {0, 85, 84},
11860      {0, 87, 86},
11861      {0, 27, 37},
11862      {0, 53, 43},
11863      {0, 89, 88},
11864      {0, 64, 54},
11865      {0, 90, 65},
11866      {0, 92, 91},
11867      {0, 58, 93},
11868      {0, 56, 48},
11869      {0, 94, 28},
11870      {0, 96, 95},
11871      {0, 98, 97},
11872      {0, 44, 99},
11873      {0, 101, 100},
11874      {0, 15, 12},
11875      {0, 103, 102},
11876      {0, 104, 33},
11877      {0, 106, 105},
11878      {0, 108, 107},
11879      {0, 24, 109},
11880      {0, 111, 110},
11881      {0, 113, 112},
11882      {0, 114, 50},
11883      {0, 116, 115},
11884      {0, 118, 117},
11885      {0, 120, 119},
11886      {0, 122, 121},
11887      {0, 124, 123},
11888      {0, 126, 125},
11889      {0, 128, 127},
11890      {0, 129, 63},
11891      {0, 131, 130},
11892      {0, 133, 132},
11893      {0, 135, 134},
11894      {0, 136, 69},
11895    }));
11896
11897    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpVectorTimesScalar, 3), std::move(codec));
11898  }
11899
11900  {
11901    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
11902      {0, 0, 0},
11903      {1951208733, 0, 0},
11904      {1111111111111111111, 0, 0},
11905      {0, 1, 2},
11906    }));
11907
11908    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpDot, 0), std::move(codec));
11909  }
11910
11911  {
11912    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(97, {
11913      {0, 0, 0},
11914      {78001013, 0, 0},
11915      {170690025, 0, 0},
11916      {206688607, 0, 0},
11917      {443490822, 0, 0},
11918      {461476226, 0, 0},
11919      {537830163, 0, 0},
11920      {669982125, 0, 0},
11921      {790502615, 0, 0},
11922      {805072272, 0, 0},
11923      {1173092699, 0, 0},
11924      {1220643281, 0, 0},
11925      {1448448666, 0, 0},
11926      {1466804584, 0, 0},
11927      {1473411044, 0, 0},
11928      {1515695460, 0, 0},
11929      {1587730355, 0, 0},
11930      {1625742020, 0, 0},
11931      {2071351379, 0, 0},
11932      {2250055803, 0, 0},
11933      {2291766425, 0, 0},
11934      {2416108131, 0, 0},
11935      {2427834344, 0, 0},
11936      {2436009347, 0, 0},
11937      {2455417440, 0, 0},
11938      {2480811229, 0, 0},
11939      {2654325647, 0, 0},
11940      {2919796598, 0, 0},
11941      {3047649911, 0, 0},
11942      {3088511797, 0, 0},
11943      {3104643263, 0, 0},
11944      {3198541202, 0, 0},
11945      {3204986803, 0, 0},
11946      {3272233597, 0, 0},
11947      {3383007207, 0, 0},
11948      {3602108619, 0, 0},
11949      {3622349409, 0, 0},
11950      {3714664910, 0, 0},
11951      {3717942504, 0, 0},
11952      {3732000233, 0, 0},
11953      {3759072440, 0, 0},
11954      {3765247327, 0, 0},
11955      {3805423332, 0, 0},
11956      {3829325073, 0, 0},
11957      {3866493821, 0, 0},
11958      {4058280485, 0, 0},
11959      {4061558677, 0, 0},
11960      {4148979936, 0, 0},
11961      {4155586396, 0, 0},
11962      {1111111111111111111, 0, 0},
11963      {0, 13, 38},
11964      {0, 39, 14},
11965      {0, 44, 9},
11966      {0, 48, 47},
11967      {0, 23, 15},
11968      {0, 33, 25},
11969      {0, 1, 42},
11970      {0, 5, 46},
11971      {0, 31, 3},
11972      {0, 36, 28},
11973      {0, 16, 12},
11974      {0, 32, 22},
11975      {0, 41, 21},
11976      {0, 6, 50},
11977      {0, 51, 29},
11978      {0, 45, 34},
11979      {0, 37, 8},
11980      {0, 19, 52},
11981      {0, 11, 4},
11982      {0, 43, 40},
11983      {0, 27, 53},
11984      {0, 54, 10},
11985      {0, 24, 55},
11986      {0, 57, 56},
11987      {0, 58, 26},
11988      {0, 2, 59},
11989      {0, 61, 60},
11990      {0, 63, 62},
11991      {0, 65, 64},
11992      {0, 20, 66},
11993      {0, 30, 35},
11994      {0, 67, 17},
11995      {0, 68, 7},
11996      {0, 70, 69},
11997      {0, 71, 18},
11998      {0, 73, 72},
11999      {0, 75, 74},
12000      {0, 77, 76},
12001      {0, 79, 78},
12002      {0, 81, 80},
12003      {0, 83, 82},
12004      {0, 85, 84},
12005      {0, 87, 86},
12006      {0, 89, 88},
12007      {0, 91, 90},
12008      {0, 93, 92},
12009      {0, 95, 94},
12010      {0, 49, 96},
12011    }));
12012
12013    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpDot, 1), std::move(codec));
12014  }
12015
12016  {
12017    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(117, {
12018      {0, 0, 0},
12019      {50385656, 0, 0},
12020      {181902171, 0, 0},
12021      {560078433, 0, 0},
12022      {615982737, 0, 0},
12023      {674428451, 0, 0},
12024      {837715723, 0, 0},
12025      {886972033, 0, 0},
12026      {900101778, 0, 0},
12027      {983299427, 0, 0},
12028      {1237148906, 0, 0},
12029      {1364157225, 0, 0},
12030      {1367301635, 0, 0},
12031      {1380160211, 0, 0},
12032      {1451831482, 0, 0},
12033      {1499923635, 0, 0},
12034      {1570165302, 0, 0},
12035      {1735295265, 0, 0},
12036      {1766401548, 0, 0},
12037      {1796311149, 0, 0},
12038      {1826456251, 0, 0},
12039      {1839669171, 0, 0},
12040      {2012838864, 0, 0},
12041      {2024071551, 0, 0},
12042      {2096388952, 0, 0},
12043      {2161102232, 0, 0},
12044      {2197874825, 0, 0},
12045      {2279700640, 0, 0},
12046      {2289183712, 0, 0},
12047      {2351620600, 0, 0},
12048      {2362972044, 0, 0},
12049      {2472176885, 0, 0},
12050      {2477434291, 0, 0},
12051      {2530899578, 0, 0},
12052      {2531826164, 0, 0},
12053      {2558133383, 0, 0},
12054      {2589449658, 0, 0},
12055      {2621255555, 0, 0},
12056      {2622612602, 0, 0},
12057      {2872580757, 0, 0},
12058      {2881302403, 0, 0},
12059      {2891091137, 0, 0},
12060      {2923708820, 0, 0},
12061      {2936040203, 0, 0},
12062      {2970183398, 0, 0},
12063      {3187066832, 0, 0},
12064      {3224952074, 0, 0},
12065      {3244383472, 0, 0},
12066      {3261122899, 0, 0},
12067      {3362830643, 0, 0},
12068      {3538158875, 0, 0},
12069      {3635542517, 0, 0},
12070      {3682213068, 0, 0},
12071      {3721902098, 0, 0},
12072      {3826846522, 0, 0},
12073      {3877583949, 0, 0},
12074      {3997432565, 0, 0},
12075      {4093615095, 0, 0},
12076      {4106828015, 0, 0},
12077      {1111111111111111111, 0, 0},
12078      {0, 52, 28},
12079      {0, 33, 20},
12080      {0, 46, 57},
12081      {0, 47, 54},
12082      {0, 21, 17},
12083      {0, 31, 58},
12084      {0, 12, 53},
12085      {0, 29, 3},
12086      {0, 35, 34},
12087      {0, 48, 41},
12088      {0, 8, 5},
12089      {0, 7, 55},
12090      {0, 37, 32},
12091      {0, 60, 38},
12092      {0, 61, 16},
12093      {0, 14, 62},
12094      {0, 23, 63},
12095      {0, 13, 19},
12096      {0, 64, 9},
12097      {0, 65, 39},
12098      {0, 2, 66},
12099      {0, 67, 42},
12100      {0, 69, 68},
12101      {0, 25, 70},
12102      {0, 1, 49},
12103      {0, 6, 71},
12104      {0, 72, 15},
12105      {0, 73, 11},
12106      {0, 75, 74},
12107      {0, 77, 76},
12108      {0, 4, 78},
12109      {0, 56, 50},
12110      {0, 80, 79},
12111      {0, 10, 81},
12112      {0, 83, 82},
12113      {0, 85, 84},
12114      {0, 86, 27},
12115      {0, 43, 40},
12116      {0, 88, 87},
12117      {0, 44, 24},
12118      {0, 30, 89},
12119      {0, 51, 36},
12120      {0, 45, 90},
12121      {0, 18, 91},
12122      {0, 93, 92},
12123      {0, 22, 94},
12124      {0, 26, 95},
12125      {0, 97, 96},
12126      {0, 99, 98},
12127      {0, 101, 100},
12128      {0, 103, 102},
12129      {0, 105, 104},
12130      {0, 107, 106},
12131      {0, 109, 108},
12132      {0, 111, 110},
12133      {0, 113, 112},
12134      {0, 59, 114},
12135      {0, 116, 115},
12136    }));
12137
12138    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpDot, 2), std::move(codec));
12139  }
12140
12141  {
12142    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(179, {
12143      {0, 0, 0},
12144      {27177503, 0, 0},
12145      {50385656, 0, 0},
12146      {129748122, 0, 0},
12147      {139011596, 0, 0},
12148      {162608772, 0, 0},
12149      {181902171, 0, 0},
12150      {225200779, 0, 0},
12151      {342159236, 0, 0},
12152      {386293029, 0, 0},
12153      {429023543, 0, 0},
12154      {443558693, 0, 0},
12155      {504514034, 0, 0},
12156      {615982737, 0, 0},
12157      {669812542, 0, 0},
12158      {674428451, 0, 0},
12159      {837715723, 0, 0},
12160      {861753115, 0, 0},
12161      {875212982, 0, 0},
12162      {876867882, 0, 0},
12163      {899320334, 0, 0},
12164      {900101778, 0, 0},
12165      {938517572, 0, 0},
12166      {1347339159, 0, 0},
12167      {1356063462, 0, 0},
12168      {1373856501, 0, 0},
12169      {1376656865, 0, 0},
12170      {1451831482, 0, 0},
12171      {1522979646, 0, 0},
12172      {1548491889, 0, 0},
12173      {1570165302, 0, 0},
12174      {1735295265, 0, 0},
12175      {1747355813, 0, 0},
12176      {1766401548, 0, 0},
12177      {1871105284, 0, 0},
12178      {1918742169, 0, 0},
12179      {1922045399, 0, 0},
12180      {1978689945, 0, 0},
12181      {2024071551, 0, 0},
12182      {2059975069, 0, 0},
12183      {2076833303, 0, 0},
12184      {2096388952, 0, 0},
12185      {2181030375, 0, 0},
12186      {2197874825, 0, 0},
12187      {2362972044, 0, 0},
12188      {2414725163, 0, 0},
12189      {2517964682, 0, 0},
12190      {2564745684, 0, 0},
12191      {2577387676, 0, 0},
12192      {2589449658, 0, 0},
12193      {2604242419, 0, 0},
12194      {2683080096, 0, 0},
12195      {2696349144, 0, 0},
12196      {2763960513, 0, 0},
12197      {2817823941, 0, 0},
12198      {2852854788, 0, 0},
12199      {2891091137, 0, 0},
12200      {2919626325, 0, 0},
12201      {2923708820, 0, 0},
12202      {2936040203, 0, 0},
12203      {2963744582, 0, 0},
12204      {2970183398, 0, 0},
12205      {2984459037, 0, 0},
12206      {2996594997, 0, 0},
12207      {3015046341, 0, 0},
12208      {3055195668, 0, 0},
12209      {3127329373, 0, 0},
12210      {3187066832, 0, 0},
12211      {3193597927, 0, 0},
12212      {3200890815, 0, 0},
12213      {3224258475, 0, 0},
12214      {3224480461, 0, 0},
12215      {3261122899, 0, 0},
12216      {3609540589, 0, 0},
12217      {3619404941, 0, 0},
12218      {3619626927, 0, 0},
12219      {3727034815, 0, 0},
12220      {3742724777, 0, 0},
12221      {3742946763, 0, 0},
12222      {3836179806, 0, 0},
12223      {3913885196, 0, 0},
12224      {3927338499, 0, 0},
12225      {3927466635, 0, 0},
12226      {3997432565, 0, 0},
12227      {3999472204, 0, 0},
12228      {4010499223, 0, 0},
12229      {4032662899, 0, 0},
12230      {4110915453, 0, 0},
12231      {4145966869, 0, 0},
12232      {4228303141, 0, 0},
12233      {1111111111111111111, 0, 0},
12234      {0, 23, 87},
12235      {0, 9, 28},
12236      {0, 42, 17},
12237      {0, 74, 70},
12238      {0, 86, 77},
12239      {0, 18, 5},
12240      {0, 31, 32},
12241      {0, 34, 3},
12242      {0, 38, 68},
12243      {0, 50, 29},
12244      {0, 72, 62},
12245      {0, 21, 15},
12246      {0, 14, 54},
12247      {0, 56, 22},
12248      {0, 48, 88},
12249      {0, 2, 76},
12250      {0, 6, 47},
12251      {0, 26, 79},
12252      {0, 65, 12},
12253      {0, 37, 81},
12254      {0, 91, 60},
12255      {0, 30, 92},
12256      {0, 25, 7},
12257      {0, 45, 40},
12258      {0, 66, 52},
12259      {0, 71, 69},
12260      {0, 78, 75},
12261      {0, 84, 82},
12262      {0, 94, 93},
12263      {0, 27, 95},
12264      {0, 97, 96},
12265      {0, 99, 98},
12266      {0, 100, 39},
12267      {0, 55, 101},
12268      {0, 58, 102},
12269      {0, 89, 103},
12270      {0, 35, 11},
12271      {0, 104, 36},
12272      {0, 53, 10},
12273      {0, 1, 64},
12274      {0, 73, 20},
12275      {0, 105, 13},
12276      {0, 107, 106},
12277      {0, 8, 16},
12278      {0, 24, 19},
12279      {0, 85, 63},
12280      {0, 109, 108},
12281      {0, 111, 110},
12282      {0, 4, 112},
12283      {0, 114, 113},
12284      {0, 116, 115},
12285      {0, 118, 117},
12286      {0, 83, 119},
12287      {0, 121, 120},
12288      {0, 123, 122},
12289      {0, 49, 44},
12290      {0, 124, 57},
12291      {0, 125, 59},
12292      {0, 126, 67},
12293      {0, 128, 127},
12294      {0, 130, 129},
12295      {0, 132, 131},
12296      {0, 134, 133},
12297      {0, 135, 51},
12298      {0, 137, 136},
12299      {0, 138, 61},
12300      {0, 43, 41},
12301      {0, 140, 139},
12302      {0, 142, 141},
12303      {0, 144, 143},
12304      {0, 146, 145},
12305      {0, 148, 147},
12306      {0, 149, 33},
12307      {0, 80, 150},
12308      {0, 152, 151},
12309      {0, 154, 153},
12310      {0, 156, 155},
12311      {0, 158, 157},
12312      {0, 160, 159},
12313      {0, 162, 161},
12314      {0, 164, 163},
12315      {0, 166, 165},
12316      {0, 168, 167},
12317      {0, 46, 169},
12318      {0, 171, 170},
12319      {0, 90, 172},
12320      {0, 174, 173},
12321      {0, 176, 175},
12322      {0, 178, 177},
12323    }));
12324
12325    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpDot, 3), std::move(codec));
12326  }
12327
12328  {
12329    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
12330      {0, 0, 0},
12331      {1036475267, 0, 0},
12332      {1111111111111111111, 0, 0},
12333      {0, 1, 2},
12334    }));
12335
12336    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpLabel, 0), std::move(codec));
12337  }
12338
12339  {
12340    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(3, {
12341      {0, 0, 0},
12342      {1036475267, 0, 0},
12343      {1111111111111111111, 0, 0},
12344      {0, 1, 2},
12345    }));
12346
12347    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpBranch, 0), std::move(codec));
12348  }
12349
12350  {
12351    std::unique_ptr<HuffmanCodec<uint64_t>> codec(new HuffmanCodec<uint64_t>(119, {
12352      {0, 0, 0},
12353      {57149555, 0, 0},
12354      {139011596, 0, 0},
12355      {255835594, 0, 0},
12356      {330249537, 0, 0},
12357      {388686774, 0, 0},
12358      {508217552, 0, 0},
12359      {550831114, 0, 0},
12360      {559246409, 0, 0},
12361      {599185303, 0, 0},
12362      {649208064, 0, 0},
12363      {679061455, 0, 0},
12364      {810488476, 0, 0},
12365      {951841533, 0, 0},
12366      {1008886329, 0, 0},
12367      {1022544883, 0, 0},
12368      {1215030156, 0, 0},
12369      {1305703280, 0, 0},
12370      {1367301635, 0, 0},
12371      {1453447304, 0, 0},
12372      {1487177499, 0, 0},
12373      {1603937321, 0, 0},
12374      {1617826947, 0, 0},
12375      {1643868273, 0, 0},
12376      {1672607981, 0, 0},
12377      {1681941034, 0, 0},
12378      {1755165354, 0, 0},
12379      {1781864804, 0, 0},
12380      {1795715718, 0, 0},
12381      {1977038330, 0, 0},
12382      {2096388952, 0, 0},
12383      {2204920111, 0, 0},
12384      {2244470522, 0, 0},
12385      {2330636993, 0, 0},
12386      {2400601988, 0, 0},
12387      {2424848261, 0, 0},
12388      {2603020391, 0, 0},
12389      {2622612602, 0, 0},
12390      {2645135839, 0, 0},
12391      {2660843182, 0, 0},
12392      {2708915136, 0, 0},
12393      {2724166585, 0, 0},
12394      {2728667725, 0, 0},
12395      {2890638791, 0, 0},
12396      {2901034693, 0, 0},
12397      {2941648648, 0, 0},
12398      {2970183398, 0, 0},
12399      {2998120306, 0, 0},
12400      {3123244280, 0, 0},
12401      {3187066832, 0, 0},
12402      {3209399506, 0, 0},
12403      {3230260738, 0, 0},
12404      {3344189994, 0, 0},
12405      {3345707173, 0, 0},
12406      {3367298820, 0, 0},
12407      {3397078357, 0, 0},
12408      {3569736966, 0, 0},
12409      {3816961131, 0, 0},
12410      {4091670162, 0, 0},
12411      {4237497041, 0, 0},
12412      {1111111111111111111, 0, 0},
12413      {0, 17, 44},
12414      {0, 25, 20},
12415      {0, 29, 34},
12416      {0, 18, 2},
12417      {0, 54, 49},
12418      {0, 28, 7},
12419      {0, 47, 52},
12420      {0, 23, 56},
12421      {0, 55, 26},
12422      {0, 24, 61},
12423      {0, 13, 62},
12424      {0, 63, 45},
12425      {0, 27, 15},
12426      {0, 64, 8},
12427      {0, 65, 59},
12428      {0, 35, 22},
12429      {0, 53, 38},
12430      {0, 58, 51},
12431      {0, 11, 66},
12432      {0, 10, 3},
12433      {0, 46, 67},
12434      {0, 69, 68},
12435      {0, 1, 50},
12436      {0, 42, 19},
12437      {0, 70, 6},
12438      {0, 31, 71},
12439      {0, 16, 72},
12440      {0, 74, 73},
12441      {0, 76, 75},
12442      {0, 78, 77},
12443      {0, 79, 4},
12444      {0, 5, 37},
12445      {0, 14, 36},
12446      {0, 80, 57},
12447      {0, 81, 48},
12448      {0, 83, 82},
12449      {0, 39, 84},
12450      {0, 86, 85},
12451      {0, 40, 87},
12452      {0, 89, 88},
12453      {0, 91, 90},
12454      {0, 93, 92},
12455      {0, 21, 9},
12456      {0, 41, 32},
12457      {0, 12, 43},
12458      {0, 95, 94},
12459      {0, 97, 96},
12460      {0, 99, 98},
12461      {0, 100, 33},
12462      {0, 60, 101},
12463      {0, 103, 102},
12464      {0, 105, 104},
12465      {0, 107, 106},
12466      {0, 109, 108},
12467      {0, 110, 30},
12468      {0, 112, 111},
12469      {0, 114, 113},
12470      {0, 116, 115},
12471      {0, 118, 117},
12472    }));
12473
12474    codecs.emplace(std::pair<uint32_t, uint32_t>(SpvOpReturnValue, 0), std::move(codec));
12475  }
12476
12477  return codecs;
12478}
12479
12480std::unordered_set<uint32_t> GetDescriptorsWithCodingScheme() {
12481  std::unordered_set<uint32_t> descriptors_with_coding_scheme = {
12482    3816961131,
12483    3569736966,
12484    3397078357,
12485    3344189994,
12486    3230260738,
12487    2941648648,
12488    2901034693,
12489    2728667725,
12490    2400601988,
12491    1795715718,
12492    1681941034,
12493    1487177499,
12494    1453447304,
12495    679061455,
12496    649208064,
12497    559246409,
12498    388686774,
12499    4228303141,
12500    4110915453,
12501    4010499223,
12502    3927466635,
12503    3927338499,
12504    3836179806,
12505    3742724777,
12506    3619404941,
12507    3224480461,
12508    3224258475,
12509    3200890815,
12510    3742946763,
12511    3193597927,
12512    2604242419,
12513    2577387676,
12514    2181030375,
12515    1376656865,
12516    1347339159,
12517    938517572,
12518    876867882,
12519    429023543,
12520    129748122,
12521    4106828015,
12522    4093615095,
12523    3826846522,
12524    3721902098,
12525    3244383472,
12526    2891091137,
12527    2872580757,
12528    2558133383,
12529    2477434291,
12530    1839669171,
12531    2059975069,
12532    1735295265,
12533    1364157225,
12534    1237148906,
12535    886972033,
12536    674428451,
12537    4148979936,
12538    3805423332,
12539    3732000233,
12540    3717942504,
12541    3714664910,
12542    3622349409,
12543    3272233597,
12544    3204986803,
12545    3088511797,
12546    1672607981,
12547    2416108131,
12548    2250055803,
12549    1796311149,
12550    1515695460,
12551    537830163,
12552    461476226,
12553    206688607,
12554    78001013,
12555    3866493821,
12556    3417584874,
12557    3188115516,
12558    2526961521,
12559    2443610186,
12560    2394332122,
12561    2374216296,
12562    2032069771,
12563    2011183308,
12564    1904846533,
12565    1641070431,
12566    1635292159,
12567    1372785527,
12568    1369818198,
12569    1204787336,
12570    1826456251,
12571    1164137269,
12572    1081642571,
12573    629859130,
12574    253329281,
12575    227103506,
12576    11698369,
12577    4219766939,
12578    4169226615,
12579    3997432565,
12580    3873587660,
12581    3513669836,
12582    3261122899,
12583    2129301998,
12584    1774052499,
12585    1266262705,
12586    4285201458,
12587    4245743275,
12588    3907920335,
12589    3837583704,
12590    3641833815,
12591    3307100165,
12592    1232501371,
12593    3262572726,
12594    3045470312,
12595    2879050471,
12596    2801333547,
12597    2506771164,
12598    2504802016,
12599    2500422644,
12600    2473053808,
12601    2457690657,
12602    2345566651,
12603    2306141594,
12604    2154320787,
12605    2055637638,
12606    1527762373,
12607    1486206763,
12608    1159301677,
12609    1105835505,
12610    968885186,
12611    885645401,
12612    849867303,
12613    815034111,
12614    497658126,
12615    386525753,
12616    179458548,
12617    102358168,
12618    4127308103,
12619    4073492988,
12620    1473411044,
12621    805072272,
12622    3724004880,
12623    3602108619,
12624    3585315836,
12625    3331487616,
12626    3261703164,
12627    3235459678,
12628    3085703811,
12629    3047649911,
12630    2357410109,
12631    2291766425,
12632    2071351379,
12633    1904128160,
12634    1738815671,
12635    1531216990,
12636    1465623797,
12637    1324351672,
12638    1220127364,
12639    1144188012,
12640    183103444,
12641    116093251,
12642    3900859293,
12643    3345856521,
12644    3691770462,
12645    3263841912,
12646    3198541202,
12647    3098991995,
12648    3682213068,
12649    2963184673,
12650    2864543087,
12651    2802261839,
12652    2790648021,
12653    900101778,
12654    2715304020,
12655    100979271,
12656    2709694527,
12657    2669086217,
12658    2531826164,
12659    2651956495,
12660    2552825357,
12661    2480811229,
12662    3138977758,
12663    2434845539,
12664    2066323109,
12665    1777640493,
12666    1758287856,
12667    1746004874,
12668    3945482286,
12669    3932146199,
12670    3129573055,
12671    3126269825,
12672    3716914380,
12673    985750227,
12674    1543672828,
12675    3189039115,
12676    1839499483,
12677    2696349144,
12678    1536350567,
12679    3971481069,
12680    3001444829,
12681    4028622909,
12682    215293834,
12683    213642219,
12684    153085016,
12685    1189681639,
12686    165054168,
12687    29517006,
12688    2614879967,
12689    27865391,
12690    1649426421,
12691    4239834800,
12692    1947620272,
12693    28782128,
12694    3207966516,
12695    3713290482,
12696    2042001863,
12697    2724166585,
12698    2356768706,
12699    1793544760,
12700    4092654294,
12701    2157103435,
12702    2087004702,
12703    2043873558,
12704    27177503,
12705    1033363654,
12706    4214779116,
12707    408465899,
12708    451264926,
12709    2377112119,
12710    1182296898,
12711    760554870,
12712    3566035349,
12713    2630220147,
12714    4192247221,
12715    1572088444,
12716    3538592682,
12717    769422756,
12718    1674803691,
12719    630964591,
12720    3458449569,
12721    565334834,
12722    137840602,
12723    3955205564,
12724    2009007457,
12725    1258105452,
12726    333554713,
12727    3923810593,
12728    126463145,
12729    3445109809,
12730    2966409025,
12731    2849215484,
12732    1910240213,
12733    3131890669,
12734    586244865,
12735    2320303498,
12736    3116932970,
12737    1317265040,
12738    2812498065,
12739    1466938734,
12740    4064212479,
12741    2613179511,
12742    2095546797,
12743    1671139745,
12744    2568512089,
12745    3695940604,
12746    1119069977,
12747    215027449,
12748    4123141705,
12749    3495546641,
12750    1978689945,
12751    3202324433,
12752    3783543823,
12753    2674422363,
12754    1352628475,
12755    1290956281,
12756    1894417995,
12757    740921498,
12758    4211577142,
12759    1033081852,
12760    3884846406,
12761    3253403867,
12762    2790624748,
12763    2538917932,
12764    2144962711,
12765    3323202731,
12766    4290024976,
12767    2564745684,
12768    2963744582,
12769    2443959748,
12770    354479447,
12771    750870327,
12772    1918481917,
12773    4032662899,
12774    3587381650,
12775    2414725163,
12776    1081611718,
12777    1625742020,
12778    2308565678,
12779    1871105284,
12780    2807907995,
12781    2121980967,
12782    1054641568,
12783    413918748,
12784    1917336504,
12785    1816558243,
12786    4130950286,
12787    1522979646,
12788    1669959736,
12789    1320550031,
12790    3104643263,
12791    3823959661,
12792    3525913657,
12793    3584683259,
12794    2918750759,
12795    3536390697,
12796    94303122,
12797    3296691317,
12798    801484894,
12799    2496463830,
12800    3266028549,
12801    3085157904,
12802    973908139,
12803    3787909072,
12804    3107413701,
12805    2378763734,
12806    920604853,
12807    2516325050,
12808    1838993983,
12809    1603937321,
12810    3183924418,
12811    1945006185,
12812    3982311384,
12813    2682510803,
12814    680388473,
12815    979993429,
12816    2405770322,
12817    461040879,
12818    2817579280,
12819    14113753,
12820    2894979602,
12821    168339452,
12822    951841533,
12823    4154758669,
12824    2637132451,
12825    3877583949,
12826    1949856502,
12827    922996215,
12828    3941049054,
12829    4182141402,
12830    2262220987,
12831    1957218950,
12832    2094550054,
12833    1846856260,
12834    3499234137,
12835    3086631065,
12836    3054834317,
12837    593829839,
12838    522971108,
12839    1162127370,
12840    4233562270,
12841    2780190687,
12842    1558345254,
12843    3716353056,
12844    3518630848,
12845    1158929937,
12846    2038205856,
12847    86116519,
12848    4185661467,
12849    975807626,
12850    3910458990,
12851    4124281183,
12852    3361419439,
12853    171334650,
12854    2590402790,
12855    2890570341,
12856    2303184249,
12857    385229009,
12858    1998433745,
12859    1717510093,
12860    4022124023,
12861    1429389803,
12862    945128292,
12863    904486530,
12864    3869890846,
12865    619875033,
12866    459968607,
12867    3743748793,
12868    359054425,
12869    1417363940,
12870    3653985133,
12871    255835594,
12872    1047011733,
12873    2763232252,
12874    1329499601,
12875    328661377,
12876    2162274327,
12877    2100532220,
12878    4255182614,
12879    4243119782,
12880    3982047273,
12881    4053789056,
12882    401211099,
12883    950731750,
12884    1319785741,
12885    32085358,
12886    3882634684,
12887    3117071189,
12888    3554463148,
12889    3570219049,
12890    3535289452,
12891    2314864456,
12892    3913885196,
12893    2763960513,
12894    1079999262,
12895    27130513,
12896    3033873113,
12897    2976581453,
12898    2598189097,
12899    595410904,
12900    1572834111,
12901    13319433,
12902    1084574846,
12903    2123388694,
12904    560078433,
12905    1679946323,
12906    3518703473,
12907    184634770,
12908    296981500,
12909    1646147798,
12910    455591063,
12911    1325348861,
12912    3224952074,
12913    1027242654,
12914    2281956980,
12915    4221373527,
12916    1289566249,
12917    4044928561,
12918    882718761,
12919    1510333659,
12920    836581417,
12921    1901166356,
12922    2276405827,
12923    4052965752,
12924    1155765244,
12925    503145996,
12926    251209228,
12927    495107308,
12928    3944781937,
12929    37459569,
12930    4248015868,
12931    4198082194,
12932    1302400505,
12933    4106658327,
12934    680016782,
12935    2319227476,
12936    2738307068,
12937    3929248764,
12938    2850246066,
12939    1824526196,
12940    3912967080,
12941    3044723416,
12942    3133016299,
12943    2517964682,
12944    3647586740,
12945    3653838348,
12946    929101967,
12947    3571454885,
12948    2806296851,
12949    977312655,
12950    646282397,
12951    3448018532,
12952    824323032,
12953    204234270,
12954    1579585816,
12955    3712763835,
12956    1212872174,
12957    3953984401,
12958    3168953855,
12959    2944827576,
12960    1582841441,
12961    2796901051,
12962    3323682385,
12963    1317058015,
12964    2557550659,
12965    1620634991,
12966    2986830770,
12967    2490492987,
12968    1817271123,
12969    40653745,
12970    1696076631,
12971    2466126792,
12972    4169878842,
12973    3251128023,
12974    2444465148,
12975    678695941,
12976    2481746922,
12977    2836440943,
12978    774727851,
12979    2246405597,
12980    4028028350,
12981    2524697596,
12982    1977038330,
12983    2817823941,
12984    2219733501,
12985    688216667,
12986    3634598908,
12987    3232633974,
12988    2724625059,
12989    3269075805,
12990    3732640764,
12991    2263349224,
12992    1680746207,
12993    2414984922,
12994    2507457870,
12995    50998433,
12996    3092528578,
12997    3712946115,
12998    1543935193,
12999    807276090,
13000    1221183390,
13001    172029722,
13002    2122275289,
13003    3990925720,
13004    2261697609,
13005    2736881867,
13006    295017943,
13007    3278176820,
13008    3748965853,
13009    3174324790,
13010    1103903216,
13011    3184177968,
13012    1113409935,
13013    2299842241,
13014    2162986400,
13015    1538342947,
13016    4056442905,
13017    1631434666,
13018    205885885,
13019    1594733696,
13020    1955104493,
13021    1022309772,
13022    3820814597,
13023    993150979,
13024    1209418480,
13025    1784441183,
13026    3958731802,
13027    2250225826,
13028    3065160070,
13029    2024071551,
13030    107497541,
13031    628544021,
13032    2732195517,
13033    4241486415,
13034    3969279737,
13035    870594305,
13036    2916400082,
13037    1193734351,
13038    3202349435,
13039    3831290364,
13040    3282979782,
13041    3928764629,
13042    1308462133,
13043    3216471040,
13044    2433519008,
13045    2022961611,
13046    3604842236,
13047    3374978006,
13048    2855895374,
13049    3496407048,
13050    1482251215,
13051    3994511488,
13052    2997832431,
13053    1132589448,
13054    1348149915,
13055    2092468906,
13056    2451531615,
13057    779021139,
13058    3730093054,
13059    3413713311,
13060    1022915255,
13061    2204920111,
13062    2660843182,
13063    1080545747,
13064    1642805350,
13065    1766422419,
13066    4141567741,
13067    1558990974,
13068    4185590212,
13069    2841468319,
13070    701281393,
13071    3325419312,
13072    451957774,
13073    357505993,
13074    1156369516,
13075    3187387500,
13076    2259467579,
13077    2678954464,
13078    3154597438,
13079    543558236,
13080    2359973133,
13081    1990431740,
13082    2705477184,
13083    1041368449,
13084    3122368657,
13085    3181646225,
13086    1094423548,
13087    2955375511,
13088    2888125966,
13089    153013225,
13090    2936040203,
13091    1758530522,
13092    573901046,
13093    3030911670,
13094    1675922848,
13095    4235213885,
13096    4091916710,
13097    2633682514,
13098    4254584852,
13099    2328748202,
13100    3357301402,
13101    3877813395,
13102    2004567202,
13103    2496297824,
13104    3334207724,
13105    1600149091,
13106    293528591,
13107    1782996825,
13108    3757282300,
13109    1107206446,
13110    1092948665,
13111    1797960910,
13112    1206726575,
13113    1496351055,
13114    3021406120,
13115    99347751,
13116    3797204453,
13117    1468919488,
13118    797415788,
13119    1314843976,
13120    2934934694,
13121    490769168,
13122    1474506522,
13123    3811268385,
13124    864295921,
13125    3081676220,
13126    151810803,
13127    2588618056,
13128    2998120306,
13129    416853049,
13130    3495967422,
13131    3233393284,
13132    508007510,
13133    759277550,
13134    1971252067,
13135    869050696,
13136    810488476,
13137    745556697,
13138    789872778,
13139    3362723943,
13140    1617826947,
13141    3260309823,
13142    2197904616,
13143    1199157863,
13144    1643868273,
13145    2430404313,
13146    321630747,
13147    2503194620,
13148    3194725903,
13149    2881225774,
13150    3997952447,
13151    1389644742,
13152    2713718873,
13153    3585511591,
13154    1684282922,
13155    3366848728,
13156    284226441,
13157    1541020250,
13158    4018237905,
13159    1369578001,
13160    2424848261,
13161    2654325647,
13162    1626224034,
13163    1081536219,
13164    309040124,
13165    123060826,
13166    3997038726,
13167    1670691893,
13168    1543280290,
13169    443347828,
13170    1776629361,
13171    3118548424,
13172    478440524,
13173    679771963,
13174    3729929345,
13175    4244789645,
13176    2366506734,
13177    2838165089,
13178    1619778288,
13179    1313182965,
13180    3240680626,
13181    1323407757,
13182    883854656,
13183    2194691858,
13184    15502752,
13185    3760372982,
13186    1366337101,
13187    3656163446,
13188    295018543,
13189    825595257,
13190    57149555,
13191    2563789125,
13192    2353194283,
13193    2636942752,
13194    4026740269,
13195    3570411982,
13196    123108003,
13197    3782362128,
13198    1280126114,
13199    1410849099,
13200    4228502127,
13201    3609540589,
13202    3365041621,
13203    269823086,
13204    348988933,
13205    1636389511,
13206    2936586309,
13207    2761603302,
13208    2318200267,
13209    449954059,
13210    2895413148,
13211    1755165354,
13212    4274214049,
13213    778500192,
13214    3345707173,
13215    3732136051,
13216    721450866,
13217    1600392975,
13218    2466255445,
13219    4050155669,
13220    3541895912,
13221    1139547465,
13222    394654115,
13223    1380991098,
13224    3516240523,
13225    2234361374,
13226    1094817798,
13227    744817486,
13228    3564402361,
13229    1452222566,
13230    1851510470,
13231    3619787319,
13232    4265894873,
13233    216945449,
13234    3061690214,
13235    2910557180,
13236    255227811,
13237    4167600590,
13238    1587209598,
13239    3157581152,
13240    3184381405,
13241    2572638469,
13242    615748604,
13243    2532518896,
13244    1774874546,
13245    599185303,
13246    1561718045,
13247    1742737136,
13248    1674464100,
13249    3136865519,
13250    706016261,
13251    2793529873,
13252    3504981554,
13253    4155122613,
13254    2080953106,
13255    1104362365,
13256    2879917501,
13257    850497536,
13258    1392080469,
13259    1287937401,
13260    718877177,
13261    1917966999,
13262    1822823090,
13263    3701632935,
13264    3591222197,
13265    2817335337,
13266    1941148668,
13267    3110479131,
13268    3289213933,
13269    583624926,
13270    468372467,
13271    1633850097,
13272    2110223508,
13273    898191441,
13274    112745085,
13275    4018820793,
13276    3085119011,
13277    2919626325,
13278    3094857332,
13279    2348201466,
13280    2192810893,
13281    4163160985,
13282    1269075360,
13283    3952316364,
13284    2881886868,
13285    439764402,
13286    1584774136,
13287    169674806,
13288    3759072440,
13289    102542696,
13290    2996180816,
13291    804899022,
13292    1015552308,
13293    963902061,
13294    3504158761,
13295    2002490364,
13296    2806716850,
13297    265778447,
13298    4083122425,
13299    181902171,
13300    1238120570,
13301    75986790,
13302    1265796414,
13303    899570100,
13304    2988365258,
13305    3655201337,
13306    3654061472,
13307    3061856840,
13308    1077859090,
13309    615341051,
13310    3678875745,
13311    3349230696,
13312    3647606635,
13313    2549309392,
13314    1508570930,
13315    1766401548,
13316    1448448666,
13317    1499923635,
13318    2882994691,
13319    3674863070,
13320    3056042030,
13321    4240893633,
13322    1395113939,
13323    2964622752,
13324    1951208733,
13325    3536941067,
13326    4176581069,
13327    1203545131,
13328    3092754101,
13329    246375791,
13330    2736026107,
13331    1069781886,
13332    3687777340,
13333    1564342316,
13334    535067202,
13335    1395923345,
13336    3240977890,
13337    1447712361,
13338    2602027658,
13339    718301639,
13340    3123244280,
13341    1032593647,
13342    2840366496,
13343    2680819379,
13344    3839389658,
13345    277023757,
13346    1172110445,
13347    1755648697,
13348    2472176885,
13349    223800276,
13350    625975427,
13351    976111724,
13352    4145966869,
13353    2789375411,
13354    618087261,
13355    249378857,
13356    4058280485,
13357    827698488,
13358    1558001705,
13359    3561482820,
13360    2562485583,
13361    4243138030,
13362    615982737,
13363    1220643281,
13364    150685616,
13365    3091876332,
13366    1040775722,
13367    669982125,
13368    4116080964,
13369    3582002820,
13370    910398460,
13371    1036475267,
13372    3800912395,
13373    146392076,
13374    1686512349,
13375    2326636627,
13376    2839816704,
13377    3502816184,
13378    226836633,
13379    3953733490,
13380    257136089,
13381    819503463,
13382    2863084840,
13383    1949759310,
13384    210754155,
13385    1367301635,
13386    3822983876,
13387    4273793488,
13388    3635397748,
13389    3930494584,
13390    3127921440,
13391    3167253437,
13392    3868239231,
13393    1859128680,
13394    3480031018,
13395    3810805277,
13396    2677252364,
13397    156014509,
13398    3627739127,
13399    2321729979,
13400    1146476634,
13401    4039938779,
13402    1964254745,
13403    2055836767,
13404    119981689,
13405    2629265310,
13406    2448331885,
13407    3737376990,
13408    144116905,
13409    2272221101,
13410    2197874825,
13411    1277245109,
13412    2503770904,
13413    360730278,
13414    3489360962,
13415    1166917451,
13416    707478563,
13417    4155586396,
13418    162255877,
13419    347505241,
13420    4215670524,
13421    3187066832,
13422    2399809085,
13423    2754074729,
13424    4060703604,
13425    628331516,
13426    1304296041,
13427    616435646,
13428    4080527786,
13429    1443829854,
13430    2512398201,
13431    708736129,
13432    13107491,
13433    3794803132,
13434    2049792025,
13435    2455417440,
13436    3367313400,
13437    3357250579,
13438    3694383800,
13439    2339901602,
13440    3242843022,
13441    2282454607,
13442    1243764146,
13443    835458563,
13444    1297706389,
13445    464259778,
13446    1766994680,
13447    1294403159,
13448    2568098594,
13449    3107165180,
13450    4040340620,
13451    3352361837,
13452    1031290113,
13453    2903897222,
13454    1677700667,
13455    3160388974,
13456    107544081,
13457    3044188332,
13458    2285081596,
13459    2835131395,
13460    2984459037,
13461    4174489262,
13462    1236389532,
13463    2938237924,
13464    321459212,
13465    3407526215,
13466    300939750,
13467    3441531391,
13468    2909957084,
13469    3192069648,
13470    1849065716,
13471    2524531022,
13472    505940164,
13473    4121643374,
13474    3774892253,
13475    3197739982,
13476    2161102232,
13477    2715370488,
13478    1992893964,
13479    1781864804,
13480    587888644,
13481    1039111164,
13482    4237497041,
13483    451382997,
13484    969500141,
13485    1415510495,
13486    3743398113,
13487    3027538652,
13488    2525173102,
13489    1708264968,
13490    3366040354,
13491    1100599986,
13492    188347929,
13493    2597020383,
13494    2705434194,
13495    2593884753,
13496    3472123498,
13497    2975894973,
13498    3152745753,
13499    1154919607,
13500    1930923350,
13501    3287039847,
13502    1372881231,
13503    2280400314,
13504    3369343584,
13505    2351620600,
13506    2645135839,
13507    2752766693,
13508    1471851763,
13509    1989520052,
13510    1141965917,
13511    1503477720,
13512    653708953,
13513    1765126703,
13514    2432827426,
13515    95470391,
13516    2567901801,
13517    2589449658,
13518    4218799564,
13519    3249265647,
13520    3673811979,
13521    210116709,
13522    1593584949,
13523    1791352211,
13524    3457985288,
13525    3345288309,
13526    531559080,
13527    2491124112,
13528    3410158390,
13529    4224872590,
13530    3705139860,
13531    162608772,
13532    4258229445,
13533    925559698,
13534    3928842969,
13535    4253051659,
13536    3633746133,
13537    3867307935,
13538    3560665067,
13539    798915737,
13540    2945369269,
13541    2677264274,
13542    2278571792,
13543    177111659,
13544    85880059,
13545    1297165140,
13546    1630583316,
13547    2232491275,
13548    1848784182,
13549    2487708241,
13550    626480004,
13551    3427283542,
13552    2108571893,
13553    304448521,
13554    3332104493,
13555    2244470522,
13556    436416061,
13557    221900294,
13558    1502470404,
13559    3552593177,
13560    440421571,
13561    450406196,
13562    503094540,
13563    3836822275,
13564    2708915136,
13565    3750617468,
13566    1119744229,
13567    3614752756,
13568    921246433,
13569    2285438321,
13570    626892406,
13571    2362972044,
13572    72782198,
13573    2929019254,
13574    2795773560,
13575    907126242,
13576    155458798,
13577    2798552666,
13578    1404739463,
13579    4285652249,
13580    1998444837,
13581    908777857,
13582    872544165,
13583    910429472,
13584    135486769,
13585    3457269042,
13586    426360862,
13587    1725011064,
13588    296836635,
13589    1322549027,
13590    2044728014,
13591    1530183840,
13592    529742207,
13593    4272200782,
13594    1341516288,
13595    2608484640,
13596    41739659,
13597    3260579369,
13598    2745872368,
13599    2894051250,
13600    862784766,
13601    3077271274,
13602    3094180193,
13603    3619626927,
13604    3745223676,
13605    2976066508,
13606    2854085372,
13607    2959147533,
13608    3266548732,
13609    1776526161,
13610    3712296962,
13611    1955871800,
13612    2580096524,
13613    2507709226,
13614    3564865233,
13615    948086521,
13616    1548254487,
13617    142465290,
13618    1472185378,
13619    1459457331,
13620    2274226560,
13621    3153451899,
13622    492958971,
13623    3563213618,
13624    1285705317,
13625    410274915,
13626    3710645347,
13627    1309728002,
13628    2119793999,
13629    1343794461,
13630    4024173916,
13631    2383939514,
13632    955476870,
13633    2698156268,
13634    35240468,
13635    2655147757,
13636    3764205609,
13637    3802564010,
13638    170690025,
13639    2311941439,
13640    3181546731,
13641    3866587616,
13642    3648138580,
13643    93914936,
13644    170378107,
13645    2120623674,
13646    1064945649,
13647    1618754372,
13648    244668133,
13649    247698428,
13650    3669223677,
13651    470277359,
13652    1781765116,
13653    1691572958,
13654    1373856501,
13655    2668769415,
13656    1087394637,
13657    1009983433,
13658    2180701723,
13659    4008405264,
13660    2831059514,
13661    2645120714,
13662    2649103430,
13663    2664825925,
13664    790502615,
13665    1739837626,
13666    2293247016,
13667    1784648440,
13668    1887808856,
13669    1788504755,
13670    112452386,
13671    1979978194,
13672    3462674048,
13673    2170273742,
13674    538168945,
13675    753954113,
13676    374731234,
13677    3715846592,
13678    1962971231,
13679    1860649552,
13680    1378082995,
13681    665789406,
13682    1717555224,
13683    139011596,
13684    1375043498,
13685    1618544981,
13686    1889460471,
13687    2262321736,
13688    1788301425,
13689    1652168174,
13690    2668680621,
13691    2636946065,
13692    2856623532,
13693    2759951687,
13694    959681532,
13695    3209399506,
13696    3055195668,
13697    1227221002,
13698    508217552,
13699    3289969989,
13700    243178923,
13701    2956189845,
13702    3075866530,
13703    2274779301,
13704    3940720663,
13705    3998230222,
13706    1178317551,
13707    4016096296,
13708    1545450160,
13709    2842919847,
13710    314809953,
13711    2952850186,
13712    3747079365,
13713    4147239510,
13714    169135842,
13715    1332643570,
13716    2994529201,
13717    973521782,
13718    1584369690,
13719    1043738701,
13720    2851900832,
13721    290391815,
13722    283209196,
13723    2468230023,
13724    1164221089,
13725    1991787192,
13726    3358097187,
13727    51041423,
13728    52882140,
13729    2339018837,
13730    2053214130,
13731    3757479030,
13732    158160339,
13733    853200279,
13734    1986584654,
13735    438318340,
13736    827246872,
13737    3299488628,
13738    2924263085,
13739    3472029049,
13740    2736844435,
13741    677668732,
13742    604894932,
13743    1158021131,
13744    1400019344,
13745    2268204687,
13746    1450415100,
13747    3854557817,
13748    1543646433,
13749    1278448636,
13750    342615870,
13751    1554194368,
13752    3080024605,
13753    3423702268,
13754    1675764636,
13755    1622381564,
13756    2078849875,
13757    2113115132,
13758    1380160211,
13759    3132876285,
13760    125015036,
13761    269576093,
13762    94145952,
13763    2777172031,
13764    2683080096,
13765    3812456892,
13766    488500848,
13767    3270430997,
13768    2895151306,
13769    116376005,
13770    400248103,
13771    406044930,
13772    1616846013,
13773    10142671,
13774    763027711,
13775    225200779,
13776    1062250709,
13777    2013867381,
13778    2113506324,
13779    1692932387,
13780    1827244161,
13781    3124618210,
13782    2096472894,
13783    2924146124,
13784    2128251367,
13785    2433358586,
13786    1939359710,
13787    2593325766,
13788    2879917723,
13789    694743357,
13790    2902069960,
13791    220008971,
13792    3090408469,
13793    917019124,
13794    1705716306,
13795    3263901372,
13796    3347863687,
13797    3447882276,
13798    1661163736,
13799    3617689692,
13800    3928555688,
13801    1057578789,
13802    435256475,
13803    4101009465,
13804    1941403425,
13805    198967948,
13806    3733675151,
13807    2043684541,
13808    3517169445,
13809    2226776400,
13810    2853403709,
13811    529383565,
13812    2807448986,
13813    4234287173,
13814    1019457583,
13815    1022544883,
13816    2493146691,
13817    1054461787,
13818    1008886329,
13819    1136775085,
13820    1191015885,
13821    1196280518,
13822    1979847999,
13823    50385656,
13824    1918742169,
13825    3999472204,
13826    3697687030,
13827    2220475432,
13828    2358141757,
13829    2360004627,
13830    4245257809,
13831    236660303,
13832    429277936,
13833    342159236,
13834    2622612602,
13835    371428004,
13836    373079619,
13837    643418617,
13838    2095027856,
13839    1071164424,
13840    1136911283,
13841    1548491889,
13842    2169307971,
13843    375530199,
13844    1510422521,
13845    3151638847,
13846    1698730948,
13847    2231688008,
13848    2604576561,
13849    2771938750,
13850    2996594997,
13851    289648234,
13852    348584153,
13853    2748350697,
13854    2926633629,
13855    2123683379,
13856    369686787,
13857    742917749,
13858    3538158875,
13859    2937761472,
13860    1545298048,
13861    1321616112,
13862    2855506940,
13863    900522183,
13864    1578775276,
13865    2217833278,
13866    2012838864,
13867    3753486980,
13868    2839765116,
13869    2464905186,
13870    2621255555,
13871    1305703280,
13872    861753115,
13873    3319278167,
13874    3063300848,
13875    149720480,
13876    1082941229,
13877    3337532056,
13878    2248357849,
13879    3675926744,
13880    1508550646,
13881    2289803479,
13882    3456899824,
13883    3931641900,
13884    3970432934,
13885    3419674548,
13886    1093210099,
13887    456043370,
13888    848380423,
13889    1287304304,
13890    1526654696,
13891    2055664760,
13892    1373166395,
13893    4291477370,
13894    2195550588,
13895    2847102741,
13896    3399062057,
13897    1641565587,
13898    2888753905,
13899    3579593979,
13900    3653059026,
13901    3757851979,
13902    2922615804,
13903    2919796598,
13904    1553476262,
13905    2566666743,
13906    3759503594,
13907    550831114,
13908    3761155209,
13909    3762806824,
13910    3902853271,
13911    4140081844,
13912    14244860,
13913    3847846774,
13914    150820676,
13915    1278818058,
13916    850592577,
13917    1206571206,
13918    1734446471,
13919    2117320444,
13920    1382106590,
13921    2436009347,
13922    2118972059,
13923    2951272396,
13924    36096192,
13925    117998987,
13926    473485679,
13927    2244928358,
13928    476788909,
13929    3489269251,
13930    610429940,
13931    480092139,
13932    481743754,
13933    871966503,
13934    918189168,
13935    601656217,
13936    933769938,
13937    939671928,
13938    1799299383,
13939    3312467582,
13940    1149665466,
13941    3006548167,
13942    1310740861,
13943    3602693817,
13944    1461645203,
13945    3367691969,
13946    1800404122,
13947    3486057732,
13948    1862284649,
13949    2076833303,
13950    2213411495,
13951    2805256437,
13952    3927915220,
13953    3000904950,
13954    2094647776,
13955    3333131702,
13956    1315613425,
13957    3752211294,
13958    603915804,
13959    3505028338,
13960    663258455,
13961    3322500634,
13962    1612225949,
13963    3606320646,
13964    157110413,
13965    1352397672,
13966    3861006967,
13967    452208841,
13968    18776483,
13969    1058429216,
13970    37009196,
13971    564884461,
13972    876864198,
13973    2952260510,
13974    2860348412,
13975    928261291,
13976    1164724902,
13977    2775815164,
13978    1332774287,
13979    780957373,
13980    939415664,
13981    1513770932,
13982    788046331,
13983    1692600167,
13984    4069810315,
13985    673708384,
13986    4024252457,
13987    1932614728,
13988    2148510256,
13989    3131224670,
13990    2388524817,
13991    2460489993,
13992    2676385521,
13993    826214242,
13994    3692647551,
13995    3063508455,
13996    3071766530,
13997    2063832060,
13998    1525861001,
13999    3073418145,
14000    837715723,
14001    3075069760,
14002    3076721375,
14003    3078372990,
14004    983243705,
14005    3083327835,
14006    171307615,
14007    1824016656,
14008    3084979450,
14009    1310404265,
14010    1775308984,
14011    3114708520,
14012    3116360135,
14013    3121314980,
14014    3134527900,
14015    1691646294,
14016    2804281092,
14017    97231530,
14018    3136179515,
14019    3204260786,
14020    3276225962,
14021    1220749418,
14022    3588205699,
14023    3874089391,
14024    4044115788,
14025    3268751013,
14026    743407979,
14027    166253838,
14028    1356063462,
14029    1368383673,
14030    2279700640,
14031    2130747644,
14032    3945795573,
14033    2780898906,
14034    3635542517,
14035    425022309,
14036    517919178,
14037    4061558677,
14038    2190437442,
14039    543621065,
14040    753756604,
14041    2500819054,
14042    1004589179,
14043    1165671422,
14044    30433743,
14045    3444275347,
14046    1335363438,
14047    1913735398,
14048    1265998516,
14049    3829325073,
14050    3662767579,
14051    463084678,
14052    1351676723,
14053    1391866096,
14054    3398925952,
14055    1631216488,
14056    815757910,
14057    1915438939,
14058    2427834344,
14059    1445161581,
14060    1890300748,
14061    2864863800,
14062    1961990747,
14063    575205902,
14064    2037710159,
14065    2037814253,
14066    617312262,
14067    3732916270,
14068    783918780,
14069    2257843797,
14070    2096388952,
14071    2338272340,
14072    1434223270,
14073    578132535,
14074    1980341560,
14075    1002144380,
14076    3244716568,
14077    4258414038,
14078    3271748023,
14079    3304438238,
14080    3717523241,
14081    3370185097,
14082    3435931956,
14083    1957265068,
14084    3602522282,
14085    2547657777,
14086    439998433,
14087    3838648480,
14088    3913593633,
14089    3989799199,
14090    906176560,
14091    1894133125,
14092    4046301857,
14093    4242327928,
14094    630592085,
14095    2693892518,
14096    4292991777,
14097    545678922,
14098    125792961,
14099    3015046341,
14100    132755933,
14101    2615111110,
14102    1570165302,
14103    1440646342,
14104    436066778,
14105    565233904,
14106    600906020,
14107    602222721,
14108    3951925872,
14109    1496901698,
14110    1522901980,
14111    2785441472,
14112    3041450802,
14113    1637661947,
14114    2127660080,
14115    3487022798,
14116    2269114589,
14117    1314834580,
14118    2315690100,
14119    3817149113,
14120    4091670162,
14121    1431749301,
14122    1858116930,
14123    2213946343,
14124    2225172640,
14125    2263866576,
14126    2727022058,
14127    2752967311,
14128    2864705739,
14129    3052439312,
14130    3510257966,
14131    2614053317,
14132    3297860332,
14133    3670298840,
14134    3732709413,
14135    3788324110,
14136    4098876453,
14137    4290374884,
14138    1623013158,
14139    3381478137,
14140    17185761,
14141    3931288033,
14142    2890638791,
14143    330388453,
14144    346929928,
14145    2022347217,
14146    4083347580,
14147    533021259,
14148    564302770,
14149    1917602962,
14150    680157484,
14151    3264086791,
14152    3727034815,
14153    798549062,
14154    3068463300,
14155    669812542,
14156    1965902997,
14157    2311072371,
14158    3079287749,
14159    2542834724,
14160    1587730355,
14161    2558655180,
14162    1838763297,
14163    4172568578,
14164    2160380860,
14165    2950446516,
14166    1830851200,
14167    3214537066,
14168    3234673086,
14169    3652695478,
14170    3103302036,
14171    3465954368,
14172    4180570743,
14173    3534518722,
14174    371186900,
14175    4091394002,
14176    1013756921,
14177    443558693,
14178    591140762,
14179    656610661,
14180    2064733527,
14181    3808408202,
14182    983299427,
14183    4217306348,
14184    1164218401,
14185    2036361232,
14186    3237903670,
14187    2970183398,
14188    2293637521,
14189    135920445,
14190    1596005536,
14191    868652905,
14192    1191735827,
14193    3987079331,
14194    1365842164,
14195    1508074873,
14196    1642818143,
14197    3436143898,
14198    4105051793,
14199    1863199739,
14200    3425841570,
14201    1070791291,
14202    2135340676,
14203    2639720559,
14204    3364388739,
14205    3797761273,
14206    2092100514,
14207    2098706974,
14208    2329992200,
14209    414444763,
14210    2759250216,
14211    2913136690,
14212    3012980338,
14213    3327770644,
14214    4128942283,
14215    3362344229,
14216    161668409,
14217    3401762422,
14218    2852854788,
14219    4237092412,
14220    1245448751,
14221    3702405475,
14222    918849409,
14223    3829682756,
14224    1612361408,
14225    255302575,
14226    414620710,
14227    386293029,
14228    618761615,
14229    686024761,
14230    744062262,
14231    1502028603,
14232    1543798545,
14233    1641415225,
14234    1548121999,
14235    2257971049,
14236    2124837447,
14237    878733439,
14238    2340670452,
14239    2674090849,
14240    3118011750,
14241    2816338013,
14242    178571546,
14243    2841008029,
14244    3249261197,
14245    370232173,
14246    4092487128,
14247    3787567939,
14248    3898287302,
14249    4142016703,
14250    4285779501,
14251    30663912,
14252    151672195,
14253    180913835,
14254    3534235309,
14255    34183582,
14256    4083161638,
14257    651464351,
14258    1410311776,
14259    371621315,
14260    421602934,
14261    458937500,
14262    2710583246,
14263    712168842,
14264    730943059,
14265    1519723107,
14266    875212982,
14267    1247793383,
14268    4217322139,
14269    989813600,
14270    1057606514,
14271    3764662384,
14272    1443547269,
14273    3066811685,
14274    3598957382,
14275    1791427568,
14276    1171541710,
14277    3930727258,
14278    1473799048,
14279    1296054774,
14280    1747355813,
14281    765238787,
14282    2023008475,
14283    1190147516,
14284    2344328209,
14285    2495155989,
14286    2577859137,
14287    2857814560,
14288    3127329373,
14289    3296722158,
14290    2773229577,
14291    3376009661,
14292    3450001968,
14293    920941800,
14294    3526837441,
14295    3858973601,
14296    1702168830,
14297    4088613871,
14298    1464587427,
14299    223310468,
14300    388034151,
14301    2346547796,
14302    1663234329,
14303    1750829822,
14304    1967643923,
14305    2881302403,
14306    2278706468,
14307    2326990117,
14308    2511346984,
14309    3088785099,
14310    2616085763,
14311    3027500544,
14312    3417583519,
14313    4178218543,
14314    1412908157,
14315    797934924,
14316    3533637837,
14317    1449907751,
14318    3362830643,
14319    1451831482,
14320    2637935122,
14321    3070114915,
14322    3023287679,
14323    551924251,
14324    1669930486,
14325    46736908,
14326    2870852215,
14327    1120149824,
14328    2923708820,
14329    3887377256,
14330    3464197236,
14331    4241374559,
14332    527665290,
14333    996663016,
14334    885020215,
14335    1763758554,
14336    3059119137,
14337    2555315060,
14338    2762094724,
14339    2530899578,
14340    2770161927,
14341    2262137600,
14342    3547456240,
14343    858902117,
14344    1140367371,
14345    1215030156,
14346    443490822,
14347    294390719,
14348    3032677281,
14349    1917451875,
14350    4184019303,
14351    3277199633,
14352    1271484400,
14353    1297294717,
14354    3560552546,
14355    171494987,
14356    195244192,
14357    3002890475,
14358    1811839150,
14359    265392489,
14360    1461398554,
14361    3205759417,
14362    333855951,
14363    529068443,
14364    660038281,
14365    557400685,
14366    663341511,
14367    930804377,
14368    1922045399,
14369    716890919,
14370    162167595,
14371    1654776395,
14372    1779143013,
14373    1123617794,
14374    2984325996,
14375    1162789888,
14376    1318479490,
14377    1235468610,
14378    3561562003,
14379    1486207619,
14380    1551372768,
14381    1850331254,
14382    3255947500,
14383    1037370721,
14384    1989327599,
14385    2137526937,
14386    835638766,
14387    2269130237,
14388    1962162282,
14389    3244209297,
14390    2330636993,
14391    3095831808,
14392    1396344138,
14393    2603020391,
14394    3434076295,
14395    3280064277,
14396    2656211099,
14397    3335250889,
14398    2550961007,
14399    3510242586,
14400    3536471583,
14401    3950980241,
14402    4033586023,
14403    117250846,
14404    3088282680,
14405    4041974454,
14406    4244540017,
14407    1167160774,
14408    899320334,
14409    1200870684,
14410    1752686878,
14411    1906988301,
14412    3804101227,
14413    2575525651,
14414    2919787747,
14415    3508792859,
14416    3548535223,
14417    3783756895,
14418    3797961332,
14419    4043078107,
14420    3115038057,
14421    2313593054,
14422    49456560,
14423    592180731,
14424    1051471757,
14425    1097775533,
14426    706238670,
14427    877895868,
14428    1173092699,
14429    1461897718,
14430    1767704813,
14431    1770165905,
14432    1923453688,
14433    2212501241,
14434    2305269460,
14435    2488410748,
14436    3782099915,
14437    2844616706,
14438    3383007207,
14439    3392887901,
14440    504514034,
14441    3765247327,
14442    1000070091,
14443    3727494858,
14444    3657635382,
14445    3839047923,
14446    3886529747,
14447    4069720347,
14448    4164704452,
14449    342197850,
14450    3540244297,
14451    2513230733,
14452    4117704995,
14453    3367298820,
14454    2680283743,
14455    3119663365,
14456    3697738938,
14457    545363837,
14458    163402553,
14459    5908395,
14460    129135650,
14461    2289183712,
14462    200922300,
14463    761731755,
14464    894529125,
14465    1086964761,
14466    1168927492,
14467    2100052708,
14468    2438466459,
14469    3390051757,
14470    2498042266,
14471    2557754096,
14472    2600961503,
14473    487719832,
14474    703543228,
14475    2726532092,
14476    4199470013,
14477    3142155593,
14478    2550501832,
14479    4076840151,
14480    200553094,
14481    380957745,
14482    572905105,
14483    462664429,
14484    1466804584,
14485    330249537,
14486    2605012269,
14487    491456522,
14488    4126287524,
14489    502863753,
14490    952536201,
14491    3510682541,
14492    1137442027,
14493    1665981878,
14494    1761469971,
14495    3085467405,
14496    2045285083,
14497    796985462,
14498    3433956341,
14499    2217966239,
14500    2183547611,
14501    2279273489,
14502    1916983087,
14503    2348676810,
14504    2403632109,
14505    2409539315,
14506    545986953,
14507    176166202,
14508    2477389837,
14509    2573160348,
14510    2796513469,
14511    3972309363,
14512    528662843,
14513    1038982109,
14514    1125913837,
14515    1318081294,
14516    1417425499,
14517  };
14518  return descriptors_with_coding_scheme;
14519}
14520