-
Notifications
You must be signed in to change notification settings - Fork 3
/
lutLDBN.h
118 lines (103 loc) · 118 KB
/
lutLDBN.h
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
#pragma once
/*
* Reference-matching code for LDBN in the paper:
* Ahmed, Perrier, Coeurjolly, Ostromoukhov, Guo, Yan, Huang, and Deussen
* Low-Discrepancy Blue Noise Sampling
* SIGGRAPH Asia 2016
*
* Coded by Abdalla G. M. Ahmed, 2016-09-19.
* Copyright (c) 2016, Abdalla G. M. Ahmed
* All rights reserved.
*
* Refactoring by David Coeurjolly 2018-11-22
* Copyright (c) 2018, David Coeurjolly
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those
* of the authors and should not be interpreted as representing official policies,
* either expressed or implied, of the LDBN project.
*/
#include <array>
#include <vector>
#include <cmath>
std::vector<unsigned char> lutLDBN_BNOT={113,38,73,177,139,241,226,99,55,14,173,91,195,147,219,31,15,49,166,22,242,122,138,199,215,107,75,151,187,43,83,229,9,86,180,97,70,114,40,156,28,50,129,219,235,244,171,205,195,131,240,227,103,117,95,187,2,208,69,149,169,53,46,19,221,77,175,127,3,246,158,58,178,196,228,100,84,132,40,21,113,130,172,18,146,194,188,34,248,64,59,12,220,236,86,109,19,169,109,213,94,122,140,156,230,199,247,11,183,39,79,59,12,104,84,116,52,33,161,250,194,150,230,139,183,223,27,71,123,37,197,247,142,178,214,72,226,11,48,98,92,164,148,18,193,122,220,104,57,251,130,2,34,19,77,237,191,163,85,153,70,210,199,246,104,112,174,30,145,185,12,44,58,135,93,233,70,226,135,254,172,184,106,119,87,11,48,32,18,156,210,200,52,100,136,160,116,184,156,220,92,193,39,31,255,12,228,72,208,193,169,157,255,128,48,104,127,8,32,29,91,235,185,74,150,186,160,96,210,118,202,30,50,8,40,135,242,225,73,81,25,165,181,213,53,66,42,115,206,233,241,128,0,81,145,101,236,171,11,248,184,56,212,78,197,122,137,150,86,37,19,109,101,63,223,141,124,146,7,43,75,23,195,254,168,184,224,80,104,84,140,120,146,15,215,173,237,253,78,38,180,60,192,16,44,106,6,244,148,116,160,128,83,61,237,73,222,30,182,194,235,139,177,204,240,23,55,151,79,117,12,34,92,103,167,215,79,167,43,248,144,63,87,11,222,111,143,116,228,26,181,193,217,49,17,46,85,115,78,150,190,130,172,4,240,224,196,100,154,42,214,83,61,205,117,72,169,238,248,137,9,176,16,104,45,67,177,245,49,25,167,7,81,121,198,145,222,130,232,108,172,226,58,191,223,71,15,207,143,113,33,241,25,93,157,107,27,135,54,239,111,11,81,171,147,247,75,190,214,122,196,46,218,72,34,31,127,63,131,186,0,148,105,173,235,93,241,198,206,165,215,183,7,116,232,91,35,253,133,25,49,66,106,148,88,128,24,159,11,188,218,65,114,196,236,49,169,105,252,46,218,188,156,77,231,247,163,83,115,134,26,8,61,201,45,109,85,193,178,108,210,174,118,225,74,52,15,143,242,153,25,41,227,129,244,48,176,20,76,9,95,127,197,149,209,46,165,105,45,221,187,12,53,233,142,78,201,118,102,248,26,150,86,166,145,169,47,249,204,65,124,130,226,222,109,63,191,95,3,21,213,1,62,136,152,80,103,127,78,195,246,40,160,16,176,228,128,44,100,49,85,239,15,121,174,190,67,155,243,206,30,209,169,110,82,44,30,49,121,4,176,142,229,251,198,150,79,211,187,151,127,8,192,24,167,215,251,37,81,142,56,234,66,98,84,238,126,170,62,202,240,100,38,188,4,130,159,219,29,75,170,18,254,190,229,147,142,12,196,220,111,55,91,75,39,123,70,56,216,251,0,88,44,132,204,124,178,239,23,151,111,167,231,115,66,176,217,8,255,136,104,160,152,40,17,83,207,55,59,73,116,34,211,23,8,104,255,140,180,150,172,230,91,203,3,153,73,118,90,202,226,212,165,255,138,108,190,35,27,59,173,83,207,245,44,56,216,154,135,11,120,232,109,29,77,182,94,19,187,243,4,108,168,32,216,145,79,113,203,51,142,233,175,159,247,105,209,185,231,203,85,127,2,132,72,24,60,34,36,228,184,223,167,59,75,242,136,88,204,148,120,108,12,24,151,59,135,243,93,37,105,10,202,184,116,68,236,26,174,218,172,120,56,199,87,3,176,245,38,22,105,69,237,153,137,214,81,189,99,139,49,173,153,230,8,215,31,255,69,47,125,197,133,49,42,114,86,206,17,241,0,168,222,78,178,234,98,156,218,28,129,240,83,59,227,149,10,194,116,96,32,160,66,176,80,160,24,246,41,101,113,196,233,153,14,179,69,221,131,62,198,166,58,155,83,117,110,41,247,226,217,10,70,18,178,132,46,220,186,132,52,96,161,253,202,69,235,127,23,7,89,145,4,112,48,128,90,173,237,205,211,189,245,74,102,146,34,29,61,219,187,4,160,158,203,241,41,107,23,137,233,94,70,120,80,148,229,137,246,34,28,188,196,72,220,60,15,99,115,173,1,50,110,83,219,201,229,190,137,169,255,74,112,144,32,22,227,203,246,7,217,62,110,153,65,26,114,162,46,133,81,185,165,158,102,244,205,29,95,139,231,219,3,53,67,117,33,182,110,194,81,22,153,115,43,246,128,235,59,5,163,221,181,70,53,29,253,194,211,69,165,118,139,7,178,232,149,33,86,106,90,182,205,165,254,140,228,108,40,213,63,75,147,21,11,114,148,90,217,165,3,118,194,176,234,132,98,67,19,241,34,49,105,71,191,133,125,233,158,242,44,194,210,49,4,168,24,90,34,247,204,228,156,163,29,189,129,220,64,113,58,102,1,80,36,106,190,138,26,217,171,243,198,145,61,79,115,4,224,84,97,54,26,15,248,32,226,154,76,80,197,186,137,126,165,213,235,205,89,103,151,247,29,125,129,161,222,7,43,51,179,77,249,110,118,139,217,77,153,187,6,194,51,45,93,169,29,229,217,53,206,42,123,70,165,105,133,186,26,153,238,94,10,244,48,144,224,162,74,253,25,103,91,133,116,0,200,184,37,223,207,187,12,240,96,214,146,125,70,42,56,164,129,225,25,89,86,0,147,109,79,53,169,118,234,215,137,184,27,207,253,41,37,29,125,129,229,83,205,254,171,151,55,3,183,103,211,79,125,149,163,91,111,75,235,207,223,15,240,16,138,188,38,58,98,35,255,66,24,88,147,127,131,227,55,14,193,214,182,163,118,25,243,6,92,78,56,100,205,141,190,169,218,234,46,147,91,215,197,41,150,254,0,96,132,48,236,28,161,113,68,190,213,149,197,171,141,244,21,233,62,90,182,2,98,118,72,36,212,160,120,87,69,177,43,245,141,57,107,203,13,146,228,16,60,74,102,25,129,177,234,248,84,0,214,147,169,197,124,35,167,159,183,131,231,119,33,246,204,108,81,7,209,19,59,69,244,52,164,28,106,226,38,137,154,188,114,70,6,207,91,215,215,4,40,113,22,230,105,62,255,64,160,150,132,92,184,206,31,159,127,109,15,182,58,170,142,65,87,211,239,253,34,196,18,89,233,97,147,127,1,56,128,212,168,197,37,240,65,188,26,190,42,76,100,252,196,234,52,145,213,1,165,117,129,92,56,108,11,221,27,251,134,177,69,113,234,202,42,90,154,161,47,207,117,106,73,252,212,83,157,6,56,16,232,168,182,130,194,100,148,54,132,90,21,253,41,77,179,14,120,232,164,219,119,219,41,186,172,228,100,72,144,94,249,204,12,130,26,60,17,169,205,127,235,47,252,60,100,157,69,81,142,213,15,188,136,152,92,57,74,127,31,191,12,36,168,222,105,246,225,206,190,100,20,228,200,148,251,81,78,175,7,112,32,143,217,49,110,177,78,206,222,250,134,84,167,159,31,7,124,224,46,58,39,159,13,188,98,222,133,126,161,53,227,67,23,87,207,247,138,198,178,222,8,61,243,160,152,226,81,101,29,41,117,74,38,233,149,57,6,214,102,127,163,131,185,85,31,255,200,72,88,61,21,185,102,174,73,225,205,211,123,41,14,134,156,255,192,135,240,64,48,100,191,23,43,85,163,147,13,116,228,208,231,151,23,179,13,90,221,97,57,198,129,122,34,240,170,70,112,220,98,82,196,144,136,243,70,162,16,182,36,12,232,51,227,95,67,45,241,185,138,15,208,172,26,106,126,146,204,50,2,166,153,241,41,115,193,51,107,223,231,71,19,89,133,188,135,211,155,187,14,48,80,21,171,227,253,38,102,205,115,77,75,248,96,148,1,180,20,192,237,133,126,218,170,50,39,87,143,248,94,177,225,161,197,50,36,100,125,157,1,20,216,64,184,0,124,200,60,160,72,85,45,250,236,28,108,151,215,143,128,80,16,60,198,124,32,229,147,211,10,176,100,175,79,240,51,19,147,231,87,195,131,246,45,217,105,179,77,169,7,120,210,172,17,74,123,183,13,230,197,35,147,109,247,59,138,83,14,206,90,118,142,186,77,57,25,174,254,146,40,212,108,238,9,158,29,117,61,219,171,111,199,91,251,45,229,65,185,143,126,245,106,94,8,229,47,135,149,201,182,54,162,222,78,18,146,239,87,119,35,185,128,29,69,13,246,210,164,104,48,200,221,12,187,46,95,139,114,192,172,248,109,157,69,234,26,58,34,58,98,186,194,87,3,112,224,144,212,252,16,72,160,135,120,238,145,110,161,81,6,245,193,190,46,50,210,68,140,31,191,205,29,3,117,53,99,35,255,136,224,84,160,221,71,155,77,149,49,250,138,188,196,228,218,166,113,94,102,27,39,15,184,24,160,56,210,82,150,66,134,234,242,39,103,203,127,14,252,54,35,27,13,125,130,204,228,166,186,89,69,209,106,156,92,66,50,210,235,191,13,21,33,202,244,159,175,123,103,131,83,11,51,157,74,220,180,226,200,135,250,168,42,110,30,113,206,49,174,126,138,108,146,250,228,24,92,223,5,186,72,36,175,151,23,219,101,55,9,124,41,177,238,85,249,68,204,132,156,39,223,133,62,118,170,18,72,242,98,227,13,183,201,89,201,17,125,15,240,85,142,238,62,42,184,212,156,72,108,172,214,158,42,27,59,227,185,78,129,94,245,4,164,96,200,112,55,187,14,227,139,251,65,102,174,38,116,156,202,212,25,89,89,138,124,212,44,148,186,192,28,172,15,244,48,96,229,77,51,142,210,82,41,123,227,157,9,97,179,73,197,169,17,254,201,186,37,250,130,230,22,91,61,161,116,0,216,144,70,98,4,168,236,154,210,44,86,53,198,242,26,106,113,67,135,177,238,140,44,116,144,55,109,211,206,91,71,27,3,180,248,160,42,110,54,121,11,185,137,145,246,22,89,227,219,78,201,165,51,237,127,128,152,29,245,38,74,208,88,161,101,203,191,7,60,218,11,237,131,113,175,47,111,247,155,203,85,75,182,22,90,162,211,43,147,237,61,205,111,15,251,123,19,131,182,72,32,109,53,71,207,191,151,87,13,240,16,230,138,165,221,117,38,252,204,179,142,146,236,100,56,92,15,215,31,79,167,115,140,41,145,214,86,198,103,183,21,117,229,173,61,73,9,248,18,100,194,215,7,52,239,183,171,93,67,244,36,124,157,129,102,170,112,224,69,223,5,240,48,18,150,33,81,177,128,200,104,54,44,244,148,136,212,75,114,234,163,203,27,5,176,93,147,53,6,106,142,250,70,226,194,210,89,169,189,33,122,18,239,79,117,201,81,105,190,17,2,146,128,240,56,172,212,42,166,66,212,102,134,24,112,144,80,59,205,47,15,252,224,188,40,93,141,209,163,155,103,55,23,117,2,196,186,228,76,245,222,0,168,157,241,66,194,18,58,190,225,41,87,135,113,111,103,255,128,72,50,154,2,216,176,16,164,207,123,91,235,43,159,115,27,11,217,130,58,189,173,111,47,231,95,255,65,201,105,186,226,248,80,192,152,132,219,71,173,39,31,55,11,120,144,92,9,110,70,143,249,234,202,58,28,176,32,169,215,127,4,44,216,205,253,162,120,92,138,109,182,57,155,21,231,71,185,196,220,172,76,82,155,19,143,244,230,12,44,120,100,48,141,214,33,188,108,148,20,236,94,63,77,165,126,195,249,0,53,65,13,83,255,137,238,22,188,220,146,98,196,161,116,38,225,22,126,140,188,104,76,220,159,167,249,0,192,58,90,34,194,125,21,129,94,33,151,187,251,64,164,232,100,218,62,10,238,23,253,125,105,174,203,3,56,131,94,74,42,158,209,177,110,241,132,228,204,70,112,220,36,56,176,157,1,26,162,81,43,151,119,0,224,240,19,71,135,85,57,177,102,218,204,172,212,166,207,127,2,156,68,84,104,53,46,133,248,176,232,17,10,116,36,217,17,158,229,101,89,174,190,194,241,142,59,75,215,63,0,192,152,244,160,104,87,31,47,231,131,182,127,66,106,26,250,166,57,133,225,217,2,153,125,46,65,95,183,197,3,244,58,194,148,232,72,216,120,39,83,105,165,19,187,129,156,164,52,177,103,247,128,72,211,4,16,204,34,226,85,117,161,249,65,201,141,62,222,29,85,113,7,177,46,99,227,155,35,19,187,247,164,11,149,69,133,122,220,60,106,86,193,233,171,135,254,40,157,229,105,213,69,114,82,8,185,19,203,63,188,94,137,116,228,208,168,34,146,102,53,78,243,9,26,207,51,29,121,140,212,248,204,13,109,227,43,83,165,189,74,149,165,89,123,41,49,129,30,238,5,180,152,102,70,198,242,218,4,223,247,46,227,67,83,183,143,163,126,22,206,149,53,99,231,211,155,119,197,186,71,13,89,101,242,128,40,24,164,58,41,254,26,204,130,220,116,232,144,48,6,184,88,72,96,168,98,20,146,124,239,3,59,137,65,244,212,82,34,180,168,192,33,193,241,133,126,20,98,152,234,185,49,2,208,84,172,66,23,251,66,149,217,175,207,83,235,103,55,131,112,43,189,12,96,92,116,33,254,62,138,10,168,16,198,152,226,218,67,179,41,85,49,235,179,14,212,148,196,19,111,247,130,66,112,175,7,176,88,45,167,75,244,20,199,155,119,109,131,54,218,226,162,156,22,220,178,52,6,80,64,232,244,134,206,105,41,126,202,240,109,7,81,57,23,151,123,143,222,181,67,229,37,173,229,21,221,143,190,92,64,56,192,248,157,47,119,111,171,3,205,37,243,14,112,71,223,107,231,191,23,83,151,167,143,59,97,114,199,87,247,138,78,184,16,160,32,54,237,6,212,154,42,58,182,68,253,213,133,161,225,203,157,107,27,123,6,80,184,192,56,98,148,233,83,171,135,113,44,24,252,72,209,12,104,60,146,72,204,172,125,233,2,28,220,255,134,180,84,43,27,235,87,191,63,47,159,143,245,98,113,8,76,204,174,211,117,143,63,6,152,84,42,30,214,101,239,255,73,178,168,196,232,152,20,98,50,190,196,114,168,7,83,67,254,217,41,133,165,195,246,113,7,182,72,90,46,30,155,221,99,235,131,57,211,115,10,166,253,135,51,93,229,41,65,186,204,108,30,158,198,51,211,5,176,31,75,171,242,132,100,46,238,117,149,93,207,187,167,63,79,19,219,109,137,246,154,236,117,14,86,38,101,87,227,197,45,77,241,21,169,157,189,140,114,60,210,4,228,216,168,82,58,97,145,37,126,29,191,13,141,67,205,252,212,6,162,50,26,101,69,85,241,44,194,148,183,239,143,117,22,150,102,229,91,255,198,223,3,75,177,38,116,56,162,130,108,204,251,115,1,49,134,177,44,236,28,84,161,158,69,211,180,208,131,114,160,13,240,80,236,98,74,61,198,37,145,17,129,82,62,158,71,99,241,36,123,6,236,198,166,190,222,30,141,222,21,78,56,172,230,90,202,188,149,41,122,5,111,243,128,98,180,44,202,78,112,220,228,164,58,30,249,89,147,14,229,57,78,89,147,203,211,169,253,102,26,143,179,4,44,123,107,131,85,213,165,237,205,59,243,67,29,7,114,158,46,188,188,208,96,200,24,152,249,68,237,6,58,94,117,43,143,171,47,251,0,125,99,83,197,223,235,163,185,62,68,26,134,154,112,133,166,253,230,8,219,111,19,43,195,49,185,72,80,152,34,22,178,146,76,170,255,131,116,105,57,0,192,88,210,234,70,82,230,221,173,251,200,48,44,111,187,17,143,121,4,152,205,182,239,67,49,0,214,86,161,105,241,34,112,155,23,135,93,213,69,54,230,41,158,103,247,27,171,3,185,205,131,121,109,13,252,208,16,200,232,64,57,141,186,42,124,156,172,94,126,107,79,211,149,161,188,3,25,33,62,229,249,205,141,94,194,208,13,240,21,238,33,110,81,173,117,177,134,150,74,52,15,23,75,240,85,137,209,169,113,106,38,184,52,225,149,199,203,126,95,23,137,145,4,191,239,167,247,65,42,60,216,108,36,24,148,192,182,160,55,79,115,8,224,221,142,240,108,84,76,117,12,228,152,38,178,90,106,174,242,58,135,221,29,205,58,82,33,122,236,76,18,194,156,217,169,133,246,102,6,180,18,66,119,159,135,231,83,1,189,174,243,194,52,109,45,211,253,46,142,158,89,21,55,14,102,174,210,234,124,65,206,180,104,88,136,11,122,234,202,18,146,38,180,251,78,210,162,56,11,25,248,175,127,69,217,46,54,195,91,187,103,231,147,141,105,245,138,89,67,27,3,153,51,45,179,207,223,127,235,167,227,109,185,138,58,82,0,37,113,30,65,154,247,163,213,199,139,123,41,214,230,74,91,175,252,200,181,53,10,146,22,102,63,47,179,117,174,70,218,204,148,92,108,130,241,234,2,31,207,39,115,27,79,211,91,3,184,52,232,147,143,240,164,96,176,81,10,230,214,166,17,75,43,147,103,125,253,130,202,49,26,218,138,10,244,224,44,156,52,168,120,64,93,111,183,199,133,184,15,120,104,19,61,225,175,253,72,220,82,34,146,201,109,251,133,120,10,144,232,160,16,56,192,84,72,210,189,41,27,99,253,33,149,93,9,161,118,58,198,210,136,237,179,78,78,88,145,231,47,135,252,18,179,1,48,219,205,167,111,127,128,176,224,126,45,21,221,161,54,81,102,78,240,145,10,194,88,136,160,225,9,178,18,148,60,105,209,70,246,199,43,119,167,189,129,81,231,199,242,74,46,25,101,119,63,7,147,223,23,111,7,116,251,137,174,86,54,154,207,71,187,33,217,237,98,143,240,155,11,209,58,230,202,180,41,89,171,29,79,118,136,20,59,15,187,109,173,94,238,122,200,156,76,208,32,251,64,97,243,163,27,223,5,230,125,181,206,85,137,145,62,45,17,105,62,138,146,196,191,35,117,213,251,0,88,64,168,224,177,17,201,243,65,210,236,106,159,95,135,121,39,175,7,54,54,132,232,104,196,176,28,153,167,91,245,78,123,6,33,218,17,57,73,218,42,106,255,6,84,192,232,168,177,126,128,150,158,169,217,249,136,205,109,185,83,55,10,74,18,45,126,230,30,98,15,93,133,62,122,146,36,179,206,218,162,236,65,249,38,210,68,186,128,54,100,84,28,244,198,167,147,239,11,120,3,48,224,165,109,83,19,43,249,117,137,217,65,150,182,194,156,108,218,65,241,36,8,116,16,188,84,229,57,130,174,197,223,111,139,252,237,147,167,191,4,80,73,119,35,203,19,55,95,163,235,47,55,107,207,126,78,156,240,133,188,15,214,30,145,217,97,29,35,143,127,251,174,197,235,67,51,183,9,86,39,167,59,119,67,139,19,253,94,154,214,8,100,204,186,230,232,156,128,104,33,61,211,23,11,251,85,118,170,205,69,188,225,54,74,127,134,180,28,90,146,207,15,248,96,166,211,39,215,151,11,240,72,224,104,33,87,127,141,178,170,18,58,198,109,163,182,66,118,154,12,217,237,55,203,27,91,247,128,36,164,216,228,247,196,84,38,26,188,139,125,0,153,78,60,104,212,28,196,170,236,79,248,176,38,58,15,89,143,147,121,102,21,157,167,47,183,12,104,248,127,128,196,78,220,82,231,55,10,46,218,58,165,141,124,16,178,156,92,70,105,193,248,232,23,203,43,79,107,51,181,238,82,128,244,219,11,150,172,116,164,103,127,0,94,217,233,21,39,135,243,179,65,206,150,58,40,92,156,143,240,105,13,60,200,18,190,222,174,233,125,74,42,234,181,134,125,21,1,50,108,154,255,64,88,216,203,167,87,235,253,128,155,127,72,20,107,14,48,201,213,38,182,164,150,229,37,107,255,136,124,186,172,29,5,91,67,214,63,199,91,227,163,197,124,184,96,79,59,47,143,223,159,15,244,16,56,128,212,88,168,72,117,238,183,19,207,7,240,32,155,111,26,234,194,164,72,148,220,90,58,140,7,127,37,111,242,178,172,8,34,19,91,117,101,153,73,131,252,214,233,193,178,50,226,180,88,72,11,216,138,118,34,102,244,52,148,160,24,203,163,111,255,5,48,157,233,85,33,178,72,31,215,207,143,120,236,156,58,3,222,90,114,28,72,168,43,141,186,105,241,198,60,40,66,236,196,115,211,91,139,19,3,145,105,254,164,176,192,210,232,168,112,83,13,77,53,19,142,34,247,96,188,146,214,66,89,17,161,137,48,39,245,149,197,113,235,3,190,106,163,99,35,203,25,153,237,181,57,1,218,136,255,66,123,95,199,139,71,254,146,114,110,94,174,2,61,217,234,42,189,19,189,91,47,135,53,205,65,242,228,168,123,155,221,97,25,4,162,70,220,191,7,240,80,104,18,126,138,204,156,52,40,235,27,231,95,137,151,251,59,199,167,7,216,74,180,36,120,110,19,11,237,173,203,113,85,221,141,145,73,58,106,184,247,45,169,255,46,158,207,87,3,133,188,238,109,75,125,59,223,19,189,137,149,235,39,241,26,12,80,222,206,124,98,69,54,165,37,126,172,194,226,18,98,54,209,142,240,76,8,190,90,145,229,142,78,242,188,120,162,146,42,6,208,52,82,204,20,109,241,145,41,73,190,206,166,61,99,11,113,209,85,237,19,133,86,132,208,32,52,123,173,109,19,243,65,201,186,149,5,225,81,110,17,177,0,152,61,75,175,223,143,248,239,127,207,47,231,143,121,166,38,252,82,216,197,153,70,180,20,60,8,111,127,8,239,103,250,32,28,68,208,164,193,141,190,145,49,81,222,141,94,110,230,250,199,51,65,112,162,186,28,4,146,46,66,180,197,165,157,21,41,248,80,100,15,57,134,120,208,232,24,44,140,188,244,171,235,111,15,49,153,122,220,196,94,76,122,190,162,140,84,65,41,57,101,9,248,216,156,234,18,193,248,200,82,44,56,168,114,64,104,144,214,136,239,187,9,30,158,101,227,123,193,240,160,131,181,34,90,63,8,16,222,66,106,201,248,41,158,118,218,178,0,224,168,48,30,85,142,66,152,240,128,16,53,197,39,215,99,11,165,65,185,229,117,89,49,70,214,162,106,190,134,146,127,199,29,243,238,10,92,34,68,182,136,44,236,97,49,221,83,197,9,244,20,119,163,157,163,63,0,212,143,183,97,225,205,254,158,113,29,69,89,33,127,223,135,155,167,11,101,95,79,240,63,31,47,239,207,191,247,66,184,228,58,172,117,38,110,25,215,14,130,92,195,157,93,193,21,61,117,231,3,141,249,105,182,44,150,163,215,69,94,68,15,248,144,176,215,119,130,226,98,195,53,26,170,42,186,135,93,67,113,110,42,172,145,9,56,200,24,238,248,213,187,65,215,45,25,117,174,154,4,107,235,245,61,130,84,192,193,61,134,166,154,44,212,20,236,255,72,83,189,0,109,118,226,36,85,199,213,0,175,187,134,112,21,253,102,73,151,63,0,54,195,19,211,133,112,40,81,247,64,157,99,235,171,185,185,61,147,105,89,73,122,203,175,255,34,210,132,30,10,234,153,141,87,63,255,101,201,9,126,17,181,161,210,72,226,45,61,65,22,190,90,122,0,209,167,231,135,47,247,151,195,105,182,6,146,70,120,84,100,193,210,162,50,36,20,232,139,252,228,179,0,37,93,247,173,57,138,194,106,114,218,25,153,65,43,113,201,105,175,95,159,27,215,8,139,55,247,73,230,183,29,73,147,165,87,15,112,224,52,203,244,208,39,135,186,102,89,61,138,34,156,220,71,122,192,20,7,250,104,164,236,184,208,48,148,238,85,33,15,113,68,168,240,99,133,177,204,16,104,228,8,150,185,249,42,134,122,22,50,214,94,65,173,195,49,45,147,115,211,253,6,22,195,85,78,130,98,177,161,225,254,74,26,36,219,107,187,0,152,168,57,198,225,131,83,123,197,181,3,35,31,255,219,159,67,173,83,123,103,59,237,139,169,121,202,26,134,154,94,209,230,77,3,240,48,99,47,179,159,3,248,104,40,236,120,24,80,200,219,143,79,189,53,169,182,146,77,237,31,247,4,48,44,110,138,118,201,165,213,87,59,91,39,179,172,30,134,222,197,246,13,145,65,112,228,98,42,102,140,228,88,253,117,0,48,20,180,212,156,202,164,74,216,42,106,178,248,116,142,156,10,84,202,78,237,57,165,21,243,33,21,11,93,237,117,153,105,77,182,201,54,132,160,216,35,63,13,212,68,156,121,101,246,196,224,80,163,189,19,141,237,245,174,209,132,80,96,28,45,7,118,62,195,149,73,186,238,181,155,205,41,62,118,22,97,9,90,69,133,248,216,174,124,186,4,36,98,50,219,227,139,157,70,240,198,174,94,30,177,81,33,218,158,230,142,60,74,116,9,167,243,29,109,195,67,89,46,238,131,113,62,158,109,19,183,171,240,194,11,208,48,32,96,116,189,199,155,15,249,214,164,136,64,80,226,20,212,197,153,9,22,225,241,86,102,70,115,42,58,138,170,186,128,168,220,124,64,224,84,17,253,38,184,148,8,62,97,195,102,255,45,55,19,231,171,121,8,138,177,93,73,209,206,155,171,125,29,203,237,189,55,103,211,10,145,130,68,91,47,245,213,181,134,198,106,116,162,21,13,58,146,71,39,227,241,92,212,149,169,87,239,79,251,207,185,117,140,4,16,57,102,38,70,90,38,226,130,178,252,18,98,172,156,126,199,7,57,209,185,130,28,167,249,197,153,69,127,63,45,13,81,109,237,211,157,78,92,194,228,106,254,62,170,1,218,21,181,134,38,126,194,170,209,246,66,22,178,40,92,49,153,109,1,120,224,132,220,136,39,126,94,230,166,255,14,70,188,18,110,58,148,192,80,160,145,198,106,211,61,227,187,141,23,75,11,114,33,244,222,185,97,10,22,175,126,68,206,147,227,133,43,87,247,51,47,183,173,155,227,131,244,99,59,221,3,93,77,122,18,204,194,82,34,26,140,60,255,97,225,165,147,179,65,5,122,220,50,206,71,85,117,41,225,131,241,190,17,6,216,100,144,168,60,164,84,76,201,233,246,114,100,12,208,144,16,41,142,189,201,107,191,255,142,84,209,38,25,121,145,238,166,55,69,9,143,240,196,112,176,232,168,64,15,57,221,37,145,27,87,101,121,74,102,161,131,177,250,92,232,220,8,28,200,48,44,155,59,115,229,78,81,202,255,174,138,28,108,156,0,40,212,189,197,222,126,40,18,226,7,186,150,49,133,86,174,246,97,73,165,19,41,149,134,190,68,245,102,202,225,213,61,12,117,89,213,70,1,81,113,110,173,137,244,184,156,204,22,50,236,44,178,108,150,202,2,226,121,211,135,55,87,23,43,173,77,244,156,4,162,185,123,99,223,75,27,63,87,47,207,255,135,231,16,71,177,51,87,171,199,3,133,114,210,33,252,100,152,238,58,33,105,169,65,122,179,93,21,213,2,238,158,195,240,128,84,120,158,65,217,102,12,183,198,17,165,243,130,44,48,224,110,89,187,205,27,135,115,231,151,251,78,58,166,211,39,15,240,160,144,40,202,54,65,184,99,141,94,226,219,13,112,27,27,7,190,64,114,210,132,100,248,235,43,167,155,59,203,91,151,43,187,193,142,102,242,90,13,58,124,236,18,76,162,223,15,124,40,160,60,178,200,84,104,24,148,233,69,214,143,252,37,193,120,216,17,158,6,234,140,188,82,172,111,63,71,240,52,164,200,36,76,120,152,86,229,211,133,101,21,182,255,4,56,103,215,1,116,20,76,232,165,85,193,188,255,128,158,41,41,231,95,135,53,5,188,171,147,115,109,31,203,219,77,248,107,211,35,249,64,150,230,203,19,163,61,125,136,176,3,85,94,106,52,194,120,176,12,16,131,227,35,173,159,243,77,221,157,195,181,225,65,94,126,214,2,56,103,244,28,132,36,172,154,114,36,164,94,57,198,17,229,109,75,181,138,212,12,255,47,117,211,75,231,191,142,146,196,80,16,162,12,100,255,55,239,47,207,79,189,221,105,81,161,153,135,27,51,119,2,240,115,136,104,86,215,203,151,39,167,244,234,7,190,61,29,77,114,72,228,201,252,110,185,4,24,56,92,34,156,168,222,143,227,126,161,242,73,111,159,13,180,42,56,80,222,133,20,192,25,81,107,53,123,15,151,67,185,128,236,168,204,242,43,217,25,69,118,150,206,90,244,52,172,220,136,231,189,6,33,101,81,254,102,137,186,218,33,30,158,166,206,116,226,58,68,8,46,182,57,78,230,154,213,109,19,85,205,118,132,168,8,249,21,165,73,205,126,89,237,151,47,245,6,98,220,58,186,143,255,173,45,89,225,135,219,77,182,111,123,10,56,148,26,206,115,138,234,36,255,200,88,166,145,53,21,105,221,77,185,1,92,247,174,143,239,9,153,53,199,181,117,105,213,17,37,77,235,123,38,180,148,131,17,105,49,69,89,174,202,240,4,216,20,198,120,156,44,82,219,171,253,226,70,102,49,11,189,132,148,122,30,138,180,56,40,168,88,100,200,211,233,254,74,2,48,208,18,69,252,224,160,94,106,154,206,125,138,33,6,186,109,35,139,158,114,92,162,234,206,250,73,30,222,62,185,6,170,181,206,157,237,14,94,97,122,78,54,25,211,35,243,132,24,84,40,187,0,215,207,175,159,55,235,99,113,131,241,70,247,0,107,181,74,42,20,152,236,208,48,171,87,115,202,142,162,94,53,159,143,248,224,42,182,74,216,18,200,15,112,111,127,136,29,190,34,86,162,105,240,79,149,206,223,9,50,233,229,125,105,158,54,207,253,162,22,33,69,219,83,191,137,11,212,116,96,204,181,229,67,243,21,43,163,155,131,58,12,84,34,102,78,217,181,227,163,121,202,253,2,24,152,56,84,137,45,126,139,87,19,5,49,106,185,74,208,148,160,203,255,231,231,47,7,53,75,177,214,204,172,82,22,102,127,129,244,146,8,122,192,152,37,101,29,227,53,94,209,132,162,183,251,72,200,232,222,161,62,151,75,29,253,38,111,117,133,86,186,4,232,254,192,216,169,87,67,114,143,109,31,191,0,158,57,38,174,121,109,213,61,129,240,237,45,203,77,145,177,22,15,80,214,189,129,77,123,163,13,249,89,198,28,104,226,60,34,158,129,17,70,82,182,110,37,117,201,252,225,145,57,213,163,13,105,127,10,228,25,73,61,163,91,215,147,245,44,140,200,177,42,169,141,54,193,178,154,65,101,235,19,125,8,240,219,93,130,188,226,86,66,162,18,108,58,114,210,198,150,8,248,35,99,205,249,166,50,228,18,36,152,81,138,113,73,213,179,10,97,241,26,178,0,44,150,49,137,118,192,224,212,160,86,77,45,246,106,188,92,146,135,122,162,12,196,16,220,50,72,234,23,183,11,113,64,225,129,245,61,161,81,201,158,109,35,221,14,218,194,150,121,98,76,48,230,254,168,20,180,84,33,131,182,196,233,131,158,65,214,110,60,18,124,251,173,1,41,83,43,229,129,114,106,240,144,72,194,166,26,58,94,7,182,222,234,91,165,221,142,110,145,33,126,61,19,69,186,204,249,4,44,198,122,153,209,165,29,101,231,183,1,240,77,89,53,135,155,63,91,243,6,193,17,181,134,112,169,229,103,35,223,65,166,244,156,184,88,228,130,51,17,2,34,106,112,216,66,204,56,152,141,183,77,29,9,118,209,105,89,193,248,160,36,236,166,153,65,229,63,47,187,203,91,255,99,19,223,143,123,2,208,33,150,66,82,202,120,96,176,24,247,8,229,133,171,59,173,145,38,252,232,63,135,7,118,192,104,188,20,78,211,91,113,36,230,158,67,107,211,198,240,88,28,170,59,14,176,137,234,66,124,28,218,46,58,108,196,82,190,7,171,151,247,129,110,58,178,127,131,77,233,250,94,7,209,170,38,18,200,154,18,159,255,183,227,43,131,57,121,74,106,92,213,199,163,7,90,15,246,128,50,108,194,124,178,24,232,148,217,73,33,163,43,151,77,123,200,208,160,131,240,16,239,111,187,3,61,87,135,91,213,206,124,40,58,22,157,75,245,109,171,15,180,232,238,54,162,248,67,83,21,14,112,206,110,190,214,132,40,148,244,197,23,119,6,44,152,82,221,235,167,71,185,57,143,111,47,55,183,19,245,140,118,226,76,156,210,102,4,168,88,203,149,61,15,122,250,64,32,211,235,133,83,109,169,21,197,190,28,40,80,112,107,195,171,191,247,9,147,231,59,133,222,68,60,10,244,70,153,230,42,87,123,163,27,103,219,131,203,177,204,172,188,32,116,102,26,8,151,135,93,233,49,75,245,213,222,0,175,181,117,194,82,226,98,129,52,158,74,38,240,16,192,144,28,15,210,44,163,249,57,138,226,184,83,73,103,119,15,248,72,148,124,160,26,218,82,230,110,193,51,187,142,34,37,89,61,155,253,193,211,79,239,189,167,115,130,108,28,2,144,84,193,245,189,137,5,220,101,67,62,17,37,237,163,119,107,147,123,15,47,240,68,28,186,135,217,233,62,161,91,201,123,12,255,132,152,88,168,196,56,39,23,99,215,75,237,187,41,238,250,172,122,100,20,132,196,65,154,90,210,1,182,49,155,9,193,127,255,109,211,229,30,76,175,179,129,56,85,37,21,107,171,62,86,198,46,242,186,73,209,113,0,146,140,236,181,255,132,144,59,65,30,222,118,36,164,204,108,86,237,11,86,236,146,26,188,203,249,134,66,217,37,57,163,107,15,112,102,153,142,240,191,3,90,62,68,46,122,18,202,234,170,210,231,167,242,131,113,45,206,22,191,14,60,102,151,75,221,83,49,139,190,147,83,107,75,219,119,4,36,170,22,199,249,232,99,61,245,42,112,170,230,66,194,130,20,92,218,12,152,184,172,92,64,128,251,111,63,159,31,115,8,224,214,201,188,34,230,174,30,186,62,42,66,245,125,12,80,212,106,154,138,195,121,145,223,131,81,205,27,55,251,41,75,227,109,175,183,1,176,144,24,232,119,10,56,65,133,248,38,90,110,206,210,163,67,242,236,7,212,159,23,119,129,161,189,89,194,108,44,56,192,236,179,134,247,21,37,215,12,112,80,162,102,77,54,158,57,78,188,98,158,169,127,0,30,237,37,197,81,130,208,255,8,80,112,177,39,103,175,207,253,136,16,144,48,66,220,235,85,99,131,11,54,35,249,217,17,185,153,193,114,170,231,79,252,44,101,211,87,205,141,122,190,225,153,21,165,79,63,0,16,118,236,220,152,36,192,164,255,71,143,111,191,10,82,58,157,99,31,7,115,93,175,135,190,207,221,235,241,68,54,44,34,87,135,157,117,4,60,232,71,27,251,219,171,207,187,99,41,165,177,81,0,23,255,64,208,149,113,200,100,140,49,230,61,89,213,73,186,226,4,255,32,98,166,206,149,126,26,130,87,251,227,179,65,161,46,206,120,212,108,22,54,128,144,12,212,162,66,10,58,198,244,188,152,80,18,102,231,135,118,44,31,3,163,61,217,105,193,189,123,45,231,91,135,245,64,153,206,61,157,91,103,39,71,249,8,209,134,174,225,29,113,188,100,84,160,144,64,217,197,238,58,14,116,20,247,129,177,46,156,128,201,244,216,165,31,15,120,36,84,188,110,65,62,235,47,27,55,219,105,198,154,123,131,83,247,77,173,9,176,229,210,82,154,106,31,199,183,8,239,143,175,79,61,245,37,118,128,88,23,247,67,43,199,125,211,235,107,157,61,169,7,190,17,234,76,12,208,44,181,59,83,157,173,255,132,98,114,202,36,210,0,224,52,84,164,96,180,79,159,119,201,252,133,21,205,185,89,145,173,227,69,255,137,223,9,120,32,100,60,23,23,111,211,173,9,50,206,248,80,68,176,156,128,45,126,230,218,12,132,187,71,27,173,61,83,41,252,120,104,200,144,224,200,96,232,210,178,172,28,148,139,95,127,79,47,243,7,49,51,19,103,191,4,148,44,81,70,238,138,208,192,118,174,245,42,50,132,88,75,101,193,252,220,230,174,23,183,157,14,122,98,214,36,8,56,64,224,180,148,22,94,130,249,174,113,198,33,157,201,17,61,107,171,83,119,4,68,208,178,246,130,234,198,178,154,122,164,40,28,128,49,12,218,242,68,226,86,102,161,101,177,30,198,118,68,91,139,251,235,223,6,42,57,149,103,75,3,185,139,120,56,160,218,26,242,83,195,151,231,47,83,161,229,221,117,46,25,181,4,72,150,254,200,96,133,61,178,214,34,110,23,143,63,155,69,165,238,89,6,121,197,253,29,241,76,86,140,194,42,215,239,111,127,8,148,60,162,191,193,186,20,4,214,66,230,111,95,151,59,133,127,163,254,34,68,34,186,200,20,84,164,100,212,52,128,229,125,245,14,158,74,240,144,211,173,37,21,137,178,193,50,121,14,97,81,230,194,106,52,30,38,217,3,237,249,128,89,174,182,69,155,123,134,161,1,222,22,126,178,34,146,82,252,100,205,229,49,74,28,82,204,154,191,171,103,251,131,75,223,63,235,7,112,32,159,223,67,252,200,108,132,50,45,19,227,181,14,126,174,90,153,243,73,29,139,47,199,63,107,171,187,91,211,239,127,8,188,54,150,2,106,198,226,76,42,92,28,210,132,122,250,169,65,233,191,201,153,19,45,211,93,103,13,112,168,255,137,50,164,91,135,117,105,201,54,42,79,240,23,191,5,220,234,158,46,93,107,245,170,146,66,236,182,133,49,25,15,112,196,212,71,107,133,114,156,58,182,198,26,94,239,255,8,162,218,34,237,61,73,246,136,86,201,118,161,14,106,188,212,156,30,46,136,80,150,241,194,162,34,125,8,224,24,216,65,177,97,54,234,58,139,249,68,4,194,44,186,164,20,89,155,107,123,215,95,239,179,1,45,173,249,68,192,150,30,214,138,116,56,106,134,22,76,116,224,162,33,177,89,201,62,111,251,0,215,159,207,215,67,254,94,34,116,96,136,7,62,230,191,27,171,159,15,62,169,246,238,30,206,105,177,134,149,45,119,75,85,217,4,162,106,177,17,51,115,46,233,241,66,82,207,223,159,143,240,232,198,178,14,154,70,57,46,133,89,213,19,111,175,119,89,45,53,125,137,203,75,254,97,169,25,145,10,180,236,212,229,221,129,114,77,3,153,198,189,173,103,83,37,248,16,54,90,27,117,5,97,174,177,197,133,254,228,218,66,62,43,157,133,227,57,211,69,37,165,250,28,108,85,201,186,13,120,144,224,168,110,114,214,90,49,33,1,142,246,24,72,151,195,186,166,114,42,244,156,28,76,202,184,9,90,234,136,99,61,221,133,45,235,215,207,240,55,27,109,127,78,182,4,168,80,144,155,71,189,253,138,17,193,58,230,2,220,84,108,46,165,122,231,171,185,121,158,8,76,252,220,104,32,90,194,23,63,143,244,232,38,55,6,137,93,67,117,206,106,146,210,19,163,179,117,8,55,75,107,227,189,161,129,249,22,84,38,155,197,209,78,236,212,18,11,62,204,118,99,139,177,174,252,36,159,87,35,25,97,221,155,51,93,165,142,70,116,203,246,0,236,180,100,252,162,223,151,47,79,55,127,10,180,228,138,202,94,19,139,240,64,224,84,183,0,60,28,168,120,216,206,97,157,45,222,69,114,188,13,21,101,239,247,140,56,144,168,200,40,93,198,234,116,52,150,1,170,191,215,109,69,246,36,140,20,81,219,39,199,117,7,139,53,78,248,165,21,149,89,225,101,189,251,1,106,185,196,228,84,18,78,114,209,39,135,53,169,147,163,91,221,101,142,189,46,247,202,78,116,226,159,55,0,20,97,17,37,217,229,254,58,162,198,66,113,12,185,138,146,92,236,31,255,0,216,173,69,81,62,157,187,37,137,193,124,108,210,143,248,232,16,172,145,93,207,189,55,119,0,32,104,65,250,76,177,91,6,104,20,40,232,217,53,145,198,161,141,114,44,148,240,48,100,10,232,72,114,82,162,215,131,19,203,185,17,37,205,115,1,78,177,218,252,128,96,144,48,224,168,80,216,195,173,253,110,225,83,155,12,59,179,142,73,124,20,40,43,239,59,107,3,112,251,64,143,184,19,203,89,222,149,169,158,26,34,56,228,120,191,141,77,205,255,14,212,110,94,171,243,128,224,215,15,112,96,160,52,28,146,81,76,36,182,202,122,172,231,91,67,109,25,217,142,60,150,252,178,196,34,4,119,1,240,228,17,46,62,204,170,150,94,218,137,102,74,188,97,185,223,175,243,4,30,138,51,231,203,155,75,117,41,87,23,207,175,191,67,141,112,56,247,12,34,220,92,228,100,146,158,140,34,220,227,207,240,109,7,179,61,77,29,95,175,119,0,168,24,111,119,143,184,75,94,47,215,205,49,235,241,150,28,84,100,235,127,191,8,39,71,250,192,215,155,163,55,129,240,203,7,91,51,231,123,132,208,152,24,96,65,41,185,166,49,135,111,223,39,155,27,243,166,122,228,179,87,77,199,7,52,255,167,71,121,34,92,141,107,23,187,211,2,226,194,153,101,177,225,163,241,69,147,5,57,17,193,93,41,114,210,128,16,38,74,92,114,192,243,189,0,135,61,215,239,151,173,107,87,137,30,122,40,144,79,231,13,180,63,203,252,168,220,96,173,39,7,103,127,215,151,69,177,138,18,230,54,198,246,81,25,109,139,90,234,219,123,8,202,248,170,68,50,148,40,176,117,8,200,40,180,26,54,85,211,227,103,135,254,72,152,165,189,6,34,20,234,162,110,245,85,53,67,113,214,154,132,204,184,4,211,201,124,92,255,128,64,228,18,57,165,43,107,147,20,216,108,42,127,141,231,199,191,175,247,0,80,48,144,66,216,64,36,152,112,1,180,59,195,131,246,234,90,110,25,165,89,165,248,239,223,135,75,147,105,191,8,56,115,38,23,207,55,10,78,42,236,182,150,173,245,198,22,97,114,138,211,83,235,254,72,16,156,108,210,62,0,207,123,130,176,88,160,45,185,133,230,66,27,147,57,214,108,84,172,38,251,198,15,120,152,133,29,165,237,197,109,241,81,185,65,117,53,217,6,40,143,246,40,88,112,191,0,53,66,170,225,150,218,196,108,20,83,167,39,7,250,182,128,224,192,107,125,211,53,29,71,155,83,137,110,209,15,182,254,164,22,66,126,225,54,42,154,193,246,96,15,176,28,220,72,192,88,168,153,227,117,135,49,38,234,190,128,160,104,88,255,72,152,193,120,44,211,1,28,60,22,252,198,102,145,33,51,91,5,67,125,181,211,237,133,169,61,193,30,65,98,84,212,178,234,171,47,255,0,143,114,159,127,4,100,28,168,232,132,240,147,51,205,185,217,83,41,69,129,243,110,181,7,217,43,119,197,163,19,91,55,69,147,235,222,110,234,130,240,176,70,35,11,156,52,92,124,22,202,172,156,236,168,20,14,215,255,41,94,74,113,110,177,198,54,132,178,77,145,227,89,217,142,46,19,205,250,160,48,9,112,100,172,213,17,70,234,58,0,95,43,189,207,247,128,98,154,122,104,211,41,167,231,199,252,95,3,69,124,186,154,21,137,50,232,105,85,74,17,49,145,219,171,207,243,34,181,12,112,130,48,179,38,90,194,150,136,7,240,224,105,122,218,22,165,73,69,240,27,51,5,147,205,190,121,136,164,98,209,45,89,225,122,108,88,72,219,135,53,4,36,20,188,148,248,170,205,227,111,123,165,190,8,200,152,53,17,65,249,230,94,41,209,138,125,130,144,104,176,216,202,74,20,170,242,92,49,0,227,43,242,160,18,193,97,49,2,140,86,146,73,218,126,40,228,184,69,50,28,132,226,102,119,4,156,196,184,208,39,249,166,85,203,163,211,77,21,91,231,115,101,142,150,35,51,183,7,240,3,184,233,157,197,89,133,58,107,71,240,112,220,28,172,38,146,139,21,95,11,240,98,116,212,77,173,45,61,201,182,230,61,149,171,139,213,41,177,65,30,238,118,82,199,255,8,104,194,212,227,187,9,21,43,241,89,70,124,52,104,162,156,137,176,30,233,158,213,75,135,89,203,53,117,249,40,1,162,108,255,33,54,12,162,89,137,73,114,16,204,148,180,108,226,213,66,85,237,129,184,160,96,252,148,204,211,51,12,127,45,19,71,167,221,131,112,24,88,152,237,241,192,44,100,61,179,7,126,41,30,150,137,49,74,180,164,196,251,91,211,107,11,227,211,142,180,192,18,39,115,51,253,0,64,104,160,234,145,85,187,51,46,198,28,110,221,73,86,234,122,175,253,136,147,5,22,178,64,224,5,218,198,242,146,169,115,111,39,93,135,62,227,167,155,23,55,197,133,182,66,80,208,127,11,109,45,254,136,189,213,14,102,156,42,66,119,195,250,232,87,19,171,59,77,214,26,236,112,164,110,51,203,139,185,81,13,146,244,40,42,70,188,156,237,85,29,143,55,247,205,107,13,114,218,161,121,174,227,211,142,180,108,31,199,75,245,93,155,55,14,46,217,25,63,129,195,173,250,178,124,97,6,238,78,35,151,95,80,50,45,229,173,195,185,102,154,22,255,14,127,139,214,78,158,254,98,170,10,220,204,176,20,136,88,45,237,53,78,124,228,68,172,150,18,186,140,216,102,81,7,241,62,34,198,117,137,116,83,173,237,107,195,254,64,149,187,3,213,25,45,61,231,95,159,255,19,13,105,182,41,137,53,221,193,118,175,71,113,68,145,25,201,246,234,14,98,178,62,136,34,222,81,174,124,154,76,25,91,175,255,8,104,134,186,222,225,62,195,43,246,154,106,62,132,164,120,209,239,47,71,23,191,0,196,88,21,241,196,236,44,170,54,150,109,121,132,7,182,222,86,78,154,246,205,11,94,238,122,210,162,66,186,136,40,24,102,51,165,69,17,81,158,182,38,203,235,51,9,120,244,100,140,212,156,247,0,165,233,37,105,125,142,26,210,69,185,86,198,50,170,94,230,182,213,129,17,207,119,6,60,156,110,249,66,46,187,129,233,213,74,240,172,194,108,93,53,14,33,122,156,20,219,107,139,53,225,165,189,119,9,46,91,31,159,247,74,202,112,109,173,179,129,82,239,255,70,41,13,153,17,195,49,213,25,249,38,238,70,98,90,207,155,127,9,161,213,185,57,134,21,253,2,198,145,89,189,217,169,65,121,138,97,45,227,61,109,201,21,235,211,61,73,137,165,126,150,177,246,44,4,80,150,76,11,49,98,41,227,255,205,221,117,140,88,184,164,19,45,113,234,62,94,77,153,5,186,27,215,171,107,255,141,203,185,77,118,104,212,171,199,19,45,89,59,133,229,246,150,7,58,30,1,216,88,36,160,146,135,199,118,230,106,244,71,182,79,23,163,245,237,151,138,62,207,117,10,90,108,38,219,189,48,144,174,225,41,105,190,12,204,90,251,64,16,120,208,137,22,60,131,173,227,95,191,119,37,197,242,5,214,76,100,144,230,166,110,38,220,95,7,252,136,188,154,54,121,73,21,203,47,245,138,217,205,122,64,160,188,100,52,234,158,29,3,86,38,244,229,217,57,130,28,70,114,196,148,84,168,96,186,4,216,38,124,18,60,132,198,150,174,82,98,255,72,178,225,6,114,28,44,153,171,233,201,93,10,70,177,105,49,143,211,243,10,98,26,220,90,230,169,116,45,179,69,155,207,143,248,48,55,165,41,229,195,91,183,137,73,248,24,222,154,125,101,10,144,94,12,100,164,234,210,122,207,51,251,130,28,46,191,69,99,243,40,162,180,8,28,114,140,214,225,157,51,77,89,206,73,251,5,84,46,59,193,174,178,22,145,109,239,119,129,220,100,255,0,93,189,41,214,132,52,170,145,227,195,27,115,74,58,40,254,154,86,134,74,220,232,16,108,4,189,121,170,206,255,173,77,177,42,26,198,156,236,12,84,97,54,137,209,121,69,163,181,145,252,104,36,59,0,224,195,29,131,126,213,87,81,237,195,240,160,72,146,7,62,29,99,191,139,123,43,215,99,51,70,41,165,29,91,255,10,208,152,227,207,143,113,182,64,232,207,245,213,2,146,126,130,180,104,44,56,170,82,18,0,192,87,143,240,108,182,36,116,216,232,164,74,60,149,27,121,128,11,176,148,230,248,200,101,41,54,162,73,90,220,21,83,69,183,147,27,137,193,116,234,102,161,6,48,219,39,253,0,177,170,212,99,207,248,24,232,68,92,36,56,138,156,116,156,64,16,62,121,41,139,182,97,81,4,164,206,240,220,236,252,20,144,167,143,231,187,2,208,84,44,100,71,119,195,51,107,213,135,243,200,160,228,84,158,25,35,182,66,10,48,120,161,145,6,180,50,206,21,245,74,87,43,119,229,97,221,143,245,136,76,216,203,157,117,166,63,231,47,15,182,111,31,87,63,133,81,149,103,245,207,71,227,29,125,38,12,220,180,168,17,131,49,190,97,209,72,151,175,47,207,123,11,240,232,88,193,50,158,190,0,168,241,106,226,66,216,40,115,136,16,85,199,181,41,240,51,109,6,120,232,28,65,133,82,157,211,163,211,27,71,191,142,38,57,85,147,227,165,195,13,124,252,104,33,217,129,184,255,200,108,235,87,151,29,125,74,162,58,15,242,236,202,217,118,68,168,88,131,29,35,53,155,107,179,1,115,137,225,167,255,64,56,97,150,209,38,198,178,10,92,20,60,218,168,226,42,127,205,77,248,96,152,30,130,88,187,1,18,138,52,180,35,95,3,235,167,75,250,192,150,113,98,220,40,144,56,80,134,78,180,233,173,213,103,3,112,21,201,248,70,52,216,11,120,28,172,93,41,254,200,136,154,98,178,226,221,231,241,8,171,67,113,62,22,97,86,130,34,178,159,203,205,122,228,247,0,211,69,166,86,30,158,177,41,105,57,138,59,75,240,96,176,42,174,122,128,192,144,224,92,216,16,5,56,45,189,12,24,223,71,83,227,251,202,162,115,130,152,106,87,219,205,107,11,186,71,113,249,44,238,26,170,62,128,153,94,66,58,182,8,168,212,128,102,202,247,33,19,115,237,155,99,51,211,199,143,243,21,225,174,115,41,181,77,86,150,7,94,214,71,189,245,174,193,17,229,119,137,1,48,100,151,43,54,174,127,9,97,206,240,88,146,34,210,140,238,179,66,21,174,244,56,0,75,118,110,193,180,152,236,223,45,81,29,139,89,253,235,183,199,71,123,51,1,41,21,169,209,99,135,157,135,99,179,173,51,8,84,232,208,32,19,73,240,155,203,121,0,86,158,106,70,60,194,176,255,37,235,175,23,215,127,128,21,174,114,60,142,106,153,14,177,72,192,242,36,212,227,83,109,53,213,195,13,114,239,31,139,248,67,183,165,157,85,33,145,190,134,84,255,35,197,114,100,24,79,55,231,7,217,169,248,232,136,118,36,148,95,107,181,198,23,9,52,160,218,64,18,183,63,2,194,245,230,44,83,171,117,132,148,212,108,66,148,176,89,234,203,131,240,223,15,114,100,34,48,166,70,26,42,66,148,99,113,182,226,18,58,130,204,216,7,81,169,241,142,92,148,24,72,208,96,190,0,207,242,40,164,226,53,127,128,20,59,79,127,165,93,1,212,156,196,253,42,184,96,224,148,24,212,38,78,118,130,84,100,15,240,192,60,172,184,224,100,218,46,186,128,241,200,48,238,86,12,162,149,73,125,17,95,3,109,51,237,113,136,29,241,174,202,150,177,38,209,65,71,241,94,101,9,178,17,141,209,173,118,238,158,54,34,204,220,199,119,99,77,57,15,176,84,248,156,36,135,231,171,23,203,244,152,64,84,51,109,21,177,142,174,222,12,224,34,112,33,217,89,195,147,27,67,249,6,232,112,129,101,163,177,51,23,127,64,141,48,247,192,170,147,103,3,184,94,213,46,225,25,89,249,204,140,176,74,150,166,58,5,234,116,96,219,45,233,185,162,56,66,112,30,195,147,93,14,110,38,251,128,216,68,230,202,50,82,191,13,212,247,101,33,27,127,165,157,141,137,255,235,79,61,27,83,14,220,198,113,105,149,181,46,174,143,47,253,93,201,177,49,17,222,159,231,11,77,101,126,172,20,113,105,78,167,215,155,91,183,133,233,49,33,195,253,15,19,83,211,193,97,158,46,242,174,62,117,0,128,68,190,226,150,220,61,0,135,188,171,79,245,193,94,227,31,119,43,111,231,55,255,77,178,135,43,213,97,121,194,156,23,3,94,171,237,95,191,71,118,47,167,199,23,223,11,111,139,252,58,150,202,18,34,221,245,128,149,179,8,112,96,72,88,52,232,164,200,64,213,129,58,231,87,19,187,10,112,171,147,243,37,105,14,78,124,222,193,252,84,22,54,42,158,110,130,162,177,230,238,250,18,170,140,98,62,90,217,35,157,187,205,69,119,5,18,146,92,236,34,52,164,243,193,209,185,5,77,133,121,109,189,167,63,7,149,83,197,133,114,46,214,234,98,28,79,242,172,84,48,123,181,12,76,144,208,16,106,139,235,43,255,204,88,200,220,150,126,138,34,74,26,106,178,0,164,248,52,228,43,239,75,187,247,13,116,16,58,103,143,221,83,159,167,207,207,75,185,110,252,140,56,80,16,220,7,231,155,123,171,39,215,4,19,127,202,181,237,157,61,33,82,170,138,78,248,99,93,223,207,59,6,97,186,39,123,73,235,247,165,137,154,29,27,87,159,47,240,99,11,123,173,51,179,201,70,134,216,230,52,201,149,75,249,226,82,136,112,36,168,25,105,222,4,181,229,63,135,114,185,65,110,30,213,161,158,2,194,82,36,242,210,204,81,153,183,133,163,69,114,228,240,12,104,53,31,47,98,204,69,122,58,85,179,33,244,12,142,154,25,225,222,162,196,168,96,218,118,68,57,21,237,143,244,0,144,80,184,36,104,82,196,24,120,224,163,215,183,59,47,79,143,240,15,153,209,38,62,22,133,158,255,12,88,188,64,96,116,196,174,238,165,29,231,247,79,151,5,60,43,215,191,199,143,93,103,119,79,43,211,193,125,157,175,249,107,19,141,60,236,93,5,185,238,106,54,31,247,141,167,155,83,45,221,14,206,113,66,191,91,1,52,18,228,251,128,44,188,210,199,99,77,113,158,174,30,74,140,116,216,236,92,58,207,11,173,245,44,154,180,108,204,98,42,92,119,1,48,152,232,164,255,140,23,183,71,209,170,218,18,236,159,139,186,196,89,53,45,67,126,15,250,104,210,46,246,98,74,84,12,57,149,239,199,179,27,126,128,168,40,168,98,212,252,72,234,186,140,82,154,29,1,113,198,60,60,64,104,201,114,94,46,253,169,229,153,23,135,223,9,186,22,230,114,74,180,203,163,147,95,107,63,141,41,254,13,222,19,219,235,159,139,244,77,105,91,187,6,166,201,122,54,42,86,74,194,215,239,187,149,61,14,141,252,160,41,116,103,23,77,252,40,56,192,93,157,107,167,143,123,183,4,28,227,221,229,213,49,34,194,30,177,129,150,94,97,78,120,14,246,166,181,140,116,65,238,149,6,88,30,105,161,50,214,246,42,198,174,205,19,117,221,65,106,58,129,244,144,40,84,0,238,185,190,76,228,136,53,105,205,118,39,155,19,173,247,8,216,88,80,152,184,200,123,136,68,24,228,52,96,169,33,240,10,210,170,26,60,44,121,249,12,236,96,80,205,153,138,179,213,65,31,207,39,51,229,113,157,219,5,106,91,77,178,250,136,162,18,254,66,117,10,234,90,170,38,129,210,178,60,100,196,154,97,83,243,41,133,19,191,205,227,61,174,150,213,10,115,67,177,85,117,4,108,172,26,46,212,68,233,147,51,251,206,137,247,128,200,48,212,234,108,180,68,159,47,23,95,9,116,160,113,193,35,3,58,226,172,179,142,153,101,71,244,214,86,30,81,62,47,183,0,71,254,234,106,155,139,124,24,171,201,209,97,222,31,3,248,116,193,158,238,71,171,83,131,190,54,37,130,214,200,96,225,246,154,90,45,71,113,21,183,63,6,172,110,191,13,240,133,229,85,197,17,38,209,62,153,163,69,116,224,200,119,71,131,182,22,246,164,156,102,89,49,209,0,41,126,154,242,73,173,45,81,102,195,13,56,232,24,216,139,179,0,199,121,25,103,83,53,147,133,174,250,32,232,212,184,65,116,69,197,173,219,235,11,185,141,252,20,40,61,83,159,111,91,179,142,49,217,6,245,233,65,18,166,122,102,206,33,153,229,113,130,146,244,48,66,26,86,4,32,96,174,210,178,204,78,180,170,11,62,254,230,30,38,134,120,152,104,215,95,195,255,132,188,11,67,103,127,201,21,165,217,57,227,45,90,151,71,11,124,188,200,216,236,252,80,160,108,152,48,28,142,46,185,89,123,74,38,169,213,153,2,106,29,231,55,135,199,247,105,142,252,26,74,84,176,152,194,161,121,33,225,209,15,62,250,132,32,204,172,124,70,188,106,63,151,5,214,81,233,27,87,119,131,159,183,1,240,101,29,79,51,223,199,167,43,239,95,255,193,184,119,139,109,227,157,1,165,77,29,221,61,46,72,231,35,142,112,176,56,16,104,200,87,167,15,248,146,222,68,240,85,1,18,132,152,120,36,170,218,182,106,238,207,51,137,158,182,94,174,231,51,115,109,197,21,213,39,251,2,68,148,23,255,43,75,103,119,87,133,163,211,206,50,186,8,224,120,36,244,232,76,48,105,199,135,188,148,173,29,211,1,90,47,223,13,112,192,241,136,176,224,64,48,106,158,30,90,172,26,92,135,235,245,127,207,175,55,9,188,148,220,72,108,36,172,180,116,244,128,77,103,231,51,5,210,196,40,88,156,18,5,41,205,177,121,213,23,111,247,128,64,92,164,155,227,53,185,11,243,198,28,34,156,124,72,164,48,80,110,230,134,208,152,32,56,88,164,194,24,184,101,137,227,211,73,248,127,0,104,4,26,62,69,43,249,157,135,114,164,86,217,185,194,226,182,172,155,7,248,199,115,66,44,218,94,132,224,24,105,54,140,98,62,145,1,246,94,171,79,125,203,19,235,181,213,33,54,214,12,204,178,30,113,68,160,85,245,226,157,129,110,42,226,57,249,189,2,130,196,162,210,46,124,108,76,159,31,95,52,64,192,24,116,146,161,37,252,177,4,84,224,128,106,223,55,13,116,163,203,182,18,255,138,226,157,67,103,47,221,85,126,204,217,109,71,91,59,47,167,139,242,228,154,15,188,27,173,129,150,255,10,70,120,18,97,177,38,212,228,60,201,81,181,69,62,226,15,203,254,33,169,155,215,107,27,135,83,123,198,174,210,30,6,250,154,42,137,118,77,54,226,188,82,106,52,90,138,38,252,164,184,238,9,158,113,75,219,205,99,29,195,51,243,215,141,94,74,166,113,98,23,47,187,0,144,232,250,72,196,20,124,156,44,236,185,53,174,217,97,6,92,136,16,149,251,140,38,185,209,4,121,201,238,77,109,169,57,81,125,65,62,102,1,90,210,37,233,166,159,31,253,194,186,136,230,38,92,136,15,184,31,207,240,216,146,60,172,117,76,104,58,33,113,230,14,206,247,77,171,147,211,101,21,141,85,189,43,153,107,245,68,208,84,194,2,56,134,188,236,116,20,164,29,249,68,196,120,226,171,177,6,150,215,141,85,35,109,53,142,216,120,30,101,53,38,65,252,154,8,206,182,230,90,166,119,1,33,89,51,143,19,99,187,219,173,241,234,66,203,155,67,242,144,205,173,51,211,1,112,45,182,140,104,232,16,82,84,41,114,234,10,221,249,196,172,152,72,18,60,105,189,138,226,194,99,13,116,212,64,16,59,91,187,155,141,253,33,174,49,38,119,147,6,70,216,185,136,168,88,18,105,197,235,245,169,182,42,242,233,157,207,7,85,213,140,52,24,112,97,69,30,191,133,210,250,96,76,48,14,156,162,35,83,197,229,126,150,86,246,32,108,232,127,4,180,24,138,66,50,161,222,202,187,203,79,159,119,141,62,162,26,217,233,243,109,81,0,36,108,119,79,247,136,16,84,146,15,60,184,202,33,161,238,222,210,68,53,101,9,80,176,199,159,255,128,224,30,45,113,173,199,254,128,44,211,19,163,11,118,60,156,93,69,178,237,101,219,139,240,159,3,92,107,59,173,25,225,79,179,38,202,120,18,184,172,47,231,243,193,142,212,146,110,89,53,11,112,66,28,34,50,153,253,131,221,123,8,224,168,64,100,92,192,184,23,187,123,161,90,108,136,59,223,11,238,38,247,202,151,71,209,149,6,66,187,99,123,201,227,83,163,251,19,61,142,38,90,8,135,116,244,108,30,158,34,56,207,79,187,170,225,217,235,141,240,148,96,20,213,10,42,186,61,193,82,70,116,162,74,123,1,48,40,210,18,138,184,159,207,241,106,175,95,235,83,249,133,46,149,173,193,53,99,221,229,9,124,178,64,31,183,243,200,132,168,88,67,149,19,103,239,223,63,119,13,41,114,68,176,224,84,5,54,146,21,195,141,37,105,242,168,219,4,60,190,213,27,199,240,40,154,111,239,123,128,75,81,173,208,98,201,13,86,167,255,71,239,63,37,126,155,179,141,25,49,138,202,254,103,239,23,87,219,119,4,68,160,178,40,152,170,178,27,95,235,15,125,137,33,242,52,220,148,68,103,199,11,243,221,229,33,58,156,68,207,167,126,186,94,132,100,28,148,255,173,45,89,101,77,190,230,210,18,202,55,123,2,140,152,240,81,74,162,52,128,36,236,106,202,18,218,186,7,118,111,123,235,85,182,138,50,163,211,65,46,198,26,159,7,252,152,85,181,217,46,250,67,165,25,134,97,122,49,4,232,196,29,67,165,6,114,200,224,244,128,148,210,50,102,185,37,93,53,9,41,255,78,174,150,230,124,208,92,136,194,176,108,28,172,182,68,17,61,133,254,238,110,115,219,155,47,7,85,193,255,128,222,103,87,63,171,3,205,229,183,159,123,65,37,29,253,8,63,33,209,162,194,124,238,149,109,131,94,191,71,23,189,27,151,43,211,71,135,248,104,164,194,238,81,61,14,112,72,224,93,51,15,252,218,140,98,173,186,40,146,196,20,112,11,112,80,150,102,246,73,233,167,131,217,181,21,197,43,51,153,78,30,140,56,164,100,118,4,226,182,218,206,252,84,32,88,129,206,154,249,40,48,224,115,219,167,11,181,107,27,79,19,223,13,43,252,65,55,107,203,113,89,157,131,165,233,181,0,109,185,66,18,222,237,133,201,62,154,85,113,163,35,250,220,3,90,116,144,232,68,240,16,96,172,142,178,44,60,194,51,157,25,169,222,15,117,47,187,193,129,97,227,95,251,71,19,141,182,90,238,249,153,70,108,170,217,193,126,42,63,7,221,61,45,111,95,255,14,176,72,140,20,120,148,172,196,224,19,77,235,149,93,169,41,241,2,108,186,54,140,117,217,202,139,227,97,25,241,81,153,3,61,179,197,33,214,165,119,70,102,26,58,128,15,252,36,210,194,116,90,154,70,163,235,191,3,120,152,38,25,209,238,65,138,48,80,96,176,206,166,244,210,138,86,155,27,79,246,118,234,38,102,6,58,170,182,196,64,90,150,230,221,14,121,205,177,254,136,96,32,18,60,163,85,193,217,157,227,189,19,109,75,39,127,142,63,9,166,246,32,50,26,138,81,241,181,79,171,205,115,215,111,231,147,11,60,172,76,26,90,234,194,248,129,110,223,159,5,190,113,33,6,102,86,162,127,219,27,141,190,62,35,149,239,71,242,203,111,87,159,131,54,249,170,112,72,23,215,39,187,0,200,236,220,31,103,243,128,144,228,76,172,182,37,89,15,112,192,63,255,130,146,28,226,201,127,223,111,39,187,12,54,174,93,67,101,151,223,135,191,5,114,33,246,51,73,235,201,89,19,173,217,69,49,30,97,91,231,39,255,136,164,183,0,150,194,115,169,151,39,11,51,179,123,141,21,201,246,209,105,233,89,73,217,201,69,118,90,28,172,135,103,251,0,157,227,51,179,37,137,225,222,106,68,61,29,165,245,177,42,90,202,150,117,12,138,145,101,29,211,183,247,199,3,227,125,161,54,33,78,81,221,140,26,50,91,107,203,39,155,247,70,114,228,167,7,186,122,235,103,159,71,15,240,215,23,35,181,165,95,205,49,129,238,198,86,49,136,17,249,66,219,159,127,0,33,182,162,98,210,78,124,60,40,164,92,156,200,235,7,179,99,23,131,253,41,145,201,5,81,185,253,141,61,70,124,210,104,236,18,174,51,161,206,116,92,109,71,139,248,16,3,153,237,219,187,39,203,147,219,99,141,121,225,41,255,183,165,89,65,17,57,13,13,244,164,108,84,232,52,124,136,200,156,184,20,34,74,216,104,201,62,118,36,28,236,132,164,216,93,253,150,4,66,182,118,70,99,155,139,240,15,51,85,169,190,238,202,21,221,46,102,193,155,53,77,27,127,139,240,166,86,15,221,179,33,225,195,209,190,235,35,23,87,111,7,49,133,126,150,166,77,255,35,125,198,6,29,87,247,133,213,157,55,187,69,107,175,231,220,154,102,59,79,239,131,190,245,42,2,88,24,160,119,195,244,192,234,17,73,219,171,127,128,190,145,101,43,87,51,5,238,47,175,91,245,22,62,126,4,74,217,147,203,143,187,99,15,231,251,221,165,145,30,202,102,180,32,80,61,134,74,112,112,194,4,144,232,39,131,249,49,166,209,99,77,190,18,82,236,140,36,180,78,162,146,117,199,213,25,1,52,84,252,104,170,210,186,42,22,108,154,225,201,126,2,49,81,139,254,64,171,249,205,13,124,104,92,43,219,27,155,63,143,190,74,234,231,31,171,55,131,195,250,84,180,67,109,149,39,7,122,222,51,14,109,31,131,246,146,172,188,84,116,44,204,228,216,67,113,192,40,16,176,237,51,245,78,1,218,102,174,138,148,92,132,72,152,219,109,126,18,34,226,186,168,88,192,251,0,56,67,3,153,29,229,137,197,113,221,109,246,44,162,50,86,182,18,130,172,178,12,100,208,224,37,91,247,66,112,156,51,201,225,89,61,206,17,173,118,36,106,191,129,213,149,1,251,65,10,254,46,170,126,202,49,72,96,176,16,228,212,84,129,145,36,98,146,234,50,136,246,218,15,167,27,179,78,206,127,91,31,135,182,68,110,124,92,164,214,54,47,246,196,226,154,4,84,77,27,215,7,240,146,114,41,134,52,164,108,204,237,189,130,194,214,72,156,184,19,101,238,118,170,47,251,0,89,61,76,4,224,44,92,162,140,176,153,209,115,193,101,27,59,243,81,138,98,121,70,230,186,28,8,200,212,54,155,39,251,163,109,151,247,37,222,198,95,67,49,8,163,185,238,141,124,21,142,248,108,162,179,65,222,62,36,149,205,83,23,119,12,224,171,99,241,236,176,66,116,210,2,194,20,144,33,82,128,54,234,166,183,9,216,120,26,38,157,51,70,247,201,105,94,134,119,8,160,24,56,69,214,246,204,146,82,34,105,133,229,181,37,197,57,174,86,255,128,144,236,114,108,12,28,69,180,223,139,93,5,238,99,35,57,126,192,216,148,75,246,160,24,180,149,141,67,179,41,238,87,163,3,222,29,61,105,197,118,250,192,100,152,183,221,69,33,23,63,13,238,95,143,124,242,168,164,31,231,11,244,37,223,127,67,62,142,86,110,179,151,203,38,102,249,62,7,208,189,227,137,169,89,75,149,21,193,120,144,232,128,222,54,167,111,7,23,191,75,115,39,91,207,255,0,82,42,22,122,196,216,184,170,63,147,77,237,137,99,249,110,198,92,227,115,36,63,19,147,245,174,129,184,72,211,4,52,104,78,180,128,168,152,116,44,218,26,10,240,198,90,237,217,69,137,126,97,41,157,89,10,180,168,24,234,202,240,55,133,93,51,0,245,33,206,106,30,122,224,64,148,210,185,174,198,170,97,209,15,242,68,182,25,51,129,89,35,125,149,233,33,110,250,177,206,139,112,220,172,68,150,1,58,230,30,95,215,229,1,50,178,194,166,82,72,28,39,255,109,157,135,112,213,233,41,145,126,194,58,99,21,4,191,69,175,251,136,80,169,227,255,0,144,58,196,89,17,127,71,218,39,141,177,98,111,135,209,177,2,148,228,120,38,252,16,192,57,76,84,170,91,73,129,223,239,207,115,190,34,252,108,156,162,18,7,54,75,63,91,13,191,203,109,43,211,151,127,136,226,169,248,28,40,192,162,220,106,127,2,48,239,247,133,93,73,186,153,21,224,32,248,216,77,62,85,207,115,134,154,10,178,100,20,160,92,116,204,60,213,65,110,177,130,146,12,232,19,245,36,171,249,30,166,90,178,46,209,202,111,55,0,119,136,224,153,71,250,192,228,186,169,221,137,124,24,108,89,54,66,42,156,7,248,160,232,88,70,17,145,15,179,215,139,205,51,105,37,124,68,84,200,128,21,37,177,125,158,250,106,171,231,59,10,222,198,76,95,15,183,175,59,137,116,148,220,43,103,255,23,235,45,133,90,116,104,64,56,231,12,212,195,190,166,242,20,148,234,108,211,245,4,22,94,65,118,197,181,140,60,170,150,42,50,15,244,103,223,195,89,126,42,154,130,226,162,184,77,25,246,58,172,84,217,193,157,139,17,110,7,186,227,45,118,74,241,74,146,116,200,16,106,221,173,45,177,89,129,225,15,62,241,44,236,25,137,85,151,13,120,210,79,167,183,103,57,207,179,107,141,13,90,170,220,118,57,243,226,196,72,144,45,31,119,10,130,56,64,163,147,189,221,21,93,202,42,234,250,98,28,130,180,120,224,196,147,12,34,60,66,220,170,241,102,86,159,119,128,191,9,25,217,70,93,205,49,174,246,40,232,108,54,76,117,8,96,212,232,251,33,21,206,161,94,190,140,146,252,60,98,163,219,131,155,205,93,21,6,126,34,238,183,78,240,78,49,207,215,39,103,31,175,179,123,229,5,94,134,145,249,105,43,19,141,126,170,154,91,187,12,200,228,209,62,69,189,174,110,134,39,61,158,244,84,208,235,71,31,15,126,196,228,120,128,177,4,72,164,56,82,210,24,156,192,96,240,38,213,140,251,95,199,179,0,228,40,50,68,154,172,112,107,31,146,212,15,114,75,23,191,133,94,33,62,102,244,193,169,233,209,141,191,171,151,31,243,0,195,120,96,32,232,60,70,90,127,23,135,207,61,11,89,169,150,237,37,255,65,212,108,178,71,43,253,9,90,195,209,97,229,177,53,115,142,146,174,25,253,238,130,18,78,124,174,50,100,208,146,194,33,95,191,9,248,99,213,76,4,16,184,63,95,199,147,131,238,174,127,37,62,171,5,182,137,73,153,213,85,121,22,244,40,232,111,199,95,11,248,158,105,62,37,17,198,185,70,225,209,117,136,162,53,93,12,249,136,196,24,176,144,172,216,226,121,76,44,100,158,10,34,118,172,238,244,131,185,93,201,110,22,58,66,216,200,147,35,133,182,9,124,228,208,160,24,64,55,103,95,255,6,65,245,161,222,130,157,43,57,185,19,123,227,207,93,99,245,149,198,90,68,182,34,220,18,110,173,137,238,4,48,112,15,248,16,152,64,236,180,200,209,169,85,37,99,113,132,61,121,38,70,249,194,138,24,144,176,80,52,167,237,211,4,100,32,148,240,16,162,54,202,90,78,186,137,229,219,127,13,99,62,213,141,240,1,234,18,93,203,126,188,100,144,73,165,45,229,137,169,53,203,117,181,10,158,25,45,109,223,79,240,94,130,166,158,78,177,42,31,255,231,91,203,11,112,56,96,212,67,141,240,229,81,9,182,38,122,208,20,100,153,201,53,165,242,218,170,86,129,122,102,149,58,228,40,196,24,72,179,11,183,247,106,26,66,232,155,1,93,45,113,202,166,57,137,220,255,35,137,114,218,0,18,150,182,230,58,66,92,100,193,169,161,182,245,41,101,93,201,217,65,49,10,16,224,152,112,136,120,152,100,61,6,17,203,185,33,248,231,95,79,143,221,161,173,139,99,125,65,240,55,13,27,155,195,43,213,179,235,87,131,101,17,73,159,15,240,224,171,121,193,220,58,182,34,86,140,100,71,124,82,6,53,174,247,235,31,39,159,195,219,187,87,239,111,119,138,219,203,59,159,175,71,31,43,3,188,247,0,112,159,231,171,71,213,135,182,33,254,206,101,93,21,59,12,21,97,211,187,142,48,226,91,147,249,70,121,46,198,170,162,211,115,131,27,91,203,243,74,184,232,152,34,57,99,13,29,107,167,243,5,213,129,184,90,207,239,55,43,77,114,146,40,130,168,144,122,250,0,56,68,208,104,196,80,176,17,225,139,27,253,2,76,220,85,97,162,188,206,57,149,115,33,235,203,79,115,151,31,5,248,216,128,190,34,238,170,60,104,92,222,225,109,181,143,125,45,54,94,165,25,70,156,202,247,8,58,207,151,235,99,67,118,138,188,34,240,9,220,168,88,16,152,96,228,20,220,50,197,190,140,92,251,13,123,165,69,35,71,215,191,7,246,172,38,50,87,159,239,135,109,118,30,204};
std::vector<unsigned char> lutLDBN_STEP={54,222,197,182,170,112,152,34,74,98,15,90,133,27,242,234,98,62,214,4,228,17,136,38,180,74,245,148,192,174,95,119,14,174,211,71,17,118,202,49,110,254,228,191,159,128,86,37,137,5,240,157,41,210,83,109,202,178,76,48,164,113,228,17,94,26,154,221,143,113,174,67,247,200,224,37,107,180,12,61,238,199,84,70,186,99,142,254,26,41,223,156,123,8,62,175,71,47,120,102,177,165,225,201,48,31,149,1,85,248,135,213,229,25,100,182,160,113,33,253,68,193,48,15,95,143,149,219,245,145,10,117,130,29,41,209,227,195,90,173,63,64,181,101,208,82,191,38,139,249,169,72,19,14,126,231,207,54,154,102,83,234,140,122,32,105,149,79,242,218,23,6,185,163,48,204,84,140,79,117,216,106,33,182,150,172,229,51,6,248,193,26,89,187,38,233,30,217,55,8,204,113,155,129,241,102,161,64,252,102,177,204,165,39,208,153,85,133,122,17,6,237,53,70,109,114,238,11,19,182,45,48,171,76,240,134,216,155,206,87,189,23,242,202,58,99,214,78,123,40,227,162,140,84,4,145,89,79,105,191,157,214,204,131,41,245,16,4,224,56,170,123,101,135,253,79,177,12,95,229,205,51,172,149,46,117,209,18,49,103,69,188,130,205,47,28,121,223,1,93,166,244,159,232,10,142,202,120,189,214,40,224,158,83,169,241,76,23,57,100,138,98,181,28,226,165,249,76,58,194,9,147,213,91,43,126,9,153,199,89,44,28,246,66,54,142,99,125,211,160,232,189,132,89,213,204,188,155,243,171,20,118,110,72,52,38,227,6,250,102,223,81,5,58,126,172,17,75,146,229,131,176,193,32,208,226,171,242,176,90,33,205,114,104,155,2,30,141,60,66,159,134,226,71,112,99,14,191,198,213,88,45,55,172,25,255,6,109,58,181,37,202,225,249,131,221,67,89,125,171,146,31,63,64,44,111,119,239,221,19,132,13,240,170,203,149,83,183,196,21,91,254,171,212,50,135,239,187,70,34,154,15,112,101,216,74,154,127,19,206,181,38,227,103,54,5,253,163,92,130,235,152,214,3,141,190,85,19,243,202,118,46,107,161,73,48,28,45,120,229,249,196,210,65,48,162,84,138,148,181,12,101,241,141,144,120,185,100,5,26,93,219,206,227,163,60,38,77,49,16,215,224,183,4,196,36,145,114,79,134,253,96,87,165,127,66,173,195,63,225,6,19,85,41,153,106,247,177,209,129,210,143,120,204,100,177,251,174,37,20,93,72,5,236,50,152,200,131,112,71,55,247,230,101,152,25,7,185,83,160,46,210,143,212,5,36,113,50,28,180,104,160,205,94,146,245,77,235,24,179,143,78,158,160,121,106,225,83,15,221,60,196,36,241,150,10,181,28,209,54,85,226,71,112,161,104,134,199,240,44,35,236,49,185,127,75,11,88,22,157,201,161,244,223,143,110,186,211,8,83,34,240,18,204,107,63,169,238,153,71,134,115,18,217,105,88,232,64,51,192,33,171,240,152,0,126,131,179,215,164,98,33,146,180,0,225,55,81,23,71,202,244,142,115,131,88,15,211,26,178,51,162,203,124,66,36,249,154,106,225,166,109,27,205,120,234,57,67,15,93,32,211,191,153,139,248,108,14,205,113,178,92,140,215,156,229,163,244,79,55,42,25,79,156,87,27,247,169,179,59,101,223,44,195,130,233,127,10,88,184,204,251,140,215,174,41,78,112,24,108,153,14,233,60,163,27,238,202,249,135,118,9,42,176,210,98,60,95,76,148,84,252,160,29,215,3,178,151,76,224,59,199,110,119,137,46,241,49,233,42,28,119,198,101,65,87,161,213,176,3,149,133,149,252,4,128,124,204,186,102,66,94,62,32,224,213,18,166,81,200,140,240,217,165,71,111,235,127,145,8,24,186,41,62,158,1,50,72,223,143,240,232,122,200,164,47,90,101,188,30,216,203,17,167,242,53,100,9,95,182,229,38,154,76,114,136,205,135,120,44,251,8,93,222,24,79,103,181,167,151,61,239,169,250,208,78,102,149,39,141,117,225,23,177,11,194,94,57,29,175,87,66,13,120,155,226,191,195,56,131,241,34,221,100,220,18,68,228,190,8,37,52,204,160,88,242,143,146,124,96,86,15,242,68,144,206,209,139,99,189,51,23,173,124,229,35,51,83,64,5,23,253,196,40,129,116,156,105,236,171,215,181,3,186,196,105,228,145,79,62,127,36,137,85,23,217,253,172,3,136,214,32,252,91,151,170,198,115,231,61,75,27,183,109,239,243,215,202,19,133,50,188,79,33,114,144,10,105,81,163,248,188,35,172,221,2,91,202,158,71,49,123,136,233,99,17,167,241,30,47,155,135,188,91,10,54,207,78,229,101,220,118,238,155,27,67,95,107,210,122,160,137,180,44,206,48,253,9,76,125,145,214,99,163,251,225,132,80,45,59,24,199,15,185,186,85,243,66,160,104,11,213,132,155,39,118,229,20,192,48,102,245,140,69,112,164,146,21,182,205,7,48,238,90,223,47,39,209,236,146,3,87,125,243,200,28,138,185,65,54,102,175,180,80,210,99,161,239,112,23,192,140,246,75,146,4,35,48,190,47,60,133,234,175,204,247,96,24,64,218,113,4,82,152,44,120,196,6,100,219,254,132,27,167,82,148,232,184,59,71,187,198,227,214,74,61,126,91,137,106,255,164,40,13,151,27,231,128,254,207,45,155,220,31,48,101,74,94,183,9,125,164,7,241,238,91,77,187,200,160,142,154,18,42,62,111,209,124,74,157,3,50,247,104,134,29,190,238,168,122,192,220,34,83,41,191,254,31,100,162,122,53,137,233,89,64,144,194,221,9,183,86,110,142,22,50,255,160,37,218,76,206,155,6,224,118,235,217,203,109,191,38,129,49,119,73,27,144,165,91,0,240,8,51,207,80,22,132,248,69,152,228,186,113,42,173,104,217,104,173,190,34,131,80,215,31,123,5,51,155,77,206,224,252,208,225,201,34,169,58,157,250,189,138,17,70,114,2,86,111,82,96,50,158,78,209,239,124,12,17,181,36,201,166,244,135,17,86,240,224,38,183,132,204,53,112,172,217,105,13,150,74,235,212,139,249,120,40,24,150,109,170,91,55,197,3,184,70,162,219,47,113,84,60,22,11,155,103,189,201,70,250,228,137,109,221,197,251,140,93,154,64,50,44,234,185,20,168,123,13,186,0,230,241,202,156,169,94,39,209,134,124,68,22,62,96,246,137,53,199,27,83,42,121,226,70,110,223,153,11,182,173,239,6,115,145,132,221,248,46,81,180,68,104,62,168,20,200,244,94,13,227,219,201,114,77,135,22,57,43,186,108,163,154,21,247,11,55,234,98,120,132,178,91,34,210,77,162,149,196,36,51,221,88,239,157,251,64,204,126,6,180,141,26,163,100,140,36,148,240,120,195,58,165,68,230,21,87,109,179,7,212,92,196,244,136,165,234,61,146,104,77,118,28,182,35,8,218,75,22,161,203,179,85,100,13,125,34,61,229,211,140,245,146,13,183,77,254,128,217,63,104,239,43,203,121,23,89,170,158,97,135,248,40,197,144,165,217,86,23,188,10,118,67,55,234,69,15,118,24,130,246,161,39,96,227,203,63,87,151,178,211,96,44,122,138,245,202,187,2,29,217,59,171,230,67,80,155,162,66,176,244,150,96,217,95,10,141,125,46,201,17,238,51,187,42,61,231,71,126,19,134,81,206,244,166,145,209,104,7,246,216,201,169,232,184,32,123,31,70,93,63,131,109,157,11,208,69,107,244,28,191,151,8,196,60,44,123,226,170,90,139,227,3,241,41,101,78,116,167,141,190,194,22,147,218,59,86,139,212,183,197,152,120,96,228,30,95,255,12,44,65,168,55,203,28,216,177,132,164,154,42,237,2,62,64,81,242,111,113,79,180,199,237,219,41,87,31,120,161,141,252,97,48,145,2,49,96,233,45,157,252,140,215,78,87,24,11,184,173,123,206,46,149,230,61,30,249,68,143,92,185,1,223,104,117,203,168,116,1,81,98,158,27,69,238,137,180,35,211,58,161,197,254,105,196,34,57,78,82,176,166,230,245,133,208,155,15,116,29,0,106,54,187,38,117,201,172,152,79,214,93,226,246,136,31,157,57,172,90,177,15,239,221,197,134,117,109,47,254,73,28,29,59,185,138,166,127,35,11,89,76,232,210,196,145,106,244,98,155,193,223,89,51,138,182,23,226,42,163,243,14,120,72,160,101,147,30,219,47,191,72,243,132,207,49,7,88,233,119,90,25,51,164,229,209,39,68,119,196,131,152,252,2,190,97,55,197,186,65,35,30,163,211,156,235,4,120,242,138,84,108,53,11,88,238,121,190,221,138,240,72,110,146,204,169,23,42,53,136,39,240,161,236,92,146,3,24,122,110,177,79,223,194,114,222,29,171,246,134,228,144,73,51,104,207,180,45,83,11,240,34,159,87,143,0,29,161,50,232,196,215,64,126,102,185,9,48,73,36,88,125,142,145,185,231,161,23,242,207,219,109,110,14,90,163,222,254,16,180,130,197,158,76,126,238,42,50,244,6,116,22,96,170,56,91,192,238,44,184,78,220,132,158,78,251,39,51,196,17,142,120,149,107,171,235,213,13,93,183,110,174,17,11,122,241,57,155,47,231,220,186,130,72,80,205,182,206,156,171,216,19,15,47,252,84,136,98,117,66,236,60,110,187,9,219,239,27,117,35,130,92,63,194,163,246,74,144,134,25,195,53,175,91,158,188,108,71,225,212,7,126,255,36,149,134,102,48,160,70,95,216,9,39,207,248,122,238,179,16,41,233,65,208,120,179,195,247,4,134,89,171,30,153,102,51,39,240,70,126,196,208,5,22,183,104,52,147,165,83,237,141,173,137,181,94,149,34,18,225,7,122,108,208,63,198,75,248,26,49,167,220,84,15,119,105,195,241,237,47,180,145,76,136,160,104,181,220,131,41,193,228,245,75,58,9,122,22,88,146,26,33,171,141,124,218,253,73,147,201,1,61,235,87,183,107,106,232,134,184,10,158,255,214,165,202,48,35,78,27,92,118,234,48,18,207,103,9,220,87,33,68,160,185,121,140,250,148,10,59,84,103,207,189,127,162,135,228,69,222,244,20,42,144,56,153,130,209,31,15,106,81,44,242,69,167,113,198,229,178,132,108,228,249,86,26,167,199,62,152,185,5,72,126,42,222,124,72,0,53,171,130,225,103,249,44,154,220,207,180,83,30,35,15,240,239,202,18,178,96,168,57,219,70,83,125,157,135,149,42,13,52,242,226,28,129,218,168,206,111,90,123,176,70,55,223,136,7,25,161,84,121,230,101,47,192,76,146,249,186,59,135,235,35,153,101,125,192,18,251,72,164,178,6,210,91,2,76,85,162,121,236,106,17,58,37,210,154,191,130,245,202,162,110,3,255,65,89,201,57,147,121,130,44,18,217,224,179,25,32,130,225,253,13,97,52,88,183,74,151,172,201,113,214,111,55,194,66,216,160,32,232,88,176,152,14,121,31,143,255,11,83,103,22,149,165,119,37,58,130,223,207,247,177,73,237,19,61,132,176,164,109,151,69,219,199,13,94,229,241,47,113,2,180,158,162,32,221,247,16,141,107,62,93,202,68,226,115,161,43,116,76,220,202,244,180,4,138,155,18,53,228,85,109,173,98,62,229,4,94,38,149,67,251,193,19,218,190,140,116,33,99,201,0,93,189,28,165,210,119,79,61,235,248,147,136,59,79,12,214,226,147,180,166,43,86,253,136,202,123,28,101,37,63,123,157,175,244,141,80,180,107,209,194,8,74,230,18,76,189,38,211,233,94,172,27,115,101,128,8,157,255,206,48,68,215,248,101,177,140,10,154,228,197,50,168,38,95,113,30,243,160,196,155,107,76,113,58,129,224,82,1,214,26,32,187,162,109,189,14,216,228,117,143,45,61,148,240,16,201,87,73,119,10,43,95,147,178,66,104,194,137,219,230,19,253,48,166,137,146,229,51,8,116,77,87,223,161,243,32,188,107,31,207,231,119,134,152,211,28,181,201,79,49,35,95,3,168,247,96,164,138,244,105,182,11,53,118,74,82,147,29,45,230,202,217,151,36,93,196,220,188,25,74,57,237,167,131,104,116,246,3,48,160,127,34,229,145,66,84,103,130,247,6,210,192,185,31,240,109,45,134,49,121,16,81,206,238,67,178,163,211,5,156,103,147,63,86,229,67,126,42,133,248,190,223,12,26,200,166,14,237,24,140,48,91,181,202,161,64,156,103,210,124,47,255,54,45,124,200,250,72,18,128,228,84,214,175,182,101,7,154,18,214,123,77,44,244,204,11,162,95,52,129,151,181,232,99,11,178,21,147,167,234,92,241,205,143,114,54,32,110,221,68,36,213,126,98,182,6,203,227,174,143,17,49,244,74,91,153,141,213,98,239,125,23,56,13,80,70,42,188,174,153,206,242,125,145,192,20,12,179,219,75,55,34,90,139,253,230,161,97,67,49,28,248,45,236,178,194,6,121,101,209,166,85,142,147,0,116,202,214,91,32,107,187,30,157,166,236,56,243,78,142,237,37,251,138,158,85,195,189,74,21,120,164,56,1,108,212,140,56,65,91,191,175,99,226,148,192,248,22,0,212,127,33,38,182,158,70,50,213,30,125,194,166,228,87,129,9,248,96,193,10,50,229,87,135,110,166,159,38,125,244,75,179,212,24,102,78,19,115,136,214,47,60,166,0,88,147,205,227,187,250,212,226,111,3,87,16,147,199,123,63,77,185,168,143,250,39,44,252,208,199,234,126,25,157,0,86,179,107,175,67,59,136,43,99,183,4,250,202,233,25,171,83,159,57,113,72,141,219,30,60,104,173,252,12,65,124,137,188,222,225,195,45,81,153,216,100,168,2,153,62,91,191,202,227,79,250,46,17,132,114,40,156,93,104,126,166,26,52,75,185,143,240,227,194,217,1,170,96,26,137,116,1,213,146,192,188,68,43,233,248,51,94,73,169,206,246,91,35,118,63,233,221,0,138,20,98,148,181,59,107,33,172,216,85,10,178,200,17,231,250,137,145,71,112,104,244,133,157,182,226,17,57,12,69,121,166,43,210,81,207,24,223,182,41,69,113,8,86,157,247,104,132,55,230,201,168,60,154,177,4,227,195,27,255,72,90,41,102,141,222,168,124,83,209,192,64,16,181,6,51,240,132,225,99,173,112,34,157,35,180,108,55,5,243,152,195,81,74,118,137,218,236,27,167,95,75,139,215,15,175,144,119,198,35,252,236,30,187,48,102,171,34,214,236,14,127,75,55,189,155,99,196,135,85,21,244,69,199,151,250,30,168,2,35,211,102,88,231,143,184,61,127,38,63,110,68,159,87,230,211,203,174,242,135,190,112,12,17,67,17,125,99,178,153,135,243,8,88,215,162,32,231,52,193,243,100,45,217,66,11,48,154,189,198,90,27,170,116,233,139,181,149,125,10,91,72,218,96,253,140,32,162,49,207,238,26,125,179,169,0,60,204,47,222,224,94,69,147,247,135,101,19,24,33,111,224,221,168,67,94,253,128,158,14,60,124,183,203,188,68,231,215,135,196,99,30,127,170,54,39,12,154,252,83,78,147,172,126,211,15,41,109,82,244,197,238,181,55,132,25,63,42,211,171,238,145,251,102,127,64,141,204,180,95,9,30,1,118,48,77,151,101,206,188,213,33,244,88,137,17,235,165,208,151,160,91,137,194,63,78,181,227,7,121,247,18,34,96,38,243,142,167,200,89,191,238,19,121,14,156,68,50,208,105,73,245,42,26,97,55,162,124,188,132,219,200,6,93,228,156,110,82,200,17,240,138,70,120,209,161,179,224,38,151,50,4,223,207,64,185,160,233,20,150,62,126,37,137,240,8,109,93,121,12,250,81,173,202,141,184,20,67,52,108,32,208,158,238,224,82,137,153,244,205,48,78,24,35,103,117,177,8,164,220,76,168,143,17,113,104,92,208,201,254,147,189,12,32,226,50,133,187,87,44,215,70,238,52,97,157,173,197,244,119,27,7,208,170,159,100,94,224,0,21,182,205,53,73,118,250,41,132,225,176,88,36,61,8,212,207,247,77,96,21,142,112,158,165,233,247,4,106,59,68,168,28,194,218,153,119,33,94,181,143,152,246,193,26,211,136,177,64,172,83,233,123,47,12,50,108,120,5,165,79,181,135,150,21,41,88,252,230,52,101,198,221,253,133,106,218,67,191,23,43,227,15,90,58,125,173,205,151,132,110,236,42,254,70,81,207,188,162,222,31,149,58,8,121,15,232,190,199,37,119,22,163,155,143,241,90,57,74,102,213,17,13,154,213,49,135,109,90,233,190,38,173,73,247,197,127,192,155,118,14,73,254,107,229,53,85,217,132,28,43,183,166,237,121,129,222,50,205,90,109,171,158,37,250,66,25,186,5,247,3,101,81,218,48,64,43,229,17,188,192,169,157,134,121,175,198,217,41,228,70,85,62,240,108,11,181,139,124,152,24,46,254,65,210,50,128,234,17,199,161,86,125,104,7,191,149,111,80,25,78,246,164,228,206,118,188,138,144,38,53,3,215,107,81,143,37,59,225,183,210,14,251,64,206,127,159,30,161,239,142,249,28,215,38,200,124,65,85,103,174,50,188,3,155,215,25,191,65,160,137,3,242,62,88,238,107,197,147,33,123,66,118,195,248,1,219,148,137,183,88,98,29,63,32,175,234,65,28,188,168,246,53,137,8,232,116,219,193,97,36,152,88,204,110,75,112,178,34,24,244,154,9,86,232,162,57,139,213,212,121,72,225,203,43,184,165,158,60,17,254,135,11,80,98,182,103,147,168,253,79,80,228,112,202,61,133,29,11,209,44,138,111,90,146,38,190,116,216,6,192,59,226,64,160,250,22,74,226,51,31,106,91,185,13,156,210,34,116,203,243,134,172,210,61,99,255,67,45,230,170,182,147,135,81,11,117,18,202,245,44,201,93,110,160,61,1,180,119,70,213,144,133,17,225,146,184,234,94,169,126,142,66,97,15,212,197,56,30,35,247,65,106,162,189,6,244,44,95,207,157,121,143,209,237,19,50,73,248,103,149,225,40,51,12,122,162,220,195,131,177,86,26,133,85,226,123,76,103,253,173,191,63,192,33,11,31,151,221,191,204,171,35,216,150,61,111,133,255,0,79,112,84,224,20,172,38,96,216,224,124,30,84,66,61,207,143,185,145,3,246,109,112,44,193,71,247,146,53,93,31,172,229,4,216,180,134,177,173,229,54,248,216,0,96,44,16,68,115,203,150,136,81,93,185,162,220,44,245,10,149,76,117,24,101,53,198,228,129,54,201,231,164,99,47,89,142,17,124,210,3,186,75,244,154,122,182,4,50,229,90,170,255,72,147,139,221,26,100,37,197,47,114,157,68,86,167,247,207,50,181,23,5,209,128,232,111,96,90,174,152,71,61,185,196,9,213,129,26,241,227,127,41,39,59,169,183,3,223,249,69,84,139,231,114,204,21,156,110,153,119,161,226,40,128,241,12,87,213,107,50,194,176,70,19,128,78,94,250,119,1,109,223,166,239,35,29,183,58,154,192,108,59,219,230,27,160,137,188,206,36,247,0,150,116,90,64,144,162,128,218,70,177,63,228,202,243,47,98,81,14,120,29,251,171,101,5,81,124,133,208,63,196,78,42,189,31,236,158,142,246,227,178,35,2,116,100,89,55,18,156,196,209,66,172,17,201,61,135,163,185,147,91,12,232,220,102,39,113,76,248,138,149,245,76,123,200,82,185,11,233,174,39,221,18,57,108,60,76,245,105,225,174,27,11,202,155,116,218,43,183,141,94,22,100,64,89,171,147,5,251,143,197,215,188,112,48,238,37,105,78,246,197,183,147,174,129,29,55,32,14,121,231,209,95,40,229,165,203,59,137,126,243,78,103,29,153,82,216,185,4,184,108,29,193,214,253,0,71,144,47,167,51,137,113,90,237,106,203,252,133,154,173,185,233,35,58,223,27,95,66,121,0,2,187,72,33,21,115,214,108,56,225,170,89,140,251,153,203,98,2,87,67,180,17,246,33,169,136,198,52,224,119,218,146,69,52,202,223,9,29,153,191,32,232,243,161,110,114,140,89,153,31,226,76,212,39,94,6,173,54,192,121,179,111,135,246,40,82,78,13,176,127,226,58,128,242,21,196,170,211,107,153,111,139,45,29,77,117,152,218,9,234,90,54,249,178,202,162,110,49,140,25,220,94,7,120,173,65,37,191,147,254,198,230,41,88,231,63,174,142,190,197,123,248,0,100,215,159,67,23,42,230,169,30,138,248,183,81,75,108,62,204,155,0,215,127,137,33,102,125,61,162,79,31,93,150,204,227,190,4,244,213,168,235,63,136,28,40,207,126,255,2,153,187,105,83,218,76,93,162,227,113,3,208,156,40,128,188,206,20,254,108,76,51,155,138,231,56,169,200,248,30,67,46,125,1,179,208,104,85,69,198,19,7,176,214,83,117,157,40,133,173,254,227,103,62,92,25,174,228,61,116,73,205,219,0,148,140,184,251,105,42,82,202,30,104,145,236,44,74,190,255,10,174,138,125,63,210,38,206,122,130,230,87,16,215,190,173,52,110,73,149,13,250,97,13,221,161,245,229,39,158,181,207,121,72,52,138,94,25,155,6,115,109,191,197,132,248,40,166,61,208,236,93,79,31,50,199,122,162,218,191,40,13,24,137,145,255,104,227,75,94,182,104,232,251,136,153,223,38,165,51,203,3,123,95,71,23,87,193,65,255,108,140,210,172,229,63,12,156,24,122,44,177,247,128,86,198,208,39,97,161,116,56,10,177,18,74,147,227,108,17,36,227,216,203,95,77,189,150,161,131,50,9,252,113,117,194,71,217,153,81,187,136,246,36,31,7,61,166,230,110,203,104,136,90,62,7,152,252,167,18,221,113,179,72,33,235,90,193,9,246,68,145,109,189,21,209,48,124,133,38,165,224,254,204,164,117,80,132,215,66,39,20,230,104,49,7,182,157,181,135,241,42,67,50,213,227,123,0,18,171,108,91,206,147,81,131,239,76,215,199,149,118,40,162,241,16,53,13,181,102,233,79,241,90,35,163,107,218,183,135,60,4,31,199,155,123,115,20,130,214,55,1,226,66,159,249,89,102,201,184,32,173,252,197,17,58,14,222,101,237,177,75,141,149,88,125,36,166,24,55,44,162,73,179,80,6,110,254,224,154,117,134,205,208,62,99,72,163,37,195,213,241,2,126,191,135,239,85,19,151,85,117,168,104,223,134,234,33,49,206,159,178,20,14,79,252,159,97,207,115,225,71,221,63,18,251,42,12,183,170,83,134,57,141,110,22,120,32,244,93,71,228,212,155,12,181,162,203,115,238,191,135,79,251,108,213,33,54,195,25,1,144,160,89,55,223,5,234,45,85,99,17,200,242,173,151,176,123,142,74,203,49,140,235,80,108,74,112,20,215,8,155,191,162,254,34,3,80,115,238,108,16,221,171,202,247,37,149,135,79,53,191,6,207,107,91,29,66,176,212,230,144,168,118,33,59,139,241,88,118,182,110,166,203,27,149,43,215,72,53,15,249,132,235,39,125,25,82,157,74,176,232,255,138,211,201,0,62,166,110,188,12,102,242,222,34,134,151,123,165,199,31,59,70,83,233,128,69,210,227,158,16,54,204,246,174,81,37,180,109,15,120,54,87,17,139,208,234,198,123,102,45,155,250,179,12,165,68,148,52,20,164,143,187,209,41,255,64,3,194,82,121,227,109,148,26,14,255,120,230,202,34,60,164,81,109,187,76,208,129,95,202,160,74,50,156,227,247,222,108,133,115,10,46,17,178,155,112,221,135,57,74,98,228,46,184,18,91,5,242,162,194,228,243,140,185,222,61,76,7,196,121,22,154,162,40,105,82,75,7,212,51,191,155,170,139,240,102,238,90,23,119,38,207,118,36,153,108,57,246,18,212,130,226,77,91,11,197,180,161,173,185,58,41,79,255,104,8,231,81,198,121,30,151,218,142,247,216,5,109,196,36,114,229,144,131,171,16,190,74,85,51,253,9,58,96,239,142,187,40,22,161,82,70,120,158,215,196,100,217,167,36,90,191,140,18,155,199,70,57,7,249,224,120,23,243,135,187,156,206,99,51,2,113,44,78,82,216,161,228,3,176,205,48,138,86,27,164,121,104,222,248,72,156,32,228,202,160,106,190,10,120,139,48,83,209,32,71,19,241,237,149,253,194,19,143,184,49,125,73,85,37,6,110,167,220,231,148,101,19,15,221,73,112,171,195,144,84,228,56,43,245,189,131,253,151,70,214,193,50,46,90,167,238,22,125,132,191,104,12,53,78,242,134,145,41,180,0,97,19,203,222,161,233,120,90,129,45,109,247,70,166,86,233,57,153,26,180,8,220,121,197,26,185,9,240,45,205,65,105,117,210,138,234,57,81,173,151,10,124,164,231,47,155,243,178,200,209,28,135,52,65,93,106,212,164,108,232,25,195,60,89,4,254,155,136,68,180,113,32,116,93,0,174,178,153,239,62,42,201,31,64,134,217,109,247,68,61,32,236,178,24,202,80,116,144,174,241,12,102,215,134,174,255,131,127,76,197,60,179,10,230,85,212,101,40,145,17,160,147,95,9,114,100,177,131,16,69,250,48,226,211,207,39,3,114,164,204,211,148,42,176,76,253,238,143,99,31,56,90,227,186,63,109,78,169,198,28,250,221,155,6,124,37,131,90,17,127,170,14,70,241,228,59,198,157,191,98,93,34,140,221,210,142,88,73,165,180,151,47,230,203,121,14,102,63,27,247,2,39,171,240,212,66,180,51,147,234,130,103,30,195,81,124,193,62,75,240,84,211,160,142,181,227,44,31,5,122,100,153,35,67,175,53,123,128,15,246,98,26,146,211,230,183,194,85,175,228,27,187,87,155,5,61,207,42,243,139,79,219,107,125,224,14,214,78,112,57,87,99,195,148,167,46,22,180,254,141,156,59,28,255,162,76,116,14,83,139,205,183,38,237,208,104,206,116,37,63,2,148,183,25,231,143,249,214,110,89,66,168,189,104,75,37,210,93,0,232,63,160,150,193,127,128,240,24,31,202,184,45,107,53,14,150,222,91,73,168,252,130,120,239,240,204,102,177,5,214,157,172,58,94,131,226,45,126,70,24,201,112,210,80,50,79,8,254,19,162,233,184,42,142,155,103,190,60,36,4,90,205,115,234,136,156,100,73,218,16,166,248,135,149,174,101,254,10,94,122,228,218,194,56,176,65,39,27,31,216,91,164,181,146,9,74,201,250,37,224,109,116,133,63,64,102,3,161,117,62,38,237,241,140,177,31,145,221,207,92,163,111,2,145,116,234,209,65,34,249,200,21,80,57,191,131,225,243,167,43,71,127,147,178,201,60,80,102,21,8,142,208,168,37,120,94,155,233,181,247,76,219,8,205,24,52,107,133,216,13,240,28,125,74,148,194,173,233,55,81,99,44,186,128,118,15,225,53,70,218,140,183,19,96,88,44,246,205,146,163,130,24,50,80,235,187,200,118,33,67,241,13,173,154,210,100,148,81,209,19,177,101,143,199,116,3,249,33,58,235,73,169,114,5,144,68,84,108,193,176,234,54,36,29,255,133,213,171,190,42,233,144,81,142,13,50,220,29,195,244,77,124,174,108,85,72,186,200,10,24,56,251,44,237,120,130,208,166,98,146,203,176,105,135,252,52,161,86,145,220,229,64,22,35,1,123,49,82,214,11,123,71,155,21,166,33,104,247,193,231,137,186,6,59,232,138,221,109,159,36,126,243,162,68,201,90,23,177,146,164,255,67,37,49,23,210,123,128,84,104,226,3,188,199,209,199,245,235,126,139,78,30,151,100,38,11,181,83,165,52,134,158,7,114,19,58,230,203,217,175,185,83,64,45,103,249,35,219,229,55,30,84,200,120,1,254,161,143,184,156,102,71,216,179,61,77,24,96,228,152,161,86,143,248,45,6,113,198,229,85,105,46,250,206,18,58,181,169,79,116,134,213,14,148,220,190,197,14,145,61,232,122,72,82,30,140,111,169,253,45,189,204,49,137,43,149,29,112,109,171,239,71,221,87,4,250,123,6,38,90,214,234,146,58,170,242,183,141,193,26,109,76,180,2,220,106,252,140,230,168,148,21,81,204,40,76,121,55,205,97,181,12,33,253,18,211,160,225,84,61,159,129,114,66,239,98,55,36,253,123,10,131,84,165,19,158,190,73,207,208,191,132,149,222,231,255,44,125,172,50,100,11,81,197,25,79,179,145,98,18,62,195,248,142,171,115,76,220,9,80,32,224,165,159,219,6,20,178,233,61,143,251,97,33,66,112,204,85,99,23,47,7,178,152,83,127,138,247,166,202,214,48,236,71,115,75,106,177,142,51,29,83,240,238,10,210,206,151,170,46,184,70,159,49,251,4,229,117,197,80,162,35,211,22,96,142,153,115,4,29,169,180,141,250,67,59,221,196,40,84,110,239,238,247,42,217,65,159,109,94,12,26,188,172,207,115,132,62,130,81,216,51,5,156,126,65,249,28,107,225,43,174,181,194,72,246,218,100,52,24,138,197,230,81,190,45,161,118,157,10,212,70,190,163,114,30,80,146,44,48,109,194,5,238,139,249,234,45,163,181,218,51,192,82,73,9,247,105,123,27,139,144,109,151,163,143,114,73,244,84,206,231,216,46,3,49,190,24,35,120,0,208,53,237,132,97,255,155,201,69,18,183,167,80,20,105,217,37,118,195,181,78,150,128,240,92,229,62,161,0,218,78,244,109,235,82,163,53,158,200,184,138,38,127,29,15,208,150,14,42,113,226,135,255,176,95,66,110,165,55,192,29,96,226,19,115,242,161,135,152,194,50,65,91,180,216,8,43,30,172,64,146,60,179,195,215,39,247,96,229,136,92,10,112,41,142,162,248,86,126,20,197,55,64,144,104,231,189,210,9,44,229,209,86,103,254,155,59,25,65,125,170,136,8,177,195,214,107,198,71,58,191,44,233,8,81,143,152,167,20,244,113,165,253,16,234,59,14,90,221,206,114,152,106,134,79,186,42,196,84,174,139,243,38,236,159,189,49,75,17,5,214,120,100,43,223,171,240,194,157,66,226,51,137,29,89,14,124,183,96,205,176,70,56,119,141,236,209,32,110,25,168,255,155,11,88,233,21,199,112,62,64,165,107,154,255,223,128,35,180,0,88,17,228,198,81,161,153,183,6,210,244,136,110,76,120,54,44,9,252,160,78,188,232,101,127,63,195,91,21,47,140,215,154,45,218,71,196,253,232,19,103,178,154,174,112,0,48,94,136,142,182,107,113,8,48,75,241,29,217,85,38,203,168,230,155,203,213,25,66,153,177,11,224,240,143,111,123,42,58,87,166,5,60,244,87,204,165,47,115,231,213,26,102,146,129,180,67,122,87,0,188,24,32,77,244,100,168,232,54,136,145,199,213,77,157,169,189,229,31,204,222,115,136,242,47,52,93,97,11,180,69,92,220,101,124,133,241,22,159,14,60,32,226,174,207,72,154,139,20,186,175,233,201,244,107,86,119,44,9,63,223,178,13,34,99,240,197,122,64,144,86,234,22,134,219,54,175,168,58,205,151,254,37,128,25,184,90,235,79,222,119,108,1,216,108,49,14,244,19,231,125,133,73,154,80,205,183,162,43,222,106,35,113,9,129,56,198,246,160,17,95,230,155,191,74,222,56,232,249,32,108,64,179,201,85,13,143,124,172,28,146,194,225,24,57,39,85,15,184,153,221,131,107,247,79,117,174,206,170,69,3,121,135,49,107,241,214,27,191,90,233,147,34,150,67,229,56,3,18,126,80,44,217,255,108,197,133,160,185,159,165,77,242,211,194,29,235,190,41,83,105,141,114,49,6,241,47,234,155,183,111,1,56,119,200,78,85,17,162,219,141,185,13,240,136,106,93,146,50,219,66,116,34,162,224,26,197,212,61,80,198,107,168,77,234,27,45,131,242,159,112,12,188,220,51,65,27,177,198,11,125,81,140,163,144,226,39,242,99,171,240,226,12,122,136,81,97,180,44,153,200,217,66,51,23,87,73,235,34,204,54,172,216,180,138,28,101,243,5,117,158,129,233,220,199,184,38,120,145,98,5,242,54,87,160,69,16,89,30,65,214,47,99,159,52,235,183,192,135,116,168,255,2,2,164,99,38,252,194,217,149,225,179,74,18,51,86,141,119,45,49,147,12,210,108,180,25,138,231,246,70,195,126,169,92,67,185,167,233,84,135,208,37,149,107,252,26,8,115,198,49,86,158,203,48,185,139,69,118,99,15,244,17,227,162,211,38,230,247,68,106,137,219,194,179,158,163,59,13,80,21,34,115,200,120,4,176,80,164,146,19,239,61,99,38,254,132,65,219,148,200,71,112,177,0,58,109,225,45,89,255,128,175,20,210,202,159,233,143,212,105,56,182,166,120,93,68,254,1,45,19,60,224,40,158,90,73,188,98,114,222,193,135,244,28,160,8,177,58,171,99,69,151,47,215,231,4,23,87,196,133,243,125,76,82,225,127,45,106,21,14,250,200,152,61,170,216,142,183,87,157,62,21,79,186,14,123,202,134,218,106,32,163,255,237,151,58,195,184,134,236,222,108,241,10,84,22,173,42,79,113,239,175,190,15,243,98,22,202,156,66,121,34,49,143,80,216,255,98,8,93,219,43,131,118,150,68,49,233,25,206,187,171,101,1,243,30,184,160,146,60,234,115,72,93,42,197,136,213,119,229,161,48,82,33,183,16,74,109,151,142,253,213,9,196,80,243,136,165,144,9,118,70,185,230,98,212,25,193,46,56,25,80,162,140,127,230,187,64,34,211,62,204,243,111,154,4,82,127,253,109,21,79,148,130,63,160,230,215,37,10,197,191,176,147,125,7,207,58,214,47,242,70,108,94,166,225,132,20,197,118,189,142,88,208,8,236,32,76,170,145,18,60,105,246,0,49,66,34,191,231,95,119,167,154,133,240,214,196,102,17,219,12,100,189,247,38,231,125,161,94,21,66,49,153,194,140,147,50,236,35,31,6,190,207,213,71,102,113,92,139,243,166,85,0,205,208,39,136,126,68,18,240,105,163,231,146,177,57,106,55,204,66,0,115,169,219,24,42,247,135,151,185,227,94,84,140,119,65,235,55,47,217,110,244,162,201,151,15,22,177,95,232,28,63,128,249,199,68,123,174,214,9,43,102,150,191,140,227,122,182,158,79,91,105,59,200,20,160,216,46,253,3,37,159,173,235,128,5,246,88,61,188,208,115,100,75,24,205,112,148,138,169,25,71,89,242,57,236,39,186,9,111,220,202,144,60,178,68,164,216,196,134,127,6,243,32,105,26,88,236,22,152,172,143,127,42,97,220,88,11,206,57,224,180,76,241,129,37,31,101,58,4,186,236,175,209,73,197,249,90,157,117,47,171,52,183,70,197,150,124,24,221,5,238,110,137,84,249,227,123,209,100,88,132,26,169,144,185,71,51,202,248,40,12,242,32,183,75,95,129,121,237,56,30,145,173,100,193,10,213,206,78,62,25,141,116,224,94,40,223,99,244,171,150,178,4,119,137,203,92,145,238,48,47,253,223,12,79,107,29,179,171,251,104,15,191,173,235,95,68,132,20,34,59,146,201,223,117,34,143,242,6,72,158,181,107,19,205,112,216,81,61,224,162,77,110,234,212,94,203,19,7,52,39,150,163,240,116,130,187,137,121,255,198,227,98,25,183,7,151,219,66,43,93,58,172,232,185,122,21,157,193,253,128,213,164,85,4,62,67,110,34,144,1,41,61,231,123,142,254,101,81,29,179,207,70,223,164,23,160,137,53,68,252,156,220,37,232,190,91,10,114,195,101,76,240,8,21,230,186,59,138,124,98,203,222,44,154,171,93,186,135,78,41,245,119,8,215,204,149,236,89,103,19,164,51,199,230,15,145,166,48,41,113,134,252,77,221,92,187,27,106,22,104,73,123,131,169,49,148,13,190,208,196,244,93,232,40,139,52,37,122,236,73,243,160,205,26,215,147,10,100,185,87,186,68,47,241,131,118,100,198,157,85,10,218,28,171,231,54,155,2,32,20,132,58,234,87,163,213,245,75,101,179,200,125,170,93,68,108,153,237,241,133,179,6,124,33,221,29,201,54,126,35,142,200,82,97,145,211,243,13,228,17,79,190,170,57,239,27,166,248,96,12,83,140,203,188,63,72,154,112,37,222,220,41,230,58,92,21,64,106,15,243,197,117,139,184,165,147,231,91,70,168,102,46,246,201,142,116,181,16,156,210,59,9,81,58,108,127,13,212,33,31,76,139,240,229,205,174,145,190,83,70,24,206,117,160,102,55,0,227,185,148,43,139,251,219,198,54,69,236,139,112,81,172,187,15,255,101,25,220,38,148,34,120,202,94,74,58,13,231,25,255,102,142,154,177,164,212,166,147,88,227,188,38,61,68,19,246,138,203,101,118,11,212,77,176,246,226,35,62,136,197,20,145,96,122,214,1,84,160,131,240,148,64,21,55,174,39,224,86,11,190,214,203,99,114,202,252,230,171,82,150,128,49,32,74,188,121,30,7,213,105,84,217,161,200,178,7,118,155,130,17,75,105,235,41,246,54,85,121,201,52,230,25,11,222,45,74,245,111,174,141,176,146,52,77,167,155,198,123,134,247,2,42,214,225,190,17,95,108,21,143,244,100,224,5,223,32,177,68,55,90,204,157,117,172,233,54,247,0,95,203,118,101,168,223,142,65,20,147,181,41,245,141,124,47,28,175,62,76,102,222,3,239,95,182,193,155,236,47,93,153,132,56,9,113,170,109,25,184,205,246,68,223,78,99,11,217,83,235,189,60,25,132,118,164,41,193,156,250,70,226,155,55,3,30,129,197,250,42,188,172,97,86,124,216,4,180,44,93,170,143,152,50,24,204,230,66,103,240,212,124,33,14,173,115,158,65,251,132,236,205,211,27,83,103,50,183,72,220,178,18,15,228,54,148,130,163,92,124,33,102,250,205,142,122,78,15,80,216,19,62,197,228,175,151,182,42,243,102,161,219,135,81,230,21,145,59,64,98,42,193,122,243,3,185,63,146,195,179,127,140,8,236,107,20,241,161,46,215,91,72,210,63,196,228,42,110,124,151,15,249,169,95,139,179,20,67,183,36,12,233,93,170,107,20,73,246,197,143,118,210,51,153,94,29,223,224,163,206,151,121,135,13,242,38,100,185,58,77,143,240,0,40,109,163,233,63,195,68,213,29,123,86,151,189,103,213,241,7,232,65,113,31,45,152,48,178,136,164,207,91,220,104,38,170,244,195,148,79,180,139,9,60,93,226,20,114,160,40,24,232,81,68,250,154,107,215,127,0,197,187,133,51,168,35,86,50,64,182,7,237,114,136,102,22,193,157,248,211,7,55,223,85,102,24,151,35,139,183,75,248,194,124,232,162,17,245,194,4,117,225,154,57,65,143,103,208,36,171,185,91,55,161,182,223,14,39,26,255,234,104,74,122,136,90,151,193,121,138,38,197,231,218,149,69,190,81,0,50,96,173,27,243,123,20,59,77,43,102,162,131,252,221,158,191,198,236,8,88,123,141,84,102,77,18,229,166,199,14,61,46,248,148,185,215,206,230,210,57,32,169,135,249,110,4,121,72,156,16,182,84,85,33,184,63,109,15,197,243,161,227,152,117,140,212,17,75,143,241,192,122,213,85,8,238,106,40,177,173,152,30,51,72,76,47,253,13,224,83,152,206,61,140,112,210,28,104,160,190,72,213,147,162,191,4,237,48,241,30,35,120,198,134,94,106,183,55,78,6,147,255,128,160,33,123,110,83,18,227,204,218,157,183,165,53,204,108,220,138,35,124,229,21,95,69,11,249,196,252,140,155,235,23,210,35,188,73,160,112,107,59,2,91,57,175,105,125,15,17,146,232,205,185,40,89,77,254,140,223,6,117,103,230,158,26,43,190,245,172,223,130,195,90,58,64,68,224,248,160,204,143,123,10,55,108,180,80,20,36,217,145,9,160,234,179,100,80,147,33,115,24,134,61,206,215,69,240,150,0,49,122,64,202,244,163,185,133,92,227,97,39,17,211,66,91,111,209,128,24,242,194,40,160,233,183,119,2,57,144,92,193,214,251,165,226,11,38,62,103,121,137,187,144,76,16,221,91,197,2,78,176,254,138,43,60,17,105,158,121,230,172,175,84,221,234,197,176,125,141,154,37,254,2,49,24,77,102,84,42,207,59,19,253,0,127,215,239,66,187,144,96,167,135,56,178,237,30,45,76,148,223,8,118,243,198,97,134,95,166,83,46,9,240,209,146,128,204,123,55,170,234,79,106,190,19,251,174,64,199,152,54,137,86,118,43,111,185,15,222,233,23,99,146,194,121,17,38,51,170,215,130,236,64,184,4,94,251,68,146,7,246,61,39,90,105,134,126,26,211,224,179,198,175,56,149,31,105,161,77,199,219,34,183,92,234,242,0,120,142,28,115,192,208,153,91,4,99,47,188,161,77,254,239,130,61,97,135,85,228,17,180,195,4,211,247,172,124,55,69,41,153,150,133,57,167,17,211,105,43,252,225,112,67,182,9,80,199,26,91,64,97,124,235,146,6,196,222,241,129,178,160,49,39,224,159,39,113,217,76,181,168,254,134,104,197,19,56,82,0,26,191,140,106,117,37,220,89,10,57,77,248,165,154,196,230,127,9,222,224,82,168,135,101,155,54,187,193,243,74,25,42,167,25,9,53,103,89,144,194,118,64,242,37,209,237,135,186,202,82,187,11,98,243,165,46,56,230,27,156,71,121,142,213,151,104,224,23,188,113,12,38,88,162,55,71,245,130,206,214,121,232,34,130,215,106,51,66,179,91,151,30,165,248,1,206,114,172,211,234,55,200,111,131,176,16,79,246,41,159,4,81,95,162,141,120,177,35,226,75,63,111,27,222,192,241,159,4,46,100,84,221,28,173,183,77,253,6,231,143,54,207,113,145,67,29,124,147,55,11,100,81,200,241,225,212,133,183,33,167,218,103,65,60,200,245,239,40,157,82,5,116,183,129,173,29,27,62,78,252,36,232,204,177,209,138,125,83,168,154,10,97,185,155,138,72,247,163,207,56,110,213,32,20,235,95,13,124,253,13,21,193,128,233,175,184,98,146,126,81,63,223,46,68,79,122,200,28,214,239,133,250,190,13,46,155,163,97,56,92,26,87,149,219,139,253,236,196,68,103,113,187,41,3,51,175,80,60,65,244,111,126,164,184,132,195,226,156,45,30,211,15,185,30,15,250,158,35,229,50,164,66,114,91,110,206,222,130,143,177,18,216,197,68,250,93,224,157,103,15,51,167,33,117,40,113,101,213,142,183,25,164,87,11,148,244,50,68,235,204,82,100,169,65,40,233,145,21,121,129,51,13,216,190,198,245,44,94,138,120,200,162,234,217,21,149,77,251,12,181,61,101,232,29,85,11,171,61,46,253,156,201,72,103,186,221,119,133,236,76,250,38,188,88,163,17,11,52,96,209,130,114,200,150,59,9,153,178,132,215,127,97,201,174,84,78,28,224,240,40,32,227,89,127,3,191,96,59,135,208,77,152,29,207,240,165,64,162,125,205,22,49,129,249,46,5,107,147,90,239,176,209,162,218,68,94,103,138,59,127,204,144,188,39,243,229,0,18,176,237,204,92,169,144,98,242,6,217,42,48,74,140,114,20,112,42,92,205,20,4,226,165,54,223,106,154,131,250,66,176,78,230,47,94,106,198,124,216,63,18,132,8,240,172,154,178,141,218,20,108,119,43,49,154,12,176,205,87,253,76,166,238,232,17,58,159,169,140,94,243,198,103,184,70,116,5,213,46,218,64,184,140,169,249,153,14,122,105,84,29,52,200,45,238,149,32,202,119,9,90,184,108,234,138,24,72,217,56,252,168,231,87,211,134,203,29,191,64,245,15,117,174,57,157,105,46,203,150,91,138,178,229,13,59,29,160,117,99,34,217,64,250,37,22,99,63,143,209,5,84,190,64,242,114,160,226,155,203,205,39,212,242,137,116,153,111,184,229,3,164,77,62,93,29,169,248,190,9,20,82,62,109,149,73,142,112,44,223,204,232,37,216,203,240,170,84,104,155,5,117,187,74,143,56,24,233,158,38,195,97,212,64,3,93,245,26,227,48,114,139,179,161,18,126,192,14,243,222,43,183,239,168,67,98,80,60,158,131,198,249,42,227,90,66,48,119,169,8,214,187,132,23,111,151,58,73,177,30,102,2,84,160,116,43,205,249,137,211,159,225,243,196,142,28,41,112,86,0,212,51,232,188,74,107,154,173,43,248,182,15,88,133,125,210,149,107,73,62,168,196,226,31,241,195,11,181,18,101,127,133,50,210,228,173,85,68,149,41,221,117,104,183,72,226,141,246,48,8,26,41,154,89,205,162,97,43,221,249,86,77,62,200,112,149,168,23,135,9,231,179,17,191,195,4,146,63,73,97,249,131,84,214,175,126,47,239,196,213,241,68,152,54,38,2,179,163,226,85,27,140,120,104,109,60,194,149,90,46,234,25,15,222,174,79,143,241,124,189,91,107,225,134,190,29,46,221,13,61,245,199,71,157,119,172,16,161,135,245,126,12,212,183,54,68,226,85,37,149,203,106,98,43,146,115,237,49,64,28,243,129,199,92,218,165,189,5,124,19,243,222,146,73,138,190,15,236,49,36,161,91,202,101,38,58,0,120,129,30,88,220,239,251,207,102,153,162,66,182,67,116,219,193,58,108,28,80,161,177,134,237,44,245,10,144,67,124,159,55,93,140,19,214,2,173,183,198,240,98,231,42,158,126,142,61,75,107,246,42,28,170,84,10,180,216,229,206,113,25,231,163,75,247,209,134,193,158,111,5,189,32,54,95,149,131,238,214,15,121,55,16,87,99,205,179,167,67,47,244,77,84,142,216,229,126,149,205,249,41,30,111,177,3,52,165,205,250,38,111,119,137,21,216,89,76,50,150,234,172,15,188,46,23,109,183,174,53,243,9,77,223,195,119,145,93,132,233,89,105,142,54,39,112,169,253,8,221,228,20,198,154,190,69,192,90,64,144,118,63,4,103,17,139,216,254,167,232,188,42,225,19,131,145,169,86,97,185,206,51,219,8,74,247,32,124,197,27,11,245,53,224,189,35,101,69,91,151,222,118,134,161,185,73,150,227,86,44,255,223,140,171,125,6,28,206,101,55,100,67,248,161,176,232,137,115,155,223,3,90,199,62,17,38,233,91,223,98,16,45,51,79,252,205,121,141,155,7,166,181,225,40,154,188,135,249,73,15,195,60,124,212,24,110,174,80,230,205,210,169,187,67,53,19,11,118,245,140,108,80,149,43,221,249,67,177,1,173,23,98,205,150,231,63,91,127,129,47,61,235,212,28,139,253,151,124,101,204,95,42,67,180,169,11,81,226,100,44,190,121,192,222,8,169,137,246,156,53,73,22,194,248,40,30,188,53,160,105,223,4,233,145,71,139,121,88,209,168,133,245,235,81,100,12,188,206,119,41,24,50,157,78,166,221,92,117,29,66,45,242,145,135,182,195,96,14,48,224,214,17,142,75,148,98,55,194,32,244,116,172,89,226,189,15,85,255,72,188,96,122,0,153,33,238,219,169,205,19,129,63,52,221,1,249,172,68,158,203,123,42,105,81,181,225,27,134,218,148,255,9,104,142,50,87,227,31,192,123,76,171,188,33,180,164,46,52,82,213,74,197,135,12,238,112,105,17,245,156,96,84,79,24,145,216,193,56,13,113,174,191,134,37,244,235,242,197,16,38,145,50,102,9,238,215,128,181,121,76,171,88,69,120,212,230,27,202,171,246,13,147,63,178,92,136,99,47,219,179,160,205,121,78,228,30,50,144,86,33,11,243,134,104,44,170,89,115,140,188,108,0,60,20,154,222,233,79,203,240,90,23,75,191,111,1,170,202,112,63,131,215,145,247,46,238,212,231,136,242,69,148,26,82,204,186,34,162,111,56,11,112,122,197,220,3,159,187,235,132,70,34,104,163,29,95,250,51,154,143,236,187,219,49,105,75,170,245,12,202,19,84,119,33,47,59,77,242,122,26,11,232,106,160,153,134,187,199,88,217,136,119,222,169,62,199,180,91,69,144,16,245,45,9,97,238,228,245,15,164,90,36,150,100,118,201,59,134,214,64,176,26,192,236,54,145,115,110,23,8,250,32,92,74,133,185,160,222,153,136,196,178,83,108,216,40,163,4,62,64,240,22,237,113,83,78,215,3,127,192,141,246,34,226,165,189,96,25,51,148,3,215,195,47,80,29,247,48,132,96,70,156,164,232,179,122,45,173,217,1,244,121,200,146,24,96,239,130,93,177,74,63,186,92,218,141,119,79,237,54,36,21,8,152,202,249,110,163,71,181,235,247,44,12,124,30,88,158,222,200,165,102,132,56,74,172,19,85,179,157,234,253,200,101,10,61,44,113,143,215,254,8,140,53,185,123,110,226,94,199,71,155,40,166,221,25,155,195,122,10,248,233,191,140,102,172,26,216,70,85,58,37,55,77,233,85,26,223,192,175,185,45,129,115,155,10,241,109,73,185,38,82,244,196,117,15,211,106,140,58,18,164,224,155,207,115,110,89,229,255,71,209,49,10,164,135,176,151,27,38,220,190,195,63,104,139,112,90,37,166,21,1,78,241,156,228,140,84,21,154,127,40,66,247,7,53,215,207,110,189,168,230,72,182,136,48,12,248,28,152,39,199,85,105,125,233,167,209,159,69,29,194,250,228,178,62,38,10,162,125,129,101,212,88,108,236,222,151,73,85,21,143,242,46,52,123,8,160,195,189,198,82,146,20,174,53,15,115,183,73,236,44,109,143,254,214,80,0,26,107,123,134,216,235,189,173,37,69,53,199,159,248,6,188,82,106,120,162,21,222,35,249,136,64,201,54,224,144,38,15,220,179,63,29,79,87,231,163,255,128,100,144,119,202,65,142,112,51,81,187,7,36,206,154,26,220,232,163,253,105,51,4,217,40,98,19,235,171,207,184,78,114,146,247,133,92,93,103,218,61,33,125,139,239,175,177,6,194,159,72,250,22,167,84,135,214,27,58,73,182,108,229,114,202,242,14,148,32,56,102,90,158,68,226,140,4,218,184,167,46,21,192,116,249,135,104,33,30,115,191,211,1,63,95,67,249,150,204,226,175,197,213,229,255,135,155,19,179,37,87,75,5,120,104,163,58,23,64,118,132,98,244,50,32,163,154,82,219,204,191,224,15,110,60,168,8,149,85,193,249,38,178,228,222,23,64,122,129,37,191,230,255,200,97,158,81,20,142,50,72,122,12,162,213,1,94,47,58,189,24,230,214,192,107,173,71,112,146,135,247,134,79,156,115,164,199,178,20,247,40,91,220,14,109,63,236,139,184,22,247,97,169,43,80,208,7,56,228,152,118,66,195,123,77,45,90,13,248,49,103,172,142,151,27,191,201,216,238,168,48,29,66,255,141,214,151,182,238,37,125,2,195,82,109,208,170,139,254,206,117,46,15,232,184,102,148,22,84,51,64,228,118,39,164,146,255,80,13,59,107,211,193,131,178,25,71,208,34,247,1,117,134,178,101,89,58,64,26,197,229,156,174,88,18,32,219,53,255,74,167,195,130,153,118,110,7,191,225,69,158,197,120,55,130,188,45,212,163,240,86,28,4,105,227,53,79,253,134,93,33,24,120,203,174,211,185,6,237,149,98,146,142,25,33,220,188,108,66,238,167,0,62,81,112,254,192,220,129,161,176,2,231,107,246,55,19,86,36,155,66,126,204,203,178,130,43,61,150,88,66,112,98,234,210,165,29,242,1,90,131,49,96,9,240,190,74,211,161,27,123,36,148,204,228,109,141,181,194,113,74,165,22,235,246,145,14,211,86,35,59,147,214,133,164,120,82,45,225,29,5,51,240,107,206,70,180,47,113,109,173,141,51,195,179,94,29,246,146,77,235,0,212,96,172,204,159,226,243,84,75,45,49,6,182,25,140,221,127,204,161,32,185,216,154,111,72,27,131,241,4,112,94,235,55,174,78,90,53,0,100,114,204,238,248,215,27,42,186,152,132,200,167,41,106,57,247,135,116,225,29,145,77,95,181,15,215,139,185,82,193,154,110,57,3,234,175,17,247,127,47,219,77,239,142,59,179,198,223,24,35,156,115,13,91,78,255,106,173,91,179,49,192,79,119,99,165,217,9,254,159,138,29,236,35,2,54,169,238,202,94,43,176,250,96,125,77,154,140,22,210,175,17,177,8,243,156,85,42,196,75,238,113,49,110,136,216,238,35,55,72,182,18,132,153,10,246,196,109,91,163,220,117,251,18,192,231,174,3,93,218,98,159,130,51,181,47,127,73,131,169,177,96,44,25,243,91,150,236,204,220,2,118,53,66,208,160,29,141,120,49,15,225,111,88,248,36,150,69,181,195,194,75,60,222,189,28,127,160,94,98,153,128,36,232,241,4,154,84,183,7,34,209,104,234,247,140,24,163,51,65,121,194,97,114,198,252,0,72,93,57,185,33,145,217,169,233,24,135,236,48,240,10,32,151,115,65,193,128,29,181,167,83,111,215,237,70,88,215,185,30,198,140,98,56,170,145,35,122,247,2,115,59,7,148,19,142,212,205,91,166,177,44,79,240,108,238,142,193,95,39,51,220,234,113,29,155,171,67,99,248,6,187,47,207,163,123,86,6,102,220,132,244,77,176,233,27,62,146,23,64,212,249,160,87,224,199,117,109,159,35,191,138,57,3,247,27,171,111,84,53,223,196,132,159,47,184,2,124,232,77,190,69,242,139,85,160,0,149,223,231,124,195,51,98,39,24,178,42,139,235,199,88,249,110,56,70,4,119,30,145,166,218,63,154,47,80,119,19,78,170,224,180,98,8,202,242,132,217,148,54,131,182,9,118,76,101,164,242,224,41,84,221,198,21,85,70,212,204,22,243,156,174,178,1,116,62,32,235,105,140,3,49,218,236,179,148,106,37,82,201,124,25,66,170,247,139,28,186,194,150,43,80,237,106,218,75,119,133,167,52,11,246,196,48,228,30,254,134,113,108,5,152,208,37,180,164,83,76,99,219,143,180,30,91,6,225,197,249,175,69,127,35,146,59,158,37,62,64,236,107,246,213,15,181,170,192,18,114,90,133,120,223,178,157,138,49,41,22,161,107,205,15,232,93,65,253,113,151,228,109,74,186,10,196,240,28,35,56,161,89,221,131,153,109,23,201,84,208,65,117,143,52,13,183,45,234,250,173,130,146,57,110,180,67,248,16,224,118,165,90,33,193,2,218,89,233,49,106,31,219,129,124,193,241,8,79,176,155,40,162,242,145,131,40,166,121,100,235,66,211,17,193,183,91,2,58,136,160,88,181,2,214,65,158,24,226,117,100,196,250,37,57,249,169,85,13,150,74,222,61,22,228,137,191,100,197,39,126,6,156,117,38,81,103,50,221,233,161,31,66,199,187,141,244,103,122,75,156,253,224,206,48,137,189,26,46,222,172,81,2,78,91,106,248,50,145,170,206,184,29,38,138,211,116,238,14,143,54,211,179,109,86,167,151,13,227,117,71,17,198,243,35,253,236,158,65,163,127,202,219,134,39,15,179,105,19,53,86,87,203,55,142,222,112,69,188,230,160,106,22,38,245,1,147,25,237,162,109,127,40,78,181,129,242,148,62,196,220,10,89,245,8,86,76,171,235,58,177,208,38,157,128,122,200,96,20,51,128,190,174,245,232,43,213,195,121,0,149,70,96,82,21,80,157,110,133,223,247,8,118,200,160,58,190,72,19,237,39,170,236,241,117,4,207,56,145,75,85,19,35,96,211,189,139,40,80,140,210,57,175,146,187,24,96,118,77,251,202,12,228,146,103,25,233,142,90,63,165,207,112,13,216,253,40,186,69,182,102,54,162,122,234,66,94,209,14,157,41,252,196,26,132,182,204,17,76,104,51,5,145,213,89,39,117,237,139,171,248,54,69,110,7,24,80,184,112,175,238,195,249,37,209,138,155,226,49,2,246,68,207,210,150,102,90,139,40,178,26,164,115,255,192,155,99,236,56,165,181,116,76,137,91,7,24,39,220,3,222,50,148,71,24,125,234,202,160,105,176,92,34,143,244,109,159,20,225,193,190,45,113,223,141,241,4,68,173,95,49,184,192,230,46,156,217,128,124,96,53,0,26,166,255,66,87,96,137,159,215,249,27,204,184,170,3,232,88,37,57,67,117,196,165,156,25,13,143,240,220,84,63,237,122,37,69,180,107,219,46,197,165,250,106,59,9,228,178,152,76,30,123,131,86,219,102,150,69,57,36,89,253,130,189,196,161,17,114,13,226,243,169,6,54,176,220,34,122,135,238,66,90,108,201,144,18,108,213,127,175,235,181,194,51,158,1,80,252,72,129,26,47,33,89,126,102,152,5,186,172,48,204,217,226,76,19,128,249,95,10,170,52,154,208,230,38,242,72,195,16,99,176,137,112,159,142,205,244,115,222,81,3,23,102,167,239,58,78,41,182,39,90,75,214,134,144,17,59,169,14,243,187,195,122,99,230,56,173,137,180,118,227,110,250,34,87,71,219,148,12,201,17,23,254,235,175,127,67,184,42,205,82,135,208,60,15,158,109,25,239,84,188,169,245,78,35,153,54,14,214,98,197,117,143,139,159,251,12,236,29,181,220,169,89,100,120,41,204,76,50,140,216,181,71,227,58,164,116,99,198,94,251,10,20,41,158,105,180,161,219,155,199,238,250,25,3,120,70,44,59,88,129,10,115,72,233,56,89,211,41,24,173,182,128,146,199,96,249,192,100,26,64,49,38,138,184,172,155,8,233,113,211,89,250,135,145,163,242,77,191,25,51,14,90,101,239,223,195,37,120,74,91,1,237,146,187,45,99,30,245,169,61,139,121,197,209,236,146,117,190,38,107,167,248,49,7,211,24,77,206,143,85,69,88,56,177,1,154,251,101,221,24,124,134,34,170,226,201,158,13,248,174,210,48,102,19,204,229,112,136,89,37,78,181,244,11,117,34,85,54,184,196,229,161,139,209,65,28,151,106,36,128,177,80,237,167,240,209,79,52,5,155,201,113,104,24,17,201,147,167,229,71,242,45,7,218,185,84,48,104,125,135,238,99,92,155,7,62,211,21,37,189,142,167,119,201,241,71,110,50,169,144,179,193,245,16,64,3,127,38,237,135,91,218,103,213,88,237,27,68,54,255,130,45,176,124,193,167,12,153,112,16,212,233,8,86,32,109,52,251,181,194,170,136,65,149,187,172,11,251,122,155,76,58,212,136,47,16,229,91,106,200,225,130,24,112,8,189,51,161,45,75,250,98,158,199,220,83,27,72,164,211,130,255,119,10,99,59,206,36,187,150,239,91,221,14,23,197,151,165,251,42,64,232,86,127,57,134,98,180,108,172,184,9,207,252,213,87,235,120,41,129,156,30,75,57,244,172,218,201,138,62,115,27,75,224,12,147,37,109,92,180,34,183,175,57,113,227,105,145,203,242,95,15,223,66,26,132,184,84,173,54,238,64,121,100,215,34,253,199,27,135,11,145,148,85,16,0,171,252,105,214,43,143,58,126,72,204,235,188,150,22,92,5,100,236,189,39,241,164,49,75,119,138,219,206,179,161,99,81,47,136,249,71,212,50,236,147,8,31,203,122,211,15,20,106,192,81,189,159,171,67,127,224,59,135,252,45,159,27,143,99,160,233,182,76,249,223,1,93,48,34,196,117,111,185,76,42,214,194,122,238,55,175,130,90,152,4,23,249,70,228,98,122,141,255,156,41,186,91,168,5,212,22,54,192,153,135,53,23,191,41,67,119,192,94,235,245,164,13,102,208,85,178,71,26,148,205,115,101,58,2,242,33,143,210,226,175,94,222,157,71,178,142,249,232,168,22,102,125,0,201,48,40,44,188,204,75,213,236,26,91,155,103,251,130,7,112,164,63,206,59,101,178,76,2,116,233,210,38,160,242,94,30,159,143,81,121,146,96,35,180,17,15,246,228,74,58,161,218,204,130,252,213,127,104,72,234,60,177,132,172,145,27,39,5,198,91,221,206,49,228,19,64,123,172,102,186,39,144,5,244,89,136,205,217,6,107,185,167,62,27,243,35,82,121,239,128,152,71,48,119,74,217,166,184,8,240,206,26,140,35,230,145,109,82,48,153,11,243,143,100,188,31,227,89,44,69,203,117,223,172,225,114,162,72,84,53,203,21,220,105,240,190,128,152,14,44,117,198,182,235,74,46,163,94,157,101,210,129,23,240,1,60,80,160,247,74,196,157,221,132,120,99,36,19,179,230,61,0,105,195,245,151,187,0,62,40,21,120,72,132,233,163,208,88,123,171,185,247,68,102,42,93,221,5,52,205,26,141,227,155,119,166,105,66,237,220,191,0,31,255,33,63,198,149,137,92,150,68,143,248,48,100,203,191,38,94,23,12,210,168,228,122,7,35,50,202,185,146,85,137,123,255,98,68,234,164,22,219,162,61,11,109,23,141,223,180,114,85,159,241,238,203,44,78,204,248,40,228,219,4,56,68,170,188,158,108,88,29,134,115,164,119,64,102,25,40,210,91,157,197,143,244,61,191,230,3,176,106,216,204,156,39,116,52,72,27,165,233,132,92,248,12,5,252,92,48,194,173,208,224,156,179,77,115,32,97,30,134,68,145,94,192,16,131,183,15,166,118,255,97,61,233,212,38,151,65,86,252,229,131,46,217,17,123,8,182,192,169,102,59,44,232,3,253,182,101,91,162,78,60,117,137,212,30,206,148,213,229,74,108,166,54,8,114,137,159,185,253,195,82,29,34,186,99,63,3,228,156,137,163,19,241,44,205,118,209,78,80,82,2,250,206,18,118,76,34,209,235,96,134,56,148,167,189,133,61,183,146,45,252,209,15,89,71,19,239,122,171,207,102,72,26,227,47,190,114,223,94,195,248,140,97,51,10,171,158,150,226,80,13,131,78,182,102,210,52,42,126,206,255,23,173,26,202,121,175,7,183,37,62,242,228,68,213,131,80,145,96,187,213,0,136,231,27,82,147,100,50,174,247,34,193,113,79,153,58,85,134,33,227,109,29,13,161,243,215,191,205,118,64,178,66,205,49,30,155,236,134,104,125,43,88,15,255,165,213,131,244,65,49,21,225,127,200,172,80,220,34,185,13,152,108,177,72,84,123,14,29,159,162,236,132,102,34,240,198,217,48,202,118,90,40,184,1,99,247,213,143,21,228,169,79,146,49,223,125,103,138,198,20,68,89,33,167,184,237,151,14,245,56,18,110,194,221,236,2,112,82,247,49,43,170,189,78,149,141,26,159,199,6,240,232,119,78,55,93,185,44,223,98,141,173,56,79,158,31,128,162,46,95,5,250,196,220,125,186,101,237,219,7,16,254,73,58,167,146,198,228,122,135,108,34,176,82,233,143,180,13,241,23,215,61,154,81,70,37,166,103,127,202,237,31,109,195,145,169,240,220,191,14,90,60,47,72,122,135,254,8,183,209,165,153,68,52,80,105,17,119,134,224,36,205,194,51,211,227,69,114,140,40,28,170,151,11,101,246,80,179,137,155,205,117,62,97,225,45,181,7,243,169,30,71,87,214,165,177,100,236,77,83,1,29,60,154,116,142,216,38,195,249,77,196,217,42,171,129,54,0,96,92,177,234,148,243,18,113,24,225,137,111,51,9,86,183,46,112,193,166,146,212,248,65,202,58,75,184,142,37,112,254,147,92,11,24,98,208,162,239,152,135,211,225,119,54,39,185,10,97,93,71,254,161,17,206,100,67,224,114,202,90,17,59,223,1,251,130,155,188,168,42,225,106,252,14,154,203,49,210,133,28,78,164,33,123,83,186,195,3,241,228,63,169,223,40,153,25,77,191,103,127,136,87,195,125,79,239,209,81,36,240,154,62,103,175,181,141,4,18,110,7,208,133,172,84,228,118,46,152,194,181,17,60,71,247,207,112,78,168,210,237,255,0,31,39,101,51,186,89,135,158,77,198,93,47,220,50,20,166,119,153,98,238,11,181,142,254,118,196,128,180,0,245,214,151,17,70,94,110,35,62,163,239,49,209,29,43,151,110,13,178,126,164,70,89,238,251,129,195,222,58,141,152,102,236,124,6,94,45,28,75,172,191,247,207,35,110,116,62,168,235,222,183,74,89,201,145,6,255,24,142,58,21,134,97,119,156,181,12,214,172,228,196,79,253,44,92,151,200,23,173,117,14,242,68,211,186,140,224,56,87,46,110,124,209,132,232,36,65,254,195,21,87,105,189,159,51,161,15,165,79,156,243,202,223,186,33,25,121,109,238,9,90,60,130,59,151,104,75,45,126,3,242,233,181,131,83,218,167,207,20,252,1,163,229,54,85,217,96,178,139,148,113,24,36,65,198,214,107,248,205,62,169,227,7,180,26,71,127,41,130,147,83,162,181,111,47,143,125,221,25,87,229,13,240,158,200,59,69,119,12,151,76,184,22,225,240,164,61,201,35,136,92,99,213,130,221,10,112,164,58,104,158,64,85,251,40,193,224,185,21,241,202,153,171,237,212,4,73,56,44,111,119,27,186,139,88,6,44,253,200,155,224,115,73,52,21,105,175,86,216,137,189,34,249,222,12,226,91,103,173,53,134,69,112,20,198,190,149,159,29,134,228,161,91,119,55,71,253,6,185,217,205,35,99,189,84,71,137,231,117,205,209,159,110,13,160,50,40,18,242,255,136,205,149,237,186,19,115,110,216,69,15,59,167,92,35,82,75,108,181,230,155,243,123,10,201,163,213,142,43,56,18,15,16,102,85,46,191,53,143,248,152,208,174,203,234,65,122,178,169,139,49,145,207,99,93,25,13,210,40,253,235,114,70,52,136,40,107,221,179,68,242,170,150,85,192,113,233,18,8,73,126,233,210,128,96,162,52,86,243,40,155,21,14,177,194,62,215,233,135,184,194,112,70,246,40,171,90,15,144,110,16,82,115,194,33,108,67,245,228,18,155,214,166,56,13,184,133,214,87,10,52,196,21,145,174,121,135,180,36,108,228,244,70,115,168,29,88,209,4,152,239,110,75,177,45,199,248,62,137,3,55,67,249,141,208,20,98,186,83,150,165,192,233,114,44,39,159,97,227,167,9,214,54,187,72,86,17,140,254,198,116,130,169,43,119,200,233,57,211,71,183,107,7,240,146,27,84,68,26,59,239,103,169,113,216,0,158,135,180,45,205,248,93,137,121,88,174,252,76,223,44,19,7,178,63,110,147,224,205,20,94,239,34,115,0,150,189,77,212,165,247,139,105,63,196,62,148,98,199,227,169,242,112,70,218,83,3,176,26,45,137,117,73,48,227,111,176,173,82,23,14,215,255,128,154,199,39,76,142,188,52,90,35,151,169,207,252,101,119,215,8,29,233,208,164,188,206,82,152,232,140,50,15,122,102,66,29,253,37,94,4,68,16,190,162,208,108,205,253,144,236,59,45,118,143,94,38,102,202,57,230,253,151,120,8,17,222,72,164,139,190,39,112,53,168,213,134,20,158,205,227,253,4,99,181,85,72,239,79,254,90,96,4,208,56,170,41,147,129,127,204,22,186,56,145,87,0,42,210,248,129,226,30,175,123,109,78,177,205,24,54,75,148,84,143,114,245,8,170,202,190,109,47,237,222,133,20,181,83,175,153,193,49,33,247,232,2,70,107,208,127,11,93,67,54,123,21,145,160,142,34,109,243,200,224,216,189,151,75,167,188,101,251,29,199,130,52,113,9,216,92,227,41,149,124,65,211,168,189,8,246,199,135,86,63,43,18,106,233,20,182,106,47,250,195,81,75,139,50,216,231,160,145,124,9,12,104,165,243,21,238,33,123,140,197,74,149,212,81,180,48,48,202,158,67,38,127,95,173,107,235,134,248,23,181,9,209,180,129,245,201,153,1,218,94,73,231,104,58,170,33,16,115,0,139,56,214,225,178,126,202,149,254,175,22,84,108,39,70,229,102,213,242,12,178,153,27,64,166,192,48,115,36,85,129,187,14,25,250,33,86,102,165,225,158,71,49,115,193,218,131,118,15,228,164,51,97,223,37,79,18,93,202,150,185,134,250,26,211,239,106,143,49,13,181,72,122,85,150,203,252,45,164,42,134,156,54,74,91,201,124,235,0,169,108,221,186,241,29,119,64,198,106,62,128,28,186,36,161,210,13,89,145,239,242,11,112,232,192,58,168,212,154,29,64,251,104,131,179,91,40,45,204,62,108,172,248,140,189,68,17,217,127,13,239,92,144,230,71,184,29,110,35,155,116,173,222,56,14,89,137,244,194,170,71,82,61,194,151,219,106,176,26,228,114,130,246,5,44,167,27,211,5,238,47,60,95,75,127,106,185,156,140,240,192,2,238,97,242,194,89,188,136,169,217,158,27,33,63,116,78,201,48,68,213,235,150,184,9,85,131,30,169,112,32,252,102,93,67,209,204,155,97,25,178,129,164,113,46,227,243,6,63,189,93,225,71,242,58,160,20,128,197,96,123,12,32,145,223,90,42,97,235,179,167,154,5,25,219,71,125,195,52,246,131,45,156,58,220,69,122,28,15,250,180,103,139,86,229,195,171,153,102,176,233,199,161,241,116,67,49,14,93,135,47,23,215,12,163,23,153,75,181,238,142,36,80,62,109,115,255,199,211,161,66,80,13,244,32,146,225,129,116,99,188,28,54,215,197,49,129,112,0,200,178,71,26,86,44,164,228,214,99,245,158,164,182,200,77,87,227,213,251,12,156,44,135,18,121,55,96,246,126,234,130,220,190,28,35,163,100,197,156,81,69,50,6,248,22,226,90,160,182,139,156,50,4,210,204,126,97,47,66,184,80,210,37,67,246,173,21,151,235,3,52,193,111,112,137,120,173,15,50,108,148,87,191,78,223,202,27,37,240,232,138,147,128,96,62,10,164,235,220,30,65,187,81,34,197,253,113,192,212,231,160,27,180,104,3,254,150,64,125,133,90,38,59,215,57,137,231,100,170,78,95,19,47,178,147,254,4,126,199,249,205,53,2,130,182,100,28,45,227,88,74,152,162,117,218,110,115,210,206,224,53,159,8,177,163,46,89,21,132,250,64,84,1,63,231,215,129,150,99,71,121,33,249,204,165,24,184,116,130,238,55,192,92,162,46,150,209,108,79,21,188,7,252,13,225,102,166,51,197,210,112,85,18,143,147,255,71,189,33,224,212,74,45,244,200,96,112,130,188,0,150,169,17,60,92,149,74,180,171,126,253,5,202,224,60,209,136,86,18,42,106,32,188,67,222,95,151,11,30,231,246,123,136,49,206,170,105,241,140,155,6,28,168,54,228,35,112,106,70,207,176,94,215,49,244,31,175,189,137,103,7,213,38,125,192,226,158,86,77,107,3,196,33,118,84,211,134,253,64,154,177,169,18,58,228,30,187,192,138,248,93,7,146,115,32,65,162,224,209,106,62,108,130,113,68,196,156,184,173,88,43,236,4,28,211,63,251,17,13,143,176,241,98,165,57,76,43,207,216,158,88,115,235,173,191,141,198,240,158,42,98,220,21,9,227,82,59,66,113,123,103,70,252,130,168,10,226,208,34,56,158,183,198,29,92,124,143,156,161,53,110,208,70,197,31,231,37,84,252,0,184,16,199,94,237,219,61,134,102,188,33,146,246,164,2,127,65,193,89,169,222,41,237,9,119,140,63,78,250,26,109,179,155,186,136,175,84,41,14,117,72,241,153,20,201,106,226,60,218,163,218,74,158,137,126,238,56,207,24,83,37,253,4,110,181,189,194,12,118,230,71,148,49,33,26,100,245,128,90,164,216,139,149,210,241,169,183,94,205,79,62,31,96,237,121,9,39,83,189,17,43,57,111,196,131,225,113,208,2,170,71,249,145,59,9,115,137,176,156,231,69,96,18,192,217,85,171,35,251,156,202,89,166,30,183,233,65,123,136,54,103,249,38,4,218,198,130,240,72,56,108,47,144,30,226,189,83,15,115,165,221,191,206,22,63,154,123,0,170,44,243,101,74,84,214,238,135,223,147,174,113,0,234,255,139,198,35,88,56,106,27,64,182,255,193,173,88,21,124,38,186,106,233,2,156,49,64,217,143,136,216,188,108,7,120,155,89,68,49,170,242,196,46,27,236,248,114,74,212,13,81,159,96,168,56,47,202,21,133,187,235,101,43,201,251,113,228,138,24,79,54,91,12,209,150,162,188,15,31,180,75,211,99,123,41,95,239,207,241,54,137,169,155,206,229,173,242,66,133,189,155,54,13,83,219,101,46,27,119,105,115,141,185,79,247,47,225,223,170,155,92,7,55,201,19,128,176,35,127,70,109,172,86,27,224,246,6,222,206,145,62,170,213,18,241,204,3,122,51,141,157,41,183,95,75,101,230,211,44,91,227,29,159,166,191,69,240,60,101,138,119,200,15,181,85,27,175,193,157,98,245,137,119,33,221,3,59,64,232,154,82,224,104,121,167,75,223,8,61,142,178,42,29,250,196,73,18,179,10,149,162,126,205,226,210,92,50,107,39,133,244,201,239,251,47,171,11,112,88,75,214,132,180,18,54,100,145,83,101,7,240,182,128,26,199,148,53,126,37,78,232,223,160,209,133,5,149,63,200,21,190,108,124,66,234,164,37,84,240,152,216,101,71,31,90,9,59,131,180,236,194,119,163,242,39,54,43,30,233,243,154,83,196,186,143,215,126,103,8,175,66};
typedef std::array<double, 2> Point;
unsigned mirror[256];
inline double phi(const unsigned &i)
{
const unsigned ONE = 0x1000000; // 24 bits is considered sufficient
const double scl = 1.0 / ONE;
return scl * (
mirror[(i >> 16) & 255] +
(mirror[(i >> 8) & 255] << 8) +
(mirror[i & 255] << 16)
);
}
void initSamplers()
{
for (unsigned i = 0; i < 256; i++) {
mirror[i] = (i >> 7) + ((i >> 5) & 2) + ((i >> 3) & 4) + ((i >> 1) & 8)
+ ((i << 1) & 16) + ((i << 3) & 32) + ((i << 5) & 64) + ((i << 7) & 128);
}
}
void ldbnBNOT(const unsigned int nbPts,
std::vector<Point> &samples)
{
samples.clear();
auto n = std::floor(std::sqrt((double)nbPts));
Point p;
double inv = 1.0 / n;
unsigned mask = 128 - 1; // t should be a power of 2.
unsigned shift = std::log2(128);
for (unsigned Y = 0; Y < n; Y++) {
for (unsigned X = 0; X < n; X++) {
unsigned index = ((Y & mask) << shift) + (X & mask);
double u = phi( (Y & 0xfffffff0) + (lutLDBN_BNOT[index] & 0xf) );
double v = phi( (X & 0xfffffff0) + (lutLDBN_BNOT[index] >> 4) );
p[0] = inv * (X + u);
p[1] = inv * (Y + v);
samples.push_back(p);
}
}
}
void ldbnSTEP(const unsigned int nbPts,
std::vector<Point> &samples)
{
samples.clear();
auto n = std::floor(std::sqrt((double)nbPts));
Point p;
double inv = 1.0 / n;
unsigned mask = 128 - 1; // t should be a power of 2.
unsigned shift = std::log2(128);
for (unsigned Y = 0; Y < n; Y++) {
for (unsigned X = 0; X < n; X++) {
unsigned index = ((Y & mask) << shift) + (X & mask);
double u = phi( (Y & 0xfffffff0) + (lutLDBN_STEP[index] & 0xf) );
double v = phi( (X & 0xfffffff0) + (lutLDBN_STEP[index] >> 4) );
p[0] = inv * (X + u);
p[1] = inv * (Y + v);
samples.push_back(p);
}
}
}