// Copyright 2005 David J. Nixon. All rights reserved.
var l5=new Array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Aujourd'hui","Janv","Fév","Mars","Avr","Mai","Juin","Juil","Août","Sep","Oct","Nov","Dec"),i0=1,f5=0,l4="$ $ $",m8="Difficulté",u4=new Array("Doux","Moyen","Dur","Méchant","Diabolique"),i7="SudokuHints.com Grilles et Solutionneur de Sudoku",f2="Solutionneur et puzzles de Sudoku - essayez-le!",n8="Bonjour: \n\nVoici un grand site Web de solutionneur/puzzle de Sudoku que vous devriez voir:\n\n",s0="Commercial Enquiry",j2=" case laissée",k5=" cases laissées",e8="l",e5="c",t9="Règle Case - ",o0=t9+"lignes",j5=t9+"colonnes",n0=t9+"régions",d4="Règle Chiffre",n5=r7=q,m5="<b>Indice:</b> Regardez la région $",l9="<b>Indice Grand:</b> Mettre un $ dans la région $",e0="<b>Action:</b> Mettre un $ dans la région $ en $ ($)",u3="<b>Élimination:</b> ",o7=u3+"La paire '$$' en $ et $ permet d'éliminer le $ en $",k9=u3+"Le $ dans la ligne $ est dans la région $, le $ peut donc être éliminé de la case $ de cette région",n6=u3+"Le $ dans la colonne $ est dans la région $, le $ peut donc être éliminé de la case $ de cette région",q7=u3+"Le $ dans la région $ est dans la ligne $, le $ peut donc être éliminé de la case $ de cette ligne",s4=u3+"Le $ dans la région $ est dans la colonne $, le $ peut donc être éliminé de la case $ de cette colonne",g7=u3+"Il y a un x-wing avec le $ en $, $, $, $ ce qui permet d'éliminer le $ en $",m7=u3+"Le triple '$$$' en $, $ et $ permet d'éliminer le $ en $",q9=u3+"Il y a un swordfish avec le $ en $ ce qui permet d'éliminer le $ en $",t4=" et ",q5="<b>Résolu</b>",k4="<b>Coincé:</b> ",l1="indexOf",h8=(navigator.userAgent.toLowerCase()[l1]('safari')<0),j4="123456789",r9="ABCDEFGHI",u0=j4+"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRS",u2="TUVWXYZ",h1="#fff",e2="#bbb",h6="#ddd",s2=document,j9=window,m2="red",t3="hidden",g3="visible",f8="innerHTML",o9="checked",r8="backgroundColor",r2="style",n2="value",d1="contentDocument",p2="substr",h9="charCodeAt",k7="charAt",m0="length",h7="-",n3="<div style='position:absolute;left:",q4="pt arial,sans-serif;",m9="<style type='text/css'>\nbody{font:normal 10"+q4+"}\n</style>\n",i5="r",l6="?pos=",h4="sudk",z=v=s6=f6=f3=q0=k1=q6=f0=0,y,m1,p,h3,e7,m=new Array(5),r0=new Array(5),l0=new Array(81),q=u1=f1=i1="",r3=q+j9.location,p1=s5=1,g8=9,g2,i6,e4,h0=new Array(q,q,q,q,q),d2=new Array(q,q,q,q,q),f9=new Array(q,q,q,q,q),k2,t1,s=new Array(0,0,0,3,3,3,6,6,6);function Init(m6){z=m6;A1();A7();B5();B1();f6=1;var i=r3[l1]("?tab=");if(i>-1)T(r3[k7](i+5));B3()}function A4(){return typeof pz!="undefined"}function Z(i){return s2.getElementById(i)}function M(i,j){Z(i)[f8]=j}function A6(i,j){Z(i)[r2].visibility=j}function B(){if(j9.sidebar)j9.sidebar.addPanel(i7,r3,q);else if(s2.all)j9.external.AddFavorite(r3,i7);else if(j9.opera&&j9.print)return true}function C6(){m[v]=r0[v]=0;Y()}function U(j7){var r,c,h,p8=0;if(j7){if(m[v]>0){h=-e7[v][--m[v]];c=e7[v][--m[v]];r=e7[v][--m[v]];p8=1}}else if(r0[v]>m[v]){r=e7[v][m[v]++];c=e7[v][m[v]++];h=e7[v][m[v]++];p8=1}if(p8){l0[r*9+c][n2]=h>0?h:q;h>0?K(r,c,h):B4();C3();C1();W()}Y()}function A5(r,c,h){var i;while(m[v]>242){for(i=0;i<243;i++)e7[v][i]=e7[v][i+3];m[v]-=3}e7[v][m[v]++]=r;e7[v][m[v]++]=c;e7[v][m[v]++]=h;r0[v]=m[v];Y()}function Y(){Z("b5").disabled=!m[v];Z("b6").disabled=m[v]==r0[v]}function P(r5){r5.blur();if(f6)Z("pr").href="sudoku-print.html"+l6+A9()+i1+u4[v]}function V(e3){var r,c;if(f6){F();if(Z("ck")[o9])C3();else if(!e3)for(c=0;c<9;c++)for(r=0;r<9;r++)C0(r,c,h1)}}function C3(){var r,c,rr,cc,i,n9;if(Z("ck")[o9])for(c=0;c<9;c++)for(r=0;r<9;r++){n9=1;i=p[r][c];if(i){for(cc=0;cc<9;cc++)if(c-cc&&i==p[r][cc]){n9=0;C0(r,cc,m2)}for(rr=0;rr<9;rr++)if(r-rr&&i==p[rr][c]){n9=0;C0(rr,c,m2)}for(rr=s[r];rr<s[r]+3;rr++)for(cc=s[c];cc<s[c]+3;cc++){if(c-cc&&r-rr&&i==p[rr][cc]){n9=0;C0(rr,cc,m2)}}}C0(r,c,n9?h1:m2)}}function C0(r,c,g0){l0[r*9+c][r2][r8]=Z("g"+r+c)[r2][r8]=g0}function F(){var r,c;if(g8<9){for(r=g8;r<=g2;r++)for(c=i6;c<=e4;c++)if(l0[r*9+c][r2][r8]!=m2)C0(r,c,h1);g8=9}}function A7(){var i,j=1,k,r6=k3=0,l7=new Date(),k6,g4,x,u,g5,j6=j4+h7,j0=j9.name;if(A4()){i=r3[l1]("?date=");while(r3[k7](g8*2)!=f8[k7](0)&&r3[k7](17)!=p2[k7](0)&&r3[k7](1)!=f8[k7](0))i++;g4=i+1?r3[p2](i+6,8):q;k6=Math.ceil((l7.getTime()/10000-l7.getTimezoneOffset()*6-111758400)/8640);if(k6<1)k6=1;do{d9=q+l7.getFullYear();x=l7.getMonth();if(x<9)d9+="0";d9+=x+1;if(!k3)l=d9;x=l7.getDate();if(x<10)d9+="0";d9+=x;k6--;s2.forms['fa'].ai.options[j++]=new Option(I(d9,!k3,1),d9+k6);r6=g4==d9?d9+k6:r6==q?d9+k6:r6;l7.setDate(l7.getDate()-1);k3++}while(k6>0&&k3<62);g=m1*h3+n2[h9](0)+f8[h9](0)+h9[h9](1)+m0[h9](0)+k7[h9](0)+p2[h9](0)+k7[h9](1)+m0[h9](1);i=r3[l1](l6);if(i>-1){g4=r3[p2](i+5);if(g4[m0]>0){f3=1;x=g4[p2](0,81).replace(/0/g,h7);while(x[m0]<81)x+=h7;h0[0]=d2[0]=x;A6("t0",t3)}}else if(j0[p2](0,4)==h4){v=j0[p2](4,1)-0;Z("pc")[o9]=(j0[p2](6,1)=="1");Z("ck")[o9]=(j0[p2](7,1)=="1");i1=j0[p2](8,8);for(i=0;i<5;i++){h0[i]=d2[i]=q;g5=16+i*81;for(j=g5;j<g5+81;j++){u=j0[k7](j);if(j6[l1](u)>-1){h0[i]+=u;d2[i]+=u}if(r9[l1](u)>-1){h0[i]+="-";d2[i]+=j4[k7](u[h9](0)-65)}}}j9.name=q}else C4(r6)}}function R(){if(f6){d2[v]=h0[v];f9[v]=q;C6();B3()}}function L(i){if(A4()&&i){C4(i);A6("t0",g3);f3=0;for(i=0;i<5;i++){f9[i]=q;m[i]=r0[i]=0}Y();B5();B3()}}function C(){var i,x=q;if(f6){F();for(i=0;i<81;i++)x+=h7;d2[v]=x;f9[v]=q;C6();B3()}}function C4(i){var j=j3=s8=0,o4=1,k,u,x,f4,p7,h,q2,l8=q,m3=new Array(0,2,7,6,9,1,5,4,3,8);i1=i[p2](0,8);i=i[p2](8)-0;f4=parseInt(i/426);i%=426;if(f4){do{if(o4&1)o4=(o4>>1)^272;else o4=o4>>1;if(o4<427)if(j3++==i){i=o4-1;s8=1}}while(o4-1&&!s8)}while(Z(i5)[f8]!=i5)i++;for(k=0;k<pz[i][m0];k++){h=0;q2=0;u=pz[i][k7](k);if(u==h7)q2=1;else{p7=u0[l1](u);if(p7>-1){h=p7%9+1;q2=parseInt(p7/9)}else{p7=u2[l1](u);if(p7!=-1)q2=p7+1}}while(q2--)l8+=h7;if(h){for(x=0;x<f4;x++)h=m3[h];l8+=h}if(l8[m0]==81){h0[j]=d2[j]=l8;l8=q;j++}}}function I(d9,s3,t6){var t8=q,h2;if(d9[m0]==8){h2=d9[p2](6,2)-0;h3=(h2%4==0||h2%100!=4)?29:28;t8=(t6?l5[s3>0?7:new Date(d9[p2](0,4),d9[p2](4,2)-1,d9[p2](6,2)).getDay()]+", ":q)+O(l4,(i0&&h2<10?"0":q)+(f5?h2+["th","st","nd","rd"][!(h2>10&&h2<14||h2%10>3)*h2%10]:h2),l5[d9[p2](4,2)-1+8],d9[p2](0,4))}return t8}function B5(){var i=I(i1,0,z),j=r3[l1]("?date=*"),k=r3[h9](17)!=q4[h9](9)?r3[h9](21)!=q4[h9](9)?r3[k7](3)!=m0[k7](1)?0:j:j:j;do{M("c1",i);M("c2",i);i++;k++}while(k)}function W(){Z("lk").href=(z<1?"index":"sudoku-"+(z<2?"medium":"large"))+".html"+l6+A9()}function X(x){f9[v]+=x+"<br>";A3()}function C2(x){if(s5)k2[f8]=x;else{k2.open();k2.write(m9+x);k2.close()}}function A3(){if(s5)t1[f8]=f9[v];else{t1.open();t1.write(m9+f9[v]);t1.close()}}function B1(){var r,c,p5=e6=q,s7=new Array(37,45,55,12,18,24),j8=(s2.all)?11:12,g6=(s2.all)?8:10,d5=" 2px solid;",h5="background-color:"+h1;for(r=0;r<9;r++)for(c=0;c<9;c++){p5+=n3+c*s7[z]+"px;top:"+r*s7[z]+"px;width:"+(s7[z]-2)+"px;height:"+(s7[z]-2)+"px;border-top:"+(r%3?e2:"#000")+d5+(r>7?"border-bottom:#000"+d5:q)+"border-left:"+(c%3?e2:"#000")+d5+(c>7?"border-right:#000"+d5:q)+h5+";' id='g"+r+c+"'></div>";e6+=n3+(j8+c*s7[z])+"px;top:"+(g6+r*s7[z])+"px;'><input style='border:0;width:"+(s7[z]-21)+"px;font:bold "+s7[z+3]+q4+"text-align:center;vertical-align:middle;"+(h8?h5:q)+"' type='text' id='"+r+c+"' size='1' maxlength='1' onKeyUp='G(event,"+r+","+c+")'></div>"}M("gd",p5+e6);for(r=0;r<9;r++)for(c=0;c<9;c++)l0[r*9+c]=Z(q+r+c)}function E(i){var j="mai";j+="lto:";j+=i-1?"comments@"+"sudokuhints.com":document.eMailer.email.value;j+=i?"?subject=":q;j+=i-1?q:escape(f2)+"&body="+escape(n8+r3);j+=i-2?q:s0;j9.location=j}function A8(){var r,c,o3=q,s7=new Array(37,45,55,26,32,40),d5="color:#000;",t5="px;font:"+(z+7)+q4;for(r=0;r<9;r++)for(c=0;c<9;c++)o3+=n3+(4+c*s7[z])+"px;top:"+(2+r*s7[z])+t5+(h8?d5:q)+"' id='"+"u"+r+c+"'></div>"+n3+(5+c*s7[z])+"px;top:"+(s7[z+3]+r*s7[z])+t5+(h8?d5:q)+"' id='"+"l"+r+c+"'></div>";M("nb",o3);f0=1}function Q(){var o5=Z("pc")[o9];if(f6){if(!f0)A8();A6("nb",(o5)?g3:t3);if(o5)C1()}}function G(r1,r,c){var p9,d8=q3=0,o2=r,i4=c,t2;var u;if(p1){F();p9=r1.charCode?r1.charCode:r1.keyCode;if(p9>36&&p9<41){if(p9%2)q3=p9-29;else d8=p9-30;do{o2=(o2+d8)%9;i4=(i4+q3)%9;t2=o2*9+i4}while(h0[v][k7](t2)==l0[t2][n2]&&(o2-r||i4-c));l0[t2].select()}else{u=l0[r*9+c][n2];if(u&&j4[l1](u)<0)l0[r*9+c][n2]=u=q;if(!u&&p[r][c]){A5(r,c,-p[r][c]);B4()}else if(p[r][c]!=u){K(r,c,u);A5(r,c,u)}C3();C1();W()}}}function J(s1){var t0=q,i=r3[l1](l6),j,u;if(f6){if(i<0){j9.name=h4+v+z+(Z("pc")[o9]?"1":"0")+(Z("ck")[o9]?"1":"0")+i1;d2[v]=A9();for(i=0;i<5;i++)for(j=0;j<81;j++){u=d2[i][k7](j);j9.name+=(u==h0[i][k7](j))?u:(u=="-"?u:r9[k7](u[h9](0)-49))}}else s1.href+=r3[p2](i)}}function T(i9){Z("a"+i9).blur();if(f6){if(i9>4){Z("a5").className=i9==5?"a0":"a1";Z("a6").className=i9==6?"a0":"a1";Z("st").height=i9==5?51:400}else if(i9-v){d2[v]=A9();v=i9;B3();Y()}}return false}function B3(){var i;for(i=0;i<5;i++)Z("a"+i).className=i==v?"a0":"a1";if(!f3)M("d1",m8+": "+u4[v]);if(A4())B9();C2(q);A3();V(1);if(Z("pc")[o9])Q();W()}function B0(){var i,s9,f7=new Array(326,407,497,77,96,116);s9=Z("bd")[r2];s9.width=s9.height=f7[z]+"px";for(i=1;i<9;i++)Z("b"+i)[r2].width=f7[z+3]+"px";B5()}function B9(){var r,c,i,u;s6=p1=0;for(r=0;r<9;r++)for(c=0;c<9;c++){p[r][c]=0;for(i=1;i<10;i++)y[r][c][i]=1}r=c=0;for(i=0;i<81&&l<g;i++){u=d2[v][k7](i);u==h7?u=q:K(r,c,u);l0[i][n2]=u;l0[i][r2].color=h0[v][k7](i)==u?"#000":"#00c";if(++c>8){c=0;r++}}p1=1}function B4(){var r,c,u;for(r=0;r<9;r++)for(c=0;c<9;c++){C0(r,c,h1);p[r][c]=0;for(i=1;i<10;i++)y[r][c][i]=1}s6=0;for(r=0;r<9;r++)for(c=0;c<9;c++){u=l0[r*9+c][n2];if(u)K(r,c,u)}}function K(r,c,h){var rr,cc,i;for(i=0;i<9;i++)y[r][i][h]=y[i][c][h]=0;for(rr=s[r];rr<s[r]+3;rr++)for(cc=s[c];cc<s[c]+3;cc++)y[rr][cc][h]=0;for(i=1;i<=9;i++)y[r][c][i]=0;y[r][c][h]=1;p[r][c]=h;s6++}function C1(){var r,c,i,x,i8;if(!f0)A8();if(Z("pc")[o9])for(r=0;r<9;r++)for(c=0;c<9;c++){x=i8=q;if(!p[r][c])for(i=1;i<=9;i++)if(y[r][c][i])x[m0]<6?x+=i:i8+=i;M("u"+r+c,x);M("l"+r+c,i8)}}function A9(){var i,u,x=q;for(i=0;i<81;i++){u=l0[i][n2];x+=u?u:h7}return x}function A0(i){return i?k4+i+(i-1?k5:j2):q5}function H(g9){var r,c;if(f6){F();if(B7()){p1=0;for(r=s[k1];r<s[k1]+3;r++)for(c=s[q6];c<s[q6]+3;c++)if(l0[r*9+c][r2][r8]!=m2)C0(r,c,h6);C2(O(g9?l9:m5,g9?q0:u1,u1).replace(n5,r7));g8=s[k1];g2=g8+2;i6=s[q6];e4=i6+2;p1=1}else C2(A0(81-s6))}}function S(d7){var x,q1=0;if(f6){F();p1=0;while(!q1&&B7()){K(k1,q6,q0);l0[k1*9+q6][n2]=q0;A5(k1,q6,q0);if(d7){C0(k1,q6,h6);g8=g2=k1;i6=e4=q6;q1=1}x=O(e0,q0,u1,N(k1,q6),f1).replace(n5,r7);C2(d7?x:q);X(x)}p1=1;C1();W();if(!q1){C2(x=A0(81-s6));X(x)}}}function A1(){var r,c,i;y=new Array(9);for(r=0;r<9;r++){y[r]=new Array(9);for(c=0;c<9;c++){y[r][c]=new Array(10);for(i=1;i<10;i++)y[r][c][i]=1}}i5+=j4[k7](0);p=new Array(9);for(r=0;r<9;r++){p[r]=new Array(9);for(c=0;c<9;c++)p[r][c]=0}m1=(9*3)<<8;e7=new Array(5);for(i=0;i<5;i++){e7[i]=new Array(243);m[i]=r0[i]=0;f9[i]=q}i5+=i5+k7[k7](0)+2;while(!Z(i5))i++;if(j9.frames&&j9.frames["st"]){k2=j9.frames["st"].window.document;t1=j9.frames["rs"].window.document;s5=0}else if(s2.frames){k2=s2.frames["st"].document.body;t1=s2.frames["rs"].document.body}else if(Z("rs")[d1]){Z("st").height=21;k2=Z("st")[d1].body;t1=Z("rs")[d1].body}if(s5)k2[r2].font=t1[r2].font="normal 10"+q4}function C5(r,c,h,x,i,j,o,i8){return(y[r][c][h]?x:q)+(y[r][c][h]&&y[i][j][o]?t4:q)+(y[i][j][o]?i8:q)}function A2(r,c,h,x,i,j,o,i8,rr,cc,q8,l3){return(y[r][c][h]?(x+(y[i][j][o]&&y[rr][cc][q8]?", ":(y[i][j][o]||y[rr][cc][q8])?t4:q)):q)+C5(i,j,o,i8,rr,cc,q8,l3)}function B2(i,j,k,r,h,o,q8){var u=", ",x=y[j][h][i]?N(j,h)+u:q;x+=y[j][o][i]?N(j,o)+u:q;x+=y[j][q8][i]?N(j,q8)+u:q;x+=y[k][h][i]?N(k,h)+u:q;x+=y[k][o][i]?N(k,o)+u:q;x+=y[k][q8][i]?N(k,q8)+u:q;x+=y[r][h][i]?N(r,h)+u:q;x+=y[r][o][i]?N(r,o)+u:q;x+=y[r][q8][i]?N(r,q8)+u:q;x=x[p2](0,x[m0]-2);return x}function N(i,j){return " "+e8+(i+1)+e5+(j+1)}function B8(w,j){var i=0;while(j>0){if(w&256)j--;w=w<<1;i++}return i}function O(x){var i,j=x.split("$"),i8=j[0];for(i=1;i<j[m0];i++)i8+=arguments[i]+j[i];return i8}function D(j){var i;for(i=0;j;i++)j&=j-1;return i}function B7(){var r,c,rr,cc,i,j,k,j1,d6=0,b,i3,r4,t7,p4,a,n,p6,g1,n1,l2,d=new Array(0,3,6),d3=new Array(1,1,1,2,2,2,3,3,3),p3=new Array(0,0,0),w,d0,k8,e,t=new Array(9),o8=new Array(9),f,h,o,q8;if(s6<81){do{for(a=0;a<3&&!d6;a++)for(n=0;n<3&&!d6;n++)for(i=1;i<=9&&!d6;i++){j1=n1=l2=0;for(r=d[a];r<d[a]+3;r++)for(c=d[n];c<d[n]+3;c++)if(y[r][c][i]){j1++;n1=r;l2=c}if(j1==1&&!p[n1][l2]){d6=1;u1=a*3+n+1;k1=n1;q6=l2;q0=i;f1=n0}}for(r=0;r<9&&!d6;r++)for(i=1;i<=9&&!d6;i++){j1=0;for(c=0;c<9;c++)if(y[r][c][i]){j1++;l2=c}if(j1==1&&!p[r][l2]){d6=1;u1=s[r]+d3[l2];k1=r;q6=l2;q0=i;f1=o0}}for(c=0;c<9&&!d6;c++)for(i=1;i<=9&&!d6;i++){j1=0;for(r=0;r<9;r++)if(y[r][c][i]){j1++;n1=r}if(j1==1&&!p[n1][c]){d6=1;u1=s[n1]+d3[c];k1=n1;q6=c;q0=i;f1=j5}}for(r=0;r<9&&!d6;r++)for(c=0;c<9&&!d6;c++)if(!p[r][c]){j1=0;for(i=1;i<=9&&!d6;i++)j1+=y[r][c][i];if(j1==1){i=1;while(i<9&&!y[r][c][i])i++;d6=1;u1=s[r]+d3[c];k1=r;q6=c;q0=i;f1=d4}}if(!d6){b=0;w=new Array(9);for(r=0;r<9;r++){w[r]=new Array(9);for(c=0;c<9;c++){k8=0;for(i=1;i<=9;i++)k8=(k8<<1)|(!p[r][c]&&y[r][c][i]);w[r][c]=k8}}for(r=0;r<9&&!b;r++){f=0;for(c=0;c<9;c++)if(!p[r][c])t[f++]=c;for(i=0;i<f&&!b;i++)for(j=i+1;j<f&&!b;j++){e=w[r][t[i]]|w[r][t[j]];if(D(e)==2){h=B8(e,1);o=B8(e,2);for(cc=0;cc<9;cc++)if(cc-t[i]&&cc-t[j])if(e&w[r][cc]){X(O(o7,h,o,N(r,t[i]),N(r,t[j]),C5(r,cc,h,h,r,cc,o,o),N(r,cc)));y[r][cc][h]=y[r][cc][o]=0;b=1}}}}for(c=0;c<9&&!b;c++){f=0;for(r=0;r<9;r++)if(!p[r][c])t[f++]=r;for(i=0;i<f&&!b;i++)for(j=i+1;j<f&&!b;j++){e=w[t[i]][c]|w[t[j]][c];if(D(e)==2){h=B8(e,1);o=B8(e,2);for(rr=0;rr<9;rr++)if(rr-t[i]&&rr-t[j])if(e&w[rr][c]){X(O(o7,h,o,N(t[i],c),N(t[j],c),C5(rr,c,h,h,rr,c,o,o),N(rr,c)));y[rr][c][h]=y[rr][c][o]=0;b=1}}}}for(a=0;a<3&&!b;a++)for(n=0;n<3&&!b;n++){f=0;for(r=d[a];r<d[a]+3;r++)for(c=d[n];c<d[n]+3;c++)if(!p[r][c]){t[f]=r;o8[f]=c;f++}for(i=0;i<f&&!b;i++)for(j=i+1;j<f&&!b;j++){e=w[t[i]][o8[i]]|w[t[j]][o8[j]];if(D(e)==2){h=B8(e,1);o=B8(e,2);for(rr=d[a];rr<d[a]+3;rr++)for(cc=d[n];cc<d[n]+3;cc++)if((rr-t[i]||cc-o8[i])&&(rr-t[j]||cc-o8[j]))if(e&w[rr][cc]){X(O(o7,h,o,N(t[i],o8[i]),N(t[j],o8[j]),C5(rr,cc,h,h,rr,cc,o,o),N(rr,cc)));y[rr][cc][h]=y[rr][cc][o]=0;b=1}}}}for(r=0;r<9&&!b;r++)for(i=1;i<=9&&!b;i++){j1=t7=0;while(t7<9&&!y[r][t7][i])t7++;p4=8;while(p4>=0&&!y[r][p4][i])p4--;if(p4>t7&&s[t7]==s[p4])for(rr=s[r];rr<s[r]+3;rr++)for(cc=s[t7];cc<s[t7]+3;cc++)if(rr-r)if(y[rr][cc][i]){X(O(k9,i,r+1,s[r]+d3[cc],i,N(rr,cc)));y[rr][cc][i]=0;b=1}}for(c=0;c<9&&!b;c++)for(i=1;i<=9&&!b;i++){j1=i3=0;while(i3<9&&!y[i3][c][i])i3++;r4=8;while(r4>=0&&!y[r4][c][i])r4--;if(r4>i3&&s[i3]==s[r4])for(rr=s[i3];rr<s[i3]+3;rr++)for(cc=s[c];cc<s[c]+3;cc++)if(cc-c)if(y[rr][cc][i]){X(O(n6,i,c+1,s[rr]+d3[c],i,N(rr,cc)));y[rr][cc][i]=0;b=1}}for(a=0;a<3&&!b;a++)for(n=0;n<3&&!b;n++)for(i=1;i<=9&&!b;i++){p3[0]=p3[1]=p3[2]=0;for(p6=0;p6<3;p6++)for(c=d[n];c<d[n]+3;c++)if(y[p6+d[a]][c][i])p3[p6]=1;if(p3[0]+p3[1]+p3[2]==1){r=0;while(p3[r]-1)r++;r+=d[a];for(c=0;c<9;c++)if(c<d[n]||c>d[n]+2)if(y[r][c][i]){X(O(q7,i,a*3+n+1,r+1,i,N(r,c)));y[r][c][i]=0;b=1}}}for(a=0;a<3&&!b;a++)for(n=0;n<3&&!b;n++)for(i=1;i<=9&&!b;i++){p3[0]=p3[1]=p3[2]=0;for(g1=0;g1<3;g1++)for(r=d[a];r<d[a]+3;r++)if(y[r][g1+d[n]][i])p3[g1]=1;if(p3[0]+p3[1]+p3[2]==1){c=0;while(p3[c]-1)c++;c+=d[n];for(r=0;r<9;r++)if(r<d[a]||r>d[a]+2)if(y[r][c][i]){X(O(s4,i,a*3+n+1,c+1,i,N(r,c)));y[r][c][i]=0;b=1}}}d0=new Array(9);for(r=0;r<9&&!b;r++){d0[r]=new Array(10);for(i=1;i<=9;i++){k8=0;for(c=0;c<9;c++)k8=(k8<<1)|(!p[r][c]&&y[r][c][i]);d0[r][i]=k8}}for(i=1;i<=9&&!b;i++){f=0;for(r=0;r<9;r++)if(d0[r][i])t[f++]=r;for(j=0;j<f&&!b;j++)for(k=j+1;k<f&&!b;k++){e=d0[t[j]][i]|d0[t[k]][i];if(D(e)==2){h=B8(e,1)-1;o=B8(e,2)-1;for(rr=0;rr<9;rr++)if(rr-t[j]&&rr-t[k])if(e&d0[rr][i]){X(O(g7,i,N(t[j],h),N(t[j],o),N(t[k],h),N(t[k],o),i,C5(rr,h,i,N(rr,h),rr,o,i,N(rr,o))));y[rr][h][i]=y[rr][o][i]=0;b=1}}}}for(c=0;c<9&&!b;c++)for(i=1;i<=9;i++){k8=0;for(r=0;r<9;r++)k8=(k8<<1)|(!p[r][c]&&y[r][c][i]);d0[c][i]=k8}for(i=1;i<=9&&!b;i++){f=0;for(c=0;c<9;c++)if(d0[c][i])t[f++]=c;for(j=0;j<f&&!b;j++)for(k=j+1;k<f&&!b;k++){e=d0[t[j]][i]|d0[t[k]][i];if(D(e)==2){h=B8(e,1)-1;o=B8(e,2)-1;for(cc=0;cc<9;cc++)if(cc-t[j]&&cc-t[k])if(e&d0[cc][i]){X(O(g7,i,N(h,t[j]),N(o,t[j]),N(h,t[k]),N(o,t[k]),i,C5(h,cc,i,N(h,cc),o,cc,i,N(o,cc))));y[h][cc][i]=y[o][cc][i]=0;b=1}}}}for(r=0;r<9&&!b;r++){f=0;for(c=0;c<9;c++)if(!p[r][c])t[f++]=c;for(i=0;i<f&&!b;i++)for(j=i+1;j<f&&!b;j++)for(k=j+1;k<f&&!b;k++){e=w[r][t[i]]|w[r][t[j]]|w[r][t[k]];if(D(e)==3){h=B8(e,1);o=B8(e,2);q8=B8(e,3);for(cc=0;cc<9;cc++)if(cc-t[i]&&cc-t[j]&&cc-t[k])if(e&w[r][cc]){X(O(m7,h,o,q8,N(r,t[i]),N(r,t[j]),N(r,t[k]),A2(r,cc,h,h,r,cc,o,o,r,cc,q8,q8),N(r,cc)));y[r][cc][h]=y[r][cc][o]=y[r][cc][q8]=0;b=1}}}}for(c=0;c<9&&!b;c++){f=0;for(r=0;r<9;r++)if(!p[r][c])t[f++]=r;for(i=0;i<f&&!b;i++)for(j=i+1;j<f&&!b;j++)for(k=j+1;k<f&&!b;k++){e=w[t[i]][c]|w[t[j]][c]|w[t[k]][c];if(D(e)==3){h=B8(e,1);o=B8(e,2);q8=B8(e,3);for(rr=0;rr<9;rr++)if(rr-t[i]&&rr-t[j]&&rr-t[k])if(e&w[rr][c]){X(O(m7,h,o,q8,N(t[i],c),N(t[j],c),N(t[k],c),A2(rr,c,h,h,rr,c,o,o,rr,c,q8,q8),N(rr,c)));y[rr][c][h]=y[rr][c][o]=y[rr][c][q8]=0;b=1}}}}for(a=0;a<3&&!b;a++)for(n=0;n<3&&!b;n++){f=0;for(r=d[a];r<d[a]+3;r++)for(c=d[n];c<d[n]+3;c++)if(!p[r][c]){t[f]=r;o8[f]=c;f++}for(i=0;i<f&&!b;i++)for(j=i+1;j<f&&!b;j++)for(k=j+1;k<f&&!b;k++){e=w[t[i]][o8[i]]|w[t[j]][o8[j]]|w[t[k]][o8[k]];if(D(e)==3){h=B8(e,1);o=B8(e,2);q8=B8(e,3);for(rr=d[a];rr<d[a]+3;rr++)for(cc=d[n];cc<d[n]+3;cc++)if((rr-t[i]||cc-o8[i])&&(rr-t[j]||cc-o8[j])&&(rr-t[k]||cc-o8[k]))if(e&w[rr][cc]){X(O(m7,h,o,q8,N(t[i],o8[i]),N(t[j],o8[j]),N(t[k],o8[k]),A2(rr,cc,h,h,rr,cc,o,o,rr,cc,q8,q8),N(rr,cc)));y[rr][cc][h]=y[rr][cc][o]=y[rr][cc][q8]=0;b=1}}}}for(r=0;r<9&&!b;r++)for(i=1;i<=9;i++){k8=0;for(c=0;c<9;c++)k8=(k8<<1)|(!p[r][c]&&y[r][c][i]);d0[r][i]=k8}for(i=1;i<=9&&!b;i++){f=0;for(r=0;r<9;r++)if(d0[r][i])t[f++]=r;for(j=0;j<f&&!b;j++)for(k=j+1;k<f&&!b;k++)for(r=k+1;r<f&&!b;r++){e=d0[t[j]][i]|d0[t[k]][i]|d0[t[r]][i];if(D(e)==3){h=B8(e,1)-1;o=B8(e,2)-1;q8=B8(e,3)-1;for(rr=0;rr<9;rr++)if(rr-t[j]&&rr-t[k]&&rr-t[r])if(e&d0[rr][i]){X(O(q9,i,B2(i,t[j],t[k],t[r],h,o,q8),i,A2(rr,h,i,N(rr,h),rr,o,i,N(rr,o),rr,q8,i,N(rr,q8))));y[rr][h][i]=y[rr][o][i]=y[rr][q8][i]=0;b=1}}}}for(c=0;c<9&&!b;c++)for(i=1;i<=9;i++){k8=0;for(r=0;r<9;r++)k8=(k8<<1)|(!p[r][c]&&y[r][c][i]);d0[c][i]=k8}for(i=1;i<=9&&!b;i++){f=0;for(c=0;c<9;c++)if(d0[c][i])t[f++]=c;for(j=0;j<f&&!b;j++)for(k=j+1;k<f&&!b;k++)for(r=k+1;r<f&&!b;r++){e=d0[t[j]][i]|d0[t[k]][i]|d0[t[r]][i];if(D(e)==3){h=B8(e,1)-1;o=B8(e,2)-1;q8=B8(e,3)-1;for(cc=0;cc<9;cc++)if(cc-t[j]&&cc-t[k]&&cc-t[r])if(e&d0[cc][i]){X(O(q9,i,B2(i,h,o,q8,t[j],t[k],t[r]),i,A2(h,cc,i,N(h,cc),o,cc,i,N(o,cc),q8,cc,i,N(q8,cc))));y[h][cc][i]=y[o][cc][i]=y[q8][cc][i]=0;b=1}}}}}}while(!d6&&b)}return d6}

