PNG  IHDRQgAMA a cHRMz&u0`:pQ<bKGDgmIDATxwUﹻ& ^CX(J I@ "% (** BX +*i"]j(IH{~R)[~>h{}gy)I$Ij .I$I$ʊy@}x.: $I$Ii}VZPC)I$IF ^0ʐJ$I$Q^}{"r=OzI$gRZeC.IOvH eKX $IMpxsk.쒷/&r[޳<v| .I~)@$updYRa$I |M.e JaֶpSYR6j>h%IRز if&uJ)M$I vLi=H;7UJ,],X$I1AҒJ$ XY XzI@GNҥRT)E@;]K*Mw;#5_wOn~\ DC&$(A5 RRFkvIR}l!RytRl;~^ǷJj اy뷦BZJr&ӥ8Pjw~vnv X^(I;4R=P[3]J,]ȏ~:3?[ a&e)`e*P[4]T=Cq6R[ ~ޤrXR Հg(t_HZ-Hg M$ãmL5R uk*`%C-E6/%[t X.{8P9Z.vkXŐKjgKZHg(aK9ڦmKjѺm_ \#$5,)-  61eJ,5m| r'= &ڡd%-]J on Xm|{ RҞe $eڧY XYrԮ-a7RK6h>n$5AVڴi*ֆK)mѦtmr1p| q:흺,)Oi*ֺK)ܬ֦K-5r3>0ԔHjJئEZj,%re~/z%jVMڸmrt)3]J,T K֦OvԒgii*bKiNO~%PW0=dii2tJ9Jݕ{7"I P9JKTbu,%r"6RKU}Ij2HKZXJ,妝 XYrP ެ24c%i^IK|.H,%rb:XRl1X4Pe/`x&P8Pj28Mzsx2r\zRPz4J}yP[g=L) .Q[6RjWgp FIH*-`IMRaK9TXcq*I y[jE>cw%gLRԕiFCj-ďa`#e~I j,%r,)?[gp FI˨mnWX#>mʔ XA DZf9,nKҲzIZXJ,L#kiPz4JZF,I,`61%2s $,VOϚ2/UFJfy7K> X+6 STXIeJILzMfKm LRaK9%|4p9LwJI!`NsiazĔ)%- XMq>pk$-$Q2x#N ؎-QR}ᶦHZډ)J,l#i@yn3LN`;nڔ XuX5pF)m|^0(>BHF9(cզEerJI rg7 4I@z0\JIi䵙RR0s;$s6eJ,`n 䂦0a)S)A 1eJ,堌#635RIgpNHuTH_SԕqVe ` &S)>p;S$魁eKIuX`I4춒o}`m$1":PI<[v9^\pTJjriRŭ P{#{R2,`)e-`mgj~1ϣLKam7&U\j/3mJ,`F;M'䱀 .KR#)yhTq;pcK9(q!w?uRR,n.yw*UXj#\]ɱ(qv2=RqfB#iJmmL<]Y͙#$5 uTU7ӦXR+q,`I}qL'`6Kͷ6r,]0S$- [RKR3oiRE|nӦXR.(i:LDLTJjY%o:)6rxzҒqTJjh㞦I.$YR.ʼnGZ\ֿf:%55 I˼!6dKxm4E"mG_ s? .e*?LRfK9%q#uh$)i3ULRfK9yxm܌bj84$i1U^@Wbm4uJ,ҪA>_Ij?1v32[gLRD96oTaR׿N7%L2 NT,`)7&ƝL*꽙yp_$M2#AS,`)7$rkTA29_Iye"|/0t)$n XT2`YJ;6Jx".e<`$) PI$5V4]29SRI>~=@j]lp2`K9Jaai^" Ԋ29ORI%:XV5]JmN9]H;1UC39NI%Xe78t)a;Oi Ҙ>Xt"~G>_mn:%|~ޅ_+]$o)@ǀ{hgN;IK6G&rp)T2i୦KJuv*T=TOSV>(~D>dm,I*Ɛ:R#ۙNI%D>G.n$o;+#RR!.eU˽TRI28t)1LWϚ>IJa3oFbu&:tJ*(F7y0ZR ^p'Ii L24x| XRI%ۄ>S1]Jy[zL$adB7.eh4%%누>WETf+3IR:I3Xה)3אOۦSRO'ٺ)S}"qOr[B7ϙ.edG)^ETR"RtRݜh0}LFVӦDB^k_JDj\=LS(Iv─aTeZ%eUAM-0;~˃@i|l @S4y72>sX-vA}ϛBI!ݎߨWl*)3{'Y|iSlEڻ(5KtSI$Uv02,~ԩ~x;P4ցCrO%tyn425:KMlD ^4JRxSهF_}شJTS6uj+ﷸk$eZO%G*^V2u3EMj3k%)okI]dT)URKDS 7~m@TJR~荪fT"֛L \sM -0T KfJz+nإKr L&j()[E&I ߴ>e FW_kJR|!O:5/2跌3T-'|zX ryp0JS ~^F>-2< `*%ZFP)bSn"L :)+pʷf(pO3TMW$~>@~ū:TAIsV1}S2<%ޟM?@iT ,Eūoz%i~g|`wS(]oȤ8)$ ntu`өe`6yPl IzMI{ʣzʨ )IZ2= ld:5+請M$-ї;U>_gsY$ÁN5WzWfIZ)-yuXIfp~S*IZdt;t>KūKR|$#LcԀ+2\;kJ`]YǔM1B)UbG"IRߊ<xܾӔJ0Z='Y嵤 Leveg)$znV-º^3Ւof#0Tfk^Zs[*I꯳3{)ˬW4Ւ4 OdpbZRS|*I 55#"&-IvT&/윚Ye:i$ 9{LkuRe[I~_\ؠ%>GL$iY8 9ܕ"S`kS.IlC;Ҏ4x&>u_0JLr<J2(^$5L s=MgV ~,Iju> 7r2)^=G$1:3G< `J3~&IR% 6Tx/rIj3O< ʔ&#f_yXJiގNSz; Tx(i8%#4 ~AS+IjerIUrIj362v885+IjAhK__5X%nV%Iͳ-y|7XV2v4fzo_68"S/I-qbf; LkF)KSM$ Ms>K WNV}^`-큧32ŒVؙGdu,^^m%6~Nn&͓3ŒVZMsRpfEW%IwdǀLm[7W&bIRL@Q|)* i ImsIMmKmyV`i$G+R 0tV'!V)֏28vU7͒vHꦼtxꗞT ;S}7Mf+fIRHNZUkUx5SAJㄌ9MqμAIRi|j5)o*^'<$TwI1hEU^c_j?Е$%d`z cyf,XO IJnTgA UXRD }{H}^S,P5V2\Xx`pZ|Yk:$e ~ @nWL.j+ϝYb퇪bZ BVu)u/IJ_ 1[p.p60bC >|X91P:N\!5qUB}5a5ja `ubcVxYt1N0Zzl4]7­gKj]?4ϻ *[bg$)+À*x쳀ogO$~,5 زUS9 lq3+5mgw@np1sso Ӻ=|N6 /g(Wv7U;zωM=wk,0uTg_`_P`uz?2yI!b`kĸSo+Qx%!\οe|އԁKS-s6pu_(ֿ$i++T8=eY; צP+phxWQv*|p1. ά. XRkIQYP,drZ | B%wP|S5`~́@i޾ E;Չaw{o'Q?%iL{u D?N1BD!owPHReFZ* k_-~{E9b-~P`fE{AܶBJAFO wx6Rox5 K5=WwehS8 (JClJ~ p+Fi;ŗo+:bD#g(C"wA^ r.F8L;dzdIHUX݆ϞXg )IFqem%I4dj&ppT{'{HOx( Rk6^C٫O.)3:s(۳(Z?~ٻ89zmT"PLtw䥈5&b<8GZ-Y&K?e8,`I6e(֍xb83 `rzXj)F=l($Ij 2*(F?h(/9ik:I`m#p3MgLaKjc/U#n5S# m(^)=y=đx8ŬI[U]~SцA4p$-F i(R,7Cx;X=cI>{Km\ o(Tv2vx2qiiDJN,Ҏ!1f 5quBj1!8 rDFd(!WQl,gSkL1Bxg''՞^ǘ;pQ P(c_ IRujg(Wz bs#P­rz> k c&nB=q+ؔXn#r5)co*Ũ+G?7< |PQӣ'G`uOd>%Mctz# Ԫڞ&7CaQ~N'-P.W`Oedp03C!IZcIAMPUۀ5J<\u~+{9(FbbyAeBhOSܳ1 bÈT#ŠyDžs,`5}DC-`̞%r&ڙa87QWWp6e7 Rϫ/oY ꇅ Nܶըtc!LA T7V4Jsū I-0Pxz7QNF_iZgúWkG83 0eWr9 X]㾮݁#Jˢ C}0=3ݱtBi]_ &{{[/o[~ \q鯜00٩|cD3=4B_b RYb$óBRsf&lLX#M*C_L܄:gx)WΘsGSbuL rF$9';\4Ɍq'n[%p.Q`u hNb`eCQyQ|l_C>Lb꟟3hSb #xNxSs^ 88|Mz)}:](vbۢamŖ࿥ 0)Q7@0=?^k(*J}3ibkFn HjB׻NO z x}7p 0tfDX.lwgȔhԾŲ }6g E |LkLZteu+=q\Iv0쮑)QٵpH8/2?Σo>Jvppho~f>%bMM}\//":PTc(v9v!gոQ )UfVG+! 35{=x\2+ki,y$~A1iC6#)vC5^>+gǵ@1Hy٪7u;p psϰu/S <aʸGu'tD1ԝI<pg|6j'p:tպhX{o(7v],*}6a_ wXRk,O]Lܳ~Vo45rp"N5k;m{rZbΦ${#)`(Ŵg,;j%6j.pyYT?}-kBDc3qA`NWQū20/^AZW%NQ MI.X#P#,^Ebc&?XR tAV|Y.1!؅⨉ccww>ivl(JT~ u`ٵDm q)+Ri x/x8cyFO!/*!/&,7<.N,YDŽ&ܑQF1Bz)FPʛ?5d 6`kQձ λc؎%582Y&nD_$Je4>a?! ͨ|ȎWZSsv8 j(I&yj Jb5m?HWp=g}G3#|I,5v珿] H~R3@B[☉9Ox~oMy=J;xUVoj bUsl_35t-(ՃɼRB7U!qc+x4H_Qo֮$[GO<4`&č\GOc[.[*Af%mG/ ňM/r W/Nw~B1U3J?P&Y )`ѓZ1p]^l“W#)lWZilUQu`-m|xĐ,_ƪ|9i:_{*(3Gѧ}UoD+>m_?VPۅ15&}2|/pIOʵ> GZ9cmíتmnz)yߐbD >e}:) r|@R5qVSA10C%E_'^8cR7O;6[eKePGϦX7jb}OTGO^jn*媓7nGMC t,k31Rb (vyܴʭ!iTh8~ZYZp(qsRL ?b}cŨʊGO^!rPJO15MJ[c&~Z`"ѓޔH1C&^|Ш|rʼ,AwĴ?b5)tLU)F| &g٣O]oqSUjy(x<Ϳ3 .FSkoYg2 \_#wj{u'rQ>o;%n|F*O_L"e9umDds?.fuuQbIWz |4\0 sb;OvxOSs; G%T4gFRurj(֍ڑb uԖKDu1MK{1^ q; C=6\8FR艇!%\YÔU| 88m)֓NcLve C6z;o&X x59:q61Z(T7>C?gcļxѐ Z oo-08jہ x,`' ҔOcRlf~`jj".Nv+sM_]Zk g( UOPyεx%pUh2(@il0ݽQXxppx-NS( WO+轾 nFߢ3M<;z)FBZjciu/QoF 7R¥ ZFLF~#ȣߨ^<쩡ݛкvџ))ME>ώx4m#!-m!L;vv#~Y[đKmx9.[,UFS CVkZ +ߟrY٧IZd/ioi$%͝ب_ֶX3ܫhNU ZZgk=]=bbJS[wjU()*I =ώ:}-蹞lUj:1}MWm=̛ _ ¾,8{__m{_PVK^n3esw5ӫh#$-q=A̟> ,^I}P^J$qY~Q[ Xq9{#&T.^GVj__RKpn,b=`żY@^՝;z{paVKkQXj/)y TIc&F;FBG7wg ZZDG!x r_tƢ!}i/V=M/#nB8 XxЫ ^@CR<{䤭YCN)eKOSƟa $&g[i3.C6xrOc8TI;o hH6P&L{@q6[ Gzp^71j(l`J}]e6X☉#͕ ׈$AB1Vjh㭦IRsqFBjwQ_7Xk>y"N=MB0 ,C #o6MRc0|$)ف"1!ixY<B9mx `,tA>)5ػQ?jQ?cn>YZe Tisvh# GMމȇp:ԴVuږ8ɼH]C.5C!UV;F`mbBk LTMvPʍϤj?ԯ/Qr1NB`9s"s TYsz &9S%U԰> {<ؿSMxB|H\3@!U| k']$U+> |HHMLޢ?V9iD!-@x TIî%6Z*9X@HMW#?nN ,oe6?tQwڱ.]-y':mW0#!J82qFjH -`ѓ&M0u Uγmxϵ^-_\])@0Rt.8/?ٰCY]x}=sD3ojަЫNuS%U}ԤwHH>ڗjܷ_3gN q7[q2la*ArǓԖ+p8/RGM ]jacd(JhWko6ڎbj]i5Bj3+3!\j1UZLsLTv8HHmup<>gKMJj0@H%,W΃7R) ">c, xixј^ aܖ>H[i.UIHc U1=yW\=S*GR~)AF=`&2h`DzT󑓶J+?W+}C%P:|0H܆}-<;OC[~o.$~i}~HQ TvXΈr=b}$vizL4:ȰT|4~*!oXQR6Lk+#t/g lԁߖ[Jڶ_N$k*". xsxX7jRVbAAʯKҎU3)zSNN _'s?f)6X!%ssAkʱ>qƷb hg %n ~p1REGMHH=BJiy[<5 ǁJҖgKR*倳e~HUy)Ag,K)`Vw6bRR:qL#\rclK/$sh*$ 6덤 KԖc 3Z9=Ɣ=o>X Ώ"1 )a`SJJ6k(<c e{%kϊP+SL'TcMJWRm ŏ"w)qc ef꒵i?b7b('"2r%~HUS1\<(`1Wx9=8HY9m:X18bgD1u ~|H;K-Uep,, C1 RV.MR5άh,tWO8WC$ XRVsQS]3GJ|12 [vM :k#~tH30Rf-HYݺ-`I9%lIDTm\ S{]9gOڒMNCV\G*2JRŨ;Rҏ^ڽ̱mq1Eu?To3I)y^#jJw^Ńj^vvlB_⋌P4x>0$c>K†Aļ9s_VjTt0l#m>E-,,x,-W)سo&96RE XR.6bXw+)GAEvL)͞K4$p=Ũi_ѱOjb HY/+@θH9޼]Nԥ%n{ &zjT? Ty) s^ULlb,PiTf^<À] 62R^V7)S!nllS6~͝V}-=%* ʻ>G DnK<y&>LPy7'r=Hj 9V`[c"*^8HpcO8bnU`4JȪAƋ#1_\ XϘHPRgik(~G~0DAA_2p|J묭a2\NCr]M_0 ^T%e#vD^%xy-n}-E\3aS%yN!r_{ )sAw ڼp1pEAk~v<:`'ӭ^5 ArXOI驻T (dk)_\ PuA*BY]yB"l\ey hH*tbK)3 IKZ򹞋XjN n *n>k]X_d!ryBH ]*R 0(#'7 %es9??ښFC,ՁQPjARJ\Ρw K#jahgw;2$l*) %Xq5!U᢯6Re] |0[__64ch&_}iL8KEgҎ7 M/\`|.p,~`a=BR?xܐrQ8K XR2M8f ?`sgWS%" Ԉ 7R%$ N}?QL1|-эټwIZ%pvL3Hk>,ImgW7{E xPHx73RA @RS CC !\ȟ5IXR^ZxHл$Q[ŝ40 (>+ _C >BRt<,TrT {O/H+˟Pl6 I B)/VC<6a2~(XwV4gnXR ϱ5ǀHٻ?tw똤Eyxp{#WK qG%5],(0ӈH HZ])ג=K1j&G(FbM@)%I` XRg ʔ KZG(vP,<`[ Kn^ SJRsAʠ5xՅF`0&RbV tx:EaUE/{fi2;.IAwW8/tTxAGOoN?G}l L(n`Zv?pB8K_gI+ܗ #i?ޙ.) p$utc ~DžfՈEo3l/)I-U?aԅ^jxArA ΧX}DmZ@QLےbTXGd.^|xKHR{|ΕW_h] IJ`[G9{).y) 0X YA1]qp?p_k+J*Y@HI>^?gt.06Rn ,` ?);p pSF9ZXLBJPWjgQ|&)7! HjQt<| ؅W5 x W HIzYoVMGP Hjn`+\(dNW)F+IrS[|/a`K|ͻ0Hj{R,Q=\ (F}\WR)AgSG`IsnAR=|8$}G(vC$)s FBJ?]_u XRvύ6z ŨG[36-T9HzpW̞ú Xg큽=7CufzI$)ki^qk-) 0H*N` QZkk]/tnnsI^Gu't=7$ Z;{8^jB% IItRQS7[ϭ3 $_OQJ`7!]W"W,)Iy W AJA;KWG`IY{8k$I$^%9.^(`N|LJ%@$I}ֽp=FB*xN=gI?Q{٥4B)mw $Igc~dZ@G9K X?7)aK%݅K$IZ-`IpC U6$I\0>!9k} Xa IIS0H$I H ?1R.Чj:4~Rw@p$IrA*u}WjWFPJ$I➓/6#! LӾ+ X36x8J |+L;v$Io4301R20M I$-E}@,pS^ޟR[/s¹'0H$IKyfŸfVOπFT*a$I>He~VY/3R/)>d$I>28`Cjw,n@FU*9ttf$I~<;=/4RD~@ X-ѕzἱI$: ԍR a@b X{+Qxuq$IЛzo /~3\8ڒ4BN7$IҀj V]n18H$IYFBj3̵̚ja pp $Is/3R Ӻ-Yj+L;.0ŔI$Av? #!5"aʄj}UKmɽH$IjCYs?h$IDl843.v}m7UiI=&=0Lg0$I4: embe` eQbm0u? $IT!Sƍ'-sv)s#C0:XB2a w I$zbww{."pPzO =Ɔ\[ o($Iaw]`E).Kvi:L*#gР7[$IyGPI=@R 4yR~̮´cg I$I/<tPͽ hDgo 94Z^k盇΄8I56^W$I^0̜N?4*H`237}g+hxoq)SJ@p|` $I%>-hO0eO>\ԣNߌZD6R=K ~n($I$y3D>o4b#px2$yڪtzW~a $I~?x'BwwpH$IZݑnC㧄Pc_9sO gwJ=l1:mKB>Ab<4Lp$Ib o1ZQ@85b̍ S'F,Fe,^I$IjEdù{l4 8Ys_s Z8.x m"+{~?q,Z D!I$ϻ'|XhB)=…']M>5 rgotԎ 獽PH$IjIPhh)n#cÔqA'ug5qwU&rF|1E%I$%]!'3AFD/;Ck_`9 v!ٴtPV;x`'*bQa w I$Ix5 FC3D_~A_#O݆DvV?<qw+I$I{=Z8".#RIYyjǪ=fDl9%M,a8$I$Ywi[7ݍFe$s1ՋBVA?`]#!oz4zjLJo8$I$%@3jAa4(o ;p,,dya=F9ً[LSPH$IJYЉ+3> 5"39aZ<ñh!{TpBGkj}Sp $IlvF.F$I z< '\K*qq.f<2Y!S"-\I$IYwčjF$ w9 \ߪB.1v!Ʊ?+r:^!I$BϹB H"B;L'G[ 4U#5>੐)|#o0aڱ$I>}k&1`U#V?YsV x>{t1[I~D&(I$I/{H0fw"q"y%4 IXyE~M3 8XψL}qE$I[> nD?~sf ]o΁ cT6"?'_Ἣ $I>~.f|'!N?⟩0G KkXZE]ޡ;/&?k OۘH$IRۀwXӨ<7@PnS04aӶp.:@\IWQJ6sS%I$e5ڑv`3:x';wq_vpgHyXZ 3gЂ7{{EuԹn±}$I$8t;b|591nءQ"P6O5i }iR̈́%Q̄p!I䮢]O{H$IRϻ9s֧ a=`- aB\X0"+5"C1Hb?߮3x3&gşggl_hZ^,`5?ߎvĸ%̀M!OZC2#0x LJ0 Gw$I$I}<{Eb+y;iI,`ܚF:5ܛA8-O-|8K7s|#Z8a&><a&/VtbtLʌI$I$I$I$I$I$IRjDD%tEXtdate:create2022-05-31T04:40:26+00:00!Î%tEXtdate:modify2022-05-31T04:40:26+00:00|{2IENDB`Mini Shell

HOME


Mini Shell 1.0
DIR:/proc/self/root/usr/share/emacs/26.1/lisp/play/
Upload File :
Current File : //proc/self/root/usr/share/emacs/26.1/lisp/play/decipher.elc
;ELC
;;; Compiled
;;; in Emacs version 26.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301\302\303\304\305\306\307&\210\310\311\312\313\314\315\306\301&\210\310\316\302\317\314\315\306\301&\210\320\316!\210\310\321\322\323\314\324\306\301&\210\310\325\302\326\314\327\306\301&\207" [custom-declare-group decipher nil "Cryptanalyze monoalphabetic substitution ciphers." :prefix "decipher-" :group games custom-declare-variable decipher-force-uppercase t "Non-nil means to convert ciphertext to uppercase.\nnil means the case of the ciphertext is preserved.\nThis variable must be set before typing `\\[decipher]'." :type boolean decipher-ignore-spaces "Non-nil means to ignore spaces and punctuation when counting digrams.\nYou should set this to nil if the cipher message is divided into words,\nor t if it is not.\nThis variable is buffer-local." make-variable-buffer-local decipher-undo-limit 5000 "The maximum number of entries in the undo list.\nWhen the undo list exceeds this number, 100 entries are deleted from\nthe tail of the list." integer decipher-mode-hook "Hook to run upon entry to decipher." hook] 8)
#@39 Font Lock keywords for Decipher mode.
(defvar decipher-font-lock-keywords '(("^:.*" . font-lock-keyword-face) ("^>.*" . font-lock-string-face) ("^%!.*" . font-lock-constant-face) ("^%.*" . font-lock-comment-face) ("\\`(\\([a-z]+\\) +\\([A-Z]+\\)" (1 font-lock-string-face) (2 font-lock-keyword-face)) ("^)\\([A-Z ]+\\)\\([a-z ]+\\)" (1 font-lock-keyword-face) (2 font-lock-string-face))) (#$ . 1460))
#@27 Keymap for Decipher mode.
(defvar decipher-mode-map (byte-code "\302 \303!\210\304\305\306#\210\304\307\310#\210\304\311\312#\210\304\313\314#\210\304\315\316#\210\304\317\320#\210\304\321\322#\210\304\323\324#\210\304\325\326#\210\304\327\324#\210\304\330\324#\210\331\211\332X\203`\304\333	!\326#\210	T\211\202L))\207" [map key make-keymap suppress-keymap define-key "A" decipher-show-alphabet "C" decipher-complete-alphabet "D" decipher-digram-list "F" decipher-frequency-count "M" decipher-make-checkpoint "N" decipher-adjacency-list "R" decipher-restore-checkpoint "U" decipher-undo " " decipher-keypress [remap undo] [remap advertised-undo] 97 122 vector] 5) (#$ . 1867))
#@33 Keymap for Decipher-Stats mode.
(defvar decipher-stats-mode-map (byte-code "\301 \302!\210\303\304\305#\210\303\306\307#\210\303\310\311#\210)\207" [map make-keymap suppress-keymap define-key "D" decipher-digram-list "F" decipher-frequency-count "N" decipher-adjacency-list] 4) (#$ . 2570))
#@28 Decipher mode syntax table
(defvar decipher-mode-syntax-table nil (#$ . 2873))
(byte-code "\204\303 \304	\305X\203\306	\307\n#\210	T\211\202\n\n*\303\207" [decipher-mode-syntax-table c table make-syntax-table 48 57 modify-syntax-entry "_"] 5)
(defvar decipher-alphabet nil)
(make-variable-buffer-local 'decipher-alphabet)
#@147 The buffer which displays statistics for this ciphertext.
Do not access this variable directly, use the function
`decipher-stats-buffer' instead.
(defvar decipher-stats-buffer nil (#$ . 3212))
(make-variable-buffer-local 'decipher-stats-buffer)
#@41 The number of entries in the undo list.
(defvar decipher-undo-list-size 0 (#$ . 3463))
(make-variable-buffer-local 'decipher-undo-list-size)
#@124 The undo list for this buffer.
Each element is either a cons cell (PLAIN-CHAR . CIPHER-CHAR) or a
list of such cons cells.
(defvar decipher-undo-list nil (#$ . 3611))
(make-variable-buffer-local 'decipher-undo-list)
(defvar decipher-pending-undo-list nil)
#@74 See the functions decipher-loop-with-breaks and decipher-loop-no-breaks.
(defvar decipher-char nil (#$ . 3873))
#@74 Format a buffer of ciphertext for cryptanalysis and enter Decipher mode.
(defalias 'decipher #[nil "db\210n\204\n\302c\210eb\210\303\304!\203\305\306!\210\202Z\307c\210\310m\204S\303\311!\203/\310y\210\202\312 \210l\203<\310y\210\202\313c\210`\310y\210	\203M\314`\"\210\315c\210\202)\316 \210\316 \210eb\210\317y\210\320 \207" [begin decipher-force-uppercase "\n" looking-at "^(abcdefghijklmnopqrstuvwxyz   ABCDEFGHIJKLMNOPQRSTUVWXYZ   -\\*-decipher-\\*-\n)" message "Buffer is already formatted, entering Decipher mode..." "(abcdefghijklmnopqrstuvwxyz   ABCDEFGHIJKLMNOPQRSTUVWXYZ   -*-decipher-*-\n)\n\n" nil "^%" delete-horizontal-space ":" upcase-region ">\n" delete-blank-lines 3 decipher-mode] 3 (#$ . 3991) nil])
#@669 Major mode for decrypting monoalphabetic substitution ciphers.
Lower-case letters enter plaintext.
Upper-case letters are commands.

The buffer is made read-only so that normal Emacs commands cannot
modify it.

The most useful commands are:
\<decipher-mode-map>
\[decipher-digram-list]  Display a list of all digrams & their frequency
\[decipher-frequency-count]  Display the frequency of each ciphertext letter
\[decipher-adjacency-list]  Show adjacency list for current letter (lists letters appearing next to it)
\[decipher-make-checkpoint]  Save the current cipher alphabet (checkpoint)
\[decipher-restore-checkpoint]  Restore a saved cipher alphabet (checkpoint)
(defalias 'decipher-mode #[nil "\306 \210\307\310\311\312\f\203\310\313!\210\314!\210edU\204$\315 \210\316\317!\210\320\321\322\323\310\307$\210\324\325!\210\307\211\207" [buffer-undo-list indent-tabs-mode major-mode mode-name decipher-force-uppercase case-fold-search kill-all-local-variables t nil decipher-mode "Decipher" use-local-map set-syntax-table decipher-read-alphabet make-local-variable font-lock-defaults (decipher-font-lock-keywords t) add-hook change-major-mode-hook #[nil "\302\211\211\207" [buffer-read-only buffer-undo-list nil] 3] run-mode-hooks decipher-mode-hook decipher-mode-map decipher-mode-syntax-table buffer-read-only] 5 (#$ . 4735) nil])
(put 'decipher-mode 'mode-class 'special)
(defalias 'decipher-last-command-char '(macro . #[nil "\300\301!\203\302\207\303\207" [fboundp event-to-character (event-to-character last-command-event) last-command-event] 2]))
#@44 Enter a plaintext or ciphertext character.
(defalias 'decipher-keypress #[nil "\306\307\212\212\310 \210g\211\311U\203\312\202:\n\313U\203\307\202:\n\314U\203+\315\312\202:\n\316U\2037\315\307\202:\317\320!*\204D\307\321y\210)g\f\211z\322U\204V
\323U\204\\	
\"\210-\307u\207" [buffer-read-only decipher-function first-char goal-column last-command-event char-b decipher-set-map nil beginning-of-line 58 t 62 40 decipher-alphabet-keypress 41 error "Bad location" -1 119 32 char-a] 4 (#$ . 6317) nil])
(defalias 'decipher-alphabet-keypress #[(a b) "\303Y\203\304X\203\305	\"\207\306Y\203:\307X\203:	\310U\2035\311\n\"A\211\310U?\2059\305	\310\"\207\305	\"\207\312\313!\207" [a b decipher-alphabet 65 90 decipher-set-map 97 122 32 assoc error "Bad character"] 3])
#@33 Undo a change in Decipher mode.
(defalias 'decipher-undo #[nil "\306	\307=\204\f\310\311!\210\n\312=\204\f\204\310\313!\210\f\211A\242\314\211\211\211\211@:\2049C\211A\242\211\203s\315
A
@\"\211\203h@:\203a\316\"\202fB\317
A
@\306#\210\2029\320!\210-\312\321\322!\207" [this-command major-mode last-command decipher-undo-list decipher-pending-undo-list undo-map t decipher-mode error "This buffer is not in Decipher mode" decipher-undo "No further undo information" nil decipher-get-undo append decipher-set-map decipher-add-undo message "Undo!" redo-rec redo-map buffer-read-only undo-rec] 6 (#$ . 7124) nil])
#@32 Add UNDO-REC to the undo list.
(defalias 'decipher-add-undo #[(undo-rec) "\205 	B\nT\211V\205 \305Z\211S	\233\306\241\210\f\211)\207" [undo-rec decipher-undo-list decipher-undo-list-size decipher-undo-limit new-size 100 nil] 3 (#$ . 7791)])
(defalias 'decipher-copy-cons #[(cons) "\205	@AB\207" [cons] 2])
(defalias 'decipher-get-undo #[(cipher-char plain-char) "\305\306	\"!\305\307\n	\"!\n\310\232\203\f\202?A\232\203#\311\202?A\310\232\2034\f\206?\310B\202?\f\203>\fD\202?*\207" [cipher-char decipher-alphabet plain-char plain-map cipher-map decipher-copy-cons rassoc assoc 32 nil] 5])
(defalias 'decipher-set-map #[(cipher-char plain-char &optional no-undo) "\226\211\306Y\203\307X\204\310\311!\210	\204\312\313\n\"!\210\314!\314\n!\315\211\211\212eb\210\316\"\211\203P\f\317\241\210\320\321\314\f@!P!\210\322\317!\210\323 \210\324\n\"\211\203z\fA\317U\204h\325\fA\317\326#\210\f\241\210\320\321P!\210\322!\210\323 \210\320\327P!\210\322\n!\210\326\227\330 \320\331\315\326#\205\252\332 \333\334#\203\217\322\n!\210\202\232.\207" [cipher-char no-undo plain-char bound mapping case-fold-search 65 90 error "Bad character" decipher-add-undo decipher-get-undo char-to-string nil rassoc 32 search-forward-regexp "^([a-z]*" decipher-insert beginning-of-line assoc decipher-set-map t "^([a-z]+   [A-Z]*" ignore "^:" point-at-eol search-forward end plain-string cipher-string decipher-alphabet font-lock-fontify-region-function] 6])
(defalias 'decipher-insert #[(char) "iS\212\302y\210g\303U\204g\304U\204\305\306!\210\307\310\"\210l\204$\311\312!\210\313	!*\207" [col char nil 62 41 error "Bad location" move-to-column t delete-char 1 insert-and-inherit] 3])
#@209 Checkpoint the current cipher alphabet.
This records the current alphabet so you can return to it later.
You may have any number of checkpoints.
Type `\[decipher-restore-checkpoint]' to restore a checkpoint.
(defalias 'decipher-make-checkpoint #[(desc) ";\204\303\304\211eb\210\305\306!\210\307\310\311\"\210\312`\313Z`\"\305\314\304\315#\204I\316\317\304\311#\203@\320y\210\321\322!\204@\304y\210\323c\210\320y\210\324\325\326\327\"\330\261\210\331 \210\332\n\333\323\261*\207" [desc buffer-read-only alphabet "" nil re-search-forward "^)" move-to-column 27 t buffer-substring-no-properties 26 "^%![A-Z ]+!" end re-search-backward "^% *Local Variables:" -1 looking-at "^ *$" 10 "\n%" make-string 69 45 "\n% Checkpoints:\n% abcdefghijklmnopqrstuvwxyz\n" beginning-of-line "%!" "! "] 5 (#$ . 9543) "sCheckpoint description: "])
#@235 Restore the cipher alphabet from a checkpoint.
If point is not on a checkpoint line, moves to the first checkpoint line.
If point is on a checkpoint, restores that checkpoint.

Type `\[decipher-make-checkpoint]' to make a checkpoint.
(defalias 'decipher-restore-checkpoint #[nil "\302 \210\303\304!\203(\305\306!\307eb\210\310\311!\210l\204!`\307\210`|\210	c\210\312 *\207eb\210\310\313\307\314#\203:\315\316\317\320!\"\207\321\322!\207" [buffer-read-only alphabet beginning-of-line looking-at "%!\\([A-Z ]+\\)!" match-string 1 nil re-search-forward "^)" decipher-resync "^%![A-Z ]+!" t message "Select the checkpoint to restore and type `%s'" substitute-command-keys "\\[decipher-restore-checkpoint]" error "No checkpoints in this buffer"] 4 (#$ . 10390) nil])
#@201 Complete the cipher alphabet.
This fills any blanks in the cipher alphabet with the unused letters
in alphabetical order.  Use this when you have a keyword cipher and
you have determined the keyword.
(defalias 'decipher-complete-alphabet #[nil "\306\307\211\211\f\211A\242\211\2038\nA\310\232\203\n\311
\"\203(
T\202\310
B	B\312
\n@\313#\210\202\n\314	!-\207" [decipher-alphabet undo-rec plain-map buffer-read-only ptr cipher-char 65 nil 32 rassoc decipher-set-map t decipher-add-undo] 5 (#$ . 11165) nil])
#@58 Display the current cipher alphabet in the message line.
(defalias 'decipher-show-alphabet #[nil "\301\302\303\304\305#\"\207" [decipher-alphabet message "%s" mapconcat #[(a) "\301@!\301A!P\207" [a char-to-string] 3] ""] 6 (#$ . 11695) nil])
#@171 Reprocess the buffer using the alphabet from the top.
This regenerates all deciphered plaintext and clears the undo list.
You should use this if you edit the ciphertext.
(defalias 'decipher-resync #[nil "\306\307!\210\310\211\211\212\311 \210eb\210\312\313\310\314#\203!\315\316\310\211#\210\312\317\310\314#\2032\315\320\310\211#\210\202!\311 \210\n\211A\242\211\203PA\321\232\2045\322A@\"\210\2025,\310\323\306\324!\207" [mapping buffer-read-only alphabet decipher-alphabet decipher-undo-list decipher-undo-list-size message "Reprocessing buffer..." nil decipher-read-alphabet re-search-forward "^).+" t replace-match ")" "^>.+" ">" 32 decipher-set-map 0 "Reprocessing buffer...done"] 4 (#$ . 11947) nil])
#@67 Build the decipher-alphabet from the alphabet line in the buffer.
(defalias 'decipher-read-alphabet #[nil "\212eb\210\302\303!\210\304\305\306\"\210\307\310\211\311Y\205'\312u\210	gBB	S\211\202*\207" [decipher-alphabet plain-char search-forward-regexp "^)" move-to-column 27 t nil 122 97 -1] 4 (#$ . 12679)])
#@55 Display the frequency count in the statistics buffer.
(defalias 'decipher-frequency-count #[nil "\300 \210\301\302\303\"\207" [decipher-analyze decipher-display-regexp "^A" "^[A-Z][A-Z]"] 3 (#$ . 13002) nil])
#@55 Display the list of digrams in the statistics buffer.
(defalias 'decipher-digram-list #[nil "\300 \210\301\302\303\"\207" [decipher-analyze decipher-display-regexp "[A-Z][A-Z] +[0-9]" "^$"] 3 (#$ . 13217) nil])
#@653 Display the adjacency list for the letter at point.
The adjacency list shows all letters which come next to CIPHER-CHAR.

An adjacency list (for the letter X) looks like this:
       1 1         1     1   1       3 2 1             3   8
X: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z *  11   14   9%
     1 1                 1       2   1   1     2       5   7
This says that X comes before D once, and after B once.  X begins 5
words, and ends 3 words (`*' represents a space).  X comes before 8
different letters, after 7 different letters, and is next to a total
of 11 different letters.  It occurs 14 times, making up 9% of the
ciphertext.
(defalias 'decipher-adjacency-list #[(cipher-char) "\303 \210\304\211r\305 q\210eb\210\306\307\310\n\"\304\311#\204\312\313\n\"\210\314y\210`\315y\210`)\316	\"*\207" [end start cipher-char decipher-analyze nil decipher-stats-buffer re-search-forward format "^%c: " t error "Character `%c' is not used in ciphertext" -1 3 decipher-display-range] 4 (#$ . 13435) (list (upcase (following-char)))])
#@64 Perform frequency analysis on the current buffer if necessary.
(defalias 'decipher-analyze #[nil "\302=\206\303\267\202\304	!\203\305	!\206\306 \207\307\310!\207" [major-mode decipher-stats-buffer decipher-stats-mode #s(hash-table size 1 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (decipher-mode 12)) bufferp buffer-name decipher-analyze-buffer error "This buffer is not in Decipher mode"] 2 (#$ . 14495)])
#@246 Display text between START and END in the statistics buffer.
START and END are positions in the statistics buffer.  Makes the
statistics buffer visible and sizes the window to just fit the
displayed text, but leaves the current window selected.
(defalias 'decipher-display-range #[(start end) "\305 \306 \307p\n=\204\310\n!\210b\210\311\307!\204&\312\313\f\"T\314 Z!\210\315\316!\210\317	!+\207" [pop-up-windows current-window stats-buffer start end decipher-stats-buffer selected-window t pop-to-buffer one-window-p enlarge-window count-lines window-height recenter 0 select-window] 4 (#$ . 14940)])
#@235 Display text between two regexps in the statistics buffer.

START-REGEXP matches the first line to display.
END-REGEXP matches the line after that which ends the display.
The ending line is included in the display unless it is blank.
(defalias 'decipher-display-regexp #[(start-regexp end-regexp) "\304\211r\305 q\210eb\210\306\n!\210\307 \210`\306!\210\307 \210\310\311!\204%\312y\210`)\313	\"*\207" [end start start-regexp end-regexp nil decipher-stats-buffer re-search-forward beginning-of-line looking-at "^ *$" 1 decipher-display-range] 3 (#$ . 15556)])
#@439 Loop through ciphertext, calling FUNC once for each letter & word division.

FUNC is called with no arguments, and its return value is unimportant.
It may examine `decipher-char' to see the current ciphertext
character.  `decipher-char' contains either an uppercase letter or a space.

FUNC is called exactly once between words, with `decipher-char' set to
a space.

See `decipher-loop-no-breaks' if you do not care about word divisions.
(defalias 'decipher-loop-with-breaks #[(func) "\303\211\212eb\210\n \210\304\305\306\307#\205Ol\204?g\226\211\310Y\203&	\311X\204(\303	\303\232\2034\303\232\2047\n \210	\306u\210\202	\303\232\204\303\211\n \210\202+\207" [decipher--loop-prev-char decipher-char func 32 search-forward-regexp "^:" nil t 65 90] 5 (#$ . 16129)])
#@370 Loop through ciphertext, calling FUNC once for each letter.

FUNC is called with no arguments, and its return value is unimportant.
It may examine `decipher-char' to see the current ciphertext letter.
`decipher-char' contains an uppercase letter.

Punctuation and spacing in the ciphertext are ignored.
See `decipher-loop-with-breaks' if you care about word divisions.
(defalias 'decipher-loop-no-breaks #[(func) "\302\212eb\210\303\304\302\305#\205*l\204g\226\211\306Y\203$\307X\203$	 \210\302u\210\202*\207" [decipher-char func nil search-forward-regexp "^:" t 65 90] 5 (#$ . 16920)])
#@155 Insert frequency counts in current buffer.
Each element of FREQ-LIST is a list (LETTER FREQ ...).
TOTAL is the total number of letters in the ciphertext.
(defalias 'decipher-insert-frequency-counts #[(freq-list total) "\304\305\211\306V\205;\n\211\203.@@\307\310@A@\311\312@A@_\"#\261\210\304\233\211\204\313c\210\nA	S\211\202*\207" [temp-list i freq-list total 4 nil 0 format "%4d%3d%%  " floor 100.0 10] 8 (#$ . 17524)])
(defalias 'decipher--analyze #[nil "\306\307	#\310\n\"\206\n\311BB\211@\211\211AT\241\210)\312Y\203F
\312ZH
	\313\232\2034\314\2027	\312Z

HTI\210*	\312Y\203\210	\312ZHTI*\203\210	\312ZH\313\232\203v\314\202y\312ZHTI\210*	\211\207" [decipher--prev-char decipher-char decipher--digram decipher--digram-list #1=#:v decipher--before format "%c%c" assoc 0 65 32 26 #2=#:v #3=#:v decipher--freqs #4=#:v #5=#:v decipher--after #6=#:v #7=#:v] 5])
#@44 Generate the counts for an adjacency list.
(defalias 'decipher--digram-counts #[(counts) "\302\303\304	\305#\306\307	\310H\302V\203S\202\"P)\207" [total counts 0 mapconcat #[(x) "\302V\203	T\303\207\304V\203	T\305\306\"\207\307\207" [x total 99 "XX" 0 format "%2d" "  "] 3] "" format "%4d" 26] 5 (#$ . 18468)])
#@65 Count the number of different letters a letter appears next to.
(defalias 'decipher--digram-total #[(before-count after-count) "\304\305S\211\304Y\203#\nH\304V\204H\304V\203	T\202	*\207" [i total before-count after-count 0 26] 2 (#$ . 18801)])
#@119 Perform frequency analysis and store results in statistics buffer.
Creates the statistics buffer if it doesn't exist.
(defalias 'decipher-analyze-buffer #[nil "\203\306\202	\307\310\311\312\"\310\311\312\"\310\311\313\"\313\312\211\211345\314\315!\210\31166S\2116\313Y\203M46\310\316\313\"I\21036\310\316\313\"I\210\202+)\203t\317\320!\210\31166S\2116\313Y\203p36H\311\313I\210\202Y)\202x\321\320!\210\314\322!\210\323\n\324\"\312\241\210\325\211\n\326\"\327\"\31166S\2116\313Y\203\2736\330\\
6H\33146H36H\"E	B\f
6H\\\202\216)r\332\333!q\2107\334=\204\317\335\336\337 \"\210\3128\340 \210\341	\f\"\210\342c\210\325	\343\"\341	\f\"\210\342\344\345	\312#\346\261\210\347\nG\350\\\342\"\21196\312:6\313V\2039\n\211:\203':@@\351\352:@A\"\261\2109:\233\211:\204\353 \210\342c\210\nA6S\2116\202+\325	\354\"\211\312\2116;::\211A:\242\211;\203\226;A@\313\232\204H;@\330Z6\342\355\35646H!\342;@\357\351\360;AA@;A@\347\361;A@_\f\"$\35636H!\342\261	\210\202H+\3338\362\312!\210.	\314\312!\207" [decipher-ignore-spaces freq-list decipher--digram-list decipher--digram total-chars decipher--freqs 32 42 make-vector 26 nil 0 message "Scanning buffer..." 27 decipher-loop-no-breaks decipher--analyze decipher-loop-with-breaks "Processing results..." last 2 sort #[(a b) "@	@\231\207" [a b] 2] #[(a b) "A	AV\207" [a b] 2] 65 decipher--digram-total decipher-stats-buffer t decipher-stats-mode error "Buffer %s is not in Decipher-Stats mode" buffer-name erase-buffer decipher-insert-frequency-counts 10 #[(a b) "A@	A@V\207" [a b] 2] mapconcat #[(a) "\301@!\207" [a char-to-string] 2] "\n\n" floor 9 format "%3d   " delete-horizontal-space #[(a b) "AA@	AA@V\207" [a b] 2] "  " decipher--digram-counts ": A B C D E F G H I J K L M N O P Q R S T U V W X Y Z *" "%4d %4d %3d%%\n  " 100.0 set-buffer-modified-p decipher--after decipher--before decipher--prev-char i major-mode buffer-read-only rows temp-list entry] 14 (#$ . 19067)])
#@50 Major mode for displaying ciphertext statistics.
(defalias 'decipher-stats-mode #[nil "\306 \210\307\211\310\211\311\312\313!\210\314\315!\207" [buffer-read-only buffer-undo-list case-fold-search indent-tabs-mode major-mode mode-name kill-all-local-variables t nil decipher-stats-mode "Decipher-Stats" use-local-map run-mode-hooks decipher-stats-mode-hook decipher-stats-mode-map] 3 (#$ . 21082) nil])
(put 'decipher-stats-mode 'mode-class 'special)
#@59 Make the statistics buffer visible, but do not select it.
(defalias 'decipher-display-stats-buffer #[nil "\302 \303 p	=\206\304	!\210\305!*\207" [current-window stats-buffer decipher-stats-buffer selected-window pop-to-buffer select-window] 2 (#$ . 21546)])
#@206 Return the buffer used for decipher statistics.
If CREATE is non-nil, create the buffer if it doesn't exist.
This is guaranteed to return a buffer in Decipher-Stats mode;
if it can't, it signals an error.
(defalias 'decipher-stats-buffer #[(&optional create) "\304=\203p\207\305	!\203(\306	!\203(r	q\210)\304=\204&\307\310\306	!\"\210	\207\n\203U\311\306 \311Q\312\300\313\314!!\"\243\304=\203F\314!\202I\315!)r	q\210\304 \210)	\207\307\316!\207" [major-mode decipher-stats-buffer create stats-name decipher-stats-mode bufferp buffer-name error "Buffer %s is not in Decipher-Stats mode" "*" assoc buffer-local-variables get-buffer generate-new-buffer "No statistics buffer"] 5 (#$ . 21816)])
(provide 'decipher)