ΠΡΡΡΠ°ΠΆΡΠ²Π°ΡΠΈ ΠΎΠ΄ Π£Π½ΠΈΠ²Π΅ΡΠ·ΠΈΡΠ΅ΡΠΎΡ Π‘ΡΠ΅Π½ΡΠΎΡΠ΄, Π£Π‘ Π‘Π°Π½ ΠΠΈΠ΅Π³ΠΎ ΠΈ Π£Π½ΠΈΠ²Π΅ΡΠ·ΠΈΡΠ΅ΡΠΎΡ Π²ΠΎ Π’Π΅ΠΊΡΠ°Ρ Π²ΠΎ ΠΡΡΠΈΠ½ ΡΠ°Π·Π²ΠΈΠ΅Π½Π° Π°Π»Π°ΡΠΊΠΈ RLBox, ΠΊΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΊΠ°ΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ ΡΠ»ΠΎΡ Π·Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΠ° Π·Π° Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠΈ Π²ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΡΠ΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ. RLBox ΠΈΠΌΠ° Π·Π° ΡΠ΅Π» Π΄Π° Π³ΠΎ ΡΠ΅ΡΠΈ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½ΠΎΡΠΎ ΠΏΡΠ°ΡΠ°ΡΠ΅ Π½Π° Π½Π΅Π΄ΠΎΠ²Π΅ΡΠ»ΠΈΠ²ΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΎΠ΄ ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ ΠΊΠΎΠΈ Π½Π΅ ΡΠ΅ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅, Π½ΠΎ ΠΏΡΠΎΠΏΡΡΡΠΈ Π²ΠΎ ΠΊΠΎΠΈ Π±ΠΈ ΠΌΠΎΠΆΠ΅Π»Π΅ Π΄Π° Π³ΠΎ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΠΈΡΠ°Π°Ρ Π³Π»Π°Π²Π½ΠΈΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΠΎΠΌΠΏΠ°Π½ΠΈΡΠ°ΡΠ° ΠΠΎΠ·ΠΈΠ»Π° ΠΏΠ»Π°Π½ΠΎΠ²ΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π³ΠΎ RLBox Π²ΠΎ ΠΈΠ·Π³ΡΠ°Π΄Π±ΠΈΡΠ΅ Π½Π° Linux Π½Π° Firefox 74 ΠΈ macOS ΠΈΠ·Π³ΡΠ°Π΄Π±ΠΈΡΠ΅ Π½Π° Firefox 75 Π·Π° Π΄Π° Π³ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π³ΡΠ°ΡΠΈΡΠΠ΄Π³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° ΡΠ΅Π½Π΄Π΅ΡΠΈΡΠ°ΡΠ΅ ΡΠΎΠ½ΡΠΎΠ²ΠΈ. ΠΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅, RLBox Π½Π΅ Π΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅Π½ Π·Π° Firefox ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π°Ρ ΡΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ. Π‘Π»ΡΡΡΠ²Π°ΡΠ° RLBox ΡΠΈΡΠ΅ΡΠ΅ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° MIT. RLBox ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° Linux ΠΈ macOS ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ°ΡΠ° Π·Π° Windows ΡΠ΅ ΠΎΡΠ΅ΠΊΡΠ²Π° ΠΏΠΎΠ΄ΠΎΡΠ½Π°.
ΠΠ΅Ρ
Π°Π½ΠΈΠ·Π°ΠΌ Π Π°Π±ΠΎΡΠ°ΡΠ° Π½Π° RLBox ΡΠ΅ ΡΠ²Π΅Π΄ΡΠ²Π° Π½Π° ΠΊΠΎΠΌΠΏΠ°ΡΠ»ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΊΠΎΠ΄ΠΎΡ C / C ++ Π½Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π²ΠΎ ΡΡΠ΅Π΄Π΅Π½ ΠΊΠΎΠ΄ WebAssembly Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ, ΠΊΠΎΡ ΠΏΠΎΡΠΎΠ° ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΠΈΡΠ° ΠΊΠ°ΠΊΠΎ ΠΌΠΎΠ΄ΡΠ» WebAssembly, ΡΠΈΠΈΡΡΠΎ Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈ ΡΠ΅ ΠΏΠΎΡΡΠ°Π²Π΅Π½ΠΈ ΡΠ°ΠΌΠΎ Π²ΠΎ ΠΎΠ΄Π½ΠΎΡ Π½Π° ΠΎΠ²ΠΎΡ ΠΌΠΎΠ΄ΡΠ» ( Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π½ΠΈΠ·ΠΈ Π½Π΅ΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡΠ²ΠΎΡΠΈ ΠΌΡΠ΅ΠΆΠ΅Π½ ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊ ΠΈΠ»ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°) . ΠΠΎΠ½Π²Π΅ΡΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄ΠΎΡ C/C++ Π²ΠΎ WebAssembly ΡΠ΅ Π²ΡΡΠΈ ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π²Π°ΡΠΈ-ΡΠ΄ΠΊ.
ΠΠ° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅, ΠΌΠΎΠ΄ΡΠ»ΠΎΡ WebAssembly ΡΠ΅ ΠΊΠΎΠΌΠΏΠ°ΡΠ»ΠΈΡΠ° Π²ΠΎ ΠΌΠ°ΡΡΠΈΠ½ ΠΊΠΎΠ΄ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΠΊΠΎΠΌΠΏΠ°ΡΠ»Π΅Ρ ΠΡΡΠ΅Ρ ΠΈ ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ ΠΏΠΎΡΠ΅Π±Π΅Π½ βΠ½Π°Π½ΠΎΠΏΡΠΎΡΠ΅Ρβ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ ΠΎΠ΄ ΠΎΡΡΠ°ΡΠΎΠΊΠΎΡ ΠΎΠ΄ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°. ΠΠΎΠΌΠΏΠ°ΡΠ»Π΅ΡΠΎΡ Lucet ΡΠ΅ Π±Π°Π·ΠΈΡΠ° Π½Π° ΠΈΡΡΠΈΠΎΡ ΠΊΠΎΠ΄ ΠΊΠ°ΠΊΠΎ ΠΈ JIT ΠΌΠΎΡΠΎΡΠΎΡ ΠΡΠ΅ΡΠ½Π»ΠΈΡΡΠ¨ΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΎΠ΄ Firefox Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° WebAssembly.
Π‘ΠΊΠ»ΠΎΠΏΠ΅Π½ΠΈΠΎΡ ΠΌΠΎΠ΄ΡΠ» ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ ΠΏΠΎΡΠ΅Π±Π½Π° ΠΎΠ±Π»Π°ΡΡ Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° ΠΈ Π½Π΅ΠΌΠ° ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΠΎΡΡΠ°ΡΠΎΠΊΠΎΡ ΠΎΠ΄ Π°Π΄ΡΠ΅ΡΠ½ΠΈΠΎΡ ΠΏΡΠΎΡΡΠΎΡ. ΠΠΊΠΎ ΡΠ°Π½Π»ΠΈΠ²ΠΎΡΡΠ° ΡΠ΅ Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠΈΡΠ° Π²ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ°, Π½Π°ΠΏΠ°ΡΠ°ΡΠΎΡ ΡΠ΅ Π±ΠΈΠ΄Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΠΈ Π½Π΅ΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΈΡΡΠ°ΠΏΠΈ Π΄ΠΎ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠΊΠΈΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° Π³Π»Π°Π²Π½ΠΈΠΎΡ ΠΏΡΠΎΡΠ΅Ρ ΠΈΠ»ΠΈ Π΄Π° ΡΠ° ΠΏΡΠ΅Π½Π΅ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π°ΡΠ° Π½Π°Π΄Π²ΠΎΡ ΠΎΠ΄ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½Π°ΡΠ° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°.
ΠΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅, Π½Π° Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ API, ΡΡΠΎ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π²ΠΎ ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΠ°. Π Π°ΠΊΡΠ²Π°ΡΠΈΡΠ΅ Π½Π° WebAssembly Π½Π΅ Π±Π°ΡΠ°Π°Ρ ΡΠ΅ΡΠΈΡΠΈ Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ°ΡΠ° ΡΠΎ Π½ΠΈΠ² Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠ±Π°Π²Π½Π° ΠΎΠ΄ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°ΡΠ΅ΡΠΎ ΠΎΠ±ΠΈΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ (ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Π°Ρ Π²ΠΎ ΡΠΎΡΠΌΠ° Π½Π° ΠΌΠ°ΡΡΠΈΠ½ ΠΊΠΎΠ΄, Π° Π½Π°Π΄Π·Π΅ΠΌΠ½ΠΈΡΠ΅ ΡΡΠΎΡΠΎΡΠΈ ΡΠ΅ ΡΠ°Π²ΡΠ²Π°Π°Ρ ΡΠ°ΠΌΠΎ ΠΊΠΎΠ³Π° ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ°Π°Ρ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°Π°Ρ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ° ΡΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°) . ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°Π°Ρ ΠΈ ΠΌΠΎΡΠ° Π΄Π° ΡΠ΅ ΠΏΡΠΈΡΡΠ°ΠΏΠΈ ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅
invoke_sandbox_function() ΡΠ»ΠΎΡ.
ΠΠ° Π²ΠΎΠ·Π²ΡΠ°Ρ, Π°ΠΊΠΎ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ²ΠΈΠΊΠ°Π°Ρ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ°, ΠΎΠ²ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΡΠ° Π΄Π° Π±ΠΈΠ΄Π°Ρ Π΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½ΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΎΡ register_callback (ΠΏΠΎ Π΄ΠΈΡΠΎΠ»Ρ, RLBox ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°). ΠΠ° Π΄Π° ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° (Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ°), ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΠ°ΡΠ° Π½Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄ΠΎΡ Π½Π΅ Π΅ Π΄ΠΎΠ²ΠΎΠ»Π½Π° ΠΈ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ Π½Π΅ΠΎΠΏΡ
ΠΎΠ΄Π½ΠΎ Π΄Π° ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ° Π½Π° Π²ΡΠ°ΡΠ΅Π½ΠΈΡΠ΅ ΡΠ΅ΠΊΠΎΠ²ΠΈ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ.
ΠΡΠ΅Π΄Π½ΠΎΡΡΠΈΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈ Π²ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½Π° ΡΡΠ΅Π΄ΠΈΠ½Π° ΡΠ΅ ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈ ΠΊΠ°ΠΊΠΎ Π½Π΅Π΄ΠΎΠ²Π΅ΡΠ»ΠΈΠ²ΠΈ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈ ΡΠΎ ΠΈΠ·Π²Π°Π»ΠΊΠ°Π½ΠΈ-ΠΎΠ·Π½Π°ΠΊΠΈ Π° Π·Π° βΡΠΈΡΡΠ΅ΡΠ΅β Π±Π°ΡΠ°Π°Ρ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ° ΠΈ ΠΊΠΎΠΏΠΈΡΠ°ΡΡΠ΅ Π²ΠΎ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΡΠ°.
ΠΠ΅Π· ΡΠΈΡΡΠ΅ΡΠ΅, ΠΎΠ±ΠΈΠ΄ΠΎΡ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΡΠ°ΡΠΈΠΏΠ°Π½ΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΊΠΎΡ Π±Π°ΡΠ° ΡΠ΅Π΄ΠΎΠ²Π½ΠΈ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ (ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ) ΡΠ΅Π·ΡΠ»ΡΠΈΡΠ° ΡΠΎ Π³ΡΠ΅ΡΠΊΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠ°ΡΠ»ΠΈΡΠ°ΡΠ΅. ΠΠ°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ, ΠΏΠΎΠ²ΡΠ°ΡΠ½ΠΈ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ ΡΠ΅ ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π°Π°Ρ ΠΏΡΠ΅ΠΊΡ ΠΊΠΎΠΏΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΠ½Π°ΡΠ° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° ΠΈ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° Π½Π° ΠΏΠ΅ΡΠΎΠΊΠΎΡ. ΠΠ° Π³ΠΎΠ»Π΅ΠΌΠΈ Π·Π±ΠΈΡΠΊΠΈ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ, ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° ΡΠ΅ Π΄ΠΎΠ΄Π΅Π»ΡΠ²Π° Π²ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½Π° ΡΡΠ΅Π΄ΠΈΠ½Π°, Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΈΠΎΡ ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π°Ρ Π·Π° βΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠ½Π° ΠΊΡΡΠΈΡΠ° Π·Π° ΠΏΠ΅ΡΠΎΠΊβ ΡΠ΅ Π²ΡΠ°ΡΠ° Π²ΠΎ Π³Π»Π°Π²Π½ΠΈΠΎΡ ΠΏΡΠΎΡΠ΅Ρ.
ΠΠ·Π²ΠΎΡ: opennet.ru