text:
Cristiano Ronaldo Achieves Three Milestones With a Brace Against Cagliari in Serie A 2020-21 Match
Breaking records and creating new ones seems to be a regular job for Cristiano Ronaldo. In the last match against Cagliari at the Juventus Training Center, Cristiano Ronaldo once again splintered magic and scored a brace putting Juventus to a 2-0 victory in the weekend. With this, he scripted three major records and thus once again proved that he is still the best.
Football Dhairya Ingle| Nov 22, 2020 06:48 PM IST
Cristiano Ronaldo (Photo Credits: Twitter)
Breaking records and creating new ones seems to be a regular job for Cristiano Ronaldo. In the last match against Cagliari at the Juventus Training Center, Cristiano Ronaldo once again splintered magic and scored a brace putting Juventus to a 2-0 victory in the weekend. With this, he scripted three major records and thus once again proved that he is still the best. The first record was that he surpassed Ferenc Puskas's record of 746 career goals. With the brace, Ronaldo now has 748 goals. He had equalled Puskas' record during the friendly match against Andorra. Cristiano Ronaldo Equals Zlatan Ibrahimovic's Record of Eight Goals in the Season With a Brace Against Cagliari in Serie A 2020-21 (Watch Goal Highlights).
With this, Ronaldo is now on number four when it comes to overall goal scoring. Pele (767 goals), Romario (772), and Josef Bican (805) are the ones who are leading. The other record scripted by CR7 was that he became the first player in Serie A to have scored in first five matches. Also, the former Real Madrid player is the only to score 60 goals in 69 matches. No other player has scored so many goals in the history of the Italian league. Now, let's have a look at the goal highlights by CR7.
He has also equalled Zlatan Ibrahimovic with eight goals in the last five matches. With this, Juventus is now placed on number two of the Serie A 2020-21 points table with 16 points in their kitty. AC Milan is placed on number one with 17 points in their kitty.
CR7 Cristiano Ronaldo Juventus Ronaldo Serie A 2020-21 Zlatan Ibrahimovic
Cristiano Ronaldo Fans Brutally Troll Real Madrid for Crashing out of Copa Del Rey 2021, Los Blancos Loses to Alcoyano by 2-1
Cristiano Ronaldo vs Lionel Messi: Arthur Melo Picks His Favorite Between the Two Football Stalwarts
Cristiano Ronaldo Reacts to Juventus Winning Supercoppa Italiana Finals Against Napoli, Team Bianconeri Goes Berserk Celebrating Their BIG WIN (Watch Video)
Cristiano Ronaldo Nets 760th Goal During Juventus vs Napoli, Supercoppa Italiana, Netizens Hail CR7 as he Becomes Highest Goal-Scorer of All-Time (Check Reactions & Watch Video)


Kim Soo-hyun starts filming KBS "Producers"
The new KBS 2TV drama "Producers" started filming.
The drama is being filmed on the 6th floor of the KBS building in Yeouido.
"Producers" is a entertainment department based drama about the producers starring Kim Soo-hyun, Gong Hyo-jin, IU, Na Young-hee, Ye Ji-won, Park Hyuk-kwon, Kim Jong-kook, Seo Gi-cheol, Jo Yoon-hee and others.
The drama is written by Park Ji-eun and produced by Seo Soo-min-I from the entertainment department. The first episode is due on the 8th of May at 9PM.
"Kim Soo-hyun starts filming KBS "Producers""
Lee Joon-gi to star in MBC "Scholar Who Walks the Night"


The Deadeye Marksman is an enemy found during Blood Moons after the Eater of Worlds/Brain of Cthulhu has been defeated. Flesh Golems will also spawn Deadeye Marksmen whilst alive. Deadeye Marksmen will attempt to fire arrows at the player whilst standing still.
This page was last edited on 9 July 2018, at 18:49.


Varieties of Security Door Locks for Your House Security door locks may broadly differ from straightforward locksets to some more complicated keyless access and security sensors. The utilization of these door locks generally rely on the sort of security you will require mostly. The locksets are among the fundamental varieties of door locks because it merely incorporates the normal lock and doorknob which we make use of in our homes. Since the basic lockset is not enough, introducing a deadbolt may improve safety to the next stage. Although handy, spring door locksets just give a really minimum degree of protection because it is extremely vulnerable for lock picking. Typically, this sort of lockset has key entry on its exterior plus a push button procedure on its interior. This merely ensures that you can unlock the door by utilizing a key from your exterior and thrust the button to lock from the inside. Other styles of locksets use a key to gain access to both sides. As stated, deadbolts provide extra amount of stability. Unlike locksets, the deadbolts don't utilize springs but utilize manual procedure to work. The double cylinder deadlock uses a key to open and lock both sides as the single cylinder fashion needs a key for the exterior along with a knob on its exterior side. To be able to guarantee a great degree of protection, the products should be thick enough to prevent criminals from quick access.
Several homeowners often make use of a mixture of these security locks, for instance combining a deadbolt along with a lockset. Deadbolts are largely for added security while entry locking sets are significantly for display instead of safety. Nowadays, you can acquire this combination of safety door locks at any home security retailer where only one key is used to open both the deadbolt and entry lock set.


text:
Orlando Rising
Former SeaWorld interim CEO John Reilly leaving company after 34 years
After overseeing one of SeaWorld Entertainment's best years in recent memory, former interim CEO John Reilly is leaving, the company announced Tuesday.
After taking from CEO Joel Manby in February 2018, Reilly's tenure as interim CEO included 8.6 percent increases in both attendance and revenue. A net loss of more than $202 million in 2017 was flipped to net income of $44.8 million in 2018. It was the Orlando-based company's first 12-month period of positive financial results since the 2013 documentary "Blackfish" cast doubt on the park chain's treatment and use of captive killer whales.
Those results didn't earn Reilly the CEO title on a permanent basis. The company instead went with an outside hire, bringing in former Carnival Cruise executive Gus Antorcha in February.
"We thank John for his contributions during his 34-year tenure at SeaWorld and wish him the best going forward," Antorcha said in a press release. "We are encouraged by the new energy at the company and the results we are delivering by executing on our strategy of optimizing pricing, improving marketing and communications, introducing new guest experiences and driving capital and cost efficiencies. I am excited about the many opportunities we have to create meaningful additional value."
After Antorcha was hired, Reilly was named chief operating officer, with board chairman Yoshikazu Maruyama saying the two would work together "to drive operational excellence across the company."
The press release offered no explanation for Reilly's sudden departure. SeaWorld did not immediately respond to a request for additional comment.
Reilly's departure will end an association that dates back to his teenage years, when he got a job selling popcorn at Busch Gardens Williamsburg in Virginia. He later served stints as park president in Williamsburg and SeaWorld San Diego before becoming the parent company's chief parks operating officer in April 2016.
He'll get to witness one last big opening before he leaves on March 31, as SeaWorld Orlando will open its new Sesame Street area on March 27.
2018 was SeaWorld's comeback year
Elmo vs. Emmet: SeaWorld's Sesame Street opening same day as Lego Movie World
Can SeaWorld stay competitive in Central Florida?
Busch Gardens WilliamsburgGus AntorchaJohn ReillyOrlando theme parksSeaWorldSeaWorld EntertainmentSeaWorld Orlando
New film coming to Epcot's The Land pavilion
Universal moves up opening of I-Drive resort

redpajama_set_name: RedPajamaCommonCrawl


"Several years ago I discovered Art-Journaling for me - inspired by some Artist Trading Card Crafters in an internet-forum. In the meantime I experimented with many techniques and styles and found my own personal style by now.
I enjoy working intuitively - like it colorful and bright and sometimes I am into mystical climes on my pages. Next to the Art Journaling I paint Mixed Media Canvases - I like to use many mediums as acrylic paints , inks, sprays, oilpastels and recently watercolors as well. I love to try out new things and like to take new ideas and inspiration from other artists."
Vielen lieben Dank für all die erstaunlichen Beiträge zu unserem letzten Thema! Fabelhaft!
Ich bin vor einigen Jahren durch ein ATC - Forum zum Artjournaling gekommen.
Ich habe seitdem schon vieles ausprobiert und glaube, daß ich mittlerweile meinen eigenen Stil gefunden habe.
Ich mache gerne Dinge aus dem Bauch heraus und rein intuitiv, ich liebe es farbenfroh und auch mag ich gern mystisch Angehauchtes.
Nebenbei male ich gern Bilder, da bevorzuge ich wie beim Artjournaling den MixedMediaStyle, benutze gerne viele Medien wie Acrylfarben, Tinten, Sprays, Ölpastells und neuerdings auch Aquarellfarben.
Ich liebe es immer Neues auszuprobieren und lasse mich gerne durch andere Künstler inspirieren.
Ohh, thanks Jeannette for wonderful theme. We love to incorporate circles in our journals, don't we? I would be interested to create more than one journal page this month!
Wonderful theme, and I love your page Jeanette!
Great choice of theme, Jeannette! And your page is so stunning!
Looking forward to joining in again this month.
Oh, wow, Jeannette, thanks for a great theme and a lovely sample, we'll be seeing lots of circles this month, I'm sure.
Thanks Susi for the Pinterest gallery, that's a super way of showing all the artwork and we can link over to the actual blog sites too which is good.
Das ist eine wunderschöne Seite von Jenny. Tolles Thema hat sie sich ausgesucht.
Jetzt hüpfe ich noch in die Gallery. Danke dafür.
Ein wundervolles Thema mit so vielen Möglichkeiten! Herzlichen Dank liebe Jenny! Und ganz lieben Dank, dir liebe Susi für "Art-Journal-Journey"!
Great theme and fantastic page, Jeannette.
Thank you for the great theme Jeannette and your inspiration page is wonderful too!
I like the retro feel of the Jeannette's page. This was the perfect theme for me to convey the energy in my latest trip. Blessings!
I love this circles theme, thanks Jeanette, your piece is very stylish, I love it!
Ein tolles Thema und die Beispielseite von Jeanette gefällt mir sehr gut.
ich freu mich, dass euere challenge so einen zuspruch hat. ich bin jetzt nr 70 und dabei ist der monat noch nicht halb rum! auch das thema ist klasse, vielleicht schaffe ich ja noch einen eintrag.
Great theme Jeannette, & a very popular one! I love your page, you have a great style!
A super theme and a fabulous page.


Why Edo Guber Elections Was Postponed – INEC.
In a press statement made available to journalists in Benin City, the National Commissioner in charge of voters Education and Publicity, Soyebi Solomon said the decision to postpone the election was reached at a security meeting held with security agencies on Thursday evening.
He noted that the commission has successfully implemented 12 out of 14 conditions set for a successful election but however received official communication from the police and DSS drawing their attention on the need to postpone the election.
ALSO READ: BASKETMOUTH FINALLY OPENS UP ON ROBBERY, SEE!
He said, "However at about 6pm today the commission Received official communication from the police and DSS drawing it's attention to the need to postpone the Edo governorship elections. Such postponement the communication indicates is necessary in view of threats of terrorists activities in Edo State and other states of the federation during the election and over the Sallah period.
"The deployment of security personnel country wide to secure lives and property would over stretched their capacity to at the same time provide adequate security for the election.
"Consequently the commission notes the request of the security agencies and considering the security implications of proceeding with the election the safety of Eligable voters, electoral officials, including ad-hoc staff and other stakeholders has decided to reschedule the Edo governorship elections to Wednesday 28 September 2016.
ALSO READ: CNN Calls African Basketball League a Change Maker, See!


Water is considered 'hard' when it has excessive levels of calcium & magnesium dissolved in it. Water softening plant is used for removal of total hardness dissolved in water. Softening is an ion- exchange process, which is done through resin, is preferred over other plants. As it is one of the best possible method for removing from water. The sodium ions are turned down from the resin. This is the service cycle. Where the hard water is being softened in this plant.


