Commit 6f0c8e82 authored by Paul Wilkins's avatar Paul Wilkins Committed by Gerrit Code Review
Browse files

Merge "Replace default counts with default probs." into experimental

parents 61e2eac6 99c4b1ee
......@@ -280,27 +280,6 @@ void vp9_default_bmode_probs(vp9_prob p[VP9_NKF_BINTRAMODES - 1]) {
intra_bmode_probs_from_distribution(p, branch_ct, bmode_cts);
}
static void intra_kf_bmode_probs_from_distribution(
vp9_prob p[VP9_KF_BINTRAMODES - 1],
unsigned int branch_ct[VP9_KF_BINTRAMODES - 1][2],
const unsigned int events[VP9_KF_BINTRAMODES]) {
vp9_tree_probs_from_distribution(vp9_kf_bmode_tree, p, branch_ct, events, 0);
}
void vp9_kf_default_bmode_probs(vp9_prob p[VP9_KF_BINTRAMODES]
[VP9_KF_BINTRAMODES]
[VP9_KF_BINTRAMODES - 1]) {
unsigned int branch_ct[VP9_KF_BINTRAMODES - 1][2];
int i, j;
for (i = 0; i < VP9_KF_BINTRAMODES; ++i) {
for (j = 0; j < VP9_KF_BINTRAMODES; ++j) {
intra_kf_bmode_probs_from_distribution(
p[i][j], branch_ct, vp9_kf_default_bmode_counts[i][j]);
}
}
}
#if VP9_SWITCHABLE_FILTERS == 3
const vp9_tree_index vp9_switchable_interp_tree[VP9_SWITCHABLE_FILTERS*2-2] = {
-0, 2,
......@@ -537,7 +516,8 @@ void vp9_setup_past_independence(VP9_COMMON *cm, MACROBLOCKD *xd) {
vp9_default_coef_probs(cm);
vp9_init_mbmode_probs(cm);
vp9_default_bmode_probs(cm->fc.bmode_prob);
vp9_kf_default_bmode_probs(cm->kf_bmode_prob);
vpx_memcpy(cm->kf_bmode_prob, vp9_kf_default_bmode_probs,
sizeof(vp9_kf_default_bmode_probs));
vp9_init_mv_probs(cm);
// To force update of the sharpness
......
......@@ -20,9 +20,9 @@ extern int vp9_mv_cont(const int_mv *l, const int_mv *a);
extern const vp9_prob vp9_sub_mv_ref_prob2[SUBMVREF_COUNT][VP9_SUBMVREFS - 1];
extern const unsigned int vp9_kf_default_bmode_counts[VP9_KF_BINTRAMODES]
[VP9_KF_BINTRAMODES]
[VP9_KF_BINTRAMODES];
extern const vp9_prob vp9_kf_default_bmode_probs[VP9_KF_BINTRAMODES]
[VP9_KF_BINTRAMODES]
[VP9_KF_BINTRAMODES -1 ];
extern const vp9_tree_index vp9_bmode_tree[];
extern const vp9_tree_index vp9_kf_bmode_tree[];
......@@ -73,10 +73,6 @@ extern void vp9_accum_mv_refs(struct VP9Common *pc,
void vp9_default_bmode_probs(vp9_prob dest[VP9_NKF_BINTRAMODES - 1]);
void vp9_kf_default_bmode_probs(vp9_prob dest[VP9_KF_BINTRAMODES]
[VP9_KF_BINTRAMODES]
[VP9_KF_BINTRAMODES - 1]);
void vp9_adapt_mode_probs(struct VP9Common *);
#define VP9_SWITCHABLE_FILTERS 3 /* number of switchable filters */
......
......@@ -11,137 +11,118 @@
#include "vp9/common/vp9_entropymode.h"
const unsigned int vp9_kf_default_bmode_counts[VP9_KF_BINTRAMODES]
[VP9_KF_BINTRAMODES]
[VP9_KF_BINTRAMODES] = {
{
/*Above Mode : 0*/
{ 43438, 2195, 470, 316, 615, 171, 217, 412, 124, 160, }, /* left_mode 0 */
{ 5722, 2751, 296, 291, 81, 68, 80, 101, 100, 170, }, /* left_mode 1 */
{ 1629, 201, 307, 25, 47, 16, 34, 72, 19, 28, }, /* left_mode 2 */
{ 332, 266, 36, 500, 20, 65, 23, 14, 154, 106, }, /* left_mode 3 */
{ 450, 97, 10, 24, 117, 10, 2, 12, 8, 71, }, /* left_mode 4 */
{ 384, 49, 29, 44, 12, 162, 51, 5, 87, 42, }, /* left_mode 5 */
{ 495, 53, 157, 27, 14, 57, 180, 17, 17, 34, }, /* left_mode 6 */
{ 695, 64, 62, 9, 27, 5, 3, 147, 10, 26, }, /* left_mode 7 */
{ 230, 54, 20, 124, 16, 125, 29, 12, 283, 37, }, /* left_mode 8 */
{ 260, 87, 21, 120, 32, 16, 33, 16, 33, 203, }, /* left_mode 9 */
},
{
/*Above Mode : 1*/
{ 3934, 2573, 355, 137, 128, 87, 133, 117, 37, 27, }, /* left_mode 0 */
{ 1036, 1929, 278, 135, 27, 37, 48, 55, 41, 91, }, /* left_mode 1 */
{ 223, 256, 253, 15, 13, 9, 28, 64, 3, 3, }, /* left_mode 2 */
{ 120, 129, 17, 316, 15, 11, 9, 4, 53, 74, }, /* left_mode 3 */
{ 129, 58, 6, 11, 38, 2, 0, 5, 2, 67, }, /* left_mode 4 */
{ 53, 22, 11, 16, 8, 26, 14, 3, 19, 12, }, /* left_mode 5 */
{ 59, 26, 61, 11, 4, 9, 35, 13, 8, 8, }, /* left_mode 6 */
{ 101, 52, 40, 8, 5, 2, 8, 59, 2, 20, }, /* left_mode 7 */
{ 48, 34, 10, 52, 8, 15, 6, 6, 63, 20, }, /* left_mode 8 */
{ 96, 48, 22, 63, 11, 14, 5, 8, 9, 96, }, /* left_mode 9 */
},
{
/*Above Mode : 2*/
{ 709, 461, 506, 36, 27, 33, 151, 98, 24, 6, }, /* left_mode 0 */
{ 201, 375, 442, 27, 13, 8, 46, 58, 6, 19, }, /* left_mode 1 */
{ 122, 140, 417, 4, 13, 3, 33, 59, 4, 2, }, /* left_mode 2 */
{ 36, 17, 22, 16, 6, 8, 12, 17, 9, 21, }, /* left_mode 3 */
{ 51, 15, 7, 1, 14, 0, 4, 5, 3, 22, }, /* left_mode 4 */
{ 18, 11, 30, 9, 7, 20, 11, 5, 2, 6, }, /* left_mode 5 */
{ 38, 21, 103, 9, 4, 12, 79, 13, 2, 5, }, /* left_mode 6 */
{ 64, 17, 66, 2, 12, 4, 2, 65, 4, 5, }, /* left_mode 7 */
{ 14, 7, 7, 16, 3, 11, 4, 13, 15, 16, }, /* left_mode 8 */
{ 36, 8, 32, 9, 9, 4, 14, 7, 6, 24, }, /* left_mode 9 */
},
{
/*Above Mode : 3*/
{ 1340, 173, 36, 119, 30, 10, 13, 10, 20, 26, }, /* left_mode 0 */
{ 156, 293, 26, 108, 5, 16, 2, 4, 23, 30, }, /* left_mode 1 */
{ 60, 34, 13, 7, 3, 3, 0, 8, 4, 5, }, /* left_mode 2 */
{ 72, 64, 1, 235, 3, 9, 2, 7, 28, 38, }, /* left_mode 3 */
{ 29, 14, 1, 3, 5, 0, 2, 2, 5, 13, }, /* left_mode 4 */
{ 22, 7, 4, 11, 2, 5, 1, 2, 6, 4, }, /* left_mode 5 */
{ 18, 14, 5, 6, 4, 3, 14, 0, 9, 2, }, /* left_mode 6 */
{ 41, 10, 7, 1, 2, 0, 0, 10, 2, 1, }, /* left_mode 7 */
{ 23, 19, 2, 33, 1, 5, 2, 0, 51, 8, }, /* left_mode 8 */
{ 33, 26, 7, 53, 3, 9, 3, 3, 9, 19, }, /* left_mode 9 */
},
{
/*Above Mode : 4*/
{ 410, 165, 43, 31, 66, 15, 30, 54, 8, 17, }, /* left_mode 0 */
{ 115, 64, 27, 18, 30, 7, 11, 15, 4, 19, }, /* left_mode 1 */
{ 31, 23, 25, 1, 7, 2, 2, 10, 0, 5, }, /* left_mode 2 */
{ 17, 4, 1, 6, 8, 2, 7, 5, 5, 21, }, /* left_mode 3 */
{ 120, 12, 1, 2, 83, 3, 0, 4, 1, 40, }, /* left_mode 4 */
{ 4, 3, 1, 2, 1, 2, 5, 0, 3, 6, }, /* left_mode 5 */
{ 10, 2, 13, 6, 6, 6, 8, 2, 4, 5, }, /* left_mode 6 */
{ 58, 10, 5, 1, 28, 1, 1, 33, 1, 9, }, /* left_mode 7 */
{ 8, 2, 1, 4, 2, 5, 1, 1, 2, 10, }, /* left_mode 8 */
{ 76, 7, 5, 7, 18, 2, 2, 0, 5, 45, }, /* left_mode 9 */
},
{
/*Above Mode : 5*/
{ 444, 46, 47, 20, 14, 110, 60, 14, 60, 7, }, /* left_mode 0 */
{ 59, 57, 25, 18, 3, 17, 21, 6, 14, 6, }, /* left_mode 1 */
{ 24, 17, 20, 6, 4, 13, 7, 2, 3, 2, }, /* left_mode 2 */
{ 13, 11, 5, 14, 4, 9, 2, 4, 15, 7, }, /* left_mode 3 */
{ 8, 5, 2, 1, 4, 0, 1, 1, 2, 12, }, /* left_mode 4 */
{ 19, 5, 5, 7, 4, 40, 6, 3, 10, 4, }, /* left_mode 5 */
{ 16, 5, 9, 1, 1, 16, 26, 2, 10, 4, }, /* left_mode 6 */
{ 11, 4, 8, 1, 1, 4, 4, 5, 4, 1, }, /* left_mode 7 */
{ 15, 1, 3, 7, 3, 21, 7, 1, 34, 5, }, /* left_mode 8 */
{ 18, 5, 1, 3, 4, 3, 7, 1, 2, 9, }, /* left_mode 9 */
},
{
/*Above Mode : 6*/
{ 476, 149, 94, 13, 14, 77, 291, 27, 23, 3, }, /* left_mode 0 */
{ 79, 83, 42, 14, 2, 12, 63, 2, 4, 14, }, /* left_mode 1 */
{ 43, 36, 55, 1, 3, 8, 42, 11, 5, 1, }, /* left_mode 2 */
{ 9, 9, 6, 16, 1, 5, 6, 3, 11, 10, }, /* left_mode 3 */
{ 10, 3, 1, 3, 10, 1, 0, 1, 1, 4, }, /* left_mode 4 */
{ 14, 6, 15, 5, 1, 20, 25, 2, 5, 0, }, /* left_mode 5 */
{ 28, 7, 51, 1, 0, 8, 127, 6, 2, 5, }, /* left_mode 6 */
{ 13, 3, 3, 2, 3, 1, 2, 8, 1, 2, }, /* left_mode 7 */
{ 10, 3, 3, 3, 3, 8, 2, 2, 9, 3, }, /* left_mode 8 */
{ 13, 7, 11, 4, 0, 4, 6, 2, 5, 8, }, /* left_mode 9 */
},
{
/*Above Mode : 7*/
{ 376, 135, 119, 6, 32, 8, 31, 224, 9, 3, }, /* left_mode 0 */
{ 93, 60, 54, 6, 13, 7, 8, 92, 2, 12, }, /* left_mode 1 */
{ 74, 36, 84, 0, 3, 2, 9, 67, 2, 1, }, /* left_mode 2 */
{ 19, 4, 4, 8, 8, 2, 4, 7, 6, 16, }, /* left_mode 3 */
{ 51, 7, 4, 1, 77, 3, 0, 14, 1, 15, }, /* left_mode 4 */
{ 7, 7, 5, 7, 4, 7, 4, 5, 0, 3, }, /* left_mode 5 */
{ 18, 2, 19, 2, 2, 4, 12, 11, 1, 2, }, /* left_mode 6 */
{ 129, 6, 27, 1, 21, 3, 0, 189, 0, 6, }, /* left_mode 7 */
{ 9, 1, 2, 8, 3, 7, 0, 5, 3, 3, }, /* left_mode 8 */
{ 20, 4, 5, 10, 4, 2, 7, 17, 3, 16, }, /* left_mode 9 */
},
{
/*Above Mode : 8*/
{ 617, 68, 34, 79, 11, 27, 25, 14, 75, 13, }, /* left_mode 0 */
{ 51, 82, 21, 26, 6, 12, 13, 1, 26, 16, }, /* left_mode 1 */
{ 29, 9, 12, 11, 3, 7, 1, 10, 2, 2, }, /* left_mode 2 */
{ 17, 19, 11, 74, 4, 3, 2, 0, 58, 13, }, /* left_mode 3 */
{ 10, 1, 1, 3, 4, 1, 0, 2, 1, 8, }, /* left_mode 4 */
{ 14, 4, 5, 5, 1, 13, 2, 0, 27, 8, }, /* left_mode 5 */
{ 10, 3, 5, 4, 1, 7, 6, 4, 5, 1, }, /* left_mode 6 */
{ 10, 2, 6, 2, 1, 1, 1, 4, 2, 1, }, /* left_mode 7 */
{ 14, 8, 5, 23, 2, 12, 6, 2, 117, 5, }, /* left_mode 8 */
{ 9, 6, 2, 19, 1, 6, 3, 2, 9, 9, }, /* left_mode 9 */
},
{
/*Above Mode : 9*/
{ 680, 73, 22, 38, 42, 5, 11, 9, 6, 28, }, /* left_mode 0 */
{ 113, 112, 21, 22, 10, 2, 8, 4, 6, 42, }, /* left_mode 1 */
{ 44, 20, 24, 6, 5, 4, 3, 3, 1, 2, }, /* left_mode 2 */
{ 40, 23, 7, 71, 5, 2, 4, 1, 7, 22, }, /* left_mode 3 */
{ 85, 9, 4, 4, 17, 2, 0, 3, 2, 23, }, /* left_mode 4 */
{ 13, 4, 2, 6, 1, 7, 0, 1, 7, 6, }, /* left_mode 5 */
{ 26, 6, 8, 3, 2, 3, 8, 1, 5, 4, }, /* left_mode 6 */
{ 54, 8, 9, 6, 7, 0, 1, 11, 1, 3, }, /* left_mode 7 */
{ 9, 10, 4, 13, 2, 5, 4, 2, 14, 8, }, /* left_mode 8 */
{ 92, 9, 5, 19, 15, 3, 3, 1, 6, 58, }, /* left_mode 9 */
const vp9_prob vp9_kf_default_bmode_probs[VP9_KF_BINTRAMODES]
[VP9_KF_BINTRAMODES]
[VP9_KF_BINTRAMODES-1] = {
{ // Above 0
{ 231, 9, 124, 138, 96, 200, 76, 42, 88, }, // left 0
{ 152, 11, 187, 112, 170, 139, 130, 91, 113, }, // left 1
{ 175, 10, 71, 182, 212, 191, 43, 39, 82, }, // left 2
{ 56, 23, 63, 38, 76, 60, 185, 206, 159, }, // left 3
{ 144, 52, 89, 192, 19, 236, 134, 93, 37, }, // left 4
{ 114, 22, 29, 133, 37, 18, 60, 156, 233, }, // left 5
{ 121, 16, 26, 124, 176, 50, 29, 20, 234, }, // left 6
{ 170, 19, 50, 91, 169, 216, 14, 16, 5, }, // left 7
{ 63, 14, 21, 68, 32, 29, 71, 224, 181, }, // left 8
{ 81, 93, 62, 65, 78, 171, 152, 103, 172, }, // left 9
}, { // Above 1
{ 134, 2, 185, 147, 159, 152, 83, 33, 136, }, // left 0
{ 72, 9, 194, 141, 208, 108, 124, 73, 119, }, // left 1
{ 66, 1, 102, 183, 236, 151, 35, 8, 78, }, // left 2
{ 41, 30, 60, 26, 101, 148, 212, 206, 177, }, // left 3
{ 104, 91, 122, 184, 33, 243, 156, 73, 1, }, // left 4
{ 74, 23, 47, 119, 63, 60, 79, 135, 211, }, // left 5
{ 65, 12, 40, 134, 211, 79, 42, 37, 187, }, // left 6
{ 87, 26, 76, 97, 218, 183, 27, 7, 31, }, // left 7
{ 47, 24, 45, 53, 78, 89, 105, 215, 128, }, // left 8
{ 66, 89, 68, 91, 120, 113, 190, 105, 98, }, // left 9
}, { // Above 2
{ 88, 1, 88, 166, 229, 115, 30, 23, 155, }, // left 0
{ 43, 5, 98, 198, 244, 158, 50, 14, 113, }, // left 1
{ 39, 1, 53, 208, 247, 208, 10, 11, 92, }, // left 2
{ 56, 42, 41, 102, 156, 110, 76, 61, 106, }, // left 3
{ 107, 79, 78, 158, 85, 255, 20, 64, 114, }, // left 4
{ 39, 15, 30, 174, 135, 66, 85, 28, 176, }, // left 5
{ 34, 5, 22, 137, 222, 64, 22, 5, 220, }, // left 6
{ 68, 7, 25, 135, 206, 192, 7, 14, 8, }, // left 7
{ 34, 45, 24, 78, 85, 55, 85, 120, 60, }, // left 8
{ 62, 54, 23, 142, 182, 177, 64, 57, 171, }, // left 9
}, { // Above 3
{ 193, 15, 108, 82, 121, 192, 188, 119, 145, }, // left 0
{ 60, 15, 157, 65, 142, 61, 202, 203, 85, }, // left 1
{ 112, 17, 121, 128, 175, 128, 94, 85, 1, }, // left 2
{ 40, 25, 47, 12, 20, 64, 221, 194, 57, }, // left 3
{ 100, 74, 112, 85, 43, 255, 64, 142, 128, }, // left 4
{ 88, 24, 47, 91, 93, 73, 141, 171, 85, }, // left 5
{ 61, 9, 65, 75, 107, 146, 53, 100, 255, }, // left 6
{ 142, 8, 80, 105, 199, 255, 20, 43, 1, }, // left 7
{ 41, 17, 43, 22, 64, 43, 98, 246, 255, }, // left 8
{ 51, 37, 59, 56, 94, 64, 200, 154, 128, }, // left 9
}, { // Above 4
{ 125, 10, 103, 129, 89, 209, 65, 22, 91, }, // left 0
{ 95, 25, 93, 146, 108, 208, 96, 34, 108, }, // left 1
{ 75, 17, 84, 185, 188, 199, 20, 1, 43, }, // left 2
{ 57, 91, 27, 83, 23, 205, 67, 75, 149, }, // left 3
{ 115, 70, 29, 237, 3, 247, 73, 51, 1, }, // left 4
{ 38, 67, 45, 73, 64, 85, 51, 96, 255, }, // left 5
{ 41, 25, 11, 142, 133, 128, 77, 73, 205, }, // left 6
{ 101, 26, 32, 124, 38, 247, 7, 7, 8, }, // left 7
{ 57, 91, 28, 128, 32, 73, 128, 128, 128, }, // left 8
{ 117, 127, 39, 164, 51, 230, 128, 183, 255, }, // left 9
}, { // Above 5
{ 138, 5, 32, 135, 70, 29, 33, 115, 208, }, // left 0
{ 67, 9, 91, 111, 142, 38, 78, 87, 199, }, // left 1
{ 63, 7, 60, 172, 138, 60, 85, 64, 199, }, // left 2
{ 40, 25, 44, 87, 71, 79, 102, 183, 85, }, // left 3
{ 57, 110, 80, 140, 85, 255, 51, 128, 128, }, // left 4
{ 47, 12, 16, 167, 26, 23, 69, 135, 171, }, // left 5
{ 46, 14, 18, 102, 89, 15, 7, 67, 238, }, // left 6
{ 65, 8, 33, 123, 158, 51, 18, 79, 114, }, // left 7
{ 40, 16, 3, 91, 28, 32, 37, 207, 224, }, // left 8
{ 87, 66, 49, 98, 32, 146, 59, 51, 224, }, // left 9
}, { // Above 6
{ 104, 1, 55, 88, 130, 39, 9, 17, 234, }, // left 0
{ 64, 15, 96, 103, 192, 37, 43, 15, 248, }, // left 1
{ 54, 2, 57, 135, 213, 70, 4, 22, 203, }, // left 2
{ 30, 38, 40, 64, 128, 43, 114, 141, 171, }, // left 3
{ 75, 43, 38, 181, 21, 233, 154, 128, 1, }, // left 4
{ 39, 1, 19, 126, 107, 12, 35, 40, 237, }, // left 5
{ 31, 6, 9, 77, 221, 1, 2, 4, 244, }, // left 6
{ 88, 20, 33, 90, 110, 192, 39, 23, 51, }, // left 7
{ 56, 21, 23, 119, 55, 70, 48, 177, 128, }, // left 8
{ 55, 44, 46, 120, 188, 1, 60, 98, 192, }, // left 9
}, { // Above 7
{ 102, 1, 61, 95, 192, 205, 6, 9, 31, }, // left 0
{ 69, 12, 63, 104, 187, 166, 14, 5, 20, }, // left 1
{ 68, 1, 45, 136, 242, 154, 1, 7, 30, }, // left 2
{ 62, 69, 24, 92, 73, 205, 82, 90, 93, }, // left 3
{ 75, 31, 17, 215, 12, 246, 16, 17, 1, }, // left 4
{ 37, 18, 46, 128, 80, 93, 112, 1, 114, }, // left 5
{ 63, 9, 10, 125, 195, 85, 20, 11, 134, }, // left 6
{ 86, 6, 6, 54, 136, 224, 1, 1, 1, }, // left 7
{ 56, 24, 9, 110, 43, 77, 128, 96, 1, }, // left 8
{ 58, 60, 20, 59, 116, 171, 69, 28, 75, }, // left 9
}, { // Above 8
{ 164, 10, 52, 70, 121, 74, 105, 168, 164, }, // left 0
{ 51, 20, 112, 95, 138, 85, 101, 166, 238, }, // left 1
{ 86, 9, 42, 122, 140, 77, 117, 39, 23, }, // left 2
{ 22, 18, 28, 30, 156, 146, 141, 247, 255, }, // left 3
{ 83, 98, 20, 128, 43, 205, 128, 85, 1, }, // left 4
{ 45, 32, 18, 92, 67, 18, 38, 238, 255, }, // left 5
{ 56, 7, 22, 104, 98, 32, 54, 85, 154, }, // left 6
{ 85, 13, 27, 120, 192, 128, 57, 73, 51, }, // left 7
{ 18, 7, 12, 29, 67, 37, 40, 240, 192, }, // left 8
{ 35, 40, 32, 55, 57, 37, 147, 165, 154, }, // left 9
}, { // Above 9
{ 190, 31, 91, 133, 82, 229, 152, 59, 141, }, // left 0
{ 85, 47, 155, 116, 163, 213, 141, 85, 171, }, // left 1
{ 101, 8, 78, 184, 186, 142, 118, 37, 128, }, // left 2
{ 56, 40, 49, 37, 128, 183, 219, 149, 205, }, // left 3
{ 146, 92, 56, 184, 45, 229, 114, 102, 1, }, // left 4
{ 71, 45, 37, 107, 51, 32, 110, 224, 1, }, // left 5
{ 101, 26, 43, 111, 158, 102, 45, 91, 228, }, // left 6
{ 138, 17, 48, 117, 144, 255, 81, 20, 21, }, // left 7
{ 32, 33, 47, 64, 93, 73, 101, 179, 171, }, // left 8
{ 112, 125, 38, 113, 56, 213, 168, 154, 192, }, // left 9
},
};
......@@ -1501,12 +1501,6 @@ void vp9_pack_bitstream(VP9_COMP *cpi, uint8_t *dest, unsigned long *size) {
compute_update_table();
/* vp9_kf_default_bmode_probs() is called in vp9_setup_key_frame() once
* for each K frame before encode frame. pc->kf_bmode_prob doesn't get
* changed anywhere else. No need to call it again here. --yw
* vp9_kf_default_bmode_probs( pc->kf_bmode_prob);
*/
/* every keyframe send startcode, width, height, scale factor, clamp
* and color type.
*/
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment