summaryrefslogtreecommitdiff
path: root/plugins/shn/bitshift.h
blob: ad491f92749f230fd68ad2c19bdd3d1a9e273c66 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
char ulaw_maxshift[256] = {12,8,7,9,7,8,7,10,7,8,7,9,7,8,7,11,6,7,6,8,6,7,6,9,6,7,6,8,6,7,6,10,5,6,5,7,5,6,5,8,5,6,5,7,5,6,5,9,5,4,6,4,5,4,7,4,5,4,6,4,5,4,8,4,3,5,3,4,3,6,3,4,3,5,3,4,3,7,3,4,2,3,2,5,2,3,2,4,2,3,2,6,2,3,2,4,1,2,1,3,1,2,1,5,1,2,1,3,1,2,1,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,0,7,8,7,9,7,8,7,10,7,8,7,9,7,8,7,11,6,7,6,8,6,7,6,9,6,7,6,8,6,7,6,10,5,6,5,7,5,6,5,8,5,6,5,7,5,6,5,9,5,4,6,4,5,4,7,4,5,4,6,4,5,4,8,4,3,5,3,4,3,6,3,4,3,5,3,4,3,7,3,4,2,3,2,5,2,3,2,4,2,3,2,6,2,3,2,4,1,2,1,3,1,2,1,5,1,2,1,3,1,2,1,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,12};

/*schar ulaw_inward[13][256] = {
{4294967169,4294967170,4294967171,4294967172,4294967173,4294967174,4294967175,4294967176,4294967177,4294967178,4294967179,4294967180,4294967181,4294967182,4294967183,4294967184,4294967185,4294967186,4294967187,4294967188,4294967189,4294967190,4294967191,4294967192,4294967193,4294967194,4294967195,4294967196,4294967197,4294967198,4294967199,4294967200,4294967201,4294967202,4294967203,4294967204,4294967205,4294967206,4294967207,4294967208,4294967209,4294967210,4294967211,4294967212,4294967213,4294967214,4294967215,4294967216,4294967217,4294967218,4294967219,4294967220,4294967221,4294967222,4294967223,4294967224,4294967225,4294967226,4294967227,4294967228,4294967229,4294967230,4294967231,4294967232,4294967233,4294967234,4294967235,4294967236,4294967237,4294967238,4294967239,4294967240,4294967241,4294967242,4294967243,4294967244,4294967245,4294967246,4294967247,4294967248,4294967249,4294967250,4294967251,4294967252,4294967253,4294967254,4294967255,4294967256,4294967257,4294967258,4294967259,4294967260,4294967261,4294967262,4294967263,4294967264,4294967265,4294967266,4294967267,4294967268,4294967269,4294967270,4294967271,4294967272,4294967273,4294967274,4294967275,4294967276,4294967277,4294967278,4294967279,4294967280,4294967281,4294967282,4294967283,4294967284,4294967285,4294967286,4294967287,4294967288,4294967289,4294967290,4294967291,4294967292,4294967293,4294967294,4294967295,4294967168,127,126,125,124,123,122,121,120,119,118,117,116,115,114,113,112,111,110,109,108,107,106,105,104,103,102,101,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0},
{4294967177,4294967178,4294967179,4294967180,4294967181,4294967182,4294967183,4294967184,4294967185,4294967186,4294967187,4294967188,4294967189,4294967190,4294967191,4294967192,4294967193,4294967194,4294967195,4294967196,4294967197,4294967198,4294967199,4294967200,4294967201,4294967202,4294967203,4294967204,4294967205,4294967206,4294967207,4294967208,4294967209,4294967210,4294967211,4294967212,4294967213,4294967214,4294967215,4294967216,4294967217,4294967218,4294967219,4294967220,4294967221,4294967222,4294967223,4294967224,4294967225,4294967226,4294967227,4294967228,4294967229,4294967230,4294967231,4294967232,4294967233,4294967234,4294967235,4294967236,4294967237,4294967238,4294967239,4294967240,4294967241,4294967242,4294967243,4294967244,4294967245,4294967246,4294967247,4294967248,4294967249,4294967250,4294967251,4294967252,4294967253,4294967254,4294967255,4294967256,4294967257,4294967258,4294967259,4294967260,4294967261,4294967262,4294967263,4294967264,4294967265,4294967266,4294967267,4294967268,4294967269,4294967270,4294967271,4294967272,4294967273,4294967274,4294967275,4294967276,4294967277,4294967278,4294967279,4294967280,4294967281,4294967282,4294967283,4294967284,4294967285,4294967286,4294967287,4294967288,4294967168,4294967289,4294967169,4294967290,4294967170,4294967291,4294967171,4294967292,4294967172,4294967293,4294967173,4294967294,4294967174,4294967295,4294967175,4294967176,119,118,117,116,115,114,113,112,111,110,109,108,107,106,105,104,103,102,101,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,127,7,126,6,125,5,124,4,123,3,122,2,121,1,120,0},
{4294967189,4294967190,4294967191,4294967192,4294967193,4294967194,4294967195,4294967196,4294967197,4294967198,4294967199,4294967200,4294967201,4294967202,4294967203,4294967204,4294967205,4294967206,4294967207,4294967208,4294967209,4294967210,4294967211,4294967212,4294967213,4294967214,4294967215,4294967216,4294967217,4294967218,4294967219,4294967220,4294967221,4294967222,4294967223,4294967224,4294967225,4294967226,4294967227,4294967228,4294967229,4294967230,4294967231,4294967232,4294967233,4294967234,4294967235,4294967236,4294967237,4294967238,4294967239,4294967240,4294967241,4294967242,4294967243,4294967244,4294967245,4294967246,4294967247,4294967248,4294967249,4294967250,4294967251,4294967252,4294967253,4294967254,4294967255,4294967256,4294967257,4294967258,4294967259,4294967260,4294967261,4294967262,4294967263,4294967264,4294967265,4294967266,4294967267,4294967268,4294967269,4294967270,4294967271,4294967272,4294967273,4294967274,4294967275,4294967276,4294967277,4294967278,4294967279,4294967280,4294967281,4294967282,4294967283,4294967284,4294967168,4294967285,4294967169,4294967286,4294967170,4294967287,4294967171,4294967288,4294967172,4294967289,4294967173,4294967290,4294967174,4294967291,4294967175,4294967292,4294967176,4294967177,4294967178,4294967293,4294967179,4294967180,4294967181,4294967294,4294967182,4294967183,4294967184,4294967295,4294967185,4294967186,4294967187,4294967188,107,106,105,104,103,102,101,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,127,11,126,10,125,9,124,8,123,7,122,6,121,5,120,4,119,118,117,3,116,115,114,2,113,112,111,1,110,109,108,0},
{4294967203,4294967204,4294967205,4294967206,4294967207,4294967208,4294967209,4294967210,4294967211,4294967212,4294967213,4294967214,4294967215,4294967216,4294967217,4294967218,4294967219,4294967220,4294967221,4294967222,4294967223,4294967224,4294967225,4294967226,4294967227,4294967228,4294967229,4294967230,4294967231,4294967232,4294967233,4294967234,4294967235,4294967236,4294967237,4294967238,4294967239,4294967240,4294967241,4294967242,4294967243,4294967244,4294967245,4294967246,4294967247,4294967248,4294967249,4294967250,4294967251,4294967252,4294967253,4294967254,4294967255,4294967256,4294967257,4294967258,4294967259,4294967260,4294967261,4294967262,4294967263,4294967264,4294967265,4294967266,4294967267,4294967268,4294967269,4294967270,4294967271,4294967272,4294967273,4294967274,4294967275,4294967276,4294967277,4294967278,4294967279,4294967280,4294967281,4294967282,4294967168,4294967283,4294967169,4294967284,4294967170,4294967285,4294967171,4294967286,4294967172,4294967287,4294967173,4294967288,4294967174,4294967289,4294967175,4294967290,4294967176,4294967177,4294967178,4294967291,4294967179,4294967180,4294967181,4294967292,4294967182,4294967183,4294967184,4294967293,4294967185,4294967186,4294967187,4294967294,4294967188,4294967189,4294967190,4294967191,4294967192,4294967193,4294967194,4294967295,4294967195,4294967196,4294967197,4294967198,4294967199,4294967200,4294967201,4294967202,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,127,13,126,12,125,11,124,10,123,9,122,8,121,7,120,6,119,118,117,5,116,115,114,4,113,112,111,3,110,109,108,2,107,106,105,104,103,102,101,1,100,99,98,97,96,95,94,0},
{4294967218,4294967219,4294967220,4294967221,4294967222,4294967223,4294967224,4294967225,4294967226,4294967227,4294967228,4294967229,4294967230,4294967231,4294967232,4294967233,4294967234,4294967235,4294967236,4294967237,4294967238,4294967239,4294967240,4294967241,4294967242,4294967243,4294967244,4294967245,4294967246,4294967247,4294967248,4294967249,4294967250,4294967251,4294967252,4294967253,4294967254,4294967255,4294967256,4294967257,4294967258,4294967259,4294967260,4294967261,4294967262,4294967263,4294967264,4294967265,4294967266,4294967267,4294967268,4294967269,4294967270,4294967271,4294967272,4294967273,4294967274,4294967275,4294967276,4294967277,4294967278,4294967279,4294967280,4294967281,4294967168,4294967282,4294967169,4294967283,4294967170,4294967284,4294967171,4294967285,4294967172,4294967286,4294967173,4294967287,4294967174,4294967288,4294967175,4294967289,4294967176,4294967177,4294967178,4294967290,4294967179,4294967180,4294967181,4294967291,4294967182,4294967183,4294967184,4294967292,4294967185,4294967186,4294967187,4294967293,4294967188,4294967189,4294967190,4294967191,4294967192,4294967193,4294967194,4294967294,4294967195,4294967196,4294967197,4294967198,4294967199,4294967200,4294967201,4294967295,4294967202,4294967203,4294967204,4294967205,4294967206,4294967207,4294967208,4294967209,4294967210,4294967211,4294967212,4294967213,4294967214,4294967215,4294967216,4294967217,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,127,14,126,13,125,12,124,11,123,10,122,9,121,8,120,7,119,118,117,6,116,115,114,5,113,112,111,4,110,109,108,3,107,106,105,104,103,102,101,2,100,99,98,97,96,95,94,1,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,0},
{4294967233,4294967234,4294967235,4294967236,4294967237,4294967238,4294967239,4294967240,4294967241,4294967242,4294967243,4294967244,4294967245,4294967246,4294967247,4294967248,4294967249,4294967250,4294967251,4294967252,4294967253,4294967254,4294967255,4294967256,4294967257,4294967258,4294967259,4294967260,4294967261,4294967262,4294967263,4294967264,4294967265,4294967266,4294967267,4294967268,4294967269,4294967270,4294967271,4294967272,4294967273,4294967274,4294967275,4294967276,4294967277,4294967278,4294967279,4294967280,4294967281,4294967168,4294967282,4294967169,4294967283,4294967170,4294967284,4294967171,4294967285,4294967172,4294967286,4294967173,4294967287,4294967174,4294967288,4294967175,4294967176,4294967289,4294967177,4294967178,4294967179,4294967290,4294967180,4294967181,4294967182,4294967291,4294967183,4294967184,4294967185,4294967292,4294967186,4294967187,4294967188,4294967189,4294967190,4294967293,4294967191,4294967192,4294967193,4294967194,4294967195,4294967196,4294967197,4294967294,4294967198,4294967199,4294967200,4294967201,4294967202,4294967203,4294967204,4294967205,4294967206,4294967207,4294967208,4294967295,4294967209,4294967210,4294967211,4294967212,4294967213,4294967214,4294967215,4294967216,4294967217,4294967218,4294967219,4294967220,4294967221,4294967222,4294967223,4294967224,4294967225,4294967226,4294967227,4294967228,4294967229,4294967230,4294967231,4294967232,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,127,14,126,13,125,12,124,11,123,10,122,9,121,8,120,119,7,118,117,116,6,115,114,113,5,112,111,110,4,109,108,107,106,105,3,104,103,102,101,100,99,98,2,97,96,95,94,93,92,91,90,89,88,87,1,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,0},
{4294967249,4294967250,4294967251,4294967252,4294967253,4294967254,4294967255,4294967256,4294967257,4294967258,4294967259,4294967260,4294967261,4294967262,4294967263,4294967264,4294967265,4294967266,4294967267,4294967268,4294967269,4294967270,4294967271,4294967272,4294967273,4294967274,4294967275,4294967276,4294967277,4294967278,4294967279,4294967280,4294967168,4294967281,4294967169,4294967282,4294967170,4294967283,4294967171,4294967284,4294967172,4294967285,4294967173,4294967286,4294967174,4294967287,4294967175,4294967288,4294967176,4294967177,4294967289,4294967178,4294967179,4294967180,4294967290,4294967181,4294967182,4294967183,4294967291,4294967184,4294967185,4294967186,4294967292,4294967187,4294967188,4294967189,4294967190,4294967191,4294967192,4294967293,4294967193,4294967194,4294967195,4294967196,4294967197,4294967198,4294967199,4294967294,4294967200,4294967201,4294967202,4294967203,4294967204,4294967205,4294967206,4294967207,4294967208,4294967209,4294967210,4294967211,4294967212,4294967295,4294967213,4294967214,4294967215,4294967216,4294967217,4294967218,4294967219,4294967220,4294967221,4294967222,4294967223,4294967224,4294967225,4294967226,4294967227,4294967228,4294967229,4294967230,4294967231,4294967232,4294967233,4294967234,4294967235,4294967236,4294967237,4294967238,4294967239,4294967240,4294967241,4294967242,4294967243,4294967244,4294967245,4294967246,4294967247,4294967248,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,127,15,126,14,125,13,124,12,123,11,122,10,121,9,120,8,119,118,7,117,116,115,6,114,113,112,5,111,110,109,4,108,107,106,105,104,103,3,102,101,100,99,98,97,96,2,95,94,93,92,91,90,89,88,87,86,85,84,83,1,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,0},
{4294967265,4294967266,4294967267,4294967268,4294967269,4294967270,4294967271,4294967272,4294967273,4294967274,4294967275,4294967276,4294967277,4294967278,4294967279,4294967280,4294967168,4294967281,4294967169,4294967282,4294967170,4294967283,4294967171,4294967284,4294967172,4294967285,4294967173,4294967286,4294967174,4294967287,4294967175,4294967288,4294967176,4294967177,4294967178,4294967289,4294967179,4294967180,4294967181,4294967290,4294967182,4294967183,4294967184,4294967291,4294967185,4294967186,4294967187,4294967292,4294967188,4294967189,4294967190,4294967191,4294967192,4294967193,4294967293,4294967194,4294967195,4294967196,4294967197,4294967198,4294967199,4294967200,4294967294,4294967201,4294967202,4294967203,4294967204,4294967205,4294967206,4294967207,4294967208,4294967209,4294967210,4294967211,4294967212,4294967213,4294967214,4294967295,4294967215,4294967216,4294967217,4294967218,4294967219,4294967220,4294967221,4294967222,4294967223,4294967224,4294967225,4294967226,4294967227,4294967228,4294967229,4294967230,4294967231,4294967232,4294967233,4294967234,4294967235,4294967236,4294967237,4294967238,4294967239,4294967240,4294967241,4294967242,4294967243,4294967244,4294967245,4294967246,4294967247,4294967248,4294967249,4294967250,4294967251,4294967252,4294967253,4294967254,4294967255,4294967256,4294967257,4294967258,4294967259,4294967260,4294967261,4294967262,4294967263,4294967264,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,127,15,126,14,125,13,124,12,123,11,122,10,121,9,120,8,119,118,117,7,116,115,114,6,113,112,111,5,110,109,108,4,107,106,105,104,103,102,3,101,100,99,98,97,96,95,2,94,93,92,91,90,89,88,87,86,85,84,83,82,81,1,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,0},
{4294967280,4294967281,4294967168,4294967282,4294967169,4294967283,4294967170,4294967284,4294967171,4294967285,4294967172,4294967286,4294967173,4294967287,4294967174,4294967288,4294967175,4294967176,4294967177,4294967289,4294967178,4294967179,4294967180,4294967290,4294967181,4294967182,4294967183,4294967291,4294967184,4294967185,4294967186,4294967292,4294967187,4294967188,4294967189,4294967190,4294967191,4294967192,4294967193,4294967293,4294967194,4294967195,4294967196,4294967197,4294967198,4294967199,4294967200,4294967294,4294967201,4294967202,4294967203,4294967204,4294967205,4294967206,4294967207,4294967208,4294967209,4294967210,4294967211,4294967212,4294967213,4294967214,4294967295,4294967215,4294967216,4294967217,4294967218,4294967219,4294967220,4294967221,4294967222,4294967223,4294967224,4294967225,4294967226,4294967227,4294967228,4294967229,4294967230,4294967231,4294967232,4294967233,4294967234,4294967235,4294967236,4294967237,4294967238,4294967239,4294967240,4294967241,4294967242,4294967243,4294967244,4294967245,4294967246,4294967247,4294967248,4294967249,4294967250,4294967251,4294967252,4294967253,4294967254,4294967255,4294967256,4294967257,4294967258,4294967259,4294967260,4294967261,4294967262,4294967263,4294967264,4294967265,4294967266,4294967267,4294967268,4294967269,4294967270,4294967271,4294967272,4294967273,4294967274,4294967275,4294967276,4294967277,4294967278,4294967279,127,15,126,14,125,13,124,12,123,11,122,10,121,9,120,8,119,118,117,7,116,115,114,6,113,112,111,5,110,109,108,4,107,106,105,104,103,102,101,3,100,99,98,97,96,95,94,2,93,92,91,90,89,88,87,86,85,84,83,82,81,80,1,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,0},
{4294967288,4294967168,4294967169,4294967289,4294967170,4294967171,4294967172,4294967290,4294967173,4294967174,4294967175,4294967291,4294967176,4294967177,4294967178,4294967292,4294967179,4294967180,4294967181,4294967182,4294967183,4294967184,4294967185,4294967293,4294967186,4294967187,4294967188,4294967189,4294967190,4294967191,4294967192,4294967294,4294967193,4294967194,4294967195,4294967196,4294967197,4294967198,4294967199,4294967200,4294967201,4294967202,4294967203,4294967204,4294967205,4294967206,4294967207,4294967295,4294967208,4294967209,4294967210,4294967211,4294967212,4294967213,4294967214,4294967215,4294967216,4294967217,4294967218,4294967219,4294967220,4294967221,4294967222,4294967223,4294967224,4294967225,4294967226,4294967227,4294967228,4294967229,4294967230,4294967231,4294967232,4294967233,4294967234,4294967235,4294967236,4294967237,4294967238,4294967239,4294967240,4294967241,4294967242,4294967243,4294967244,4294967245,4294967246,4294967247,4294967248,4294967249,4294967250,4294967251,4294967252,4294967253,4294967254,4294967255,4294967256,4294967257,4294967258,4294967259,4294967260,4294967261,4294967262,4294967263,4294967264,4294967265,4294967266,4294967267,4294967268,4294967269,4294967270,4294967271,4294967272,4294967273,4294967274,4294967275,4294967276,4294967277,4294967278,4294967279,4294967280,4294967281,4294967282,4294967283,4294967284,4294967285,4294967286,4294967287,127,126,125,7,124,123,122,6,121,120,119,5,118,117,116,4,115,114,113,112,111,110,109,3,108,107,106,105,104,103,102,2,101,100,99,98,97,96,95,94,93,92,91,90,89,88,87,1,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,0},
{4294967292,4294967168,4294967169,4294967170,4294967171,4294967172,4294967173,4294967293,4294967174,4294967175,4294967176,4294967177,4294967178,4294967179,4294967180,4294967294,4294967181,4294967182,4294967183,4294967184,4294967185,4294967186,4294967187,4294967188,4294967189,4294967190,4294967191,4294967192,4294967193,4294967194,4294967195,4294967295,4294967196,4294967197,4294967198,4294967199,4294967200,4294967201,4294967202,4294967203,4294967204,4294967205,4294967206,4294967207,4294967208,4294967209,4294967210,4294967211,4294967212,4294967213,4294967214,4294967215,4294967216,4294967217,4294967218,4294967219,4294967220,4294967221,4294967222,4294967223,4294967224,4294967225,4294967226,4294967227,4294967228,4294967229,4294967230,4294967231,4294967232,4294967233,4294967234,4294967235,4294967236,4294967237,4294967238,4294967239,4294967240,4294967241,4294967242,4294967243,4294967244,4294967245,4294967246,4294967247,4294967248,4294967249,4294967250,4294967251,4294967252,4294967253,4294967254,4294967255,4294967256,4294967257,4294967258,4294967259,4294967260,4294967261,4294967262,4294967263,4294967264,4294967265,4294967266,4294967267,4294967268,4294967269,4294967270,4294967271,4294967272,4294967273,4294967274,4294967275,4294967276,4294967277,4294967278,4294967279,4294967280,4294967281,4294967282,4294967283,4294967284,4294967285,4294967286,4294967287,4294967288,4294967289,4294967290,4294967291,127,126,125,124,123,122,121,3,120,119,118,117,116,115,114,2,113,112,111,110,109,108,107,106,105,104,103,102,101,100,99,1,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,0},
{4294967294,4294967168,4294967169,4294967170,4294967171,4294967172,4294967173,4294967174,4294967175,4294967176,4294967177,4294967178,4294967179,4294967180,4294967181,4294967295,4294967182,4294967183,4294967184,4294967185,4294967186,4294967187,4294967188,4294967189,4294967190,4294967191,4294967192,4294967193,4294967194,4294967195,4294967196,4294967197,4294967198,4294967199,4294967200,4294967201,4294967202,4294967203,4294967204,4294967205,4294967206,4294967207,4294967208,4294967209,4294967210,4294967211,4294967212,4294967213,4294967214,4294967215,4294967216,4294967217,4294967218,4294967219,4294967220,4294967221,4294967222,4294967223,4294967224,4294967225,4294967226,4294967227,4294967228,4294967229,4294967230,4294967231,4294967232,4294967233,4294967234,4294967235,4294967236,4294967237,4294967238,4294967239,4294967240,4294967241,4294967242,4294967243,4294967244,4294967245,4294967246,4294967247,4294967248,4294967249,4294967250,4294967251,4294967252,4294967253,4294967254,4294967255,4294967256,4294967257,4294967258,4294967259,4294967260,4294967261,4294967262,4294967263,4294967264,4294967265,4294967266,4294967267,4294967268,4294967269,4294967270,4294967271,4294967272,4294967273,4294967274,4294967275,4294967276,4294967277,4294967278,4294967279,4294967280,4294967281,4294967282,4294967283,4294967284,4294967285,4294967286,4294967287,4294967288,4294967289,4294967290,4294967291,4294967292,4294967293,127,126,125,124,123,122,121,120,119,118,117,116,115,114,113,1,112,111,110,109,108,107,106,105,104,103,102,101,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,0},
{4294967295,4294967168,4294967169,4294967170,4294967171,4294967172,4294967173,4294967174,4294967175,4294967176,4294967177,4294967178,4294967179,4294967180,4294967181,4294967182,4294967183,4294967184,4294967185,4294967186,4294967187,4294967188,4294967189,4294967190,4294967191,4294967192,4294967193,4294967194,4294967195,4294967196,4294967197,4294967198,4294967199,4294967200,4294967201,4294967202,4294967203,4294967204,4294967205,4294967206,4294967207,4294967208,4294967209,4294967210,4294967211,4294967212,4294967213,4294967214,4294967215,4294967216,4294967217,4294967218,4294967219,4294967220,4294967221,4294967222,4294967223,4294967224,4294967225,4294967226,4294967227,4294967228,4294967229,4294967230,4294967231,4294967232,4294967233,4294967234,4294967235,4294967236,4294967237,4294967238,4294967239,4294967240,4294967241,4294967242,4294967243,4294967244,4294967245,4294967246,4294967247,4294967248,4294967249,4294967250,4294967251,4294967252,4294967253,4294967254,4294967255,4294967256,4294967257,4294967258,4294967259,4294967260,4294967261,4294967262,4294967263,4294967264,4294967265,4294967266,4294967267,4294967268,4294967269,4294967270,4294967271,4294967272,4294967273,4294967274,4294967275,4294967276,4294967277,4294967278,4294967279,4294967280,4294967281,4294967282,4294967283,4294967284,4294967285,4294967286,4294967287,4294967288,4294967289,4294967290,4294967291,4294967292,4294967293,4294967294,127,126,125,124,123,122,121,120,119,118,117,116,115,114,113,112,111,110,109,108,107,106,105,104,103,102,101,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0}
};*/