Happy birthday to Jakarta Good Guide for 2nd years anniversary. And being Good Guide For Jakarta Walking Tour, they have their own way to celebrate. That is to guide us tourists to walk from Bogor train station to Bogor Botanical Garden. And at the end of the walking tour, all of us would have a picnic there at Bogor Botanical Garden. Since this is still a-pay-as-you-wish-tour, participants of this celebration encouraged to bring our own meal for picnic. It will be better if we bring more to be shared to others.
I was informed that there are two meeting points. One at Kota train station, and I have to be there around 07.00 A.M but if I go to the other meeting point at Bogor train station, the meeting time scheduled at 08.30 A.M. I chose to go to Bogor directly because I wouldn't make it to Bogor on time if I have to be at Kota station first.
Admission fee to enter Bogor Botanical Garden is IDR 15,000.00 per person for local tourist. And for foreigner, the admission fee is IDR 25,000.00 per person. They also remind us to bring umbrella because Bogor known as city of rain. Even we pray so the rain won't be pouring down on us but we will never gonna know so umbrella is a must bring item. If you wish to try to be on the spot model, then by all means bring all those hat, sunglasses, jacket and whatsoever. Plus, bring plastic also a must so we won't leave any junks behind.
So, early in the morning on 10th of September I went to Manggarai train station to catch train to Bogor. I got the train almost 07.00 A.M and finally arrive at Bogor train station around 08.00 A.M. It was another long weekend because Idul Adha celebration on 12th of September so the station a bit crowded. I hurriedly find the meeting point near Dunkin Donuts but then decided to charge my handphone first. Yeah, we would be walking at the least until 12.00 P.M so I have to ensure my gadget is fully energized.
Then almost 09.00 A.M, all the participants are gathered around near Dunkin Donuts at Bogor train station. We were divided into several groups, and my group's tour guide is Ms.Rita. She asked us (14 people including me) to gather around and she explain the route. We will be passing Taman Topi, Catholic Church – the church of Virgin Mary, then old building now become city hall of Bogor. After that we will see Hotel Salak, deer watching, Protestant church Zebaoth and finally Presidential palace (take a peek from a far inside Botanical Garden) and have a picnic together at Botanical Garden. Rita said that there will be prizes for those who update the picnic to twitter and instagram with using hashtag : #jktgoodguide and #jakartawalkingtour .
When we arrived at Bogor Botanical Garden heavy cloud is upon us. Then when we were about to see the giant flower (unfortunately still not blossoming) Rafflesia arnoldii…the rain pouring down on us like crazy. I hurriedly, hide my camera and trying hard to find my umbrella. Hidden somewhere at the bottom of my backpack. So, there I was. Trying to keep up the pace with our tour guide while keep on updating under the umbrella, hide from the splashing rain. Lucky after about 10 minutes, the rain decided to stop. We passed this small path under so many bamboo trees. It was a bit eerie, until I saw this old graveyard. Again, I will tell you about this on separate post. Was it haunted? I have no idea because I have been to Botanical Garden a few times but have no idea there is this old graveyard. Probably is, because our tour guide said we wouldn't be taking photos here. Usually, we took photos together on every stops for remembrance. But not in here, so you better take a wild guess.
Candha Adwitiyo, one of the tour guides open the birthday celebration by sharing with us that their actual birthday is on 14th of September. How they started can be read here at my previous posting. The founder Farid Mardhiyanto is in Colombia right now, receiving scholarship to learn Spanish. And they also announced that today 10th of September, they are launching Jogja Good Guide. The tour guide are from Jogja so not Jakartan people. Because only local can tell stories about their own city, don't you think so? They have nasi tumpeng for the ceremony and shared with us… Only small portion, because there are so many of us.
Seruuu banget ih. Apalagi konsep piknik di KBB jadi acaranya berasa kekeluargaan sekali.
Saya belum berhasil nih ikutan Jakarta Good Guide. Insya Allah awal Oktober nanti sudah bikin agenda ikutan tournya. Moga gak ada halangan. Makin keren yaa Jakarta Good Guide.
Saya paling suka acara jalan-jalan bareng gini. Apalagi saya suusah foto sendiri. Harus berame-rame foto baru asyik. Happy 2nd anniversarry Jakarta Good Guide!!!
Wow! Happy 2nd Anniv Jakarta Good Guide!
Happy 2nd Anniversary, Jakarta Good Guide. Sukses selalu ya!


>>>>> What exactly do you mean by "none actually show up"?
>>>>> with an X icon and can not be played?
>>>> There are no recordings listed.
>> RemoteGetRecordingList(): list size appears to be incorrect.
>> the frontend has nothing to show.
>> than scrubbing the data every single time we read from the database.
that your hostname will be used, not overridden from config.xml.
Expect to see then on every startup of the BE/FE.
should match the output of the GetHostName.
recordings (which we know fails) and then exit the frontend.
Copy from that line to the end of the file and put in in pastebin.com.
in the log that will help. We may want to repeat this for mythbackend.log.


text:
package org.yeastrc.proxl.import_xml_to_db.process_input;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.slf4j.LoggerFactory;import org.slf4j.Logger;
import org.yeastrc.proxl.import_xml_to_db.objects.SearchProgramEntry;
import org.yeastrc.proxl_import.api.xml_dto.DescriptivePeptideAnnotationType;
import org.yeastrc.proxl_import.api.xml_dto.DescriptivePeptideAnnotationTypes;
import org.yeastrc.proxl_import.api.xml_dto.DescriptivePsmAnnotationType;
import org.yeastrc.proxl_import.api.xml_dto.DescriptivePsmAnnotationTypes;
import org.yeastrc.proxl_import.api.xml_dto.DescriptivePsmPerPeptideAnnotationType;
import org.yeastrc.proxl_import.api.xml_dto.DescriptivePsmPerPeptideAnnotationTypes;
import org.yeastrc.proxl_import.api.xml_dto.FilterablePeptideAnnotationType;
import org.yeastrc.proxl_import.api.xml_dto.FilterablePeptideAnnotationTypes;
import org.yeastrc.proxl_import.api.xml_dto.FilterablePsmAnnotationType;
import org.yeastrc.proxl_import.api.xml_dto.FilterablePsmAnnotationTypes;
import org.yeastrc.proxl_import.api.xml_dto.FilterablePsmPerPeptideAnnotationType;
import org.yeastrc.proxl_import.api.xml_dto.FilterablePsmPerPeptideAnnotationTypes;
import org.yeastrc.proxl_import.api.xml_dto.ProxlInput;
import org.yeastrc.proxl_import.api.xml_dto.SearchAnnotation;
import org.yeastrc.proxl_import.api.xml_dto.SearchProgram;
import org.yeastrc.proxl_import.api.xml_dto.SearchProgramInfo;
import org.yeastrc.proxl_import.api.xml_dto.SearchPrograms;
import org.yeastrc.xlink.dao.AnnotationTypeDAO;
import org.yeastrc.xlink.dao.SearchProgramsPerSearchDAO;
import org.yeastrc.xlink.dto.AnnotationTypeDTO;
import org.yeastrc.xlink.dto.AnnotationTypeFilterableDTO;
import org.yeastrc.xlink.dto.SearchProgramsPerSearchDTO;
import org.yeastrc.xlink.enum_classes.FilterDirectionType;
import org.yeastrc.xlink.enum_classes.FilterableDescriptiveAnnotationType;
import org.yeastrc.xlink.enum_classes.PsmPeptideAnnotationType;

/**
 * Process <search_programs> entries and their children
 * Insert them into the database and return a Map of Maps to go from names to IDs
 *
 */
public class ProcessSearchProgramEntries {

	private static final Logger log = LoggerFactory.getLogger(  ProcessSearchProgramEntries.class );
	/**
	 * private constructor
	 */
	private ProcessSearchProgramEntries(){}
	public static ProcessSearchProgramEntries getInstance() {
		return new ProcessSearchProgramEntries();
	}

	/**
	 * @param proxlInput
	 * @param searchId
	 * @return
	 * @throws Exception
	 */
	public Map<String, SearchProgramEntry> processSearchProgramEntries( ProxlInput proxlInput, int searchId ) throws Exception {

		Map<String, SearchProgramEntry> searchProgramEntryMap = new HashMap<>();
		SearchProgramInfo searchProgramInfo = proxlInput.getSearchProgramInfo();
		SearchPrograms proxlInputSearchPrograms = searchProgramInfo.getSearchPrograms();
		List<SearchProgram> searchProgramList =
				proxlInputSearchPrograms.getSearchProgram();
		for ( SearchProgram searchProgram : searchProgramList ) {
			searchProgram.getName();
			SearchProgramsPerSearchDTO searchProgramsPerSearchDTO = new SearchProgramsPerSearchDTO();
			searchProgramsPerSearchDTO.setSearchId( searchId );
			searchProgramsPerSearchDTO.setName( searchProgram.getName() );
			searchProgramsPerSearchDTO.setDisplayName( searchProgram.getDisplayName() );
			searchProgramsPerSearchDTO.setVersion( searchProgram.getVersion() );
			searchProgramsPerSearchDTO.setDescription( searchProgram.getDescription() );
			SearchProgramsPerSearchDAO.getInstance().save( searchProgramsPerSearchDTO );
			SearchProgramEntry searchProgramEntry = new SearchProgramEntry();
			searchProgramEntry.setSearchProgramsPerSearchDTO( searchProgramsPerSearchDTO );
			searchProgramEntryMap.put( searchProgramsPerSearchDTO.getName(), searchProgramEntry );
			processReportedPeptideAnnotationTypes( searchProgram, searchProgramEntry, searchProgramsPerSearchDTO.getId(), searchId, searchProgramInfo );
			processPsmAnnotationTypes( searchProgram, searchProgramEntry, searchProgramsPerSearchDTO.getId(), searchId, searchProgramInfo );
			processPsmPerPeptideAnnotationTypes( searchProgram, searchProgramEntry, searchProgramsPerSearchDTO.getId(), searchId, searchProgramInfo );
		}
		return searchProgramEntryMap;
	}

	/**
	 * @param searchProgram
	 * @param searchProgramEntry
	 * @param searchProgramId
	 * @throws Exception
	 */
	private void processReportedPeptideAnnotationTypes( SearchProgram searchProgram, SearchProgramEntry searchProgramEntry, int searchProgramId, int searchId, SearchProgramInfo searchProgramInfo ) throws Exception {
		processFilterableReportedPeptideAnnotationTypes( searchProgram, searchProgramEntry, searchProgramId, searchId, searchProgramInfo );
		processDescriptiveReportedPeptideAnnotationTypes( searchProgram, searchProgramEntry, searchProgramId, searchId, searchProgramInfo );
	}

	/**
	 * @param searchProgram
	 * @param searchProgramEntry
	 * @param searchProgramId
	 * @throws Exception
	 */
	private void processFilterableReportedPeptideAnnotationTypes( SearchProgram searchProgram, SearchProgramEntry searchProgramEntry, int searchProgramId, int searchId, SearchProgramInfo searchProgramInfo ) throws Exception {

		Map<String, AnnotationTypeDTO> reportedPeptideAnnotationTypeDTOMap =
				searchProgramEntry.getReportedPeptideAnnotationTypeDTOMap();
		if ( reportedPeptideAnnotationTypeDTOMap == null ) {
			reportedPeptideAnnotationTypeDTOMap = new HashMap<>();
			searchProgramEntry.setReportedPeptideAnnotationTypeDTOMap( reportedPeptideAnnotationTypeDTOMap );
		}
		String searchProgramName = searchProgram.getName();
		List<SearchAnnotation> reportedPeptideAnnotationSortOrderSearchAnnotationList = null;
		List<SearchAnnotation> visibleReportedPeptideDefaultVisibleAnnotationsSearchAnnotationList = null;
		if ( searchProgramInfo != null
				&& searchProgramInfo.getAnnotationSortOrder() != null
				&& searchProgramInfo.getAnnotationSortOrder().getReportedPeptideAnnotationSortOrder() != null
				&& searchProgramInfo.getAnnotationSortOrder().getReportedPeptideAnnotationSortOrder().getSearchAnnotation() != null ) {
			reportedPeptideAnnotationSortOrderSearchAnnotationList =
					searchProgramInfo.getAnnotationSortOrder().getReportedPeptideAnnotationSortOrder().getSearchAnnotation();
		}
		if ( searchProgramInfo != null
				&& searchProgramInfo.getDefaultVisibleAnnotations() != null
				&& searchProgramInfo.getDefaultVisibleAnnotations().getVisibleReportedPeptideAnnotations() != null
				&& searchProgramInfo.getDefaultVisibleAnnotations().getVisibleReportedPeptideAnnotations().getSearchAnnotation() != null ) {
			visibleReportedPeptideDefaultVisibleAnnotationsSearchAnnotationList =
					searchProgramInfo.getDefaultVisibleAnnotations().getVisibleReportedPeptideAnnotations().getSearchAnnotation();
		}
		SearchProgram.ReportedPeptideAnnotationTypes reportedPeptideAnnotationTypes =
				searchProgram.getReportedPeptideAnnotationTypes();
		if ( reportedPeptideAnnotationTypes == null ) {
			if ( log.isInfoEnabled() ) {
				String msg = "No Reported Peptide Annotation Types for search program name: " + searchProgram.getName();
				log.info(msg);
			}
			return;
		}
		FilterablePeptideAnnotationTypes filterablePeptideAnnotationTypes =
				reportedPeptideAnnotationTypes.getFilterablePeptideAnnotationTypes();
		if ( filterablePeptideAnnotationTypes == null ) {
			if ( log.isInfoEnabled() ) {
				String msg = "No Reported Peptide Filterable Annotation Types for search program name: " + searchProgram.getName();
				log.info(msg);
			}
			return;
		}
		List<FilterablePeptideAnnotationType> filterablePeptideAnnotationTypeList =
				filterablePeptideAnnotationTypes.getFilterablePeptideAnnotationType();
		if ( filterablePeptideAnnotationTypeList == null ) {
			if ( log.isInfoEnabled() ) {
				String msg = "No Reported Peptide Filterable Annotation Types for search program name: " + searchProgram.getName();
				log.info(msg);
			}
			return;
		}
		AnnotationTypeDAO annotationTypeDAO =
				AnnotationTypeDAO.getInstance();
		for ( FilterablePeptideAnnotationType filterablePeptideAnnotationType : filterablePeptideAnnotationTypeList ) {
			String annotationTypeName = filterablePeptideAnnotationType.getName();
			Integer annotationTypeSortOrder = getAnnotationTypeSortOrder( annotationTypeName, searchProgramName, reportedPeptideAnnotationSortOrderSearchAnnotationList );
			boolean annotationTypeDefaultVisible = getAnnotationTypeDefaultVisible( annotationTypeName, searchProgramName, visibleReportedPeptideDefaultVisibleAnnotationsSearchAnnotationList );
			Integer annotationTypeDisplayOrder = getAnnotationTypeDisplayOrder( annotationTypeName, searchProgramName, visibleReportedPeptideDefaultVisibleAnnotationsSearchAnnotationList );
			AnnotationTypeDTO item = new AnnotationTypeDTO();
			item.setFilterableDescriptiveAnnotationType( FilterableDescriptiveAnnotationType.FILTERABLE );
			item.setPsmPeptideAnnotationType( PsmPeptideAnnotationType.PEPTIDE );
			AnnotationTypeFilterableDTO annotationTypeFilterableDTO = new AnnotationTypeFilterableDTO();
			item.setAnnotationTypeFilterableDTO( annotationTypeFilterableDTO );
			item.setSearchId( searchId );
			item.setSearchProgramsPerSearchId( searchProgramId );
			item.setName( annotationTypeName );
			String filterDirectionString = filterablePeptideAnnotationType.getFilterDirection().value();
			FilterDirectionType filterDirectionType = FilterDirectionType.fromValue(filterDirectionString);
			annotationTypeFilterableDTO.setFilterDirectionType( filterDirectionType );
			annotationTypeFilterableDTO.setDefaultFilter( filterablePeptideAnnotationType.isDefaultFilter() );
			annotationTypeFilterableDTO.setDefaultFilterAtDatabaseLoad( filterablePeptideAnnotationType.isDefaultFilter() );
			BigDecimal defaultFilterValue = filterablePeptideAnnotationType.getDefaultFilterValue();
			if ( defaultFilterValue != null ) {
				annotationTypeFilterableDTO.setDefaultFilterValue( defaultFilterValue.doubleValue() );
				annotationTypeFilterableDTO.setDefaultFilterValueString( defaultFilterValue.toString() );
				annotationTypeFilterableDTO.setDefaultFilterValueAtDatabaseLoad( defaultFilterValue.doubleValue() );
				annotationTypeFilterableDTO.setDefaultFilterValueStringAtDatabaseLoad( defaultFilterValue.toString() );
			}
			annotationTypeFilterableDTO.setSortOrder( annotationTypeSortOrder );
			item.setDefaultVisible( annotationTypeDefaultVisible );
			item.setDisplayOrder( annotationTypeDisplayOrder );
			item.setDescription( filterablePeptideAnnotationType.getDescription() );
			annotationTypeDAO.saveToDatabase( item );
			reportedPeptideAnnotationTypeDTOMap.put( item.getName(), item );
		}
	}

