$> set -o pipefail
$> fortune | head -1 > /dev/null && echo "ะะพะฒะตะทะปะพ!" || echo "ะั ะฟัะพะธะณัะฐะปะธ"
ะะพะฒะตะทะปะพ!
$> fortune | head -1 > /dev/null && echo "ะะพะฒะตะทะปะพ!" || echo "ะั ะฟัะพะธะณัะฐะปะธ"
ะั ะฟัะพะธะณัะฐะปะธ
เชคเซ fortune
เชตเชฟเชจเชพ เชถเชฐเชคเซ เชเชพเชฐเซเชฏเชเซเชฐเชฎ exit(rand())
.
เชถเซเช เชคเชฎเซ เชธเชฎเชเชพเชตเชถเซ? เช เชนเซเช เชถเซเช เชเซเชเซเช เชเซ?
เชเซเชคเชพเชคเซเชฎเช-เชเชคเชฟเชนเชพเชธเชฟเช เชตเชฟเชทเชฏเชพเชเชคเชฐ
เชนเซเช เช เชนเซเชเชเชจเชฌเช เชธเชพเชฅเซ เชชเซเชฐเชฅเชฎเชตเชพเชฐ เชเช เชเซเชตเชพเชฐเซเชเชฐ เชชเชนเซเชฒเชพ เชชเชฐเชฟเชเชฟเชค เชฅเชฏเซ เชนเชคเซ. เชชเชเซ FaxNET เชฎเชพเช เชเซเชเชตเซ เชฎเชพเชเซ เชคเซ เชฎเชพเชฐเชซเชคเซ เช
เชจเซเช เชเชชเชฏเซเชเชฟเชคเชพเช เชฌเชจเชพเชตเชตเซ เชเชฐเซเชฐเซ เชนเชคเซ
เชธเซเชจเซเชกเชฎเซเชเชฒ เช เชจเซ uucp/uupc เชฎเชพเช เชฌเชเซเชธ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพเชจเชพ เชฎเชพเชฐเชพ เช เชเชพเชเชจเชพ เช เชจเซเชญเชตเซ "เชธเชเชชเซเชฐเซเชฃ เชญเซเชฒ เชนเซเชจเซเชกเชฒเชฟเชเช" เชฎเชพเช เชฎเชพเชฐเชพ เชเชเชคเชฎเชพเช เชตเชงเชพเชฐเซ เชเชฐเซเชฏเซ. เชคเซ เชตเชพเชฐเซเชคเชพเชจเซ เชตเชฟเชเชคเซเชฎเชพเช เชกเซเชฌเชเซ เชฎเชพเชฐเชตเชพเชจเซ เชเซเช เช เชฐเซเชฅ เชจเชฅเซ, เชชเชฐเชเชคเซ เชฎเซเช 10-14 เชเชฒเชพเช เชฎเชพเชเซ เชฌเซ เช เช เชตเชพเชกเชฟเชฏเชพ เชธเซเชงเซ เช เชนเซเชเชเชจเชฌเช เชธเชพเชฅเซ เชธเชเชเชฐเซเชท เชเชฐเซเชฏเซ. เชคเซเชฅเซ, เชคเซ เชฏเชพเชฆ เชเชตเซเชฏเซเช, เช เชจเซ เชเชเชเชพเชฒเซ เช เชเซเชจเซ เชเชณเชเชพเชฃ เชซเชฐเซเชฅเซ เชฎเซเชฒเชพเชเชพเชค เชฒเซเชตเชพ เชฎเชพเชเซ เชฌเชเชง เชฅเช เชเช.
TL; DR เชเชตเชพเชฌ
เชเชชเชฏเซเชเชฟเชคเชพ head
เชเชฐเซ เชถเชเซ เชเซ เชฅเซ เชเซเชจเชฒ เชฌเชเชง เชเชฐเซ fortune
เชคเชฐเชค เช เชเชฒเชฆเซ เชคเซ เชชเซเชฐเชฅเชฎ เชชเชเชเซเชคเชฟ เชตเชพเชเชเซ เชเซ. เชเซ fortune
เชเช เชเชฐเชคเชพเช เชตเชงเซ เชฒเชพเชเชจ เชเชเชเชชเซเช เชเชฐเซ เชเซ, เชชเชเซ เช
เชจเซเชฐเซเชช เชเซเชฒ write()
เชญเซเชฒ เชชเชฐเชค เชเชฐเชถเซ เช
เชฅเชตเชพ เชเชพเชฃ เชเชฐเชถเซ เชเซ เชตเชฟเชจเชเชคเซ เชเชฐเชคเชพเช เชเชเชพ เชฌเชพเชเชเซเชธ เชเชเชเชชเซเช เชเซ. เชฌเชฆเชฒเชพเชฎเชพเช, เชธเชพเชตเชเซเชคเซเชชเซเชฐเซเชตเชเชจเซ เชญเซเชฒ เชนเซเชจเซเชกเชฒเชฟเชเช เชธเชพเชฅเซ เชฒเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ fortune
เช เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเชจเซ เชคเซเชจเซ เชฌเชนเชพเชฐ เชจเซเชเชณเชตเชพเชจเซ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช เชชเซเชฐเชคเชฟเชฌเชฟเชเชฌเชฟเชค เชเชฐเชตเชพเชจเซ เช
เชงเชฟเชเชพเชฐ เชเซ. เชชเชเซ เชธเซเชฅเชพเชชเชจ เชเชพเชฐเชฃเซ set -o pipefail
เช เชเชพเชฎ เชเชฐเชถเซ || echo "ะั ะฟัะพะธะณัะฐะปะธ"
.
เชเซ เชเซ, head
เชคเซ เชธเชฎเชฏเชธเชฐ เชจ เชเชฐเซ เชถเชเซ เชชเชนเซเชฒเชพ เชฌเชเชง เชเชฐเซ fortune
เชกเซเชเชพ เชเชเชเชชเซเช เชเชฐเชตเชพเชจเซเช เชธเชฎเชพเชชเซเชค เชเชฐเชถเซ. เชชเชเซ เชคเซ เชเชพเชฎ เชเชฐเชถเซ && echo "ะะพะฒะตะทะปะพ!"
.
เชฎเชพเชฐเชพ เชเชเชจเชพ เชเชเชฎเชพเช GNUMakefile
echo '#define MDBX_BUILD_COMPILER "$(shell set -o pipefail; $(CC) --version | head -1 || echo 'Please use GCC or CLANG compatible compiler')"'
เชฎเชพเชจเชตเชฎเชพเช เช เชจเซเชตเชพเชฆเชฟเชค
เชคเซ เช
เชนเซเช เชธเชพเชฎเชพเชจเซเชฏ เชเซ --version
เชคเซ เชชเซเชเซ เชเซ เชเซ เชคเซ เชเซเชฃ เชเซ, เช
เชจเซ เชเซ เชตเชฟเชเชฒเซเชช เชธเชฎเชฐเซเชฅเชฟเชค เชจเชฅเซ, เชคเซ เชธเซเชเชฌ เชฆเชพเชเชฒ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ "เชเซเชชเชพ เชเชฐเซเชจเซ GCC เช
เชฅเชตเชพ CLANG เชธเซเชธเชเชเชค เชเชฎเซเชชเชพเชเชฒเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเซ".
เชเชฎเซ เชเซ
#define MDBX_BUILD_COMPILER "lcc:1.23.20:Sep--4-2019:e2k-v3-linux Please use GCC or CLANG compatible compiler"
เชธเชพเชเซเช เชเชนเซเช เชคเซ, เชนเซเช เชฎเชพเชฐเชพ เชเซเชจเชพ "เชเชณเชเชพเชฃ"เชจเซ เชคเชฐเชค เช เชเชณเชเซ เชถเชเซเชฏเซ เชจเชนเซเช. เชคเชฆเซเชชเชฐเชพเชเชค, เชชเซเชฐเซเชเซเชเซเชเชจเซเช เชเชฒเชฌเซเชฐเชธ เชชเชฐ เช เชจเซ Alt เชธเชนเชฟเชค เชเชฃเชพเช เชตเชฟเชตเชฟเชง เชตเชฟเชคเชฐเชฃเซ เชนเซเช เชณ เชเชฃเซ เชตเชเชค เชชเชฐเซเชเซเชทเชฃ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชเซ. เชตเชฟเชตเชฟเชง เชเชฎเซเชชเชพเชเชฒเชฐเซเชธ เชธเชพเชฅเซ, GNU เชฎเซเช เช เชจเซ เชฌเซเชถเชจเชพ เชตเชฐเซเชเชจ. เชคเซเชฅเซ, เชนเซเช เช เชนเซเช เชฎเชพเชฐเซ เชญเซเชฒ เชเซเชตเชพ เชฎเชพเชเชเชคเซ เชจ เชนเชคเซ.
เชเซเชฏเชพเชฐเซ เชธเชฎเชธเซเชฏเชพเชจเซเช เชชเซเชจเชเชเชคเซเชชเชพเชฆเชจ เชเชฐเชตเชพเชจเซ เช
เชจเซ/เช
เชฅเชตเชพ เชถเซเช เชเชพเชฒเซ เชฐเชนเซเชฏเซเช เชเซ เชคเซ เชธเชฎเชเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเชคเซ เชตเชเชคเซ, เชตเชงเซ เชตเชฟเชเชฟเชคเซเชฐ เชตเชธเซเชคเซเช เชฅเชตเชพ เชฒเชพเชเซ.
เชเชฆเซเชถ เชตเชพเชเซเชฏ เชเซเชกเชฃเซ:
echo "#define MDBX_BUILD_COMPILER '$(set -o pipefail; LC_ALL=C cc --version | head -1 || echo "Please use GCC or CLANG compatible compiler")'"
เชฆเชฐเซเช เชธเชฎเชฏเซ เช เชจเซ เชชเชเซ เชคเซ เชตเชงเชพเชฐเชพเชจเซ เชเซเชเซเชธเซเช เชเชคเซเชชเชจเซเชจ เชเชฐเชถเซ, เชชเชเซ เชจเชนเซเช... เชเชฃเซเชตเชพเชฐ เชตเชฟเชเชฒเซเชชเซเชฎเชพเชเชฅเซ เชเช เชฒเชพเชเชฌเชพ เชธเชฎเชฏ เชธเซเชงเซ เชตเชณเชเซ เชฐเชนเซ เชเซ, เชชเชฐเชเชคเซ เชเซ เชคเชฎเซ เชฒเชพเชเชฌเชพ เชธเชฎเชฏ เชธเซเชงเซ เชชเซเช เชเชฐเซ เชเซ, เชคเซ เชคเชฎเชจเซ เชนเชเชฎเซเชถเชพ เชฌเชเชจเซ เชฎเชณเซ เชเซ!
เช
เชฒเชฌเชคเซเชค, strace
เชฎเชพเชฐเซเช เชฆเซเชตเชพเชฐเชพ, เชเซเชเชชเชฃ เชธเซเชตเชพเชญเชฟเชฎเชพเชจเซ เชเซเชฎ strace
เชชเซเชฐเชเชจเชจ เชจ เชเชฐเชตเชพเชจเซเช เชชเชธเชเชฆ เชเชฐเซ เชเซ.
เชคเซ เชถเซเช เชฅเช เชฐเชนเซเชฏเซเช เชเซ?
- เชเชชเชฏเซเชเชฟเชคเชพ
head
เชตเชฟเชจเชเชคเซ เชเชฐเซเชฒ เชธเชเชเซเชฏเชพ เชตเชพเชเชเชคเชพเชจเซ เชธเชพเชฅเซ เช เชตเชเชเชพเชคเซ เชเซเชจเชฒเชจเซ เชฌเชเชง เชเชฐเชตเชพเชจเซ เช เชงเชฟเชเชพเชฐ (เช เชฅเชตเชพ เชคเซเชจเชพ เชฌเชฆเชฒเซ, เชซเชฐเช เชชเชพเชกเชตเชพเชฎเชพเช เชเชตเซ เชเซ) เชเซ. - เชกเซเชเชพ-เชเชจเชฐเซเชเชฟเชเช เชชเซเชฐเซเชเซเชฐเชพเชฎ-เชฐเชพเชเชเชฐ (เช เชเชฟเชธเซเชธเชพเชฎเชพเช
cc
) เชเชฐเซ เชถเชเซ เชเซ เชฌเชนเซเชตเชฟเชง เชฐเซเชเชพเช เชเชพเชชเซ เช เชจเซ เชฎเชซเชค เชฌเชนเซเชตเชฟเชง เชเซเชฒเซเชธ เชฆเซเชตเชพเชฐเชพ เช เชเชฐเซwrite()
. - เชเซ เชฒเซเชเชเชจเซ เชฌเชพเชเซ เชชเชฐ เชฐเซเชเซเชฐเซเชกเชฟเชเช เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เชคเซ เชชเชนเซเชฒเชพเช เชตเชพเชเช เชชเชพเชธเซ เชคเซเชจเซ เชฌเชพเชเซเชจเซ เชเซเชจเชฒ เชฌเชเชง เชเชฐเชตเชพเชจเซ เชธเชฎเชฏ เชนเชถเซ, เชชเชเซ เชฒเซเชเชเชจเซ เชญเซเชฒ เชชเซเชฐเชพเชชเซเชค เชฅเชถเซ.
- เชฒเซเชเช เชเชพเชฐเซเชฏเชเซเชฐเชฎ เชจเซ เชฎเชพเชเซเชจเชพ เชนเชเชฆเชพเชฐ เชฌเชเชจเซ เชเซเชจเชฒ เชฒเชเชตเชพเชจเซ เชญเซเชฒเชจเซ เช เชตเชเชฃเซ เชเซ เช เชจเซ เชคเซเชจเซ เชคเชฎเชพเชฐเชพ เชชเซเชฐเซเชฃเชคเชพ เชเซเชกเชฎเชพเช เชชเซเชฐเชคเชฟเชฌเชฟเชเชฌเชฟเชค เชเชฐเซ เชเซ.
- เชเชจเซเชธเซเชเซเชฒเซเชถเชจเชจเซ เชเชพเชฐเชฃเซ
set -o pipefail
เชชเชพเชเชชเชฒเชพเชเชจ เชชเซเชฐเซเชฃเชคเชพ เชเซเชก เชฌเชฟเชจ-เชถเซเชจเซเชฏ (เชญเซเชฒเชญเชฐเซเชฏเซ) เชนเชถเซ เชเซ เชชเชฐเชฟเชฃเชพเชฎ เชเชเชพเชฎเชพเช เชเชเชพ เชเช เชคเชคเซเชตเชฎเชพเชเชฅเซ เชฌเชฟเชจ-เชถเซเชจเซเชฏ เชนเชถเซ, เช เชจเซ เชชเชเซ เชคเซ เชเชพเชฐเซเชฏ เชเชฐเชถเซ|| echo "Please use GCC or CLANG compatible compiler"
.
เชฒเซเชเช เชชเซเชฐเซเชเซเชฐเชพเชฎ เชธเชฟเชเซเชจเชฒเซ เชธเชพเชฅเซ เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ เชคเซเชจเชพ เชเชงเชพเชฐเซ เชตเชฟเชตเชฟเชงเชคเชพ เชนเซเช เชถเชเซ เชเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชชเซเชฐเซเชเซเชฐเชพเชฎ เช
เชธเชพเชงเชพเชฐเชฃ เชฐเซเชคเซ เชธเชฎเชพเชชเซเชค เชฅเช เชถเชเซ เชเซ (เชจเซเชจ-เชถเซเชจเซเชฏ/เชญเซเชฒ เชธเชฎเชพเชชเซเชคเชฟ เชธเซเชฅเชฟเชคเชฟเชจเซ เชธเซเชตเชเชพเชฒเชฟเชค เชชเซเชขเซ เชธเชพเชฅเซ), เช
เชฅเชตเชพ write()
เชตเชฟเชจเชเชคเซ เชเชฐเซเชฒ เช
เชจเซ เชธเซเช เชเชฐเชคเชพ เชเชเชพ เชฌเชพเชเชเซเชธ เชฒเชเชตเชพเชจเซเช เชชเชฐเชฟเชฃเชพเชฎ เชชเชฐเชค เชเชฐเชถเซ errno = EPIPE
.
เชฆเซเชทเซ เชเซเชฃ?
เชตเชฐเซเชฃเชตเซเชฒ เชเชฟเชธเซเชธเชพเชฎเชพเช เชฌเชงเซเช เชฅเซเชกเซเช เชฅเซเชกเซเช. เชฎเชพเช เชนเซเชจเซเชกเชฒ เชเชฐเชตเชพเชฎเชพเช เชญเซเชฒ cc
(lcc:1.23.20:Sepโ4-2019:e2k-v3-linux) เชจเชฅเซ เชจเชฟเชฐเชฐเซเชฅเช เชเชฃเชพ เชเชฟเชธเซเชธเชพเชเชฎเชพเช เชธเชพเชตเชงเชพเชจเซ เชธเชพเชฅเซ เชญเซเชฒ เชเชฐเชตเซ เชตเชงเซ เชธเชพเชฐเซเช เชเซ, เชเซ เชเซ เช เชชเชฐเชเชชเชฐเชพเชเชค เชตเชฐเซเชคเชจ เชฎเชพเชเซ เชฐเชเชพเชฏเซเชฒ เชฌเซเชเชฒเชฐเชชเซเชฒเซเชเชฎเชพเช เช
เชเชพเชจเช เชเชพเชฎเซเช เชเชเชพเชเชฐ เชเชฐเซ เชเซ.
เชฎเชพเชฐเซ เชถเซเช เชเชฐเชตเซเช เชเซเชเช?
เชเซเชเซเช:
fortune | head -1 && echo "ะะพะฒะตะทะปะพ, ะฝะพ ะฒั ัะธัะบัะตัะต!" || echo "WTF?"
เชธเชพเชเซเช
-
(fortune && echo "ะฃัะฟะตัะฝะพ" || echo "ะัะธะฑะบะฐ") | head -1
เช เชนเซเช, เชจเซเชธเซเชเซเชก เชชเชพเชเชชเชฒเชพเชเชจ ("เชเซเชเชธเชจเซ เช เชเชฆเชฐ") เชธเซเชตเชพ เชเชชเชคเซ เชตเชเชคเซ เชเชฎเชพเชจเซเชก เชเชจเซเชเชฐเชชเซเชฐเซเชเชฐ เชฆเซเชตเชพเชฐเชพ เชชเชพเชเชชเชจเซ เชตเชนเซเชฒเซเช เชฌเชเชง เชเชฐเชตเชพเชจเซเช เชธเชเชเชพเชฒเชจ เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ. เชคเชฆเชจเซเชธเชพเชฐ, เชเซ
fortune
เชธเซเชฅเชฟเชคเชฟ, เชชเชเซ เชเชเชเชชเซเชเชฎเชพเช เชฌเชเชง เชเซเชจเชฒเชจเซ เชฒเซเชเชฟเชคเชฎเชพเช เชญเซเชฒเชจเซ เชเชพเชฃ เชเชฐเชถเซ|| echo "ะัะธะฑะบะฐ"
เชคเซ เชเซเชฏเชพเชเชฏ เชฎเชณเชถเซ เชจเชนเซเช, เชเชพเชฐเชฃ เชเซ เชเซเชจเชฒ เชชเชนเซเชฒเซเชฅเซ เช เชฌเชเชง เชเซ. -
fortune | cat - | head -1 && echo "ะฃัะฟะตัะฝะพ" || echo "ะัะธะฑะบะฐ"
เช เชนเซเช เชเชชเชฏเซเชเชฟเชคเชพ เชเซ
cat
เชกเซเชฎเซเชชเชฐ เชคเชฐเซเชเซ เชเชพเชฎ เชเชฐเซ เชเซ เชเชพเชฐเชฃ เชเซ เชคเซ เชญเซเชฒเชจเซ เช เชตเชเชฃเซ เชเซEPIPE
เชเชชเชพเชก เชชเชฐ. เชนเชพเชฒเชจเชพ เชจเชฟเชทเซเชเชฐเซเชท เชฎเชพเชเซ เช เชชเซเชฐเชคเซเช เชเซfortune
เชจเชพเชจเซ (เชเซเชเชฒเซเช เชฐเซเชเชพเช) เช เชจเซ เชเซเชจเชฒ เชฌเชซเชฐเชฎเชพเช เชฌเชเชงเชฌเซเชธเซ เชเซ (512 เชฌเชพเชเชเซเชธเชฅเซ โ64K เชธเซเชงเซ, เชฎเซเชเชพเชญเชพเชเชจเชพ OS โฅ4Kเชฎเชพเช). เชจเชนเชฟเชเชคเชฐ, เชธเชฎเชธเซเชฏเชพ เชชเชพเชเซ เชเชตเซ เชถเชเซ เชเซ.
เชเซเชตเซ เชฐเซเชคเซ เชฏเซเชเซเชฏ เชฐเซเชคเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเซ EPIPE
เช
เชจเซ เช
เชจเซเชฏ เชฐเซเชเซเชฐเซเชกเชฟเชเช เชญเซเชฒเซ?
เชคเซเชฏเชพเช เชเซเช เชเช เชฏเซเชเซเชฏ เชเชเซเชฒ เชจเชฅเซ, เชชเชฐเชเชคเซ เชคเซเชฏเชพเช เชธเชฐเชณ เชญเชฒเชพเชฎเชฃเซ เชเซ:
EPIPE
เชเชฐเซเชฐเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเซ เชเซเชเช (เช เชจเซ เชเชเซเชเชฟเช เชธเซเชเซเชเชธเชฎเชพเช เชชเซเชฐเชคเชฟเชฌเชฟเชเชฌเชฟเชค เชฅเชพเชฏ เชเซ) เชเซเชฏเชพเชฐเซ เชกเซเชเชพ เชเชเชเชชเซเช เชเชฐเซ เชเซ เชเซเชจเซ เช เชเชเชกเชฟเชคเชคเชพเชจเซ เชเชฐเซเชฐ เชนเซเชฏ เชเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเชฐเซเชเชพเชเชตเชฐเซเชธ เช เชฅเชตเชพ เชฌเซเชเช เชช เชเชชเชฏเซเชเชฟเชคเชพเชเชจเชพ เชธเชเชเชพเชฒเชจ เชฆเชฐเชฎเชฟเชฏเชพเชจ.EPIPE
เช เชตเชเชฃเชตเซเช เชตเชงเซ เชธเชพเชฐเซเช เชเซ เชฎเชพเชนเชฟเชคเซ เช เชจเซ เชธเชนเชพเชฏเช เชธเชเชฆเซเชถเชพเช เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชเชฐเชคเซ เชตเชเชคเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชตเชฟเชเชฒเซเชชเซ เชชเชฐ เชฎเชพเชนเชฟเชคเซ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชเชฐเชคเซ เชตเชเชคเซ--help
เช เชฅเชตเชพ--version
.- เชเซ เชเซเชก เชกเซเชตเชฒเชช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชฐเชนเซเชฏเซ เชนเซเชฏ เชคเซ เชคเซ เชชเชนเซเชฒเชพเช เชชเชพเชเชชเชฒเชพเชเชจเชฎเชพเช เชเชชเชฏเซเช เชเชฐเซ เชถเชเชพเชฏ เชเซ
| head
เชชเชเซEPIPE
เช เชตเชเชฃเชตเซเช เชตเชงเซ เชธเชพเชฐเซเช เชเซ, เช เชจเซเชฏเชฅเชพ เชฌเชนเชพเชฐ เชจเซเชเชณเชตเชพเชจเซ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเซ เช เชจเซ เชชเซเชฐเชคเชฟเชฌเชฟเชเชฌเชฟเชค เชเชฐเชตเซเช เชตเชงเซ เชธเชพเชฐเซเช เชเซ.
เชนเซเช เชเซเชฎเซ เชชเซเชฐเชคเซเชฏเซ เชเซเชคเชเซเชเชคเชพ เชตเซเชฏเชเซเชค เชเชฐเชตเชพเชจเซ เช เชคเช เชฒเซเชตเชพ เชฎเชพเชเชเซ เชเซเช
เชคเซเชจเซ เชเชพเชฒเซ เชฐเชพเชเซ เชเซเชฎเซเชฐเซเชกเซเชธ, เช
เชช
ะกะฟะฐัะธะฑะพ
เชฅเซ KDPV
เชธเซเชฐเซเชธ: www.habr.com