uchar ulaw_outward[13][256] = {
{127,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,255,254,253,252,251,250,249,248,247,246,245,244,243,242,241,240,239,238,237,236,235,234,233,232,231,230,229,228,227,226,225,224,223,222,221,220,219,218,217,216,215,214,213,212,211,210,209,208,207,206,205,204,203,202,201,200,199,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,178,177,176,175,174,173,172,171,170,169,168,167,166,165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,130,129,128},
{112,114,116,118,120,122,124,126,127,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,113,115,117,119,121,123,125,255,253,251,249,247,245,243,241,239,238,237,236,235,234,233,232,231,230,229,228,227,226,225,224,223,222,221,220,219,218,217,216,215,214,213,212,211,210,209,208,207,206,205,204,203,202,201,200,199,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,178,177,176,175,174,173,172,171,170,169,168,167,166,165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,130,129,128,254,252,250,248,246,244,242,240},
{96,98,100,102,104,106,108,110,112,113,114,116,117,118,120,121,122,124,125,126,127,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,97,99,101,103,105,107,109,111,115,119,123,255,251,247,243,239,237,235,233,231,229,227,225,223,222,221,220,219,218,217,216,215,214,213,212,211,210,209,208,207,206,205,204,203,202,201,200,199,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,178,177,176,175,174,173,172,171,170,169,168,167,166,165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,130,129,128,254,253,252,250,249,248,246,245,244,242,241,240,238,236,234,232,230,228,226,224},
{80,82,84,86,88,90,92,94,96,97,98,100,101,102,104,105,106,108,109,110,112,113,114,115,116,117,118,120,121,122,123,124,125,126,127,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,81,83,85,87,89,91,93,95,99,103,107,111,119,255,247,239,235,231,227,223,221,219,217,215,213,211,209,207,206,205,204,203,202,201,200,199,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,178,177,176,175,174,173,172,171,170,169,168,167,166,165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,130,129,128,254,253,252,251,250,249,248,246,245,244,243,242,241,240,238,237,236,234,233,232,230,229,228,226,225,224,222,220,218,216,214,212,210,208},
{64,66,68,70,72,74,76,78,80,81,82,84,85,86,88,89,90,92,93,94,96,97,98,99,100,101,102,104,105,106,107,108,109,110,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,65,67,69,71,73,75,77,79,83,87,91,95,103,111,255,239,231,223,219,215,211,207,205,203,201,199,197,195,193,191,190,189,188,187,186,185,184,183,182,181,180,179,178,177,176,175,174,173,172,171,170,169,168,167,166,165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,130,129,128,254,253,252,251,250,249,248,247,246,245,244,243,242,241,240,238,237,236,235,234,233,232,230,229,228,227,226,225,224,222,221,220,218,217,216,214,213,212,210,209,208,206,204,202,200,198,196,194,192},
{49,51,53,55,57,59,61,63,64,66,67,68,70,71,72,74,75,76,78,79,80,81,82,84,85,86,87,88,89,90,92,93,94,95,96,97,98,99,100,101,102,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,50,52,54,56,58,60,62,65,69,73,77,83,91,103,255,231,219,211,205,201,197,193,190,188,186,184,182,180,178,176,175,174,173,172,171,170,169,168,167,166,165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,130,129,128,254,253,252,251,250,249,248,247,246,245,244,243,242,241,240,239,238,237,236,235,234,233,232,230,229,228,227,226,225,224,223,222,221,220,218,217,216,215,214,213,212,210,209,208,207,206,204,203,202,200,199,198,196,195,194,192,191,189,187,185,183,181,179,177},
{32,34,36,38,40,42,44,46,48,49,51,52,53,55,56,57,59,60,61,63,64,65,66,67,68,70,71,72,73,74,75,76,78,79,80,81,82,83,84,85,86,87,88,89,90,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,33,35,37,39,41,43,45,47,50,54,58,62,69,77,91,255,219,205,197,190,186,182,178,175,173,171,169,167,165,163,161,159,158,157,156,155,154,153,152,151,150,149,148,147,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,130,129,128,254,253,252,251,250,249,248,247,246,245,244,243,242,241,240,239,238,237,236,235,234,233,232,231,230,229,228,227,226,225,224,223,222,221,220,218,217,216,215,214,213,212,211,210,209,208,207,206,204,203,202,201,200,199,198,196,195,194,193,192,191,189,188,187,185,184,183,181,180,179,177,176,174,172,170,168,166,164,162,160},
{16,18,20,22,24,26,28,30,32,33,34,36,37,38,40,41,42,44,45,46,48,49,50,51,52,53,55,56,57,58,59,60,61,63,64,65,66,67,68,69,70,71,72,73,74,75,76,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,19,21,23,25,27,29,31,35,39,43,47,54,62,77,255,205,190,182,175,171,167,163,159,157,155,153,151,149,147,145,143,142,141,140,139,138,137,136,135,134,133,132,131,130,129,128,254,253,252,251,250,249,248,247,246,245,244,243,242,241,240,239,238,237,236,235,234,233,232,231,230,229,228,227,226,225,224,223,222,221,220,219,218,217,216,215,214,213,212,211,210,209,208,207,206,204,203,202,201,200,199,198,197,196,195,194,193,192,191,189,188,187,186,185,184,183,181,180,179,178,177,176,174,173,172,170,169,168,166,165,164,162,161,160,158,156,154,152,150,148,146,144},
{2,4,6,8,10,12,14,16,17,18,20,21,22,24,25,26,28,29,30,32,33,34,35,36,37,38,40,41,42,43,44,45,46,48,49,50,51,52,53,54,55,56,57,58,59,60,61,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,0,1,3,5,7,9,11,13,15,19,23,27,31,39,47,62,255,190,175,167,159,155,151,147,143,141,139,137,135,133,131,129,254,253,252,251,250,249,248,247,246,245,244,243,242,241,240,239,238,237,236,235,234,233,232,231,230,229,228,227,226,225,224,223,222,221,220,219,218,217,216,215,214,213,212,211,210,209,208,207,206,205,204,203,202,201,200,199,198,197,196,195,194,193,192,191,189,188,187,186,185,184,183,182,181,180,179,178,177,176,174,173,172,171,170,169,168,166,165,164,163,162,161,160,158,157,156,154,153,152,150,149,148,146,145,144,142,140,138,136,134,132,130,128},
{1,2,4,5,6,8,9,10,12,13,14,16,17,18,19,20,21,22,24,25,26,27,28,29,30,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,0,3,7,11,15,23,31,47,255,175,159,151,143,139,135,131,254,253,252,251,250,249,248,247,246,245,244,243,242,241,240,239,238,237,236,235,234,233,232,231,230,229,228,227,226,225,224,223,222,221,220,219,218,217,216,215,214,213,212,211,210,209,208,207,206,205,204,203,202,201,200,199,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,178,177,176,174,173,172,171,170,169,168,167,166,165,164,163,162,161,160,158,157,156,155,154,153,152,150,149,148,147,146,145,144,142,141,140,138,137,136,134,133,132,130,129,128},
{1,2,3,4,5,6,8,9,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,0,7,15,31,255,159,143,135,254,253,252,251,250,249,248,247,246,245,244,243,242,241,240,239,238,237,236,235,234,233,232,231,230,229,228,227,226,225,224,223,222,221,220,219,218,217,216,215,214,213,212,211,210,209,208,207,206,205,204,203,202,201,200,199,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,178,177,176,175,174,173,172,171,170,169,168,167,166,165,164,163,162,161,160,158,157,156,155,154,153,152,151,150,149,148,147,146,145,144,142,141,140,139,138,137,136,134,133,132,131,130,129,128},
{1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,0,15,255,143,254,253,252,251,250,249,248,247,246,245,244,243,242,241,240,239,238,237,236,235,234,233,232,231,230,229,228,227,226,225,224,223,222,221,220,219,218,217,216,215,214,213,212,211,210,209,208,207,206,205,204,203,202,201,200,199,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,178,177,176,175,174,173,172,171,170,169,168,167,166,165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146,145,144,142,141,140,139,138,137,136,135,134,133,132,131,130,129,128},
{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,0,255,254,253,252,251,250,249,248,247,246,245,244,243,242,241,240,239,238,237,236,235,234,233,232,231,230,229,228,227,226,225,224,223,222,221,220,219,218,217,216,215,214,213,212,211,210,209,208,207,206,205,204,203,202,201,200,199,198,197,196,195,194,193,192,191,190,189,188,187,186,185,184,183,182,181,180,179,178,177,176,175,174,173,172,171,170,169,168,167,166,165,164,163,162,161,160,159,158,157,156,155,154,153,152,151,150,149,148,147,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,130,129,128}
};