рд╡рд┐рдВрдбреЛрдЬ рдореЛрдмрд╛рдЗрд▓ рдкрд░ рдкрд┐рдХреНрд╕реЗрд▓ рдкреНрд░рддрд┐ рдПрдХ рдЧреБрдгрд╛ рдореЗрдВ рдЕрд▓реНрдлрд╛-рд╕рдореНрдорд┐рд╢реНрд░рдг

рд╡рд┐рдВрдбреЛрдЬ рдореЛрдмрд╛рдЗрд▓ рдкрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд▓реЛрдЧреЛрдВ рдиреЗ рд╢рд╛рдпрдж рдЧреИрдкреАрдбреНрд░реЙрд╡ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЙрдирдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реВрдЪреА рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ , рддреЛ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рдмреНрдж рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: "рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд╕рд╛рде рд╕рддрд╣реЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗрд╡рд▓ рдПрдХ рдЧреБрдгрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА"ред рдпрд╣реА рд╣реИ, рдЙрдирдХрд╛ рджрд╛рд╡рд╛ рд╣реИ рдХрд┐ рдкрд╛рд░рднрд╛рд╕реА рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗрд╡рд▓ рдПрдХ рдЧреБрдгрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╕рдВрднрд╡ рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╡рд┐рдВрдбреЛрдЬ рдореЛрдмрд╛рдЗрд▓ рд╡рд╛рд▓реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ 65 рд╣рдЬрд╛рд░ рд░рдВрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдХреНрд░реАрди рд╣реИред рдпрд╣реА рд╣реИ, рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗ рд▓рд┐рдП, 2 рдмрд╛рдЗрдЯреНрд╕ рд╕реНрдореГрддрд┐ рдореЗрдВ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рджреВрд╕рд░реЗ, рдРрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ 32-рдмрд┐рдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реЛрддрд╛ рд╣реИред рдРрд╕реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░, 2-рдмрд╛рдЗрдЯ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЧрдгрд┐рддреАрдп рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЧрддрд┐ 4-рдмрд╛рдЗрдЯ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЧрддрд┐ рд╕реЗ рдереЛрдбрд╝реА рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИред рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдЕрдиреБрдХреВрд▓рди рдЧрдгрдирд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдирд┐рд╣рд┐рдд рд╣реИред рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдПрдХ рдмрд╛рд░ рдореЗрдВ 2 рдкрд┐рдХреНрд╕рд▓ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддреА рд╣реИред

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ 16-рдмрд┐рдЯ рдкрд┐рдХреНрд╕реЗрд▓ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдКрдкрд░реА 5 рдмрд┐рдЯреНрд╕ рд▓рд╛рд▓ рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рд╣реИрдВ, рдлрд┐рд░ рд╣рд░реЗ рд░рдВрдЧ рдХреЗ рд▓рд┐рдП 6 рдмрд┐рдЯ рдФрд░ рдиреАрд▓реЗ рд░рдВрдЧ рдХреЗ рд▓рд┐рдП 5 рдмрд┐рдЯреНрд╕ рд╢реЗрд╖ рд╣реИрдВред
P = [RRRR RGGG GGGB BBBB] 15 8 7 0 

рдЙрд╕реА рд╕рдордп, рд░рдВрдЧ рд╕реНрд╡рдпрдВ рд╕реВрддреНрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкрд╛рд░рд┐рдпреЛрдВ рдФрд░ рдореБрдЦреМрдЯреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
 int R = (P >> 11) & 0x1f; int G = (P >> 5) & 0x3f; int B = P & 0x1f; 

рдЙрд▓рдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рджреНрд╡рд╛рд░рд╛ рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
 unsigned short P = (R << 11) + (G << 5) + B; 

