рджреЛ рдпрд╛ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╕рдорд╛рди рд╕рдВрд░рдЪрдирд╛ рд╡рд╛рд▓рд╛ рдПрдХ рдХреЛрдб рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдХреЗрдд рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рд╕реНрдерд╛рди рдкрд░ рдХреБрдЫ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдиреНрдп рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рднреА рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрди рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдирд╣реАрдВ рдвреВрдВрдврдиреЗ рдпрд╛ рдЙрдирдХреЗ рд▓рд┐рдП рдмрд╕ рднреВрд▓рдиреЗ рдХреА 100% рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред
рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧреЛрдВ рдХреЛ рдПрд╣рд╕рд╛рд╕ рд╣реИ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреЛрдб (рдпрд╛ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ) рдХреЛ рджреЛрд╣рд░рд╛рдирд╛ рдмреБрд░рд╛рдИ рд╣реИ:
рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрдХрд▓ рдХреЗ рдХреЗрдВрджреНрд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП:
ScreenMetrics metrics = getScreenMetrics(); int centerX = metrics.width / 2; int centerY = metrics.height / 2; DrawCircle(centerX, centerY, 100); DrawCircle(centerX, centerY, 200);
рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рджреЛ рд╕реЗрдХрдВрдб рдореЗрдВ рджреЛрд╣рд░рд╛рд╡ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдХреНрдпреЛрдВрдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЙрдВрдЧрд▓реА рд╕реЗ рдЪреВрд╕рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдРрд╕реЗ рднрд╛рд╡ рдЬреЛ рдордВрдбрд▓рд┐рдпреЛрдВ рдХреЗ рдХреЗрдВрджреНрд░ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ:
getScreenMetrics().width / 2, getScreenMetrics().height / 2
рдЗрд╕реА рд╕рдордп, рд╕рднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдЕрднреА рддрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХреЛрдб рджреЛрд╣рд░рд╛рд╡ рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдФрд░ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЗрдВ рдЬреЛ рд╕рд░реНрд╡рд░ рдХреЗ рдПрдкреАрдЖрдИ рдФрд░ рдХреЗ рд╕рд╛рде рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХрд░рддрд╛ рд╣реИ
рдПрдХ рдЕрдзрд┐рдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рддрд╕реНрд╡реАрд░реЗрдВ рджреЗрдЦрдиреЗ рдФрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
HttpResponse login(String email, String password) { HttpRequest request = new HttpRequest(); request.setMethod(тАЬGETтАЭ); request.setContentType("application/x-www-form-urlencoded"); String parameters = "?login=" + login + "&password=" + password; String uri = "https://mycoolsite.com/api/login" + parameters; request.setUrl(uri); return request.execute(); } ... HttpResponse getPhotos(int userId) { String uri = "https://mycoolsite.com/api/get_photos?user_id=" + user_id; HttpRequest request = new HttpRequest(); request.setMethod("GET"); request.setUrl(uri); request.setContentType("application/x-www-form-urlencoded"); return request.execute(); } тАж bool uploadPhoto(Bitmap photo, int user_id) { HttpRequest request = new HttpRequest(); HttpBody body = convertBitmapToHttpBody(photo); request.setUrl("https://mycoolsite.com/api/upload_photo?user_id=" + user_id); request.setMethod("POST"); request.setContentType(тАЬmultipart/form-dataтАЭ); request.setHttpBody(body); HttpResponse response = request.execute(); return (response.getStatusCode()== 200); }
... рдФрд░ рдПрдХ рдФрд░ 100,500 рд╕рдорд╛рди рддрд░реАрдХреЗ, рдХреБрд▓ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХреА рд╕рдВрдЦреНрдпрд╛ред
рдпрджрд┐ mycoolsite.com рднрдпрд╛рдирдХ.net рдкрд░ рдЪрд▓рд╛ рдЬрд╛рдП рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдЖрдкрдХреЛ рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП request.execute () рд╕рд░реНрдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдПрдбрд┐рдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдХрд╣реАрдВ рди рдХрд╣реАрдВ, рдпреВрдЖрд░рдПрд▓ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреВрд▓ рдЬрд╛рдУ рдпрд╛ рдмрд╕ рд╕реАрд▓ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдмрд╣реБрдд рд╕рдордп рдмрд┐рддрд╛рддреЗ рд╣реИрдВ, рд░рд╛рдд рдХреЛ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдкрд╛рд╕ "рд╕рд╣реА" рдирд┐рд░реНрдорд╛рдг рднреЗрдЬреЗрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд▓реЗ рджрд┐рди SUDDENLY рдХреЛ рдПрдХ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ: "рдлреЛрдЯреЛ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛", рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред
рдпрджрд┐ рдЖрдк рддреБрд░рдВрдд "рдорд╛рдереЗ" рдкрд░ рдХреЛрдб рдирд╣реАрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ
рд▓рд┐рдП рдзреВрдореНрд░рдкрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдереЛрдбрд╝рд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП рд╕рднреА рддреАрди рддрд░реАрдХреЗ рд▓рдЧрднрдЧ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ:
- HttpRequest рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдБ
- рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЧреБрдг рд╕реЗрдЯ рдХрд░реЗрдВ (HTTP рд╡рд┐рдзрд┐, рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░)
- рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде URL рд╕реЗрдЯ рдХрд░реЗрдВ
- рд╡реИрдХрд▓реНрдкрд┐рдХ: рд╢рд░реАрд░ рдореЗрдВ рдмрд╛рдЗрдирд░реА рдбреЗрдЯрд╛ рдЕрдиреБрд░реЛрдз рдЬреЛрдбрд╝реЗрдВред
рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
public HttpRequest createGetRequest() { HttpRequest request = new HttpRequest(); request.setMethod("GET"); request.setContentType("application/x-www-form-urlencoded"); return request; } public HttpRequest createPostRequest() { HttpRequest request = new HttpRequest() request.setMethod("POST"); request.setContentType("multipart/form-data"); return request; }
рдЧреБрдЬрд░рддреА рдорд╛рдкрджрдВрдбреЛрдВ рдФрд░ рдПрдХ рдЕрдиреБрд░реЛрдз URI рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдкрд░ рд╡рд┐рд╢реЗрд╖ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреЛрдб рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрдШрдирди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
String uri = "https://mycoolsite.com/api/get_photos?user_id=" + user_id;
рдпрд╣реА рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдпреВрдЖрд░рдЖрдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХреЛрдб рдХрд╛ рджреЛрд╣рд░рд╛рд╡ рднреА рд╣реИ
рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддреЗ рд╕рдордп рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рднрд░рд╛ рд╣реИред рдПрдкреАрдЖрдИ рд░реВрдЯ рдХрд╛ рдкрддрд╛ рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рдирд╛
рдпреВрдЖрд░рдЖрдИ рдХреЛ рдПрдХ рд╕реНрдерд╛рди рдкрд░ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
public static final String API_BASE_URL = "https://mycoolsite.com/api/";
URI рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдФрд░ рдЙрдирдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрдВ рдПрдХрддреНрд░ рдХрд░реЗрдВрдЧреЗ:
Map params = new HashMap<String, String>(); ... public void addParam(Map<String, String> params, String param, String value) { params.put(param, value); }
рдЕрдм, рдкреВрд░реНрдг рдЕрдиреБрд░реЛрдз URI рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд▓рд┐рдЦреЗрдВрдЧреЗ:
public String getUri(String path, Map<String, String> params) { StringBuilder query = new StringBuilder("?"); Iterator iterator = params.allKeys().iterator(); while (iterator.hasNext()) { String paramName = iterator.next(); query.add(paramName + "=" + params.get(paramName)); if (iterator.hasNext()) { query.add("&"); } } return API_BASE_URL + path + result.toString(); }
рдЗрд╕рд▓рд┐рдП, рд╕рд░реНрд╡рд░ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП:
- рдЕрдиреБрд░реЛрдз рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдБ:
HttpRequest request = createGetRequest();
- рдЕрдиреБрд░реЛрдз URI рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ:
Map params = new HashMap<String, String>(); ... addParam(params, "user_id", userId);
рдЕрдм рдЖрдк рд╕рд░реНрд╡рд░ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЙрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
request.setUrl(uri); HttpResponse response = request.execute();
рдЕрдм рд╣рдо рдпрд╣ рд╕рдм рд╕рд╛рдорд╛рди рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдВрдЧреЗред рд╕рд╛рде рд╣реА рдЗрд╕ рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛
HttpRequest, рдЬреИрд╕рд╛ рдХрд┐ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдорд┐рд▓рддреЗ рд╣реИрдВ:
public class MyRequest extends HttRrequest { private static final String API_BASE_URL = "https://mycoolsite.com/api/"; private Map<String, String> mParameters; private MyRequest() { super(); mParameters = new HashMap<String, String>(); } public static MyRequest createGetRequest() { MyRequest request = new MyRequest(); request.setMethod("GET"); request.setContentType("application/x-www-form-urlencoded"); return request; } public static MyRequest createPostRequest() { MyRequest request = new MyRequest() request.setMethod("POST"); request.setContentType("multipart/form-data"); return request; } public void addParam(String name, String value) { mParameters.put(name, value); } public void addParam(String name, int value) { addParam(name, String.valueOf(value)); } public HttpResponse send(String path) { String uri = API_BASE_URL + path getParametersString(); setUrl(uri); execute(); } private String getParametersString() { StringBuilder result = new StringBuilder("?"); Iterator iterator = mParameters.allKeys().iterator(); while (iterator.hasNext()) { String paramName = iterator.next(); result.add(paramName + "=" + mParameters.get(paramName)); if (iterator.hasNext()) { result.add("&"); } } return result.toString(); } }
рдЕрдм рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
HttpResponse login(String login, String password) { MyRequest request = MyRequest.createGetRequest(); request.addParam("login", login); request.addParam("password", password); return request.send("login"); } HttpResponse getPhotos(int userId) { MyRequest request = MyRequest.createGetRequest(); request.addParam("user_id", userId); return request.send("get_photos"); } HttpResponse uploadPhoto(Bitmap photo, int userId) { MyRequest request = MyRequest.createPostRequest(); request.addParam(тАЬuser_idтАЭ, userId); request.setHttpBody(convertBitmapToHttpBody(photo)); return request.send(тАЬupload_photoтАЭ); }
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЙрдЧрд┐рди, getPhotos рдФрд░ uploadPhoto рд╡рд┐рдзрд┐рдпрд╛рдБ рдЫреЛрдЯреА, рд╕рд░рд▓ рдФрд░ рдЕрдзрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖ рдЧрдИ рд╣реИрдВред
рдпрд╣ рдЧреИрд░-рддреБрдЪреНрдЫ, рдмрд╣реБ-рдЪрд░рдгреАрдп рд░рд┐рдлреИрдХреНрдЯрд┐рдВрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдерд╛ред рдирддреАрдЬрддрди, рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ MyRequest рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдЬреЛ рд╕рд┐рд╕реНрдЯрдо HttpRequest рдкрд░ рдПрдХ рдЖрд╡рд░рдг рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрдиреБрд░реЛрдз рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рдЕрдиреНрдп рд╕реБрдЦрдж рдЪреАрдЬреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ
рд╕рд╛рде рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ рд╣реИрдВред рдЖрдк рдпрд╣ рднреА рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдХреЗ рддрд░реАрдХреЗ рдХрд┐рддрдиреЗ рдХрдо, рдЖрд╕рд╛рди рдФрд░ рдЕрдзрд┐рдХ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВред рдПрдХ рдирдИ рдЪреБрдиреМрддреА рдЬреЛрдбрд╝рдирд╛ рд▓рдЧрднрдЧ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред
рдЗрд╕ рддрд░рд╣ рдХреЗ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЛ рдПрдХ рдФрд░ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдПрдкреАрдЖрдИ рдХреЙрд▓ рдЬреЛрдбрд╝рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХрд╛ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдХреБрдЫ рдорд┐рдирдЯ, рджрд┐рди рдирд╣реАрдВ, рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред
рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдкрд░рд┐рдгрд╛рдореА рдХреЛрдб рдЖрджрд░реНрд╢ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рд╕реЗ рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реИ, рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдбрд╝рд╛ рд╣реИ
рдереЛрдбрд╝рд╛ рдЦреВрди рдХреЗ рд╕рд╛рде, рдЖрдЧреЗ рдХрджрдоред рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдордп рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рдХреЛрдб рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдиреИрддрд┐рдХ: рджреЛрд╣рд░рд╛рд╡ рджреЗрдЦрд╛ - рдЗрд╕реЗ
рддреБрд░рдВрдд рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВред рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдПрдХ рдЯрди рд╕рдордп рдФрд░ рддрдВрддреНрд░рд┐рдХрд╛рдУрдВ рдХреЛ рдмрдЪрд╛рдПрдВред
рдЙрд╕реА рд╕рдордп, "рдЬрдЯрд┐рд▓" рджреЛрд╣рд░рд╛рд╡ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рдмрд┐рддрд╛рдирд╛,
рддреБрд░рдВрдд рдХреЛрдб рди рд▓рд┐рдЦреЗрдВред
рд░рд┐рдлреНрд▓реЗрдХреНрдЯрд░рд┐рдВрдЧ рдкрд░ рдлрд╛рдЙрд▓рд░ рдкреБрд╕реНрддрдХ рдореЗрдВ рдФрд░ рдкрдврд╝реЗрдВред
рдореБрдЭреЗ рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛, рд╕реБрдЭрд╛рд╡ рдФрд░ рд▓реЗрдЦ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрдзрди рдХреА рдЦреБрд╢реА рд╣реЛрдЧреАред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!