Read file block by block
This commit is contained in:
parent
2490ef0087
commit
3131f79f73
@ -1,139 +1,139 @@
|
||||
Ô XFNSY UWêYWJ ! LWFSIJ âRJ ! TM ! OJ YTRGJ à LJSTZC !
|
||||
OJZSJ, NQ FAFNY JSHTW IJ QTSLX OTZWX UFWRN STZX,
|
||||
NQ S'JS F UFX HTRUYé QJ STRGWJ ;
|
||||
NQ éYFNY à HJY âLJ Tù QJ GTSMJZW KQJZWNY ;
|
||||
NQ F HTSXNIéWé QF HWTNC IJ OéXZX-HMWNXY
|
||||
YTZYJ WFDTSSFSYJ IFSX Q'TRGWJ.
|
||||
Ô CKSXD ZBêDBO ! QBKXNO âWO ! YR ! TO DYWLO à QOXYEH !
|
||||
TOEXO, SV KFKSD OXMYB NO VYXQC TYEBC ZKBWS XYEC,
|
||||
SV X'OX K ZKC MYWZDé VO XYWLBO ;
|
||||
SV éDKSD à MOD âQO Yù VO LYXROEB PVOEBSD ;
|
||||
SV K MYXCSNéBé VK MBYSH NO TéCEC-MRBSCD
|
||||
DYEDO BKIYXXKXDO NKXC V'YWLBO.
|
||||
|
||||
NQ F INY : — « H'JXY QJ INJZ IJ UWTLWèX JY I'FRTZW.
|
||||
OéXZX, VZN ATNY YTS KWTSY HWTNY ATNW QJ KWTSY IZ OTZW.
|
||||
HMWNXY XTZWNY à VZN QJ WJUTZXXJ.
|
||||
UZNXVZ'NQ JXY RTWY UTZW STZX, OJ AJZC RTZWNW UTZW QZN ;
|
||||
IFSX XTS YTRGJFZ, ITSY O'FN QF UNJWWJ UTZW FUUZN,
|
||||
NQ R'FUUJQQJ I'ZSJ ATNC ITZHJ.
|
||||
SV K NSD : — « M'OCD VO NSOE NO ZBYQBèC OD N'KWYEB.
|
||||
TéCEC, AES FYSD DYX PBYXD MBYSD FYSB VO PBYXD NE TYEB.
|
||||
MRBSCD CYEBSD à AES VO BOZYECCO.
|
||||
ZESCAE'SV OCD WYBD ZYEB XYEC, TO FOEH WYEBSB ZYEB VES ;
|
||||
NKXC CYX DYWLOKE, NYXD T'KS VK ZSOBBO ZYEB KZZES,
|
||||
SV W'KZZOVVO N'EXO FYSH NYEMO.
|
||||
|
||||
« XF ITHYWNSJ JXY QJ HNJQ JSYW'TZAJWY ; UFW QF RFNS,
|
||||
HTRRJ ZS UèWJ Q'JSKFSY, NQ YNJSY QJ LJSWJ MZRFNS ;
|
||||
UFW QZN STZX ANATSX JY STZX XTRRJX ;
|
||||
FZ HMJAJY IJX LJôQNJWX ITWRFSY IFSX QJZWX RFNXTSX,
|
||||
NQ IéWTGJ QJX HQJKX IJ YTZYJX QJX UWNXTSX
|
||||
JY RJY JS QNGJWYé QJX MTRRJX.
|
||||
« CK NYMDBSXO OCD VO MSOV OXDB'YEFOBD ; ZKB VK WKSX,
|
||||
MYWWO EX ZèBO V'OXPKXD, SV DSOXD VO QOXBO REWKSX ;
|
||||
ZKB VES XYEC FSFYXC OD XYEC CYWWOC ;
|
||||
KE MROFOD NOC QOôVSOBC NYBWKXD NKXC VOEBC WKSCYXC,
|
||||
SV NéBYLO VOC MVOPC NO DYEDOC VOC ZBSCYXC
|
||||
OD WOD OX VSLOBDé VOC RYWWOC.
|
||||
|
||||
« TW NQ JXY, QTNS IJ STZX, ZSJ FZYWJ MZRFSNYé
|
||||
VZN SJ QJ HTSSFîY UTNSY, JY IFSX Q'NSNVZNYé
|
||||
WFRUJ JSHMFîSéJ, JY XTZKKWJ JY YTRGJ ;
|
||||
NQX KTSY UTZW YWTZAJW INJZ IJ YéSéGWJZC JKKTWYX ;
|
||||
NQX X'FLNYJSY JS AFNS ; NQX XTSY HTRRJ IJX RTWYX
|
||||
VZN YâYJSY QJ RZW IJ QJZW YTRGJ.
|
||||
« YB SV OCD, VYSX NO XYEC, EXO KEDBO REWKXSDé
|
||||
AES XO VO MYXXKîD ZYSXD, OD NKXC V'SXSAESDé
|
||||
BKWZO OXMRKîXéO, OD CYEPPBO OD DYWLO ;
|
||||
SVC PYXD ZYEB DBYEFOB NSOE NO DéXéLBOEH OPPYBDC ;
|
||||
SVC C'KQSDOXD OX FKSX ; SVC CYXD MYWWO NOC WYBDC
|
||||
AES DâDOXD VO WEB NO VOEB DYWLO.
|
||||
|
||||
« XFSX QTN, XFSX GZY, XFSX LZNIJ, NQX JWWJSY NHN-GFX.
|
||||
NQX XTSY RéHMFSYX, éYFSY NLSTWFSYX ; NQX S'TSY UFX
|
||||
QJZW UFWY IJ QF LWFSIJ HTSVZêYJ.
|
||||
O'NWFN. UTZW QJX XFZAJW OJ VZNYYJ QJ XFNSY QNJZ.
|
||||
Ô RJX KWèWJX, OJ ANJSX ATZX FUUTWYJW RTS INJZ,
|
||||
OJ ANJSX ATZX FUUTWYJW RF YêYJ ! » —
|
||||
« CKXC VYS, CKXC LED, CKXC QESNO, SVC OBBOXD SMS-LKC.
|
||||
SVC CYXD WéMRKXDC, éDKXD SQXYBKXDC ; SVC X'YXD ZKC
|
||||
VOEB ZKBD NO VK QBKXNO MYXAEêDO.
|
||||
T'SBKS. ZYEB VOC CKEFOB TO AESDDO VO CKSXD VSOE.
|
||||
Ô WOC PBèBOC, TO FSOXC FYEC KZZYBDOB WYX NSOE,
|
||||
TO FSOXC FYEC KZZYBDOB WK DêDO ! » —
|
||||
|
||||
UWêYWJ, NQ X'JXY XTZAJSZ, HFQRJ JS STX OTZWX YWTZGQéX,
|
||||
IJ QF UFWTQJ INYJ FZC FUôYWJX : — FQQJE,
|
||||
GWFAJE QJX GûHMJWX JY QJX HQFNJX ! —
|
||||
JY IJ Q'FINJZ IZ HMWNXY FZ XZUWêRJ RTRJSY :
|
||||
— Ô ANAFSY, FNRJE-ATZX ! FNRJE. JS ATZX FNRFSY,
|
||||
KWèWJX, ATZX KJWRJWJE RJX UQFNJX. —
|
||||
ZBêDBO, SV C'OCD CYEFOXE, MKVWO OX XYC TYEBC DBYELVéC,
|
||||
NO VK ZKBYVO NSDO KEH KZôDBOC : — KVVOJ,
|
||||
LBKFOJ VOC LûMROBC OD VOC MVKSOC ! —
|
||||
OD NO V'KNSOE NE MRBSCD KE CEZBêWO WYWOXD :
|
||||
— Ô FSFKXD, KSWOJ-FYEC ! KSWOJ. OX FYEC KSWKXD,
|
||||
PBèBOC, FYEC POBWOBOJ WOC ZVKSOC. —
|
||||
|
||||
NQ X'JXY INY VZ'NQ JXY GTS I'éHQFNWJW IFSX QJZW SZNY
|
||||
HJX UJZUQJX éLFWéX QTNS IZ UWTLWèX VZN QZNY,
|
||||
ITSY Q'âRJ JXY HTZAJWYJ IJ ATNQJX ;
|
||||
UZNX NQ X'JS JXY FQQé, IFSX QJX AJSYX, IFSX QJX KQTYX,
|
||||
AJWX QJX STNWX HMJAFQJYX JY QJX XFSLQFSYX GNQQTYX,
|
||||
QJX DJZC KNCéX XZW QJX éYTNQJX.
|
||||
SV C'OCD NSD AE'SV OCD LYX N'éMVKSBOB NKXC VOEB XESD
|
||||
MOC ZOEZVOC éQKBéC VYSX NE ZBYQBèC AES VESD,
|
||||
NYXD V'âWO OCD MYEFOBDO NO FYSVOC ;
|
||||
ZESC SV C'OX OCD KVVé, NKXC VOC FOXDC, NKXC VOC PVYDC,
|
||||
FOBC VOC XYSBC MROFKVODC OD VOC CKXQVKXDC LSVVYDC,
|
||||
VOC IOEH PSHéC CEB VOC éDYSVOC.
|
||||
|
||||
NN.
|
||||
SS.
|
||||
|
||||
HJZC AJWX VZN HJY FUôYWJ FQQFNY, Q'TSY éLTWLé.
|
||||
MOEH FOBC AES MOD KZôDBO KVVKSD, V'YXD éQYBQé.
|
||||
|
||||
NNN.
|
||||
SSS.
|
||||
|
||||
TM ! YFSINX VZJ Qà-GFX, MéQFX ! HMJE HJX GFWGFWJX,
|
||||
X'éYFQJ Q'éHMFKFZI IJ YJX RJRGWJX HMFWLé,
|
||||
VZJ QJ GTZWWJFZ, WFSLJFSY XJX LQFNAJX JY XJX GFWWJX,
|
||||
KWTYYJ FZ LNGJY XTS TSLQJ Tù YTS XFSL X'JXY KNLé ;
|
||||
YR ! DKXNSC AEO Và-LKC, RéVKC ! MROJ MOC LKBLKBOC,
|
||||
C'éDKVO V'éMRKPKEN NO DOC WOWLBOC MRKBQé,
|
||||
AEO VO LYEBBOKE, BKXQOKXD COC QVKSFOC OD COC LKBBOC,
|
||||
PBYDDO KE QSLOD CYX YXQVO Yù DYX CKXQ C'OCD PSQé ;
|
||||
|
||||
HNJQ ! YFSINX VZJ QJX HMNJSX IFSX HJ XFSL ANJSSJSY GTNWJ,
|
||||
JY VZJ QF RTZHMJ MTWWNGQJ, JXXFNR FZ ATQ OTDJZC,
|
||||
HTRRJ IFSX ZSJ WZHMJ JSYWJ JS YF GTZHMJ STNWJ
|
||||
JY GTZWITSSJ FZ XTQJNQ IFSX QJX YWTZX IJ YJX DJZC ;
|
||||
MSOV ! DKXNSC AEO VOC MRSOXC NKXC MO CKXQ FSOXXOXD LYSBO,
|
||||
OD AEO VK WYEMRO RYBBSLVO, OCCKSW KE FYV TYIOEH,
|
||||
MYWWO NKXC EXO BEMRO OXDBO OX DK LYEMRO XYSBO
|
||||
OD LYEBNYXXO KE CYVOSV NKXC VOC DBYEC NO DOC IOEH ;
|
||||
|
||||
YFSINX VZ'éHMJAJQéJ, JY XFSX ATNC, XFSX UFZUNèWJX,
|
||||
YF YêYJ GQêRJ JXY Qà XZW ZS NSKâRJ UNJZ,
|
||||
QNAWéJ FZC ANQX FKKWTSYX, RJZWYWNJ à HTZUX IJ UNJWWJX,
|
||||
NHN, IJWWNèWJ YTN, RFWYDW, TS AJSI YTS INJZ !
|
||||
DKXNSC AE'éMROFOVéO, OD CKXC FYSH, CKXC ZKEZSèBOC,
|
||||
DK DêDO LVêWO OCD Và CEB EX SXPâWO ZSOE,
|
||||
VSFBéO KEH FSVC KPPBYXDC, WOEBDBSO à MYEZC NO ZSOBBOC,
|
||||
SMS, NOBBSèBO DYS, WKBDIB, YX FOXN DYX NSOE !
|
||||
|
||||
HJ INJZ VZN S'JXY VZ'à YTN, RFWYDW, TS YJ QJ ATQJ !
|
||||
TS QJ QNAWJ à RFSIWNS, HJ INJZ UTZW VZN YZ RJZWX !
|
||||
IJX MTRRJX, HTRRJ YTN WJAêYZX IJ Q'éYTQJ,
|
||||
UTZW êYWJ HFWINSFZC, UTZW êYWJ XéSFYJZWX,
|
||||
MO NSOE AES X'OCD AE'à DYS, WKBDIB, YX DO VO FYVO !
|
||||
YX VO VSFBO à WKXNBSX, MO NSOE ZYEB AES DE WOEBC !
|
||||
NOC RYWWOC, MYWWO DYS BOFêDEC NO V'éDYVO,
|
||||
ZYEB êDBO MKBNSXKEH, ZYEB êDBO CéXKDOEBC,
|
||||
|
||||
IJX UWêYWJX, UTZW FATNW IJX UFQFNX, IJX HFWWTXXJX,
|
||||
JY IJX OFWINSX Q'éYé WNFSY XTZX QJ HNJQ GQJZ,
|
||||
UTZW FWLJSYJW QJZW RNYWJ JY UTZW ITWJW QJZWX HWTXXJX,
|
||||
UTZW GTNWJ IJ GTS ANS, FXXNX UWèX I'ZS GTS KJZ,
|
||||
NOC ZBêDBOC, ZYEB KFYSB NOC ZKVKSC, NOC MKBBYCCOC,
|
||||
OD NOC TKBNSXC V'éDé BSKXD CYEC VO MSOV LVOE,
|
||||
ZYEB KBQOXDOB VOEB WSDBO OD ZYEB NYBOB VOEBC MBYCCOC,
|
||||
ZYEB LYSBO NO LYX FSX, KCCSC ZBèC N'EX LYX POE,
|
||||
|
||||
FZ KTWGFS ITSY QF RFNS IFSX QJ RJZWYWJ JXY YWJRUéJ,
|
||||
FZ QFWWTS HMFWLé I'TW VZN UFDJ JY VZN XTZWNY,
|
||||
LWFSI INJZ ! WJYTZWSJ-YTN AJWX STZX, YêYJ HTZUéJ !
|
||||
NQX AJSIJSY OéXZX-HMWNXY ! NQX AJSIJSY OéXZX-HMWNXY !
|
||||
KE PYBLKX NYXD VK WKSX NKXC VO WOEBDBO OCD DBOWZéO,
|
||||
KE VKBBYX MRKBQé N'YB AES ZKIO OD AES CYEBSD,
|
||||
QBKXN NSOE ! BODYEBXO-DYS FOBC XYEC, DêDO MYEZéO !
|
||||
SVC FOXNOXD TéCEC-MRBSCD ! SVC FOXNOXD TéCEC-MRBSCD !
|
||||
|
||||
NQX QNAWJSY FZ GFSINY, UTZW VZJQVZJX XFHX XTWINIJX,
|
||||
Q'éAFSLNQJ, QF QTN, Q'FZYJQ éUTZAFSYé,
|
||||
JY QF OZXYNHJ FZC DJZC XéAèWJX JY HFSINIJX,
|
||||
JY Q'éYTNQJ IZ HTJZW MZRFNS, QF AéWNYé !
|
||||
SVC VSFBOXD KE LKXNSD, ZYEB AEOVAEOC CKMC CYBNSNOC,
|
||||
V'éFKXQSVO, VK VYS, V'KEDOV éZYEFKXDé,
|
||||
OD VK TECDSMO KEH IOEH CéFèBOC OD MKXNSNOC,
|
||||
OD V'éDYSVO NE MYOEB REWKSX, VK FéBSDé !
|
||||
|
||||
QJX GTSX OJYéX, ANAFSYX, FZ GFLSJ, TZ RTWYX, FZC KQJZAJX,
|
||||
Q'MTRRJ OZXYJ UWTXHWNY UFW HFWYTZHMJ XDQQF,
|
||||
Q'NSSTHJSY éLTWLé, QJ IJZNQ XFHWé IJX AJZAJX,
|
||||
QJX UQJZWX IJ Q'TWUMJQNS, NQX AJSIJSY YTZY HJQF !
|
||||
VOC LYXC TODéC, FSFKXDC, KE LKQXO, YE WYBDC, KEH PVOEFOC,
|
||||
V'RYWWO TECDO ZBYCMBSD ZKB MKBDYEMRO CIVVK,
|
||||
V'SXXYMOXD éQYBQé, VO NOESV CKMBé NOC FOEFOC,
|
||||
VOC ZVOEBC NO V'YBZROVSX, SVC FOXNOXD DYED MOVK !
|
||||
|
||||
YTZY ! QF KTN, QJ XJWRJSY VZJ INJZ YNJSY XTZX XF LFWIJ,
|
||||
QJ XFNSY YJRUQJ Tù, RTZWFSY, YZ INX :NSYWTïGT,
|
||||
NQX QNAWJSY YTZY ! UZIJZW, AJWYZ ! — RFWYDW, WJLFWIJ,
|
||||
WTZAWJ YJX DJZC VZ'JRUQNY QF QZJZW IZ YTRGJFZ ; —
|
||||
DYED ! VK PYS, VO COBWOXD AEO NSOE DSOXD CYEC CK QKBNO,
|
||||
VO CKSXD DOWZVO Yù, WYEBKXD, DE NSC :SXDBYïLY,
|
||||
SVC VSFBOXD DYED ! ZENOEB, FOBDE ! — WKBDIB, BOQKBNO,
|
||||
BYEFBO DOC IOEH AE'OWZVSD VK VEOEB NE DYWLOKE ; —
|
||||
|
||||
NQX AJSIJSY Q'FWHMJ FZLZXYJ Tù Q'MTXYNJ éYNSHJQQJ !
|
||||
NQX AJSIJSY HMWNXY, YJ INX-OJ ! JY XJX RJRGWJX QNéX !
|
||||
NQX AJSIJSY QF XZJZW VZN XZW XTS KWTSY WZNXXJQQJ,
|
||||
JY QJX HQTZX IJ XJX RFNSX, JY QJX HQTZX IJ XJX UNJIX !
|
||||
SVC FOXNOXD V'KBMRO KEQECDO Yù V'RYCDSO éDSXMOVVO !
|
||||
SVC FOXNOXD MRBSCD, DO NSC-TO ! OD COC WOWLBOC VSéC !
|
||||
SVC FOXNOXD VK CEOEB AES CEB CYX PBYXD BESCCOVVO,
|
||||
OD VOC MVYEC NO COC WKSXC, OD VOC MVYEC NO COC ZSONC !
|
||||
|
||||
NQX AJSIJSY FZ GWNLFSI VZN HMJE QZN QJX FYYNWJ
|
||||
QJ LWFSI HWZHNKNé XZW QJX MTRRJX UJSHMé ;
|
||||
NQX AJSIJSY XF UFWTQJ, NQX AJSIJSY XTS RFWYDWJ,
|
||||
JY YTS RFWYDWJ à YTN UFW-IJXXZX QJ RFWHMé !
|
||||
SVC FOXNOXD KE LBSQKXN AES MROJ VES VOC KDDSBO
|
||||
VO QBKXN MBEMSPSé CEB VOC RYWWOC ZOXMRé ;
|
||||
SVC FOXNOXD CK ZKBYVO, SVC FOXNOXD CYX WKBDIBO,
|
||||
OD DYX WKBDIBO à DYS ZKB-NOCCEC VO WKBMRé !
|
||||
|
||||
YFSY UTZW QJX HTZUX IJ KTZJY VZ'NQ WJçZY à QF UTWYJ !
|
||||
HéXFW ! YFSY UTZW Q'FRJS, YFSY UTZW Q'FQQéQZNF !
|
||||
YFSY UTZW QF UNJWWJ Tù ANSY MJZWYJW XF YêYJ RTWYJ !
|
||||
YFSY UTZW QJ IWFU WTZLN VZJ XF GFWGJ JXXZDF !
|
||||
DKXD ZYEB VOC MYEZC NO PYEOD AE'SV BOçED à VK ZYBDO !
|
||||
MéCKB ! DKXD ZYEB V'KWOX, DKXD ZYEB V'KVVéVESK !
|
||||
DKXD ZYEB VK ZSOBBO Yù FSXD ROEBDOB CK DêDO WYBDO !
|
||||
DKXD ZYEB VO NBKZ BYEQS AEO CK LKBLO OCCEIK !
|
||||
|
||||
NQX AJSIJSY XJX LJSTZC RJZWYWNX, XF UFQRJ AJWYJ,
|
||||
XF UQFNJ FZ KQFSH, XTS TJNQ YTZY GFNLSé I'NSKNSN,
|
||||
XJX UQJZWX, XTS FLTSNJ, JY XF GTZHMJ JSYWTZAJWYJ,
|
||||
JY QJ HWN VZ'NQ UTZXXF : QFRRF XFGFHYMFSN !
|
||||
SVC FOXNOXD COC QOXYEH WOEBDBSC, CK ZKVWO FOBDO,
|
||||
CK ZVKSO KE PVKXM, CYX YOSV DYED LKSQXé N'SXPSXS,
|
||||
COC ZVOEBC, CYX KQYXSO, OD CK LYEMRO OXDBYEFOBDO,
|
||||
OD VO MBS AE'SV ZYECCK : VKWWK CKLKMDRKXS !
|
||||
|
||||
NQX AJSIJSY QJ XéUZQHWJ ! NQX AJSIJSY QJX YéSèGWJX !
|
||||
QJX XéWFUMNSX HMFSYFSY FZ XJZNQ UWTKTSI IJX HNJZC,
|
||||
JY QF RèWJ IJGTZY XTZX Q'FWGWJ FZC GWFX KZSèGWJX,
|
||||
VZN, XJSYFSY Qà XTS KNQX, SJ QJAFNY UFX QJX DJZC !
|
||||
SVC FOXNOXD VO CéZEVMBO ! SVC FOXNOXD VOC DéXèLBOC !
|
||||
VOC CéBKZRSXC MRKXDKXD KE COESV ZBYPYXN NOC MSOEH,
|
||||
OD VK WèBO NOLYED CYEC V'KBLBO KEH LBKC PEXèLBOC,
|
||||
AES, COXDKXD Và CYX PSVC, XO VOFKSD ZKC VOC IOEH !
|
||||
|
||||
TZN, HJX éAêVZJX, TZN, HJX RFWHMFSIX, TZN, HJX UWêYWJX
|
||||
F Q'MNXYWNTS IZ HWNRJ, FXXTZAN, HTZWTSSé,
|
||||
F HJ SéWTS WJUZ VZN WNY UFWRN QJX YWFîYWJX,
|
||||
ZS UNJI XZW YMWFXéFX, ZS HTZIJ XZW UMWDSé,
|
||||
YES, MOC éFêAEOC, YES, MOC WKBMRKXNC, YES, MOC ZBêDBOC
|
||||
K V'RSCDBSYX NE MBSWO, KCCYEFS, MYEBYXXé,
|
||||
K MO XéBYX BOZE AES BSD ZKBWS VOC DBKîDBOC,
|
||||
EX ZSON CEB DRBKCéKC, EX MYENO CEB ZRBIXé,
|
||||
|
||||
FZ ATQJZW VZN YZF QJX QTNX à HTZUX IJ HWTXXJ,
|
||||
FZ UNWFYJ JRUJWJZW SFUTQéTS IJWSNJW,
|
||||
NAWJ IJZC KTNX, NRRTSIJ JSHTW UQZX VZJ KéWTHJ,
|
||||
UTZWHJFZ IFSX QJ HQTFVZJ JY QTZU IFSX QJ HMFWSNJW,
|
||||
KE FYVOEB AES DEK VOC VYSC à MYEZC NO MBYCCO,
|
||||
KE ZSBKDO OWZOBOEB XKZYVéYX NOBXSOB,
|
||||
SFBO NOEH PYSC, SWWYXNO OXMYB ZVEC AEO PéBYMO,
|
||||
ZYEBMOKE NKXC VO MVYKAEO OD VYEZ NKXC VO MRKBXSOB,
|
||||
|
||||
NQX AJSIJSY, ô RFWYDW, QJ INJZ UJSXNK JY UâQJ
|
||||
VZN, IJGTZY XZW QF YJWWJ JY XTZX QJ KNWRFRJSY,
|
||||
YWNXYJ JY STZX XTZWNFSY IFSX STYWJ SZNY KFYFQJ,
|
||||
XZW QJ STNW LTQLTYMF XFNLSJ éYJWSJQQJRJSY !
|
||||
SVC FOXNOXD, ô WKBDIB, VO NSOE ZOXCSP OD ZâVO
|
||||
AES, NOLYED CEB VK DOBBO OD CYEC VO PSBWKWOXD,
|
||||
DBSCDO OD XYEC CYEBSKXD NKXC XYDBO XESD PKDKVO,
|
||||
CEB VO XYSB QYVQYDRK CKSQXO éDOBXOVVOWOXD !
|
||||
|
139
examples/poem.txt.crypt.decrypt
Normal file
139
examples/poem.txt.crypt.decrypt
Normal file
@ -0,0 +1,139 @@
|
||||
Ô SAINT PRêTRE ! GRANDE âME ! OH ! JE TOMBE à GENOUX !
|
||||
JEUNE, IL AVAIT ENCOR DE LONGS JOURS PARMI NOUS,
|
||||
IL N'EN A PAS COMPTé LE NOMBRE ;
|
||||
IL éTAIT à CET âGE Où LE BONHEUR FLEURIT ;
|
||||
IL A CONSIDéRé LA CROIX DE JéSUS-CHRIST
|
||||
TOUTE RAYONNANTE DANS L'OMBRE.
|
||||
|
||||
IL A DIT : — « C'EST LE DIEU DE PROGRèS ET D'AMOUR.
|
||||
JéSUS, QUI VOIT TON FRONT CROIT VOIR LE FRONT DU JOUR.
|
||||
CHRIST SOURIT à QUI LE REPOUSSE.
|
||||
PUISQU'IL EST MORT POUR NOUS, JE VEUX MOURIR POUR LUI ;
|
||||
DANS SON TOMBEAU, DONT J'AI LA PIERRE POUR APPUI,
|
||||
IL M'APPELLE D'UNE VOIX DOUCE.
|
||||
|
||||
« SA DOCTRINE EST LE CIEL ENTR'OUVERT ; PAR LA MAIN,
|
||||
COMME UN PèRE L'ENFANT, IL TIENT LE GENRE HUMAIN ;
|
||||
PAR LUI NOUS VIVONS ET NOUS SOMMES ;
|
||||
AU CHEVET DES GEôLIERS DORMANT DANS LEURS MAISONS,
|
||||
IL DéROBE LES CLEFS DE TOUTES LES PRISONS
|
||||
ET MET EN LIBERTé LES HOMMES.
|
||||
|
||||
« OR IL EST, LOIN DE NOUS, UNE AUTRE HUMANITé
|
||||
QUI NE LE CONNAîT POINT, ET DANS L'INIQUITé
|
||||
RAMPE ENCHAîNéE, ET SOUFFRE ET TOMBE ;
|
||||
ILS FONT POUR TROUVER DIEU DE TéNéBREUX EFFORTS ;
|
||||
ILS S'AGITENT EN VAIN ; ILS SONT COMME DES MORTS
|
||||
QUI TâTENT LE MUR DE LEUR TOMBE.
|
||||
|
||||
« SANS LOI, SANS BUT, SANS GUIDE, ILS ERRENT ICI-BAS.
|
||||
ILS SONT MéCHANTS, éTANT IGNORANTS ; ILS N'ONT PAS
|
||||
LEUR PART DE LA GRANDE CONQUêTE.
|
||||
J'IRAI. POUR LES SAUVER JE QUITTE LE SAINT LIEU.
|
||||
Ô MES FRèRES, JE VIENS VOUS APPORTER MON DIEU,
|
||||
JE VIENS VOUS APPORTER MA TêTE ! » —
|
||||
|
||||
PRêTRE, IL S'EST SOUVENU, CALME EN NOS JOURS TROUBLéS,
|
||||
DE LA PAROLE DITE AUX APôTRES : — ALLEZ,
|
||||
BRAVEZ LES BûCHERS ET LES CLAIES ! —
|
||||
ET DE L'ADIEU DU CHRIST AU SUPRêME MOMENT :
|
||||
— Ô VIVANT, AIMEZ-VOUS ! AIMEZ. EN VOUS AIMANT,
|
||||
FRèRES, VOUS FERMEREZ MES PLAIES. —
|
||||
|
||||
IL S'EST DIT QU'IL EST BON D'éCLAIRER DANS LEUR NUIT
|
||||
CES PEUPLES éGARéS LOIN DU PROGRèS QUI LUIT,
|
||||
DONT L'âME EST COUVERTE DE VOILES ;
|
||||
PUIS IL S'EN EST ALLé, DANS LES VENTS, DANS LES FLOTS,
|
||||
VERS LES NOIRS CHEVALETS ET LES SANGLANTS BILLOTS,
|
||||
LES YEUX FIXéS SUR LES éTOILES.
|
||||
|
||||
II.
|
||||
|
||||
CEUX VERS QUI CET APôTRE ALLAIT, L'ONT éGORGé.
|
||||
|
||||
III.
|
||||
|
||||
OH ! TANDIS QUE Là-BAS, HéLAS ! CHEZ CES BARBARES,
|
||||
S'éTALE L'éCHAFAUD DE TES MEMBRES CHARGé,
|
||||
QUE LE BOURREAU, RANGEANT SES GLAIVES ET SES BARRES,
|
||||
FROTTE AU GIBET SON ONGLE Où TON SANG S'EST FIGé ;
|
||||
|
||||
CIEL ! TANDIS QUE LES CHIENS DANS CE SANG VIENNENT BOIRE,
|
||||
ET QUE LA MOUCHE HORRIBLE, ESSAIM AU VOL JOYEUX,
|
||||
COMME DANS UNE RUCHE ENTRE EN TA BOUCHE NOIRE
|
||||
ET BOURDONNE AU SOLEIL DANS LES TROUS DE TES YEUX ;
|
||||
|
||||
TANDIS QU'éCHEVELéE, ET SANS VOIX, SANS PAUPIèRES,
|
||||
TA TêTE BLêME EST Là SUR UN INFâME PIEU,
|
||||
LIVRéE AUX VILS AFFRONTS, MEURTRIE à COUPS DE PIERRES,
|
||||
ICI, DERRIèRE TOI, MARTYR, ON VEND TON DIEU !
|
||||
|
||||
CE DIEU QUI N'EST QU'à TOI, MARTYR, ON TE LE VOLE !
|
||||
ON LE LIVRE à MANDRIN, CE DIEU POUR QUI TU MEURS !
|
||||
DES HOMMES, COMME TOI REVêTUS DE L'éTOLE,
|
||||
POUR êTRE CARDINAUX, POUR êTRE SéNATEURS,
|
||||
|
||||
DES PRêTRES, POUR AVOIR DES PALAIS, DES CARROSSES,
|
||||
ET DES JARDINS L'éTé RIANT SOUS LE CIEL BLEU,
|
||||
POUR ARGENTER LEUR MITRE ET POUR DORER LEURS CROSSES,
|
||||
POUR BOIRE DE BON VIN, ASSIS PRèS D'UN BON FEU,
|
||||
|
||||
AU FORBAN DONT LA MAIN DANS LE MEURTRE EST TREMPéE,
|
||||
AU LARRON CHARGé D'OR QUI PAYE ET QUI SOURIT,
|
||||
GRAND DIEU ! RETOURNE-TOI VERS NOUS, TêTE COUPéE !
|
||||
ILS VENDENT JéSUS-CHRIST ! ILS VENDENT JéSUS-CHRIST !
|
||||
|
||||
ILS LIVRENT AU BANDIT, POUR QUELQUES SACS SORDIDES,
|
||||
L'éVANGILE, LA LOI, L'AUTEL éPOUVANTé,
|
||||
ET LA JUSTICE AUX YEUX SéVèRES ET CANDIDES,
|
||||
ET L'éTOILE DU COEUR HUMAIN, LA VéRITé !
|
||||
|
||||
LES BONS JETéS, VIVANTS, AU BAGNE, OU MORTS, AUX FLEUVES,
|
||||
L'HOMME JUSTE PROSCRIT PAR CARTOUCHE SYLLA,
|
||||
L'INNOCENT éGORGé, LE DEUIL SACRé DES VEUVES,
|
||||
LES PLEURS DE L'ORPHELIN, ILS VENDENT TOUT CELA !
|
||||
|
||||
TOUT ! LA FOI, LE SERMENT QUE DIEU TIENT SOUS SA GARDE,
|
||||
LE SAINT TEMPLE Où, MOURANT, TU DIS :INTROïBO,
|
||||
ILS LIVRENT TOUT ! PUDEUR, VERTU ! — MARTYR, REGARDE,
|
||||
ROUVRE TES YEUX QU'EMPLIT LA LUEUR DU TOMBEAU ; —
|
||||
|
||||
ILS VENDENT L'ARCHE AUGUSTE Où L'HOSTIE éTINCELLE !
|
||||
ILS VENDENT CHRIST, TE DIS-JE ! ET SES MEMBRES LIéS !
|
||||
ILS VENDENT LA SUEUR QUI SUR SON FRONT RUISSELLE,
|
||||
ET LES CLOUS DE SES MAINS, ET LES CLOUS DE SES PIEDS !
|
||||
|
||||
ILS VENDENT AU BRIGAND QUI CHEZ LUI LES ATTIRE
|
||||
LE GRAND CRUCIFIé SUR LES HOMMES PENCHé ;
|
||||
ILS VENDENT SA PAROLE, ILS VENDENT SON MARTYRE,
|
||||
ET TON MARTYRE à TOI PAR-DESSUS LE MARCHé !
|
||||
|
||||
TANT POUR LES COUPS DE FOUET QU'IL REçUT à LA PORTE !
|
||||
CéSAR ! TANT POUR L'AMEN, TANT POUR L'ALLéLUIA !
|
||||
TANT POUR LA PIERRE Où VINT HEURTER SA TêTE MORTE !
|
||||
TANT POUR LE DRAP ROUGI QUE SA BARBE ESSUYA !
|
||||
|
||||
ILS VENDENT SES GENOUX MEURTRIS, SA PALME VERTE,
|
||||
SA PLAIE AU FLANC, SON OEIL TOUT BAIGNé D'INFINI,
|
||||
SES PLEURS, SON AGONIE, ET SA BOUCHE ENTROUVERTE,
|
||||
ET LE CRI QU'IL POUSSA : LAMMA SABACTHANI !
|
||||
|
||||
ILS VENDENT LE SéPULCRE ! ILS VENDENT LES TéNèBRES !
|
||||
LES SéRAPHINS CHANTANT AU SEUIL PROFOND DES CIEUX,
|
||||
ET LA MèRE DEBOUT SOUS L'ARBRE AUX BRAS FUNèBRES,
|
||||
QUI, SENTANT Là SON FILS, NE LEVAIT PAS LES YEUX !
|
||||
|
||||
OUI, CES éVêQUES, OUI, CES MARCHANDS, OUI, CES PRêTRES
|
||||
A L'HISTRION DU CRIME, ASSOUVI, COURONNé,
|
||||
A CE NéRON REPU QUI RIT PARMI LES TRAîTRES,
|
||||
UN PIED SUR THRASéAS, UN COUDE SUR PHRYNé,
|
||||
|
||||
AU VOLEUR QUI TUA LES LOIS à COUPS DE CROSSE,
|
||||
AU PIRATE EMPEREUR NAPOLéON DERNIER,
|
||||
IVRE DEUX FOIS, IMMONDE ENCOR PLUS QUE FéROCE,
|
||||
POURCEAU DANS LE CLOAQUE ET LOUP DANS LE CHARNIER,
|
||||
|
||||
ILS VENDENT, ô MARTYR, LE DIEU PENSIF ET PâLE
|
||||
QUI, DEBOUT SUR LA TERRE ET SOUS LE FIRMAMENT,
|
||||
TRISTE ET NOUS SOURIANT DANS NOTRE NUIT FATALE,
|
||||
SUR LE NOIR GOLGOTHA SAIGNE éTERNELLEMENT !
|
2
exec.sh
2
exec.sh
@ -1,3 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
gcc -W src/main.c src/functions.c src/caesar.c src/vigenere.c -o output/main && ./output/main $1 $2 $3 $4
|
||||
gcc -Wall src/main.c src/functions.c src/caesar.c src/vigenere.c -o output/main && ./output/main $1 $2 $3 $4
|
||||
|
Binary file not shown.
BIN
src/.main.c.swp
BIN
src/.main.c.swp
Binary file not shown.
171
src/caesar.c
171
src/caesar.c
@ -1,55 +1,85 @@
|
||||
#include "caesar.h"
|
||||
|
||||
#define BUFFER_SIZE 128
|
||||
|
||||
/*
|
||||
This function read the file block by block until the end of it
|
||||
*/
|
||||
int readFile(FILE *f, int *size, char *buffer){
|
||||
int index = 0;
|
||||
char c;
|
||||
int end = 0;
|
||||
|
||||
do{
|
||||
c = fgetc(f);
|
||||
buffer[index] = c;
|
||||
index++;
|
||||
*size += 1;
|
||||
|
||||
// End of the file, we stop it
|
||||
if (c == EOF){
|
||||
buffer[index - 1] = '\0';
|
||||
index = BUFFER_SIZE;
|
||||
end = 1;
|
||||
}
|
||||
}while(index < BUFFER_SIZE);
|
||||
|
||||
return end;
|
||||
}
|
||||
/*
|
||||
s -> path source
|
||||
d -> path destination
|
||||
key -> key of encryption
|
||||
This function encrypt data
|
||||
*/
|
||||
char *cryptCaesar(const char *s, const int key, const int countCharact, const char *data) {
|
||||
char *buffer, *bufferDst = NULL;
|
||||
int cryptCaesar(const char *s, const char *filenameDst, const int key) {
|
||||
int i;
|
||||
int error = countCharact;
|
||||
char c = 0;
|
||||
FILE *f = NULL, *fDst = NULL;
|
||||
char data[BUFFER_SIZE];
|
||||
char dataEncrypted[BUFFER_SIZE];
|
||||
int size = 0, end = 0;
|
||||
|
||||
if(error == -1) return NULL;
|
||||
// Open the file
|
||||
f = fopen(s, "r+");
|
||||
if (f == NULL) return -1;
|
||||
|
||||
// Malloc the dest buffer
|
||||
bufferDst = malloc(sizeof(int) * countCharact);
|
||||
memset(bufferDst, 0, sizeof(int) * countCharact);
|
||||
fDst = fopen(filenameDst, "w");
|
||||
if (fDst == NULL) {
|
||||
fclose(f);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Allocation dynamique */
|
||||
buffer = malloc(countCharact + 1); /* + 1 for '\0' */
|
||||
// We are going to read the file block by block
|
||||
do {
|
||||
end = readFile(f, &size, data);
|
||||
|
||||
/* Copy the data of file into the buffer[] */
|
||||
error = copyFile(s, buffer);
|
||||
if(error != 0) return NULL;
|
||||
/********* Encryption **********/
|
||||
for (i = 0; i < size; i++){
|
||||
if (data[i] >= 'A' && data[i] <= 'Z'){
|
||||
c = data[i] - 'A';
|
||||
dataEncrypted[i] = ((c + key) % 26) + 'A';
|
||||
}
|
||||
else if (data[i] >= 'a' && data[i] <= 'z'){
|
||||
c = data[i] - 'a';
|
||||
dataEncrypted[i] = ((c + key) % 26) + 'A';
|
||||
}
|
||||
else dataEncrypted[i] = data[i];
|
||||
|
||||
/********* Encryption **********/
|
||||
for(i = 0; i < countCharact; i++) {
|
||||
int val = 0;
|
||||
/* For characters of A to Z */
|
||||
if(buffer[i] >= 'A' && buffer[i] <= 'Z') {
|
||||
c = buffer[i] - 'A';
|
||||
val = ((c + key) % 26) + 'A';
|
||||
}
|
||||
/* For characters of 'a' to 'z' */
|
||||
else if(buffer[i] >= 'a' && buffer[i] <= 'z') {
|
||||
c = buffer[i] - 'a';
|
||||
val = ((c + key) % 26) + 'A';
|
||||
}
|
||||
/* For others characters */
|
||||
else val = buffer[i];
|
||||
// We can write into the dest file
|
||||
if (dataEncrypted[i] != '\0')
|
||||
fputc(dataEncrypted[i], fDst);
|
||||
}
|
||||
size = 0;
|
||||
|
||||
bufferDst[i] = val;
|
||||
}
|
||||
memset(data, 0, BUFFER_SIZE);
|
||||
memset(dataEncrypted, 0, BUFFER_SIZE);
|
||||
}while(end != 1);
|
||||
|
||||
bufferDst[i] = '\0';
|
||||
|
||||
/* Freedom the memory */
|
||||
free(buffer);
|
||||
|
||||
return bufferDst;
|
||||
/* Close files */
|
||||
fclose(f);
|
||||
fclose(fDst);
|
||||
return 0;
|
||||
}
|
||||
/*
|
||||
s -> path source
|
||||
@ -57,44 +87,51 @@ char *cryptCaesar(const char *s, const int key, const int countCharact, const ch
|
||||
key -> key of decryption
|
||||
This function decryption by Cesar
|
||||
*/
|
||||
char *decryptCaesar(const char *s, const int key, const int countCharact) {
|
||||
int error = countCharact;
|
||||
char *buffer, *bufferDst = NULL;
|
||||
int decryptCaesar(const char *s, const char *filenameDst, const int key) {
|
||||
int i;
|
||||
FILE *f = NULL, *fDst = NULL;
|
||||
char data[BUFFER_SIZE];
|
||||
char dataDecrypted[BUFFER_SIZE];
|
||||
int size = 0, end = 0;
|
||||
|
||||
if(error == -1)
|
||||
return NULL;
|
||||
// Open the file
|
||||
f = fopen(s, "r+");
|
||||
if (f == NULL) return -1;
|
||||
|
||||
// Malloc the dest buffer
|
||||
bufferDst = malloc(sizeof(int) * countCharact);
|
||||
memset(bufferDst, 0, sizeof(int) * countCharact);
|
||||
fDst = fopen(filenameDst, "w");
|
||||
if (fDst == NULL) {
|
||||
fclose(f);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Allocation dynamique */
|
||||
buffer = malloc(countCharact + 1); /* +1 for '\0' */
|
||||
// We are going to read the file block by block
|
||||
do {
|
||||
end = readFile(f, &size, data);
|
||||
|
||||
/* Copy the data from file into buffer */
|
||||
error = copyFile(s, buffer);
|
||||
if(error != 0) return NULL;
|
||||
/********* Decryption **********/
|
||||
for (i = 0; i < size; i++){
|
||||
int val = 0;
|
||||
//if (data[i] >= 'A' && data[i] <= 'Z'){
|
||||
if(data[i] >= 65 && data[i] <= 90) {
|
||||
val = data[i] - key;
|
||||
if (val < 'A')
|
||||
val = val + 26;
|
||||
}
|
||||
else val = data[i];
|
||||
dataDecrypted[i] = val;
|
||||
// We can write into the dest file
|
||||
if (dataDecrypted[i] != '\0')
|
||||
fputc(dataDecrypted[i], fDst);
|
||||
}
|
||||
size = 0;
|
||||
|
||||
/********* Decryption **********/
|
||||
for(i = 0; i < countCharact; i++) {
|
||||
int val = 0;
|
||||
/* buffer[i] >= 'A' AND buffer[i] <= 'Z' */
|
||||
if(buffer[i] >= 65 && buffer[i] <= 90) {
|
||||
val = buffer[i] - key;
|
||||
/* val < 'A' */
|
||||
if(val < 65)
|
||||
val = val + 26;
|
||||
}
|
||||
else
|
||||
val = buffer[i];
|
||||
memset(data, 0, BUFFER_SIZE);
|
||||
memset(dataDecrypted, 0, BUFFER_SIZE);
|
||||
}while(end != 1);
|
||||
|
||||
bufferDst[i] = val;
|
||||
}
|
||||
bufferDst[i] = '\0';
|
||||
/* Close files */
|
||||
fclose(f);
|
||||
fclose(fDst);
|
||||
|
||||
/* Freedom the memory */
|
||||
free(buffer);
|
||||
|
||||
return bufferDst;
|
||||
return 0;
|
||||
}
|
||||
|
@ -6,7 +6,8 @@
|
||||
#include "functions.h"
|
||||
|
||||
/* Functions */
|
||||
char *cryptCaesar(const char *s, const int key, const int countCharact, const char *);
|
||||
char *decryptCaesar(const char *s, const int key, const int countCharact);
|
||||
int foo(FILE *, int *, char *);
|
||||
int cryptCaesar(const char *, const char *, const int);
|
||||
int decryptCaesar(const char *, const char *, const int);
|
||||
|
||||
#endif
|
||||
|
29
src/main.c
29
src/main.c
@ -4,9 +4,8 @@
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
int error = 0;
|
||||
int numberCharacters = 0;
|
||||
char *options[4] = {"-c","-v","-t","-s"};
|
||||
char *hook, *fileSrc, *fileDst, *data, *buffer = NULL;
|
||||
char *hook, *fileSrc, *fileDst, *buffer = NULL;
|
||||
size_t sFile, i;
|
||||
|
||||
if(argc != 4) {
|
||||
@ -64,20 +63,11 @@ int main(int argc, char *argv[]) {
|
||||
fileDst[i++] = 't';
|
||||
fileDst[i++] = '\0';
|
||||
|
||||
// Get size of the file
|
||||
numberCharacters = fileNumberCaract(fileSrc);
|
||||
|
||||
// Read the file
|
||||
data = malloc(numberCharacters + 1); /* + 1 for '\0' */
|
||||
|
||||
/* Copy the data of file into the data[] */
|
||||
error = copyFile(fileSrc, data);
|
||||
if(error != 0) return -1;
|
||||
|
||||
// Caesar cipher
|
||||
if(strcmp(argv[1], "-c") == 0){
|
||||
// Get key
|
||||
int key;
|
||||
int res;
|
||||
|
||||
do{
|
||||
printf("Your key (between 1 and 26): ");
|
||||
@ -85,9 +75,12 @@ int main(int argc, char *argv[]) {
|
||||
}while(key < 1 || key > 26);
|
||||
|
||||
if(strcmp(hook, "crypt") == 0)
|
||||
buffer = cryptCaesar(fileSrc, key, numberCharacters, data);
|
||||
res = cryptCaesar(fileSrc, fileDst, key);
|
||||
if(strcmp(hook, "decrypt") == 0)
|
||||
buffer = decryptCaesar(fileSrc, key, numberCharacters);
|
||||
res = decryptCaesar(fileSrc, fileDst, key);
|
||||
|
||||
if (res != 0)
|
||||
printf("Failed to encrypt/decrypt the file");
|
||||
}
|
||||
// Vigenere
|
||||
else if(strcmp(argv[1], "-v") == 0){
|
||||
@ -98,7 +91,7 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
|
||||
if(strcmp(hook, "crypt") == 0)
|
||||
error = cryptVigenere(key, fileSrc, numberCharacters, buffer);
|
||||
error = cryptVigenere(key, fileSrc, 0, buffer);
|
||||
|
||||
free(key);
|
||||
}
|
||||
@ -110,9 +103,6 @@ int main(int argc, char *argv[]) {
|
||||
|
||||
}
|
||||
|
||||
// Add data to file
|
||||
addDataToFile(buffer, fileDst);
|
||||
|
||||
/* Display error */
|
||||
/*
|
||||
* if(error == 0) err(error, fileDst);
|
||||
@ -121,6 +111,7 @@ int main(int argc, char *argv[]) {
|
||||
*/
|
||||
|
||||
free(fileDst);
|
||||
free(buffer);
|
||||
//free(buffer);
|
||||
//free(data);
|
||||
return 0;
|
||||
}
|
||||
|
@ -5,7 +5,6 @@ int cryptVigenere(const char *key, const char *fileSrc, const int numberCharacte
|
||||
char matrice[SIZE_MATRICE_VIGENERE][SIZE_MATRICE_VIGENERE];
|
||||
char *data = malloc(sizeof(char) * numberCharacters);
|
||||
char *dataVigenere = NULL;
|
||||
char c = 0;
|
||||
int pos = 0;
|
||||
size_t i, j = 0;
|
||||
size_t keyLength = strlen(key);
|
||||
|
Loading…
Reference in New Issue
Block a user