рдЬрдм рд╣рдо рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреЗ рд╕рд╛рде рджреВрд╕рд░реЗ рдХреЗ рдКрдкрд░ рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдЦреАрдВрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд░рдВрдЧ рдорд┐рд╢реНрд░рдг рд╣реЛрддрд╛ рд╣реИред рджреЛрдиреЛрдВ рдкрд┐рдХреНрд╕реЗрд▓ 3 рдШрдЯрдХреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИрдВ: рд▓рд╛рд▓, рдиреАрд▓рд╛, рд╣рд░рд╛ред рдлрд┐рд░ рдШрдЯрдХ рдорд┐рд╢реНрд░рдг рдХрд░рддреЗ рд╣реИрдВ, рд▓рд╛рд▓ рдХреЗ рд╕рд╛рде рд▓рд╛рд▓ рдорд┐рдХреНрд╕, рдиреАрд▓реЗ рдХреЗ рд╕рд╛рде рдиреАрд▓реЗ рдорд┐рдХреНрд╕, рд╣рд░реЗ рдХреЗ рд╕рд╛рде рд╣рд░реЗ рдорд┐рдХреНрд╕ред рдФрд░ рдкреНрд░рд╛рдкреНрдд рдореВрд▓реНрдпреЛрдВ рд╕реЗ рдПрдХ рдирдпрд╛ рдкрд┐рдХреНрд╕реЗрд▓ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд░рдВрдЧ рдорд┐рд╢реНрд░рдг рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
 C = C1*╬▒ + C2*(1 - ╬▒) 

C1 рдкрд╣рд▓реЗ рдкрд┐рдХреНрд╕реЗрд▓ рд╕реЗ рд▓рд╛рд▓, рд╣рд░реЗ рдпрд╛ рдиреАрд▓реЗ рд░рдВрдЧ рдХрд╛ рдореВрд▓реНрдп рд╣реИред
C2 рджреВрд╕рд░реЗ рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ рдПрдХ рд╣реА рд░рдВрдЧ рдХрд╛ рдореВрд▓реНрдп рд╣реИред
рд╕реА рдкрд░рд┐рдгрд╛рдореА рд░рдВрдЧ рд╣реИред
╬▒ - рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдЧреБрдгрд╛рдВрдХ, 0 рд╕реЗ 1 рддрдХ рдорд╛рди рд▓реЗрддрд╛ рд╣реИред

рдпрд╣ ╬▒ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдп рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдорд╣рдВрдЧрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╣рд╛рде рдореЗрдВ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреБрдЫ рдкреВрд░реНрдгрд╛рдВрдХ рд╕реАрдорд╛ рддрдХ рд╕реАрдорд┐рдд рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдорд╛рди 0-255 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди 5-рдмрд┐рдЯ ╬▒ 5-рдмрд┐рдЯ рд░рдВрдЧ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ 50% рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреЗ рд╕рд╛рде рд░рдВрдЧ рдорд┐рд╢реНрд░рдг рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
 C = C1/2 + C2/2 

2 рд╕реЗ рдбрд┐рд╡реАрдЬрди рдХреЛ рдПрдХ рд╢рд┐рдлреНрдЯ рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
 C = (C1 >> 1) + (C2 >> 1) 

рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм рдЖрдк рдПрдХ рд╕реЗ рджреЛ рдкрд┐рдХреНрд╕реЗрд▓ рдорд┐рд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ:
 P = (R1 >> 1 + R2 >> 1) << 11 + (G1 >> 1 + G2 >> 1) << 5 + (B1 >> 1 + B2 >> 1) 

рд╣рдореЗрдВ рдорд┐рд▓рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрд╖реНрдардХреЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛:
 P = (P1 & 0xf7de) >> 1 + (P2 & 0xf7de) >> 1 

0xf7de рдХрд╛ рдПрдХ рдореБрдЦреМрдЯрд╛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд░рдВрдЧ рдШрдЯрдХ рдореЗрдВ 1 рджреНрд╡рд╛рд░рд╛ рдмрджрд▓рд╛рд╡ рд╕рд╣реА рд╣реИред рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ:
 [RRRR RGGG GGGB BBBB] = P [0RRR RRGG GGGG BBBB] = P >> 1 //         [RRRR RGGG GGGB BBBB] = P [1111 0111 1101 1110] = 0xf7de [RRRR 0GGG GG0B BBB0] = P & 0xf7de //      [0RRR R0GG GGG0 BBBB] = P & 0xf7de >> 1 

рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рд╕рдорд╛рди, рдЖрдк рдкрд┐рдХреНрд╕рд▓ 1 рд╕реЗ 3, 1 рд╕реЗ 7 рддрдХ рдорд┐рд╢реНрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдСрдкрд░реЗрд╢рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ... рд▓реЗрдХрд┐рди рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рд╡рд┐рдзрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкреНрд░рднрд╛рд╡реА рд╣реИ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рд╡рд┐рднрд╛рдЬрди рдЧреБрдгрди рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЧреБрдгрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ m-bit рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреЛ n-bit рд╕реЗ рдЧреБрдгрд╛ рдХрд░рдиреЗ рдкрд░, рд╣рдореЗрдВ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ рдЬреЛ m + n рдмрд┐рдЯреНрд╕ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдпрд╣реА рд╣реИ, рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд░рдВрдЧ рдХреЗ рд╕рд╛рдордиреЗ 5 рдмрд┐рдЯреНрд╕ рдХреЛ рдореБрдХреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдк рдкрд┐рдХреНрд╕реЗрд▓ рд░рдВрдЧреЛрдВ рдХреЛ рд╕рдорд╛рди рдФрд░ рд╡рд┐рд╖рдо рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрди рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рд╣рдо рдкреНрд░рддрд┐ рдкрд┐рдХреНрд╕реЗрд▓ 2 рдЧреБрдгрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЕрдЧрд▓реА рд╕рдореНрдорд┐рд╢реНрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЖрдП:
 #define Shift(p) ((p)>>5) #define OddCol(p) ((p) & 0x07E0F81F) #define EvenCol(p) ((p) & 0xF81F07E0) //      2  register unsigned int p1 = *dst; register unsigned int p2 = *(src++); //  4 ,    2   *(dst++) = OddCol( Shift(OddCol(p1)*a + OddCol(p2)*(32 - a)) ) | EvenCol( Shift(EvenCol(p1))*a + Shift(EvenCol(p2))*(32 - a) ); 

рдПрдХ рдФрд░ рдЧреБрдгрд╛ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╕реЗ? рдЖрдЗрдП рдХреЛрд╖реНрдардХ рдЦреЛрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдФрд░ рд╢рд░реНрддреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВ:
 C = (C1*╬▒ + C2*(32 - ╬▒)) >> 5 = (C1 - C2)*╬▒ >> 5 + C2 

рд▓реЗрдХрд┐рди рдХреЛрд╖реНрдардХреЛрдВ рдореЗрдВ рдПрдХ рдЛрдгрд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреА рд╣реИ, рдФрд░ рдЕрдВрдХрдЧрдгрд┐рдд рд╕рдВрдЪрд╛рд▓рди рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХрдореНрдкреНрдпреВрдЯреЗрд╢рди рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдлреЙрд░реНрдореВрд▓реЗ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЕрдзрд┐рдХрддрдо рд╕рдВрднрд╡ рдЬреЛрдбрд╝рдХрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдпреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдПрдВ:
 C = (C1 - C2 + 32 - 32)*╬▒ >> 5 + C2 = (C1 - C2 + 32)*╬▒ >> 5 + C2 - ╬▒ 

рдЗрд╕ рд╕реВрддреНрд░ рдФрд░ рд╕рдо рд╡рд┐рд╖рдо рд░рдВрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЪрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдорд┐рд╢реНрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░рддрд┐ рдкрд┐рдХреНрд╕реЗрд▓ рдХреЗрд╡рд▓ рдПрдХ рдЧреБрдгрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
 #define OddCol(p) ((p) & 0x07E0F81F) #define EvenCol(p) ((p) & 0xF81F07E0) register unsigned int p1 = *dst; register unsigned int p2 = *(src++); register unsigned int oddA = (a<<22) | (a<<11) | (a); register unsigned int evenA = (a<<27) | (a<<16) | (a<<6); register unsigned int oddP2 = OddCol(p2); register unsigned int evenP2 = EvenCol(p2); // 2    2  oddCol = (((OddCol(p1) - oddP2 + 0x08010020) * a) >> 5) + oddP2 - oddA; evenCol = ((( (EvenCol(p1)>>5) - (evenP2>>5) + 0x08010040) * a) + evenP2 - evenA ); *(dst++) = OddCol(oddCol) | EvenCol(evenCol); 

Source: https://habr.com/ru/post/In128773/


All Articles