- string s = "CTGGGTCGGGGGCGCTGGGGGCTGCTGGTAnnnnnnnnnnnnnnnnnnnnnnnnnTCTGCGCCGCCCGAGCCGCTGTGCTGCGCGTACTCCTCGAAGGGAGGGAACTTGGGCTCGATGTAGTTGGAGTTTATCAAAAACGAGCTCATGGTCATTAATTTGTGAAGTGCAAAAATACTAATTTTTCTCGCGTTGTCGTTTTTTCTGGGCTTGCCGAGGnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnGCAGACGCCGCCACCAAAGTTCGAGCCGCTCCTCCCCAGCCCAGCGCGCGCCCCGCCCCGTGCCCCACGTGCAGCGCCCCCACCAATGGGCGCACCGCGCGCGCGGACCCGGATCAGGAAACGCGCGGGTGCGTGATGGATGCTGCTGTCCGGCCCCTGGGCTGGGGGAGGGAGCAGGAGCTTTGGACCCCAGCCCCCCAGCTTTGGTTCCCGCTGGGAATTCAGGCCCTGTCAGGCTGTAGGTCCTCTCGGGAGCCCTCTGCCTGCCCTACTGCTGGCCTAGGCCTCGGGCTGTCTGGCGGCCGCGACTCAGCGCTGACCTCGGGCGCAACCCAGTCAGGCTTCGTGTCCTTCAGGGGTTCTAGGCTAACAGGCGAAAGGAAGGGCGTTGGGACCGAGGGGCATCCTGGTTTTTATGTACGCCACTGAGAGGCCACCAGACACATTTTCTCAACCGCAGATCCCCCTTCCCCACACCCTGCTCCTTGCGTGTCAGCCTGAGAGCCCTTGCTTTGAGAAGCTTGGCAGAAGCTGCAAAGGGTGGGCGGGCAGCTAAGAGAAATCGACCCAAGGATGTAAATCGAGGCCATTCCATTATAACTGGATGGACACTTTTCATTTTTTCCTTCTTTCAGAGACAATCTGTTTCGTGTTTTCCTAAGAAAAATTGGAACCTTCGTAATAGCATCTAATTTGACGGGGGTTGTCGATGTGAGAGCTAAATATGCCCGCATTTACTAGGTGCGATTGTGAGAGAGAAGGTGGCCCAAGGATGGGAATGGATAGAAGCAACACCTCCACAGAACCGAGCTTTGAAAACAATAACTTCCTATTTCAGAACTATCCCCAAACAAAAACAAGCTAAGGGTAGAATAAACACCTTGCCGGGTCTGATCGCTGATGGGTCTTTTCCAGCTAAGAATTTCATGTTTTCTCTTTTAGATCCTGCTTTCTCAGGCAGTATCTGAGGCTAGAGTTATATTTGCAGGACAGTCTATAATTTCTGAATTGCTGAAAATTAGCGTATTAACGATATCAGAAGCTCCGGAAAGGAGGGAGAGGAGACTGTTGCCTGCTATTTGGTAATTGAAATTTGATGGGTACACTAATTACGCCATTATTAACAAATAAATTACTTATTAATTCCACCTAATGTTGATCTTTGAAGTAAATACTGATGCCTTATTTGTGCTGTGTGCTTTCTCCCTTTCTTTTCTGAGTAGTAGACATATCTAGATCCTCTACTTTTCAGCCTAAATTAAAGCAGTGTAAACTAGCATAGTCACCATTCTAAAAATATTTTCATATTGGCATGCAAAAGCAAGGATTTTTCAGCTGGTGCACCTTAGTTGATTTTTCAAAGAGCAGTATAAACAGCCTTCTCACAACTGAGTCTGGAACGCAGACAAGGAAAATTATTTCCTAAGCCTGGAGACACTTGAAAAGGAATGTCAATTCTATCTTCATTCATACTGGTTACTCATATGAGTTACTAAATGCTGGAATATATCCATTTGATGGATAGTCACTTAATGCTTAGCCACATAAAGCCTATTATATGGGACTAATCTTTAAACTAATTTAGGAAAAGAGGTTAAAAAGGGGATCATATTAGCTTTCTAACTGGAATCACCCTGAAGAGGTACAAAGAGATTTTCCACGTTAGGTGTATATGAGTGTGAAGAGTGCTGTCCATTCACATGAGGCACCCTGAAAATTTGTTTTTAAAGAAATTTGAGCCACAGACAGAAATCAACACTGAGTGTAATCTTTAGCCATCCTCTCTAGACTGGAGGAAAAATTTAGAATGTGATACATCTACCTGAACCAATATCTCTCCCTAGCAAGAAAAAATAATATACACATAGGnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnGACATACGTATTACAAATCTGAACCCTATAAGTTTCAGGGGGACAAAAAGCATGACAAGGAAATCTTCCCTCCTTCTCATGTCATCAGCCTTGAGTACTAGGGTCTTAACCATATCTGTTTAATATTTACAGACACTAAAACACAAAATTCTGTTGTTTAGCCTCAGAACCTTGTACCAAGTTTCTATTTTTAAGTATTAACGAGACATAAACACTGTTTTGTATACGGTTAACCCAAACGAGTTAGCTGTGCCTGTGTTTTGTGTGATTCTATTACTTTAGGAAGATGGCCTTACACAGAATCCCCCAAGGCCTGTAACTTGTCTTTGTGGTTCGTATCATAAACACAAACGGAGCCAGGACCACCAAGTGTTATCTCAACACCGACATTTTGACATTTTACTGCAAGATTTATGGCTGTAATAAACAATCTCAGTACCTTTTCTGAACCTTCCTCAATCTCCCTTTGCAAACCATAGCATCATTCCATTGAATCAAATAATCTTTTGAAAAACATTTAAAAAAAATACCTCTTGCCTTTACACAATATCCAAGACACCAAAGTAAAGCCAGGAAGAAACTAACTCAATTAATAAACAAACTGAAGTTTACCAGCAGCATCTCGCCTGAGAAAAGATGGGATGCCCTGAAATGTAGCAGAGAGGGAGCATGCTAATCCTCACACACCAACTGGCTCCAGTCCCAAGCGGGGTGAAAGCGTTATCCTTTCCTTAGGAAACTGGTGAGCACGTTTGCTCATTTCCACGTGCAGGGATAACATATATTCCCAACAAAAGCTTTCTTAAAATCCCATTAGGTGAAATAACTTTTCATCATGTCCTCGAATCCCAGATGGAGAAGAGTGAAGGGAGTCGGAGGGAGAGGGAGGGTGCAAGGGAGGCAATGTTTTGCAGCTTGGTTTGAATCTGATTTGAATCATTTTGAATATATTTGTAACAGCATTCCCTCTTGAATGCAACCCTGTCCCAAGTTTCAAAGTGACCGAACAGTGACACCGTGTGCATTTTGTTTCTTATTAATCTTACACATTGACAGTCTTTGTTAAATCACAAGGCGCGCCCTTCACTAGCCGACATTTTCATATTTGTTAGACGCACTGACCTGAAGTTCACCTCGGCCTTGGACTTTGCGCTTCTAAAAGGTCTATACAGTGTCTTTTAGAGAGCAGGGTGCTTTGCCCAGGTCACTCCTTCTCAGGAAAAACCAAGGGGAAAAGCCAAAGGAAATGTAAACGTTATGGAATGTATTGACTGTATTTGTCCTTTGTTCTTTAGAGCGAGAGTCCCCCAGACTGTTCTCTATCTGATGCATGTCTCTAGAGCTGAACAGTGGAATGGCAGAATTTCAAAACGCCTGATGGTGGCATTTGAAGGCTTCCCCACCACCTACACTAGACACAAGATTTGAGAGGAACAACACTTTACCAGCCATTTGACCAATTAATTCTTTGGGGATAATTTTCTTGTAGTAGTTTAAAATAATGCACACAACGCAGGGATGAGGACTGATATTCATATTGGGATTACACATGAATTTTAACTGGGATTGTTTGAGAGGCCTGAGGTTCAAAATCCTCCAGATAAAGCAAGCACACTAAAAGCAATAAATTCTGCAAGTACTCTTTTCTTTTACTTTGAAGACTAGCTAAGAGGTATCTATGGTTTTTGAAGCTGACATGTCTATAAGGTGTGTCACATGTTTTTAACCAAAAAGCACAATAAAAAGGTTTTTCCCAAAGAGACACGTAATTGTCTTGTTGACTCATCGAGGGGTTTCAGTTTTCCTCATTTCACTAGCCCAAATGTGGTGAAATGTTCACTGCTGCAACAGCAATCACCACAGTTGTTTCCTTTCTTCTGTTTCATCTGGCAAACCCCCATTTGGCTTCAAGCTCTTGGCCAGAGTGAAAACTTTACACATTGCACAGAAGCACCCTGATTACTTCCATGAAGGCAGTGTTTGGAAAATATTTACTTTACCACTGAACATACCTGGCACCATTAAATCCAATCAACCAAAATATTGGGATGATCTTAAACATTCCTGCAAGAGTCCACATTCTGAGTAGATGAATTATTTCCAAAGTTAAAAAAGAAAAACCTAGGGAAAATATTTCACTTTTCTCTTCTCTGTTTTCCTATACTGATCCCTTGAAGGTCAATTCATAGAAAAGGGAAATATGTCCTCTGGAAAATAGATTCTTACAGCACCAACACTTAAAGCCATTCTAGATGCATGAAAAATAAAATATTGTTTAGCTCTTCAGTTGCAACTCACACATGAGGCATGGTTCTAGTCGGCTTCCTTAATACACTATTCTCTTTCTTTTCTGCTCTCCCACCCTTCTTCTTAGGTTGCTTTATCTTCTCCTTGGCTTTTTTTTTTAATTCCACGTGTATCATTAAAAAGTACATTCTGAAGAATAGAAAATATTCTATTCTGTCCTGGTGGTCTTACAGAGTAGCCTGTTATTTGTGGATTTCACCTTTCTGCATTCCCTACAGTCTAGTTATTCACTTATAGCTTGTAGCATTTCTCTTACATTCAATTGTGGTTTAATAATAAACATTAAAAAAATTTCCAAACAGGAACATTTTCATGGCACCAGTAAGCATTTTGTCACTGGCAGTGGTGGTGGAAGGGGTGAAGGGAGAATTCTGTGTCTTTCAGGAGGGTTTCCACTTCCTTCCTTCCCCTTCTCAGATCTCAGAACGCTTTGCATTCAGCGGACTGTAGTTTCAGAAAAAGCATATTCTGTGTTTGAAAACTGCAAAGATTATATTTTGCAAGAAGTGTCTGTGTTTGCATTTATTCTTACACACTTTAGGGGTCATCATGTGTACTAAAAAGACAAAAAACCGGCCAATCAGAATCCCTCTTTTCAAATAAAGGAGGTTTCCTGCACCATTCTGTTGCCTTTGAAGGCATAATGAAATATTGGAAACTTGTGACATTAGTTTTTAAAGCTCCACAGATGAGTTTTTAGCATTTTTATTTTGTGACAAACCCACAGACTCCTGGTTCTCCAACACCTAAGGTGTTGATGTTTCAGTAATCTATGCCTATTTACCTGCTGCTATTCCCTCAGAATGGGAGCGATAATTCAAGATGAGATACAGCATGTATTACTCTTGAAAAGAGGAATTTTCTATCCTTTCCTCCGTAATTGAGGTCATTCAACCACTAGGGTTCACCTGGAGTCCATACCGTGATACACGCGTCACTCTGAGCCATTTTATCTTTTGTGCTGATAGTCAAGATCACAGCTCTAACATTGACATCAAACTCTGTCTGGGCAGATGACTAAGAGCACTGCACAATGTAAACTTTTGACCCTCAACTTTTTGACCTGCAGTTGTAACGCACTAACCGCAAAGATACACAAAGCCGAGCCTCTTCTTTCAGGGGGAAGGGGCCCCCCAGCATCTCAGGATGCCCTGCTTCTGCCACTGCCATTTGAAATTAGAGGGTGAAATGGATATTTTTGTGTGTTTGTGACTGTACTTTTTGTTAAATCAGCCTATGACCTCTTCGTTAGCACCTAGGAACTAGATTAACTTGAAATCACTCGTGATTCTATTTTACAAGGAAAATTTGGAGCAGAATGGGAGAACCTTGCAAAAAGTGAAAGAAAAGAGAAGATGGGGGAAAGCAGGCAATGGGAGGTGGAGACACTTTTTCCCTTTATTTAAAACTAAAGACGCAGCCCTAATTGTTGGGAGAGCTGGCCCAAGCGGGTGAATTGACTGTGAACTTGTACTAAAGCGTGCTCTGCTGGCGATTCCTAGGGTGTGCAGATTTATCTTCTCTGCATTTACTTAACCCGGCAGTGAACTGCGCGGGCGTCATTTGTTAGGCGATGACAGACTTCACCTCCAGCAAGGGCTGCTTCACAAAATCGCAATAATTATCTAATAACCTTCATAACAAATATTATTATTGAAAAGACTGGTTTGTGGGGAGGGGACCTGGTGGGAGAACAAATTTATTTGTGAACAACAACAAACAAAACAAACCTGGGCAGACCTTCAAGTTCTGGGGCTTAGAATGGCTGGGGCTGTGGATCCCCTCCCCTACTTGGGTGGGAGCTTAGGCTGACCCCCTCAGCCCTGCCTGGGAGCCCCGTTTATAGTTTTGCCATTGACTAGAAGGAAACTCCTCCTCAGAAACCAAAGGGAGGGAGCCCACAATGCTCTGCACTCTCCATGGTGGGCAAGCCATGGACAGACCCCCAGCCAAGGCAGGGGGGAGGCTGAGAAGGGCATCTTTTAAGCTAAAAGGATTGTTTTCCTCTTTAATTGCCTATCTTTTAAGATGTGATTTGCTTTCCACTCACTAATTATTTCGATATAATACTCTCAGAATCTCAACAAATGAACAGGACTCTGTTTTTTGGTGGGAAATTCTGTCTTGCTCTCTCAGAGCCGCCAACAATGAAGCAGGGGAAAGAGCAGGAGAAAGGGAATCTTGGCATAATGTTGTGAAATTAGACCATGGAAACCCTAACAAACCACTAAGTAAGTGTGACCAGAAGCTTCCTGTTGTATTTATAGTTCAGAAATATTGTCTCTTCAGCTTGTGGGAACAAACGAGCCCCCGCACATTGCCGCTGAGGAGGAGCACAGACACGCACTTCTGCCACCGGCTGAGGCTGGATGTCTTCATAAAGCCCTCAGTGACAGACATATTTTTTCTTAGTAAGTTCCTCTGCAAGAACAACCCAAAAGAATCCACAAAAGAAATAACTTATCTACAGAATGAGCAGAAAACCAGCCATCCTCTTTATTATGCTTCCTATGAAAATAGGAAGAAAGAAAAAAATCTTCCAGTAACACATAGGTCTGACTGCATGATGTATTTTTAAAGTCATTTTAATTCCATGTGGCCATGTGGGTTTGCCTGCTCTCTTAAATTCTACTTAAGTTTTGTGAAGATTAAAACAGACAGAAATAAGCAAGCTGACAATATTTACAGCCTGTAATTTTTCTCATTCCTTGGAAAGATTCTCTATGTTCTGTGGTACTGGATATGACTTCAACAGGCTTTCTGCTCATTCCCACACCCCAGGGTGGAATATGGCCATGAAGTAGTGTGGATATTTTCTGTGTAAGTAACTCAAATTAAACTGGCAGAATCCCCGTCACTCTTTTTTTTTTCTAATTTCAATCACCAAGAAATCACTCAAGCAAGATCACCAAATCAGTAACTAAAATGGAACCATAACGCAATATTTTCCAATAAGGAGCCCAAAATTCAGAGCAGCAAAACAAGGAATCCAGTATTCTCACAGACACATAACATTATAAAAGAGAACCCATACCCATGTAGAGTTTATATCCTTGTTCCCACTAAGATGTGGACACATCTTCTTGAATGCTGAAATACCAATGTTTACTTTAATAGGTTACACACAATGACTTCAGGATTCTTCACCTTGCCACTATTCATGAGAAGTAGCACTTGTGGGAGGGTTTTGATTTTTCAAAAAAACTTTCTAGGTTTTGCTTTCTGGACCTCTGACTTTAGGGACATCTGTTGGACTTATGTTGAGTGTAGGTGGCCTCTGCACAATAAGTTTATTGAAATTCCAAATCTATACTTTCAATTTTTTCACTTTAAGCACTTAATAGGTATCTTTACCAATTAATACTTGCTGAAAACTGCCCAGCTCCTAAGGAGAAAAGCAGATCCTATTTTTTGTTTCATTTCTGAATGCAGTAGGAGAATTTGGCTTAATTCCTAAAATAGGATTGGAGGAAATCTACTGGGTCCCTTGTGGGTACCCATCCAGAAAAAGATCCCAGGACAGGCCACAGTCCCCAGTCACTGGGCTTGGGTTTTGCCATTGAAGAATATGGGGGGTTGGGGCCAGAAGGGGTGACTGGGGCCAATATGGAATTGTGCCCAGGATAAACTTATTTCACCTTACTTCACCCATTGGTGCAATTTTGGAGACTGTTCTGGAAATCATAGATTATGTAAATTTCCTGGGATCAAACAGAAAGAGCAACTAACAAAAGAAAGGCGGAAATCTCCTACTGACAAAGGACCAATTTCTTCCCTAAACTACCGTTTATGATGTGTCAGGAAAAACAACCTAATGGCTCTGGGGACTTTTAAGTTGGGCACTGAAGACACCTCAATTTCCCCCAAAACTTTAGAGCACAGTTTGGAACAGAGAATTCGCCTGTATGTTGAGGGGGAGTGAATTTCTCCAATCTTAATGTTATCCAGGGGGCCGCCTAAGTTGCCTTCTGAGGGTCCTGTGCGTAGATGTTTTTAATTCTACnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnGCGCTTTAACCCCTTTCAATTAGCCTGGGGATTCAAAGACTAAAGTTAAATCCGGCCATAAAGTTTATTGCTTCAGACTCACAAGCGGCTGAGAACAGTCCCGCCGAAATAAAAAGAACATGCAGGCAAACAGGGTTCAGGGCCTGGTCCCGGGTGCGGGGGAGGGGGTCCTGAACACCCCCCCACACCAGGGTGGGGATCCTTGGTCCTCAGGGTCCAGTGGGCGCTAGCAGCCCAGGATCCACCTTGCAACCCGGGGGCCCAGCCTGGAGGTGCAGCCCCAGCCTCGCCGGCCTCTGCCACCCTCCCGCTCTCGCGAGCTAGCCTGAAACCCGGCCCCGAAGGCCGCCGCCTCAATTCAGCCCTGCCAAATGACCCCGGCCCGCGAAGACATATTGCCACAGCCCCGTAAGGAATCCCGCCAGAGTCCGCCTCGGCCCTGCCCCGGCCTTTCTTTCAAACTCCTGAGCGCAnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnACTGTCTCCCAGCCCCGACCCCAGGGCTCCGCGACCCCCAGGAGCTGGCCCCGGCCGGCCCAGCAATTGCGCGGGGGACTGGGGGTGCGGCCCTGCCAGGTCCCCACACACAGGCCCATTCGCACACAAAAATCATCTTTTTGCACGCCGGCGGGAGCAGCGGAAGTCATTAACATCCGCGGTTGTGCTGCAATTAAAGTTAGGCCTGGGGATGCGGCGCGGCCACAGGCGCTGCTCACTCTGCTGCCTCCGCAGAGTTGGCTCCTGGCGCTGCTCTTTTGGGCAGAGGGAAAGTTTGCTCTGCCTTTTCGAATTCAGAGGCAGCCTGAGTTATTGAACCnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnTTTCCAAAGTACAAATAAACTTGAAAGCGCTCAGGAGGCGAGCTTACCTTAACTCGGAGGGAGCCATTTTTCAGAGAGTTTTGAGAACTTGTGGTTTGGACACTTCTGGACCTAAAATTGACAGTTTGAATGGCCAGGCGGCACACGTAGCCTGCAAAAGAGTCAAATGGAGTCCAGCGTTAGTGAGATTATATGTTATGTGGTATATAATGTTGGATGTCAACTCCCCAAAACCATAAAACTTACTTTAATGGCCCCACGTGACGTTTTATAGCCAGTGAGCCGATCTGTCTGTGCTATGGATGATTTTACGATCTAATTCATAGACAAAACCCTATTCATTTGGCACCCAAATGTCATATAGCCGGAACTGGGGCTTATAAAGTTTACTGTTTTATAACTTTTAAAAGGAAAGACGGCATCAGTGTAAGCAGTCGGTAAATGTGCAAATCTCTAGTTGCGCTTTAGCTGCTCTGAGGAGTTTCCCAATCGAGCTAGGATGGGGTAAGTACCTTCAATTTGTAGCAAATTAATTGTAGCAAAAGAAGCCAACTGGGTCCCGGGTGAAGAGTGGGGAAGGGGTGCTGGGATGGGTTAAGGGCAGAGGGTTTGGGGTCCACAGACAGACATAGCAGCGTCTTCAGCAAGTGGAGGCCTAGGACAGCCTTAGGAAAGAGGCAGGATCTGTGTGGCCTGAGGGCGGCTAACAAAGCCCTGGGTTTTTTCTCCTTTTTTCTTGCTCTTTCTCTCTTTTTTGTACCCAGCAAGTTAACTTGGTTTCCTCAGAGATGGACAGGGTGTTCTGGGGCTTTGGAACAGCCTACAGCTTTTTCCACCTTCTGCCCTGAACTTTGCAATGGGTCAGAGGTAGGGAAGCGATGGGACAGTGTTGGTATGAGGTCTCCCTGCACAGGTCATCTGCTCAGGTAGCCTCAGACCCAACAGCTTCCAAGACTGCACAGACAGACAGAAAAGCAGACAGAGCCGCTCACTATTTGGCACAAACCAGACCAAGAGAACTTACAATAGAAAGTTTATTTTTTGTTCCAGTCAGTATTTTTTCCTTnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnGCTGATCACAGTTTGCTTAAAACAGCCAGACTTGGACAATATTTGTAACTTTGTTCACAAAAACATACATCACTGAAGCTGCGCTTATAAGAGCCACTTCCAGAGTTCGTGCAAAGGGTCCTATAAAGGCACGCAGGGACACACCGCTTGGAGTCACAGTTTTCATCACAGAGTCACTAGTCACTACACGTCGAACAAGTTGTGTCTCATCAAGTCACCTCTACAACAGCATTAATTACACAAGGAATATAGGTAGTTTGAATAAAAATATCTTTAACAGCTTGGAGCTATTGAGACAGGAACACTTCCACGCACATGCACAGTTAAACAACTTGAGTGCAACACACAACATTGGCACTAAACGAGATTGAAGGGGGACTTTTTGTGTGTTTTTTTTTCTCTTTTCTTTTTTTGTTATAGTTACTTCAAGTAACACAGCTTGCTTCATATAAATAAGTTAAAACATCTATTTTTTTTCAAGACAAAGCCATTCAGGACAAAGAGATGAACAGAAAGCAGATCTACTTATACAGGCGCTATAATGGCAATAAACAGGCTCATGATTAAAAGATGAATTAGGGCAACGAGAACAGGGCTTCTTCACAGAAGGAACACAAGGGAGTTTCAGAAAGTCACCTTAGTACTGACACTACGCGGGATCCGCTAATACTGCTCAGTACTTTAAACGCTCAGATACTCAGGGACGGAAGGCCCCTCCTGCCGCGGCCATGCTCATGCTTTTCAGCTTATTATCTTTTTTCCACTTCATTCTCCGGTTTTGGAACCAGATTTTAATTTGTCTCTCGGAGAGGCAAAGAGCATGTGCTATTTCAATCCTCCTTCTGCGGGTCAGGTAACGGTTGAAGTGGAACTCCTTCTCCAGCTCCAGGGTCTGGTAGCGCGTGTAGGCCGTCCGGGCCCTTTTGCCTTCCGGGCCGCCTATGTTGTCTGCAATAGAAAAGTCAGCGGTTTAGCCACCAACTCCTGTCTTCCAAAGTCCGCCAGGGGGACAAGCTTGGGTCATGAGCAGGGAACCCAGGCGAAAAGCTCAACAAGTTCTGCCTACCAGCCCGCACACCCCTCCCGAATTTCCTTCTCTCTTCCTTTCTAGAAAGAAAACAATACGATTTGGACCCTGGGAACAATCTGCCCATCTGAGGCTGGGGCCGTGTCCCGGCGGACTCCGGCTTTCCCTGGCCCCTCTCCTGCCCCCTCCGCCCTGCCCCGGGCGCCCCGATCGGGAGGCACAGCCCTCCCAGGCTGCCCACCGCACAGAAACCCAGGAAGCAAGGCCCTTTCCTGAGCGCCCAAGTGGCCTTCGGGTCACCCTCCCTCAAAGTTCCAGCCCCGAGAGCCGCCTCCCGTTTCCAGCCTGCAGGGTTGGGGAGCCTGTTTTCTTTTTCTTCCCTTTCCTTCTCTCTCCCTCCTGCCCCCAAAATTCAGAATCCTGCAGGCTCTCGCCTCGATTCTTTCCCCCAAGCCCCTTTTCGGGGGCTGTAATTAGTAACGCTGTTTCCCCAGCGTAGCCCTCCTCATAAATTATCCGCCGTGACAAGCCCGATTCACGGCTGCTACAGCCATCCTCTACCTCTCTGCGCCTTGCTCGGCTGGCCTGACCCGGGAGCGCGTCCCAAGGCGTGGGGTTCCAGAGGGGTTTTTTGCTTCCTCCCCCTTCCAACGTCTAAACTGTCCCAGAGAACGCCCATTTCCCCCACTATTTGTGAGCGCAGGGTGCTCGCAAAGAAGAGGAGGAAGGAGGAAGGCAGGGGAGGGAGAACGGCAAGGAGAGCTCCGCAGGGCTGGGAGAAATGAGACCAAGAGAGACTGGGAGAGGGCGGCAGAGAAGAGAGGGGGGACCGAGAGCCGCGTCCCCGCGGTCGCGTGGATTTAGAAAAAGGCTGGCTTTACCATGACTTATGTGCAGCTTGCGCATCCAGGGGTAGATCTGGGGTTGGGCGGGCGGCGCCGGGCTCGGCTCGCTCTGCGCACTCGCCTGCTCGCTGCTGGCAGGGGCGTCCTCCTCGGCTCCGGACGCCGTGCCAACCCCCTCTCTGCTGCTGATGTGGGTGCTGCCGGCGTCGGCCGAGGCGCCGCTGGAGTTGCTTAGGGAGTTTTTCCCGCCGTGGTGGCTGTCGCTGCCGGGCGAGGGGGCCACGGCGGAGCAGGGCAGCGGATCGGGCTGAGGAGAGTGCGTGGACGTGGCCGGCTGGCTGTACCTGGGCTCGGCGGGCGCCGCGCTGGCGCTGGCAGCGTAGCTGCGGGCGCGCTCTCCGGAGCCAAAGTGGCCGGAGCCCGAGCGGCCGACGCTGAGATCCATGCCATTGTAGCCGTAGCCGTACCTGCCGGAGTGCATGCTCGCCGAGTCCCTGAATTGCTCGCTCACGGAACTATGATCTCCATAATTATGCAACTGGTAGTCCGGGCCATTTGGATAGCGACCGCAAAATGAGTTTACAAAATAAGAGCTCATTTGTTTTTTGATATGTGTGCTTGATTTGTGGCTCGCGGTCGTTTGTGCGTCTATAGCACCCTTGCACAATTTATGATGAATTATGGAAATGACTGGGACATGTACTTGGTTCCCTCCTACGTAGGCACCCAAATATGGGGTACGACTTCGAATCACGTGCTTTTGTTGTCCAGTCGTAAATCCTGCCTGATGACCTCTAGAGGTAAACTCGTGCACTAATAGGGGAGTTGGGTGGAGGCGAGGGGGGTnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnAGTTGCCGCCGTTCAGCCGGACTCGAGCGCCACCCGCTGGAGGCAGGGCTCATCGCCCAGCTTCCGACCGGGGGCTGCAAGGGCCGGGGTCGAATTGAGGTTACAGCCCATTATGGCAAAATTATTGCATTTCCCTCGCAGTTCCATTAGGATGTACCAATTGTTAGGCCGTCAGCTGCCGATCGCGCGCCCGGCGAGGATGCAGAGGATTGGGGGGAGGTGGTGACTTGCATTTTATTTACAACAACTTTATTTCCCCCGTTTTGCAGCCCCTCTTATTTTTGTGTCGAGGTTGGGGTCGGTACTGACCGTCCTGCCAGCAGCTCTGAATTTTGAAAATACAGATATCACCTTCGGGGAAGGGGGAAAGCCATTTAGCCAATTGGAGAAATAAATCCTGCCCGCAGCAGCAGCAGCTACAATTACGGCTCTGTTTTTGCGAGCGCATGAGGGACAGTGTCCCTGCCGCTCTTAAATGACAGGCGTCTATTAAAGATAGCTTTTGTGTAGTGTTTCTCCAAGGCGAGGTCAAATTCCATACACTTTTATAACCGTAGTCGATTTTTCTTTCGTGTGAATATGGTTTTCGTGTCATTAGTTTGCGATTTGATTTGCTTACGTATCCAGCCTGGAAAATCTTCATCACAGGGTCCGGTTCCTCGAGCCAGCCGGGCCCCAAGTCGGAGGGTTCTCCTTGAACCCAGCGAGTGGGCCCAGGCTCCCTGCAGCCACAGAGGCTGCCTGGGGTCTGGGGATCCGTGGGGCGGGTTACTGGGGTCTTGCTTAGACCTCCAGGAGTAAAATGAGGGCGATAATGGAAGCATTCCTTGGCAGTGCCTAGTATCTCTGTAGTTATTTTCCACGGCTCCGAAAGACTCAAGTAAATCACAAATATAGCTGAGAGGCAAGTGGAGTCTCCCCGCTGGAGGCCCGGCGTTGCAGGCGCCCCTGGCACGTCTGGAAGCCAGGACTCTGGCGGCTCCCATGGCCCTGGGCCCCTCGTTGGGTCCTGAACGCTGCTGTGGCGGCGACGCGGGCGCTATCGGAGGCTGGGAGCGGGAATCCGGAGCCGGGAGCCTACCCCGGGCTGTAATGTTCCACCCGCGCCCAGGTTAACTCGCCTCGGCTGAGGCTGCTTCTCTTCCACTGACGGTTGCACACGCGGGACCGAGAGACTGGGCTCTGTTGGGGCCCCCTTTGTTCCTCGAGCTTCCTTCCTGTTCTGGGAGGCGGCTTGGGAGGCCGCGACAAGGCCGGGCTCCAGCTCTTAGACCCCCTCTTTCCACTGGCCAGAGATGATTTGATGATGCCCTTCGGGACTTACTGGCGAGGGACTTAGGCAGAGACGCCCAGACACGAAACGGGGCTCGGCCCAGGGCTCTTTCCTCCCCAGCAGCCCCGCGTCCCGAGGTCGGGGAGCTCAGAGACACTAGCACAGGAGCCCCAGACGCATTCAGGGCGCACCCCAGAACTCCGGAGCCGGTTTGGGCATCCTTGTGGAGCGGGACTGGGTGTGTGCAGTGCGCCCCGCTCCACCGCTGGTATTGGCTGTGTGTGAGnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnAAGAAATAAATGCACAGACGCTTGCAAAGCTCCGGGCTCCCCTGAAGCTGCGGAAGCCCCCAGATGGGAGCAGGCGGGGAGAAAAGTTGGGGAACAGGCGAGGGCAAGGGGGCAAAGCCGAAGGAGGTTGCAGCGCTGGCCTGGTCCCTGCCCAGGCATCTACTCGCCCGCCTTTGCCTCTGAGTCCTCCCCGCTGGGCTGCGTGGAATTGATGAGCTTGTTTTCCTTTTTCCACTTCATGCGGCGGTTCTGGAACCAGATCTTGATCTGGCGCTCGGTGAGGCAGAGCGCGTTGGCGATCTCGATGCGGCGGCGCCGTGTCAGGTAGCGGTTGAAGTGGAACTCCTTCTCCAGCTCCAGTGTCTG";
- Sequence seq(s, reduced_dna_alphabet);
- string a = "HumanHXA5\n"
-">hg18_knownGene_NM_019102_0\n"
-"GGGTGCTATAGACGCACAAACGACCGCGAGCCACAAATCAAGCACACATATCAAAAAACAAATGAGCTCTTATTTTGTAAACTCATTTTGCGGTCGCTATCCAAATGGCCCGGACTACCAGTTGCATAATTATGGAGATCATAGTTCCGTGAGCGAGCAATTCAGGGACTCGGCGAGCATGCACTCCGGCAGGTACGGCTACGGCTACAATGGCATGGATCTCAGCGTCGGCCGCTCGGGCTCCGGCCACTTTGGCTCCGGAGAGCGCGCCCGCAGCTACGCTGCCAGCGCCAGCGCGGCGCCCGCCGAGCCCAGGTACAGCCAGCCGGCCACGTCCACGCACTCTCCTCAGCCCGATCCGCTGCCCTGCTCCGCCGTGGCCCCCTCGCCCGGCAGCGACAGCCACCACGGCGGGAAAAACTCCCTAAGCAACTCCAGCGGCGCCTCGGCCGACGCCGGCAGCACCCACATCAGCAGCAGAGAGGGGGTTGGCACGGCGTCCGGAGCCGAGGAGGACGCCCCTGCCAGCAGCGAGCAGGCGAGTGCGCAGAGCGAGCCGAGCCCGGCGCCGCCCGCCCAACCCCAGATCTACCCCTGGATGCGCAAGCTGCACATAAGTCATG\n"
-"\n"
-">hg18_knownGene_NM_019102_1\n"
-"ACAACATAGGCGGCCCGGAAGGCAAAAGGGCCCGGACGGCCTACACGCGCTACCAGACCCTGGAGCTGGAGAAGGAGTTCCACTTCAACCGTTACCTGACCCGCAGAAGGAGGATTGAAATAGCACATGCTCTTTGCCTCTCCGAGAGACAAATTAAAATCTGGTTCCAAAACCGGAGAATGAAGTGGAAAAAAGATAATAAGCTGAAAAGCATGAGCATGGCCGCGGCAGGAGGGGCCTTCCGTCCCTGAGTATCTGAGCGTTTAAAGTACTGAGCAGTATTAGCGGATCCCGCGTAGTGTCAGTACTAAGGTGACTTTCTGAAACTCCCTTGTGTTCCTTCTGTGAAGAAGCCCTGTTCTCGTTGCCCTAATTCATCTTTTAATCATGAGCCTGTTTATTGCCATTATAGCGCCTGTATAAGTAGATCTGCTTTCTGTTCATCTCTTTGTCCTGAATGGCTTTGTCTTGAAAAAAAATAGATGTTTTAACTTATTTATATGAAGCAAGCTGTGTTACTTGAAGTAACTATAACAAAAAAAGAAAAGAGAAAAAAAAACACACAAAAAGTCCCCCTTCAATCTCGTTTAGTGCCAATGTTGTGTGTTGCACTCAAGTTGTTTAACTGTGCATGTGCGTGGAAGTGTTCCTGTCTCAATAGCTCCAAGCTGTTAAAGATATTTTTATTCAAACTACCTATATTCCTTGT\n";
- stringstream annot(a);
+ string s = "AATTACACAAGGAATATAGGTAGTTTGAATAAAAATATCTTTAACAGCTTGGAGCTATTGAGACAGGAACACTTCCACGCACATGCACAGTTAAACAACTTGAGTGCAACACACAACATTGGCACTAAACGAGATTGAAGGGGGACTTTTTGTGTGTTTTTTTTTCTCTTTTCTTTTTTTGTTATAGTTACTTCAAGTAACACAGCTTGCTTCATATAAATAAGTTAAAACATCTATTTTTTTTCAAGACAAAGCCATTCAGGACAAAGAGATGAACAGAAAGCAGATCTACTTATACAGGCGCTATAATGGCAATAAACAGGCTCATGATTAAAAGATGAATTAGGGCAACGAGAACAGGGCTTCTTCACAGAAGGAACACAAGGGAGTTTCAGAAAGTCACCTTAGTACTGACACTACGCGGGATCCGCTAATACTGCTCAGTACTTTAAACGCTCAGATACTCAGGGACGGAAGGCCCCTCCTGCCGCGGCCATGCTCATGCTTTTCAGCTTATTATCTTTTTTCCACTTCATTCTCCGGTTTTGGAACCAGATTTTAATTTGTCTCTCGGAGAGGCAAAGAGCATGTGCTATTTCAATCCTCCTTCTGCGGGTCAGGTAACGGTTGAAGTGGAACTCCTTCTCCAGCTCCAGGGTCTGGTAGCGCGTGTAGGCCGTCCGGGCCCTTTTGCCTTCCGGGCCGCCTATGTTGTCTGCAATAGAAAAGTCAGCGGTTTAGCCACCAACTCCTGTCTTCCAAAGTCCGCCAGGGGGACAAGCTTGGGTCATGAGCAGGGAACCCAGGCGAAAAGCTCAACAAGTTCTGCCTACCAGCCCGCACACCCCTCCCGAATTTCCTTCTCTCTTCCTTTCTAGAAAGAAAACAATACGATTTGGACCCTGGGAACAATCTGCCCATCTGAGGCTGGGGCCGTGTCCCGGCGGACTCCGGCTTTCCCTGGCCCCTCTCCTGCCCCCTCCGCCCTGCCCCGGGCGCCCCGATCGGGAGGCACAGCCCTCCCAGGCTGCCCACCGCACAGAAACCCAGGAAGCAAGGCCCTTTCCTGAGCGCCCAAGTGGCCTTCGGGTCACCCTCCCTCAAAGTTCCAGCCCCGAGAGCCGCCTCCCGTTTCCAGCCTGCAGGGTTGGGGAGCCTGTTTTCTTTTTCTTCCCTTTCCTTCTCTCTCCCTCCTGCCCCCAAAATTCAGAATCCTGCAGGCTCTCGCCTCGATTCTTTCCCCCAAGCCCCTTTTCGGGGGCTGTAATTAGTAACGCTGTTTCCCCAGCGTAGCCCTCCTCATAAATTATCCGCCGTGACAAGCCCGATTCACGGCTGCTACAGCCATCCTCTACCTCTCTGCGCCTTGCTCGGCTGGCCTGACCCGGGAGCGCGTCCCAAGGCGTGGGGTTCCAGAGGGGTTTTTTGCTTCCTCCCCCTTCCAACGTCTAAACTGTCCCAGAGAACGCCCATTTCCCCCACTATTTGTGAGCGCAGGGTGCTCGCAAAGAAGAGGAGGAAGGAGGAAGGCAGGGGAGGGAGAACGGCAAGGAGAGCTCCGCAGGGCTGGGAGAAATGAGACCAAGAGAGACTGGGAGAGGGCGGCAGAGAAGAGAGGGGGGACCGAGAGCCGCGTCCCCGCGGTCGCGTGGATTTAGAAAAAGGCTGGCTTTACCATGACTTATGTGCAGCTTGCGCATCCAGGGGTAGATCTGGGGTTGGGCGGGCGGCGCCGGGCTCGGCTCGCTCTGCGCACTCGCCTGCTCGCTGCTGGCAGGGGCGTCCTCCTCGGCTCCGGACGCCGTGCCAACCCCCTCTCTGCTGCTGATGTGGGTGCTGCCGGCGTCGGCCGAGGCGCCGCTGGAGTTGCTTAGGGAGTTTTTCCCGCCGTGGTGGCTGTCGCTGCCGGGCGAGGGGGCCACGGCGGAGCAGGGCAGCGGATCGGGCTGAGGAGAGTGCGTGGACGTGGCCGGCTGGCTGTACCTGGGCTCGGCGGGCGCCGCGCTGGCGCTGGCAGCGTAGCTGCGGGCGCGCTCTCCGGAGCCAAAGTGGCCGGAGCCCGAGCGGCCGACGCTGAGATCCATGCCATTGTAGCCGTAGCCGTACCTGCCGGAGTGCATGCTCGCCGAGTCCCTGAATTGCTCGCTCACGGAACTATGATCTCCATAATTATGCAACTGGTAGTCCGGGCCATTTGGATAGCGACCGCAAAATGAGTTTACAAAATAAGAGCTCATTTGTTTTTTGATATGTGTGCTTGATTTGTGGCTCGCGGTCGTTTGTGCGTCTATAGCACCCTT";
+ std::string species = "HumanHXA5\n";
+ std::string header0 = ">hg18_knownGene_NM_019102_0\n";
+ std::string str0 = "GGGTGCTATAGACGCACAAACGACCGCGAGCCACAAATCAAGCACACATATCAAAAAACAAATGAGCTCTTATTTTGTAAACTCATTTTGCGGTCGCTATCCAAATGGCCCGGACTACCAGTTGCATAATTATGGAGATCATAGTTCCGTGAGCGAGCAATTCAGGGACTCGGCGAGCATGCACTCCGGCAGGTACGGCTACGGCTACAATGGCATGGATCTCAGCGTCGGCCGCTCGGGCTCCGGCCACTTTGGCTCCGGAGAGCGCGCCCGCAGCTACGCTGCCAGCGCCAGCGCGGCGCCCGCCGAGCCCAGGTACAGCCAGCCGGCCACGTCCACGCACTCTCCTCAGCCCGATCCGCTGCCCTGCTCCGCCGTGGCCCCCTCGCCCGGCAGCGACAGCCACCACGGCGGGAAAAACTCCCTAAGCAACTCCAGCGGCGCCTCGGCCGACGCCGGCAGCACCCACATCAGCAGCAGAGAGGGGGTTGGCACGGCGTCCGGAGCCGAGGAGGACGCCCCTGCCAGCAGCGAGCAGGCGAGTGCGCAGAGCGAGCCGAGCCCGGCGCCGCCCGCCCAACCCCAGATCTACCCCTGGATGCGCAAGCTGCACATAAGTCATG";
+ std::string header1 = ">hg18_knownGene_NM_019102_1\n";
+ std::string str1 = "ACAACATAGGCGGCCCGGAAGGCAAAAGGGCCCGGACGGCCTACACGCGCTACCAGACCCTGGAGCTGGAGAAGGAGTTCCACTTCAACCGTTACCTGACCCGCAGAAGGAGGATTGAAATAGCACATGCTCTTTGCCTCTCCGAGAGACAAATTAAAATCTGGTTCCAAAACCGGAGAATGAAGTGGAAAAAAGATAATAAGCTGAAAAGCATGAGCATGGCCGCGGCAGGAGGGGCCTTCCGTCCCTGAGTATCTGAGCGTTTAAAGTACTGAGCAGTATTAGCGGATCCCGCGTAGTGTCAGTACTAAGGTGACTTTCTGAAACTCCCTTGTGTTCCTTCTGTGAAGAAGCCCTGTTCTCGTTGCCCTAATTCATCTTTTAATCATGAGCCTGTTTATTGCCATTATAGCGCCTGTATAAGTAGATCTGCTTTCTGTTCATCTCTTTGTCCTGAATGGCTTTGTCTTGAAAAAAAATAGATGTTTTAACTTATTTATATGAAGCAAGCTGTGTTACTTGAAGTAACTATAACAAAAAAAGAAAAGAGAAAAAAAAACACACAAAAAGTCCCCCTTCAATCTCGTTTAGTGCCAATGTTGTGTGTTGCACTCAAGTTGTTTAACTGTGCATGTGCGTGGAAGTGTTCCTGTCTCAATAGCTCCAAGCTGTTAAAGATATTTTTATTCAAACTACCTATATTCCTTGT";
+ stringstream annot;
+ annot << species
+ << header0
+ << str0 << std::endl
+ << std::endl
+ << header1
+ << str1;
+ // need to convert strings to sequences for reverse complementing
+ Sequence seq0(str0, reduced_dna_alphabet);
+ Sequence seq1(str1, reduced_dna_alphabet);
+
+ Sequence annotated_seq(s, reduced_dna_alphabet);
+ annotated_seq.load_annot(annot, 0, 0);
+
+ SeqSpanRefList annots_list = annotated_seq.annotations();
+ // both sequences were found
+ BOOST_REQUIRE_EQUAL( annots_list.size(), 2 );