	/**
	 * @param searchProgram
	 * @param searchProgramEntry
	 * @param searchProgramId
	 * @param filterDirectionStringIdMap
	 * @throws Exception
	 */
	private void processDescriptiveReportedPeptideAnnotationTypes( SearchProgram searchProgram, SearchProgramEntry searchProgramEntry, int searchProgramId, int searchId, SearchProgramInfo searchProgramInfo ) throws Exception {

		Map<String, AnnotationTypeDTO> reportedPeptideAnnotationTypeDTOMap =
				searchProgramEntry.getReportedPeptideAnnotationTypeDTOMap();
		if ( reportedPeptideAnnotationTypeDTOMap == null ) {
			reportedPeptideAnnotationTypeDTOMap = new HashMap<>();
			searchProgramEntry.setReportedPeptideAnnotationTypeDTOMap( reportedPeptideAnnotationTypeDTOMap );
		}
		String searchProgramName = searchProgram.getName();
		List<SearchAnnotation> visibleReportedPeptideDefaultVisibleAnnotationsSearchAnnotationList = null;
		if ( searchProgramInfo != null
				&& searchProgramInfo.getDefaultVisibleAnnotations() != null
				&& searchProgramInfo.getDefaultVisibleAnnotations().getVisibleReportedPeptideAnnotations() != null
				&& searchProgramInfo.getDefaultVisibleAnnotations().getVisibleReportedPeptideAnnotations().getSearchAnnotation() != null ) {
			visibleReportedPeptideDefaultVisibleAnnotationsSearchAnnotationList =
					searchProgramInfo.getDefaultVisibleAnnotations().getVisibleReportedPeptideAnnotations().getSearchAnnotation();
		}
		SearchProgram.ReportedPeptideAnnotationTypes reportedPeptideAnnotationTypes =
				searchProgram.getReportedPeptideAnnotationTypes();
		if ( reportedPeptideAnnotationTypes == null ) {
			if ( log.isInfoEnabled() ) {
				String msg = "No Reported Peptide Annotation Types for search program name: " + searchProgram.getName();
				log.info(msg);
			}
			return;
		}
		DescriptivePeptideAnnotationTypes descriptivePeptideAnnotationTypes =
				reportedPeptideAnnotationTypes.getDescriptivePeptideAnnotationTypes();
		if ( descriptivePeptideAnnotationTypes == null ) {
			if ( log.isInfoEnabled() ) {
				String msg = "No Reported Peptide Descriptive Annotation Types for search program name: " + searchProgram.getName();
				log.info(msg);
			}
			return;
		}
		List<DescriptivePeptideAnnotationType> descriptivePeptideAnnotationTypeList =
				descriptivePeptideAnnotationTypes.getDescriptivePeptideAnnotationType();
		if ( descriptivePeptideAnnotationTypeList == null ) {
			if ( log.isInfoEnabled() ) {
				String msg = "No Reported Peptide Descriptive Annotation Types for search program name: " + searchProgram.getName();
				log.info(msg);
			}
			return;
		}
		AnnotationTypeDAO srchPgmDescriptiveReportedPeptideAnnotationTypeDAO =
				AnnotationTypeDAO.getInstance();
		for ( DescriptivePeptideAnnotationType descriptivePeptideAnnotationType : descriptivePeptideAnnotationTypeList ) {
			String annotationTypeName = descriptivePeptideAnnotationType.getName();
			boolean annotationTypeDefaultVisible = getAnnotationTypeDefaultVisible( annotationTypeName, searchProgramName, visibleReportedPeptideDefaultVisibleAnnotationsSearchAnnotationList );
			Integer annotationTypeDisplayOrder = getAnnotationTypeDisplayOrder( annotationTypeName, searchProgramName, visibleReportedPeptideDefaultVisibleAnnotationsSearchAnnotationList );
			AnnotationTypeDTO item = new AnnotationTypeDTO();
			item.setPsmPeptideAnnotationType( PsmPeptideAnnotationType.PEPTIDE );
			item.setFilterableDescriptiveAnnotationType( FilterableDescriptiveAnnotationType.DESCRIPTIVE );
			item.setSearchId( searchId );
			item.setSearchProgramsPerSearchId( searchProgramId );
			item.setName( descriptivePeptideAnnotationType.getName() );
			item.setDefaultVisible(annotationTypeDefaultVisible);
			item.setDisplayOrder( annotationTypeDisplayOrder );
			item.setDescription( descriptivePeptideAnnotationType.getDescription() );
			srchPgmDescriptiveReportedPeptideAnnotationTypeDAO.saveToDatabase( item );
			reportedPeptideAnnotationTypeDTOMap.put( item.getName(), item );
		}
	}

	/**
	 * @param searchProgram
	 * @param searchProgramEntry
	 * @param searchProgramId
	 * @throws Exception
	 */
	private void processPsmAnnotationTypes( SearchProgram searchProgram, SearchProgramEntry searchProgramEntry, int searchProgramId, int searchId, SearchProgramInfo searchProgramInfo ) throws Exception {
		processFilterablePsmAnnotationTypes( searchProgram, searchProgramEntry, searchProgramId, searchId, searchProgramInfo );
		processDescriptivePsmAnnotationTypes( searchProgram, searchProgramEntry, searchProgramId, searchId, searchProgramInfo );
	}

	/**
	 * @param searchProgram
	 * @param searchProgramEntry
	 * @param searchProgramId
	 * @param searchProgramInfo
	 * @throws Exception
	 */
	private void processFilterablePsmAnnotationTypes( SearchProgram searchProgram, SearchProgramEntry searchProgramEntry, int searchProgramId, int searchId, SearchProgramInfo searchProgramInfo ) throws Exception {

		Map<String, AnnotationTypeDTO> psmAnnotationTypeDTOMap =
				searchProgramEntry.getPsmAnnotationTypeDTOMap();
		if ( psmAnnotationTypeDTOMap == null ) {
			psmAnnotationTypeDTOMap = new HashMap<>();
			searchProgramEntry.setPsmAnnotationTypeDTOMap( psmAnnotationTypeDTOMap );
		}
		String searchProgramName = searchProgram.getName();
		List<SearchAnnotation> psmAnnotationSortOrderSearchAnnotationList = null;
		List<SearchAnnotation> visiblePsmDefaultVisibleAnnotationsSearchAnnotationList = null;
		if ( searchProgramInfo != null
				&& searchProgramInfo.getAnnotationSortOrder() != null
				&& searchProgramInfo.getAnnotationSortOrder().getPsmAnnotationSortOrder() != null
				&& searchProgramInfo.getAnnotationSortOrder().getPsmAnnotationSortOrder().getSearchAnnotation() != null ) {
			psmAnnotationSortOrderSearchAnnotationList =
					searchProgramInfo.getAnnotationSortOrder().getPsmAnnotationSortOrder().getSearchAnnotation();
		}
		if ( searchProgramInfo != null
				&& searchProgramInfo.getDefaultVisibleAnnotations() != null
				&& searchProgramInfo.getDefaultVisibleAnnotations().getVisiblePsmAnnotations() != null
				&& searchProgramInfo.getDefaultVisibleAnnotations().getVisiblePsmAnnotations().getSearchAnnotation() != null ) {
			visiblePsmDefaultVisibleAnnotationsSearchAnnotationList =
					searchProgramInfo.getDefaultVisibleAnnotations().getVisiblePsmAnnotations().getSearchAnnotation();
		}
		SearchProgram.PsmAnnotationTypes psmAnnotationTypes =
				searchProgram.getPsmAnnotationTypes();
		FilterablePsmAnnotationTypes filterablePsmAnnotationTypes =
				psmAnnotationTypes.getFilterablePsmAnnotationTypes();
		List<FilterablePsmAnnotationType> filterablePsmAnnotationTypeList =
				filterablePsmAnnotationTypes.getFilterablePsmAnnotationType();
		AnnotationTypeDAO srchPgmFilterablePsmAnnotationTypeDAO =
				AnnotationTypeDAO.getInstance();
		for ( FilterablePsmAnnotationType filterablePsmAnnotationType : filterablePsmAnnotationTypeList ) {
			String annotationTypeName = filterablePsmAnnotationType.getName();
			Integer annotationTypeSortOrder = getAnnotationTypeSortOrder( annotationTypeName, searchProgramName, psmAnnotationSortOrderSearchAnnotationList );
			boolean annotationTypeDefaultVisible = getAnnotationTypeDefaultVisible( annotationTypeName, searchProgramName, visiblePsmDefaultVisibleAnnotationsSearchAnnotationList );
			Integer annotationTypeDisplayOrder = getAnnotationTypeDisplayOrder( annotationTypeName, searchProgramName, visiblePsmDefaultVisibleAnnotationsSearchAnnotationList );
			AnnotationTypeDTO item = new AnnotationTypeDTO();
			AnnotationTypeFilterableDTO annotationTypeFilterableDTO = new AnnotationTypeFilterableDTO();
			item.setAnnotationTypeFilterableDTO( annotationTypeFilterableDTO );
			item.setPsmPeptideAnnotationType( PsmPeptideAnnotationType.PSM );
			item.setFilterableDescriptiveAnnotationType( FilterableDescriptiveAnnotationType.FILTERABLE );
			item.setSearchId( searchId );
			item.setSearchProgramsPerSearchId( searchProgramId );
			item.setName( filterablePsmAnnotationType.getName() );
			String filterDirectionString = filterablePsmAnnotationType.getFilterDirection().value();
			FilterDirectionType filterDirectionType = FilterDirectionType.fromValue( filterDirectionString );
			annotationTypeFilterableDTO.setFilterDirectionType( filterDirectionType );
			if ( filterablePsmAnnotationType.isDefaultFilter() != null ) {
				annotationTypeFilterableDTO.setDefaultFilter( filterablePsmAnnotationType.isDefaultFilter().booleanValue() );
			}
			if ( filterablePsmAnnotationType.isDefaultFilter() != null ) {
				annotationTypeFilterableDTO.setDefaultFilterAtDatabaseLoad( filterablePsmAnnotationType.isDefaultFilter().booleanValue() );
			}
			BigDecimal defaultFilterValue = filterablePsmAnnotationType.getDefaultFilterValue();
			if ( defaultFilterValue != null ) {
				annotationTypeFilterableDTO.setDefaultFilterValue( defaultFilterValue.doubleValue() );
				annotationTypeFilterableDTO.setDefaultFilterValueString( defaultFilterValue.toString() );
				annotationTypeFilterableDTO.setDefaultFilterValueAtDatabaseLoad( defaultFilterValue.doubleValue() );
				annotationTypeFilterableDTO.setDefaultFilterValueStringAtDatabaseLoad( defaultFilterValue.toString() );
			}
			annotationTypeFilterableDTO.setSortOrder( annotationTypeSortOrder );
			item.setDefaultVisible( annotationTypeDefaultVisible );
			item.setDisplayOrder( annotationTypeDisplayOrder );
			item.setDescription( filterablePsmAnnotationType.getDescription() );
			srchPgmFilterablePsmAnnotationTypeDAO.saveToDatabase( item );
			psmAnnotationTypeDTOMap.put( item.getName(), item );
		}
	}

	/**
	 * @param searchProgram
	 * @param searchProgramEntry
	 * @param searchProgramId
	 * @param filterDirectionStringIdMap
	 * @throws Exception
	 */
	private void processDescriptivePsmAnnotationTypes( SearchProgram searchProgram, SearchProgramEntry searchProgramEntry, int searchProgramId, int searchId, SearchProgramInfo searchProgramInfo ) throws Exception {

		Map<String, AnnotationTypeDTO> psmAnnotationTypeDTOMap =
				searchProgramEntry.getPsmAnnotationTypeDTOMap();
		if ( psmAnnotationTypeDTOMap == null ) {
			psmAnnotationTypeDTOMap = new HashMap<>();
			searchProgramEntry.setPsmAnnotationTypeDTOMap( psmAnnotationTypeDTOMap );
		}
		String searchProgramName = searchProgram.getName();
		List<SearchAnnotation> visiblePsmDefaultVisibleAnnotationsSearchAnnotationList = null;
		if ( searchProgramInfo != null
				&& searchProgramInfo.getDefaultVisibleAnnotations() != null
				&& searchProgramInfo.getDefaultVisibleAnnotations().getVisiblePsmAnnotations() != null
				&& searchProgramInfo.getDefaultVisibleAnnotations().getVisiblePsmAnnotations().getSearchAnnotation() != null ) {
			visiblePsmDefaultVisibleAnnotationsSearchAnnotationList =
					searchProgramInfo.getDefaultVisibleAnnotations().getVisiblePsmAnnotations().getSearchAnnotation();
		}
		SearchProgram.PsmAnnotationTypes psmAnnotationTypes = searchProgram.getPsmAnnotationTypes();
		DescriptivePsmAnnotationTypes descriptivePsmAnnotationTypes = psmAnnotationTypes.getDescriptivePsmAnnotationTypes();
		if ( descriptivePsmAnnotationTypes == null ) {
			//  No descriptive annotation types so exit
			return;  //  EARLY EXIT
		}
		List<DescriptivePsmAnnotationType> descriptivePsmAnnotationTypeList = descriptivePsmAnnotationTypes.getDescriptivePsmAnnotationType();
		AnnotationTypeDAO srchPgmDescriptivePsmAnnotationTypeDAO = AnnotationTypeDAO.getInstance();
		for ( DescriptivePsmAnnotationType descriptivePsmAnnotationType : descriptivePsmAnnotationTypeList ) {
			String annotationTypeName = descriptivePsmAnnotationType.getName();
			boolean annotationTypeDefaultVisible = getAnnotationTypeDefaultVisible( annotationTypeName, searchProgramName, visiblePsmDefaultVisibleAnnotationsSearchAnnotationList );
			Integer annotationTypeDisplayOrder = getAnnotationTypeDisplayOrder( annotationTypeName, searchProgramName, visiblePsmDefaultVisibleAnnotationsSearchAnnotationList );
			AnnotationTypeDTO item = new AnnotationTypeDTO();
			item.setPsmPeptideAnnotationType( PsmPeptideAnnotationType.PSM );
			item.setFilterableDescriptiveAnnotationType( FilterableDescriptiveAnnotationType.DESCRIPTIVE );
			item.setSearchId( searchId );
			item.setSearchProgramsPerSearchId( searchProgramId );
			item.setName( descriptivePsmAnnotationType.getName() );
			item.setDefaultVisible( annotationTypeDefaultVisible );
			item.setDisplayOrder( annotationTypeDisplayOrder );
			item.setDescription( descriptivePsmAnnotationType.getDescription() );
			srchPgmDescriptivePsmAnnotationTypeDAO.saveToDatabase( item );
			psmAnnotationTypeDTOMap.put( item.getName(), item );
		}
	}

	/**
	 * @param searchProgram
	 * @param searchProgramEntry
	 * @param searchProgramId
	 * @throws Exception
	 */
	private void processPsmPerPeptideAnnotationTypes( SearchProgram searchProgram, SearchProgramEntry searchProgramEntry, int searchProgramId, int searchId, SearchProgramInfo searchProgramInfo ) throws Exception {
		processFilterablePsmPerPeptideAnnotationTypes( searchProgram, searchProgramEntry, searchProgramId, searchId, searchProgramInfo );
		processDescriptivePsmPerPeptideAnnotationTypes( searchProgram, searchProgramEntry, searchProgramId, searchId, searchProgramInfo );
	}

	/**
	 * @param searchProgram
	 * @param searchProgramEntry
	 * @param searchProgramId
	 * @param searchProgramInfo
	 * @throws Exception
	 */
	private void processFilterablePsmPerPeptideAnnotationTypes( SearchProgram searchProgram, SearchProgramEntry searchProgramEntry, int searchProgramId, int searchId, SearchProgramInfo searchProgramInfo ) throws Exception {

		Map<String, AnnotationTypeDTO> psmPerPeptideAnnotationTypeDTOMap =
				searchProgramEntry.getPsmPerPeptideAnnotationTypeDTOMap();
		if ( psmPerPeptideAnnotationTypeDTOMap == null ) {
			psmPerPeptideAnnotationTypeDTOMap = new HashMap<>();
			searchProgramEntry.setPsmPerPeptideAnnotationTypeDTOMap( psmPerPeptideAnnotationTypeDTOMap );
		}
		String searchProgramName = searchProgram.getName();
		List<SearchAnnotation> psmPerPeptideAnnotationSortOrderSearchAnnotationList = null;
		List<SearchAnnotation> visiblePsmDefaultVisibleAnnotationsSearchAnnotationList = null;
		if ( searchProgramInfo != null
				&& searchProgramInfo.getDefaultVisibleAnnotations() != null
				&& searchProgramInfo.getDefaultVisibleAnnotations().getVisiblePsmPerPeptideAnnotations() != null
				&& searchProgramInfo.getDefaultVisibleAnnotations().getVisiblePsmPerPeptideAnnotations().getSearchAnnotation() != null ) {
			visiblePsmDefaultVisibleAnnotationsSearchAnnotationList =
					searchProgramInfo.getDefaultVisibleAnnotations().getVisiblePsmPerPeptideAnnotations().getSearchAnnotation();
		}

		SearchProgram.PsmPerPeptideAnnotationTypes psmPerPeptideAnnotationTypes = searchProgram.getPsmPerPeptideAnnotationTypes();
		if ( psmPerPeptideAnnotationTypes == null ) {
			return;  //  EARLY EXIT
		}

		FilterablePsmPerPeptideAnnotationTypes filterablePsmPerPeptideAnnotationTypes = psmPerPeptideAnnotationTypes.getFilterablePsmPerPeptideAnnotationTypes();
		if ( filterablePsmPerPeptideAnnotationTypes == null ) {
			return;  //  EARLY EXIT
		}

		List<FilterablePsmPerPeptideAnnotationType> filterablePsmPerPeptideAnnotationTypeList =
				filterablePsmPerPeptideAnnotationTypes.getFilterablePsmPerPeptideAnnotationType();
		if ( filterablePsmPerPeptideAnnotationTypeList == null || filterablePsmPerPeptideAnnotationTypeList.isEmpty() ) {
			return;  //  EARLY EXIT
		}

		AnnotationTypeDAO srchPgmFilterablePsmPerPeptideAnnotationTypeDAO = AnnotationTypeDAO.getInstance();

		for ( FilterablePsmPerPeptideAnnotationType filterablePsmPerPeptideAnnotationType : filterablePsmPerPeptideAnnotationTypeList ) {

			String annotationTypeName = filterablePsmPerPeptideAnnotationType.getName();
			Integer annotationTypeSortOrder = getAnnotationTypeSortOrder( annotationTypeName, searchProgramName, psmPerPeptideAnnotationSortOrderSearchAnnotationList );
			boolean annotationTypeDefaultVisible = getAnnotationTypeDefaultVisible( annotationTypeName, searchProgramName, visiblePsmDefaultVisibleAnnotationsSearchAnnotationList );
			Integer annotationTypeDisplayOrder = getAnnotationTypeDisplayOrder( annotationTypeName, searchProgramName, visiblePsmDefaultVisibleAnnotationsSearchAnnotationList );
			AnnotationTypeDTO item = new AnnotationTypeDTO();
			AnnotationTypeFilterableDTO annotationTypeFilterableDTO = new AnnotationTypeFilterableDTO();
			item.setAnnotationTypeFilterableDTO( annotationTypeFilterableDTO );
			item.setPsmPeptideAnnotationType( PsmPeptideAnnotationType.PSM_PER_PEPTIDE );
			item.setFilterableDescriptiveAnnotationType( FilterableDescriptiveAnnotationType.FILTERABLE );
			item.setSearchId( searchId );
			item.setSearchProgramsPerSearchId( searchProgramId );
			item.setName( filterablePsmPerPeptideAnnotationType.getName() );
			String filterDirectionString = filterablePsmPerPeptideAnnotationType.getFilterDirection().value();
			FilterDirectionType filterDirectionType = FilterDirectionType.fromValue( filterDirectionString );
			annotationTypeFilterableDTO.setFilterDirectionType( filterDirectionType );
//			annotationTypeFilterableDTO.setDefaultFilter( filterablePsmPerPeptideAnnotationType.isDefaultFilter() );
//			annotationTypeFilterableDTO.setDefaultFilterAtDatabaseLoad( filterablePsmPerPeptideAnnotationType.isDefaultFilter() );
//			BigDecimal defaultFilterValue = filterablePsmPerPeptideAnnotationType.getDefaultFilterValue();
//			if ( defaultFilterValue != null ) {
//				annotationTypeFilterableDTO.setDefaultFilterValue( defaultFilterValue.doubleValue() );
//				annotationTypeFilterableDTO.setDefaultFilterValueString( defaultFilterValue.toString() );
//				annotationTypeFilterableDTO.setDefaultFilterValueAtDatabaseLoad( defaultFilterValue.doubleValue() );
//				annotationTypeFilterableDTO.setDefaultFilterValueStringAtDatabaseLoad( defaultFilterValue.toString() );
//			}
			annotationTypeFilterableDTO.setSortOrder( annotationTypeSortOrder );
			item.setDefaultVisible( annotationTypeDefaultVisible );
			item.setDisplayOrder( annotationTypeDisplayOrder );
			item.setDescription( filterablePsmPerPeptideAnnotationType.getDescription() );
			srchPgmFilterablePsmPerPeptideAnnotationTypeDAO.saveToDatabase( item );
			psmPerPeptideAnnotationTypeDTOMap.put( item.getName(), item );
		}
	}

	/**
	 * @param searchProgram
	 * @param searchProgramEntry
	 * @param searchProgramId
	 * @param filterDirectionStringIdMap
	 * @throws Exception
	 */
	private void processDescriptivePsmPerPeptideAnnotationTypes( SearchProgram searchProgram, SearchProgramEntry searchProgramEntry, int searchProgramId, int searchId, SearchProgramInfo searchProgramInfo ) throws Exception {

		Map<String, AnnotationTypeDTO> psmPerPeptideAnnotationTypeDTOMap =
				searchProgramEntry.getPsmPerPeptideAnnotationTypeDTOMap();
		if ( psmPerPeptideAnnotationTypeDTOMap == null ) {
			psmPerPeptideAnnotationTypeDTOMap = new HashMap<>();
			searchProgramEntry.setPsmPerPeptideAnnotationTypeDTOMap( psmPerPeptideAnnotationTypeDTOMap );
		}
//		String searchProgramName = searchProgram.getName();
//		List<SearchAnnotation> visiblePsmDefaultVisibleAnnotationsSearchAnnotationList = null;
//		if ( searchProgramInfo != null
//				&& searchProgramInfo.getDefaultVisibleAnnotations() != null
//				&& searchProgramInfo.getDefaultVisibleAnnotations().getVisiblePsmPerPeptideAnnotations() != null
//				&& searchProgramInfo.getDefaultVisibleAnnotations().getVisiblePsmPerPeptideAnnotations().getSearchAnnotation() != null ) {
//			visiblePsmDefaultVisibleAnnotationsSearchAnnotationList =
//					searchProgramInfo.getDefaultVisibleAnnotations().getVisiblePsmPerPeptideAnnotations().getSearchAnnotation();
//		}

		SearchProgram.PsmPerPeptideAnnotationTypes psmPerPeptideAnnotationTypes = searchProgram.getPsmPerPeptideAnnotationTypes();
		if ( psmPerPeptideAnnotationTypes == null ) {
			return;  //  EARLY EXIT
		}

		DescriptivePsmPerPeptideAnnotationTypes descriptivePsmPerPeptideAnnotationTypes = psmPerPeptideAnnotationTypes.getDescriptivePsmPerPeptideAnnotationTypes();
		if ( descriptivePsmPerPeptideAnnotationTypes == null ) {
			//  No descriptive annotation types so exit
			return;  //  EARLY EXIT
		}
		List<DescriptivePsmPerPeptideAnnotationType> descriptivePsmPerPeptideAnnotationTypeList = descriptivePsmPerPeptideAnnotationTypes.getDescriptivePsmPerPeptideAnnotationType();
		AnnotationTypeDAO srchPgmDescriptivePsmPerPeptideAnnotationTypeDAO = AnnotationTypeDAO.getInstance();
		for ( DescriptivePsmPerPeptideAnnotationType descriptivePsmPerPeptideAnnotationType : descriptivePsmPerPeptideAnnotationTypeList ) {
//			String annotationTypeName = descriptivePsmPerPeptideAnnotationType.getName();
//			boolean annotationTypeDefaultVisible = getAnnotationTypeDefaultVisible( annotationTypeName, searchProgramName, visiblePsmDefaultVisibleAnnotationsSearchAnnotationList );
//			Integer annotationTypeDisplayOrder = getAnnotationTypeDisplayOrder( annotationTypeName, searchProgramName, visiblePsmDefaultVisibleAnnotationsSearchAnnotationList );
			AnnotationTypeDTO item = new AnnotationTypeDTO();
			item.setPsmPeptideAnnotationType( PsmPeptideAnnotationType.PSM_PER_PEPTIDE );
			item.setFilterableDescriptiveAnnotationType( FilterableDescriptiveAnnotationType.DESCRIPTIVE );
			item.setSearchId( searchId );
			item.setSearchProgramsPerSearchId( searchProgramId );
			item.setName( descriptivePsmPerPeptideAnnotationType.getName() );
//			item.setDefaultVisible( annotationTypeDefaultVisible );
//			item.setDisplayOrder( annotationTypeDisplayOrder );
			item.setDescription( descriptivePsmPerPeptideAnnotationType.getDescription() );
			srchPgmDescriptivePsmPerPeptideAnnotationTypeDAO.saveToDatabase( item );
			psmPerPeptideAnnotationTypeDTOMap.put( item.getName(), item );
		}
	}

	/**
	 * Utility Lookup.  Get position in AnnotationTypeSortOrder or return null if not found
	 *
	 *
	 * @param annotationTypeName
	 * @param searchProgramName
	 * @param annotationSortOrderSearchAnnotationList
	 * @return null if not found, otherwise the position in the list
	 */
	private Integer getAnnotationTypeSortOrder( String annotationTypeName, String searchProgramName, List<SearchAnnotation> annotationSortOrderSearchAnnotationList ) {

		if ( annotationSortOrderSearchAnnotationList == null ) {
			return null;
		}
		int orderPositionCounter = 0;
		for ( SearchAnnotation searchAnnotationSortOrder : annotationSortOrderSearchAnnotationList ) {
			orderPositionCounter++;
			if ( annotationTypeName.equals( searchAnnotationSortOrder.getAnnotationName() )
					&& searchProgramName.equals( searchAnnotationSortOrder.getSearchProgram() ) ) {
				return orderPositionCounter;  // EARLY EXIT
			}
		}
		return null;  //  for no match found
	}

	/**
	 * Utility Lookup.  Return true if in AnnotationTypeDefaultVisible or return false if not found
	 *
	 * @param annotationTypeName
	 * @param searchProgramName
	 * @param annotationDefaultVisibleSearchAnnotationList
	 * @return Return true if in AnnotationTypeDefaultVisible or return false if not found
	 */
	private boolean getAnnotationTypeDefaultVisible( String annotationTypeName, String searchProgramName, List<SearchAnnotation> annotationDefaultVisibleSearchAnnotationList ) {

		if ( annotationDefaultVisibleSearchAnnotationList == null ) {
			return false;
		}
		for ( SearchAnnotation searchAnnotationDefaultVisible : annotationDefaultVisibleSearchAnnotationList ) {
			if ( annotationTypeName.equals( searchAnnotationDefaultVisible.getAnnotationName() )
					&& searchProgramName.equals( searchAnnotationDefaultVisible.getSearchProgram() ) ) {
				return true;  // EARLY EXIT
			}
		}
		return false;  //  for no match found
	}

	/**
	 * Utility Lookup.  Get position in AnnotationTypeDefaultVisible or return null if not found
	 *
	 *
	 * @param annotationTypeName
	 * @param searchProgramName
	 * @param annotationSortOrderSearchAnnotationList
	 * @return null if not found, otherwise the position in the list
	 */
	private Integer getAnnotationTypeDisplayOrder( String annotationTypeName, String searchProgramName, List<SearchAnnotation> annotationDefaultVisibleSearchAnnotationList ) {

		if ( annotationDefaultVisibleSearchAnnotationList == null ) {
			return null;
		}
		int orderPositionCounter = 0;
		for ( SearchAnnotation searchAnnotationDefaultVisible : annotationDefaultVisibleSearchAnnotationList ) {
			orderPositionCounter++;
			if ( annotationTypeName.equals( searchAnnotationDefaultVisible.getAnnotationName() )
					&& searchProgramName.equals( searchAnnotationDefaultVisible.getSearchProgram() ) ) {
				return orderPositionCounter;  // EARLY EXIT
			}
		}
		return null;  //  for no match found
	}
}

redpajama_set_name: RedPajamaGithub


LOS ANGELES — Nikki Delano will feature dance in two Connecticut locations for Mystique gentlemen's club this weekend.
She is also celebrating a recent Urban X Awards nomination.
Delano will topline Friday at the Mystique location in Bridgeport and Saturday at its Stamford location.
She will perform multiple sets nightly. Between sets, fans and attendees will have the chance to mix and mingle, pick up branded merchandise and purchase private lap dances.
Delano is also among the Urban X Awards nominees for Social Media Star. The winner will be determined by fan voting.
Fans may vote once a day through August 10. Click here to cast a vote.
Visit Mystique Bridgeport online here and click here for Mystique Stamford.
Follow Delano on Twitter here.


