anchor.diff:  let readCustomInstructions(r: TextReader) = 
       while (char(r.Read()) <> '[') do ()
       readCustomInstructionsNode(r)
  +
  +let createCardRecordForCustomInstructionsString(lid: int, language: string)(index: int)(text: string) = 
  +    let baseKey = "custominstructions" + index.ToString()
  +    {
  +        CardRecord.ID = 0
  +        LessonID = lid
  +        Text = text
  +        Gender = "masculine"
  +        Key = baseKey
  +        GenderlessKey = baseKey
  +        KeyHash = 0
  +        GenderlessKeyHash = 0
  +        SoundResource = ""
  +        LanguageTag = language
  +        Reversible = true
  +    }
  +
  +
   
   // **************************************************************************
   // AFS archive code
  
positive.code:             Array.concat(
                  [|
                      JetSetRadio.ExtractJSRStringsDotStr(path, lessonEntryWithId.ID);
                      // TBD: extract CUSTOM\instructions*.txt
                      JetSetRadio.ExtractStringsFromSrt(path, lessonEntryWithId.ID);
                      JetSetRadio.ExtractStringsFromBinaries(path, lessonEntryWithId.ID)
                      JetSetRadio.ExtractStringsFromAssemblies(path, lessonEntryWithId.ID)
  
negative.code:             |> convertSrtBlockExtractedEntriesToCardRecords(lessonId)
              |> Array.ofSeq
  
      static member private ExtractStringsFromCustomInstructions(path: string, lessonId: int) = 
          let pathsAndLanguages = 
              [|
                  (Path.Combine(path, @"CUSTOM\instructions.txt"), "en");
                  (Path.Combine(path, @"CUSTOM\instructions_DE.txt"), "de");
                  (Path.Combine(path, @"CUSTOM\instructions_ES.txt"), "es");
                  (Path.Combine(path, @"CUSTOM\instructions_FR.txt"), "fr")
              |]
  
          let generateCardsForLanguage(p: string, l: string) = 
              use sr = new StreamReader(p)
              let n = readCustomInstructions(sr)
              getCustomInstructionsStrings(n)
              |> Array.mapi(createCardRecordForCustomInstructionsString(lessonId, l))
  
  
          pathsAndLanguages |> Array.collect generateCardsForLanguage
  
      static member ExtractJetSetRadio(path: string, db: LLDatabase, gameEntryWithId: GameRecord, args: string[]) = 
          let lessonEntry = {
              LessonRecord.GameID = gameEntryWithId.ID;
  