рдиреЛрдб-рдлрд╛рдЗрдмрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдЕрджреНрднреБрдд
рдлрд╛рдЗрдмрд░ / рдХреЛрд░рдЯрд╛рдЗрди рдХреЗ рд▓рд┐рдП рдиреЛрдбреНрдЬ рдФрд░ рд╡реА 8 рд╕рдорд░реНрдерди рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдЕрд░реНрдерд╛рдд, рдЙрдкрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдиреЛрдбрдЬ рд╕рдореВрд╣ рдореЗрдВ
рдХрдИ рдЪрд░реНрдЪрд╛рдПрдВ рд╣реБрдИрдВред
рдлрд╛рдЗрдмрд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрд╡рд╕рд░реЛрдВ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реЛрдХрд░, рдореИрдВрдиреЗ рдПрдХ
рдиреЛрдб-рд╕рд┐рдВрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓рд┐рдЦреА, рдЬреЛ рдиреЛрдбреНрдЬ рдХреЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдХреЛрдб рдЕрдзрд┐рдХ рджреГрд╢реНрдпред
рд╕рд╛рд░
рджрд░реНрд╢рди
рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ Function.prototyp.sync () рд╡рд┐рдзрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рднреА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕рднреА рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЬреНрдЮрд╛рдд рдХреЙрд▓ () рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рд╕рд┐рдВрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдХреЗ, рд╣рдо рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рд▓рд┐рдЦреЗ рдмрд┐рдирд╛, рдХрд┐рд╕реА рднреА рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЫрджреНрдо-рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ - рдХреНрдпреЛрдВрдХрд┐, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдлрд╝рдВрдХреНрд╢рди .prototyp.sync () рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмреНрд▓реЙрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рдереНрд░реЗрдбред рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╢рд░реАрд░ рдХреЛ рд╣реА рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рдмрд╕ рдкрд░рд┐рдгрд╛рдо ("рдЙрдкрдЬ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдХреЛрдб "рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ" рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдиреЛрдб-рд╕рд┐рдВрдХ рдореЗрд░реЗ рд▓рд┐рдП рддреАрди рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рд╢реНрди рд╣рд▓ рдХрд░рддрд╛ рд╣реИ:
1. рдХреЙрд▓рдмреИрдХ рдХреЗ рд╕рд╛рде рдЕрдВрддрд╣реАрди рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рд╕реЗ рдЫреВрдЯ ("рд╕реНрдкреЗрдЧреЗрдЯреА рдХреЛрдб" рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ)
2. рд╕рд╣реА рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ
3. рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдореМрдЬреВрджрд╛ рдХреЛрдб / рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг
рдПрдХ рдорд╣реАрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдореИрдВ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдЗрд╕ рдиреЛрдб-рд╕рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╕рдВрдХреНрд░рдордг рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рдерд╛ - рдореИрдВрдиреЗ рдмрд╕ "рдЫрджреНрдо-рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ" рддрд░реАрдХреЗ рд╕реЗ рдирдпрд╛ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдкреБрд░рд╛рдирд╛ рдХреЛрдб рд╡рд╣реА рд░рд╣рд╛ред
рддрд╛рд▓рд╛
"рдлрд╛рдЗрдмрд░" рдХреА рд╕реБрдВрджрд░рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдкреНрд░рддреАрдХреНрд╖рд╛ (рдЙрдкрдЬ) рд╣реЛрддреА рд╣реИ, рддреЛ рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рдзрд╛рдЧрд╛ рдЕрд╡рд░реБрджреНрдз рд╣реЛрддрд╛ рд╣реИ, рди рдХрд┐ рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ред рд╕рдВрдкреВрд░реНрдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд▓реЙрдХ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг fs.readFileSync рдФрд░ рдЕрдиреНрдп рдЫрджреНрдо-рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВред
"рдлрд╛рдЗрдмрд░" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рд╡реИрд╢реНрд╡рд┐рдХ рдЕрд╡рд░реЛрдзрди рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░, рдЙрд╕реА рд╕рдордп, рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд░реЗрдВ:
var fs = require('fs'), Sync = require('sync');
рдЗрд╕ рдХреЛрдб рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рд╣рдо fs.readFile.sync () рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢рд╛рдВрддрд┐рдкреВрд░реНрд╡рдХ рдЕрдиреНрдп рд╕рдВрдЪрд╛рд▓рди рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред
рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдореЗрдВ рддреНрд░реБрдЯрд┐
рдЬрд┐рд╕ рдХрд┐рд╕реА рдиреЗ рднреА рдХрднреА "рд╣реЗрд▓реНрд▓реЛ рд╡рд░реНрд▓реНрдб рдРрдк" рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдиреЛрдбрдЬ рдкрд░ рдХреБрдЫ рдЕрдзрд┐рдХ рдЧрдВрднреАрд░ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рд╡рд╣ рд╢рд╛рдпрдж рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рджрд┐рдирдЪрд░реНрдпрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИред рдпрджрд┐ рдЖрдк рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╡рд╛рдкрд╕ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕реА рд╕рдордп, рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдлреЗрдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреВрд░реЗ рдШрдЯрдирд╛-рдкрд╛рд╢ рдХреЗ рдкрддрди рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИред
рд╕рд╣реА рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдиреЛрдбрдЬ рдХреЛрдб:
рдПрдХ рд╣реА рдлрд╝рдВрдХреНрд╢рди, рдХреЗрд╡рд▓ рд╕рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдКрдкрд░ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдорд╛рди рд╣реИ, рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдПред рдпрджрд┐ рдХреЛрдИ рднреА рдлрд╝рдВрдХреНрд╢рди рдСрдЯреЛ-рдХреЙрд▓рдмреИрдХ рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рд╕рд┐рдВрдХ () рдЗрд╕рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рддреНрд░реБрдЯрд┐ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рдкрд░рд┐рдгрд╛рдореА рдХреЙрд▓рдмреИрдХ рдореЗрдВ рдЖ рдЬрд╛рдПрдЧреА, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рджреВрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдЯреНрд░реАрдо рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдерд╛ред
function syncFunction(callback) {
рд╡рд┐рд╢реЗрд╖ рдлрд╝рдВрдХреНрд╢рди .prototyp.async () рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рднреА рд╕рд░рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдКрдкрд░ рджрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ):
var syncFunction = function() { var p_client = new Db('test', new Server("127.0.0.1", 27017, {})); p_client.open.sync(p_client); var collection = p_client.createCollection.sync(p_client, 'test'); collection.insert.sync(collection, {'a' : 1}); var cursor = collection.find.sync(collection, {'_id':new ObjectID("aaaaaaaaaaaa")) var items = cursor.toArray.sync(cursor);
рд╕рдорд╛рдирддрд╛
рдХрднреА-рдХрднреА, рд╣рдореЗрдВ рд╕рднреА рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реБрдП, рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрдИ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЬрд╛рд░реА рд░рд╣рддреА рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП Sync.Parallel рд╣реИ:
var Sync = require('sync');
рджреВрд╕рд░реЗ рджрд┐рди рдореИрдВрдиреЗ рдорд┐рд╕реНрдЯрд░
рд▓рд╛рд╡рд░реНрдбреЗрдЯ (v8 рдХреЗ рд▓рд┐рдП рдиреЛрдб-рдлрд╛рдЗрдмрд░ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛) рдХреЗ рд╕рд╛рде рдмрд╛рдд рдХреА, рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ "рднрд╡рд┐рд╖реНрдп" рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рджрд┐рд▓рдЪрд╕реНрдк рдкреНрд░рддрд┐рдорд╛рди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдПрдХ рдирдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдЬреЛрдбрд╝рд╛ редprototype.future () рд╡рд┐рдзрд┐ - рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдорд╛рдирддрд╛ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рд╕реНрдерд╛рдкрдирд╛
$ npm install sync
$ node-fibers my_file.js
рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдлрд╛рдЗрдмрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ "рдиреЛрдб" рдХреЗ рдмрдЬрд╛рдп "рдиреЛрдб-рдлрд╛рдЗрдмрд░" рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдПрдкреАрдЖрдИ
var Sync = require('sync');
рд╕рд╛рд░рд╛рдВрд╢
рдореИрдВ рдиреЛрдбрдЬ рдореЗрдВ рдЗрд╕ рджрд┐рд╢рд╛ рдХреЛ рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореБрдЭреЗ рдмрд╣реБрдд рд╕рд╣реА рд▓рдЧрддрд╛ рд╣реИред рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдЖрдк рдореЗрдВ рд╕реЗ рдХреЛрдИ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ
рдпреЛрдЧрджрд╛рди рджреЗ рд░рд╣рд╛ рд╣реИред
рдореИрдВ рдЖрдкрдХреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХрд╛рдлреА рд╡рд┐рд╕реНрддреГрдд
рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред
рдпрджрд┐ рдЖрдк рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддреЗ рд╣реИрдВ - рдХрд╛рдВрдЯрд╛, рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ, рдмрд╕
рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛ред
рдореИрдВрдиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ
рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдореЗрдВ рднреА рдЬреЛрдбрд╝рд╛ред рдЕрдЧрд░ рдХрд┐рд╕реА рдФрд░ рдХреЗ рдкрд╛рд╕ рдлрд╛рдЗрдмрд░ рдХреА рдЧрддрд┐ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
рдореИрдВ рдмреБрджреНрдзрд┐рд╢реАрд▓рддрд╛ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрд╕рдиреЗ рдореБрдЭреЗ рд╡рд┐рд╖рдп рддрдВрддреБрдУрдВ рд╕реЗ рд╕рдВрдХреНрд░рдорд┐рдд рдХрд┐рдпрд╛ :)
рдЖрдкрдХреЛ рдиреЛрдб-рдлрд╛рдЗрдмрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░
рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рднреА рд░реБрдЪрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред