Cucumber-js: рд╕рдорд╛рдирд╛рдВрддрд░ рд░рдирдЯрд╛рдЗрдо рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдХрд╛рд░реНрдп рд╡рд┐рднрд╛рдЬрди рдЬреЛрдбрд╝реЗрдВред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 2 рдорд╛рд░реНрдЪ 2018  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: cucumber/cucumber-js

рдореИрдВрдиреЗ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╕рдорд╛рдирд╛рдВрддрд░ рдкрд░реАрдХреНрд╖рдг рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рджреЗрдЦрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рджрд╛рд╕реЛрдВ рдХреЛ рдХреИрд╕реЗ рдХрд╛рдо рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдПрдХ рддрдВрддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

cucumber-js/src/runtime/parallel/master.js:110 рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рджрд╛рд╕реЛрдВ рдХреЛ рдПрдХ рдХрддрд╛рд░ рд╕реЗ рдХрд╛рдо рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рддрд░рд╣ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред рдпрджрд┐ рдореЗрд░рд╛ рдорд╛рдорд▓рд╛ рджреВрд╕рд░реЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИ, рддреЛ рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдХрд╛рд░реНрдп рдЖрд╡рдВрдЯрди рд░рдгрдиреАрддрд┐ рдХреЛ рдмрджрд▓рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

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

Scenario: I can log in to the db1 database
 When I log in to the "db1" database
 Then ...

Scenario: I can create a user in the db2 database
 When I log in to the "db2" database
 Then ...

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

рдореЗрд░реЗ рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рджрд╛рд╕реЛрдВ рдХреЛ рдлреАрдЪрд░ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ;

| feature         | database | slave |
| test1.feature   | dbA      |     1 |
| test2.feature   | dbB      |     1 |
| test3.feature   | dbC      |     2 |
| test4.feature   | dbC      |     2 |
| test5.feature   | dbC      |     2 |

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдРрд╕рд╛ рдХреЛрдИ рддрдВрддреНрд░ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдкрд░реАрдХреНрд╖рдг рдзрд╛рд╡рдХ рдореБрдЭрд╕реЗ рдкреВрдЫ рд╕рдХреЗ рдХрд┐ рдореИрдВ рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рдХрд╣рд╛рдВ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдмрд┐рдВрджреБ, рдПрдХ 'рдХрд╕реНрдЯрдо рд╡рд░реНрдХ рдкрд╛рд░реНрдЯреАрд╢рдирд░' рд╣реЛрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдЬреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдкреВрдЫреЗрдЧрд╛;

getSlaveAffinity(featureFilePath, numberOfSlaves);

рдЬреЛ рдлреАрдЪрд░ рдлрд╛рдЗрд▓ рдХреЛ рдСрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреБрд▓рд╛рдо рдХреЛ рд▓реМрдЯрд╛рдПрдЧрд╛?

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

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╕рд╛рде рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреНрдпрд╛ рд╣реИ? рдпрджрд┐ рдЖрдк рдореБрдЭреЗ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдореБрдЭреЗ рдкреАрдУрд╕реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рджреЗрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИред рдореБрдЭреЗ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдкрд░ рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреМрди рд╕реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореНрдпреВрдЯреЗрдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

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

рд╣рдореНрдо, рдЗрд╕рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣ рдЕрдЪрд╛рд░ рдХреА рдПрдХ рдХрддрд╛рд░ (рдПрдХ рдкрд░рд┐рджреГрд╢реНрдп рдпрд╛ рдПрдХ рдкрд░рд┐рджреГрд╢реНрдп рдХреА рд░реВрдкрд░реЗрдЦрд╛ рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдирд╣реАрдВред рдФрд░ рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдпрд╣ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рджреЛ рдкрд░рд╕реНрдкрд░ рд╡рд┐рд░реЛрдзреА рдкрд░рд┐рджреГрд╢реНрдп рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдирд╣реАрдВ рдЪрд▓рддреЗ рд╣реИрдВред рд╡реЗ рдХрд┐рд╕ рджрд╛рд╕ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ, рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред

рдПрдХ рдПрдкреАрдЖрдИ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдЬреИрд╕реЗ

const {setParallelCanAssignFn} = require('cucumber')

// testCase = {uri, pickle}
// runningTestCases = [{uri, pickle}, ... ]
setParallelCanAssignFn((newTestCase, runningTestCases) => {
  // return true if newTestCase can be alongside the currently running test cases, false otherwise
})

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

рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИ! рдореЗрд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рдХрдо рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ ...

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╡рд┐рдХрд▓реНрдк рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рд╣рд╛рдБред рдпрд╣ рдкреВрд▓ рдореЗрдВ рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЗ рдмреАрдЪ рдХрд╛рдо рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рднрд╛рд╡ рдбрд╛рд▓рддрд╛ рд╣реИред рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рдХреЗ рд╕реБрдЭрд╛рд╡ рдореЗрдВ, рдореБрдЭреЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рд╕рдордп рд▓рд╛рдЧрдд рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдерд╛, рдФрд░ рдЪреАрдЬреЛрдВ рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА; рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЛ рд╕реМрдВрдкрдиреЗ рдЬрд┐рддрдирд╛ рдХреБрд╢рд▓ рдпрд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ!

рдореИрдВ рдЕрдЪрд╛рд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рднреА рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ - рдореЗрд░реЗ рдкрд╛рд░реНрдЯреАрд╢рдирд░ рдиреЗ рдлреАрдЪрд░ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЧреЛрдмрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдХрд╛рдо рдХрд┐рдпрд╛, рдЙрдиреНрд╣реЗрдВ рдЧреЗрд░рдХрд┐рди рдкрд╛рд░реНрд╕рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдФрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЪрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдПрд╕рдЯреА рдХреА рдЬрд╛рдВрдЪ рдХреА - рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рд▓рдЧрднрдЧ рд╕рднреА рдХреЛрдб рдХрдХрдбрд╝реА рдХреЗ рдХреБрдЫ рдЖрдВрддрд░рд┐рдХ рднрд╛рдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛ рд░рд╣рд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЙрдиреНрд╣реЗрдВ рд╕реМрдВрдкрдирд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд╕реЗ рдореЗрд░рд╛ рдЬреАрд╡рди рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ! :) рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рдПрдкреАрдЖрдИ рдлреЙрд░реНрдореЗрдЯрд░реНрд╕ рдХреЗ рдХрд░реАрдм рд╣реИ рд▓реЗрдХрд┐рди рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИ; рдПрдХ рдлреЙрд░реНрдореЗрдЯрд░ рдореЗрдВ рдореИрдВ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдБ

    options.eventBroadcaster.on('test-case-started', ({ sourceLocation }) => {
        const { gherkinDocument, pickle } = options.eventDataCollector.getTestCaseData(sourceLocation);

рдХреНрдпрд╛ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдП рдЧрдП рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдХреЛ рд╕рдорд╛рди рдкреИрд░рд╛рдореАрдЯрд░ рдпрд╛ рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рд╕реНрдЯреНрд░рдХреНрдЪрд░ ( { gherkinDocument, pickle } ) рдлреЙрд░реНрдореЗрдЯрд░ рдЗрд╡реЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ? рдореИрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдорд╛рдорд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдЯреИрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рднрд╛рдЬрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ( @uses(DB1) рдЬреЛ рдореБрдЭреЗ gherkinDocument рдкрд░ рдорд┐рд▓реЗрдЧрд╛ред рд╕рд╛рде рд╣реА, рдПрдХ рд╕рдорд╛рди рдПрдкреАрдЖрдИ рдХрд╛ рдорддрд▓рдм рдХрдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдФрд░ рдЕрдзрд┐рдХ рдХреЛрдб рдкреБрди: рдЙрдкрдпреЛрдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдмрд╕ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, setParallelCanAssignFn рдХреЛ рджрд╛рд╕реЛрдВ рдХреЗ рдмрдЬрд╛рдп рдорд╛рд╕реНрдЯрд░ ('рдХрд┐рд╕рдХреЛ рдХрд╛рдо рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП?') рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ ('рдХреНрдпрд╛ рдореИрдВ рдЗрд╕ рдХрд╛рдо рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?') рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛ рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА рдорд▓реНрдЯреА-рдереНрд░реЗрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░реЗрдВ, рдареАрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдорд╛рд╕реНрдЯрд░ рдХреЗ рдкрд╛рд╕ рдХрд╛рдо рд╕реМрдВрдкрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░, рд╕рд┐рдВрдЧрд▓-рдереНрд░реЗрдбреЗрдб рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реЛрдЧреА?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХрд╛ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рддрдВрддреНрд░ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЙрд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред рддреЛ рдПрдХ рдлреАрдЪрд░ рдлрд╛рдЗрд▓ рд▓рд┐рдЦреА

Feature: X
    Scenario: A
    Scenario: B

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ [B,A] рдХреНрд░рдо рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдХрд┐рд╕реА рдХреЗ рдЯреЗрд╕реНрдЯ рд╕реВрдЯ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдХреНрд░рдо рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ - рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реА рдмрд╛рд░ рдХрдХрдбрд╝реА рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рдлреАрдЪрд░-рдлрд╛рдЗрд▓ рдСрд░реНрдбрд░ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧреАред

рд╡реИрд╕реЗ рднреА, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд╕рд╛рде рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреНрдпрд╛ рд╣реИ? рдпрджрд┐ рдЖрдк рдореБрдЭреЗ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдореБрдЭреЗ рдкреАрдУрд╕реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рджреЗрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИред рдореБрдЭреЗ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдкрд░ рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХреМрди рд╕реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореНрдпреВрдЯреЗрдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдирдорд╕реНрддреЗ,

рдореИрдВ @stevecooperorg рдХреЗ рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕-рд░реАрд╕реЗрдЯ рд╕реНрдерд┐рддрд┐ рдХреА рдПрдХ рд╣реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ

рдХрдо рд╕реЗ рдХрдо рдореИрдВ "рдХреЛрдИ рдбреЗрдЯрд╛рдмреЗрд╕ рдирд╣реАрдВ" рд╕рдореВрд╣ рдФрд░ "рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ" рдХрд░ рд╕рдХрддрд╛ рдерд╛ред

рд╣рд╛рдБ! рдореИрдВ рднреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЗрдЪреНрдЫрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдПрдХ рдкреАрдУрд╕реА рдХреЛ рдЪрд╛рдмреБрдХ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ (рдЬрдм рддрдХ рдХрд┐ рдХреБрдЫ рдЖрдиреЗ рд╡рд╛рд▓рд╛ рди рд╣реЛ)ред рдпрд╣ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдпреЛрдЧрджрд╛рди рд╣реЛрдЧрд╛ред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЬрд╛рддрд╛ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдореИрдВ рдкрд╣рд▓реЗ рджрд┐рд╢рд╛-рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░реВрдБрдЧрд╛ред

@ eman2673 рдмрд╕ рдЖрдкрдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП: рдореИрдВрдиреЗ рдореЗрдЬрдмрд╛рди рдХреЗ рд╕реАрдПрд▓рдЖрдИ (рдореЗрд░реЗ рд▓рд┐рдП рд╕реНрдХреЗрд▓рд╡реЗ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рддрд┐ рдЯреИрдЧ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╢реБрд░реВ рдХрд░рдХреЗ рд╕рдорд╛рдВрддрд░ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ред

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

@ рдПрдбреНрд░рд┐рдпрди-рдХреИрд░реЗ рд╣реЗрдб рдЕрдк рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдереЛрдбрд╝рд╛ рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдвреВрдВрдв рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рд╕рднреА рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЛ рд╣рд░ рдЪреАрдЬ рдкрд░ рдлреЗрдВрдХрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рд╡реЗ рдЬрд╛рджреБрдИ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕рдВрд╕рд╛рдзрди-рд╡рд╛рд░ рд╕рдВрдШрд░реНрд╖ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдХрдИ рд╕рдВрд╕рд╛рдзрдиреЛрдВ (рдЖрдорддреМрд░ рдкрд░ 1 рдпрд╛ 2 рдЯреЗрдмрд▓) рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рдЯреИрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг @charlierudolph рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИред

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

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

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

ghost picture ghost  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

NoNameProvided picture NoNameProvided  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jan-molak picture jan-molak  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