Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
ADAPTSMOOTH
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Stefano Zibetti
ADAPTSMOOTH
Commits
1dd9d5ca
Commit
1dd9d5ca
authored
3 years ago
by
Stefano Zibetti
Browse files
Options
Downloads
Patches
Plain Diff
Upload New File
parent
fd1e7301
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
adaptsmooth.h
+288
-0
288 additions, 0 deletions
adaptsmooth.h
with
288 additions
and
0 deletions
adaptsmooth.h
0 → 100644
+
288
−
0
View file @
1dd9d5ca
#include
<string.h>
#include
<stdio.h>
#include
<unistd.h>
#include
<ctype.h>
#include
<math.h>
#include
"fitsio.h"
#define PI 3.1415926535
#define MAXRING 27
/* maximum radius for median smoothing */
#define SNMIN 20.
/* minimum S/N in the pixel */
#define SLCUT 0
/* specifies which levels must be excluded from median
computations. 0: no exclusions; 1: exclude first level (1pix scale) from all
others; N<0: exclude up to the (-N)th level below current. */
#define MSKMAX 100
/* mask value for pixel not set because of S/N too low */
#define NULVAL -1e10
/* null value for pixel that do not reach minimum S/N */
#define DELTA_SL_RMS 2
/* use a radius DELTA_SL_RMS pixels larger than
current smoothing level to comput local
rms*/
float
select_FR
(
float
arr
[],
int
l_par
,
int
r_par
,
int
k
);
int
medsmooth_local
(
long
int
x
,
long
int
y
,
float
**
image
,
int
**
mask
,
float
rms
,
float
**
outimage
);
int
medsmooth_mask
(
long
int
x
,
long
int
y
,
float
**
image
,
int
**
mask
,
float
rms
,
float
**
outimage
);
int
medsmooth_bkg
(
long
int
x
,
long
int
y
,
float
**
image
,
int
**
mask
,
float
rms
,
float
**
outimage
);
int
medsmooth_poisson
(
long
int
x
,
long
int
y
,
float
**
image
,
int
**
mask
,
float
rms
,
float
**
outimage
);
int
meansmooth_local
(
long
int
x
,
long
int
y
,
float
**
image
,
int
**
mask
,
float
rms
,
float
**
outimage
);
int
meansmooth_mask
(
long
int
x
,
long
int
y
,
float
**
image
,
int
**
mask
,
float
rms
,
float
**
outimage
);
int
meansmooth_bkg
(
long
int
x
,
long
int
y
,
float
**
image
,
int
**
mask
,
float
rms
,
float
**
outimage
);
int
meansmooth_poisson
(
long
int
x
,
long
int
y
,
float
**
image
,
int
**
mask
,
float
rms
,
float
**
outimage
);
int
(
*
fsmooth
)
(
long
int
x
,
long
int
y
,
float
**
image
,
int
**
mask
,
float
rms
,
float
**
outimage
);
long
naxes1
[
2
];
int
maskflag
=
0
;
int
slconst
=
SLCUT
;
int
slcut_relative
(
int
sl
);
int
slcut_absolute
(
int
sl
);
int
(
*
slcut
)
(
int
sl
);
float
sn
=
SNMIN
;
int
maxsmooth
=
MAXRING
;
float
inv_e_gain
=-
1
.
0
;
/* 1./effective gain for poisson mode */
static
int
kernel_pix
[][
2
]
=
{
\
{
0
,
0
},{
-
1
,
0
},{
0
,
1
},{
0
,
-
1
},{
1
,
1
},{
1
,
-
1
},{
1
,
0
},{
-
1
,
-
1
},{
-
1
,
1
},{
-
1
,
-
2
},
\
{
0
,
-
2
},{
-
2
,
1
},{
1
,
-
2
},{
-
2
,
0
},{
2
,
1
},{
2
,
-
1
},{
0
,
2
},{
2
,
0
},{
-
2
,
-
1
},{
-
1
,
2
},
\
{
1
,
2
},{
3
,
0
},{
0
,
3
},{
-
1
,
3
},{
0
,
-
3
},{
3
,
1
},{
2
,
2
},{
-
1
,
-
3
},{
-
3
,
-
1
},{
-
3
,
1
},
\
{
-
2
,
-
2
},{
-
3
,
0
},{
2
,
-
2
},{
3
,
-
1
},{
1
,
-
3
},{
-
2
,
2
},{
1
,
3
},{
-
4
,
1
},{
4
,
-
2
},{
3
,
-
2
},
\
{
-
4
,
-
2
},{
-
3
,
-
2
},{
4
,
0
},{
-
4
,
0
},{
-
4
,
2
},{
-
3
,
2
},{
4
,
1
},{
3
,
2
},{
4
,
2
},{
-
3
,
3
},
\
{
-
2
,
3
},{
2
,
3
},{
3
,
3
},{
-
2
,
-
4
},{
-
1
,
-
4
},{
0
,
-
4
},{
1
,
-
4
},{
2
,
-
4
},{
4
,
-
1
},{
-
2
,
4
},
\
{
-
1
,
4
},{
0
,
4
},{
-
3
,
-
3
},{
-
2
,
-
3
},{
1
,
4
},{
2
,
4
},{
-
4
,
-
1
},{
2
,
-
3
},{
3
,
-
3
},{
4
,
-
3
},
\
{
3
,
-
4
},{
5
,
0
},{
-
5
,
-
2
},{
-
3
,
-
4
},{
4
,
3
},{
-
5
,
-
1
},{
-
2
,
5
},{
5
,
2
},{
5
,
1
},{
-
3
,
4
},
\
{
5
,
-
1
},{
-
2
,
-
5
},{
-
1
,
-
5
},{
0
,
-
5
},{
1
,
-
5
},{
2
,
-
5
},{
-
1
,
5
},{
0
,
5
},{
5
,
-
2
},{
-
5
,
2
},
\
{
-
5
,
0
},{
-
4
,
-
3
},{
1
,
5
},{
-
4
,
3
},{
2
,
5
},{
-
5
,
1
},{
3
,
4
},{
2
,
-
6
},{
-
4
,
-
5
},{
-
3
,
-
5
},
\
{
3
,
-
5
},{
4
,
-
5
},{
1
,
-
6
},{
6
,
2
},{
-
6
,
0
},{
-
5
,
3
},{
-
4
,
5
},{
-
3
,
5
},{
-
1
,
-
6
},{
0
,
-
6
},
\
{
-
2
,
-
6
},{
0
,
6
},{
-
5
,
-
4
},{
-
4
,
-
4
},{
-
1
,
6
},{
-
2
,
6
},{
4
,
-
4
},{
5
,
3
},{
6
,
-
1
},{
5
,
-
3
},
\
{
-
6
,
2
},{
6
,
1
},{
6
,
0
},{
-
5
,
4
},{
5
,
-
4
},{
2
,
6
},{
-
4
,
4
},{
-
6
,
1
},{
1
,
6
},{
-
5
,
-
3
},
\
{
3
,
5
},{
4
,
5
},{
4
,
4
},{
5
,
4
},{
-
6
,
-
2
},{
6
,
-
2
},{
-
6
,
-
1
},{
-
3
,
-
6
},{
1
,
-
7
},{
7
,
1
},
\
{
-
7
,
1
},{
2
,
-
7
},{
7
,
0
},{
-
4
,
-
6
},{
3
,
-
6
},{
4
,
-
6
},{
-
5
,
-
5
},{
5
,
-
5
},{
-
6
,
-
4
},{
6
,
-
4
},
\
{
-
6
,
-
3
},{
6
,
-
3
},{
2
,
7
},{
1
,
7
},{
0
,
7
},{
-
1
,
7
},{
-
2
,
7
},{
-
7
,
-
2
},{
4
,
6
},{
3
,
6
},
\
{
-
3
,
6
},{
-
4
,
6
},{
7
,
-
2
},{
5
,
5
},{
-
5
,
5
},{
-
7
,
-
1
},{
6
,
4
},{
-
6
,
4
},{
6
,
3
},{
-
6
,
3
},
\
{
-
2
,
-
7
},{
7
,
-
1
},{
-
7
,
0
},{
-
1
,
-
7
},{
7
,
2
},{
-
7
,
2
},{
0
,
-
7
},{
-
3
,
7
},{
-
8
,
-
1
},{
4
,
-
7
},
\
{
7
,
-
4
},{
-
2
,
-
8
},{
-
8
,
2
},{
-
7
,
4
},{
1
,
-
8
},{
-
7
,
3
},{
-
4
,
-
7
},{
-
2
,
8
},{
3
,
-
7
},{
-
1
,
8
},
\
{
8
,
-
1
},{
0
,
8
},{
1
,
8
},{
-
8
,
0
},{
8
,
0
},{
4
,
7
},{
-
6
,
5
},{
7
,
4
},{
8
,
1
},{
8
,
2
},
\
{
-
8
,
1
},{
6
,
-
5
},{
-
6
,
-
5
},{
-
3
,
-
7
},{
2
,
8
},{
8
,
-
2
},{
6
,
6
},{
5
,
6
},{
6
,
-
6
},{
5
,
-
6
},
\
{
3
,
7
},{
7
,
3
},{
-
8
,
-
2
},{
7
,
-
3
},{
2
,
-
8
},{
-
5
,
-
6
},{
-
6
,
-
6
},{
-
5
,
6
},{
-
6
,
6
},{
0
,
-
8
},
\
{
-
1
,
-
8
},{
-
7
,
-
4
},{
-
7
,
-
3
},{
-
4
,
7
},{
6
,
5
},{
-
3
,
-
9
},{
9
,
1
},{
-
8
,
3
},{
-
9
,
3
},{
9
,
0
},
\
{
9
,
-
1
},{
-
9
,
0
},{
8
,
-
5
},{
7
,
-
5
},{
-
9
,
1
},{
9
,
2
},{
-
7
,
-
5
},{
-
8
,
-
5
},{
7
,
-
6
},{
3
,
-
8
},
\
{
-
9
,
-
2
},{
-
7
,
6
},{
4
,
-
8
},{
-
6
,
7
},{
-
5
,
7
},{
7
,
6
},{
-
7
,
-
6
},{
9
,
-
2
},{
5
,
-
8
},{
8
,
5
},
\
{
7
,
5
},{
6
,
-
7
},{
5
,
7
},{
6
,
7
},{
9
,
-
3
},{
8
,
-
3
},{
-
5
,
8
},{
-
4
,
8
},{
5
,
-
7
},{
-
7
,
5
},
\
{
-
8
,
5
},{
-
6
,
-
7
},{
-
9
,
-
1
},{
-
3
,
8
},{
-
5
,
-
7
},{
8
,
4
},{
3
,
8
},{
4
,
8
},{
5
,
8
},{
-
8
,
-
3
},
\
{
-
9
,
-
3
},{
8
,
-
4
},{
-
8
,
4
},{
-
3
,
-
8
},{
-
3
,
9
},{
-
2
,
9
},{
-
1
,
9
},{
0
,
9
},{
1
,
9
},{
2
,
9
},
\
{
3
,
9
},{
9
,
3
},{
8
,
3
},{
-
9
,
2
},{
-
4
,
-
8
},{
-
5
,
-
8
},{
-
8
,
-
4
},{
3
,
-
9
},{
2
,
-
9
},{
1
,
-
9
},
\
{
0
,
-
9
},{
-
1
,
-
9
},{
-
2
,
-
9
},{
-
4
,
-
9
},{
3
,
10
},{
2
,
10
},{
1
,
10
},{
0
,
10
},{
-
1
,
10
},{
-
2
,
10
},
\
{
-
3
,
10
},{
5
,
9
},{
4
,
9
},{
-
4
,
9
},{
-
5
,
9
},{
6
,
8
},{
-
6
,
8
},{
7
,
7
},{
-
7
,
7
},{
8
,
6
},
\
{
-
8
,
6
},{
9
,
5
},{
-
9
,
5
},{
9
,
4
},{
-
9
,
4
},{
10
,
3
},{
-
10
,
3
},{
10
,
2
},{
-
10
,
2
},{
10
,
1
},
\
{
-
10
,
1
},{
10
,
0
},{
-
10
,
0
},{
10
,
-
1
},{
-
10
,
-
1
},{
10
,
-
2
},{
-
10
,
-
2
},{
10
,
-
3
},{
-
10
,
-
3
},{
9
,
-
4
},
\
{
-
9
,
-
4
},{
9
,
-
5
},{
-
9
,
-
5
},{
8
,
-
6
},{
-
8
,
-
6
},{
7
,
-
7
},{
-
7
,
-
7
},{
6
,
-
8
},{
-
6
,
-
8
},{
5
,
-
9
},
\
{
4
,
-
9
},{
-
5
,
-
9
},{
3
,
-
10
},{
2
,
-
10
},{
1
,
-
10
},{
0
,
-
10
},{
-
1
,
-
10
},{
-
2
,
-
10
},{
-
3
,
-
10
},{
5
,
-
10
},
\
{
2
,
11
},{
3
,
11
},{
-
9
,
6
},{
-
7
,
-
9
},{
9
,
6
},{
-
9
,
-
6
},{
11
,
1
},{
-
11
,
1
},{
-
6
,
-
9
},{
6
,
-
9
},
\
{
-
10
,
4
},{
9
,
-
7
},{
8
,
-
7
},{
-
9
,
7
},{
-
8
,
7
},{
10
,
4
},{
7
,
-
9
},{
-
8
,
-
8
},{
-
11
,
-
2
},{
-
8
,
-
7
},
\
{
-
9
,
-
7
},{
-
7
,
-
8
},{
7
,
-
8
},{
8
,
-
8
},{
11
,
-
3
},{
8
,
7
},{
9
,
7
},{
11
,
0
},{
-
8
,
8
},{
-
7
,
8
},
\
{
7
,
8
},{
8
,
8
},{
-
10
,
5
},{
-
11
,
-
3
},{
-
3
,
-
11
},{
-
2
,
-
11
},{
-
11
,
-
1
},{
10
,
-
4
},{
-
1
,
-
11
},{
-
7
,
9
},
\
{
-
6
,
9
},{
6
,
9
},{
7
,
9
},{
-
11
,
3
},{
11
,
2
},{
0
,
-
11
},{
1
,
-
11
},{
-
11
,
2
},{
11
,
3
},{
-
5
,
10
},
\
{
-
4
,
10
},{
2
,
-
11
},{
-
10
,
-
4
},{
3
,
-
11
},{
11
,
-
2
},{
10
,
-
5
},{
4
,
10
},{
5
,
10
},{
10
,
5
},{
-
5
,
-
10
},
\
{
11
,
-
1
},{
-
3
,
11
},{
-
2
,
11
},{
-
1
,
11
},{
0
,
11
},{
-
4
,
-
10
},{
-
10
,
-
5
},{
4
,
-
10
},{
9
,
-
6
},{
-
11
,
0
},
\
{
1
,
11
},{
1
,
-
12
},{
-
12
,
0
},{
10
,
-
6
},{
-
12
,
3
},{
-
9
,
8
},{
5
,
-
11
},{
-
12
,
2
},{
-
5
,
11
},{
4
,
11
},
\
{
5
,
11
},{
-
10
,
6
},{
6
,
10
},{
6
,
-
10
},{
7
,
-
10
},{
-
8
,
-
9
},{
9
,
8
},{
-
11
,
5
},{
10
,
6
},{
-
2
,
-
12
},
\
{
-
3
,
12
},{
-
11
,
4
},{
2
,
-
12
},{
-
10
,
-
6
},{
3
,
-
12
},{
-
5
,
-
11
},{
-
7
,
10
},{
-
4
,
-
11
},{
-
6
,
10
},{
10
,
-
7
},
\
{
-
12
,
-
3
},{
-
3
,
-
12
},{
-
10
,
7
},{
-
2
,
12
},{
-
1
,
12
},{
0
,
12
},{
1
,
12
},{
2
,
12
},{
3
,
12
},{
7
,
10
},
\
{
12
,
3
},{
-
4
,
11
},{
11
,
-
4
},{
8
,
-
9
},{
-
9
,
-
8
},{
-
7
,
-
10
},{
-
11
,
-
4
},{
-
12
,
-
1
},{
-
8
,
9
},{
-
10
,
-
7
},
\
{
-
12
,
-
2
},{
12
,
-
2
},{
-
6
,
-
10
},{
4
,
-
11
},{
11
,
4
},{
9
,
-
8
},{
-
12
,
1
},{
0
,
-
12
},{
12
,
-
1
},{
12
,
-
3
},
\
{
-
11
,
-
5
},{
-
1
,
-
12
},{
8
,
9
},{
11
,
-
5
},{
10
,
7
},{
12
,
2
},{
11
,
5
},{
12
,
0
},{
12
,
1
},{
-
9
,
-
9
},
\
{
-
13
,
3
},{
13
,
3
},{
-
12
,
4
},{
12
,
4
},{
-
12
,
5
},{
-
13
,
-
1
},{
13
,
-
2
},{
-
4
,
-
12
},{
12
,
5
},{
-
12
,
6
},
\
{
-
11
,
6
},{
11
,
6
},{
12
,
6
},{
-
11
,
7
},{
-
5
,
-
12
},{
-
13
,
-
2
},{
13
,
-
3
},{
-
6
,
-
12
},{
11
,
7
},{
-
10
,
8
},
\
{
10
,
8
},{
-
10
,
9
},{
-
13
,
-
3
},{
12
,
-
4
},{
-
9
,
9
},{
9
,
9
},{
10
,
9
},{
-
9
,
10
},{
-
8
,
10
},{
-
12
,
-
4
},
\
{
12
,
-
5
},{
8
,
10
},{
9
,
10
},{
-
7
,
11
},{
-
6
,
11
},{
-
12
,
-
5
},{
12
,
-
6
},{
11
,
-
6
},{
3
,
-
13
},{
6
,
11
},
\
{
7
,
11
},{
-
6
,
12
},{
-
5
,
12
},{
-
4
,
12
},{
2
,
-
13
},{
-
11
,
-
6
},{
-
12
,
-
6
},{
11
,
-
7
},{
1
,
-
13
},{
4
,
12
},
\
{
5
,
12
},{
6
,
12
},{
0
,
-
13
},{
-
11
,
-
7
},{
10
,
-
8
},{
-
1
,
-
13
},{
-
3
,
13
},{
-
2
,
13
},{
-
1
,
13
},{
0
,
13
},
\
{
1
,
13
},{
2
,
13
},{
3
,
13
},{
-
2
,
-
13
},{
-
10
,
-
8
},{
10
,
-
9
},{
9
,
-
9
},{
-
3
,
-
13
},{
13
,
-
1
},{
-
10
,
-
9
},
\
{
9
,
-
10
},{
8
,
-
10
},{
-
8
,
-
10
},{
-
9
,
-
10
},{
7
,
-
11
},{
6
,
-
11
},{
-
6
,
-
11
},{
-
7
,
-
11
},{
6
,
-
12
},{
5
,
-
12
},
\
{
4
,
-
12
},{
13
,
0
},{
-
13
,
1
},{
13
,
1
},{
-
13
,
2
},{
13
,
2
},{
-
13
,
0
},{
-
1
,
14
},{
1
,
14
},{
2
,
14
},
\
{
3
,
14
},{
-
3
,
-
14
},{
-
5
,
-
13
},{
-
13
,
-
6
},{
-
7
,
12
},{
-
8
,
12
},{
13
,
6
},{
-
13
,
6
},{
-
11
,
-
9
},{
10
,
-
10
},
\
{
14
,
3
},{
14
,
1
},{
9
,
11
},{
8
,
11
},{
13
,
-
6
},{
-
13
,
-
5
},{
-
6
,
-
13
},{
3
,
-
14
},{
2
,
-
14
},{
1
,
-
14
},
\
{
0
,
-
14
},{
-
1
,
-
14
},{
-
2
,
-
14
},{
4
,
-
13
},{
-
8
,
11
},{
-
9
,
11
},{
10
,
10
},{
-
14
,
2
},{
14
,
-
1
},{
-
10
,
-
10
},
\
{
9
,
-
11
},{
8
,
-
11
},{
13
,
5
},{
14
,
-
2
},{
5
,
-
13
},{
13
,
-
5
},{
-
13
,
-
4
},{
6
,
-
13
},{
-
10
,
10
},{
11
,
9
},
\
{
-
8
,
-
12
},{
13
,
-
4
},{
-
14
,
-
3
},{
-
7
,
-
12
},{
-
11
,
9
},{
-
14
,
-
1
},{
-
13
,
5
},{
-
8
,
-
11
},{
-
9
,
-
11
},{
8
,
-
12
},
\
{
7
,
-
12
},{
-
14
,
0
},{
14
,
2
},{
11
,
-
8
},{
12
,
-
8
},{
-
14
,
3
},{
-
4
,
13
},{
12
,
8
},{
11
,
8
},{
-
11
,
8
},
\
{
-
12
,
8
},{
12
,
7
},{
14
,
-
3
},{
13
,
4
},{
4
,
13
},{
5
,
13
},{
6
,
13
},{
14
,
0
},{
-
12
,
-
7
},{
-
5
,
13
},
\
{
-
6
,
13
},{
-
14
,
1
},{
-
11
,
-
8
},{
-
12
,
-
8
},{
11
,
-
9
},{
-
13
,
4
},{
-
14
,
-
2
},{
8
,
12
},{
7
,
12
},{
12
,
-
7
},
\
{
-
12
,
7
},{
-
4
,
-
13
},{
-
3
,
14
},{
-
2
,
14
},{
0
,
14
},{
4
,
14
},{
-
3
,
-
15
},{
-
2
,
-
15
},{
-
1
,
-
15
},{
0
,
-
15
},
\
{
1
,
-
15
},{
2
,
-
15
},{
3
,
-
15
},{
-
6
,
-
14
},{
-
5
,
-
14
},{
-
4
,
-
14
},{
4
,
-
14
},{
5
,
-
14
},{
6
,
-
14
},{
-
8
,
-
13
},
\
{
-
7
,
-
13
},{
7
,
-
13
},{
8
,
-
13
},{
-
9
,
-
12
},{
9
,
-
12
},{
-
10
,
-
11
},{
10
,
-
11
},{
-
11
,
-
10
},{
11
,
-
10
},{
-
12
,
-
9
},
\
{
12
,
-
9
},{
-
13
,
-
8
},{
13
,
-
8
},{
-
13
,
-
7
},{
13
,
-
7
},{
-
14
,
-
6
},{
14
,
-
6
},{
-
14
,
-
5
},{
14
,
-
5
},{
-
14
,
-
4
},
\
{
14
,
-
4
},{
-
15
,
-
3
},{
15
,
-
3
},{
-
15
,
-
2
},{
15
,
-
2
},{
-
15
,
-
1
},{
15
,
-
1
},{
-
15
,
0
},{
15
,
0
},{
-
15
,
1
},
\
{
15
,
1
},{
-
15
,
2
},{
15
,
2
},{
-
15
,
3
},{
15
,
3
},{
-
14
,
4
},{
14
,
4
},{
-
14
,
5
},{
14
,
5
},{
-
14
,
6
},
\
{
14
,
6
},{
-
13
,
7
},{
13
,
7
},{
-
13
,
8
},{
13
,
8
},{
-
12
,
9
},{
12
,
9
},{
-
11
,
10
},{
11
,
10
},{
-
10
,
11
},
\
{
10
,
11
},{
-
9
,
12
},{
9
,
12
},{
-
8
,
13
},{
-
7
,
13
},{
7
,
13
},{
8
,
13
},{
-
6
,
14
},{
-
5
,
14
},{
-
4
,
14
},
\
{
5
,
14
},{
6
,
14
},{
-
3
,
15
},{
-
2
,
15
},{
-
1
,
15
},{
0
,
15
},{
1
,
15
},{
2
,
15
},{
3
,
15
},{
-
3
,
-
16
},
\
{
10
,
-
12
},{
11
,
-
12
},{
-
12
,
10
},{
-
14
,
8
},{
15
,
-
4
},{
7
,
-
14
},{
-
4
,
16
},{
13
,
9
},{
12
,
10
},{
13
,
10
},
\
{
16
,
-
2
},{
-
3
,
16
},{
-
16
,
0
},{
9
,
-
13
},{
16
,
-
3
},{
-
15
,
6
},{
-
2
,
16
},{
-
1
,
16
},{
0
,
16
},{
1
,
16
},
\
{
10
,
13
},{
9
,
13
},{
2
,
16
},{
3
,
16
},{
-
9
,
-
13
},{
6
,
-
15
},{
-
6
,
-
15
},{
14
,
7
},{
-
13
,
10
},{
-
16
,
-
2
},
\
{
-
15
,
-
6
},{
-
10
,
-
13
},{
-
9
,
13
},{
-
12
,
-
11
},{
-
11
,
-
11
},{
-
10
,
13
},{
-
4
,
-
16
},{
-
15
,
-
5
},{
-
7
,
-
14
},{
7
,
14
},
\
{
-
14
,
-
8
},{
16
,
-
1
},{
4
,
16
},{
8
,
14
},{
13
,
-
10
},{
10
,
-
13
},{
14
,
8
},{
-
5
,
-
15
},{
-
4
,
-
15
},{
-
16
,
3
},
\
{
-
15
,
5
},{
15
,
-
6
},{
12
,
-
10
},{
4
,
-
15
},{
14
,
-
7
},{
16
,
4
},{
11
,
-
11
},{
12
,
-
11
},{
11
,
11
},{
-
4
,
15
},
\
{
12
,
11
},{
-
16
,
1
},{
11
,
12
},{
-
13
,
-
9
},{
10
,
12
},{
15
,
4
},{
-
8
,
-
14
},{
-
16
,
-
3
},{
-
14
,
-
7
},{
5
,
-
15
},
\
{
4
,
15
},{
-
5
,
15
},{
16
,
0
},{
-
10
,
-
12
},{
-
10
,
12
},{
-
11
,
12
},{
-
11
,
-
12
},{
13
,
-
9
},{
8
,
-
14
},{
-
8
,
14
},
\
{
15
,
-
5
},{
-
16
,
2
},{
-
7
,
14
},{
15
,
6
},{
16
,
1
},{
-
6
,
15
},{
16
,
3
},{
-
13
,
-
10
},{
-
12
,
-
10
},{
-
16
,
-
1
},
\
{
5
,
15
},{
16
,
-
4
},{
6
,
15
},{
15
,
5
},{
-
14
,
7
},{
-
16
,
4
},{
-
15
,
4
},{
-
15
,
-
4
},{
14
,
-
8
},{
4
,
-
16
},
\
{
3
,
-
16
},{
2
,
-
16
},{
1
,
-
16
},{
0
,
-
16
},{
-
1
,
-
16
},{
-
2
,
-
16
},{
16
,
2
},{
-
12
,
11
},{
-
11
,
11
},{
-
16
,
-
4
},
\
{
-
13
,
9
},{
-
16
,
5
},{
14
,
-
10
},{
-
17
,
-
4
},{
3
,
17
},{
4
,
17
},{
-
10
,
-
14
},{
7
,
-
15
},{
8
,
-
15
},{
9
,
-
15
},
\
{
17
,
1
},{
13
,
11
},{
-
17
,
0
},{
-
14
,
9
},{
-
15
,
-
8
},{
-
9
,
-
14
},{
-
15
,
8
},{
9
,
15
},{
-
15
,
-
9
},{
-
14
,
-
9
},
\
{
-
17
,
2
},{
15
,
-
9
},{
4
,
-
17
},{
3
,
-
17
},{
2
,
-
17
},{
1
,
-
17
},{
0
,
-
17
},{
-
1
,
-
17
},{
-
2
,
-
17
},{
-
3
,
-
17
},
\
{
-
4
,
-
17
},{
17
,
-
3
},{
-
10
,
14
},{
16
,
-
5
},{
14
,
-
9
},{
16
,
5
},{
15
,
7
},{
17
,
-
2
},{
-
16
,
6
},{
16
,
7
},
\
{
11
,
13
},{
-
17
,
-
2
},{
-
16
,
-
5
},{
-
11
,
13
},{
-
7
,
16
},{
17
,
4
},{
16
,
-
6
},{
-
6
,
16
},{
-
17
,
4
},{
-
17
,
-
3
},
\
{
10
,
14
},{
9
,
14
},{
-
5
,
16
},{
17
,
3
},{
17
,
0
},{
10
,
-
14
},{
-
15
,
7
},{
16
,
6
},{
7
,
-
16
},{
6
,
-
16
},
\
{
5
,
-
16
},{
12
,
-
12
},{
-
7
,
15
},{
-
8
,
15
},{
11
,
-
13
},{
14
,
10
},{
-
7
,
-
15
},{
-
8
,
-
15
},{
-
9
,
-
15
},{
-
9
,
15
},
\
{
14
,
9
},{
17
,
-
4
},{
15
,
9
},{
12
,
12
},{
-
14
,
10
},{
-
13
,
-
11
},{
-
16
,
-
6
},{
-
5
,
-
16
},{
-
6
,
-
16
},{
-
7
,
-
16
},
\
{
-
11
,
-
13
},{
5
,
16
},{
6
,
16
},{
7
,
16
},{
-
16
,
7
},{
-
17
,
3
},{
-
17
,
-
1
},{
16
,
-
7
},{
15
,
-
7
},{
13
,
-
11
},
\
{
-
17
,
1
},{
15
,
8
},{
17
,
-
1
},{
-
13
,
11
},{
-
15
,
-
7
},{
-
16
,
-
7
},{
-
9
,
14
},{
17
,
2
},{
-
12
,
12
},{
-
15
,
9
},
\
{
-
12
,
-
12
},{
-
14
,
-
10
},{
15
,
-
8
},{
7
,
15
},{
8
,
15
},{
-
4
,
17
},{
-
3
,
17
},{
-
2
,
17
},{
-
1
,
17
},{
0
,
17
},
\
{
1
,
17
},{
9
,
-
14
},{
2
,
17
},{
-
16
,
9
},{
-
12
,
14
},{
11
,
-
14
},{
-
18
,
4
},{
-
11
,
14
},{
-
18
,
-
3
},{
-
10
,
15
},
\
{
-
18
,
-
1
},{
12
,
-
14
},{
-
17
,
7
},{
8
,
-
16
},{
18
,
-
3
},{
10
,
-
15
},{
-
17
,
6
},{
18
,
-
2
},{
-
18
,
-
2
},{
12
,
14
},
\
{
11
,
14
},{
18
,
3
},{
17
,
6
},{
13
,
-
12
},{
14
,
-
12
},{
-
10
,
-
15
},{
15
,
10
},{
-
14
,
-
11
},{
-
8
,
-
16
},{
-
9
,
-
16
},
\
{
16
,
8
},{
-
18
,
3
},{
14
,
-
11
},{
-
14
,
11
},{
-
14
,
-
12
},{
16
,
9
},{
4
,
18
},{
18
,
2
},{
-
15
,
-
10
},{
3
,
18
},
\
{
2
,
18
},{
1
,
18
},{
0
,
18
},{
-
1
,
18
},{
-
2
,
18
},{
-
3
,
18
},{
-
4
,
18
},{
-
17
,
5
},{
15
,
-
10
},{
14
,
11
},
\
{
-
16
,
-
9
},{
7
,
-
17
},{
6
,
-
17
},{
5
,
-
17
},{
-
5
,
-
17
},{
-
6
,
-
17
},{
-
7
,
-
17
},{
16
,
-
9
},{
-
18
,
2
},{
-
16
,
8
},
\
{
7
,
17
},{
6
,
17
},{
-
16
,
-
8
},{
18
,
1
},{
5
,
17
},{
-
5
,
17
},{
-
6
,
17
},{
-
11
,
-
14
},{
-
7
,
17
},{
16
,
-
8
},
\
{
-
13
,
-
12
},{
-
12
,
-
14
},{
13
,
-
13
},{
-
14
,
12
},{
-
13
,
12
},{
-
17
,
-
7
},{
4
,
-
18
},{
3
,
-
18
},{
2
,
-
18
},{
1
,
-
18
},
\
{
0
,
-
18
},{
-
1
,
-
18
},{
-
2
,
-
18
},{
-
3
,
-
18
},{
-
4
,
-
18
},{
17
,
-
7
},{
-
18
,
1
},{
9
,
16
},{
8
,
16
},{
12
,
-
13
},
\
{
-
15
,
10
},{
-
17
,
-
6
},{
13
,
12
},{
14
,
12
},{
18
,
0
},{
17
,
-
6
},{
-
8
,
16
},{
-
9
,
16
},{
-
13
,
13
},{
-
12
,
13
},
\
{
17
,
7
},{
-
17
,
-
5
},{
12
,
13
},{
13
,
13
},{
17
,
-
5
},{
17
,
5
},{
10
,
15
},{
-
18
,
0
},{
18
,
4
},{
-
18
,
-
4
},
\
{
9
,
-
16
},{
-
13
,
-
13
},{
-
12
,
-
13
},{
18
,
-
1
},{
18
,
-
4
},{
18
,
-
6
},{
-
19
,
4
},{
12
,
-
15
},{
18
,
-
7
},{
-
14
,
13
},
\
{
-
16
,
11
},{
11
,
-
16
},{
-
19
,
0
},{
-
10
,
16
},{
-
11
,
16
},{
-
19
,
1
},{
10
,
-
16
},{
18
,
7
},{
11
,
16
},{
19
,
-
1
},
\
{
11
,
-
15
},{
19
,
-
4
},{
10
,
16
},{
-
18
,
-
5
},{
-
19
,
-
1
},{
-
15
,
12
},{
16
,
-
11
},{
4
,
19
},{
17
,
8
},{
15
,
-
11
},
\
{
-
19
,
-
2
},{
-
11
,
-
16
},{
-
10
,
-
16
},{
-
16
,
10
},{
17
,
9
},{
19
,
-
2
},{
-
13
,
14
},{
14
,
13
},{
5
,
18
},{
-
13
,
-
14
},
\
{
-
18
,
6
},{
-
18
,
-
6
},{
6
,
18
},{
7
,
-
18
},{
-
15
,
-
11
},{
4
,
-
19
},{
3
,
-
19
},{
2
,
-
19
},{
1
,
-
19
},{
0
,
-
19
},
\
{
-
1
,
-
19
},{
-
2
,
-
19
},{
-
3
,
-
19
},{
-
4
,
-
19
},{
2
,
19
},{
-
7
,
-
18
},{
6
,
-
18
},{
19
,
-
3
},{
-
12
,
15
},{
5
,
-
18
},
\
{
-
16
,
-
11
},{
-
3
,
19
},{
-
9
,
-
17
},{
-
8
,
-
17
},{
8
,
-
17
},{
18
,
-
5
},{
17
,
-
9
},{
7
,
18
},{
9
,
-
17
},{
17
,
-
8
},
\
{
-
5
,
18
},{
-
4
,
19
},{
-
18
,
-
7
},{
-
17
,
-
9
},{
-
11
,
15
},{
15
,
12
},{
-
19
,
-
4
},{
9
,
17
},{
8
,
17
},{
19
,
4
},
\
{
-
14
,
-
13
},{
16
,
10
},{
-
19
,
2
},{
-
15
,
-
12
},{
19
,
2
},{
-
17
,
8
},{
-
12
,
-
15
},{
-
17
,
-
8
},{
-
11
,
-
15
},{
-
17
,
9
},
\
{
16
,
11
},{
-
2
,
19
},{
14
,
-
13
},{
15
,
11
},{
19
,
1
},{
18
,
5
},{
13
,
-
14
},{
15
,
-
12
},{
0
,
19
},{
18
,
6
},
\
{
16
,
-
10
},{
19
,
0
},{
-
18
,
5
},{
-
18
,
7
},{
-
5
,
-
18
},{
-
6
,
-
18
},{
-
7
,
18
},{
-
6
,
18
},{
19
,
3
},{
12
,
15
},
\
{
11
,
15
},{
-
19
,
-
3
},{
-
8
,
17
},{
-
9
,
17
},{
13
,
14
},{
3
,
19
},{
-
1
,
19
},{
1
,
19
},{
-
15
,
11
},{
-
16
,
-
10
},
\
{
-
19
,
3
},{
-
17
,
10
},{
-
6
,
19
},{
18
,
-
8
},{
-
16
,
12
},{
-
4
,
-
20
},{
-
17
,
-
10
},{
15
,
-
13
},{
-
3
,
20
},{
7
,
19
},
\
{
-
20
,
-
4
},{
8
,
18
},{
-
19
,
-
7
},{
9
,
18
},{
20
,
2
},{
12
,
16
},{
-
14
,
-
14
},{
17
,
-
11
},{
-
7
,
19
},{
12
,
-
16
},
\
{
9
,
-
18
},{
8
,
-
18
},{
-
20
,
-
3
},{
-
3
,
-
20
},{
-
2
,
-
20
},{
-
1
,
-
20
},{
6
,
19
},{
-
6
,
-
19
},{
-
7
,
-
19
},{
0
,
-
20
},
\
{
1
,
-
20
},{
-
17
,
11
},{
-
20
,
3
},{
-
4
,
20
},{
19
,
-
7
},{
-
20
,
0
},{
20
,
-
1
},{
-
12
,
-
16
},{
-
20
,
1
},{
20
,
-
4
},
\
{
-
19
,
-
6
},{
2
,
-
20
},{
18
,
8
},{
-
8
,
-
18
},{
-
9
,
-
18
},{
-
17
,
-
11
},{
14
,
-
14
},{
3
,
-
20
},{
4
,
-
20
},{
16
,
12
},
\
{
17
,
10
},{
-
13
,
-
15
},{
16
,
-
12
},{
20
,
0
},{
19
,
6
},{
-
18
,
9
},{
14
,
14
},{
20
,
3
},{
-
20
,
-
1
},{
19
,
-
6
},
\
{
20
,
4
},{
-
15
,
13
},{
13
,
-
15
},{
0
,
20
},{
-
1
,
20
},{
-
12
,
16
},{
19
,
7
},{
-
2
,
20
},{
-
19
,
-
5
},{
1
,
20
},
\
{
2
,
20
},{
-
19
,
7
},{
-
16
,
-
12
},{
-
20
,
-
2
},{
3
,
20
},{
-
13
,
15
},{
4
,
20
},{
-
14
,
14
},{
15
,
13
},{
20
,
-
2
},
\
{
-
19
,
6
},{
7
,
-
19
},{
6
,
-
19
},{
5
,
-
19
},{
-
5
,
-
19
},{
5
,
19
},{
20
,
-
3
},{
-
10
,
-
17
},{
-
11
,
-
17
},{
18
,
-
9
},
\
{
10
,
-
17
},{
11
,
-
17
},{
19
,
-
5
},{
11
,
17
},{
10
,
17
},{
-
20
,
4
},{
-
18
,
-
9
},{
-
20
,
2
},{
20
,
1
},{
-
18
,
-
8
},
\
{
-
15
,
-
13
},{
17
,
11
},{
-
18
,
8
},{
18
,
9
},{
19
,
5
},{
17
,
-
10
},{
-
5
,
19
},{
-
19
,
5
},{
-
9
,
18
},{
-
8
,
18
},
\
{
13
,
15
},{
-
10
,
17
},{
-
11
,
17
},{
15
,
-
14
},{
-
19
,
9
},{
21
,
4
},{
19
,
8
},{
-
20
,
5
},{
-
19
,
8
},{
-
10
,
19
},
\
{
13
,
-
16
},{
20
,
7
},{
20
,
5
},{
-
20
,
6
},{
-
20
,
7
},{
20
,
6
},{
-
9
,
19
},{
17
,
-
12
},{
-
14
,
-
15
},{
-
15
,
-
15
},
\
{
16
,
-
14
},{
-
18
,
-
11
},{
-
8
,
19
},{
-
13
,
-
16
},{
-
14
,
-
16
},{
18
,
-
11
},{
11
,
18
},{
10
,
18
},{
-
19
,
-
10
},{
-
18
,
-
10
},
\
{
-
10
,
18
},{
-
11
,
18
},{
13
,
-
17
},{
12
,
-
17
},{
18
,
-
10
},{
19
,
-
10
},{
-
19
,
-
9
},{
19
,
-
9
},{
13
,
17
},{
12
,
17
},
\
{
-
19
,
-
8
},{
-
12
,
-
17
},{
-
13
,
-
17
},{
-
12
,
17
},{
19
,
-
8
},{
-
13
,
17
},{
14
,
16
},{
-
20
,
-
7
},{
13
,
16
},{
11
,
-
18
},
\
{
10
,
-
18
},{
20
,
-
7
},{
-
15
,
-
14
},{
-
16
,
-
14
},{
-
20
,
-
6
},{
-
10
,
-
18
},{
-
11
,
-
18
},{
20
,
-
6
},{
-
13
,
16
},{
-
14
,
16
},
\
{
-
20
,
-
5
},{
-
17
,
-
13
},{
-
16
,
-
13
},{
10
,
-
19
},{
9
,
-
19
},{
8
,
-
19
},{
20
,
-
5
},{
15
,
15
},{
14
,
15
},{
-
21
,
-
4
},
\
{
-
8
,
-
19
},{
-
9
,
-
19
},{
-
10
,
-
19
},{
21
,
-
4
},{
-
5
,
20
},{
-
6
,
20
},{
-
21
,
-
3
},{
8
,
19
},{
-
14
,
15
},{
7
,
-
20
},
\
{
6
,
-
20
},{
5
,
-
20
},{
-
5
,
-
20
},{
-
6
,
-
20
},{
9
,
19
},{
21
,
-
3
},{
15
,
-
15
},{
-
15
,
15
},{
14
,
-
15
},{
-
21
,
-
2
},
\
{
10
,
19
},{
-
7
,
-
20
},{
16
,
14
},{
15
,
14
},{
-
7
,
20
},{
5
,
20
},{
6
,
20
},{
7
,
20
},{
21
,
-
2
},{
-
21
,
-
1
},
\
{
-
15
,
14
},{
-
16
,
14
},{
4
,
-
21
},{
3
,
-
21
},{
2
,
-
21
},{
1
,
-
21
},{
0
,
-
21
},{
-
1
,
-
21
},{
-
2
,
-
21
},{
-
3
,
-
21
},
\
{
-
4
,
-
21
},{
21
,
-
1
},{
17
,
13
},{
16
,
13
},{
14
,
-
16
},{
-
21
,
0
},{
-
16
,
13
},{
-
17
,
13
},{
21
,
0
},{
17
,
12
},
\
{
-
21
,
1
},{
16
,
-
13
},{
-
17
,
12
},{
21
,
1
},{
17
,
-
13
},{
18
,
11
},{
-
21
,
2
},{
-
4
,
21
},{
-
3
,
21
},{
-
2
,
21
},
\
{
-
1
,
21
},{
0
,
21
},{
1
,
21
},{
2
,
21
},{
21
,
2
},{
-
18
,
11
},{
-
21
,
3
},{
19
,
10
},{
18
,
10
},{
3
,
21
},
\
{
4
,
21
},{
21
,
3
},{
-
17
,
-
12
},{
-
21
,
4
},{
-
18
,
10
},{
-
19
,
10
},{
19
,
9
},{
21
,
-
6
},{
-
21
,
7
},{
21
,
8
},
\
{
22
,
3
},{
5
,
21
},{
6
,
21
},{
7
,
21
},{
-
5
,
-
21
},{
-
6
,
-
21
},{
-
7
,
-
21
},{
-
8
,
-
21
},{
8
,
21
},{
22
,
-
1
},
\
{
15
,
-
16
},{
-
17
,
14
},{
18
,
13
},{
-
22
,
0
},{
-
12
,
-
19
},{
-
11
,
-
19
},{
-
22
,
-
4
},{
-
12
,
19
},{
-
11
,
19
},{
21
,
-
5
},
\
{
11
,
-
19
},{
12
,
-
19
},{
16
,
15
},{
9
,
20
},{
10
,
20
},{
-
15
,
16
},{
-
21
,
-
5
},{
-
18
,
-
13
},{
-
22
,
4
},{
22
,
4
},
\
{
-
18
,
13
},{
19
,
12
},{
18
,
12
},{
5
,
-
21
},{
-
21
,
6
},{
22
,
0
},{
-
17
,
-
14
},{
-
13
,
-
18
},{
-
12
,
-
18
},{
-
21
,
-
6
},
\
{
-
22
,
1
},{
21
,
-
7
},{
12
,
-
18
},{
13
,
-
18
},{
-
21
,
-
7
},{
15
,
16
},{
4
,
-
22
},{
3
,
-
22
},{
2
,
-
22
},{
1
,
-
22
},
\
{
0
,
-
22
},{
-
1
,
-
22
},{
-
2
,
-
22
},{
-
3
,
-
22
},{
-
4
,
-
22
},{
-
14
,
17
},{
21
,
-
8
},{
20
,
-
8
},{
-
14
,
-
17
},{
-
20
,
-
8
},
\
{
21
,
5
},{
22
,
1
},{
-
4
,
22
},{
-
18
,
12
},{
-
19
,
12
},{
19
,
11
},{
21
,
7
},{
18
,
-
13
},{
-
22
,
2
},{
-
21
,
-
8
},
\
{
14
,
17
},{
20
,
-
9
},{
-
20
,
-
9
},{
-
8
,
21
},{
-
7
,
21
},{
-
6
,
21
},{
-
5
,
21
},{
-
13
,
18
},{
-
12
,
18
},{
20
,
-
10
},
\
{
-
2
,
22
},{
-
21
,
8
},{
-
20
,
8
},{
-
20
,
10
},{
14
,
-
17
},{
-
20
,
-
10
},{
12
,
18
},{
13
,
18
},{
22
,
2
},{
-
1
,
22
},
\
{
19
,
-
11
},{
20
,
9
},{
0
,
22
},{
-
22
,
3
},{
-
20
,
9
},{
4
,
22
},{
3
,
22
},{
2
,
22
},{
17
,
-
14
},{
-
19
,
11
},
\
{
20
,
10
},{
-
3
,
22
},{
-
21
,
5
},{
1
,
22
},{
-
15
,
-
16
},{
-
19
,
-
11
},{
-
19
,
-
12
},{
-
18
,
-
12
},{
-
16
,
-
15
},{
-
10
,
-
20
},
\
{
-
8
,
20
},{
-
9
,
-
20
},{
-
8
,
-
20
},{
-
22
,
-
2
},{
19
,
-
12
},{
18
,
-
12
},{
8
,
20
},{
11
,
19
},{
17
,
14
},{
-
16
,
15
},
\
{
20
,
8
},{
22
,
-
2
},{
-
9
,
20
},{
-
10
,
20
},{
22
,
-
3
},{
8
,
-
20
},{
9
,
-
20
},{
10
,
-
20
},{
-
22
,
-
1
},{
16
,
-
15
},
\
{
-
22
,
-
3
},{
12
,
19
},{
22
,
-
4
},{
21
,
6
},{
8
,
-
21
},{
7
,
-
21
},{
6
,
-
21
},{
-
16
,
-
16
},{
23
,
-
2
},{
-
23
,
2
},
\
{
4
,
-
23
},{
22
,
7
},{
-
22
,
7
},{
3
,
-
23
},{
-
22
,
-
8
},{
2
,
-
23
},{
23
,
3
},{
23
,
4
},{
21
,
-
9
},{
1
,
-
23
},
\
{
0
,
-
23
},{
-
21
,
-
9
},{
15
,
17
},{
16
,
17
},{
8
,
22
},{
-
9
,
-
21
},{
13
,
19
},{
3
,
23
},{
2
,
23
},{
1
,
23
},
\
{
0
,
23
},{
-
13
,
-
19
},{
7
,
22
},{
6
,
22
},{
23
,
-
1
},{
-
10
,
21
},{
-
9
,
21
},{
-
18
,
14
},{
19
,
13
},{
-
1
,
-
23
},
\
{
9
,
21
},{
10
,
21
},{
-
5
,
22
},{
-
23
,
0
},{
-
2
,
-
23
},{
-
23
,
4
},{
-
3
,
-
23
},{
-
4
,
-
23
},{
-
22
,
8
},{
-
23
,
-
4
},
\
{
22
,
-
5
},{
19
,
-
13
},{
-
10
,
-
21
},{
5
,
22
},{
-
15
,
18
},{
-
14
,
18
},{
-
20
,
-
11
},{
13
,
-
19
},{
-
20
,
-
12
},{
17
,
15
},
\
{
18
,
15
},{
-
17
,
16
},{
-
12
,
20
},{
21
,
-
10
},{
23
,
-
3
},{
11
,
20
},{
12
,
20
},{
-
16
,
16
},{
16
,
-
16
},{
-
18
,
-
15
},
\
{
-
22
,
-
5
},{
-
17
,
-
15
},{
-
19
,
-
13
},{
22
,
-
6
},{
22
,
8
},{
-
21
,
9
},{
-
23
,
-
3
},{
-
19
,
13
},{
20
,
12
},{
-
21
,
10
},
\
{
-
12
,
-
20
},{
15
,
-
17
},{
-
1
,
23
},{
-
2
,
23
},{
-
3
,
23
},{
-
4
,
23
},{
18
,
-
15
},{
16
,
-
17
},{
-
11
,
-
20
},{
23
,
0
},
\
{
-
18
,
-
14
},{
-
22
,
6
},{
-
21
,
-
10
},{
-
15
,
-
18
},{
-
14
,
-
18
},{
-
11
,
20
},{
20
,
-
12
},{
21
,
9
},{
-
23
,
1
},{
-
13
,
19
},
\
{
-
7
,
22
},{
-
22
,
-
6
},{
22
,
-
7
},{
23
,
2
},{
23
,
-
4
},{
14
,
18
},{
14
,
-
18
},{
15
,
-
18
},{
18
,
-
14
},{
-
22
,
-
7
},
\
{
20
,
-
11
},{
16
,
16
},{
17
,
16
},{
-
16
,
17
},{
-
15
,
17
},{
8
,
-
22
},{
7
,
-
22
},{
6
,
-
22
},{
5
,
-
22
},{
10
,
-
21
},
\
{
15
,
18
},{
4
,
23
},{
-
23
,
-
2
},{
-
23
,
3
},{
-
23
,
-
1
},{
9
,
-
21
},{
-
22
,
5
},{
-
6
,
22
},{
-
5
,
-
22
},{
-
6
,
-
22
},
\
{
-
7
,
-
22
},{
-
8
,
-
22
},{
11
,
-
20
},{
-
8
,
22
},{
22
,
-
8
},{
12
,
-
20
},{
22
,
5
},{
-
17
,
-
16
},{
-
16
,
-
17
},{
-
15
,
-
17
},
\
{
18
,
14
},{
-
20
,
11
},{
21
,
10
},{
-
18
,
15
},{
23
,
1
},{
-
17
,
15
},{
22
,
6
},{
17
,
-
15
},{
-
20
,
12
},{
20
,
11
},
\
{
17
,
-
16
},{
-
15
,
19
},{
19
,
-
14
},{
20
,
-
14
},{
-
20
,
-
13
},{
-
14
,
19
},{
18
,
-
16
},{
20
,
-
13
},{
-
21
,
-
12
},{
21
,
-
12
},
\
{
-
21
,
-
11
},{
-
18
,
-
16
},{
21
,
-
11
},{
-
22
,
-
10
},{
17
,
-
17
},{
22
,
-
10
},{
-
22
,
-
9
},{
22
,
-
9
},{
-
23
,
-
8
},{
-
17
,
-
17
},
\
{
-
8
,
23
},{
23
,
-
8
},{
-
23
,
-
7
},{
16
,
-
18
},{
23
,
-
7
},{
-
23
,
-
6
},{
-
16
,
-
18
},{
-
7
,
23
},{
-
6
,
23
},{
-
5
,
23
},
\
{
23
,
-
6
},{
-
23
,
-
5
},{
15
,
-
19
},{
14
,
-
19
},{
23
,
-
5
},{
-
24
,
-
4
},{
-
14
,
-
19
},{
-
15
,
-
19
},{
5
,
23
},{
6
,
23
},
\
{
7
,
23
},{
24
,
-
4
},{
-
24
,
-
3
},{
14
,
-
20
},{
13
,
-
20
},{
24
,
-
3
},{
-
24
,
-
2
},{
-
13
,
-
20
},{
-
14
,
-
20
},{
8
,
23
},
\
{
24
,
-
2
},{
-
24
,
-
1
},{
12
,
-
21
},{
11
,
-
21
},{
24
,
-
1
},{
-
24
,
0
},{
14
,
19
},{
-
11
,
-
21
},{
-
12
,
-
21
},{
15
,
19
},
\
{
24
,
0
},{
-
24
,
1
},{
10
,
-
22
},{
9
,
-
22
},{
-
9
,
-
22
},{
-
10
,
-
22
},{
24
,
1
},{
-
24
,
2
},{
-
4
,
24
},{
-
3
,
24
},
\
{
-
2
,
24
},{
-
1
,
24
},{
0
,
24
},{
1
,
24
},{
2
,
24
},{
3
,
24
},{
4
,
24
},{
24
,
2
},{
-
24
,
3
},{
8
,
-
23
},
\
{
7
,
-
23
},{
6
,
-
23
},{
5
,
-
23
},{
-
5
,
-
23
},{
-
6
,
-
23
},{
-
7
,
-
23
},{
-
8
,
-
23
},{
24
,
3
},{
-
24
,
4
},{
24
,
4
},
\
{
-
23
,
5
},{
4
,
-
24
},{
3
,
-
24
},{
2
,
-
24
},{
1
,
-
24
},{
0
,
-
24
},{
-
1
,
-
24
},{
-
2
,
-
24
},{
-
3
,
-
24
},{
-
4
,
-
24
},
\
{
23
,
5
},{
-
23
,
6
},{
23
,
6
},{
-
23
,
7
},{
23
,
7
},{
-
23
,
8
},{
-
9
,
22
},{
-
10
,
22
},{
23
,
8
},{
-
22
,
9
},
\
{
22
,
9
},{
-
22
,
10
},{
12
,
21
},{
11
,
21
},{
22
,
10
},{
-
21
,
11
},{
-
11
,
21
},{
-
12
,
21
},{
21
,
11
},{
-
21
,
12
},
\
{
21
,
12
},{
-
20
,
13
},{
-
14
,
20
},{
14
,
20
},{
13
,
20
},{
-
13
,
20
},{
20
,
13
},{
-
20
,
14
},{
-
19
,
14
},{
19
,
14
},
\
{
20
,
14
},{
-
19
,
15
},{
19
,
15
},{
-
18
,
16
},{
18
,
16
},{
10
,
22
},{
-
17
,
17
},{
17
,
17
},{
9
,
22
},{
-
16
,
18
},
\
{
16
,
18
},{
-
19
,
-
15
},{
19
,
-
15
},{
-
20
,
-
14
},{
-
19
,
-
14
},{
1
,
-
25
},{
-
15
,
20
},{
-
21
,
13
},{
22
,
12
},{
25
,
0
},
\
{
-
25
,
1
},{
-
24
,
8
},{
-
2
,
25
},{
14
,
21
},{
13
,
21
},{
16
,
19
},{
-
11
,
22
},{
-
25
,
4
},{
-
6
,
-
24
},{
-
12
,
22
},
\
{
12
,
-
22
},{
-
5
,
-
24
},{
25
,
3
},{
11
,
-
22
},{
-
11
,
-
22
},{
-
12
,
-
22
},{
17
,
19
},{
5
,
-
24
},{
6
,
-
24
},{
-
11
,
-
23
},
\
{
-
10
,
-
23
},{
-
9
,
-
23
},{
9
,
-
23
},{
10
,
-
23
},{
11
,
-
23
},{
7
,
-
24
},{
25
,
1
},{
23
,
10
},{
8
,
-
24
},{
21
,
-
14
},
\
{
-
22
,
12
},{
23
,
11
},{
22
,
11
},{
-
16
,
19
},{
-
25
,
2
},{
0
,
-
25
},{
-
23
,
11
},{
-
22
,
11
},{
-
14
,
21
},{
-
1
,
-
25
},
\
{
-
13
,
21
},{
-
25
,
3
},{
-
2
,
-
25
},{
-
21
,
-
14
},{
-
8
,
24
},{
-
3
,
25
},{
25
,
2
},{
-
7
,
24
},{
-
6
,
24
},{
-
5
,
24
},
\
{
-
21
,
-
13
},{
19
,
-
16
},{
21
,
-
13
},{
-
22
,
-
12
},{
22
,
-
12
},{
-
23
,
-
11
},{
-
3
,
-
25
},{
-
4
,
-
25
},{
-
22
,
-
11
},{
-
20
,
-
15
},
\
{
-
19
,
-
16
},{
18
,
18
},{
17
,
18
},{
22
,
-
11
},{
23
,
-
11
},{
-
23
,
-
10
},{
19
,
-
17
},{
18
,
-
17
},{
23
,
-
10
},{
-
17
,
18
},
\
{
-
18
,
18
},{
19
,
17
},{
18
,
17
},{
-
5
,
-
25
},{
24
,
6
},{
-
23
,
-
9
},{
23
,
-
9
},{
-
24
,
5
},{
-
25
,
5
},{
-
24
,
6
},
\
{
-
24
,
-
8
},{
-
18
,
-
17
},{
20
,
-
15
},{
25
,
4
},{
-
19
,
-
17
},{
-
11
,
23
},{
24
,
8
},{
-
17
,
19
},{
-
10
,
23
},{
-
9
,
23
},
\
{
24
,
-
8
},{
-
18
,
17
},{
-
19
,
17
},{
-
5
,
25
},{
-
23
,
9
},{
11
,
22
},{
12
,
22
},{
19
,
16
},{
-
24
,
-
7
},{
18
,
-
18
},
\
{
17
,
-
18
},{
24
,
-
7
},{
-
24
,
-
6
},{
-
17
,
-
18
},{
-
18
,
-
18
},{
24
,
-
6
},{
-
4
,
25
},{
25
,
5
},{
24
,
5
},{
-
25
,
-
5
},
\
{
-
24
,
-
5
},{
-
19
,
16
},{
20
,
15
},{
17
,
-
19
},{
16
,
-
19
},{
24
,
-
5
},{
25
,
-
5
},{
-
25
,
-
4
},{
-
16
,
-
19
},{
5
,
25
},
\
{
4
,
25
},{
3
,
25
},{
-
24
,
7
},{
5
,
-
25
},{
4
,
-
25
},{
-
8
,
-
24
},{
-
7
,
-
24
},{
3
,
-
25
},{
24
,
7
},{
-
17
,
-
19
},
\
{
25
,
-
4
},{
-
25
,
-
3
},{
15
,
-
20
},{
25
,
-
3
},{
-
20
,
15
},{
21
,
14
},{
2
,
-
25
},{
2
,
25
},{
1
,
25
},{
-
25
,
-
2
},
\
{
23
,
9
},{
0
,
25
},{
-
15
,
-
20
},{
9
,
23
},{
10
,
23
},{
11
,
23
},{
25
,
-
2
},{
-
25
,
-
1
},{
-
1
,
25
},{
-
23
,
10
},
\
{
14
,
-
21
},{
8
,
24
},{
7
,
24
},{
6
,
24
},{
5
,
24
},{
13
,
-
21
},{
25
,
-
1
},{
-
21
,
14
},{
21
,
13
},{
-
25
,
0
},
\
{
-
13
,
-
21
},{
-
14
,
-
21
},{
15
,
20
},{
26
,
5
},{
8
,
-
25
},{
7
,
-
25
},{
6
,
-
25
},{
-
6
,
-
25
},{
-
7
,
-
25
},{
-
8
,
-
25
},
\
{
-
11
,
-
24
},{
-
10
,
-
24
},{
-
9
,
-
24
},{
21
,
-
15
},{
25
,
7
},{
-
25
,
8
},{
9
,
-
24
},{
10
,
-
24
},{
11
,
-
24
},{
7
,
25
},
\
{
8
,
25
},{
-
5
,
26
},{
-
4
,
26
},{
-
26
,
5
},{
26
,
4
},{
25
,
8
},{
-
24
,
9
},{
-
3
,
26
},{
-
2
,
26
},{
-
1
,
26
},
\
{
5
,
-
26
},{
4
,
-
26
},{
3
,
-
26
},{
2
,
-
26
},{
1
,
-
26
},{
0
,
-
26
},{
-
1
,
-
26
},{
-
2
,
-
26
},{
-
3
,
-
26
},{
-
4
,
-
26
},
\
{
11
,
24
},{
10
,
24
},{
9
,
24
},{
24
,
9
},{
-
24
,
10
},{
-
5
,
-
26
},{
16
,
21
},{
15
,
21
},{
-
26
,
4
},{
26
,
3
},
\
{
-
13
,
-
23
},{
-
12
,
-
23
},{
12
,
-
23
},{
24
,
10
},{
-
24
,
11
},{
13
,
-
23
},{
-
26
,
3
},{
26
,
2
},{
-
22
,
-
14
},{
-
15
,
21
},
\
{
-
16
,
21
},{
-
14
,
-
22
},{
-
13
,
-
22
},{
18
,
19
},{
-
26
,
2
},{
24
,
11
},{
-
23
,
12
},{
26
,
1
},{
13
,
-
22
},{
14
,
-
22
},
\
{
-
17
,
20
},{
-
14
,
22
},{
-
13
,
22
},{
-
16
,
20
},{
-
26
,
1
},{
26
,
0
},{
-
22
,
-
13
},{
23
,
12
},{
-
23
,
13
},{
-
22
,
13
},
\
{
-
23
,
-
13
},{
-
9
,
24
},{
-
10
,
24
},{
-
11
,
24
},{
17
,
20
},{
16
,
20
},{
-
16
,
-
21
},{
-
15
,
-
21
},{
-
26
,
0
},{
22
,
13
},
\
{
23
,
13
},{
-
22
,
14
},{
26
,
-
1
},{
15
,
-
21
},{
16
,
-
21
},{
-
26
,
-
1
},{
26
,
-
2
},{
13
,
23
},{
12
,
23
},{
-
17
,
-
20
},
\
{
-
16
,
-
20
},{
-
26
,
-
2
},{
22
,
14
},{
-
21
,
15
},{
22
,
-
14
},{
26
,
-
3
},{
16
,
-
20
},{
17
,
-
20
},{
-
26
,
-
3
},{
26
,
-
4
},
\
{
-
18
,
-
19
},{
-
26
,
-
4
},{
26
,
-
5
},{
18
,
-
19
},{
21
,
15
},{
14
,
22
},{
5
,
26
},{
-
21
,
16
},{
-
20
,
16
},{
-
26
,
-
5
},
\
{
25
,
-
6
},{
-
19
,
-
18
},{
-
25
,
-
6
},{
25
,
-
7
},{
-
25
,
-
7
},{
-
18
,
19
},{
20
,
16
},{
21
,
16
},{
4
,
26
},{
13
,
22
},
\
{
3
,
26
},{
-
20
,
17
},{
25
,
-
8
},{
19
,
-
18
},{
-
12
,
23
},{
-
20
,
-
17
},{
-
25
,
-
8
},{
24
,
-
9
},{
-
24
,
-
9
},{
20
,
17
},
\
{
2
,
26
},{
1
,
26
},{
-
19
,
18
},{
24
,
-
10
},{
20
,
-
17
},{
-
13
,
23
},{
-
24
,
-
10
},{
24
,
-
11
},{
19
,
18
},{
0
,
26
},
\
{
-
21
,
-
16
},{
-
20
,
-
16
},{
-
21
,
-
15
},{
-
24
,
-
11
},{
23
,
-
12
},{
-
23
,
-
12
},{
23
,
-
13
},{
22
,
-
13
},{
20
,
-
16
},{
21
,
-
16
},
\
{
6
,
25
},{
-
6
,
25
},{
-
7
,
25
},{
-
8
,
25
},{
25
,
6
},{
-
25
,
7
},{
-
25
,
6
},{
-
2
,
-
27
},{
3
,
27
},{
2
,
27
},
\
{
17
,
-
21
},{
-
27
,
-
5
},{
-
1
,
-
27
},{
26
,
-
6
},{
-
5
,
-
27
},{
27
,
2
},{
19
,
19
},{
-
13
,
24
},{
-
25
,
10
},{
14
,
-
23
},
\
{
-
4
,
-
27
},{
-
27
,
-
1
},{
-
20
,
-
18
},{
27
,
-
2
},{
15
,
-
23
},{
-
15
,
23
},{
24
,
-
12
},{
-
14
,
23
},{
-
26
,
-
6
},{
-
7
,
-
26
},
\
{
-
15
,
22
},{
26
,
-
7
},{
0
,
-
27
},{
-
11
,
25
},{
21
,
-
17
},{
-
10
,
25
},{
1
,
-
27
},{
23
,
-
15
},{
-
26
,
-
7
},{
18
,
20
},
\
{
22
,
-
15
},{
15
,
23
},{
-
26
,
8
},{
14
,
23
},{
22
,
16
},{
27
,
5
},{
-
9
,
25
},{
0
,
27
},{
26
,
7
},{
13
,
-
24
},
\
{
-
1
,
27
},{
-
22
,
-
15
},{
-
12
,
-
24
},{
25
,
-
10
},{
-
8
,
26
},{
-
16
,
22
},{
-
21
,
17
},{
-
13
,
-
24
},{
-
25
,
9
},{
-
17
,
-
21
},
\
{
-
23
,
-
15
},{
-
8
,
-
26
},{
26
,
-
8
},{
2
,
-
27
},{
3
,
-
27
},{
-
17
,
21
},{
20
,
-
18
},{
9
,
25
},{
-
24
,
13
},{
-
26
,
6
},
\
{
-
18
,
-
20
},{
15
,
-
22
},{
26
,
8
},{
-
20
,
18
},{
-
25
,
-
9
},{
21
,
17
},{
-
10
,
-
25
},{
-
7
,
26
},{
10
,
-
25
},{
-
21
,
-
17
},
\
{
-
6
,
26
},{
4
,
27
},{
27
,
4
},{
-
27
,
5
},{
-
11
,
-
25
},{
-
26
,
-
8
},{
25
,
9
},{
24
,
12
},{
-
24
,
-
12
},{
25
,
-
9
},
\
{
12
,
-
24
},{
-
24
,
-
13
},{
23
,
-
14
},{
12
,
24
},{
1
,
27
},{
23
,
14
},{
-
27
,
0
},{
-
9
,
-
25
},{
27
,
-
1
},{
8
,
26
},
\
{
-
5
,
27
},{
7
,
26
},{
27
,
3
},{
20
,
18
},{
-
23
,
15
},{
-
22
,
15
},{
-
15
,
-
23
},{
13
,
24
},{
-
26
,
7
},{
-
27
,
-
2
},
\
{
27
,
-
3
},{
-
25
,
-
11
},{
24
,
13
},{
10
,
25
},{
5
,
27
},{
-
14
,
-
23
},{
18
,
-
20
},{
9
,
-
25
},{
27
,
0
},{
25
,
-
11
},
\
{
4
,
-
27
},{
27
,
1
},{
-
6
,
-
26
},{
-
27
,
-
3
},{
27
,
-
4
},{
25
,
10
},{
-
24
,
12
},{
5
,
-
27
},{
-
12
,
24
},{
25
,
11
},
\
{
-
27
,
1
},{
11
,
25
},{
-
19
,
-
19
},{
-
23
,
14
},{
-
27
,
2
},{
6
,
-
26
},{
7
,
-
26
},{
24
,
-
13
},{
-
27
,
-
4
},{
27
,
-
5
},
\
{
11
,
-
25
},{
8
,
-
26
},{
26
,
6
},{
17
,
21
},{
-
4
,
27
},{
-
3
,
27
},{
16
,
-
22
},{
-
25
,
11
},{
-
25
,
-
10
},{
22
,
15
},
\
{
23
,
15
},{
-
3
,
-
27
},{
-
15
,
-
22
},{
6
,
26
},{
16
,
22
},{
15
,
22
},{
-
27
,
4
},{
-
16
,
-
22
},{
-
18
,
20
},{
-
2
,
27
},
\
{
-
22
,
16
},{
-
23
,
-
14
},{
22
,
-
16
},{
-
27
,
3
},{
-
19
,
19
},{
19
,
-
19
},{
-
22
,
-
16
}};
static
int
kernel_limits
[]
=
{
1
,
9
,
21
,
37
,
69
,
97
,
137
,
177
,
225
,
293
,
349
,
421
,
489
,
577
,
\
665
,
749
,
861
,
973
,
1085
,
1201
,
1313
,
1457
,
1597
,
1741
,
1885
,
2053
,
2217
};
#define MAXKERN 2217
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment