React: рдХрд┐рди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рдЕрд╕реНрдерд┐рд░_рд╢реЛрд▓реНрдб рдпреАрд▓реНрдб рд╕рдЪ рд▓реМрдЯреЗрдЧрд╛я╝Я

рдХреЛ рдирд┐рд░реНрдорд┐рдд 8 рдлрд╝рд░ре░ 2019  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: facebook/react

рд╢реЗрдбреНрдпреВрд▓рд░.рдЬреЗрдПрд╕ рдореЗрдВ,

function unstable_shouldYield() {
  return (
    !currentDidTimeout &&
    ((firstCallbackNode !== null &&
      firstCallbackNode.expirationTime < currentExpirationTime) ||
      shouldYieldToHost())
  );
}

рдЕрд╕реНрдерд┐рд░_рд╢реЛрд▓реНрдб рдпреАрд▓реНрдб () рд╕рд╣реА рд╣реИ рдЬрдм currentDidTimeout рдЧрд▓рдд рд╣реИ рдФрд░ shouldYieldToHost () рд╕рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ?

shouldYieldToHost = function() {
  return frameDeadline <= getCurrentTime();
};

shouldYieldToHost() рд░рд┐рдЯрд░реНрди рдЯреНрд░реВ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрд╕ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдЕрд╡рдзрд┐ рдореЗрдВ рдХреЛрдИ рд╕рдордп рдирд╣реАрдВ рдмрдЪрд╛ рд╣реИ
currentDidTimeout рдЧрд▓рдд рд╣реИ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╢реЗрдбреНрдпреВрд▓ рдЯрд╛рдЗрдордЖрдЙрдЯ рдирд╣реАрдВ рд╣реИ
рдЙрдирдХреЗ рдмреАрдЪ рдХреНрдпрд╛ рд╕рдВрдмрдВрдз рд╣реИ, рдЕрд╕реНрдерд┐рд░_рд╢реЛрд▓реНрдб рдпреАрд▓реНрдб () рдЙрди рдкрд░ рдХреНрдпреЛрдВ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╣рдо рд╕рдордп-рд╕рдордп рдкрд░ рдореЗрдЬрдмрд╛рди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЖрддреЗ рд╣реИрдВ - рдкреНрд░рддреНрдпреЗрдХ 16ms рдпрд╛ рддреЛ - рдмреНрд░рд╛рдЙрдЬрд╝ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рд╕рд╣рд┐рдд рдЖрдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдПред frameDeadline рд╡рд╣ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ (рдореВрд▓ рд░реВрдк рд╕реЗ now() + 16ms рдЬреИрд╕реЗ рдХреБрдЫ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдЗрд╕рд▓рд┐рдП shouldYieldToHost рдЙрд╕ рд╕рдордп рдмреАрдд рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕рд╣реА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рд╣рдо requestIdleCallback рдФрд░ requestAnimationFrame рдХреЗ рдХреБрдЫ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рдЕрдЧрд▓реЗ рдХрд╛рд░реНрдп рдХреЛ рдЬрд▓реНрдж рд╣реА рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХреЗрдВред

рдЖрджрд░реНрд╢ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рдЗрди рдЫреЛрдЯреЗ 16ms рд╕реНрд▓рд╛рдЗрд╕ рдореЗрдВ рд╕рднреА рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рд╣реЛ рд░рд╣реА рд╣реИрдВ, рддреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛рд░реНрдп "рднреВрдЦрд╛" рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЫреЛрдЯреЗ рд╕реНрд▓рд╛рдЗрд╕ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рджреВрд╕рд░рд╛ рдЪреЗрдХ рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рд▓рдВрдмрд┐рдд рд░реЗрдВрдбрд░ рдпрд╛ рд╕реНрдЯреЗрдЯ рдЕрдкрдбреЗрдЯ рдореЗрдВ "рд╕рдорд╛рдкреНрддрд┐ рд╕рдордп" рд╣реЛрддрд╛ рд╣реИ (рдЖрдорддреМрд░ рдкрд░ рдХрд╣реАрдВ 100ms рд╕реЗ 5000ms рддрдХ) - рдпрджрд┐ рд╡рд╣ рд╕рдордп рд░реЗрдВрдбрд░ рдлрд┐рдирд┐рд╢рд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдПрдХ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдореЛрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рд╡рд╣ рдЕрдкрдбреЗрдЯ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ред рдпрд╣ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЕрдкрдбреЗрдЯ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛ рдЬрд╛рдПрдВред

рд╣рдо рдЙрд╕реА рд╕рдорд╛рдкреНрддрд┐ рд╕рдордп рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЯрд╛рдЗрдорд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рд╕рд╛рде)ред рдпрджрд┐ рд╡рд╣ рдЯрд╛рдЗрдорд░ рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдХрд╛рд░реНрдп рдХреЛ рд╕рдордХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ currentDidTimeout рд╕рддреНрдп рдкрд░ рд╕реЗрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрдкрдЬ рдирд╣реАрдВ рджреЗрдВрдЧреЗред

рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╣рдо рдПрдХ рдирдП isInputPending рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдкреАрдЖрдИ (https://github.com/WICG/is-input-pending) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рд░реНрдп рдЬрд╛рд░реА рд░рдЦ рд╕рдХреЗрдВ рдФрд░ рдХреЗрд╡рд▓ рддрднреА рдЙрдкрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдВ рдЬрдм рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рд╣реЛ , рд╣рдореЗрд╢рд╛ рд╣рд░ 16ms рдкрд░ рдЙрдкрдЬ рджреЗрдиреЗ рдХреЗ рдмрдЬрд╛рдпред

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рдо рд╕рдордп-рд╕рдордп рдкрд░ рдореЗрдЬрдмрд╛рди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЖрддреЗ рд╣реИрдВ - рдкреНрд░рддреНрдпреЗрдХ 16ms рдпрд╛ рддреЛ - рдмреНрд░рд╛рдЙрдЬрд╝ рдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рд╕рд╣рд┐рдд рдЖрдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдПред frameDeadline рд╡рд╣ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ (рдореВрд▓ рд░реВрдк рд╕реЗ now() + 16ms рдЬреИрд╕реЗ рдХреБрдЫ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдЗрд╕рд▓рд┐рдП shouldYieldToHost рдЙрд╕ рд╕рдордп рдмреАрдд рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕рд╣реА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рд╣рдо requestIdleCallback рдФрд░ requestAnimationFrame рдХреЗ рдХреБрдЫ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рдЕрдЧрд▓реЗ рдХрд╛рд░реНрдп рдХреЛ рдЬрд▓реНрдж рд╣реА рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХреЗрдВред

рдЖрджрд░реНрд╢ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рдЗрди рдЫреЛрдЯреЗ 16ms рд╕реНрд▓рд╛рдЗрд╕ рдореЗрдВ рд╕рднреА рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рд╣реЛ рд░рд╣реА рд╣реИрдВ, рддреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛рд░реНрдп "рднреВрдЦрд╛" рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЫреЛрдЯреЗ рд╕реНрд▓рд╛рдЗрд╕ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рджреВрд╕рд░рд╛ рдЪреЗрдХ рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рд▓рдВрдмрд┐рдд рд░реЗрдВрдбрд░ рдпрд╛ рд╕реНрдЯреЗрдЯ рдЕрдкрдбреЗрдЯ рдореЗрдВ "рд╕рдорд╛рдкреНрддрд┐ рд╕рдордп" рд╣реЛрддрд╛ рд╣реИ (рдЖрдорддреМрд░ рдкрд░ рдХрд╣реАрдВ 100ms рд╕реЗ 5000ms рддрдХ) - рдпрджрд┐ рд╡рд╣ рд╕рдордп рд░реЗрдВрдбрд░ рдлрд┐рдирд┐рд╢рд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдПрдХ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдореЛрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рд╡рд╣ рдЕрдкрдбреЗрдЯ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ред рдпрд╣ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЕрдкрдбреЗрдЯ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛ рдЬрд╛рдПрдВред

рд╣рдо рдЙрд╕реА рд╕рдорд╛рдкреНрддрд┐ рд╕рдордп рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЯрд╛рдЗрдорд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рд╕рд╛рде)ред рдпрджрд┐ рд╡рд╣ рдЯрд╛рдЗрдорд░ рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдХрд╛рд░реНрдп рдХреЛ рд╕рдордХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ currentDidTimeout рд╕рддреНрдп рдкрд░ рд╕реЗрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрдкрдЬ рдирд╣реАрдВ рджреЗрдВрдЧреЗред

рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рд╣рдо рдПрдХ рдирдП isInputPending рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдкреАрдЖрдИ (https://github.com/WICG/is-input-pending) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рд░реНрдп рдЬрд╛рд░реА рд░рдЦ рд╕рдХреЗрдВ рдФрд░ рдХреЗрд╡рд▓ рддрднреА рдЙрдкрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдВ рдЬрдм рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рд╣реЛ , рд╣рдореЗрд╢рд╛ рд╣рд░ 16ms рдкрд░ рдЙрдкрдЬ рджреЗрдиреЗ рдХреЗ рдмрдЬрд╛рдпред

рдЬрд╡рд╛рдм рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж
рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдХреБрдЫ рдкреНрд░рд╢реНрди рд╣реИрдВ,

  1. рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ unstable_shouldYield() рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╢реЗрдбреНрдпреВрд▓ рдореЗрдВ рдХрд╛рдо рдмрд╛рдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИ?
  2. рдХреНрдпрд╛ "16ms" activeFrameTime рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ?
  3. firstCallbackNode.expirationTime < currentExpirationTime рдХрдм рд╕рд╣реА рд╣реЛрдЧрд╛? рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд▓реЗ рдХрд╛рдо рдХреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкрд┐рдЫрд▓реЗ рд╡рд╛рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИ?
  1. рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд╛рд░реНрдп рдХреЛ рдЕрд╕реНрдерд┐рд░_рд╢реЛрд▓реНрдб рдпреАрд▓реНрдб () рдХреЛ рдЕрдХреНрд╕рд░ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред (рд╣рдо рдЗрд╕реЗ рдкреЗрдбрд╝ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЗ рдмрд╛рдж рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдХрд╣рддреЗ рд╣реИрдВред) рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдпрд╣ рдЭреВрдареА рд╡рд╛рдкрд╕реА рдХрд░реЗрдЧрд╛ (рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЪрд▓рддреЗ рд░рд╣реЗрдВ) рд▓реЗрдХрд┐рди рдЬрдм рдпрд╣ рд╕рдЪ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛ рд░реЛрдХрдирд╛ рд╣реЛрдЧрд╛ред

  2. рд╣рд╛рдБред

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

рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджредрддреБрдореНрд╣рд╛рд░реЗ рд▓рд┐рдП рд╡рд╛рдХрдИ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

kocokolo picture kocokolo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

framerate picture framerate  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jmullo picture jmullo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bloodyowl picture bloodyowl  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Prinzhorn picture Prinzhorn  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