I dunno what will happen in the upcoming months, I believe it will get worse!
9ij le galaw, eljanna ta7t aqdam el omahat! hatha ba3da ma6ala3 o chethy en3ani!
LOL eee tekhayelay hehe no hair after all that torture! 😛 Bs yalla hopefully it fixes itself soon.
wallah it's always temporarily, u rest for a bit but then it comes back!
Talk to your Dr. about talking an over the counter medication called omeprazole.
I take it everyday for my heartburn. For it to work, you need to take it in similar fashion to anti-biotics. i.e. it cures your heartburn over the longrun, and not like "fawar" or that "pink goo" people drink to solve their short term heartburn.
Trust me even water gives me heartburn! the acid is just flowing in my throat because of the baby, there will be no solution at all! Everything I'll take it will be temp!
Hi, i also had severe heartburn during pregnancy. Doc advised me avoid chocolate, citrus fruits and juices, tomatoes and tomato-based products, mustard, vinegar, mint products, and spicy, highly seasoned, fried, and fatty foods.
Also, Avoid drinks containing caffeine (coffee, tea, cola) because these can relax the LES and allow acid to reflux back into the esophagus.
I have also heard that drinking lots of coffee will make ur baby dark and keep him/her awake throughout the night after birth (although i don't believe it).
So happy for you! Not for the heartburn but the baby, lol! I've also read that coffee is the worse thing you can drink for acid reflux but I would die before giving up my favorite drink. Hee hee!
for heartburns ma illik ellaaaaa TUMS! order them from amazon,, MAGIC!


text:
Q: Tengo problemas con ciertas librerias C Estoy haciendo mi proyecto de la universidad y estoy creando varias librerias, entre ellas tengo estas
#include "menus.h"
#include "usuario.h"
#include "listaMaterias.h"
#include "validacion.h"

El problema que tengo es que la libreria "validacion.h" la estoy usando también en las librerias "usuario.h" y "listaMaterias.h" y cuando compilo mi programa principal me marca unos errores referentes a la librería de "validacion.h" pero no se como resolverlo.
In file included from listaMaterias.h:5:0,
                 from menu.c:5:
validacion.h:12:6: error: redefinition of 'validarNumero'
 bool validarNumero(char numero[])
      ^
In file included from usario.h:5:0,
                 from menu.c:4:
validacion.h:12:6: note: previous definition of 'validarNumero' was here
 bool validarNumero(char numero[])
      ^
In file included from listaMaterias.h:5:0,
                 from menu.c:5:
validacion.h:33:6: error: redefinition of 'validarLetras'
 bool validarLetras(char nombre[])
      ^
In file included from usario.h:5:0,
                 from menu.c:4:
validacion.h:33:6: note: previous definition of 'validarLetras' was here
 bool validarLetras(char nombre[])
      ^
In file included from listaMaterias.h:5:0,
                 from menu.c:5:
validacion.h:54:6: error: redefinition of 'validarFecha'
 bool validarFecha(char dia[], char mes[], char ano[])
      ^
In file included from usario.h:5:0,
                 from menu.c:4:
validacion.h:54:6: note: previous definition of 'validarFecha' was here
 bool validarFecha(char dia[], char mes[], char ano[])

Estos son los errores que me salen.
Esta es la libreria "listaMaterias.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "validacion.h"

struct actividades
{
    char tipoDeActividad[22];
    char diaDeLaSemana[12];
    char horaDeIncio[8];
    char horaDeFin[8];
    char salon[10];
};

struct materias
{
    char nombre[30];
    char profesor[30];
    char tipoDeMateria[20];
    char horasSemanales[10];
    struct actividades *actividad;
    struct fechasEspeciales *fechas;
    struct materias *siguiente;
};

typedef struct materias _nodoMaterias;
typedef struct fechasEspeciales _nodoFechasEspeciales;

_nodoMaterias *crearListaMaterias(_nodoMaterias *apuntador);
bool listaVacia(_nodoMaterias *apuntador);
_nodoMaterias *insetarEnListaMaterias(_nodoMaterias *apuntador);
void imprimirLista (_nodoMaterias *apuntador);
_nodoMaterias *crearNodoMaterias(char nombre[], char profesor[], char tipoDeMateria[], char horasSemanales[]);
void datosAlumno();
_nodoMaterias *eliminarMateria(_nodoMaterias *apuntador);
bool buscarMateria(char nombre[], _nodoMaterias *apuntador);
_nodoMaterias *modificarMateria(_nodoMaterias *apuntador);

//AQUI SE CREA LISTA Y SE PONE PARA QUE APUNTE A NULL
_nodoMaterias *crearListaMaterias(_nodoMaterias *apuntador)
{
    return (apuntador = NULL);
}

//ESTA FUNCION VERIFICA SI LA LISTA ESTA VACIA
bool listaVacia(_nodoMaterias *apuntador)
{
    if (apuntador == NULL)
        return (true); //SI SALE EL TRUE SIGNIFICA QUE LA LISTA ESTA VACIA
    else
        return (false);//SI SALE EL FALSE SIGNIFICA QUE LA LISTA NO ESTA VACIA
}

//AQUI SE CREA EL NUEVO NODO DE LA LISTA
_nodoMaterias *crearNodoMaterias(char nombre[], char profesor[], char tipoDeMateria[], char horasSemanales[])
{
    _nodoMaterias *registroNuevo;

    registroNuevo = (_nodoMaterias *) malloc(sizeof(_nodoMaterias));

    printf("\n----NUEVA MATERIA----\n");
    printf("NOMBRE: ");
    fflush(stdin);
    scanf("%s",nombre);
    while(!validarLetras(nombre))
    {
        printf("\nPOR FAVOR SOLO ESCRIBA LETRAS ");
        printf("\nNOMBRE: ");
        fflush(stdin);
        scanf("%s",nombre);

        /*while(!buscarMateria())*/
    }
    printf("PROFESOR: ");
    fflush(stdin);
    scanf("%s",profesor);
    while(!validarLetras(profesor))
    {
        printf("\nPOR FAVOR SOLO ESCRIBA LETRAS ");
        printf("\nPROFESOR: ");
        fflush(stdin);
        scanf("%s",profesor);
    }
    printf("TIPO DE MATERIA: ");
    fflush(stdin);
    scanf("%s",tipoDeMateria);
    while(!validarLetras(tipoDeMateria))
    {
        printf("\nPOR FAVOR SOLO ESCRIBA LETRAS");
        printf("\nTIPO DE MATERIA: ");
        fflush(stdin);
        scanf("%s",tipoDeMateria);
    }
    printf("HORAS SEMANALES:  ");
    fflush(stdin);
    scanf("%s",horasSemanales);
    while(!validarNumero(horasSemanales))
    {
        printf("\nPOR FAVOR SOLO ESCRIBA NUMEROS");
        printf("\nHORAS SEMANALES: ");
        fflush(stdin);
        scanf("%s",horasSemanales);
    }
    fflush(stdin);

        strcpy(registroNuevo->nombre, nombre);
        strcpy(registroNuevo->profesor, profesor);
        strcpy(registroNuevo->tipoDeMateria, tipoDeMateria);
        strcpy(registroNuevo->horasSemanales, horasSemanales);
        registroNuevo->siguiente = NULL;

    return registroNuevo;

}

//AQUI SE INSERTA EL NODO EN LA LISTA LUGEO DE SER CREADO POR LA FUNCION crearNodo
_nodoMaterias *insetarEnListaMaterias(_nodoMaterias *apuntador)
{
    _nodoMaterias *registroNuevo, *apuntadorAuxiliar;
    char respuesta,ch;
    char nombre[30];
    char profesor[30];
    char tipoDeMateria[20];
    char horasSemanales[10];

    //ESTE CICLO SE ENCARGA DE QUE SE REPITA EL PORCESO PARA PODER INGRESAR MATERIAS HASTA QUE EL USUARIO DECIDA
    do
    {
            registroNuevo=crearNodoMaterias(nombre, profesor, tipoDeMateria, horasSemanales);
            if (listaVacia(apuntador))
                apuntador = registroNuevo;
            else
            {
                apuntadorAuxiliar = apuntador;
                while (apuntadorAuxiliar->siguiente != NULL)
                    apuntadorAuxiliar = apuntadorAuxiliar->siguiente;
                apuntadorAuxiliar->siguiente = registroNuevo;
            }

            printf("\nPARA INGRESAR OTRA MATERIA MARQUE... 1");
            printf("\nPARA SALIR MARQUE... '0'\n");
     while((ch = getchar()) != EOF && ch != '\n');

    scanf("%c", &respuesta);
        fflush(stdin);
   printf("RESPUESTA = %c", respuesta);

    }while (respuesta == '1');
    return apuntador;
}

//TENGO QUE RIVAR BIEN LA FUNCION DE eliminarMateria PARA VER PQ NO ME ELIMINA LAS MATERIAS

_nodoMaterias *eliminarMateria(_nodoMaterias *apuntador)
{
    char materia[20];
    printf("\nQUE MATERIA DESEA ELIMINAR:  ");
    scanf("%s",materia);
    fflush(stdin);

    //INTENTO DE BORRAR NODO 1
    if (!listaVacia(apuntador))
    {
        _nodoMaterias *borrarAuxiliar;
        _nodoMaterias *anterior = NULL;

        while (apuntador != NULL)
        {
            /*anterior = borrarAuxiliar;
            borrarAuxiliar = borrarAuxiliar->siguiente;*/
            if (strcmp(apuntador->nombre, materia) == 0)
            {
                anterior->siguiente = apuntador->siguiente;
                borrarAuxiliar = apuntador;
                apuntador = apuntador->siguiente;
                free(borrarAuxiliar);
            }
            else
            {
                anterior = apuntador;
                apuntador = apuntador->siguiente;
            }
        }
/*
        if (borrarAuxiliar == NULL)
        {
            printf("\nNODO NO ENCONTRADO");
        }else if (anterior == NULL)
            {
                apuntador = apuntador->siguiente;
                free(borrarAuxiliar);
            } else
                {
                    anterior->siguiente = borrarAuxiliar->siguiente;
                    free(borrarAuxiliar);
                }*/
    }

    return apuntador;
}

_nodoMaterias *modificarMateria(_nodoMaterias *apuntador)
{
    char materia[20];
    printf("\nQUE MATERIA DESEA MODIFICAR:  ");
    scanf("%s",materia);
    fflush(stdin);

    if (!listaVacia(apuntador))
    {
        _nodoMaterias *apuntadorAuxiliar;

        apuntadorAuxiliar = apuntador;

        while (apuntadorAuxiliar != NULL)
        {
            if (apuntadorAuxiliar != NULL && strcmp(apuntadorAuxiliar->nombre, materia) == 0)
            {
                char nombre[30];
                char profesor[30];
                char tipoDeMateria[20];
                char horasSemanales[10];

                printf("\nINGRESE LOS NUEVOS DATOS DE LA MATERIA");
                printf("\nNOMBRE: ");
                fflush(stdin);
                scanf("%s",nombre);
                while(!validarLetras(nombre))
                {
                    printf("\nPOR FAVOR SOLO ESCRIBA LETRAS ");
                    printf("\nNOMBRE: ");
                    fflush(stdin);
                    scanf("%s",nombre);
                }
                printf("PROFESOR: ");
                fflush(stdin);
                scanf("%s",profesor);
                while(!validarLetras(profesor))
                {
                    printf("\nPOR FAVOR SOLO ESCRIBA LETRAS ");
                    printf("\nPROFESOR: ");
                    fflush(stdin);
                    scanf("%s",profesor);
                }
                printf("TIPO DE MATERIA: ");
                fflush(stdin);
                scanf("%s",tipoDeMateria);
                while(!validarLetras(tipoDeMateria))
                {
                    printf("\nPOR FAVOR SOLO ESCRIBA LETRAS");
                    printf("\nTIPO DE MATERIA: ");
                    fflush(stdin);
                    scanf("%s",tipoDeMateria);
                }
                printf("HORAS SEMANALES:  ");
                fflush(stdin);
                scanf("%s",horasSemanales);
                while(!validarNumero(horasSemanales))
                {
                    printf("\nPOR FAVOR SOLO ESCRIBA NUMEROS");
                    printf("\nHORAS SEMANALES: ");
                    fflush(stdin);
                    scanf("%s",horasSemanales);
                }
                fflush(stdin);

                strcpy(apuntadorAuxiliar->nombre, nombre);
                strcpy(apuntadorAuxiliar->profesor, profesor);
                strcpy(apuntadorAuxiliar->tipoDeMateria, tipoDeMateria);
                strcpy(apuntadorAuxiliar->horasSemanales, horasSemanales);
                apuntadorAuxiliar->siguiente = NULL;
            }

            apuntadorAuxiliar = apuntadorAuxiliar->siguiente;
        }

    }
    else
        printf("\nLA LISTA ESTA VACIA");

    return apuntador;
}

//IMPRIMIR LOS NODOS DE LA LISTA
void imprimirLista (_nodoMaterias *apuntador)
{
    _nodoMaterias *apuntadorAuxiliar;

    apuntadorAuxiliar = apuntador;

    if (apuntadorAuxiliar == NULL)
        printf("NO HAY ELEMENTOS EN LA LISTA \n");
    else
    {
        while(apuntadorAuxiliar != NULL)
        {
            printf(" \n------------MATERIAS-------------- ");
            printf("\nNOMBRE: %s \n", apuntadorAuxiliar->nombre);
            printf("\nPROFESOR: %s \n", apuntadorAuxiliar->profesor);
            printf("\nTIPO DE MATERIA: %s \n", apuntadorAuxiliar->tipoDeMateria);
            printf("\nHORAS SEMANALES: %s \n", apuntadorAuxiliar->horasSemanales);

            apuntadorAuxiliar = apuntadorAuxiliar->siguiente;
        }
    }

    return;
}

//ESTA FUNCION LE PERMITE SABER AL USUARIO LAS MATERIAS QUE INSCRIBIO
void imprimirListaDeMaterias(_nodoMaterias *apuntador)
{
    int contador;

    _nodoMaterias *apuntadorAuxiliar;

    apuntadorAuxiliar = apuntador;

    if (apuntadorAuxiliar == NULL)
        printf("NO HAY ELEMENTOS EN LA LISTA\n");
    else
    {
        contador = 0;
        printf("\nLISTA DE MATERIAS REGISTRADAS\n"); //AQUI VAN APARECIENDO LAS MATERIAS EN ORDEN ASI EL USARIO SABE CUALES DEBE SELCCIONAR
        while(apuntadorAuxiliar != NULL)
        {
            contador++;
            printf("%d", contador);printf(".- %s \n", apuntadorAuxiliar->nombre);

            apuntadorAuxiliar = apuntadorAuxiliar->siguiente;
        }
    }

    return;
}

bool buscarMateria(char materia[], _nodoMaterias *apuntador)
{
    _nodoMaterias *apuntadorAuxiliar;

    apuntadorAuxiliar = apuntador;

    while (apuntadorAuxiliar != NULL)
    {
        if (strcmp(apuntadorAuxiliar->nombre, materia) == 0)
        {
            break;
        }
        apuntadorAuxiliar = apuntadorAuxiliar->siguiente;
    }

    if (apuntadorAuxiliar == NULL)
        return true;
    else
        return false;

}

Esta es la libreria "usuario.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "validacion.h"

void datosAlumno(char nombre[], char apellido[], char cedula[], char telefono[], char carrera[]);

void datosAlumno(char nombre[], char apellido[], char cedula[], char telefono[], char carrera[])
{
    printf("\n INTRODUZCA EL NOMBRE DEL ALUMNO:     \n");
    scanf("%s", nombre);
    while(!validarLetras(nombre))
    {
        printf("\nPOR FAVOR SOLO ESCRIBA LETRAS ");
        printf("\nNOMBRE: ");
        fflush(stdin);
        scanf("%s", nombre);
    }
    printf("\n INTRODUZCA EL APELLIDO DEL ALUMNO:     \n");
    fflush(stdin);
    scanf("%s", apellido);
    while(!validarLetras(apellido))
    {
        printf("\nPOR FAVOR SOLO ESCRIBA LETRAS ");
        printf("\nAPELLIDO: ");
        fflush(stdin);
        scanf("%s", apellido);
    }
    printf("\n INTRODUZCA LA CEDULA DEL ALUMNO:     \n");
    fflush(stdin);
    scanf("%s", cedula);
    while(!validarNumero(cedula))
    {
        printf("\nPOR FAVOR SOLO ESCRIBA LETRAS ");
        printf("\nNOMBRE: ");
        fflush(stdin);
        scanf("%s", cedula);
    }
    printf("\n INTRODUZCA EL TELEFONO DEL ALUMNO:     \n");
    fflush(stdin);
    scanf("%s", telefono);
    while(!validarNumero(telefono))
    {
        printf("\nPOR FAVOR SOLO ESCRIBA LETRAS ");
        printf("\nNOMBRE: ");
        fflush(stdin);
        scanf("%s", telefono);
    }
    printf("\n INTRODUZCA LA CARRERA DEL ALUMNO:     \n");
    fflush(stdin);
    scanf("%s", carrera);
    while(!validarLetras(carrera))
    {
        printf("\nPOR FAVOR SOLO ESCRIBA LETRAS ");
        printf("\nNOMBRE: ");
        fflush(stdin);
        scanf("%s", carrera);
    }
    fflush(stdin);

    system("clear");
    printf("\n%s\n", nombre);
    printf("\n%s\n", apellido);
    printf("\n%s\n", cedula);
    printf("\n%s\n", telefono);
    printf("\n%s\n", carrera);
    getchar();
}

Esta es la libreria "validacion.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ncurses.h>
#include <ctype.h>
#include <stdbool.h>

bool validarNumero(char numero[50]);
bool validarLetras(char nombre[50]);
bool validarFecha(char dia[], char mes[], char ano[]);

bool validarNumero(char numero[])
{
    int i = 0, j;

    j = strlen(numero);

    while (i < j)
    {
        if (isdigit(numero[i]) != 0)
        {
            i++;
        }
        else
        {
            return false;
        }
    }

    return true;
}

bool validarLetras(char nombre[])
{
    int i = 0, j;

    j = strlen(nombre);

    while (i < j)
    {
        if (isalpha(nombre[i]) != 0)
        {
            i++;
        }
        else
        {
            return false;
        }
    }

    return true;
}

bool validarFecha(char dia[], char mes[], char ano[])
{
    int month, day, year;

        day = atoi(dia);
        month = atoi(mes);
        year = atoi(ano);

    //Si el mes ingresado es Febrero, el año no es bisiesto y el día es mayor a 28 o menor o igual a cero
    if((month == 2) && !((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) && ((day > 28) || (day <= 0)))
    {
        printf("\n\nFecha incorrecta: Este mes solo tiene 28 dias");
        return false;
    }
    //Si el mes ingresado es Febrero, el año es bisiesto y el día es mayor a 29 o menor o igual a cero
    else if((month == 2) && ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) && ((day > 29) || (day <= 0)))
    {
        printf("\n\nFecha incorrecta: Este mes solo tiene 29 dias");
        return false;
    }
    //Si el mes es distinto a Febrero (cualquiera de los demás meses que tengan 31 días) y el día es mayor a 31 o menor o igual a cero
    else if(((month == 1) || (month == 3) || (month == 5) || (month == 7) || (month == 8) || (month == 10) || (month == 12)) && ((day > 31) || (day <= 0)))
    {
        printf("\n\nFecha incorrecta: Este mes solo tiene 31 dias");
        return false;
    }
    //Si el mes es distinto a Febrero (cualquiera de los demás meses que tengan 30 días) y el día es mayor a 30 o menor o igual a cero
    else if(((month == 4) || (month == 6) || (month == 9) || (month == 11)) && ((day > 30) || (day <= 0)))
    {
        printf("\n\nFecha incorrecta: Este mes solo tiene 30 dias");
        return false;
    }
    //Si el mes es mayor a 12 o menor o igual a cero
    else if((month > 12) || (month <= 0))
    {
        printf("\n\nFecha incorrecta: El año solo tiene 12 meses");
        return false;
    }

    return true;
}

A: Debes usar la guardas en los headers ya que cuando usas la instrucción #include el compilador copia los archivos a uno intermedio, por lo que causará el error, si usas #define y #ifdef el preprocesador impedirá que se repita las importaciones , es decir, por ejemplo del header archivo.h
#ifndef ARCHIVO_H
#define ARCHIVO_H

# tú código

.......

#endif // ARCHIVO_H

por ejemplo en "listaMaterias.h":
#ifndef LISTAMATERIAS_H
#define LISTAMATERIAS_H

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "validacion.h"

struct actividades
{
    char tipoDeActividad[22];
    char diaDeLaSemana[12];
    char horaDeIncio[8];
    char horaDeFin[8];
    char salon[10];
};

struct materias
{
    char nombre[30];
    char profesor[30];
    char tipoDeMateria[20];
    char horasSemanales[10];
    struct actividades *actividad;
    struct fechasEspeciales *fechas;
    struct materias *siguiente;
};

typedef struct materias _nodoMaterias;
typedef struct fechasEspeciales _nodoFechasEspeciales;

_nodoMaterias *crearListaMaterias(_nodoMaterias *apuntador);
bool listaVacia(_nodoMaterias *apuntador);
_nodoMaterias *insetarEnListaMaterias(_nodoMaterias *apuntador);
void imprimirLista (_nodoMaterias *apuntador);
_nodoMaterias *crearNodoMaterias(char nombre[], char profesor[], char tipoDeMateria[], char horasSemanales[]);
void datosAlumno();
_nodoMaterias *eliminarMateria(_nodoMaterias *apuntador);
bool buscarMateria(char nombre[], _nodoMaterias *apuntador);
_nodoMaterias *modificarMateria(_nodoMaterias *apuntador);

//AQUI SE CREA LISTA Y SE PONE PARA QUE APUNTE A NULL
_nodoMaterias *crearListaMaterias(_nodoMaterias *apuntador)
{
    return (apuntador = NULL);
}

//ESTA FUNCION VERIFICA SI LA LISTA ESTA VACIA
bool listaVacia(_nodoMaterias *apuntador)
{
    if (apuntador == NULL)
        return (true); //SI SALE EL TRUE SIGNIFICA QUE LA LISTA ESTA VACIA
    else
        return (false);//SI SALE EL FALSE SIGNIFICA QUE LA LISTA NO ESTA VACIA
}

//AQUI SE CREA EL NUEVO NODO DE LA LISTA
_nodoMaterias *crearNodoMaterias(char nombre[], char profesor[], char tipoDeMateria[], char horasSemanales[])
{
    _nodoMaterias *registroNuevo;

    registroNuevo = (_nodoMaterias *) malloc(sizeof(_nodoMaterias));

    printf("\n----NUEVA MATERIA----\n");
    printf("NOMBRE: ");
    fflush(stdin);
    scanf("%s",nombre);
    while(!validarLetras(nombre))
    {
        printf("\nPOR FAVOR SOLO ESCRIBA LETRAS ");
        printf("\nNOMBRE: ");
        fflush(stdin);
        scanf("%s",nombre);

        /*while(!buscarMateria())*/
    }
    printf("PROFESOR: ");
    fflush(stdin);
    scanf("%s",profesor);
    while(!validarLetras(profesor))
    {
        printf("\nPOR FAVOR SOLO ESCRIBA LETRAS ");
        printf("\nPROFESOR: ");
        fflush(stdin);
        scanf("%s",profesor);
    }
    printf("TIPO DE MATERIA: ");
    fflush(stdin);
    scanf("%s",tipoDeMateria);
    while(!validarLetras(tipoDeMateria))
    {
        printf("\nPOR FAVOR SOLO ESCRIBA LETRAS");
        printf("\nTIPO DE MATERIA: ");
        fflush(stdin);
        scanf("%s",tipoDeMateria);
    }
    printf("HORAS SEMANALES:  ");
    fflush(stdin);
    scanf("%s",horasSemanales);
    while(!validarNumero(horasSemanales))
    {
        printf("\nPOR FAVOR SOLO ESCRIBA NUMEROS");
        printf("\nHORAS SEMANALES: ");
        fflush(stdin);
        scanf("%s",horasSemanales);
    }
    fflush(stdin);

        strcpy(registroNuevo->nombre, nombre);
        strcpy(registroNuevo->profesor, profesor);
        strcpy(registroNuevo->tipoDeMateria, tipoDeMateria);
        strcpy(registroNuevo->horasSemanales, horasSemanales);
        registroNuevo->siguiente = NULL;

    return registroNuevo;

}

//AQUI SE INSERTA EL NODO EN LA LISTA LUGEO DE SER CREADO POR LA FUNCION crearNodo
_nodoMaterias *insetarEnListaMaterias(_nodoMaterias *apuntador)
{
    _nodoMaterias *registroNuevo, *apuntadorAuxiliar;
    char respuesta,ch;
    char nombre[30];
    char profesor[30];
    char tipoDeMateria[20];
    char horasSemanales[10];

    //ESTE CICLO SE ENCARGA DE QUE SE REPITA EL PORCESO PARA PODER INGRESAR MATERIAS HASTA QUE EL USUARIO DECIDA
    do
    {
            registroNuevo=crearNodoMaterias(nombre, profesor, tipoDeMateria, horasSemanales);
            if (listaVacia(apuntador))
                apuntador = registroNuevo;
            else
            {
                apuntadorAuxiliar = apuntador;
                while (apuntadorAuxiliar->siguiente != NULL)
                    apuntadorAuxiliar = apuntadorAuxiliar->siguiente;
                apuntadorAuxiliar->siguiente = registroNuevo;
            }

            printf("\nPARA INGRESAR OTRA MATERIA MARQUE... 1");
            printf("\nPARA SALIR MARQUE... '0'\n");
     while((ch = getchar()) != EOF && ch != '\n');

    scanf("%c", &respuesta);
        fflush(stdin);
   printf("RESPUESTA = %c", respuesta);

    }while (respuesta == '1');
    return apuntador;
}

//TENGO QUE RIVAR BIEN LA FUNCION DE eliminarMateria PARA VER PQ NO ME ELIMINA LAS MATERIAS

_nodoMaterias *eliminarMateria(_nodoMaterias *apuntador)
{
    char materia[20];
    printf("\nQUE MATERIA DESEA ELIMINAR:  ");
    scanf("%s",materia);
    fflush(stdin);

    //INTENTO DE BORRAR NODO 1
    if (!listaVacia(apuntador))
    {
        _nodoMaterias *borrarAuxiliar;
        _nodoMaterias *anterior = NULL;

        while (apuntador != NULL)
        {
            /*anterior = borrarAuxiliar;
            borrarAuxiliar = borrarAuxiliar->siguiente;*/
            if (strcmp(apuntador->nombre, materia) == 0)
            {
                anterior->siguiente = apuntador->siguiente;
                borrarAuxiliar = apuntador;
                apuntador = apuntador->siguiente;
                free(borrarAuxiliar);
            }
            else
            {
                anterior = apuntador;
                apuntador = apuntador->siguiente;
            }
        }
/*
        if (borrarAuxiliar == NULL)
        {
            printf("\nNODO NO ENCONTRADO");
        }else if (anterior == NULL)
            {
                apuntador = apuntador->siguiente;
                free(borrarAuxiliar);
            } else
                {
                    anterior->siguiente = borrarAuxiliar->siguiente;
                    free(borrarAuxiliar);
                }*/
    }

    return apuntador;
}

_nodoMaterias *modificarMateria(_nodoMaterias *apuntador)
{
    char materia[20];
    printf("\nQUE MATERIA DESEA MODIFICAR:  ");
    scanf("%s",materia);
    fflush(stdin);

    if (!listaVacia(apuntador))
    {
        _nodoMaterias *apuntadorAuxiliar;

        apuntadorAuxiliar = apuntador;

        while (apuntadorAuxiliar != NULL)
        {
            if (apuntadorAuxiliar != NULL && strcmp(apuntadorAuxiliar->nombre, materia) == 0)
            {
                char nombre[30];
                char profesor[30];
                char tipoDeMateria[20];
                char horasSemanales[10];

                printf("\nINGRESE LOS NUEVOS DATOS DE LA MATERIA");
                printf("\nNOMBRE: ");
                fflush(stdin);
                scanf("%s",nombre);
                while(!validarLetras(nombre))
                {
                    printf("\nPOR FAVOR SOLO ESCRIBA LETRAS ");
                    printf("\nNOMBRE: ");
                    fflush(stdin);
                    scanf("%s",nombre);
                }
                printf("PROFESOR: ");
                fflush(stdin);
                scanf("%s",profesor);
                while(!validarLetras(profesor))
                {
                    printf("\nPOR FAVOR SOLO ESCRIBA LETRAS ");
                    printf("\nPROFESOR: ");
                    fflush(stdin);
                    scanf("%s",profesor);
                }
                printf("TIPO DE MATERIA: ");
                fflush(stdin);
                scanf("%s",tipoDeMateria);
                while(!validarLetras(tipoDeMateria))
                {
                    printf("\nPOR FAVOR SOLO ESCRIBA LETRAS");
                    printf("\nTIPO DE MATERIA: ");
                    fflush(stdin);
                    scanf("%s",tipoDeMateria);
                }
                printf("HORAS SEMANALES:  ");
                fflush(stdin);
                scanf("%s",horasSemanales);
                while(!validarNumero(horasSemanales))
                {
                    printf("\nPOR FAVOR SOLO ESCRIBA NUMEROS");
                    printf("\nHORAS SEMANALES: ");
                    fflush(stdin);
                    scanf("%s",horasSemanales);
                }
                fflush(stdin);

                strcpy(apuntadorAuxiliar->nombre, nombre);
                strcpy(apuntadorAuxiliar->profesor, profesor);
                strcpy(apuntadorAuxiliar->tipoDeMateria, tipoDeMateria);
                strcpy(apuntadorAuxiliar->horasSemanales, horasSemanales);
                apuntadorAuxiliar->siguiente = NULL;
            }

            apuntadorAuxiliar = apuntadorAuxiliar->siguiente;
        }

    }
    else
        printf("\nLA LISTA ESTA VACIA");

    return apuntador;
}

//IMPRIMIR LOS NODOS DE LA LISTA
void imprimirLista (_nodoMaterias *apuntador)
{
    _nodoMaterias *apuntadorAuxiliar;

    apuntadorAuxiliar = apuntador;

    if (apuntadorAuxiliar == NULL)
        printf("NO HAY ELEMENTOS EN LA LISTA \n");
    else
    {
        while(apuntadorAuxiliar != NULL)
        {
            printf(" \n------------MATERIAS-------------- ");
            printf("\nNOMBRE: %s \n", apuntadorAuxiliar->nombre);
            printf("\nPROFESOR: %s \n", apuntadorAuxiliar->profesor);
            printf("\nTIPO DE MATERIA: %s \n", apuntadorAuxiliar->tipoDeMateria);
            printf("\nHORAS SEMANALES: %s \n", apuntadorAuxiliar->horasSemanales);

            apuntadorAuxiliar = apuntadorAuxiliar->siguiente;
        }
    }

    return;
}

//ESTA FUNCION LE PERMITE SABER AL USUARIO LAS MATERIAS QUE INSCRIBIO
void imprimirListaDeMaterias(_nodoMaterias *apuntador)
{
    int contador;

    _nodoMaterias *apuntadorAuxiliar;

    apuntadorAuxiliar = apuntador;

    if (apuntadorAuxiliar == NULL)
        printf("NO HAY ELEMENTOS EN LA LISTA\n");
    else
    {
        contador = 0;
        printf("\nLISTA DE MATERIAS REGISTRADAS\n"); //AQUI VAN APARECIENDO LAS MATERIAS EN ORDEN ASI EL USARIO SABE CUALES DEBE SELCCIONAR
        while(apuntadorAuxiliar != NULL)
        {
            contador++;
            printf("%d", contador);printf(".- %s \n", apuntadorAuxiliar->nombre);

            apuntadorAuxiliar = apuntadorAuxiliar->siguiente;
        }
    }

    return;
}

bool buscarMateria(char materia[], _nodoMaterias *apuntador)
{
    _nodoMaterias *apuntadorAuxiliar;

    apuntadorAuxiliar = apuntador;

    while (apuntadorAuxiliar != NULL)
    {
        if (strcmp(apuntadorAuxiliar->nombre, materia) == 0)
        {
            break;
        }
        apuntadorAuxiliar = apuntadorAuxiliar->siguiente;
    }

    if (apuntadorAuxiliar == NULL)
        return true;
    else
        return false;
}

#endif //LISTAMATERIAS_H

Otra recomendación es separa la implementación de la declaración, es decir:
#ifndef LISTAMATERIAS_H
#define LISTAMATERIAS_H

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "validacion.h"

struct actividades
{
    char tipoDeActividad[22];
    char diaDeLaSemana[12];
    char horaDeIncio[8];
    char horaDeFin[8];
    char salon[10];
};

struct materias
{
    char nombre[30];
    char profesor[30];
    char tipoDeMateria[20];
    char horasSemanales[10];
    struct actividades *actividad;
    struct fechasEspeciales *fechas;
    struct materias *siguiente;
};

typedef struct materias _nodoMaterias;
typedef struct fechasEspeciales _nodoFechasEspeciales;

_nodoMaterias *crearListaMaterias(_nodoMaterias *apuntador);
bool listaVacia(_nodoMaterias *apuntador);
_nodoMaterias *insetarEnListaMaterias(_nodoMaterias *apuntador);
void imprimirLista (_nodoMaterias *apuntador);
_nodoMaterias *crearNodoMaterias(char nombre[], char profesor[], char tipoDeMateria[], char horasSemanales[]);
void datosAlumno();
_nodoMaterias *eliminarMateria(_nodoMaterias *apuntador);
bool buscarMateria(char nombre[], _nodoMaterias *apuntador);
_nodoMaterias *modificarMateria(_nodoMaterias *apuntador);
#endif //LISTAMATERIAS_H

y crear un archivo "listaMaterias.c"
 #include "listaMaterias.h"

//AQUI SE CREA LISTA Y SE PONE PARA QUE APUNTE A NULL
_nodoMaterias *crearListaMaterias(_nodoMaterias *apuntador)
{
    return (apuntador = NULL);
}

//ESTA FUNCION VERIFICA SI LA LISTA ESTA VACIA
bool listaVacia(_nodoMaterias *apuntador)
{
    if (apuntador == NULL)
        return (true); //SI SALE EL TRUE SIGNIFICA QUE LA LISTA ESTA VACIA
    else
        return (false);//SI SALE EL FALSE SIGNIFICA QUE LA LISTA NO ESTA VACIA
}

//AQUI SE CREA EL NUEVO NODO DE LA LISTA
_nodoMaterias *crearNodoMaterias(char nombre[], char profesor[], char tipoDeMateria[], char horasSemanales[])
{
    _nodoMaterias *registroNuevo;

    registroNuevo = (_nodoMaterias *) malloc(sizeof(_nodoMaterias));

    printf("\n----NUEVA MATERIA----\n");
    printf("NOMBRE: ");
    fflush(stdin);
    scanf("%s",nombre);
    while(!validarLetras(nombre))
    {
        printf("\nPOR FAVOR SOLO ESCRIBA LETRAS ");
        printf("\nNOMBRE: ");
        fflush(stdin);
        scanf("%s",nombre);

        /*while(!buscarMateria())*/
    }
    printf("PROFESOR: ");
    fflush(stdin);
    scanf("%s",profesor);
    while(!validarLetras(profesor))
    {
        printf("\nPOR FAVOR SOLO ESCRIBA LETRAS ");
        printf("\nPROFESOR: ");
        fflush(stdin);
        scanf("%s",profesor);
    }
    printf("TIPO DE MATERIA: ");
    fflush(stdin);
    scanf("%s",tipoDeMateria);
    while(!validarLetras(tipoDeMateria))
    {
        printf("\nPOR FAVOR SOLO ESCRIBA LETRAS");
        printf("\nTIPO DE MATERIA: ");
        fflush(stdin);
        scanf("%s",tipoDeMateria);
    }
    printf("HORAS SEMANALES:  ");
    fflush(stdin);
    scanf("%s",horasSemanales);
    while(!validarNumero(horasSemanales))
    {
        printf("\nPOR FAVOR SOLO ESCRIBA NUMEROS");
        printf("\nHORAS SEMANALES: ");
        fflush(stdin);
        scanf("%s",horasSemanales);
    }
    fflush(stdin);

        strcpy(registroNuevo->nombre, nombre);
        strcpy(registroNuevo->profesor, profesor);
        strcpy(registroNuevo->tipoDeMateria, tipoDeMateria);
        strcpy(registroNuevo->horasSemanales, horasSemanales);
        registroNuevo->siguiente = NULL;

    return registroNuevo;

}

//AQUI SE INSERTA EL NODO EN LA LISTA LUGEO DE SER CREADO POR LA FUNCION crearNodo
_nodoMaterias *insetarEnListaMaterias(_nodoMaterias *apuntador)
{
    _nodoMaterias *registroNuevo, *apuntadorAuxiliar;
    char respuesta,ch;
    char nombre[30];
    char profesor[30];
    char tipoDeMateria[20];
    char horasSemanales[10];

    //ESTE CICLO SE ENCARGA DE QUE SE REPITA EL PORCESO PARA PODER INGRESAR MATERIAS HASTA QUE EL USUARIO DECIDA
    do
    {
            registroNuevo=crearNodoMaterias(nombre, profesor, tipoDeMateria, horasSemanales);
            if (listaVacia(apuntador))
                apuntador = registroNuevo;
            else
            {
                apuntadorAuxiliar = apuntador;
                while (apuntadorAuxiliar->siguiente != NULL)
                    apuntadorAuxiliar = apuntadorAuxiliar->siguiente;
                apuntadorAuxiliar->siguiente = registroNuevo;
            }

            printf("\nPARA INGRESAR OTRA MATERIA MARQUE... 1");
            printf("\nPARA SALIR MARQUE... '0'\n");
     while((ch = getchar()) != EOF && ch != '\n');

    scanf("%c", &respuesta);
        fflush(stdin);
   printf("RESPUESTA = %c", respuesta);

    }while (respuesta == '1');
    return apuntador;
}

//TENGO QUE RIVAR BIEN LA FUNCION DE eliminarMateria PARA VER PQ NO ME ELIMINA LAS MATERIAS

_nodoMaterias *eliminarMateria(_nodoMaterias *apuntador)
{
    char materia[20];
    printf("\nQUE MATERIA DESEA ELIMINAR:  ");
    scanf("%s",materia);
    fflush(stdin);

    //INTENTO DE BORRAR NODO 1
    if (!listaVacia(apuntador))
    {
        _nodoMaterias *borrarAuxiliar;
        _nodoMaterias *anterior = NULL;

        while (apuntador != NULL)
        {
            /*anterior = borrarAuxiliar;
            borrarAuxiliar = borrarAuxiliar->siguiente;*/
            if (strcmp(apuntador->nombre, materia) == 0)
            {
                anterior->siguiente = apuntador->siguiente;
                borrarAuxiliar = apuntador;
                apuntador = apuntador->siguiente;
                free(borrarAuxiliar);
            }
            else
            {
                anterior = apuntador;
                apuntador = apuntador->siguiente;
            }
        }
/*
        if (borrarAuxiliar == NULL)
        {
            printf("\nNODO NO ENCONTRADO");
        }else if (anterior == NULL)
            {
                apuntador = apuntador->siguiente;
                free(borrarAuxiliar);
            } else
                {
                    anterior->siguiente = borrarAuxiliar->siguiente;
                    free(borrarAuxiliar);
                }*/
    }

    return apuntador;
}

_nodoMaterias *modificarMateria(_nodoMaterias *apuntador)
{
    char materia[20];
    printf("\nQUE MATERIA DESEA MODIFICAR:  ");
    scanf("%s",materia);
    fflush(stdin);

    if (!listaVacia(apuntador))
    {
        _nodoMaterias *apuntadorAuxiliar;

        apuntadorAuxiliar = apuntador;

        while (apuntadorAuxiliar != NULL)
        {
            if (apuntadorAuxiliar != NULL && strcmp(apuntadorAuxiliar->nombre, materia) == 0)
            {
                char nombre[30];
                char profesor[30];
                char tipoDeMateria[20];
                char horasSemanales[10];

                printf("\nINGRESE LOS NUEVOS DATOS DE LA MATERIA");
                printf("\nNOMBRE: ");
                fflush(stdin);
                scanf("%s",nombre);
                while(!validarLetras(nombre))
                {
                    printf("\nPOR FAVOR SOLO ESCRIBA LETRAS ");
                    printf("\nNOMBRE: ");
                    fflush(stdin);
                    scanf("%s",nombre);
                }
                printf("PROFESOR: ");
                fflush(stdin);
                scanf("%s",profesor);
                while(!validarLetras(profesor))
                {
                    printf("\nPOR FAVOR SOLO ESCRIBA LETRAS ");
                    printf("\nPROFESOR: ");
                    fflush(stdin);
                    scanf("%s",profesor);
                }
                printf("TIPO DE MATERIA: ");
                fflush(stdin);
                scanf("%s",tipoDeMateria);
                while(!validarLetras(tipoDeMateria))
                {
                    printf("\nPOR FAVOR SOLO ESCRIBA LETRAS");
                    printf("\nTIPO DE MATERIA: ");
                    fflush(stdin);
                    scanf("%s",tipoDeMateria);
                }
                printf("HORAS SEMANALES:  ");
                fflush(stdin);
                scanf("%s",horasSemanales);
                while(!validarNumero(horasSemanales))
                {
                    printf("\nPOR FAVOR SOLO ESCRIBA NUMEROS");
                    printf("\nHORAS SEMANALES: ");
                    fflush(stdin);
                    scanf("%s",horasSemanales);
                }
                fflush(stdin);

                strcpy(apuntadorAuxiliar->nombre, nombre);
                strcpy(apuntadorAuxiliar->profesor, profesor);
                strcpy(apuntadorAuxiliar->tipoDeMateria, tipoDeMateria);
                strcpy(apuntadorAuxiliar->horasSemanales, horasSemanales);
                apuntadorAuxiliar->siguiente = NULL;
            }

            apuntadorAuxiliar = apuntadorAuxiliar->siguiente;
        }

    }
    else
        printf("\nLA LISTA ESTA VACIA");

    return apuntador;
}

//IMPRIMIR LOS NODOS DE LA LISTA
void imprimirLista (_nodoMaterias *apuntador)
{
    _nodoMaterias *apuntadorAuxiliar;

    apuntadorAuxiliar = apuntador;

    if (apuntadorAuxiliar == NULL)
        printf("NO HAY ELEMENTOS EN LA LISTA \n");
    else
    {
        while(apuntadorAuxiliar != NULL)
        {
            printf(" \n------------MATERIAS-------------- ");
            printf("\nNOMBRE: %s \n", apuntadorAuxiliar->nombre);
            printf("\nPROFESOR: %s \n", apuntadorAuxiliar->profesor);
            printf("\nTIPO DE MATERIA: %s \n", apuntadorAuxiliar->tipoDeMateria);
            printf("\nHORAS SEMANALES: %s \n", apuntadorAuxiliar->horasSemanales);

            apuntadorAuxiliar = apuntadorAuxiliar->siguiente;
        }
    }

    return;
}

//ESTA FUNCION LE PERMITE SABER AL USUARIO LAS MATERIAS QUE INSCRIBIO
void imprimirListaDeMaterias(_nodoMaterias *apuntador)
{
    int contador;

    _nodoMaterias *apuntadorAuxiliar;

    apuntadorAuxiliar = apuntador;

    if (apuntadorAuxiliar == NULL)
        printf("NO HAY ELEMENTOS EN LA LISTA\n");
    else
    {
        contador = 0;
        printf("\nLISTA DE MATERIAS REGISTRADAS\n"); //AQUI VAN APARECIENDO LAS MATERIAS EN ORDEN ASI EL USARIO SABE CUALES DEBE SELCCIONAR
        while(apuntadorAuxiliar != NULL)
        {
            contador++;
            printf("%d", contador);printf(".- %s \n", apuntadorAuxiliar->nombre);

            apuntadorAuxiliar = apuntadorAuxiliar->siguiente;
        }
    }

    return;
}

bool buscarMateria(char materia[], _nodoMaterias *apuntador)
{
    _nodoMaterias *apuntadorAuxiliar;

    apuntadorAuxiliar = apuntador;

    while (apuntadorAuxiliar != NULL)
    {
        if (strcmp(apuntadorAuxiliar->nombre, materia) == 0)
        {
            break;
        }
        apuntadorAuxiliar = apuntadorAuxiliar->siguiente;
    }

    if (apuntadorAuxiliar == NULL)
        return true;
    else
        return false;
}

A: Lo que te está pasando es que hay archivos de cabecera que se están incluyendo múltiples veces.
Por ejemplo :
//Archivo a.h
bool validar(int n);

//Archivo b.h
#include "a.h"
bool otra(int n);

//Archivo programa.c
#include "a.h"
#include "b.h"

bool validar(int n) {
  return false;
}

bool otra(int n) {
  return false;

int main(void) {
  return 0;
}

El problema en los archivos anteriores es que programa.c incluye a.h
Pero también incluye b.h ; el cual a su vez incluye a a.h
Con lo que a.h queda incluido dos veces.
La solución es usar guardas de compilación :
//Archivo a.h
#ifndef A_H
#define A_H

bool validar(int n);
#endif //A_H

//Archivo b.h
#ifndef B_H
#define B_H

#include "a.h"
bool otra(int n);

#endif //B_H

Que esto es lo que está pasando se ve en los siguientes mensajes de error :
In file included from listaMaterias.h:5:0,
                 from menu.c:5:
validacion.h:12:6: error: redefinition of 'validarNumero'
 bool validarNumero(char numero[])
      ^
In file included from usario.h:5:0,
                 from menu.c:4:
validacion.h:12:6: note: previous definition of 'validarNumero' was here
 bool validarNumero(char numero[])

listaMaterias.h incluye a validacion.h
usuario.h también inclye a validación.h
De ahí que todas las funciones definidas en validación.h salgan como repetidas.
Pon guardas de compilación a validación.h y queda solucionado. De hecho lo recomendable es poner guardas de compilación a todos los .h

A: He editado mi respuesta, de acuerdo a lo que editaste en tu pregunta:
Tus archivos estan conteniendo referencias al archivo de cabecera "validacion.h"
Por ejemplo los archivos: listaMaterias.h y usario.h incluyen ambos el archivo de cabecera validacion.h por esa razón obtienes el error:
In file included from listaMaterias.h:5:0,
                 from menu.c:5:
validacion.h:12:6: error: redefinition of 'validarNumero'
 bool validarNumero(char numero[])
      ^
In file included from usario.h:5:0,
                 from menu.c:4:
validacion.h:12:6: note: previous definition of 'validarNumero' was here
 bool validarNumero(char numero[])

Revisa la propuesta de @eyllanesc en la cual sugiere el uso de
#ifndef y #define para evitar dobles definiciones de archivos de cabecera:
#ifndef ARCHIVO_HEADER
#define ARCHIVO_HEADER

redpajama_set_name: RedPajamaStackExchange