рдирдорд╕реНрддреЗ,
рдореЗрд░рд╛ рд╕реЗрдЯрдЕрдк рдЗрд╕ рддрд░рд╣ рд╣реИред
рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдбреЛрдХрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ рдЪрдордХрджрд╛рд░-рдкреНрд░реЙрдХреНрд╕реАред
apache httpd рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рд╢рд╛рдЗрдиреАрдкреНрд░реЙрдХреНрд╕реА рд╕реЗ рдкрд╣рд▓реЗ рдЪрд▓рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ https рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ рдФрд░ рдкреЛрд░реНрдЯ 2443 host рдХреЗ рд╕рд╛рде рд╣реЛрд╕реНрдЯ рдкрд░ рдЪрд▓рддрд╛ рд╣реИ
рдХреАрдХреНрд▓реЛрдХ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рднреА рдЪрд▓рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╣реЛрд╕реНрдЯ рдкрд░ рдкреЛрд░реНрдЯ 8443 рдХреЗ рд╕рд╛рде рдЦреБрд▓рд╛ рд╣реИред
рд╕реЗрдЯрдЕрдк, application.xml
keycloak:
realm: shiny
auth-server-url: https://keycloak:8443/auth
#ssl-required: none
ssl-required: external
confidential-port: 2443
verify-token-audience: true
resource: shiny-proxy-p1
credentials-secret: xxxxxxxxxxxx
рдЕрдкрд╛рдЪреЗ рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
<VirtualHost *:2443>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/server-cert.pem
SSLCertificateKeyFile /etc/apache2/ssl/server-cert.key
# Server Certificate Chain:
# Point SSLCertificateChainFile at a file containing the
# concatenation of PEM encoded CA certificates which form the
# certificate chain for the server certificate. Alternatively
# the referenced file can be the same as SSLCertificateFile
# when the CA certificates are directly appended to the server
# certificate for convinience.
SSLCertificateChainFile /etc/apache2/ssl/server-ca.crt
<Proxy *>
Allow from *
</Proxy>
RewriteEngine on
RewriteCond %{HTTP:Upgrade} =websocket
RewriteRule /(.*) ws://shiny-proxy:8080/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket
RewriteRule /(.*) http://shiny-proxy:8080/$1 [P,L]
ProxyPass / http://shiny-proxy:8080/
ProxyPassReverse / http://shiny-proxy:8080/
ProxyRequests Off
ErrorLog ${APACHE_LOG_DIR}/proxy_error.log
CustomLog ${APACHE_LOG_DIR}/proxy_access.log combined
</VirtualHost>
рдорд╛рди рд▓реЗрдВ рдХрд┐ рдпреВрдЖрд░рдПрд▓ рдХреЗ рд╕рд╛рде рдЕрдкрд╛рдЪреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╢рд┐рдирдкреНрд░реЛрдХреНрд╕ рддрдХ рдкрд╣реБрдВрдЪреЗрдВ https://lxsqlpocnd04 : 2443/
рдпрд╣ рд▓реЙрдЧрд┐рди рдкреЗрдЬ рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░реЗрдЧрд╛ рдФрд░ рд▓реЙрдЧрд┐рди рдкреЗрдЬ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдХреЛ Keycloak рд╣реЛрд╕реНрдЯ lxsqlpocnd04 рдФрд░ рдкреЛрд░реНрдЯ 8443 рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░реЗрдЧрд╛ред рдЙрд╕ рдпреВрдЖрд░рдПрд▓ рдореЗрдВ рдХреНрд╡реЗрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ_рдпреВрд░реА рд╢рд╛рдорд┐рд▓ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИред
рдпреВрдЖрд░рдПрд▓ рдЗрд╕ рддрд░рд╣ рд╣реИ
https://lxsqlpocnd04 :8443/auth/realms/shiny/protocol/openid-connect/auth?response_type=code&client_id=shiny-proxy-p1&redirect_uri=http%3A%2F%2Fshiny-proxy%3A8080%2Fsso%2Flogin&state=00 e6a9-4768-8cf8-39d77500fea3&login=true&scope=openid
рдФрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ_рдпреВрд░реА http://shiny-proxy :8080/sso/login https://lxsqlpocnd04 :2443/sso/login рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╣реИред
рдХреНрдпрд╛ рдХреЛрдИ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ?
рдзрдиреНрдпрд╡рд╛рдж,
рд░реЛрдмрд┐рди
рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕реЗ application.yml рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ?
server:
useForwardHeaders: true
рдпрд╣рд╛рдВ рд╕реЗ: https://www.shinyproxy.io/security/#https -ssl-tls
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдкрд╛рдЪреЗ рд╕рдордХрдХреНрд╖ рдХреНрдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди nginx рдореЗрдВ рд╢рд╛рдпрдж рдпрд╣ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ:
proxy_set_header Host $http_host;
@aiham рдзрдиреНрдпрд╡рд╛рджред
рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдЕрдиреБрдкрд▓рдмреНрдз рдЙрдкрдпреЛрдЧ рдХреЗ рдХрд╛рд░рдг рд╣реИ ForwardHeaders: true
рдореИрдВ useForwardHeaders рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ: рд╕рдЪ рд╣реИ рд▓реЗрдХрд┐рди рдЕрднреА рднреА рд╕рдорд╕реНрдпрд╛ рд╣реИ
@danielfm123
рдореИрдВ useForwardHeaders рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ: рд╕рдЪ рд╣реИ рд▓реЗрдХрд┐рди рдЕрднреА рднреА рд╕рдорд╕реНрдпрд╛ рд╣реИ
рдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рдФрд░ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдпрджрд┐ рдХреАрдХреНрд▓реЛрдХ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдЖрдкрдХреЗ рдХрд░реНрдЯ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдирд╣реАрдВ рд╣реИрдВ (рд░реВрдЯ рдФрд░ рдордзреНрдпрд╡рд░реНрддреА рд╕реАрдП рдЬрд╛рд╡рд╛ рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯреНрд░рд╕реНрдЯ рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рд╣реИ), рддреЛ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдЬреЗрдЖрд░рдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕реАрдП рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред JRE рд╡рд╣ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ Shinyproxy рдХреЛ рдЪрд▓рд╛рддрд╛ рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдерд╛рди рд╣реИ JAVA_HOME---> JRE-->lib--->рд╕реБрд░рдХреНрд╖рд╛-->Cacerts JAVA_HOME--->JRE-->lib--->рд╕реБрд░рдХреНрд╖рд╛->Cacerts
рдЗрд╕ рддрд░рд╣ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢ред
keytool -import -noprompt -alias -your-root -file /opt/jboss/your-root.crt -keystore /etc/pki/java/cacerts -storepass changeit
рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрд┐рдпрд╛, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдореИрдВрдиреЗ 2.4.1 рдХреЗ рдмрдЬрд╛рдп рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА 2.3.1 рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣ рд╕рд╣реА рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ_рдпреВрд░реА рднреЗрдЬрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдХреБрдЫ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдмрд╛рдХреА рдореЗрдВ рдореБрдЭреЗ err_too_many_redirects рдорд┐рд▓рддреЗ рд╣реИрдВ
рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИрдВ? рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд░рдг рдХреЗ рджреМрд░рд╛рди рдЗрд╕рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛, рдХрд░реНрдЯ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдирд╣реАрдВ рд╣реИрдВред рдЖрдкрдХреЛ рд░реВрдЯ рд╕реАрдП рдФрд░ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рд╕реАрдП рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕реНрдЯреЛрд░ рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрд▓рдЧ рд╣реИ, рдЖрдкрдХреЗ рдУрдПрд╕ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рд╡рд┐рдВрдбреЛрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬрдм рдореИрдВ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдЖрдИрдИ рдФрд░ рдХреНрд░реЛрдо рджреЛрдиреЛрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣рд╛рдБ рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ,
рдпрд╣ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреЗ рд╕рд╛рде рдорд╛рдиреНрдп рд╣реИ .... рдореИрдВ рдЗрд╕реЗ рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА 2.3.1 рдФрд░ рдПрдХ рдЕрд▓рдЧ рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЦрд╛рддреЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ ...
рд▓реЗрдХрд┐рди рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА 2.4.1 рдФрд░ 2.4.0 рдкрд░ рдПрдХ рдмрдЧ рд╣реИ
рд╣рд╛рдп @ danielfm123 , рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреА рд╣реИ, рдФрд░ рдореИрдВ ShinyProxy 2.4.0/1 рдореЗрдВ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ_рдпреВрд░реА рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред
рдХреНрдпрд╛ рдЖрдк рдирд┐рдореНрди рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдЕрдВрдХ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ? рдЗрд╕ рддрд░рд╣ рдореИрдВ рдЗрд╕реЗ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреЛрдИ рдмрдЧ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдореЗрд░реЗ рд╕рд╛рде рднреА рд╡рд╣реА рджрд┐рдХреНрдХрдд рд╣реИред
keycloak, apache2 рд░рд┐рд╡рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдФрд░ рд╢рд╛рдЗрдиреАрдкреНрд░реЙрдХреНрд╕реА 2.3.1 рдХреЗ рд╕рд╛рде рд╕реЗрдЯрдЕрдк рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдбреЙрдХрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА рдЪрд▓рд╛рддрд╛ рд╣реВрдВред Shinyproxy https://testauth.example.com рдкрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ
рдЬрдм рдореИрдВ рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА 2.4.1 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ_рдпреВрд░реА рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдЖрдИрдкреА (http://192.168.51.27:8082) рд╣реЛрддрд╛ рд╣реИ, рдЙрд╕ рдкрддреЗ рдХреЗ рдмрдЬрд╛рдп рдЬреЛ рдмрд╛рд╣рд░ рд╕реЗ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ: "рдЕрдорд╛рдиреНрдп рдкреИрд░рд╛рдореАрдЯрд░: рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ_рд░реА"ред
рдпрд╣ рдореЗрд░реЗ application.yml рдХрд╛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ:
proxy:
title: AUTHTEST
hide-navbar: false
template-path: /templates
favicon-path: /www/favicon.png
heartbeat-rate: 10000
heartbeat-timeout: 600000
port: 8080
admin-groups: admin
container-wait-time: 30000
authentication: keycloak
keycloak:
realm: shinyr
auth-server-url: http://192.168.51.122:8080/auth
resource: shinyr
credentials-secret: <secret>
docker:
internal-networking: true
specs:
- id: test
display-name: Euler App
description: Test App
container-cmd: ["R", "-e", "shiny::runApp('/root/euler')"]
container-image: saletelligence/test
container-network: authtest_authtest_net
access-groups: [admin, pm]
logging:
file:
shinyproxy.log
server:
useForwardHeaders: true
рдпрд╣ рдЕрдкрд╛рдЪреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ:
<VirtualHost *:443>
RequestHeader set X-Forwarded-Proto "https"
RequestHeader set X-Forwarded-Port "443"
ServerName testauth.example.com
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket
RewriteRule /(.*) ws://192.168.51.27:8082/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket
RewriteRule /(.*) http://192.168.51.27:8082/$1 [P,L]
ProxyRequests Off
ProxyPass "/" "http://192.168.51.27:8082/"
ProxyPassReverse "/" "http://192.168.51.27:8082/"
SSLProxyEngine On
SSLEngine On
SSLCertificateFile /etc/apache2/sslcert/example.crt
SSLCertificateKeyFile /etc/apache2/sslcert/example_pem.key
SSLCACertificateFile /etc/apache2/sslcert/example_bundle.pem
</VirtualHost>
рдирдорд╕реНрддреЗ @eastclintw00d
рдХреГрдкрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:
server:
forward-headers-strategy: "native"
рдХреЗ рдмрдЬрд╛рдп
server:
useForwardHeaders: true
рдзрдиреНрдпрд╡рд╛рдж!
рдирдорд╕реНрддреЗ @LEDfan
рдЬрд┐рд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред
рддрддреНрдХрд╛рд▓ рдЕрдиреБрдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдзрдиреНрдпрд╡рд╛рдж!
рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдкреИрдХреЗрдЬ рдХреЛ рдорд╛рд░рддрд╛ рд╣реИ DT
@ danielfm123 рдХреНрдпрд╛ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдЖрдк рдЪрдордХрджрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА 2.4.1 рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ? рдбреАрдЯреА рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
@ danielfm123 @eastclintw00d POST рдЕрдиреБрд░реЛрдз (рдЬреИрд╕реЗ DT рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП) рд╡рд░реНрддрдорд╛рди ShinyProxy (2.4.1) рдХреЗ рд╕рд╛рде OIDC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ @LEDfan рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛
POST рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдЕрдм 2.4.2 рд░рд┐рд▓реАрдЬ рдореЗрдВ рддрдп рдХреА рдЧрдИ рд╣реИ
рдореВрд▓ рдореБрджреНрджреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рджреВрдВрдЧрд╛, рддрд╛рдХрд┐ рдореБрджреНрджреЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрдирд╛рдП рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд░рд╣реЗрдВред
рдмреЗрд╢рдХ, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдЕрдЧрд░ рдЖрдкрдХреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдЖрддреА рд╣реИ рддреЛ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓рдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВ!