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