document.writeln('\n'); //Copyright 2006 by Patrick J. O'Neil @ http://www.sudokulearningcenter.com // NOTICE: You may not use this code for any purpose, commercial or // private, without written permission from the author // eval((function(s){var a,c,e,i,j,o="",r,t="@";for(i=0;i=0;j--){s[i][0]=s[i][0].split(r.charAt(j)).join(a[j]);}o+=s[i][0];}var p=69871;var x=function(r){var c,p,s,l='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789';if(r<63)c=l.charAt(r);else{r-=63;p=Math.floor(r/63);s=r%63;c=l.charAt(p)+l.charAt(s)}return c};a=o.substr(p).split(':');r=a[1].split('?');a=a[0].split('?');o=o.substr(0,p);if(!''.replace(/^/,String)){var z={};for(i=0;i<823;i++){var y=x(i);z[y]=r[i]||y}t=/\b\w\w?\b/g;y=function(a){return z[a]||a};o=o.replace(t,y)}else{for(j=a[a.length-1]-1;j>=0;j--){if(r[j])o=o.replace(new RegExp('\b'+(j<63?c.charAt(j):c.charAt((j-63)/63)+c.charAt((j-63)%63))+'\b','g'),r[j])}}return o.replace(//g,"\"")})([["String.b5.zv=ar;v.jn().reverse().fy(Qf8.fF{f8.b5.fF=a1(gy,$b5[gy]=;ar;};f8.fF(ssalCmorFdohteMtirehni,a1(`~=1gy=dV[i];$b5[gy]=.b5[gy];}ar;}Qf8.b5.eg=a1(dx=ar;a1(dl.call(dx,dl||dd.dlQ};};f8.b5.i1=a1(dx=ar;a1(.apply(dx,dVQ};};}b4(c9(adad={={dG,b1;fw)!=dH(DIVQ.dW('ex',fwQe2.ix(,e2.dbQfwQe5=fl;eX=-2000px;kB=fV;iD=fV;h8=fV;}.cN=;b6Qb6.x=.iE;b6.y=.scrollHeight;.cN=;e2.dy(Qb6;jN=0;b1=;e6(b1+=b1.hsb1!="+ "dd.e2-=b1.eh;}b1=bY.fJ;};jO=0;b1=;e6(b1+=b1.heb1!=dd.e2-=b1.eG;}b1=bY.fJ;};dsb4(c9({;d=doctypegi=(gi=='CSS1Compat');}ct b4(gA.platform.dh('Mac')>-1&&d&&d.gy=(d.gy.dh('strict')>-1||d.gy.dh('w3.org')>-1);}ct b4(d&&d.f9b4(iy)>-1&&!d.o)=cv;ct b4(iy)>-1&&'4.0')>-1)=cv;ct b4('Frameset')>-1&&!d.o)=cv;ct =cm);}s=>ea/\\;ht:d_;ht:dM ;der fM lE :c7 ;j_:eY\\=cL ea<;=$dG(s).x==138)=cm;ct =cv;};dn,cl)x=y=$ds"+ "())cl;ca.x=cl.x^*2y=cl.y^*2;cl;gJ,cl)x=y=$ds())cl;ca.x=cl.x-b1*2-b6*2y=cl.y-b1*2-b6*2;cl;getCSSOutsideCoordinates,cl)x=y=!$ds())cl;ca.x=cl.x^*2y=cl.y^*2;cl;gq=a1(n,=0n.nodeType==1).cE(nQb1=n.childNodes;@0;i\\"+ ";h9:ej-dr#-:ev\\=cL \\fU\\=hI hJ<+b6+>\\h9:ej-dr ;eq:dP ;i5;cp(i=0;i';}t+=''#'';cC=gs;c1=dH(dNQc1.dW(ex,cCQfX.eL(c1QcF=a3(cCQcFe5=fl;cFfc=hh;cFdR=eT;cFeX=top+dC;cFd5=+dC;cF.cN=t;$cO=b1;$A=gW((raBssergorPetadpU.troppuS.cV+ei+\\j4,k7/eiQUpdateProgressBar,c"+ "l;fU)!b4($A)fz($AQa6;}b1=dj(d5Qb6=dj(.cMcOQcl=b6/Qb1+=clb1>b6)b1=cl;d5=b1+dC;adad={ad.bmad.bm={={};ad.bm.B=23;ad.bm.C$D=0", "};ad.a4.ad.a4.f=a1(a7.z();b4(b_ b3)==cG)ad.a4.qcU.cZ(ad.a4.a2.a6 ){=a5.a3(=d9 hG(,b1,b6=a1(;cl.a5.a7d.f9.dh()?cm:cvcp(i=}c9(;t+=ar.);+b1*2+b6@1;i.Hm$.a8==m;a6 cveH,,'=='m$.a8==m;a6 cvia$=dc"+ "%3);$'=((==0)?2:-1)+dc/3)*3;$b6=((==2)?0:+1)+dc/3)*3;$cl=G%3);$cC=((cl==0)?2:cl-1)+G/3)*3;$cF=((cl==2)?0:cl+1)+G/3)*3$9{O|'*9+i]P|b6*9+i]Q|i*9+cC]R|i*9+cF]cz|@dz(E,i)*9+@df(E,i)];!eH(S,czScz);!dL(T,czTczM|dc*9+i];!eH(S,MSM);!dL(T,MTMN|i*9+G];!eH(S,NSN);!dL(T,NTN);}eR.b5.hV!(K>=1&&K<=9)v$=0;<S.a8;++S[].K==Kv;}a6 cmFindSolutionPuzzleValue$w,,,',r;I!=m;'=\\eJ;e6('.a81){O=c1fq().jn(''j1)dI#gZ[i])", "ad.a4.b9(ad.bVar.cI[b4(b3++){.C.b3cp(i=0;icp(j=0;fq();ar.c4;b4(cl+b6;};ad.bm]==){c.a8;i'+,=,ar.);)+'\\eJ]&)cF=ed)+){b_ .cE(<9;b1[.a8]ad.a4.c1,dB,;}ct +1),=0;a7d8(cC))C++!c,,O,", "#$OPQRW`ouwx~"], [";}0)#cFC@k1){b1y$b6|=y$;}}!b6)a6 dB;;i<9;ib6&(1<6)v;cF=cv;`W;cC=%[1];=%[3][%[3]-1];0){cF=cm;<`;iTc1=[%,`~[1],%[2]+`~[2]x", "ad.a4.b9(ad.bV.dc+1)++){b.cE(.a8clcp(i=0;i]+\\fN].G+1)cp(j=ar.cb4(b6c1[i][1];s+=,+([la7[3]a6 c[0]);};ad.bm..C.fq(;0;j<b1.C.)b8;[j]b3)+'\\eJ':+,ed?)+' ar.ib++){=[]b1.G+1)4;ar.hL=ad.bV.s=,.cQ([i]", "#$%:?PRTW`nouwx~"], ["1),[3].jt()];c1[3]b1`[0][3][0]a7.iI(b1`[1]-i,1dBc1}}3)b4(as())Hm;}ct{b4(dB`[3].a8>3)b4(as(dB`))Hmaq.jt(),dB`))Hm;}}}Hv.at=a1(s~={};i,j,a7,,b1,b6,cl,cC,cF,c1,dB;.av=cvv(2)==1~c1=[];<9cp(j=8;j>=0;j--~c1[i*9+j]=+i];}}s=[];s=s.concat(c1.av<3a7=v(3)-1;hK~d3 0:=v(2cS;d3 1:=0;cS;d3 2:=v(2)-1;cS;}[swaprowcol+i]=+a7+\\fN+;[jR+i]=cv;[jS+i]=cv~@6=(i*3+a7)*9;cl=(i*3+)*9;b1=s[b6+j];s[b6+j]=s[cl+j];s[cl+j]=b1;}[jR+i]b4(~@"+ "1=+i*3+a7];+i*3+a7]=+i*3+];+i*3+]=b1;}[jS+i]}[ha]=cv~<3cC=*3+i)*9;cF=(*3+i)*9;@1=s[cC+j];s[cC+j]=s[cF+j];s[cF+j]=b1;}}[ha][g_]=cv~<3cC=a7*3+i;cF=*3+i;@1=+cC];+cC]=+cF];+cF]=b1;}}[g_]j<8c1=v(9dB=v(9)c1==dB)b8;0&&cCke&&cC<800)cF=cm;ct b4==3&&cC>800&&cClQ)cF=cm!cF&&(dx.aAS?!I!'(I!,0?!%!]+${*!g$5!!!!)$!I#:)+jM!?g])S!!!{&!!,1&;!?5!!u!q!\\'b?*!!!!#!#!%&!!%?!$6!)Rg!$],6*5!!2S!##)!!{{2)&&u!!*g?S!u!+{tz%!!.1[5!,0!S!;!Sq!\\g`)95|\\!)!?!I]*!92|$(qG!g#:$]{!!sS%]];b4(c9(ad)=cG)ad={};b4(c9(ad.b2)=cG)ad.b2={};ad.a_={hi:aitcevleh ,jw,fohI>\\;4:ga-z ;eq:dP; ja:fB\\fxhIkllj #hJ<+ii2+>ea/<>hJ/<>\\e9hI>\\;4:ga-z ;eq:dP ;ja:fB\\fihIkllj #hJ<+ii2+>ea/<>hJ/<>\\glhI>\\dehI;0 :ev ;0 :gC ;eq:dP#\\;eY ;e4 ;hX :dP\\elhI #> por`jy gar`evomesuomno ;b1+=arS()\\dqhI ea<>/;d_-i9 ;ej-dr\\evraelcpretfa_yalpsiD_ukoduShI rb<+hN2+>ea/<>\\;ev:dK-ez ;j_ eY ;b1^';b1^';b1^';b_ =a53(a7);b4(!){eK(dilavni si fZ jv tnemele gninia"+ "tnoC);a6;}2R=fAR;b4(2O&&2OY()!Wauto&&2.fS&&2.fSY()=Weuw=dj(fAO);2.d5~(.iE-w)/2)+dC;}2O=fAO;N=b1;b_ cl=a53(el);ar.b0.hb=cl.dS;ar.b0.hc=cl.eo;cl.dS=dD;cl.eo=dD;cl=a53(gH);b4(cl)ca2O=(A+2)+dCS=a1(sW,a7W;s+W#+gk2+>\\gDhI#+eR2+' exW%1 ';a7+W nwo`iL jVjb jziM>kcilCesuoMkm kcilClb`jcfEfEezij1hx1ej 2%hY ik<\\lkgN+dY2+' ';a7+W gEhy lRiN llil >ea/<>/3%hI;cp(b_ i=0;i<9;i++){s+W#+u[lm+(i%2==0?\\x41"+ ":\\x42)]2+gIhI+i+'>';cp(b_ j=0;j<9;j++b3z(i,j);b_ b1f(i,j);b_ =b3*lS+b1*fY+10;s+=ad4.eS(a7,cP+i+'\\ec'+j+'fC',,cP+i+'\\ec'+j);}s^';}s^';a6 s.d4=a1(a7,b3sW;b_ b1z(a7,b3);b_ =ad", "ad.a_.a0ad.a_.c;b1+=.z();a7.\\=.a+dC; \\;)dO(+dCad_.cL  \\.c;};ad.b2;a7+=: +b68Vfh :u.b6 ;ev :fs=ad4.d+; ){b_ ea<.e=+='DesuoM=cUZ(", "#$W^`~"], ["4.df()cl=b1*lS+b6*fY+10;s+=GhY ik<+cl+ \\fEGfE \\ezGij \\1Ghx \\1Gej \\;s+=GcL \\lkGgN+@dY.a2+' ';s+= \\;)dO(gE8VGhy;s+= \\;)dO(lR8VGiN \\;)dO(ll8VGil ;s+=cPGhI+~+' />';a6 s;kP,i,cl,cC,cF,c1,dB,eb,dI,eV,s,ei,fa,fb;=bW-0;=bX-0;cF=bm.iz(,^cp(cl=0;cl9||b1<0||b1>9)a6 dD;a6 *9+b1];g3,b1hZ==dD){eK(a4.b9(bV,kR)^;}b1=hZ.dbH==0)=hZ.ex.dh(fC)!=-1){b4(!=b1){=ko(hZ.db.ex)!||D!=);hZ.dbH=;kP(.E.F,,b1^}}ct hZ.dbH=;hZ.db.fT(^;PuzzleKeyDowne,"+ "ct a6e.kp)b1=e.kp.aX)b1=e.aX;b6=hF.gL(b1)b6Y()==\\x6b&&e['ctrlKey']==cm){aY(^a6;}b4(b1>=96&&b1<107)b6=hF.gL(b1-48^=ko(.ex)!||D!=)b6.ft(/\\w| /)==-1)cl=H!(b6>0&&b6<=9)){b6=;}H=b6.ex.a8==bm.B){b4(b6!=cl)kP(.E.F,b6,cl^}b4(e`w)ew(^;aYi,j,,t,s;eK(a4.ds()^a6confirm(tuptuo php jv lecnac ,fZ tsal jv KO)){a5.a3(dq)N=bm.aw;a6;}b_ b1=[etadidnaC eloS,selgniS kS,snoitcaretnI woR / nmuloC dna jA,noitcaretnI jA dna jA,kT dekaN,kT kS,'XY-jq','X Wing'"+ ",'Swordfish','jQ',kD kb];s=bm.ek+;s=>=\\gnitaR\\(yarra=][selzzuP$+bm_(cm)+\\(cednib>=\\stnetnoC\\,;=[];cp(j=0;j=\\seulaV\\,)\\;cp(i=0;irb<;)\\llA\\>=\\nosseL\\,\\;dq^N=s;Blurect =ar!M)a6;M@eR.a9;Focuse,i,j,lct =ar!M)a6;Ma_.eB;hZ=M`w)ew(^cp(i=0;i<9;i#cp(j=0;j<9;j#cP+i~j+'fC')&&!=M&&=a_.eB)@eR.a9"+ ";cp(l=0;l<9;l#cP+i~j~l+'h_')!)cS!=M&&=a_.eB)@eR.a9;}}};MouseClickect =ar.fpY()!=dN)=bWM;hZ=.ex.dh(h_)!=-1)a6.db).db.fT()`w)ew(^;ime,,clct =ar.fpY()!=dN)=bWM`w)ew()ko(.ex)D!=){a6 cv;}cl=.dbH;=ko(.db.ex^kP(.E.F,,cl,im^jd(,@eR^b6=.ex.dA(0,8)+.0;ba(, ,cm^dv(\\(je8V+b6+',1)',j8^b1b6)b1)bY.fT(^a6 cv;gdb1=Q(hh)b6=Q(kQ)cl=a4.dz()cC=a4.df()cF={};cF.y=c5+(cUZ(cl/3)*2+1)*cT+(cl*2+1)*f"+ "n+cl*eC;cF.x=c5+(cUZ(cC/3)*2+1)*cT+(cC*2+1)*fn+cC*eCc1=Q(24)c1>=0&&c1<9){cF.x+=eI+cUZ(c1%3)*(b7+eI*2^cF.y+=eI+cUZ(c1/3)*(b7+eI*2^}a6 cF;jd){b4(!)a6;cp(b_ b1 in ){b4(b1==a2)b8;.a2", "};ad.b2.;b4(e.ca7.a0..z();b4(ad..c;ct b4(e=a5.a3()a7=e){b_ ;b_ ar.a7!e)e=dd.a2.a9=bmI[a6 cm=a1(,b3b3.dl66yy;a_u.b1,b6++){\\=);J)eJ=cm+'\\ec'+", "#G^`~"], ["[b1]=[b1];}ForceFocus=a1(^,){b_ b1^)b1)bY.fT(++ea/<>\\;0CFFFF#:dE-dp ;der fM kq :mottob-c7 ;eq :dP ;fh :ej-dr ;fh :d_ ;%ht :dM\\=cL \\poT_=\\=hI jf<>jW<>\\%ht\\=dM 0=f5 0=eY g8<+.ex+'kr ';s+= ;eq:dP ;kV :dK-gU ;eP :dK-ez ;fh :gC ;f2 :ef-dr\\=cL= :gC-e4+a_u.dY.hw+'; ';s+='cR:'+^"+ "+'; cO:'+^+:ej-dr ;+a_u.dY.et+ >\\ ;g1 :ef-dr ;eP :dK-ez ;=>g8/<>jW/<>jf/<;b6N=s;=b1cR=.gPeXex+_Top)fuex+kr}cl=g6-jC;cC=(g7-jD-3)cC<0)cC=0cC>cR)cC=cReXR=cC+dCcC<0)cC=0;cF=cR/fY;cF=(cF==0)?1:cF;cC=cUZ(cC/cF)fj=(cC>9||cC==0)?:cCfuN=fj;b0_ ^,!b0)mdQ==cv)m;=d9 hg().fm()-jB.fm()';s+= \\"+ ";)dO(gE8V\\=hy ik<= \\fE\\=fE \\ez\\=", "ar.b0.gO;ar.b0.ar.b0.b4(e.;b4(ad..c.z();s+=a5.a3(};b2.a7.exa6 car.b3=a1(e){bcJ)eJ)a7=e.z()a5.e.a2);=cm;cw)ew(=a4.dcl,cC;ct ,b1a7!e)e=dd.`dl;c6", "$&^`~"], ["ij \\1\\=hx \\1\\=ej \\2%\\=hY;s+=\\=cL \\lk\\=gN+a_u.fK.a2+' ';s+=(rulBllamSiN(sucoFllamSil;s+=(jVjb(jziM;s+='ex='+dB+>/ \\4%\\=ln \\3%_;s+='\\n';{v=:.dh((i+1)v==-1)v=v=i+1;b1+=#eS(s,i,b6+i,i,v}N=b1fT){ebdB+.0eb)cf.fT(}@MouseClick`6$eyya6.fpY()!=dN)=bWM;hZ=;bW.a2.a9=a_.eBeJ)eJ=cmew)ew(a6 cv;@Focus`6$eyya6.fpY()!=dN)=bWM;hZ=;bW.a2.a9=a_.eBeJ)eJ=cmew)ew(a6 cv;@Blur`6$eyya6.fpY()!=dN)=bWM;.a"+ "2.a9=a_u.eR.a9;@DblClicked`6$eyya6.fpY()==dN)=bW.db;gQ(:=H;b1=.ex.dA(0,bm.B)+fC;fXb1fXN=d4(b1Q(hh),b1Q(kQ)b6b1.dA(0,bm.B)b6H=::>=1&&:<=9)kP(b6.exQ(hh),b6.exQ(kQ),:,fX.fT(eJ)eJ=cmew)ew(a6 cv;Hints,i,j,:,b1,s,b6,cl;ge(gQ(jT)a6 cmfR==2&&kJ){W(bm.X=0;4000)hW=0;be=b1.fm(hW++hW>gr-)hW=gr-hW<=X.a8){s=4[hW-1]hW!=1)s=\\ld+hW+) +sfR>0)bf(s,][0]nfR==2)bg(]:][0]n!:){b6=][2]b6&&b6>0&&b6<=9){:][0]n+\\ec+i!:)b8:H==b6)cS;}ct :][0]n+_0}:.fT(}bg){$!lp)lp=d9 da(delp.hQ(gQ){$ks!=-1){dZ(ksks=-1c9(lp)!=cG)lp.lq(fi.a2.dR=hP;}"+ "bfs,){$ks!=-1){dZ(ksks=-1;}:fib1glb6!b6)bZ+_0!:||!b6||!b1)a6;cl=s.dh(\\jrcl==-1)b1N=s.dA(0,clcC=#dG(:N:.a2O=cC.x+dC;cF=b2.gd(a_,c1=#dG(:N:.a2.eX=(cF.y-b1.gP-c1.y)+dC;:.a2.d5=cF.x+dC;:.a2.dR=eT;ks=dv()(revOtniHlleC8V,6000hR){i,j,:,b1,b6,cl,cC,cF,n,c1b2.kK!=dD){dZ(b2.kKb2.kK=dD;jT=cv;}$c9(c2)!=cG&&c9(c2.jE)!=cG&&c2.jE!=dD)c2.h1(jT)a6;kJ=cvkL!=dD)hB(==cm)bm.lb({cp(j=0;j<9;j++){:=#dz(i,jb1=#df(i,jcl=:*9+b1;cC"+ "cP+i+'\\ec'+j!cC){cFcP+i+'\\ec'+j+'fC'cFN=d4(i,jcC=cF.db;}n=I[cl]Dn==)cCH=I[cl].JcCH=nn!=)cC.a2.en=a_.fGcC.a2.en=a_.d0;}}$c9(ff)==cG||ff==cm){$==cm)~,truecCdqcC)cbN=bm.ek;}Validate){$J)~u)eK(#b9(bV,val1))eK(#b9(bV,lV)SetPuzzleCompletionCallback){eeE(SetCandidateDisplayFinishedCallback){d2E(aU){cp(i=0;i<ee.a8;i++)i7(ee[i]bk){cp(i=0;i<d2.a8;i++)i7(d2[i]ShowCandidates,:,b", "};ad.b2.ad.bm.car.gM.);b4(;b4(ad..cX[hW-1=a5.a3(a6 cm;.z()=a1(ar.a7cp(i=0;i \\;)dO){b_ )=e;ct b_ );<9;i++)8V\\=Smallbm.da4.b4(b3e!e)e?=dd.dl^e6_(cm", "#$:?^`~"], ["1,;jT)a6;fr==1){hZ==dD){eK(kR)cW(dm(^=hZ.exQ(5b3=hZ.exQ(7b1=cP+^+'\\ec'+b3;b1)blct lWa6;}kJ){kJ=cv;hn(}ct{kJ=cm;cW(dm(hd(0,0}hn=a1(i,j;cp(i=0;i<9;i$cp(j=0;j<9;j$lW(i,j}}lW=a1b1,,cl,cC,cF,c1;b1=4.dz=4.dfcC=b1*9+;c1=cP+^+'\\ec'+b3;cFc1cF)a6;cFc1+fCcFN=d4hd=a1(i,j^,b3,b1,,cl,cC;jT=cm;e6(i<9){e6(j<9){=bl(i,jj++;){kK=dv((slleCetadidnaCetaerC8V+i+'\\x2c'+j+'\\j4',hha6;}}i++;j=0;}kK=dD;jT=cv;bk(}bl=a1b1,"+ ",cl,cC,cF,c1;b1=4.dz=4.dfcC=b1*9+;cl=cP+^+'\\ec'+b3;cFcl!cF)a6 cv;cFH>=1&&cFH<=9)a6 cv;c1=cI[cC].L;cFcl+fCba(cF,c1,cvResizeDisplay=a1(^b3,c,b1,v,i,s,;e0(^b3fojd(b3,.fAb3deb_ cl=d9 eD(4.gq(b3,clcp(i=0;i3h<>\\;j_ :eY@ea<+1)+>\\5\\=f5 \\;iO :fB ;kh:ej-dr@g8<>3h/<:;>hC=dK jf<>\\;enilrednu :noitaroced-ez ;f2 :ef-dr@jW<;2)+'';>hC=dK jf<>jW<;b_ ^=d9 eD(cp(b_ i=0;i<c4.a8;i$^[i]=+(i+1)+hC=dK jf<>jW<>jW/<>jf/<>ea/<>g8/<>jW/<>jf/<;kL.ho(s,0,_.a0A/3SingleStep=a1(s,^,b3,b1,r,,c,cl,v,cC;dJ)c_(cm!du){eK(lV)s=c4.fy(\\kc)Y(^=kC(V.j6|eJ+V.ed|kc+V.nss1|eJ+V.ed|kc+V.j7|eJ+V.edY()b3=s.ft(^b3`cm;b1~b3).dh(V.dcY()b1`cm;b1+=b3;b1~b1).ft(/\\d/)+b1;r=dj(sQ(b1))-1;~b3).dh(V.fDY()`cm;+=b3;~).ft(/\\d/)+;c=dj(sQ())-1;"+ "cl~+1).ft(/\\d/)++1;cl`cm;v=sQ(clcC=cI[r*9+c];lW(cC.E,cC.FhZcCn+fCg3(v+PrintPuzzle=a1(i,j,k,l,m,n,s,v,^,b3,b1,;s=;>\\;f2:ef-dr ;evez ;tp42:ej-dr@p<+(V.kW?V.kW:gX cV)+'

';>\\;gCgU@jf<>jW<>lr<>\\0\\=f5 \\0\\=iQ\\ ;iR# iS xp9:c7 ;ePez@g8<;cp(i=0;i<3;i$'';cp(j=0;j<3;j$'lr<>\\0\\=f5 \\0\\=iQ \\ ;ip fM h9:c7 ;ePez@g8<;cp(k=0;k<3;k$'';cp(l=0;l<3;l$^=cI[4.dz(i*3+j,k*3+l)*9+4.df(i*3+j,k*3+l)];b3=^n;b3){>\\;kVgU ;ePez ;f"+ "2 :ef-dr ;tp81 :ej-dr ;jh :d_ ;jh :dM;ip fM h9:c7 @jf<;^D!=)^D;ct ^.J!=)^.J;ct &lY;;}ct{>\\;gCgU ;ev :dK", "ad.a_.cu=a5.a3(ad.bm..z()ad.bar.);ad.a4.b9a6 cm;}(a7,b3b1.exad.ab4(.cjd(b1,b8;}(V,){b_ ;2.s+=b6.ft(/jg\\ssteps\\=cL  :dK-++){iP>a7==-1)a6 Y()+\\=s.dA(", "$G^`|~"], ["-ez ;f2 :ef-dr ;tp8 :ej-dr ;jh :d_ ;jh :dM;ip fM h9:c7 \\=cL jf<cp(m=0;m<9;m++6b3mv=\\eJb6)v=b6H.dA(0,1)+\\eJvQ(0)>\\x30&&vQ(0)<=\\x39)s+=v;}iP>';lX>';ic>';}ic>';s+=>\\;eP:dK-ez ;tp8:ej-dr\\=cL p<)+'Copyright'+>p/ls/ls<>kt<)iq(a1 printit(){dd.print(dv('dd.lt()',gK}\\x3c/kX>iq(>lu/< } eP :dK-ez ;%02:e4 ;"+ "%ht:dM{ ku >\\tnirp\\=aidem \\ssc/ez\\=ij lu<)iq(>')005,\\)(titnirp\\(tuoemiTtes'=daoLno ku<>kt/<)+s+>kt/<>ku/<)lt(};ad.b2.ShowSolution_ i,,b3,`jT)a6;`){cC=`;cF=b6;`=;b6=b3;=cC;b3=cF;}ei=`-;fa=cU.abs(b6-b3x=;y=b3;fb=(b3>b6)?-1:1;s=boei>=fa4(ei>0&&s-3>0){cl=(s*ei*cU.l_(1+fa*cj/(ei*ci))-ei-(s>>1)*fa)/ei;cl=(!(s-4)?cU.i2(cl):cU.jG(cl))+1;}ct cl=s;c1=cU.i2(s/2dB=fa<<1;eb=dB-(ei<<1p=d"+ "B-ei;dI=x;e6((ei--)>0){++xp>0){ep(dI,y,x-dI+c1^y+=fb;p+=eb;dI=x;}ct p+=dB;}ep(dI,y,`-dI+c1+1^}ct{b4(s-3>0){cl=(s*fa*cU.l_(1+ei*ci/(fa*cj))-(s>>1)*ei-fa)/fa;cl=(!(s-4)?cU.i2(cl):cU.jG(cl))+1;}ct cl=s;c1=cU.jG(s/2dB=ei<<1;eb=dB-(fa<<1p=dB-fa;eV=yb6<=b3){++c1;e6((fa--)>04(p>0){ep(x++,y^,eV-y+c1y+=fb;p+=eb;eV=y;}ct{y+=fb;p+=dB;}}ep(`,b6^,eV-b6+c1}ct{e6((fa--)>0){y+=fbp>0){ep(x++,eV^,y-eV+c1p+=eb;eV=y;}ct p+=dB;}ep(`,eV^,b6-eV+c1+1}}.b5.hQ){hK([1]){d3 0:h71:ir2:ji3:iU4:"+ "iV5:iA6:kw7:d3 8:kY9:jXfY:isS;}.b5.iA_ ^,cC,i,j,cF,c1,dB;`=[3];b6=[5];cC=[6];dB=[4];<`$i++3=`Q(idk(1|1)cK(~[cdJ-1],~[cdJ-2]}}QR~Z,R~[cdJ-1],b5.jX{b3,^,,i,,M,%;M2vb33];Q^=[];0){eb=%.js(<%Jb4(dI==lL&&ebZ.dc==%$Z.dc)cS;odI==ih&&ebZ.G==%$Z.G", "ar.a2.a0=ad.b2.[i].cn);ar..b7ar.);gd(a2,+\\ec+a7[0]..x-2,b4(b_ clcp(i=0;i.cA-.;i++){.y-2,=a7[.cb6};ad.da.=a1(a7)c5-T.x+,=-1)[i]cFa7[4+j].dw(b32];=c0(.y+.a8cC,b3=#*Hdk(1dk(0cK([0]b1dw((5+T)ct b4(?cn,.cE(];c1", "#$%'*:?HJMNOPQRZ^`moquv~"], [")cS;}i==cF.a8)b8;qeV=cF[i];cF.iI(i,1)cK(eb[1],eV[1]}dk(1qdI=%[4]gV(cl,dIoir%|=c0(,%[2]|==-1)a6 cv;q+\\ec+|)dw(-2,,,$hK(%[3]){d3 dc:qy=`5+T,y,-2,y,y?T,ycS;d3 jp:qx=-2`x,5+T,x,x,$,x?TcS;d3 ic:eA(%[0].EcS;}a6 cm;oh7%|=c0(,%[2]|==-1)a6 cv;q+\\ec+|)dw(-2,,,$a6 cm;oc0%,|){cp(q9;i++%+\\ec+i!)b8;.cH==|)a6 i;}a6-1;oeA%|,;|cP+%+_0|+=#;|.y+=#;cP+%+_8=+.eC-#-.fn*2-.eI*2;.y=.y+.eC-#-.fn*2-."+ "eI*2dw(|,|.y,,.yocK%,|,b6,cl,cC,cF={x:%,y:%.y},c1={x:|,y:|.y},dB,eb,dI;cF>c1){dB=c1;cd=cF;cc=dB;}cF.y==c1.y){cl=cCcF$/2~6=c1-2;}ct cF==c1){=b6cF/2cF.y1;eb<0){dI){cC=c1$;cl=cF;b6c1*1/3cF*2/3}ct{~6=c1-2;clcF$*1/3cCc1$*2/3}}ct{dI){cl=cF$;cC=c1;cF*2/3b6c1*1/3}ct{~6=c1-2;cCc1$*2/3clcF$*1/3}}}c3(,cl,b6,cCogV%,|i,x,y,;|==ih){=%.kn(a1(b6,cl){a6 b6-cl;}"+ "y[0]`)(5+T),y,([0]-2),ycp(.a8-1;i++)cK([i],[i+1][i],y?T,y}ct{=%.kn(a1(b6,cl){a6 b6.y-cl.y;}x[0]-2`)x,(5+T),x,([0])cp(.a8-1;i++)cK([i],[i+1]x,[i]$,x?T}};c9(ad)==cG)ad={};ad.c2={};jE=dD;lg){jE=d9 jH(};jH){lT=(d9 hg()).fm(qa=0;cp(qk7^a+=i;}a+=1;q%=(d9 hg()).fm()bs=%-lTl0=lS;bs400*jY)){jY==0)jY++;jj(jY)==cv)jY++;}cp(eQ.a8^hS(eQ[i]}cp(eQ.a8^eQ[i].D==l0){JZJZ)eQ.js(i--;}}eQ.a8==0){fz(hpad.b2.hR(cv|dT|)bX||dU|)bX|dv(;kf=tcejbO.etaniminA.cV,hh}};jH.b5.gZ){};jH.b5.iW%,|,,b6,cl,cC=dj(cO%=ad.a4.dG(:ej-dr'=cL ea<+(cC-4)+>ea/';jw:hO-dr;i5b6el|=dT.z(=a5.dH(dN.dW(ex"+ ",|b6.eL(cl|e5=fl;d5eu-%/2+cC/2)+dC;eXeu.y-cC-dj(@d6.es)*2)-1+dC;cO=%+dC;cR=cC-1+dC;a9=@a9gf(!!h2 ,dT,cC-4%=ad.a4.dG(:ej-dr'=cL ea<+(cC-6)+>ea/';jw:hO-dr;i5)3dU1dN)1,b3)^eL();clb3);cle5fl`cld5eu.x-x/2+cC/2)leXeu.y+cC+dj(ad.a_.d6.es)*2)+1lcO=xlcR=cC-1la9=ad.a_.a9;gf(iB kZ gX,dU,cC-6);gf,b3,,~,cF,c1c,dB,eb,dI,eV,s,ei,fa,fb,gG,ie,ig,ka;ei=cC||#202000`fa=cF||#ffff00`fb=c1||#C0C000`ka=||32+dC`gG=cl||b3;ig=b6||Arial`ie=(gA.it=h3);cp(b_ i=0;i<a8;i++){c=cQ(i)4(c=='\\eJ')c='&lY;';dIb3);dB=gG+dA(0,i+1);ebdN);eb,dB);dI.eL(eb);eVdB)fc=40e5relativeiDfVh8fVdRiX`eV.a2['hv']d5et=ka"+ "gjiJhi=b6en=ei;s`s+=c+:gC;1:ev;eq:dP;54:ga-zea<(ie?0:1)+:ej-dr ;ka+`g1:ef-dr;;s+='en:'+fa+:hO-dr ;ev:dK-ez;b6+'>'+c+'@;s+:gC;2:ev;eq:dP;05:ga-zea<(ie?1:2)+:ej-dr ;ka+`g1:ef-dr;;s+='en:'+fb+>\\`ev:dK-ez;c+'@;eV.cN=s;}jji,b3,,~,cF,c1=cv;cp(i=0;i\\`f2:ef-dr ;ja:fB ;+'@;a6 cF;hSa,r,x,y;D++;a=by-jI*D/l04(D*l1<0.25)r=l2*(1+D*l1);ct r=l2*(1.5-(l1*D));xr*cU.cos(a*cU.PI/jI));yr*cU.sin(a*cU.PI/jI));jZd5=x+x)+dC`jZeX=y-y)+dC`jZ.dbdReT`}4(c9(ad)=cG)ad={}4(c9(ad.a4)=cG)ad.a4={eF,b3,"+ ",~,cF,c1,dB){dF=a7;lw=b3;l3=;bB=b6;f6=+fY;bC=b6+fY;dX=c1||gB`a9=dB||i3`cB={};cB.dQ=cv;l4=cl?ca:`fc=cC?cb:25;e1()4(c9(cF)!cG)h4(cF);eFe1=a1(a7,b3,,b6;cu={};$eW={};a7=$eW6n(f6,bC,0,3)^y+s()?kh:21;cO=b6.x+'dC';cR=b6.y+'dC'1+='cO: '+b6.x+_ ;i5b6.y+'dC; '1+ :ga-z ;lx :ev ;lx:gC.fc+`ja :fB ;1+ ;eqP;k_# k0# k0# k_#E-c7;fM :cL-c7;kqM-c7;etihwE-dp;a2=6=ad.a4.gJ(b6.x,b6.y,0,3)^y-s()?kh:21^x-s()?0:0;$hD={};a7=$hD11+ :ga-z;l5 :ej-dr ;fh:e4.fc+'; "+ "'1+=(l3<0)? ;hH :gT: ;kx :gT1+='cO: '+(b6.x)+_ ;i5(b6.y)+'dC; ';a2=;$ky={};a7=$ky14(l3>0){b6.y-s()?12:0^x-s()?12:0;}+='cO: '+(b6.x)+_ ;i5(b6.y)+'dC; '1+ :ga-z ;%ht_ ;%htM.fc+'; ';a2=;eFSetColors,b3){dX=a7;a9=b3;eFh4){e1()_ b3a7)4(!b3)eK(wodniW pupoP j0 jJ gnitresni j0 lf)_ dN)1,dF+iu)4(!b3.eL())eK(pupop jv jJ etaerc ot elbanu)3dF+iu)3.cN='@;eFGenerateHTML){b4(c9(a7)=cG)a7iX`e1()_ s='@4(a7=iX)a5.writeln(s);ct a6 s;eFhEs`e1()_ b3dF+eZ)3cO=$eW.cO3cR=$eW.cR;s+='';s+='\\ ;f2 :ef-dr;l5 :ej-dr;evom :gv;_ `cp(b_ i=0;i'(eu.cu.6.;b6,cl,cC", "$^`~"], [";gm&;gm& lw+b1+'\\ju'''\\=hI \\X\\=ln \\nottub\\=ij ik<+arF+ \\iC~f2 :ef-dr~fh :e4~fh :eY~eP :dK-ez~yergthgil :dE-dp;hC:fs\\=cL;j2 :dM-c7;ip :dE~l7 :ej-dr;l7 :d_-i9;l8 :dM;l8:d_;kq :hC-e4'z-ly:'+(fc+fY)+'; '>\\~k1# iR# iR# k1# :dE-c7;fM :cL-c7'''';scu.hD+'>''''''';a6 s;|jKdl,b3;dQ=cmgA.it=h3){k2`g4;k3`g5;}ct{k2`f3G;k3`f4h;}%k2<=0){k2=0;}%k3<=0){k3=0;}jl*RhP;b3lz*b3RhP;gh="+ "a5S;gF=a5.eo;a5.eo=l9]*a5S=ma]*a5.e2.g2move;|madl,b3,b1dQ!=cm){a6 cm;}%gA.it=h3){b3`g4;b1`g5;}ct{b3`f3G;b1`f4h;}%b3<=0){b3=0;}%b1<=0){b1=0;}eZ*5=(dj(5)+b3-k2)+dC;.eX=(dj(.eX)+b1-k3)+dC;k2=b3;k3=b1;a6 cm;|l9dl,b3,b1;b_ b6,cl;b3jl*b3ReT;b1lz*b1ReT;b1eZ*a5.e2.g2hm;a5S=gh;a5.eo=gF;|iY){%l4!){%i7(l4))gn(*}ct gn(*|gn;bWeZ*RhP;a5.e2.g2hm;S=dD;.eo=dD;jl)&&DragHandler){gh=a5S;gF=a5.eo;}|kz){b_ b3l3<0){b_ b1=a4"+ "G(*f6=b1.x;bC=b1.y;}a6 hE(*|ho,b3,eX,b1){b_ b6;bZeZ)!)b6.cN=kz(*b6ReTc9(eX)!cG&&eX>=0)b6.eX=top+dCc9(b3)!cG&&b3>=0)b65=b3+dC;b6jl*b6.onmousedown=jK]*b6iC*b6.iv=iY])b1&&b1!)l4=b1;|DeleteContents;gn(*eZ*.cN;|isVisible;bWeZ*a6(R=eT*}!a_)a_={}!)={a9:#kI,dX:gB};d1={dx:dD};d1.Show){%^!=dD=a5.a3(gw))bW.cMy(*^=dD;}^=d9 d1.bG()Hide=a5.a3(gw))bW.cMy(*dv(;kf=kF.gx.cV,j8)bG,b3,b1,b6,cl,cC;fu;bH=d9 eF(dapye"+ "K_ukoduS,d1,-1,-1,)(ediH.gx.cV,hh,de,X,.a9*=a4n(26,18,0,2*b1='cO:'+.x+'dC;cR:'+.y+:dE~iw :gv~k4# iS j2:c7~i5+X+:dE-dp~+.a9+f2:ef-dr;mb:ej-dr~eP:dK-ez~iO:fB~ev:fs~;b6=a4n(86,18,0,2*b3='cO:'+b6.x+'dC;cR:'+b6.y+:dE~iw :gv~k4# iS j2:c7~i5+X+:dE-dp~+.a9+f2:ef-dr;mb:ej-dr~eP:dK-ez~iO:fB~ev:fs~;cl\\)dO(pU[jy \\)dO(nwoD[iL \\)dO(tuO[tuoesuomno \\)dO(revO[revoesuomno;cC+\\n>\\;iw:gv~88:d_;09:dM<1$2$3$4$5$6$7$8$9$;cCb3+\\n>ea/;bH.ho(cC,a_."+ "a0.cA,0)mouseOvere!e)e=ddle.c6@6;ct %e.cy@y;ct a6;.en#D0D0FFmouseOute!e)e=ddle.c6@6;ct %e.cy@y;ct a6;.engB;.eOk5;^.fumouseDowne!e)e=ddle.c6@6;ct %e.cy@y;ct a6;.eOinset;^.fu=(.cN=la)?0:.cNmouseUpe!e)e=ddle.c6@6;ct %e.cy@y;ct a6;.eOk5^.fu!=)b2.g3(^.fu", "=a5.a3(a){b_ a7ar.cB..z();b4(ad..d\\=cL ea+=<+rF+=a1(.a2a7+' '+cl};eF.b;cCb1+'>;s+=ar.=+a5.e2.e;};d1.)=e.ca_g\\n'b4();esuom.gxJ.cV\\=.eg(ard1x=dl.5. ;", "$%*J[]^`|~"], [");ad.d1.dx.fu=;c9(ad)=^ad={};ad.e_={bI:250,bJ:cm,bK:1,cx:dD,lA:!!~j1,bM:!!(~a3&&!~j1),go:cG,fg:0,gRb3)?$he:$hs;b_ b6=$fJ;e6(b6!=dD&&b6.ex!=riatnoCPWSPPP){b1=)?b1+b6.he:b1+b6.hs;b6!=dd.~e2){b1-=)?b6.eG:b6.ehb6=bZ.fJa6 b1,bN:fgriatnoCukoduSPPP).g9d7=g9;b6-x<d7)b1=d7-$g9ct{b_ cl=lA&&!dd.lC?fL().eh:dd.i_;b_ b6=lA&&!dd.lC?fL().eh+fL().gP-15:dd.i_+dd.nerHeight-18d7=fk;b6-y<d7){b1=d7+$fk;(y-cl)<d7)b1=y+$fk-cl}a6 b1,bPe,b3){cx!=dD)a2.gp=iZ;Q();lA||M){$jm=md();$iv=a6!bJ;cx>b3)i0=bQ()jm=a1(e){bS(e)iv=md();O(a2,e)x=gR`d5)y=gR`eX)a2.d5=x-f7`jL)+dCa2.eX=y-f7`bottomedge)+$fk+1+dC},bT:a1(a,b){e6(b.cM){"+ "(b=b.cM)==a)a6 cma6 cv,bS:a1(e){a6 md(),md:U=dv(;'hH'=i4.cL.jbounempord.uneMelpmiS.cV,I),bQ:U!^dZ(U),startmu:cp(b_ a7=0;a7dV[a7]).getsByTagName(\\x61);cp(b_ i=0;i^`q~"], ["yles_Resiz&eStylebody?;^gram?posiwhilLoadep'iHDcj?ck?zIndex?bbShowRat.clip$0?tn-Current*Habsolutge)c?repp,WDtagNamgeeDisplayJaolf?se,ch?numbrand?snoisnemiDteGst^HDjo%?cle,>?Wrappyalpsid?_[?+umn?ylnodac:Pub]Method?esU?;;*P,enSubInpuiecompattesdilox3a?pp;teH%tJextAlign?focusk+B{ppuS0px?replacp,en10?}p?ptransp,enborderU?dlobXY?g^capsllec?%sidecle,b=wseredgFuncpub]Id?xed^?[[bb/OuDrawRaisedCh,?s@movcompatModfontWMa%Puzzl'-psbn?HideQs"+ "wipetimvisibility?getAllChildren?81?{ppuS8E6bA7?0A0503?=sruc?CpoT_dapyeKdapyeK?nam?navigator?whitporen^_^amDnwoDyeK}P?s@up?co?lanozi=HCukoduS?llecrepusDgetCSSInsideCoord%ate100?f=mCh,CodaD?etelpmocotua?ObjHH%tOvgetposOff?gettwolfrevo?lacitrev?drawL%eBetween>?}P?0xFFFF?~bsHorizonally?solid?lam=n?cursor?KeypadInpupageX?pageY?x?y?elba*~bsVertically?OnPDragFuncOnPD=pFuncC:e*LefgetStrF=mBitmap?Dat20?fontFamily?evenBtesbSub?defaulReeShowQtimerId/Set"+ "Backg=und?C:A^mationDiv?*Top?001?=t,eneG?floam,g%Top?htgnelxam?nwodyekno?LastFirs)HideSolutionStepthgir?DataFram&eInnerHTML?Str?Objecneddih?di?napswitch?ak?au?Rat?ylimaf?nonp=cessH%tArray#eCalculateAndMovShowP=gressB,?HideP=gressB,?IsValidSoluaE?evitalxed^baaW?_sub[?S@movkillA^m%asnoitalut,gnoC?NetscapInsertConta%removeMultiplh%ttesoleepadd$1#upPosiaj?tabl?cq??cr?+umnH%epytup^|no/DblC]k??S@up?kcalb?writhiddenSleforcCha%appNamCpoT_?onc]k?ret^op?%sertBeforlano"+ "itisn,T#hiddenSub?yllufsseccuS?wod^WesolC_?m,g%?sc=ll233280?bcri<0x0000?sp]normal?tnerapsn,nwodesuomno?rev(no?rulBno?e^l^?td?g^ddapllec?0C0C0C?testuo?+orbRowCol?nakedSub#upBann%l%CloseQhidden?pageYOff?onovb%d?ceil?bluytilibisiv$?ch,CodeAeval?l%eHe^l?enon?tu(no?kcilClbDnO?aZ|ec=F?ditem$05?bB#upC_?_Hdr?onouspli=rr+?Wx2d?shifs]x2=f?laira?HelpFrampuesuomno?rev(?k+B?St,)PosX?PosY?bj?divID?=und?bq?180?c?DragSt,rightedg?f%dPosY?f%dPosX?GetTablU?~=w~+aI?HelpEtA"+ "l?tu(?r+or?bu?bw$5?^?all$2?yticapo?x29?xwJQU[]^`{|}~"]]));if (typeof(Sudoku)=="undefined") Sudoku={}; Sudoku.Messages = {men000: "Sudoku Menu", men100: " Puzzles", // spaces are for centering with other items without submenus men100s: "Create new, save, load or reset", men200: "Controls", men200s: "Show Controls", men210: "New", men210s: "Options for creating new puzzles", men211: "Easy", men211s:"Create easy puzzle with rating below 500", men212: "Difficult", men212s:"Create puzzle with rating between 500 and 800", men213: "Fiendish", men213s:"Create puzzle with rating between 800 and 1100", men214: "Superior", men214s:"Create puzzle with rating over 1100", men215: "(manual entry)", men215s:"Create empty puzzle for manually entered puzzles", men216: "Save", men216s:"Save the puzzle (persistent cookies required.)", men217: "Restore saved", men217s: "Restore saved puzzle", men217a:"Cookies are not enabled on this browser.", men217b:"Cookies are required to use save feature.", men217c:"Puzzle not saved.", men217d:"Puzzle saved.", men217e:"Requires persistent cookies to work between sessions.", men217f:"No saved puzzle to load", men220: "Reset", men220s:"Reset puzzle to initial state", men230: "Hint", men230s:"Provide hint to solve next cell", men240: "Validate", men240s:"Validate the current status of the puzzle", men250: "Cell candidates", men250s:"Toggle switch to show or not show cell candidates", men257: "Solve", men257s:"Options for solving puzzle", men258: "Single Step", men258s:"Solve the next logical puzzle cell", men260: "Complete puzzle", men260s:"Toggle switch to show or not show solution to current puzzle", men270: "Solution steps", men270s:"Toggle switch to show solution steps for current puzzle", men280: "Print puzzle", men280s:"Print just the current puzzle", men300: "Keypad", men300s:"Show keypad for entering numbers", men310: "Clear", men400: "Options", men400s:"Show option for changing user preferences", men410: "Puzzle size", men410s:"Select puzzle size suitable for screen", men411: "Large size", men411s:"Select large size layout", men412: "Medium size", men412s:"Select medium size layout", men413: "Small size", men413s:"Select small size layout", men414: "Very small size", men414s:"Select very small size layout", men420: "Show candidates", men420s:"Show cell candidates option", men421: "Single cell", men421s:"Show cell candidates for selected cell when 'Cell Candidate' option selected", men422: "All cells", men422s:"Show cell candidates for all cell when 'Cell Candidate' option selected", men423: "Auto update", men423s:"Automatically update cell candidates when cell is solved", men430: "Number cell slider", men430s:"Enable the ability to use the mouse to select numbers for cells", men440: "Fly over hints", men440s:"Options for showing fly over hints", men441: "Cell entry options", men441s:"Show fly over hints for how to change cell contents", men442: "Hint techniques", men442s: "Show fly over containing hint technique when 'Hint' option selected", men500: " Help", // spaces are for centering with other items without submenus men500s:"Show help options", men510: "How to play", men510s: "Provide explanation on how to solve and use this puzzle", men520: "About...", men520s:"Show dialog with information on this puzzle", time1: "Start", time1s: "Start the timer", time2: "Stop", time2s: "Stop the timer", time3: "Reset", time3s: "Reset the timer", time4: "Timer", solver: "Solver", row: "Row", column: "Column", block: "Block", scs1: "Sole Candidate", // used to describe solver technique scs2: "Row=%1, column=%2, value set to %3", nss1: "Naked Singles", // used to describe solver technique nss2: "Row=%1, column=%2, value set to %3", hss1: "Hidden Singles", // used to describe solver technique hss2: "Row=%1, column=%2, value set to %3", bcris1: "Block and Column / Row Interactions", // used to describe solver technique bcris2: "Value of %1 must be in column %2 of block %3, therefore %4 can not be solution in this column for other blocks.", bcris3: "Value of %1 must be in row %2 of block %3, therefore %4 can not be solution in this row for other blocks.", bbis1: "Block and Block Interaction", // used to describe solver technique bbis2: "Candidate cells for %1's in blocks %2 and %3 can eliminate %4's as candidates from corresponding rows in block %5", bbis3: "Candidate cells for %1's in blocks %2 and %3 can eliminate %4's as candidates from corresponding columns in block %5", xws1: "X Wing", // used to describe solver technique sdf1: "Swordfish", // used to describe solver technique xws2: "Candidates pairs of %1's in cells (r:c) ", xws3: "can eliminate %1 from row %2, column %3", fcs1: "Forcing Chain", fcs2: "The linked chain in cells (r:c) ", fcs3: "can eliminate %1 from row %2, column %3", xyw1: "XY Wing", xyw2: "The short chain in cells (r:c)", xyw3: "can eliminate value of %1 from row %2, column %3", ccs1: "Colouring", ccs2: "The pair chain in cells (r:c)", ccs3: "can eliminate value of %1 from row %2, column %3", nsubss1:"Naked Subset", nsubss2:"Candidates with %1 in %2 %3 can eliminate %4 from other cells in this %5.", hsss1: "Hidden Subset", hsss2: "Candidates of %1 in %2 %3 can eliminate other candidates from these cells", solList:"Puzzle Rating is %1 and contains %2.", create1:"Creating unique puzzle - Try number %1", finish1: "Congratulations", finish2: "Puzzle solved successfully!", copyr1: "Copyright ©", copyr2: "A freely distributable web based Sudoku puzzle program.", copyr3: "Questions, comments and suggestions may be sent to", copyr4: "", // text for another bullet on the "About" dialog. HTML tags allowed. print1: "Wait for print dialog to complete.", print2: "Sudoku Puzzle", ssteps1:"Puzzle Solution Steps", ssteps2:"No.", ssteps3:"Technique", ssteps4:"Description", ssteps5:"Sudoku Solution Steps Window (movable)", val1: "No errors found!", val2: "Cannot find solution with current values.", val3: "Errors found, no solution possible.", focus1: "No cell has focus!", hint1: "Hold mouse down to pick number", hint2: "Double click to restore cell", hint3: "Double click to select value", hint4: "Hints not available with errors in puzzle!" // note that last entry does not have a comma following " }; (function() {var fadeZ = function(elementID, value,start,duration) { var fn = fadeZ,decrement=0.01,delay=30; if ((new Date()).getTime()start) {element.style.display="none"; return; } return setTimeout(function(){fn(elementID,value,start,duration);},delay); }; //document.body.onload=new function(){fadeZ("SplashScreen",1,(new Date()).getTime(),0)}; document.write('
'); setTimeout(function(){fadeZ("SudokuSplashScreen",1,(new Date()).getTime(),0);},100); })(); document.write('
'); Sudoku.SimpleMenu.startmenu("PPPSudoku_MenuHorizonal"); // initialize sudoku menu defined above Sudoku.Display.SetHintLevel(2); // set hint level (zero=none, 1=simple hints, 2=detail hints Sudoku.Display.SetCandidateDisplayLevel(2); // set candidate display level Sudoku.Display.SetPuzzleCompletionCallback("Sudoku.Animinate.Start()"); // set number animation at completion of puzzle Sudoku.Display.ShowRating=false; // Do not show rating for puzzles var tdate=new Date(); Sudoku.Support.randSeed=tdate.getDate()+tdate.getMonth()*12+tdate.getFullYear()*365; Sudoku.Display.GenerateHTMLInElement("PPPSudokuMainBody",2); // generate html for puzzle and start up puzzle with puzzle size of 2 Sudoku.Generator.Start(1,"Sudoku.Display.SetInitialValues(false)"); // set puzzle difficulty for startup... document.write('
Copyright 2007 by PuzPuzPuzzles.com and Patrick J. O\'Neil
');