gavinyuan
add: PIPNet, arcface
b9be4e6
ri1 = [
1,
2,
3,
4,
5,
33,
1,
2,
3,
4,
5,
33,
1,
2,
3,
4,
5,
0,
2,
3,
4,
5,
6,
33,
0,
2,
3,
4,
5,
6,
33,
0,
2,
3,
0,
1,
3,
4,
5,
6,
0,
1,
3,
4,
5,
6,
0,
1,
3,
4,
5,
0,
1,
2,
4,
5,
6,
7,
0,
1,
2,
4,
5,
6,
7,
0,
1,
2,
0,
1,
2,
3,
5,
6,
7,
8,
0,
1,
2,
3,
5,
6,
7,
8,
0,
1,
2,
3,
4,
6,
7,
8,
9,
1,
2,
3,
4,
6,
7,
8,
9,
1,
2,
3,
4,
5,
7,
8,
9,
10,
2,
3,
4,
5,
7,
8,
9,
10,
2,
3,
4,
5,
6,
8,
9,
10,
3,
4,
5,
6,
8,
9,
10,
3,
4,
5,
4,
5,
6,
7,
9,
10,
11,
4,
5,
6,
7,
9,
10,
11,
4,
5,
6,
4,
5,
6,
7,
8,
10,
11,
12,
4,
5,
6,
7,
8,
10,
11,
12,
4,
5,
6,
7,
8,
9,
11,
12,
13,
76,
5,
6,
7,
8,
9,
11,
12,
13,
7,
8,
9,
10,
12,
13,
14,
76,
88,
7,
8,
9,
10,
12,
13,
14,
76,
8,
9,
10,
11,
13,
14,
15,
8,
9,
10,
11,
13,
14,
15,
8,
9,
10,
10,
11,
12,
14,
15,
16,
10,
11,
12,
14,
15,
16,
10,
11,
12,
14,
15,
11,
12,
13,
15,
16,
17,
11,
12,
13,
15,
16,
17,
11,
12,
13,
15,
16,
12,
13,
14,
16,
17,
18,
12,
13,
14,
16,
17,
18,
12,
13,
14,
16,
17,
13,
14,
15,
17,
18,
19,
13,
14,
15,
17,
18,
19,
13,
14,
15,
17,
18,
14,
15,
16,
18,
19,
20,
14,
15,
16,
18,
19,
20,
14,
15,
16,
18,
19,
15,
16,
17,
19,
20,
21,
15,
16,
17,
19,
20,
21,
15,
16,
17,
19,
20,
16,
17,
18,
20,
21,
22,
16,
17,
18,
20,
21,
22,
16,
17,
18,
20,
21,
17,
18,
19,
21,
22,
23,
24,
17,
18,
19,
21,
22,
23,
24,
17,
18,
19,
18,
19,
20,
22,
23,
24,
25,
82,
18,
19,
20,
22,
23,
24,
25,
82,
18,
19,
20,
21,
23,
24,
25,
26,
27,
19,
20,
21,
23,
24,
25,
26,
27,
19,
20,
21,
22,
24,
25,
26,
27,
28,
20,
21,
22,
24,
25,
26,
27,
28,
20,
21,
22,
23,
25,
26,
27,
28,
21,
22,
23,
25,
26,
27,
28,
21,
22,
23,
21,
22,
23,
24,
26,
27,
28,
29,
21,
22,
23,
24,
26,
27,
28,
29,
21,
22,
23,
24,
25,
27,
28,
29,
30,
22,
23,
24,
25,
27,
28,
29,
30,
22,
23,
24,
25,
26,
28,
29,
30,
31,
23,
24,
25,
26,
28,
29,
30,
31,
23,
24,
25,
26,
27,
29,
30,
31,
32,
24,
25,
26,
27,
29,
30,
31,
32,
24,
25,
26,
27,
28,
30,
31,
32,
25,
26,
27,
28,
30,
31,
32,
25,
26,
27,
26,
27,
28,
29,
31,
32,
26,
27,
28,
29,
31,
32,
26,
27,
28,
29,
31,
26,
27,
28,
29,
30,
32,
46,
26,
27,
28,
29,
30,
32,
46,
26,
27,
28,
27,
28,
29,
30,
31,
46,
27,
28,
29,
30,
31,
46,
27,
28,
29,
30,
31,
0,
1,
2,
3,
34,
41,
60,
0,
1,
2,
3,
34,
41,
60,
0,
1,
2,
0,
33,
35,
40,
41,
60,
0,
33,
35,
40,
41,
60,
0,
33,
35,
40,
41,
33,
34,
36,
37,
39,
40,
41,
60,
61,
62,
33,
34,
36,
37,
39,
40,
41,
34,
35,
37,
38,
39,
40,
63,
64,
34,
35,
37,
38,
39,
40,
63,
64,
34,
36,
38,
39,
51,
64,
36,
38,
39,
51,
64,
36,
38,
39,
51,
64,
36,
38,
36,
37,
39,
51,
52,
63,
64,
65,
36,
37,
39,
51,
52,
63,
64,
65,
36,
35,
36,
37,
38,
40,
62,
63,
64,
65,
66,
67,
96,
35,
36,
37,
38,
40,
33,
34,
35,
36,
37,
38,
39,
41,
60,
61,
62,
63,
65,
66,
67,
96,
33,
0,
1,
2,
33,
34,
35,
40,
60,
61,
67,
0,
1,
2,
33,
34,
35,
40,
43,
49,
50,
51,
68,
43,
49,
50,
51,
68,
43,
49,
50,
51,
68,
43,
49,
42,
44,
45,
48,
49,
50,
68,
69,
42,
44,
45,
48,
49,
50,
68,
69,
42,
42,
43,
45,
46,
47,
48,
49,
70,
42,
43,
45,
46,
47,
48,
49,
70,
42,
32,
44,
46,
47,
48,
71,
72,
73,
32,
44,
46,
47,
48,
71,
72,
73,
32,
29,
30,
31,
32,
45,
47,
72,
29,
30,
31,
32,
45,
47,
72,
29,
30,
31,
30,
31,
32,
44,
45,
46,
48,
71,
72,
73,
30,
31,
32,
44,
45,
46,
48,
42,
43,
44,
45,
46,
47,
49,
50,
69,
70,
71,
72,
73,
74,
75,
97,
42,
42,
43,
44,
48,
50,
68,
69,
70,
74,
75,
97,
42,
43,
44,
48,
50,
68,
42,
43,
49,
51,
52,
68,
69,
75,
42,
43,
49,
51,
52,
68,
69,
75,
42,
37,
38,
42,
50,
52,
53,
64,
68,
37,
38,
42,
50,
52,
53,
64,
68,
37,
51,
53,
54,
51,
53,
54,
51,
53,
54,
51,
53,
54,
51,
53,
54,
51,
53,
51,
52,
54,
55,
56,
57,
59,
51,
52,
54,
55,
56,
57,
59,
51,
52,
54,
52,
53,
55,
56,
57,
58,
59,
52,
53,
55,
56,
57,
58,
59,
52,
53,
55,
53,
54,
56,
57,
76,
77,
78,
88,
53,
54,
56,
57,
76,
77,
78,
88,
53,
53,
54,
55,
57,
58,
77,
78,
79,
88,
53,
54,
55,
57,
58,
77,
78,
79,
53,
54,
55,
56,
58,
59,
78,
79,
80,
90,
53,
54,
55,
56,
58,
59,
78,
53,
54,
56,
57,
59,
79,
80,
81,
82,
92,
53,
54,
56,
57,
59,
79,
80,
53,
54,
57,
58,
80,
81,
82,
92,
53,
54,
57,
58,
80,
81,
82,
92,
53,
0,
1,
2,
3,
4,
33,
34,
41,
61,
62,
66,
67,
96,
0,
1,
2,
3,
0,
1,
33,
34,
35,
40,
41,
60,
62,
63,
65,
66,
67,
96,
0,
1,
33,
33,
34,
35,
36,
37,
38,
39,
40,
41,
60,
61,
63,
64,
65,
66,
67,
96,
35,
36,
37,
38,
39,
40,
51,
52,
61,
62,
64,
65,
66,
67,
96,
35,
36,
36,
37,
38,
39,
51,
52,
53,
63,
65,
66,
96,
36,
37,
38,
39,
51,
52,
36,
37,
38,
39,
52,
61,
62,
63,
64,
66,
67,
96,
36,
37,
38,
39,
52,
41,
60,
61,
62,
63,
64,
65,
67,
96,
41,
60,
61,
62,
63,
64,
65,
67,
0,
1,
2,
3,
33,
34,
35,
40,
41,
60,
61,
62,
65,
66,
96,
0,
1,
42,
43,
49,
50,
51,
52,
53,
69,
74,
75,
97,
42,
43,
49,
50,
51,
52,
42,
43,
44,
48,
49,
50,
51,
68,
70,
71,
73,
74,
75,
97,
42,
43,
44,
42,
43,
44,
45,
46,
47,
48,
49,
50,
68,
69,
71,
72,
73,
74,
75,
97,
31,
32,
44,
45,
46,
47,
48,
69,
70,
72,
73,
74,
75,
97,
31,
32,
44,
28,
29,
30,
31,
32,
45,
46,
47,
70,
71,
73,
74,
97,
28,
29,
30,
31,
29,
30,
31,
32,
44,
45,
46,
47,
48,
70,
71,
72,
74,
75,
97,
29,
30,
47,
68,
69,
70,
71,
72,
73,
75,
97,
47,
68,
69,
70,
71,
72,
73,
75,
42,
43,
49,
50,
52,
68,
69,
70,
71,
72,
73,
74,
97,
42,
43,
49,
50,
6,
7,
8,
9,
10,
11,
12,
55,
77,
87,
88,
89,
95,
6,
7,
8,
9,
55,
56,
76,
78,
86,
87,
88,
89,
95,
55,
56,
76,
78,
86,
87,
88,
89,
54,
55,
56,
57,
58,
76,
77,
79,
80,
85,
86,
87,
88,
89,
90,
94,
95,
54,
55,
56,
57,
58,
59,
77,
78,
80,
81,
84,
85,
86,
89,
90,
91,
94,
54,
57,
58,
59,
78,
79,
81,
82,
83,
84,
85,
90,
91,
92,
93,
94,
54,
58,
59,
80,
82,
83,
84,
91,
92,
93,
58,
59,
80,
82,
83,
84,
91,
92,
20,
21,
22,
23,
24,
25,
26,
59,
81,
83,
91,
92,
93,
20,
21,
22,
23,
17,
18,
19,
20,
21,
22,
23,
81,
82,
84,
91,
92,
93,
17,
18,
19,
20,
16,
17,
18,
19,
20,
81,
82,
83,
85,
91,
92,
93,
94,
16,
17,
18,
19,
14,
15,
16,
17,
18,
83,
84,
86,
87,
90,
93,
94,
95,
14,
15,
16,
17,
11,
12,
13,
14,
15,
16,
76,
77,
85,
87,
88,
89,
94,
95,
11,
12,
13,
9,
10,
11,
12,
13,
14,
76,
77,
86,
88,
89,
95,
9,
10,
11,
12,
13,
7,
8,
9,
10,
11,
12,
13,
55,
76,
77,
86,
87,
89,
95,
7,
8,
9,
55,
56,
76,
77,
78,
79,
86,
87,
88,
90,
95,
55,
56,
76,
77,
78,
79,
56,
57,
58,
78,
79,
80,
83,
84,
85,
86,
87,
89,
91,
92,
93,
94,
95,
58,
59,
79,
80,
81,
82,
83,
84,
85,
90,
92,
93,
94,
58,
59,
79,
80,
19,
20,
21,
22,
23,
24,
25,
59,
81,
82,
83,
84,
91,
93,
19,
20,
21,
18,
19,
79,
80,
81,
82,
83,
84,
85,
90,
91,
92,
94,
18,
19,
79,
80,
15,
16,
17,
78,
79,
80,
83,
84,
85,
86,
87,
89,
90,
91,
93,
95,
15,
13,
14,
15,
76,
77,
78,
85,
86,
87,
88,
89,
90,
94,
13,
14,
15,
76,
34,
35,
36,
38,
39,
40,
41,
60,
61,
62,
63,
64,
65,
66,
67,
34,
35,
43,
44,
45,
47,
48,
49,
50,
68,
69,
70,
71,
72,
73,
74,
75,
43,
44,
]
ri2 = [
0,
2,
4,
6,
8,
4,
0,
2,
4,
6,
8,
4,
0,
2,
4,
6,
8,
0,
0,
2,
4,
6,
8,
8,
0,
0,
2,
4,
6,
8,
8,
0,
0,
2,
1,
1,
0,
2,
4,
6,
1,
1,
0,
2,
4,
6,
1,
1,
0,
2,
4,
3,
2,
1,
0,
2,
4,
6,
3,
2,
1,
0,
2,
4,
6,
3,
2,
1,
6,
3,
3,
1,
0,
2,
4,
7,
6,
3,
3,
1,
0,
2,
4,
7,
6,
6,
4,
3,
1,
0,
2,
4,
8,
6,
4,
3,
1,
0,
2,
4,
8,
6,
7,
5,
3,
1,
0,
2,
4,
9,
7,
5,
3,
1,
0,
2,
4,
9,
7,
6,
5,
3,
1,
0,
2,
4,
6,
5,
3,
1,
0,
2,
4,
6,
5,
3,
7,
5,
3,
1,
0,
2,
4,
7,
5,
3,
1,
0,
2,
4,
7,
5,
3,
9,
7,
5,
3,
1,
0,
2,
5,
9,
7,
5,
3,
1,
0,
2,
5,
9,
9,
7,
5,
3,
1,
0,
2,
5,
8,
9,
7,
5,
3,
1,
0,
2,
5,
7,
5,
3,
1,
0,
2,
5,
9,
9,
7,
5,
3,
1,
0,
2,
5,
9,
9,
5,
3,
1,
0,
2,
4,
9,
5,
3,
1,
0,
2,
4,
9,
5,
3,
6,
3,
1,
0,
2,
6,
6,
3,
1,
0,
2,
6,
6,
3,
1,
0,
2,
7,
3,
1,
0,
3,
7,
7,
3,
1,
0,
3,
7,
7,
3,
1,
0,
3,
6,
3,
1,
1,
3,
6,
6,
3,
1,
1,
3,
6,
6,
3,
1,
1,
3,
7,
3,
1,
1,
3,
7,
7,
3,
1,
1,
3,
7,
7,
3,
1,
1,
3,
6,
3,
0,
1,
3,
6,
6,
3,
0,
1,
3,
6,
6,
3,
0,
1,
3,
7,
2,
0,
1,
3,
5,
7,
2,
0,
1,
3,
5,
7,
2,
0,
1,
3,
5,
2,
0,
1,
3,
5,
5,
2,
0,
1,
3,
5,
5,
2,
0,
1,
3,
4,
2,
0,
1,
3,
5,
8,
4,
2,
0,
1,
3,
5,
8,
4,
2,
0,
5,
2,
0,
1,
3,
5,
7,
9,
5,
2,
0,
1,
3,
5,
7,
9,
5,
4,
2,
0,
1,
3,
5,
7,
9,
4,
2,
0,
1,
3,
5,
7,
9,
4,
4,
2,
0,
1,
3,
5,
7,
9,
4,
2,
0,
1,
3,
5,
7,
9,
4,
4,
2,
0,
1,
3,
5,
7,
4,
2,
0,
1,
3,
5,
7,
4,
2,
0,
9,
4,
2,
0,
1,
3,
5,
6,
9,
4,
2,
0,
1,
3,
5,
6,
9,
9,
4,
2,
0,
1,
3,
5,
6,
9,
4,
2,
0,
1,
3,
5,
6,
9,
8,
4,
2,
0,
1,
3,
4,
6,
8,
4,
2,
0,
1,
3,
4,
6,
8,
6,
4,
2,
0,
1,
3,
3,
5,
6,
4,
2,
0,
1,
3,
3,
5,
6,
6,
4,
2,
0,
1,
2,
3,
6,
4,
2,
0,
1,
2,
3,
6,
4,
2,
6,
4,
2,
0,
1,
1,
6,
4,
2,
0,
1,
1,
6,
4,
2,
0,
1,
8,
6,
4,
2,
0,
0,
9,
8,
6,
4,
2,
0,
0,
9,
8,
6,
4,
8,
6,
4,
2,
0,
6,
8,
6,
4,
2,
0,
6,
8,
6,
4,
2,
0,
2,
4,
5,
8,
3,
1,
6,
2,
4,
5,
8,
3,
1,
6,
2,
4,
5,
7,
1,
1,
5,
0,
8,
7,
1,
1,
5,
0,
8,
7,
1,
1,
5,
0,
7,
1,
2,
8,
6,
0,
5,
9,
8,
8,
7,
1,
2,
8,
6,
0,
5,
8,
2,
1,
4,
0,
6,
7,
9,
8,
2,
1,
4,
0,
6,
7,
9,
8,
1,
0,
5,
5,
7,
1,
0,
5,
5,
7,
1,
0,
5,
5,
7,
1,
0,
4,
0,
2,
2,
6,
6,
2,
8,
4,
0,
2,
2,
6,
6,
2,
8,
4,
4,
0,
2,
1,
4,
7,
4,
4,
5,
9,
9,
7,
4,
0,
2,
1,
4,
5,
2,
0,
3,
9,
9,
4,
2,
7,
5,
4,
8,
9,
8,
6,
6,
5,
5,
7,
9,
0,
0,
3,
3,
2,
6,
7,
5,
7,
9,
0,
0,
3,
3,
2,
5,
0,
6,
7,
2,
5,
0,
6,
7,
2,
5,
0,
6,
7,
2,
5,
1,
1,
8,
5,
0,
4,
9,
7,
1,
1,
8,
5,
0,
4,
9,
7,
1,
8,
1,
1,
7,
4,
0,
6,
9,
8,
1,
1,
7,
4,
0,
6,
9,
8,
7,
2,
1,
0,
6,
9,
8,
9,
7,
2,
1,
0,
6,
9,
8,
9,
7,
8,
5,
4,
2,
2,
1,
6,
8,
5,
4,
2,
2,
1,
6,
8,
5,
4,
9,
7,
6,
3,
0,
0,
3,
6,
2,
7,
9,
7,
6,
3,
0,
0,
3,
7,
3,
0,
3,
5,
2,
2,
9,
8,
4,
5,
7,
6,
7,
9,
6,
7,
2,
0,
4,
2,
1,
3,
2,
7,
9,
5,
8,
2,
0,
4,
2,
1,
3,
0,
4,
3,
1,
5,
2,
6,
8,
0,
4,
3,
1,
5,
2,
6,
8,
0,
5,
6,
5,
5,
1,
5,
8,
8,
5,
6,
5,
5,
1,
5,
8,
8,
5,
0,
1,
9,
0,
1,
9,
0,
1,
9,
0,
1,
9,
0,
1,
9,
0,
1,
7,
0,
1,
9,
9,
9,
9,
7,
0,
1,
9,
9,
9,
9,
7,
0,
1,
4,
0,
5,
2,
0,
2,
4,
4,
0,
5,
2,
0,
2,
4,
4,
0,
5,
6,
5,
0,
8,
6,
6,
9,
6,
6,
5,
0,
8,
6,
6,
9,
6,
6,
3,
2,
0,
2,
7,
7,
5,
7,
8,
3,
2,
0,
2,
7,
7,
5,
7,
2,
0,
2,
1,
1,
2,
4,
3,
5,
7,
2,
0,
2,
1,
1,
2,
4,
4,
3,
7,
1,
0,
5,
4,
8,
8,
8,
4,
3,
7,
1,
0,
5,
4,
7,
4,
7,
0,
9,
6,
6,
6,
7,
4,
7,
0,
9,
6,
6,
6,
7,
4,
5,
6,
7,
8,
2,
5,
4,
1,
9,
6,
1,
9,
4,
5,
6,
7,
8,
9,
3,
4,
6,
2,
3,
1,
2,
9,
7,
4,
0,
5,
8,
9,
3,
9,
6,
5,
6,
7,
7,
3,
1,
7,
4,
2,
3,
6,
4,
1,
4,
0,
8,
5,
3,
3,
1,
8,
8,
9,
7,
3,
1,
0,
5,
8,
3,
8,
5,
8,
4,
2,
8,
4,
3,
9,
1,
1,
7,
8,
8,
4,
2,
8,
4,
3,
9,
6,
5,
9,
7,
9,
6,
0,
0,
3,
5,
2,
9,
6,
5,
9,
7,
9,
3,
4,
1,
5,
5,
3,
2,
1,
9,
3,
4,
1,
5,
5,
3,
2,
9,
8,
8,
9,
6,
7,
9,
9,
6,
0,
0,
5,
6,
2,
4,
9,
8,
4,
8,
8,
2,
3,
2,
8,
1,
8,
1,
9,
4,
8,
8,
2,
3,
2,
3,
5,
8,
8,
1,
3,
9,
0,
3,
7,
8,
5,
0,
5,
3,
5,
8,
9,
6,
5,
6,
8,
6,
1,
4,
7,
6,
4,
2,
5,
4,
2,
4,
0,
9,
8,
6,
4,
3,
3,
4,
9,
1,
1,
0,
4,
7,
2,
9,
8,
6,
8,
7,
7,
5,
4,
5,
2,
5,
8,
1,
1,
6,
7,
8,
7,
7,
5,
9,
8,
8,
9,
9,
7,
4,
7,
9,
5,
0,
0,
1,
6,
3,
9,
8,
9,
5,
5,
2,
4,
3,
2,
3,
1,
9,
5,
5,
2,
4,
3,
2,
3,
6,
9,
9,
6,
8,
1,
0,
6,
8,
9,
5,
3,
4,
6,
9,
9,
6,
9,
8,
6,
6,
5,
6,
7,
8,
4,
2,
0,
8,
7,
9,
8,
6,
6,
1,
5,
2,
7,
5,
3,
2,
0,
3,
1,
5,
2,
7,
5,
3,
2,
0,
7,
4,
3,
4,
9,
7,
5,
1,
3,
7,
7,
6,
7,
2,
2,
3,
4,
6,
7,
4,
3,
4,
6,
9,
0,
0,
9,
9,
6,
9,
7,
0,
7,
2,
8,
5,
3,
3,
3,
2,
5,
7,
6,
7,
8,
3,
2,
7,
4,
4,
8,
5,
1,
6,
2,
3,
5,
0,
2,
3,
5,
1,
6,
2,
3,
5,
0,
2,
7,
6,
6,
6,
7,
8,
9,
8,
4,
2,
8,
0,
8,
7,
6,
6,
6,
8,
7,
6,
5,
7,
8,
9,
3,
1,
1,
3,
1,
2,
8,
7,
6,
5,
7,
5,
4,
5,
9,
7,
5,
5,
1,
4,
5,
1,
5,
7,
5,
4,
5,
8,
5,
4,
6,
8,
8,
2,
2,
8,
4,
9,
0,
9,
8,
5,
4,
6,
9,
8,
4,
4,
6,
8,
5,
8,
2,
5,
5,
4,
6,
1,
9,
8,
4,
9,
8,
5,
4,
6,
7,
1,
3,
1,
1,
3,
2,
9,
8,
5,
4,
6,
9,
8,
7,
7,
8,
9,
9,
6,
0,
2,
8,
1,
5,
5,
9,
8,
7,
3,
6,
3,
0,
2,
8,
3,
4,
3,
6,
0,
3,
6,
3,
0,
2,
8,
8,
6,
8,
1,
0,
1,
9,
6,
3,
6,
9,
6,
6,
9,
7,
1,
8,
6,
5,
6,
2,
0,
3,
4,
3,
9,
5,
3,
0,
9,
6,
5,
6,
2,
9,
8,
8,
7,
7,
9,
9,
7,
2,
0,
1,
8,
5,
5,
9,
8,
8,
9,
8,
9,
8,
1,
4,
0,
0,
4,
8,
1,
4,
7,
9,
8,
9,
8,
8,
9,
9,
6,
4,
7,
7,
4,
0,
4,
7,
9,
1,
9,
6,
6,
8,
8,
9,
9,
4,
1,
8,
5,
0,
0,
4,
1,
9,
8,
8,
9,
9,
4,
9,
7,
7,
8,
7,
7,
8,
5,
3,
0,
2,
3,
2,
0,
3,
9,
7,
7,
7,
9,
8,
7,
7,
8,
4,
3,
0,
3,
4,
3,
0,
2,
7,
7,
]