рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ PHP рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЕрдВрддрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмреЙрдЯ рд╕реБрд░рдХреНрд╖рд╛

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореБрдЭреЗ рдмреЙрдЯ рд╕рдВрд░рдХреНрд╖рдг рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрдбрд╝рд╛, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рд▓реЛрдХрдкреНрд░рд┐рдп рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреБрдХреАрдЬрд╝ рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯрд┐рдВрдЧ рд▓рдЧ рд░рд╣реА рдереА, рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдирд╛ 15 рдорд┐рдирдЯ рдХреА рдмрд╛рдд рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╢реЛрдз рдХреЗ рдмрд╛рдж, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреМрди рд╕реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ php рддрдХ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдХрд╛рд░реНрдп рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реИ рдФрд░ рдмрд┐рдВрджреБ рдЯреЛрдкреА рдореЗрдВ рд╣реИред
рд▓реЗрдХрд┐рди рдпрд╣ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рдерд╛ред рдФрд░ рдпрджреНрдпрдкрд┐ рдЕрдВрдд рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рдЯреВрдЯ рдЧрдИ рдереА, рдпрд╣ 15 рдорд┐рдирдЯ рд╕реЗ рджреВрд░ рд╣реЛ рдЧрдпрд╛, рдФрд░ рд╕рдВрд░рдХреНрд╖рдг рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реА рдореЗрд░реЗ рд▓рд┐рдП рдирдпрд╛ рдФрд░ рдХрд╛рдлреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рдЧрдпрд╛ред

рддреЛ, рдкрд╣рд▓реЗ рдЪреАрдЬреЗрдВ рдкрд╣рд▓реЗред

рд╕рддрд╣ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг


рд╕рдВрд░рдХреНрд╖рдг рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
Index.php рд╕рд╛рдЗрдЯ рдХреЗ рдореБрдЦреНрдп рдкреГрд╖реНрда рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдХреБрдХреА рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХрд┐рд╕реА рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдЖрдЧрдВрддреБрдХ рдХреЗ рдЖрдИрдкреА рдкрддреЗ рд╕реЗ рдПрдХ рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рдПрдЧреАред
рдЕрдЧрд░ рдХреБрдХреА рдкреНрд░рд╕рд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ index.php рд╡рд┐рдЬрд╝рд┐рдЯрд░ рдХреЛ рджреВрд╕рд░реЗ рдкреЗрдЬ рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдХреБрдХреА рдХреЛ рд▓рд┐рдЦрддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдореБрдЦреНрдп рдкреГрд╖реНрда рдкрд░ рд╡рд╛рдкрд╕ рднреЗрдЬ рджреЗрддрд╛ рд╣реИред

CURL рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ GET рдФрд░ POST рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдорд┐рдд php рдмреЙрдЯ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ php рдкрд░ рд╣реИрд╢ рдЧрдгрдирд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдлрд┐рд░ рдЖрд╡рд╢реНрдпрдХ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдХреЛ рдЕрдиреБрд░реЛрдз рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╢рд╡ рдкрд░реАрдХреНрд╖рдг


рдЕрдм рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗред
рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ, рдФрд░ рдлрд╛рдпрд░рдмрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВред
рд╣рдо рдореБрдЦреНрдп рдкреГрд╖реНрда index.php рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдиреБрд░реЛрдз рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реЗрдбрд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред

рдкреНрд░рд╢реНрди:

рдкреНрд░рд╛рдкреНрдд
  http://example.com 


рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЗ рдкреНрд░рдореБрдЦреЛрдВ рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИред
рдФрд░ рдпрд╣рд╛рдБ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реЗрдбрд░ рд╣реИрдВ:

рд╕реНрдерд┐рддрд┐: 302 рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЪрд▓реЗ рдЧрдП

рдХрдиреЗрдХреНрд╢рди рдЬрд┐рдВрджрд╛ рд░рдЦрдирд╛
рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдкрд╛рда / html
рджрд┐рдирд╛рдВрдХ XXX GMT
рд╕реНрдерд╛рди
  http://example.com/govalidateyourself#98765:1234:11.22.33.44:/index.php 

рд╕рд░реНрд╡рд░ YTS / 1.20.0
рд╕реНрдерд╛рдирд╛рдВрддрд░рдг-рдПрдиреНрдХреЛрдбрд┐рдВрдЧ chunked


рдЙрд╕рдХреЗ рдмрд╛рдж, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣реЗрдбрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд╛рди рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реЗрдбрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ:

рд╕реНрд╡реАрдХрд╛рд░-рд░реЗрдВрдЬрд╕ рдмрд╛рдЗрдЯреНрд╕
рдХрдиреЗрдХреНрд╢рди рдЬрд┐рдВрджрд╛ рд░рдЦрдирд╛
рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдкрд╛рда / html; charset = utf-8
рджрд┐рдирд╛рдВрдХ XXX GMT
рдЕрдВрддрд┐рдо рд╕рдВрд╢реЛрдзрд┐рдд YYY GMT
рд╕рд░реНрд╡рд░ YTS / 1.20.0
рд╕реЗрдЯ-рдХреБрдХреА Addr = 1234: 11.22.33.44; рдкрде = /
рд╕реНрдерд╛рдирд╛рдВрддрд░рдг-рдПрдиреНрдХреЛрдбрд┐рдВрдЧ chunked


рдЬрд╣рд╛рдВ 11.22.33.44 рдореЗрд░рд╛ рдЖрдИрдкреА рдкрддрд╛ рд╣реИ, 1234 рдХреБрдЫ рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЧрдгрдирд╛ рддрд░реНрдХ рдЕрдЬреНрдЮрд╛рдд рд╣реИред

рдкреЗрдЬ рдореЗрдВ рд╣реА js рдХреЛрдб рдХрд╛ рд▓рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИ
  http://example2.com/validator/va.js 
рдФрд░ рд╢рд┐рд▓рд╛рд▓реЗрдЦ "рдиреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ"ред
рдмрд┐рдирд╛ js, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╣рдореЗрдВ рдЖрдЧреЗ рдирд╣реАрдВ рдЬрд╛рдиреЗ рджрд┐рдпрд╛ред

рд╕рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рджрд░реНрдЬ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд╛рд▓реВ рдХрд░реЗрдВ, рдХреБрдХреА рдХреЛ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрд░реЗрдВред
рдЕрдм рд╣рдо рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╕рддреНрдпрд╛рдкрди рдкреГрд╖реНрда рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рдмрд╛рдж рдХреНрдпрд╛ рд╣реЛрдЧрд╛ред

рдЗрд╕ рдмрд╛рд░ рд╕рд╛рдЗрдЯ рдХрд╛ рдореБрдЦреНрдп рдкреГрд╖реНрда рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдБ рдЕрдВрддрд┐рдо рдЕрдиреБрд░реЛрдз рдХрд╛ рд╢реАрд░реНрд╖рдХ рд╣реИ:

рдЯреЗрдХреНрд╕реНрдЯ / html, рдПрдкреНрд▓реАрдХреЗрд╢рди / xhtml + xml, рдПрдкреНрд▓реАрдХреЗрд╢рди / xml; q = 0.9, * / *; q = 0.8 рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ
рд╕реНрд╡реАрдХрд╛рд░-рдПрдиреНрдХреЛрдбрд┐рдВрдЧ gzip, рдЕрдкрд╕реНрдлреАрддрд┐
рд╕реНрд╡реАрдХрд╛рд░-рднрд╛рд╖рд╛ рд░реВ-рд░реВ, рд░реВ; q = 0.8, en-us; q = 0.5, en; q = 0.3
рдХрдиреЗрдХреНрд╢рди рдЬрд┐рдВрджрд╛ рд░рдЦрдирд╛
рдХреБрдХреА рдЬреЛрдбрд╝ = 5678: 11.22.33.44; urine = aabbccdd; v = 1
рдореЗрдЬрдмрд╛рди example.com
рд╕рдВрджрд░реНрднрд┐рдд
  http://example.com/govalidateyourself 

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдПрдЬреЗрдВрдЯ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЗ рдХреБрдЫ рдкреНрд░рдХрд╛рд░


рдкрд┐рдЫрд▓реЗ рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реЗ рд▓рдЧрд╛рддрд╛рд░ 1234 рдЗрд╕ рдмрд╛рд░ рдмрджрд▓рдХрд░ 5678 рд╣реЛ рдЧрдпрд╛, рдЖрдИрдкреА рдПрдбреНрд░реЗрд╕ рд╡рд╣реА рд░рд╣рд╛ред рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдпрд╣ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдФрд░ рдХреБрдХреА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдЕрдиреБрд░реЛрдз рдЖрдИрдбреА рд╣реИред рдареАрдХ рд╣реИ, рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рджреМрд░рд╛рди рдЗрд╕реЗ рдмрд╕ рдХреБрдХреАрдЬрд╝ рдореЗрдВ рд▓рд┐рдЦ рджреЗрдВред

рд▓реЗрдХрд┐рди рдкреЗрд╢рд╛рдм = рдПрдмрдХреНрд░реЗрдбрдб рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдЪреВрдВрдХрд┐ рдпрд╣ рд╕рд░реНрд╡рд░ рд╕реЗ рдирд╣реАрдВ рдЖрдпрд╛ рдерд╛, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рд╣рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рдерд╛, рдФрд░ рдХреБрдЫ рдореБрдЭреЗ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡реИрдЬ рдХрд╛ рдХрд╛рдо рд╣реИред

рдпрд╣ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИред рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдПрдХ рдкреВрд░реНрдг рджрд▓рджрд▓, рдЬреЛ рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реИ:

if(document.cookie==""){document.write("Cookies error")}else{function poo(a,b){var c=a.length,d=b^c,e=0,f;while(c>=4){f=a.charCodeAt(e)&255|(a.charCodeAt(++e)&255)<<8|(a.charCodeAt(++e)&255)<<16|(a.charCodeAt(++e)&255)<<24;f=(f&65535)*1540483477+(((f>>>16)*1540483477&65535)<<16);f^=f>>>24;f=(f&65535)*1540483477+(((f>>>16)*1540483477&65535)<<16);d=(d&65535)*1540483477+(((d>>>16)*1540483477&65535)<<16)^f;c-=4;++e}switch(c){case 3:d^=(a.charCodeAt(e+2)&255)<<16;case 2:d^=(a.charCodeAt(e+1)&255)<<8;case 1:d^=a.charCodeAt(e)&255;d=(d&65535)*1540483477+(((d>>>16)*1540483477&65535)<<16)}d^=d>>>13;d=(d&65535)*1540483477+(((d>>>16)*1540483477&65535)<<16);d^=d>>>15;return d>>>0}function coo(a){var b=a+"=";var c=document.cookie.split(";");for(var d=0;d<c.length;d++){var e=c[d];while(e.charAt(0)==" ")e=e.substring(1,e.length);if(e.indexOf(b)==0)return e.substring(b.length,e.length)}return null}var dt=new Date,expiryTime=dt.setTime(dt.getTime()+1000e5);var dt2=new Date,expiryTime=dt2.setTime(dt2.getTime()+2e4);var addr=window.location.hash.split(":")[2];var a=poo(addr,47).toString(16);for(var i=0,z="";i<8-a.length;i++)z+="0";a=z+a;a=a.substring(6)+a.substring(4,6)+a.substring(2,4)+a.substring(0,2);var refurl=window.location.hash.split(":")[3];document.cookie="urine="+a+"; expires="+dt.toGMTString()+"; path=/";if(!coo("v")){document.cookie="v=1; expires="+dt2.toGMTString()+"; path=/";setTimeout("window.location = refurl",300)}else if(coo("v")<3){var c=coo("v");c++;document.cookie="v="+c+"; expires="+dt2.toGMTString()+"; path=/";setTimeout("window.location = refurl",300)}else if(coo("v")>=3){document.write("Too many redirects from: "+document.referrer)}} 


рд▓реЗрдХрд┐рди рдереЛрдбрд╝рд╛ рдзреИрд░реНрдп, рдФрд░ рд╕реНрд╡рд░реВрдкрдг рдХреЗ рдмрд╛рдж рд╕рдм рдХреБрдЫ рдкрдардиреАрдп рдФрд░ рдХрд╛рдлреА рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
рджреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЙрдУ () рдФрд░ рдкреВ () рд╣реИрдВ, рдФрд░ рдХреЛрдб рдЬреЛ рд╣рдореЗрдВ рдХреБрдХреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЙрд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЗрдВрдбреЗрдХреНрд╕ .php рдкрд░ рд╡рд╛рдкрд╕ рднреЗрдЬрддреЗ рд╣реИрдВред

рдлрд╝рдВрдХреНрд╢рди рд╕рд╣ () рд╡рд┐рд╢реЗрд╖ рд░реБрдЪрд┐ рдХрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХреБрдХреАрдЬрд╝ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде php рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдФрд░ рдпрд╣рд╛рдБ рдкреВ () рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЬреЛ рдореВрддреНрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдорд╛рдирддрд╛ рд╣реИ:

 function poo( a, b ) { var c = a.length, d = b^c, e = 0, f; while( c >= 4 ) { f = a.charCodeAt( e ) & 255 | ( a.charCodeAt( ++e ) & 255 ) << 8 | ( a.charCodeAt( ++e ) & 255 ) << 16 | ( a.charCodeAt( ++e ) & 255 ) << 24; f = ( f & 65535 ) * 1540483477 + ( ( ( f >>> 16 ) * 1540483477 & 65535 ) << 16 ); f ^= f >>> 24; f = ( f & 65535 ) * 1540483477 + ( ( ( f >>> 16 ) * 1540483477 & 65535 ) << 16 ); d = ( d & 65535 ) * 1540483477 + ( ( ( d >>> 16 ) * 1540483477 & 65535 ) << 16 )^f; c -= 4; ++e } switch( c ) { case 3: d ^= ( a.charCodeAt( e + 2 ) & 255 ) << 16; case 2: d ^= ( a.charCodeAt( e + 1 ) & 255 ) << 8; case 1: d ^= a.charCodeAt( e ) & 255; d = ( d & 65535 ) * 1540483477 + ( ( ( d >>> 16 ) * 1540483477 & 65535 ) << 16 ) } d ^= d >>> 13; d = ( d & 65535 ) * 1540483477 + ( ( ( d >>> 16 ) * 1540483477 & 65535 ) << 16 ); d ^= d >>> 15; return d >>> 0 } 


рдХреЙрд▓ рдХреЗ рджреМрд░рд╛рди, рдирд┐рдореНрди рдкреИрд░рд╛рдореАрдЯрд░ рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:

 var a = poo( addr, 47 ).toString( 16 ); 


a - рдпрд╣ рдореВрддреНрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рддреИрдпрд╛рд░ рдореВрд▓реНрдп рд╣реИ (рдлрд┐рд░ рдпрд╣ рдХреЗрд╡рд▓ рд╢реВрдиреНрдп рд╕реЗ рдЧрджреНрджреЗрджрд╛рд░ рд╣реИ рдпрджрд┐ рдЗрд╕рдореЗрдВ 8% рд╕реЗ рдХрдо рд╣реИ)ред
addr рд╣рдорд╛рд░рд╛ рдЖрдИрдкреА рдПрдбреНрд░реЗрд╕ 11.22.33.44 рд╣реИред
47 рдПрдХ рд╕реНрдерд┐рд░ рд╣реИред

рдЕрдм рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред
рдЗрд╕ рд╕реБрд░рдХреНрд╖рд╛ рд╕реЗ рдЯреВрдЯрдиреЗ рд╡рд╛рд▓реА php рдмреЙрдЯ рдХреЛ рдирд┐рдореНрди рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

1. GET рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛
  http://example.com/index.php 
рд╣рдордиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ:

 curl_setopt( $ch, CURLOPT_HEADER, 1 ); 


рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╣рдо рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реНрд╡рдд: рд╕рдВрдХреНрд░рдордг рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВ:

 curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1 ); 


рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрд░реНрд▓ рд╕реНрд╡рдпрдВ рдирдП рд╕реНрдерд╛рди рдкрд░ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╣рдореЗрдВ рджреВрд╕рд░рд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рд╣рдо рджреЛрдиреЛрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╣реЗрдбрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдкрд╣рд▓рд╛ рд╣реЗрдбрд░ рд╕реНрдерд╛рди рд╣реЛрдЧрд╛, рджреВрд╕рд░реЗ рдореЗрдВ - рдкрд╣рд▓рд╛ рдЖрдИрдбреА рдЬрд┐рд╕рдореЗрдВ рдЕрдиреБрд░реЛрдз рдЖрдИрдбреА рд╣реЛрдЧреАред

2. рд╣реЗрдбрд░ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВ, рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдЖрдИрдбреА рдФрд░ рдЕрдкрдирд╛ рдЖрдИрдкреА рдПрдбреНрд░реЗрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рдпрджрд┐ рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕реЗ рддреБрд░рдВрдд рдирд╣реАрдВ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреГрдкрдпрд╛ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ)ред
рд╣рдо рдореВрддреНрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдкрдврд╝рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдХреБрдХреА рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдФрд░ index.php рдкрд░ рдПрдХ рдирдпрд╛ GET рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╣реИрдВред рд╕рдВрд░рдХреНрд╖рдг рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдПрдХ рдХреБрдХреА рдЗрд╕ рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 $headers = array( "Cookie: " . $cookie_str, // "addr=5678:11.22.33.44; urine=aabbccdd; v=1" /*    / */ ); curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers ); 


рддреЛ, рдЕрдВрддрд┐рдо рд╕реНрдкрд░реНрд╢ рдмрдирд╛ рд╣реБрдЖ рд╣реИ - рдореВрддреНрд░ рдХреА рдЧрдгрдирд╛ред

рдЬреЗрд▓реА


рдЖрдкрдХреЛ рдмрд╕ php рдХреЛ poo () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Google рдХреЛ рдереЛрдбрд╝рд╛-рд╕рд╛ рд▓рд┐рдЦреЗрдВ рдФрд░ js- рдлрд╝рдВрдХреНрд╢рдВрд╕ рдФрд░ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЗ рд▓рд┐рдП рдПрдирд╛рд▓реЙрдЧреНрд╕ рд▓рд┐рдЦреЗрдВ рдЬреЛ php рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ:

 // php js functions function charCodeAt( $str, $i ) { return ord( substr( $str, $i, 1 ) ); } // char at function charAt( $str, $i ) { return $str{ $i }; } //unsigned shift right (js >>>) function zeroFill( $a, $b ) { $z = hexdec( 80000000 ); if( $z & $a ) { $a = ( $a >> 1 ); $a &= ( ~ $z ); $a |= 0x40000000; $a = ( $a >> ( $b - 1 ) ); } else { $a = ( $a >> $b ); } return $a; } 


рдЕрдм рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ, рдФрд░ рдЖрдк рдкреВ () рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

 // function poo( $a, $b ) { $c = strlen( $a ); $d = $b ^ $c; $e = 0; $f = ''; while( $c >= 4 ) { $f = charCodeAt( $a, $e ) & 255 | ( charCodeAt( $a, ++$e ) & 255 ) << 8 | ( charCodeAt( $a, ++$e ) & 255 ) << 16 | ( charCodeAt( $a, ++$e ) & 255 ) << 24; $f = ( $f & 65535 ) * 1540483477 + ( ( ( zeroFill( $f, 16 ) ) * 1540483477 & 65535 ) << 16 ); $f ^= zeroFill( $f, 24 ); $f = ( $f & 65535 ) * 1540483477 + ( ( ( zeroFill( $f, 16 ) ) * 1540483477 & 65535 ) << 16 ); $d = ( $d & 65535 ) * 1540483477 + ( ( ( zeroFill( $d, 16 ) ) * 1540483477 & 65535 ) << 16 )^$f; $c -= 4; ++$e; } switch( $c ) { case 3: $d ^= ( charCodeAt( $a, $e + 2 ) & 255 ) << 16; case 2: $d ^= ( charCodeAt( $a, $e + 1 ) & 255 ) << 8; case 1: $d ^= charCodeAt( $a, $e ) & 255; $d = ( $d & 65535 ) * 1540483477 + ( ( ( zeroFill( $d, 16 ) ) * 1540483477 & 65535 ) << 16 ); } $d ^= zeroFill( $d, 13 ); $d = ( $d & 65535 ) * 1540483477 + ( ( ( zeroFill( $d, 16 ) ) * 1540483477 & 65535 ) << 16 ); $d ^= zeroFill( $d, 15 ); return zeroFill( $d, 0 ); } 


рд╣рдо рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ, рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рддреЛрдбрд╝рддреЗ рд╣реИрдВ - js рдФрд░ php рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ рд╣реИрдВред
рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ?
рдЧрдгрдирд╛ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рдмрд╛рдж рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП js рдФрд░ php рдореЗрдВ рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╡рд┐рдкрд░реАрдд рд╕рд░рд▓ рдЕрдВрдХрдЧрдгрд┐рддреАрдп php рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реИ, рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐

 ( 18220025198660 & 65535 ) * 1540483477 + ( ( ( 18220025198660 >>> 16 ) * 1540483477 & 65535 ) << 16 ); 


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ 221886241596 36 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛, рдФрд░ php рдореЗрдВ рд╕рдорд╛рди

 ( 18220025198660 & 65535 ) * 1540483477 + ( ( ( zeroFill( 18220025198660, 16 ) ) * 1540483477 & 65535 ) << 16 ) 


рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╕рдВрдЦреНрдпрд╛ 221886241596 00 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛

рдЬрдм рдХрдИ рд╕рдорд╛рди рд╕реВрддреНрд░ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЧрдгрдирд╛ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рддреНрд░реБрдЯрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдо рджреЗрддреА рд╣реИред рдХреБрдЫ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ php рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рдХрд╛рд░ int рдХрд╛ рд╣реИ рдФрд░ рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп 4 рдмрд┐рд▓рд┐рдпрди (32-рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдкрд░) рдХреЛ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИред

рдкрд░реНрд▓ рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред

Php рдореЗрдВ рд╕рдЯреАрдХ рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ BC рдЧрдгрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рд╕рд╛рде рд╣реА, рдЖрдкрдХреЛ рдХрд╛рд╕реНрдЯ рдХреЛ рдлреНрд▓реЛрдЯ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

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

 // function poo( $a, $b ) { $c = strlen( $a ); $d = $b ^ $c; $e = 0; $f = ''; while( $c >= 4 ) { $f = charCodeAt( $a, $e ) & 255 | ( charCodeAt( $a, ++$e ) & 255 ) << 8 | ( charCodeAt( $a, ++$e ) & 255 ) << 16 | ( charCodeAt( $a, ++$e ) & 255 ) << 24; $f = bcadd( bcmul( $f & 65535, 1540483477 ), ( floatval( ( bcmul( ( zeroFill( $f, 16 ) ), ( 1540483477 & 65535 ) ) ) ) << 16 ) ); $xx = zeroFill( $f, 24 ); $f = floatval( $f ) ^ floatval( $xx ); // $f = floatval( $f ); $f1 = bcmul( $f & 65535, 1540483477 ); $f2 = ( floatval( ( bcmul( ( zeroFill( $f, 16 ) ), ( 1540483477 & 65535 ) ) ) ) << 16 ); $f = bcadd( $f1, $f2 ); $d1 = bcmul( $d & 65535, 1540483477 ); $d2 = ( floatval( ( bcmul( ( zeroFill( $d, 16 ) ), ( 1540483477 & 65535 ) ) ) ) << 16 ); $d = bcadd( $d1, $d2 ); $d = floatval( $d ) ^ floatval( $f ); $c -= 4; ++$e; } switch( $c ) { case 3: $d = floatval( $d ) ^ ( ( charCodeAt( $a, $e + 2 ) & 255 ) << 16 ); case 2: $d = floatval( $d ) ^ ( ( charCodeAt( $a, $e + 1 ) & 255 ) << 8 ); case 1: $d = floatval( $d ) ^ ( charCodeAt( $a, $e ) & 255 ); $d1 = bcmul( $d & 65535, 1540483477 ); $d2 = ( floatval( ( bcmul( ( zeroFill( $d, 16 ) ), ( 1540483477 & 65535 ) ) ) ) << 16 ); $d = bcadd( $d1, $d2 ); } $d = floatval( $d ) ^ zeroFill( $d, 13 ); $d1 = bcmul( floatval( floatval( $d ) & 65535 ), 1540483477 ); $dd21 = zeroFill( $d, 16 ); $dd22 = floatval( bcmul( $dd21, 1540483477 & 65535 ) ); $dd23 = floatval( $dd22 << 16 ); $d2 = $dd23; $d = bcadd( $d1, $d2 ); $d = floatval( $d ) ^ zeroFill( $d, 15 ); if( $d < 0 ) { $res = bindec( decbin( ~0 ) ) - abs( $d ) + 1; } else { $res = $d; } return $res; } 


рдФрд░ рд╢реВрдиреНрдпрдлрд┐рд▓ () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП, рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

 $a = floatval( $a ); 


рдирд┐рд╖реНрдХрд░реНрд╖


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

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

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


All Articles