āĻļā§āĻā§āĻā§āĻāĻž, āĻāĻŽāĻ°ā§āĻĄāĻ¸. āĻāĻŽāĻžāĻ° āĻ¯ā§āĻĻā§āĻ§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ¸ā§āĻ¨ā§āĻĻāĻ°
āĻŦāĻ¨ā§āĻ§ā§āĻ°āĻž āĻāĻŽāĻžāĻā§ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻāĻžāĻŽāĻžāĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ āĻŦāĻ˛ā§āĻāĻŋāĻ˛, āĻāĻŦāĻ āĻāĻŽāĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻāĻā§āĻ˛āĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻā§āĻ¨ā§ āĻāĻ¨āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§, āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻāĻĨāĻž āĻŽāĻ¨ā§ āĻ°ā§āĻā§āĻāĻŋāĻ˛āĻžāĻŽ
āĻ
āĻŦāĻļā§āĻ¯āĻ, āĻāĻ¤ā§āĻ¸āĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻ¨āĻ¨ āĻāĻ°āĻžāĻ° āĻāĻā§, āĻāĻŽāĻŋ āĻĻā§āĻā§āĻāĻŋāĻ˛āĻžāĻŽ āĻ¯ā§ āĻā§āĻ°ā§āĻŽ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻš āĻā§āĻ¨āĻžāĻ°ā§āĻ āĻāĻ°āĻž āĻāĻŋāĻĒ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖāĻžāĻāĻžāĻ°āĻāĻŋ āĻā§āĻĨāĻžāĻ¯āĻŧ āĻā§āĻ¨ā§āĻā§, āĻāĻŦāĻ āĻ¸ā§āĻāĻžāĻ¨ā§ "āĻŦā§āĻ˛āĻŦ:" āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻāĻŋ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻāĻŽāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻā§, āĻāĻšā§ā§ˇ āĻāĻāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻ¸ā§āĻĒāĻˇā§āĻ āĻšāĻ¯āĻŧā§ āĻā§āĻā§ āĻ¯ā§ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋ āĻĒāĻĨā§ āĻāĻŋāĻā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻ¨āĻž, āĻāĻ¸āĻ˛ā§, āĻāĻāĻŋ āĻ¸āĻŦāĻ js āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻĒā§āĻ°āĻā§āĻ¤āĻĒāĻā§āĻˇā§, āĻāĻŋāĻĒ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖāĻžāĻāĻžāĻ°āĻāĻŋ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ, āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ° āĻāĻŦāĻ āĻāĻžāĻāĻžāĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ¨āĻŋāĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĨ¤ āĻ¸ā§āĻā§āĻ˛ā§. āĻ¸ā§āĻ¨ā§āĻĻāĻ°ā§āĻ¯ āĻšāĻ˛ āĻ¯ā§ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ
āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻāĻŋ āĻāĻžāĻāĻāĻž āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻŋ āĻāĻŽāĻžāĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋ āĻā§ āĻāĻŋāĻ˛ āĻ¤āĻž āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻžāĻŦāĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻŋāĨ¤ āĻāĻžāĻāĻāĻŋ āĻāĻ āĻāĻžāĻ°āĻŖā§ āĻāĻāĻŋāĻ˛ āĻāĻŋāĻ˛ āĻ¯ā§ āĻāĻŽāĻŋ āĻāĻ āĻļāĻ°ā§āĻ¤ āĻĨā§āĻā§ āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤ āĻšāĻ¤ā§ āĻāĻžāĻāĻ¨āĻŋ āĻ¯ā§ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻāĻŋ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻĻā§āĻ§ āĻĢā§āĻ°āĻ¨ā§āĻ-āĻāĻ¨ā§āĻĄ āĻĨāĻžāĻāĻŦā§, āĻā§āĻ¨āĻ āĻŦā§āĻ¯āĻžāĻ-āĻāĻ¨ā§āĻĄ āĻāĻžāĻĄāĻŧāĻžāĻāĨ¤ āĻ
āĻŦāĻļā§āĻ¯āĻ, āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸āĻšāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻšāĻŦā§ āĻ¨ā§āĻĄāĻāĻā§āĻ˛āĻŋāĻā§ āĻā§āĻ¨ā§ āĻāĻ¨āĻž āĻāĻŦāĻ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ˛āĻŋāĻā§āĻāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖāĻžāĻāĻžāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻŦāĻžāĻ§ā§āĻ¯ āĻāĻ°āĻžāĨ¤
āĻāĻ¸āĻ˛ā§, āĻ
āĻ¨ā§āĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻŋāĻ˛ āĻ¨āĻž. āĻāĻ°āĻ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻŽāĻ¨ā§ āĻāĻ¸ā§āĻāĻŋāĻ˛āĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ˛āĻŋāĻā§āĻ āĻĒā§āĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻŋāĻĒ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖāĻžāĻāĻžāĻ° āĻĒā§āĻ¤ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ¨āĻ¸ā§āĻ˛ā§ āĻ
āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
āĻĢāĻ˛ā§ āĻāĻŋāĻĒ āĻāĻ°ā§āĻāĻžāĻāĻā§āĻ° āĻŦā§āĻļ āĻāĻŋāĻā§ āĻā§āĻā§āĻ¸āĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻāĻāĻ¨ āĻāĻŋāĻ˛ āĻŦā§āĻļ āĻāĻŋāĻā§āĻāĻž, āĻāĻā§āĻˇāĻ°āĻŋāĻ āĻ
āĻ°ā§āĻĨā§ āĻāĻ¯āĻŧā§āĻ āĻāĻŋāĻ˛ā§āĻŦāĻžāĻāĻāĨ¤ āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻŋāĻ˛ āĻā§āĻ¨āĻžāĻ°ā§āĻ āĻāĻ°āĻž āĻāĻŋāĻĒ āĻāĻ°ā§āĻāĻžāĻāĻ āĻĨā§āĻā§ āĻŦā§āĻ¸64 āĻ¸ā§āĻā§āĻ°āĻŋāĻāĻāĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻāĻŦāĻ āĻāĻ¨āĻ¸ā§āĻ˛ā§ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ¸āĻš āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻĨāĻžāĻāĻžāĻāĻžāĻ˛ā§āĻ¨ āĻāĻāĻŋāĻā§ āĻŦāĻžāĻĢāĻžāĻ°ā§ āĻĢā§āĻ˛ā§ āĻĻā§āĻāĻ¯āĻŧāĻžāĨ¤
echo 'base64string' | base64 --decode > config.zip
āĻāĻŽāĻ°āĻž āĻāĻ āĻāĻāĻ āĻāĻŋāĻĒ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻŋāĻĒ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖāĻžāĻāĻžāĻ° āĻ¤ā§āĻ°āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ:
$scope.downloadZip = function() {
var zip = new JSZip();
var sourceCodes = $window.document.querySelectorAll('main .file .code.source');
for (var i = 0; i < sourceCodes.length; i++) {
var sourceCode = sourceCodes[i];
var name = sourceCode.dataset.filename;
var content = sourceCode.children[0].children[0].innerText;
if (!$scope.isSymlink() && name.match(/^sites-available//)) {
name = name.replace(/^sites-available//, 'sites-enabled/');
}
zip.file(name, content);
if (name.match(/^sites-available//)) {
zip.file(name.replace(/^sites-available//, 'sites-enabled/'), '../' + name, {
unixPermissions: parseInt('120755', 8),
});
}
}
zip.generateAsync({
type: 'blob',
platform: 'UNIX',
}).then(function(content) {
saveAs(content, 'nginxconfig.io-' + $scope.getDomains().join(',') + '.zip');
});
gtag('event', $scope.getDomains().join(','), {
event_category: 'download_zip',
});
};
āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻŦā§āĻļ āĻ¸āĻšāĻ
saveAs(content, 'nginxconfig.io-' + $scope.getDomains().join(',') + '.zip');
āĻ¯ā§āĻāĻžāĻ¨ā§ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻšāĻ˛ āĻāĻŋāĻĒ āĻāĻ°ā§āĻāĻžāĻāĻā§āĻ° āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ āĻŦā§āĻ˛āĻŦ āĻ āĻŦāĻā§āĻā§āĻāĨ¤
āĻ āĻŋāĻ āĻāĻā§, āĻāĻŽāĻžāĻā§ āĻ¯āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻž āĻšāĻ˛ āĻāĻāĻŋāĻ° āĻĒāĻžāĻļā§ āĻāĻ°ā§āĻāĻāĻŋ āĻŦā§āĻ¤āĻžāĻŽ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¯āĻāĻ¨ āĻāĻŽāĻŋ āĻāĻāĻŋāĻ¤ā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°āĻŋ, āĻāĻŽāĻŋ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ āĻāĻŋāĻĒ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖāĻžāĻāĻžāĻ°āĻāĻŋ āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ°ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻŦ āĻ¨āĻž, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻĨā§āĻā§ āĻŦā§āĻ¸64 āĻā§āĻĄāĻāĻŋ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻāĻāĻā§ āĻā§āĻ°āĻžāĻā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻĒāĻ°, āĻāĻŽāĻŋ āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄāĻāĻŋāĻĒā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ 2āĻāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĒā§āĻ¯āĻŧā§āĻāĻŋ:
$scope.downloadZip = function() {
generateZip(function (content) {
saveAs(content, 'nginxconfig.io-' + $scope.getDomains().join(',') + '.zip');
});
gtag('event', $scope.getDomains().join(','), {
event_category: 'download_zip',
});
};
$scope.downloadBase64 = function() {
generateZip(function (content) {
var reader = new FileReader();
reader.readAsDataURL(content);
reader.onloadend = function() {
var base64 = reader.result.replace(/^data:.+;base64,/, '');
// в ĐŋĐĩŅĐĩĐŧĐĩĐŊĐŊОК base64 ĐēĐ°Đē ŅаС ĐŊŅĐļĐŊŅĐš ĐŧĐŊĐĩ zip Đ°ŅŅ
ив в видĐĩ base64 ŅŅŅĐžĐēи
}
});
gtag('event', $scope.getDomains().join(','), {
event_category: 'download_base64',
});
};
āĻāĻĒāĻ¨āĻŋ āĻšāĻ¯āĻŧāĻ¤ā§ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻā§āĻ¨, āĻāĻŽāĻŋ āĻāĻŋāĻĒ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖāĻžāĻāĻžāĻ°ā§āĻ° āĻĒā§āĻ°āĻāĻ¨ā§āĻŽāĻā§ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻāĻŋāĻĒ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ āĻ¸āĻ°āĻŋāĻ¯āĻŧā§ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ, āĻāĻŦāĻ āĻāĻ°āĻ āĻ
āĻ¨ā§āĻ āĻāĻŋāĻā§āĨ¤ āĻāĻāĻŋ AngularJS, āĻāĻŦāĻ āĻ˛ā§āĻāĻ āĻ¨āĻŋāĻā§āĻ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ˛ā§āĻā§ āĻĨāĻžāĻā§āĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°ā§āĻ¨āĻ¨āĻŋāĨ¤ downloadZip āĻāĻāĻ¨āĻ āĻāĻāĻāĻŋ āĻāĻāĻāĻĒā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ saveAs āĻāĻ°ā§āĻā§, āĻ¯āĻāĻ¨ downloadBase64 āĻāĻŋāĻā§āĻāĻž āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻŋāĻā§ āĻāĻ°ā§āĻā§āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ FileReader āĻ
āĻŦāĻā§āĻā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ āĻ¯āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ html5 āĻ āĻāĻ¸ā§āĻā§ āĻāĻŦāĻ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻŦā§āĻļ
position: absolute;
z-index: -1;
opacity: 0;
āĻ¯āĻž āĻāĻŽāĻžāĻā§ āĻāĻāĻ¯āĻŧ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋāĻā§ āĻĻā§āĻļā§āĻ¯ āĻĨā§āĻā§ āĻāĻĄāĻŧāĻžāĻ˛ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻĒā§āĻ°āĻā§āĻ¤āĻĒāĻā§āĻˇā§ āĻāĻāĻŋāĻā§ āĻĒā§āĻˇā§āĻ āĻžāĻ¯āĻŧ āĻ°ā§āĻā§ āĻ¯ā§āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻ¯āĻŧā§āĻ˛āĻž, āĻāĻžāĻ¸ā§āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻ¯āĻāĻ¨ āĻāĻŽāĻŋ āĻāĻŽāĻžāĻ° āĻŦā§āĻ¤āĻžāĻŽā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°āĻŋ, āĻŦāĻžāĻĢāĻžāĻ°ā§ āĻāĻāĻ°āĻāĻŽ āĻāĻāĻāĻŋ āĻ˛āĻžāĻāĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛:
echo 'base64string' | base64 --decode > config.zip
āĻ¯āĻž āĻāĻŽāĻŋ āĻā§āĻŦāĻ˛ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻ¨āĻ¸ā§āĻ˛ā§ āĻāĻāĻā§āĻāĻŋ āĻāĻŦāĻ āĻ
āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻš āĻāĻāĻāĻŋ āĻāĻŋāĻĒ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖāĻžāĻāĻžāĻ° āĻĒā§āĻ¯āĻŧā§āĻāĻŋāĨ¤
āĻāĻŦāĻ, āĻ
āĻŦāĻļā§āĻ¯āĻ, āĻāĻŽāĻŋ āĻ˛ā§āĻāĻā§āĻ° āĻāĻžāĻā§ āĻāĻāĻāĻŋ āĻāĻžāĻ¨ āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻĒāĻžāĻ āĻŋāĻ¯āĻŧā§āĻāĻŋ, āĻāĻžāĻ°āĻŖ ... āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻāĻŋ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻŦāĻ āĻĒā§āĻ°āĻžāĻŖāĻŦāĻ¨ā§āĻ¤, āĻāĻŽāĻŋ āĻ˛ā§āĻāĻā§āĻ° āĻāĻžāĻ āĻĨā§āĻā§ āĻāĻĒāĻĄā§āĻ āĻĻā§āĻāĻ¤ā§ āĻāĻžāĻ āĻāĻŦāĻ āĻāĻŽāĻžāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻŦā§āĻ¤āĻžāĻŽ āĻāĻā§) āĻ¯āĻžāĻ°āĻž āĻāĻā§āĻ°āĻšā§ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻŋ āĻāĻāĻžāĻ¨ā§
āĻ¸āĻŦāĻžāĻāĻā§ āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ā§āĻ° āĻļā§āĻā§āĻā§āĻāĻž)
āĻāĻ¤ā§āĻ¸: www.habr.com