diff --git a/k-noeudsCasseTete/noeuds.py b/k-noeudsCasseTete/noeuds.py
index 24d5a8877873eedb1dce1acbadd2a04b62a303a4..873be7dfada3593c9bdcb25376044a9afb543b74 100644
--- a/k-noeudsCasseTete/noeuds.py
+++ b/k-noeudsCasseTete/noeuds.py
@@ -1,6 +1,6 @@
 import sys, os
 
-PATTERNREMOVE=['aA','Aa','bB','Bb','cC','Cc']
+PATTERNREMOVE=['aA','Aa','bB','Bb','cC','Cc','dD','Dd']
 
 def debug(message):
     print("DEBUG:   %s"%message)
@@ -24,27 +24,34 @@ def reduceOne(line):
         line=remove(line,pattern) 
     return line
 
+def replace(number, chrmod, pos):
+     number[pos]=chrmod
+
+
 def test(candidate):
+    """ main function  test one string """
     ma=candidate.replace('a','').replace('A','')
     mb=candidate.replace('b','').replace('B','')
     mc=candidate.replace('c','').replace('C','')
+    md=candidate.replace('d','').replace('D','')
+    
     #print("In:%s"%line)
-    ra, rb, rc = reduce(ma), reduce(mb), reduce(mc)
+    ra, rb, rc, rd = reduce(ma), reduce(mb), reduce(mc), reduce(md)
     outa="[a] %s -> (%s)"%(ma,ra)
     outb=" [b] %s -> (%s)"%(mb,rb)
     outc=" [c] %s -> (%s)"%(mc,rc)
+    outd=" [d] %s -> (%s)"%(md,rd)
     res=""
     reducedC=reduce(candidate)
-    wellformed= 'a' in reducedC and 'b' in reducedC and 'c' in reducedC
-    if ra=='' and rb=='' and rc=='' and wellformed:
+    wellformed= 'a' in reducedC and 'b' in reducedC and 'c' in reducedC and 'd' in reducedC
+    if ra=='' and rb=='' and rc=='' and rd=='' and wellformed:
         res="**GOUDE**"
-        print("%8s %20s %20s %20s %s"%(candidate, outa, outb, outc, res))
+    print("< ---- >")
+    print("%8s %20s %20s %20s %20s %s"%(candidate, outa, outb, outc, outd, res))
 
 
-def replace(number, chrmod, pos):
-     number[pos]=chrmod
-
-TABLETTERS=['a','b','c','A','B','C'] # letters 
+NUMLETTERS=8
+TABLETTERS=['a','b','c','d','A','B','C','D'] # letters 
 
 def addOne(number, posadd):
     if (posadd>=len(number)):
@@ -53,7 +60,7 @@ def addOne(number, posadd):
     currentLetter= number[posadd]
     
     index=TABLETTERS.index(currentLetter)
-    newindex=(index+1)%6
+    newindex=(index+1)%NUMLETTERS
     replace(number, TABLETTERS[newindex], posadd)
     if currentLetter=='C': #recursive call
           addOne(number, posadd+1)
@@ -73,5 +80,13 @@ def enumerate():
         #print ("%d %s"%(i,''.join(num)))
         test(candidate)
 
-enumerate()
-print("PWD:",os. getcwd()) 
\ No newline at end of file
+def configsFromFile(filename):
+    f = open(filename, "r")
+    for line in f:
+        config=line.rstrip()
+        test(config)
+
+#enumerate()
+print("cétipar")
+#print("PWD:",os. getcwd()) 
+configsFromFile("x-data.txt")
\ No newline at end of file
diff --git a/k-noeudsCasseTete/x-data.txt b/k-noeudsCasseTete/x-data.txt
index 287ee97bb70006a790fe5aae3d76364d2cd474ee..d38223470427500cdaac3b5bb612f1a72002a7d1 100644
--- a/k-noeudsCasseTete/x-data.txt
+++ b/k-noeudsCasseTete/x-data.txt
@@ -1,4 +1,2 @@
-abcCBA
-HHBabcCABCabc
-AbcBCacbCB
-abcBCAcbCB
+caCbcAdaDCBA
+caCbcAdaBDbCBA
\ No newline at end of file