sudoku 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. #!/bin/sh
  2. #\
  3. exec avram --par "$0" "$@"
  4. sqXWaRqXKZQQrIapCjnALjwnnMnJMTYs>]az?oVcrzmMIsAYkoKYYZZ[zSnqYSzBsozlIywuRYGQ>Yz
  5. ^{{qqLyEvKzARxsOPqZQASQtyBoxjHkaCoxsqj[{[kKT[JpRNoYqKYIYNeQp[OSZwffjx]lnuwAZqoS
  6. UYRSsOcWaXuSeMI^<S<xrwPCxjhgHQsmyPcxNMIITUpC_[FrLJZtYRA_{lHiAgk{AczycwjATUQqx{X
  7. yDagrcXvQOL{Q?PeOXQsSh^[xXNEzxLMpxBwpAMzH<XdsrcrxOy^kv`if`wCIXSQ\Bwgj<BuL`nZa@j
  8. ddoTq=[xOnwlmsX[RkcaoD`xSUcfC`czxK@C{qCyGFK<KCEWKlyfIS<wXAj_DAF{Gp\X_BfqpQ[Z<]Z
  9. HA>>Ayd{FxSUMhOAFDhv\\FJZnlrxZ\rkmjCIilalVkLpluZsOayJQXPj\{okGsC=hvkVZwyLss@>fz
  10. qKJ=NtCKO{Ttdm{Id_CwhuP<I{YZqCmxOvY]D?[VNNz<wkrnQjkdzzNrxJhI<OxQ=LWsO]LWaLrrP^K
  11. VARCQYJukV`q[xOpEpkOy@v\=MfStBWniNI[ulmlZ@A{NwHA{\LWy<Bp>nOksk@[FOF]KlyfF^pEWpw
  12. =N<Pm{TWkL@FkrPI^Si>]z^Q>FCyDKSx^JErRw{a?upf<>GJdDAPlrvqFj<aCt<CO\`[O@gesSFEAxT
  13. <`SvgiRq=JIQZxZSqqSS\=lWJ<Fq@f\rQ=Gz=wOF`h]tzSPNj[qGczi=WcKEjPw[aALz[RayY[er@w_
  14. `R@rAR{_`\HvxMW<wmDM=ZF@LSfdUYYknbuqCI{qSSS{O{{yUuYfOPwI]Ds<AN{\z=D\NblkX=cv]cv
  15. mkzfRYsFOzrZXs{k{sqquZwDpqIQSYLfOF\X]Q>Ut?R{\uOvc\Kp=Cx\M{QMisNiV^cFjwxRqMuo[aR
  16. [OS[{yUPK`Q>{KoYkQQXf<NNJWCL>n{eM]FettXt[lt[qEMro_FnDhUFWjjUfuQCcIzGJQoaTpqIQSY
  17. SQJ=OsOSQkQWkk<<\wwYaBr{]_<dR_v=]y<T[Q>XoOL=N?^Xhxvil^pjQMuo[jDUpC_KoxsWqS{sSOS
  18. uYRSqA[aqEXQ@OsaMlA=ha{nILPH?AlHSPYpdtVP<Lw_xnv?FpjQMuo[oaqx{YKYIYRyQjcpqsR{eNi
  19. MyQcxK{CQS]yuOFQQTtA>cwpEld<a<aNwmdSGMeJqlX{J_FpjQMuoXbxBwpAMwSuYRSqA[aqJQoaUu{
  20. SVv@r[wqCw_qVKIJsPQx[XkIsa<oCwqSYNniX?rQNNBwcsa_nSIeniGaPZXtbvPNv^_ENiMyQcxK{CQ
  21. S\BY=tlxQYg>gmqTc{C?^[k=Z>cLMMO]{AomNDfyxQm>kxtfKlkKPJ[qJqtVOc{SCiNB]nJcGpjQMuN
  22. `wFK<KB]IczyMztyR_oOiqY[KrH^hBBhJayL=jvtx<WaOI<BzJs[QiLt\KWkQilQJ{_EltX=<FKVXoi
  23. JYDokQRYYAyNubanR\nyGaQ^jyrPWCCQ^[xXJEzxAtFY=AAJLWkLQCgfHyPxCxJ[wlxAc{fqkCPPQPs
  24. uyVzX`k?h[[T@PgzoJ_z<IyeJpUZvDvOgOIFtez>Cs`B]nv?GpjPNbv?{Jwe[P<WjjK<BuPoL=k_ieM
  25. GfFHcu@BQ?=ztx>AtlQH\][Uupsjo_a@S=YMlQp^HtxMAyMl@oktD\A>a{mKsqpKOx>OJfpfUK\S{zs
  26. ybVSIdXkPcGKyqwPZxCxJ[wlxAc{fqkCPPQHdx<xZS_aOLSk=WawViJSpnmTqXxOSJgs<i[iU<KACKh
  27. RJM>f{\dOxKV_L{AjKPKDRwt=gO@]cxcuzi{wyu]dX_dXv=?jDydQTYPHCw_lDS_=Pn>AyccOZwJJSU
  28. MhAv[cqNezQHdm{Icb_Cwd\pXA_@fXXyKN[=mcxISYpryuLQVw{L^of>=WgbYPtgP`PWoG]]_=ZFAx?
  29. zicu{{w[sbVSEWnVO\WLGEJwLSk=WawViJSpnmTqXxOSF?{JzS<As{OUlSzi=LWsOG@A=jQ=cWwUJ?j
  30. scSyg[K[zXnj=n^SxQ\AMfqtc=hyhviln_EqFUJyNOH_cuUzmzbidSlK\[cvs{i{ZTVCEdBwnDtcUXf
  31. [aOFH[oUudmzvDIC=TmFcCsSiMtuvZ[cvqDB[s[c=[pj^?=[upJvYolzxS{zKZngkQPbQYoTkJyzAQq
  32. WX<QIsyer@ul{Hj]WH\\<OjAPf\<O\l[@MXeGYcwCvAx?zicuzi{wSqbVU]eK=JIQ[UlSzi=LWsOG@A
  33. =jQ=cWwUJ<_r]Q]qL@BtVAtcqPDHSppnm>]z^Q<FCyI\xJAMjc{H?ldOlctQuWq{AeaKYMPxqEPAXoJ
  34. myy\DQqzyfOS?IXCKmlDtskd<?zOCfcfvr?=xMAqcwCxRr][<{gMz[w[w[Z[rHwejPw[p\U{YzXA{Nv
  35. DHA{cLwesK?tBp>nOj`\QctMV^<awgd\^M[BT`SvAdeK@iMz[_S\lfNKG>`GM{ysSoGx\knZ?fuWfxM
  36. AyMp=Ak{FOF\v=yuTxaTN<QKtdS\TLXBNji`mvetHCm@SBBsUzm{Ah][<zBcu{kzsy{wTvOfWcPXsxD
  37. HSppnm>]z^Q<FCyI\xJAMjc{D_^Ya^DHCo`AuzQALGcyOGcziL=Y^XDSlKf@tpNHB>?K{{_q_cztkb=
  38. OEomMsKKrPXzmTl=Q[{xf<Km{qmwP{d_wjnezB>]l`i\TLXBOCfc\Jp?=xMAm_icwCtvAx?tuz[g[zr
  39. [cvrEHxeKwUuo[d>Sjj^>EAxU^M[dR^`xNqCu{=JIQZ=HZ<\>={cb@LS^\@LSfg\SeOUzmzT{_gxG{{
  40. {{{tyxH[c{HwR@qIJsDR__pOsYIkZL<MQkz<<KEQRYYAyNoEd=bwx_LO^LBvrB>\B@C=\w@mvetEtHC
  41. m@S>R[h[^DSlKvr[cvr][<{gUWjfwkmWQCcI{Z[aMP>u{Pnu{gP<STc>Ax?vWaJstBA\ayIO=cv]cvm
  42. nxPb?=xMApljudZgX{{{{{{{{{{z_XmVAtcp^Xw{<F?mNGYX{\nj=n^SxR<@q{zqFpoNjF[\]ht]jty
  43. XG{\B`i^LTFEv=]=lT=@mvet?=xMAmUzmz`idSlKvsUzmzbi`PWuFWjjUfuQCcIz<DCzZTM=ZF<M=Zf
  44. j=ZaIcwCvbuqCIzB<bv\d<M{D@[piRR_EHZfZU[w=qMUEffffffg{{{{{{{{{{{{{{tYwsR[]A`=_H{
  45. z<mnYEahqMJyzAQqWm<Lok{PfgNe`z=[xQt=pwqA\FAtogT>L=TTFDB@C=`mvetHCm@SOgYcwCvNr?=
  46. xMAn`ibOjEnoofs>GNuQCcIz>SpqHB[fB[gCGmNTHCm@SN`{iccIzFSvft[dt[gJAHxDB@C=n@WegHu
  47. =oysYysYl>D^D^D^D^D^UbU`UbM`U@U`UBM`NGpCc\tHCo`X?Ez[zsQMKHbhaNQ=SHoh[H=@SK{tDT=
  48. gO@]cxyu{\ZxteteJJ`i\dE<TF<TLXBOCfccBi\l[@MYJi`mvevji\@w\@Jt{Hj\niGaPZXstbv\d<M
  49. {D@[piRR_EHZfZfwkmWQCcIzF]{H\T[LBCqMZHx<TFF@zeliUHmKcCC@zXXXTfkYSP<^UFFn^^mKcCC
  50. <zI?Q[`mt>TN]ZExwNuounrJg\vjRvk@MW\@MCJq{HjBBHAtj{uz[_`tnUZozEHi\<`B>\B@C=\OGUH
  51. ZfZXvr=]=lUFVrIwb`wS=oxvHgNuQCcInazfjCvJCvo]OK>=]=lZNbwgbVjQMuo[\lSd\HS<mYSQuf^
  52. L>Gf]UNdFD^fFPM@zPP>p>^pY>><<gX<<>eMCPfH{oTBAuactMWxjylym=_JkXPYooyaCKa\@MHsxqE
  53. HnJ[alEjnAx?tKjoF[^DSaji\E=\dCgTB@C=\BNrB>]nnr<QJBwcsa_nSIeniGaPZXtfCxn=]y<T[QA
  54. tol=\dEnoofs>GNuQCcIzf[P>P>QFiPm<]KteID<<GL<<<i>lH<H<D><@d{FqyZQ=]{\l[JLyXNIHMU
  55. TlXiDwX]VJKMKYpsP<_I[^APf\<O_b_xr[h[\uJ>J=ZJ[`Pvr<`BNrB>\Zi^L@Ji_w]eJ[yXZqDVCDv
  56. XkNuQCa<lSd\HS<mYSQuf^L=?jKoGdHgNuQCcIzBmYNnivz\]>W^J\<<<<<>i`IaEGS>?{jmHZ<kPRF
  57. g_qdNLBxP^sSKtHg\XdoPEG{b\<KwrtyX?=xMcnSJ<Uz\=XTsgT=vrE?@i\VNr=btokQRYYAyNubanR
  58. \nyGaQ^eyLELEPfqO@>=eJqlX{J_FpjQMuoX\>QKKQisyDLk]wGREIDIhd[cwx\TSJFZMadzQMDmnYE
  59. ahqMJyzAf@IO{{^]ZIy^yMUHZ\mtCw_=ZEt<AVrHNr<zi]ji]jtvOgOIFtez>Cs`B]nv?GpjPBmYNni
  60. vz\\Wj[ZRKEXrcFpjQMuo`h=<FNp`yj=TkpdNn_d[<>AtclyXB<nUZoQS<_>sQMKHbhaNQ=SKrL>QG{
  61. jne{[xNO^c\TLBB=MjJ[vBJvrKgT`RrB`i\YJEHvgNe`z=[{w[rUeXr]nyN<EPxyRs[p\VOc{SCiNB]
  62. nJcGpjQMuOn<LDFfq=[{XdPewuYctMWqA^oF[\oBRhNuounrJg\vjRkME<GO{wx_LOoxKV_EatT>ho\
  63. <O\@<YgT`RrRJrHvr=wajz<VpmDU{Ez[g[z{ZTVCDvCJnl@<eGNOrt?JyQUqpSqGbVSEV?GpjQR<P<A
  64. Q\Mbv_^bcN]IlHCoaJFZ<_\SbkHdjylym=_JkXPYon{\a<_F{tyXG{^GJdDHnctdEwkv=`ia]i`DwTv
  65. NrJO`PWoG]]_=ZFAx?zicu{{w[sbVSEWnx\@>>fiLvOgOIFtez>Cs`B]nv?GpjP?QDMkgpHkXhuUHZ<
  66. _Eat=c{snrEDpmAa_=np_inAdtoQ<POn{zyMT>]ZXBo\_\S\E`v]Z?vrLJrJJrEHi\zu`wqEHnJ[acw
  67. CvVr][<z=z[g[zsyu]dXb\A<=QTEHvgNe`z=[{w[rUeXr]nyNPl@^xvoDdtk<v=]WHezHAwpNLUDFg_
  68. qdNLBxP^sSBh\@MEni[JFZFOvY]D=ctcjf[\uGT?i\LwUWgTJO\@w]QFd<@tHCm@SFNsUzmz][<{gUz
  69. [g[zqyUbbTIPajz<VpmDU{Ez[g[z{ZTVCDvCJg<ktNfpkLvTdT<_\S_cwz>HEBR_uQ@_CEpbRJf=@Ns
  70. [_EawK{V`pHAthO_LOeXidwWCi`PVrao_Zz\<KuHZfZggTHCm@SR[h[mWVAx?ziCu{i{iyu{UO=ABxn
  71. tTTlS^][<{gUz[{zsyubanRxqNEjLw`vlGX^<Uz<=JoQ<?IQX>HGYQ@xnvx=DIqzoF[^DSfOF\J[\zt
  72. kz=zi^JrLcibOgTCw\AOzFAtB@C=`ggUHZfZ?=xMAm]ir[h[mWDSlK]ez[w{i{[zrhBOkP`oDuzR[h[
  73. egVAx?tCuzi{w[sbB]nVF@^zPk]FdiD?=Z{bh\Hmai@jXzXixiDP>R{tDtAtu{F\<<@v`O\FAtAJijJ
  74. r>Ai<@vr=MjKjwFctTFC>Nr=]=lUHZfZ<wLHCm@SBJr[h[_dSlK_cuzi{wUz[gYL=JtQNf<=J?=xMAn
  75. `ir[h[dSlKvr[cvs{i[RUeb=JG]gpLuD?cv]ZJfVxn^ws?s@BIE<TLIS{t=cv<Al<{^zteJe`i\LwTc
  76. hIvrho\Uj{Dp@t`=ji]\d=]=lTJmHZfZ>Z?=xMAlacwCt^Ax?zicuzidSlKvrdIwv<<{`mvevji\l[@
  77. MYUzm{AidSlKvp[czszsscy`K{FyMND<@vezvyyxi`NIHMUTlPNL<aR{tlS^ZdS``Wh{\cgWCihAd=P
  78. i\cjBw_qlkz<VNrE=\dcdB@C=\@OCfc\HCm@SAcwCvNr][<{gYcwCvVr<=P{^]Z=]=lUFvrOCfc\l[@
  79. MXTWYcwCxRnAx?tV[cz{w[s{i`EbvhtdT{_LOxiDy@`BN>ftyVA>L<i[{_cz]fcuPo^DS^mGU<ZrBjK
  80. gTbO\YJyMT>]ZHvr<`<RB>^=]=lUHZfZ?=xMApvsUzmz`i\l[@MXeGTzwhf[]\dXEGTB@C=`mvet?i<
  81. l[@MXTwUzmzJ][<zJ[cvs{icuzi`Ek\_EndS^{x`=ktDl`UVKa@A<Dokz<=J<Lp@tMw_ctKgTEWT>dB
  82. VrEw\ZxteteJJ`i\dE<TF<TLXBOCfccBi\l[@MYJi`mvevji\Uj{Dp@t`=ji]\d=]=lTJmHZfZ>Z?=x
  83. MAlacwCt^Ax?zicuzidSlKvrLdjhnfez<dShNoQ<?IQX>LPLx{{kvG{`UJ\=Xe@i^Zr@BvrG@tuJHbS
  84. h{^OGT<E=\d=]=lT@nrOCfccJi\TLXBNbi]jtyXG{\B`i^LTFEv=]=lT=@mvet?=xMAmUzmz`idSlKv
  85. sUzmzbiakv>D?LO^`u>Vn<oBR\@M>XwSfAt<dS`Ztc^zi^Ai\CNr?w\zwHezD]ZRvr<`B>\Zi\TLXB<
  86. UGTTFCGGTCOkPR<dS_Ji\E<A]\d\TLXBOCfc\l[@MYJir[h[eGTHCm@SFNrA^Wd>{wKv?fbkHd@M>g[
  87. fcteJO@z]``vrEwLCgV`O\uJ>J=ZJ[`Pvr<`BNrB>\Zi^L@Ji\ZxteteJJ`i\dE<TF<TLXBOCfccBi\
  88. l[@MYJi`mvevji]Tkd>]ZD]ZJk[[GT=IgStp@wKt[j<MM`ihAhJNrGweXt=cv<Am_Zi\CgT`HNr=eGT
  89. uJHbSh{^OGT<E=\d=]=lT@nrOCfccJi\TLXBNbi]ZGdeJJ[xiDy@`BNLQ^kzG{^DS]`OdMvrBb\zi``
  90. W\[jHAtc\<QgTmGT?vrBvr?whnct^AuWgT>LTF=vr=]=lT=`i]\dXhi]C{gKv<Ap`=ktDl\AXo{t>]Z
  91. J[]ZtO@i\G\uGUPo\PW_cz]_ji_vrEAi]eGTJO\_\S_cuAJi\E=`i]\dCgT`=?gTMbWd^AtchNoQ<<@
  92. M`n{teJ\=XmAt[gTfanr@ZvoJ<=J<L=ri^MWUTwTogVSJ<Uz\=XTsgT=vrE?@i\VNr@Ukdu{dU>Vn<M
  93. Bh{zozEtrC]`Nr@=zi`UJ>Zwz\UGUTWU>JrJ`i\[jHAtc\<QgTmGT?vrBvr@VGf<Al=DJf=PTfkzD][
  94. dULK]Zi\ABi`ZtbOfAtKgU<wTtwT`nr=MjJ[vBJvrKgT`RrB`i]Gz^Z_gl=QZg{tuz<M<zmAigHi`mJ
  95. EwfctJNr<wT@JrRvrho\<O\@<YgT`RrRJrHvrFEjvBXiD<@QUfiZ\=X^K_TWTEvrCw^mJI=Janr_ihZ
  96. rMMgTEwkv=`ia]i`DwTvNsFGv<P`=\=ARk[^Z>Ka<wTbNrBMJ?w^{tCvrDwU>ZrUJi^UJdS\zi`?i__
  97. i^OGUG^nhN<@mkSz]fK`_i^Zi]Zv`O\FAtAJijJr>Ai<@vrEwfctJNr<wT@JrRvrNKv@E=M_kz<LdzF
  98. JrG@ihMZGw^`vbNr=?i^ZlsgThO_LOeXidwWCi`PVrNEbd<PXs{vnKh_i\zi_TZNMjoz>ZihZrlR\AN
  99. r?w^{tCvrDwU>ZrUJi`^V<M=`r{tI_trJre@ia<zQHt^AthNrLCi]g_vre@t>]Z=OgW_i\]WL=Ji`^\
  100. M=g[{`@K``JrGvrLK]CjJ[\zi\ai\F\UgTkjFOfUGT@JrEw?Zi`dALTgkzJK\lwUEBi^K`UJ\=Xe@i^
  101. Zr@BvrNMjoz>ZihZrlR\ANrN<QMv{{^LzjJrQHi^K`Ztc^zi^Ai\CNrQHt^AthNrLCi]g_vrD<MPUgi
  102. ZHKa@Jr@ZifK`mKdUEJi^Zp=vr@Ztuz?vr>Rr<f=bid<MPVizhK]lwUBNrFK]zt=ABNrlRluGUBOd<S
  103. FMGTci]=jid<OFqzQ_tPZrMvrnK]`OdMvrBb\zi`Ztc^zi^Ai\CNr`H^kz@Lzlci`mGTrK]ZtO@i\G\
  104. uGUHOvBNOgTci<Zie?Ho{ulzNUwT[gU=?w@S]zi^fSGT[j<MM`ihAhJNr`E>OG{]Mz<@ZrBMGTtzI]t
  105. U@i]<[gTU@v@Zi]edKgVL`Fo{o<[fci]Zi^LzP?tSgT=MgTSj@mGT>tJNr`I>FgzLct?CihMWTlzLKh
  106. MWVoGW@S]zi^fSGVLIOf{\Ez>Ai_TWVlzDzI]i\cgTrC]`Nr@=zie<EPbfecvcia<wURK^Ka<wTbNrP
  107. ?tSgT=MgVL>QF<MZFAi`?i]@KfK`_i^Zi`?w@Rrhnr`<fcwEWT_ic?tdzFJrG@i^K_TWTEvra<]zBci
  108. ^JrACwDznJr?vrDzP?i^UGV<ezAEwV_ih=zI_trJre@ifK`_i^ZidHSdTRrFJrLcu=?uE?i^zi^_tdw
  109. ThNr<ctBZrnJr<cttz??i``VrnKh_i\zifAtlRrI_iect`Kg_iaOGTrK_TwV`NrF[_ci@@Jr<MZHKa@
  110. Jr@Zi`@K``JrGvrFAt`AhJJrezhK]lwUBNrJK\lwUEBihauUVE?i\]zQ_tPZrMvrE?vtwUPnrBcu@jH
  111. JrF[]@KhEwUHNrHKa@Jr@Zi]L[`Fg?i\mZXK`bZrCvrhK]lwUBNr`axbQ_i\ctP[\=Ci]`NrQ_tPZrM
  112. vr=ct<@LwV]ZlCvewTSgTM?w>ZrO@i]]ZXJrF[`Ez<mwW@RrXK`bZrCvrB[]MwTdS\Ez>Ai_TWTP[\=
  113. Ci]`NrHAw<ZrnSecvcia<wW<[fci]Zi_cu>ZrBct=AtdRrLJrLct?CihMWT`At>ZrA=zeznRrDwT>[\
  114. ]WTrBrRSecieEZ>CtVZrDwVUzewULJrMEt=Ai\UzF[]NZrdwT=AtdRrLJrLkfZrBAtHSdTRrFJreznR
  115. rDwXFx>Ci]ctEz=cih_i\]zBci^Jr<g^ci_=ZdS_=WTrJrF[]NZrdwVN\mWTuzF[_ci@@Jr?AvBAi^_
  116. i\TEwT`AtdS^LRltwTEz=cih_i\dRrRShauUVE?ifAtlRrI_i^ci`NZBcu@jHJrF[_ci@@JrFAi`GtP
  117. Cu>flwTdS^LRltwWEWXFx`axbQ_ihauUVE?i]ewT>j=ct<@LwTV[`NtlwTPCieFBAulwTPCu>flwVNR
  118. r=]ctPZr`axbQ_i\UwT?=ZlCi\Uz<=@JrBAi_cu>ZrBAulwTUwT`At>ZrB[]MwTlRrRSeci_=ZlCi_c
  119. i`NZ<MWTuzLci^LRrLkfZrE=Z<ciaailglDZrRSeci`NWL>jFZrMEt=Ai`Gh`dHRrLkfZs>j\TEwXFx
  120. >Ci\FtFAi\FtewVN^cieF?Ai\TdRr=\ci\nRr>]WTVZrFZrA=wTdRr`aihai\UwTVZrBAi]LZrBZr`a
  121. i_=WTBZrJZrBAi^LRrBZrRRrHAi`NWLuwU>w>LRs>jaai\Fu@bp`e>w<XFv<>j`dB<