text:
/*########## INSTRUCTIONS ##########
1. comments that start with constant: indicate colors that don't change among the color schemes
2. comments with the words lighter or darker indicate the colors that do change depending on the color scheme
For example using the blue color sheme, darker means use the darker blue and lighter means use the lighter blue
3. ems are used as the unit of measurement to maintain proportional sizing which is important for 508 compliance

/*########## BLUE COLOR SCHEME ##########
 #475B82 = darker blue
 #6E81A6 = lighter blue

/*########## GREEN COLOR SCHEME ##########
 #6A8989 = darker green
 #98B7B7 = lighter green

/*########## PURPLE COLOR SCHEME ##########
 #797C9C = darker purple
 #9FA2BA = lighter purple

/*########## TAN COLOR SCHEME ##########
 #706C60 = darker tan
 #B3AE9C = lighter tan

/*########## GRAY COLOR SCHEME ##########
 #838386 = darker gray
 #AAAAAB = lighter gray

/*########## COMMON AMONG ALL COLOR SCHEMES ##########
 #A90101 = red
 #5C5C5C = dark gray
 #CCCCCC = medium gray
 #F4F4F5 = light gray
 #FFFFFF = white
 #000000 = black
*/

body{
  margin:0;
  padding:0;
}

/*###############
HDR AND FTR BEGINS
###############*/
.hdrBG{ /* for the cell that contains the required cancer.gov header */
  background-color:#A90101; /* constant: red */
}
.subhdrBG{ /* for the cell that contains the application header */
  background-color:#475B82; /* darker */
}
.ftrTable{ /* for the table that contains the footer */
  padding-top:0.4em;
}
.logo {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0em; PADDING-TOP: 0px
}

/*###############
MENU BEGINS
###############*/
td.mainMenu{
  background-color:#5C5C5C; /* constant: dark gray */
  font-family:arial,helvetica,verdana,sans-serif;
  border-bottom:1px solid #CCCCCC; /* constant: medium gray */
  border-top:1px solid #CCCCCC; /* constant: medium gray */
}
td.mainMenuItem{ /* for the off state of the main menu (top) cells */
  font-size:0.6em;
  font-weight:bold;
  background-color:#5C5C5C; /* constant: dark gray */
  padding-left:1em;
  padding-right:1em;
}
td.mainMenuItemOver{ /* for the over state of the main menu (top) cells */
  font-size:0.6em;
  font-weight:bold;
  background-color:#475B82; /* darker */
  padding-left:1em;
  padding-right:1em;
}
td.footerMenu{ /* for the basic style of the footer menu (bottom) area */
  background-color:#5C5C5C; /* constant: dark gray */
  font-family:arial,helvetica,verdana,sans-serif;
  border-top:1px solid #CCCCCC; /* constant: medium gray */
  border-bottom:1px solid #CCCCCC; /* constant: medium gray */
}
td.footerMenuItem{ /* for the off state of the footer menu (bottom) cells */
  font-size:0.6em;
  font-weight:bold;
  background-color:#5C5C5C; /* constant: dark gray */
  padding-left:1em;
  padding-right:1em;
}
td.footerMenuItemOver{ /* for the over state of the footer menu (bottom) cells */
  font-size:0.6em;
  font-weight:bold;
  background-color:#475B82; /* darker */
  padding-left:1em;
  padding-right:1em;
}
td.subMenu{ /* for the basic style of the sub-menu area */
  background-color:#6E81A6; /* lighter */
  font-family:arial,helvetica,verdana,sans-serif;
}
td.subMenuPrimaryTitle{ /* for the title elements of the sub menu (left-side) */
  font-size:0.6em;
  font-weight:bold;
  padding-left:0.8em;
  background-color:#5C5C5C; /* constant: dark gray */
  color:#FFFFFF; /* constant: white */
  border-top:1px solid #CCCCCC; /* constant: medium gray */
  border-bottom:1px solid #CCCCCC; /* constant: medium gray */
  border-right:1px solid #CCCCCC; /* constant: medium gray */
}
td.subMenuPrimaryItems{ /* for the items under the sub-menu title elements */
  font-size:0.6em;
  background-color:#6E81A6; /* constant: white */
  color:#FFFFFF;
  font-weight:bold;
  padding-top:0.8em;
  padding-bottom:0.8em;
  padding-left:0.3em;
  border-right:1px solid #CCCCCC; /* constant: medium gray */
}
td.subMenuPrimaryItemsWithBorder{ /* for the items under the sub-menu title elements */
  font-size:0.6em;
  background-color:#6E81A6; /* constant: white */
  color:#FFFFFF;
  font-weight:normal;
  padding-top:0.3em;
  padding-bottom:0.3em;
  padding-left:0.8em;
  border-right:1px solid #CCCCCC; /* constant: medium gray */
  border-bottom:1px solid #CCCCCC; /* constant: medium gray */
}
td.subMenuPrimaryItemsWithBorderOver{ /* for the items under the sub-menu title elements */
  font-size:0.6em;
  background-color:#475B82; /* constant: white */
  color:#FFFFFF;
  font-weight:normal;
  padding-top:0.3em;
  padding-bottom:0.3em;
  padding-left:0.8em;
  border-right:1px solid #CCCCCC; /* constant: medium gray */
  border-bottom:1px solid #CCCCCC; /* constant: medium gray */
}
td.subMenuSecondaryTitle{ /* for the off state of the cell for the elements (usually common among pages) below the primary items */
  font-size:0.6em;
  font-weight:bold;
  padding-left:0.8em;
  background-color:#6E81A6; /* lighter */
  color:#FFFFFF; /* constant: white */
  border-bottom:1px solid #CCCCCC; /* constant: medium gray */
  border-right:1px solid #CCCCCC; /* constant: medium gray */
}
td.subMenuSecondaryTitleOver{ /* for the over state of the cell for the elements (usually common among pages) below the primary items */
  font-size:0.6em;
  font-weight:bold;
  padding-left:0.8em;
  background-color:#475B82; /* darker */
  color:#FFFFFF; /* constant: white */
  border-bottom:1px solid #CCCCCC; /* constant: medium gray */
  border-right:1px solid #CCCCCC; /* constant: medium gray */
}
td.subMenuFill{ /* for the empty cell below the sub-menu items */
  border-right:1px solid #CCCCCC; /* constant: medium gray */
}
td.subMenuFooter{ /* for the last row in the submenu left of the footer menu */
  font-size:0.6em;
  font-weight:bold;
  padding-left:0.8em;
  background-color:#5C5C5C; /* constant: dark gray */
  color:#FFFFFF; /* constant: white */
  border-top:1px solid #CCCCCC; /* constant: medium gray */
  border-bottom:1px solid #CCCCCC; /* constant: medium gray */
  border-right:1px solid #CCCCCC; /* constant: medium gray */
}
td.subMenuPrimaryItemsSelected{ /* for the items under the sub-menu title elements */
  font-size:0.6em;
  background-color:#EE1116; /* constant: white */
  color:#FFFFFF;
  font-weight:normal;
  padding-top:0.3em;
  padding-bottom:0.3em;
  padding-left:0.8em;
  border-right:1px solid #CCCCCC; /* constant: medium gray */
  border-bottom:1px solid #CCCCCC; /* constant: medium gray */
}

/*###############
LINKS BEGIN
###############*/
a:link,a:visited,a:active{ /* default links */
	color:#000000; /* constant: black */
	text-decoration:underline;
	white-space: nowrap;
}
a:hover{
	color:#A90101; /* constant: red */
}
a:link.subMenuPrimary,a:visited.subMenuPrimary,a:active.subMenuPrimary{ /* for the text links in the primary submenu */
	color:#FFFFFF; /* constant: dark gray */

	text-decoration:underline;
    white-space: nowrap;

}
a:hover.subMenuPrimary{
	color:#FFFFFF; /* constant: red */
}
a:link.loginSignup,a:visited.loginSignup,a:active.loginSignup{ /* for the text links in the primary submenu */
	color:#5C5C5C; /* constant: dark gray */
	text-decoration:underline;
        white-space: nowrap;
	font-size:0.6em;
}
a:hover.loginSignup{
	color:#A90101; /* constant: red */
}

a:link.contentLink,a:visited.contentLink,a:active.contentLink{ /* for the text links in the Content Part*/
	color:#5C5C5C; /* constant: dark gray */
	text-decoration:underline;
        white-space: nowrap;
	font-size:0.8em;
}
a:hover.contentLink{
	color:#A90101; /* constant: red */
}

a:link.subMenuSecondary,a:visited.subMenuSecondary,a:active.subMenuSecondary{ /* for the text links under the secondary submenu (quick links area) */
	color:#FFFFFF; /* constant: white */
	text-decoration:none;
  white-space: nowrap;
}
a:hover.subMenuSecondary{
	color:#FFFFFF; /* constant: white */
}
a:link.mainMenuLink,a:visited.mainMenuLink,a:active.mainMenuLink{ /* for the text links in the main menu */
	color:#FFFFFF; /* constant: white */
	text-decoration:none;
  white-space: nowrap;
}
a:hover.mainMenuLink{
	color:#FFFFFF; /* constant: white */
}
a:link.footerMenuLink,a:visited.footerMenuLink,a:active.footerMenuLink{ /* for the text links at the top of the footer */
	color:#FFFFFF; /* constant: white */
	text-decoration:none;
  white-space: nowrap;
}
a:hover.footerMenuLink{
	color:#FFFFFF; /* constant: white */
}
a:link.dataPagingLink,a:visited.dataPagingLink,a:active.dataPagingLink{ /* for the previous and next links for the paging areas */
	color:#5C5C5C; /* constant: dark gray */
  text-decoration:underline;
  white-space: nowrap;
}
a:hover.dataPagingLink{
	color:#A90101; /* constant: red */
	text-decoration:underline;
}

/*###############
FORM BEGINS
###############*/
.formRequiredNotice{ /* for the asterisk cell */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:1em;
  background-color:#F4F4F5; /* constant: light gray */
  color:#000000; /* constant: black */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
}
.formRequiredRadio{ /* for the asterisk cell */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:1em;
  background-color:#F4F4F5; /* constant: light gray */
  color:#000000; /* constant: black */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
}
.formSerialNumberLabel{ /* for the Serial Number cell */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:1em;
  background-color:#CCCCCC; /* constant: light gray */
  color:#000000; /* constant: black */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
}
.formSerialNumberLabelForTable{ /* for the Serial Number cell */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:1em;
  background-color:#CCCCCC; /* constant: light gray */
  color:#000000; /* constant: black */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
}
.formRequiredLabel{ /* for the required form labels */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  font-weight:bold;
  background-color:#F4F4F5; /* constant: light gray */
  color:#000000; /* constant: black */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
	text-align:right;
}
.formRequiredLabelLeft{ /* for the required form labels */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  font-weight:bold;
  background-color:#F4F4F5; /* constant: light gray */
  color:#000000; /* constant: black */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
	text-align:left;
}
.formRequiredLabelCenter{ /* for the required form labels */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  font-weight:bold;
  background-color:#F4F4F5; /* constant: light gray */
  color:#000000; /* constant: black */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
	text-align:center;
}

.formRequiredLabelCenterNoBottom{ /* for the required form labels */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  font-weight:bold;
  background-color:#F4F4F5; /* constant: light gray */
  color:#000000; /* constant: black */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  text-align:center;
}

.formLink{ /* for the asterisk cell */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:1em;
  background-color:#F4F4F5; /* constant: light gray */
  color:#000000; /* constant: black */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
}
.formTitle{ /* for header cells (top) of forms */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.8em;
  font-weight:bold;
  padding-left:0.8em;
  background-color:#5C5C5C; /* constant: dark gray */
  color:#FFFFFF; /* constant: white */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
}
.formSubTableTitle{ /* for subtitles in the table */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.8em;
  font-weight:bold;
  background-color:#CCCCCC; /* constant: medium gray */
  color:#000000; /* constant: black */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  text-align:left;
}
.formRightSubTableTitle{ /* for subtitles in the table */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.8em;
  font-weight:bold;
  background-color:#CCCCCC; /* constant: medium gray */
  color:#000000; /* constant: black */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  text-align:left;
}
.formLeftSubTableTitle{ /* for subtitles in the table */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.8em;
  font-weight:bold;
  background-color:#CCCCCC; /* constant: medium gray */
  color:#000000; /* constant: black */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  text-align:left;
}
.formLeftTopSubTableTitle{ /* for subtitles in the table */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.8em;
  font-weight:bold;
  background-color:#CCCCCC; /* constant: medium gray */
  color:#000000; /* constant: black */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  text-align:left;
}
.formRightTopSubTableTitle{ /* for subtitles in the table */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.8em;
  font-weight:bold;
  background-color:#CCCCCC; /* constant: medium gray */
  color:#000000; /* constant: black */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  text-align:left;
}
.formRightTopSubTableTitle10Sized{ /* for subtitles in the table */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.8em;
  font-weight:bold;
  background-color:#CCCCCC; /* constant: medium gray */
  color:#000000; /* constant: black */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  text-align:left;
  width:10em;
}

.formLeftSubTableTitleTextRightAligned{ /* for subtitles in the table */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.8em;
  font-weight:bold;
  background-color:#CCCCCC; /* constant: medium gray */
  color:#000000; /* constant: black */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  text-align:right;
}

td.formButtonField{ /* for the cell that contains the form elements */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.8em;
  color:#CCCCCC; /* constant: black */
  padding-left:0.8em;
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  background-color:#5C5C5C; /* constant: dark gray */
  text-align:right;
}
td.formField{ /* for the cell that contains the form elements */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  background-color:#F4F4F5; /* constant: light gray */
}
td.formFieldleftBorder{ /* for the cell that contains the form elements */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
   border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  background-color:#F4F4F5; /* constant: light gray */
}

td.formFieldRightBorder{ /* for the cell that contains the form elements */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  background-color:#F4F4F5; /* constant: light gray */
}

td.formFieldNoLeftBorder{ /* for the cell that contains the form elements */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
  background-color:#F4F4F5; /* constant: light gray */
}

td.formSmallField{ /* for the cell that contains the form elements with link on right side */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  background-color:#F4F4F5; /* constant: light gray */
}
td.formSerialNumberField{ /* for the cell that contains the Serial Number */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  background-color:#F4F4F5; /* constant: light gray */
}
td.formSerialNumberField10sized{ /* for the cell that contains the Serial Number */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  background-color:#F4F4F5; /* constant: light gray */
  width:10px;
}
td.tableContainer{ /* for the cell that contains the form elements */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:1em;
  color:#000000; /* constant: black */
  background-color:#F4F4F5; /* constant: light gray */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
}

td.formLeftTopSubTableTitle{ /* for subtitles in the table */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.8em;
  font-weight:bold;
  background-color:#CCCCCC; /* constant: medium gray */
  color:#000000; /* constant: black */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  text-align:left;
  width:15px;
}

td.formRightTopSubTableTitle10Sized{ /* for subtitles in the table */
/*  float: left; */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.8em;
  font-weight:bold;
  background-color:#CCCCCC; /* constant: medium gray */
  color:#000000; /* constant: black */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  text-align:left;
  width:73px;
  height:100%;
}
input.formFieldSized10{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  border:1px solid #5C5C5C; /* constant: dark gray */
  font-size:1em;
  width:68px;
}
label.formFieldSized10{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:1em;
  font-weight:bold;
  width:100px;
  -moz-column-width:100px;
}

.formLabel{ /* for the non-required form labels */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  background-color:#F4F4F5; /* constant: light gray */
  color:#000000; /* constant: black */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  text-align:right;
}
.formLabelLeft{ /* for the non-required form labels */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  background-color:#F4F4F5; /* constant: light gray */
  color:#000000; /* constant: black */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  text-align:left;
}
.formLabelNoBorder{ /* for the non-required form labels */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  background-color:#F4F4F5; /* constant: light gray */
  color:#000000; /* constant: black */
  text-align:right;
}
.formLabelBottomBorder{ /* for the non-required form labels */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  background-color:#F4F4F5; /* constant: light gray */
  color:#000000; /* constant: black */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  text-align:right;
}
td.formFieldLogin{ /* for the cell that contains the form elements */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
}
input.formField,textarea.formField,select.formField{ /* for the form elements themselves (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  border:1px solid #5C5C5C; /* constant: dark gray */
  font-size:1em;
}
input.formFieldSized,textarea.formFieldSized,select.formFieldSized{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  border:1px solid #5C5C5C; /* constant: dark gray */
  font-size:1em;
  width:25em;
}
textarea.formFieldSized50{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  border:1px solid #5C5C5C; /* constant: dark gray */
  font-size:1em;
  width:25em;
  height:5em;
}
input.formFieldSmallSized,textarea.formFieldSmallSized,select.formFieldSmallSized{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  border:1px solid #5C5C5C; /* constant: dark gray */
  font-size:1em;
  width:20em;
}
/* used by mandar in collection prptocol. Size set to 5em */
.formFieldSized5{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  border:1px solid #5C5C5C; /* constant: dark gray */
  font-size:1em;
  width:5em;
}

.formFieldSized5BottomBorder{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:1em;
  width:5em;
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
}
/* used by poornima in Distribution. Size set to 3em */
.formFieldSmallSized3{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  border:1px solid #5C5C5C; /* constant: dark gray */
  font-size:1em;
  width:3em;
}

/* used by mandar in collection prptocol. Size set to 5em */
input.formFieldSized2{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  border:1px solid #5C5C5C; /* constant: dark gray */
  font-size:1em;
  width:2em;
}
/* used by mandar in collection prptocol. Size set to 5em */
input.formFieldSized1{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  border:1px solid #5C5C5C; /* constant: dark gray */
  font-size:1em;
  width:1.5em;
}

/* used by mandar in collection prptocol. Size set to 5em */
input.formFieldSized3{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  border:1px solid #5C5C5C; /* constant: dark gray */
  font-size:1em;
  width:2.5em;
}

td.formFieldAllBorders{ /* for the cell that contains the form elements */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
  background-color:#F4F4F5; /* constant: light gray */
}
.formFieldSized10{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  border:1px solid #5C5C5C; /* constant: dark gray */
  font-size:1em;
  width:10em;
}
.formFieldSized15{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  border:1px solid #5C5C5C; /* constant: dark gray */
  font-size:1em;
	width:15em;
}

input.formDateSized{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  border:1px solid #5C5C5C; /* constant: dark gray */
  font-size:1em;
  width:22em;
}
select.formDropDownSized{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  border:1px solid #5C5C5C; /* constant: dark gray */
  font-size:1em;
  width:15em;
}
input.actionButton{ /* optional style for form and action buttons */
  border-right:2px solid #5C5C5C; /* constant: dark gray */
  border-bottom:2px solid #5C5C5C; /* constant: dark gray */
  border-top:1px solid #CCCCCC; /* constant: medium gray */
  border-left:1px solid #CCCCCC; /* constant: medium gray */
}

.formMessage{ /* for messages above the form */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
}

.formMessageBold{ /* for messages above the form */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
  font-weight:bold;
}
.normalForm{ /* for a general form in a content page */
  border:1px solid #5C5C5C; /* constant: dark gray */
}

/*###############
SIDEBAR BEGINS
###############*/
.sidebarSection{ /* for the individual sidebar sections */
  background-color:#F4F4F5; /* constant: light gray */
  font-family:verdana, arial, helvetica, sans-serif;
  font-size:0.7em;
}
.sidebarTitle{ /* for the titles of the individual sidebar sections */
  font-size:1em;
  font-weight:bold;
  padding-left:0.8em;
  background-color:#5C5C5C; /* constant: dark gray */
  color:#FFFFFF; /* constant: white */
}
.sidebarContent{ /* for the areas under the sidebar titles and requires text */
  font-size:1em;
  padding:0.8em;
  border-right:1px solid #CCCCCC; /* constant: medium gray */
  border-left:1px solid #CCCCCC; /* constant: medium gray */
}
.sidebarLogin{ /* for the sidebar login cells */
  font-size:0.7em;
  padding-left:0.8em;
}

/*###############
DATA TABLE BEGINS
###############*/
.dataTablePrimaryLabel{ /* for the first row */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.8em;
  font-weight:bold;
  background-color:#5C5C5C; /* constant: dark gray */
  color:#FFFFFF; /* constant: white */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  padding-left:0.4em;
}
.dataTableSecondaryLabel{ /* for the optional second row */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  font-weight:bold;
  background-color:#CCCCCC; /* constant: medium gray */
  color:#5C5C5C; /* constant: dark gray */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  padding-left:0.4em;
}
.dataTableWhiteLabel{ /* for the optional second row */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.8em;
  font-weight:bold;
  background-color:#FFFFFF; /* constant: white */
  color:#5C5C5C; /* constant: dark gray */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
  border-left:0px solid #5C5C5C; /* constant: dark gray */
  border-right:0px solid #5C5C5C; /* constant: dark gray */
  padding-left:0.4em;
}
.dataTableHeader{ /* for the horizontal column headers */
  font-family:arial,helvetica,verdana,sans-serif;
  background-color:#CCCCCC; /* constant: medium gray */
  color:#000000; /* constant: black */
  font-weight:bold;
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
}
.dataTableHeader1{ /* for the horizontal column headers with light color*/
  font-family:arial,helvetica,verdana,sans-serif;
  background-color:#CCCCCC; /* constant: medium gray */
  color:#000000; /* constant: Black */
  font-weight:bold;
  font-size:0.8em;
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
}
.dataTableWhiteCenterHeader{ /* for the horizontal column with white color*/
  font-family:arial,helvetica,verdana,sans-serif;
  background-color:#FFFFFF; /* constant: white */
  color:#000000; /* constant: Black */
  font-weight:bold;
  font-size:0.9em;
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  text-align:center;
}
.dataTable{ /* for the main table below the labels */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
}
.dataRowLight{ /* for the light color of alternating rows */
  background-color:#FFFFFF; /* constant: white */
  color:#000000; /* constant: black */
}
.dataRowDark{ /* for the dark color of alternating rows */
  background-color:#F4F4F5; /* constant: light gray */
  color:#000000; /* constant: black */
}
.dataCellText{ /* for text output cells */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  text-align:left;
}
.dataSelectedCellText{ /* for text output cells */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  text-align:left;
  background-color:#A90101;
}
.dataCellNumerical{ /* for numerical output cells */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  text-align:right;
}
.dataPagingSection{ /* for the cell that contains the paging table */
  border-right:0px solid #5C5C5C; /* constant: dark gray */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
  border-left:0px solid #5C5C5C; /* constant: dark gray */
 /* background-color:#F4F4F5; *//* constant: light gray */
}
.dataPagingText{ /* for the cells that contain the paging text */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  font-weight:bold;
  color:#5C5C5C; /* constant: dark gray */
  padding-right:0.5em;
  padding-left:0.5em;
}
.actionSection{ /* for the cell that contains the action buttons table */
  /*border-left:1px solid #5C5C5C; /* constant: dark gray */
  /*border-right:1px solid #5C5C5C; /* constant: dark gray */
  /*border-bottom:1px solid #5C5C5C; /* constant: dark gray */
}

/*###############
STANDARD CONTENT BEGINS
###############*/
table.contentPage{ /* for overall top style for a content page */
  font-family:arial,helvetica,verdana,sans-serif;
  padding-left:1em;
  padding-right:1em;
  font-size:0.7em;
  color:#000000; /* constant: black */
}
h2,.h2{ /* for header of page */
  font-size:1.6em;
  font-weight:bold;
  color:#5C5C5C; /* constant: dark gray */
  text-align:center;
}
h3,.h3{ /* for title of page */
  font-size:1.3em;
  font-weight:bold;
}
p,.p{ /* for paragraphs */
  padding-left:1em;
}
.standardText{ /* for stand-alone text not affected by any cascading text styles */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
}
.bannerHome{ /* for the banner area of the home page */
  background-color:#475B82; /* darker */
  border-right:1px solid #CCCCCC; /* constant: light gray */
}
.txtHighlight{ /* adds emphasis to text */
  color:#A90101;
}
.welcomeTitle{ /* for titles of sections inside the content area */
  font-family:verdana, arial, helvetica, sans-serif;
  font-size:0.7em;
  font-weight:bold;
  padding-left:1em;
  background-color:#CCCCCC; /* constant: medium gray */
  border-top:1px solid #CCCCCC; /* constant: medium gray */
}
.welcomeContent{ /* for the area below the title content of the home page */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  padding:1em;
  line-height:1.5em;
}
img.img{ /* for images that need a border */
  border:1px solid #5C5C5C; /* constant: dark gray */
}

.tabrightmostcell{ /* for the rightmost cell */
 font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  background-color:#F4F4F5; /* //constant: light gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
 }
td.onlyBottomBorder{ /* for the cell that contains the form elements */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  background-color:#F4F4F5; /* constant: light gray */
}
/*  used for addmore functionality */

	div#d1
	{
	 display:none;
	}
	div#d999
	{
	 display:none;
	}

.formRequiredLabelRightBorder{ /* for the required form labels */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  font-weight:bold;
  background-color:#F4F4F5; /* constant: light gray */
  color:#000000; /* constant: black */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  text-align:right;
}

.formRequiredNoticeNoBottom{ /* for the asterisk cell */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:1em;
  background-color:#F4F4F5; /* constant: light gray */
  color:#000000; /* constant: black */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #F4F4F5; /* constant: dark gray */
 }

.formFieldSized35{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  border:1px solid #5C5C5C; /* constant: dark gray */
  font-size:1em;
  width:18em;
}
/*###############
DATA GRID CLASS
###############*/
.active-controls-grid
{
	height: 100%;
	font: menu;
}
.active-grid-column
{
	border-right: 1px solid threedlightshadow;
}
.active-grid-row
{
	border-bottom: 1px solid threedlightshadow;
}

input.formDateSized15{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  border:1px solid #5C5C5C; /* constant: dark gray */
  font-size:1em;
  width:15em;
}

/* ######### Classes used for Add More Coloring  */
.formRequiredLabelAddMore{ /* for the required form labels */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  font-weight:bold;
  color:#000000; /* constant: black */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  text-align:right;
  background-color:#F4F4F5; /* constant: light gray */
}

.formLabelAddMore{ /* for the non-required form labels */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
  text-align:right;
}

.tabrightmostcellAddMore{ /* for the rightmost cell */
 font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-top:1px solid #5C5C5C; /* constant: dark gray */

 }

 .formRequiredNoticeAddMore{ /* for the asterisk cell */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:1em;
  color:#000000; /* constant: black */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
  background-color:#F4F4F5; /* constant: light gray */
}

td.formFieldAddMore{ /* for the cell that contains the form elements */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
}

.formSubTitle{ /* for sub titles(top) of forms */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.8em;
  font-weight:bold;
  padding-left:0.8em;
  background-color:#7C7C7C; /* constant: dark gray */
  color:#FFFFFF; /* constant: white */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
}

 .formLeftSubTitle{ /* for specimen requirements in collectionprotocol and distributionprotocol */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  font-weight:bold;
  background-color:#F1F1F1; /* constant: medium gray */
  color:#000000; /* constant: black */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  text-align:left;
}

 .tbBorders{ /* for block table */
  border-bottom:2px solid #5C5C5C; /* constant: dark gray */
  border-top:2px solid #5C5C5C; /* constant: dark gray */
  border-left:2px solid #5C5C5C; /* constant: dark gray */
  border-right:2px solid #5C5C5C; /* constant: dark gray */
}

td.formFieldNoBorders{ /* for the cell that contains the form elements */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  font-weight:bold;
  color:#000000; /* constant: black */
}

.formLabelNoBackGround{ /* for the non-required form labels */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.8em;
  color:#000000; /* constant: black */
}
.formLabelNoBackGroundWhiteColor{ /* for the non-required form labels */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.8em;
  color:#FFFFFF; /* constant: black */
}
td.subMenuPrimaryItemsHover{ /* SubMenu Hover effect */
  font-size:0.6em;
  background-color:#475B82;
  color:#FFFFFF;
  font-weight:normal;
  padding-top:0.3em;
  padding-bottom:0.3em;
  padding-left:0.8em;
  border-right:1px solid #CCCCCC; /* constant: medium gray */
  border-bottom:1px solid #CCCCCC; /* constant: medium gray */
}

td.mainMenuItemSelected{ /* for the selected main menu (top) cells */
  font-size:0.6em;
  font-weight:bold;
  background-color:#475B82; /* darker */
  padding-left:1em;
  padding-right:1em;
}

/* classes for Tab pages */
td.tabMenuItemSelected{ /* for the selected tab menu (top) cells */
  font-family:arial;
  font-size:0.6em;
  background-color:#FFFFFF; /*#797C9C;  darker */
  padding-left:1em;
  padding-right:1em;
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-top:1px solid #5C5C5C; /* constant: dark gray */

  color:#000000;  /* constant: white */
  text-decoration:none;
  white-space: nowrap;
}

td.tabMenuItem{ /* for the off state of the tab menu (top) cells */
  font-family:arial;
  font-size:0.6em;
  background-color:#C9C9CD; /*#9FA2BA;  constant: light purple */
  padding-left:1em;
  padding-right:1em;
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */

  color:#000000;  /* constant: white */
  text-decoration:none;
  white-space: nowrap;
}

td.tabMenuItemOver{ /* for the over state of the tab menu (top) cells */
  font-family:arial;
  font-size:0.6em;
  background-color:#FFFFFF; /*#797C9C;  darker */
  padding-left:1em;
  padding-right:1em;
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */

  color:#000000;  /* constant: white */
  text-decoration:none;
  white-space: nowrap;
}

td.tabField{ /* for the cell that contains the form elements */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  background-color:#FFFFFF;  /*#797C9C;  constant: light gray */
}

table.tabPage{ /* for overall top style for a content page */
  margin-left:10px;
  margin-top:10px;
  padding-left:1em;
  padding-right:1em;
}

td.tabMenuSeparator{ /* for the over state of the tab menu (top) cells */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
}

input.tabFieldSized,textarea.tabFieldSized,select.tabFieldSized{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  border:1px solid #5C5C5C; /* constant: dark gray */
  font-size:1em;
}
td.pageTitle{ /* for the over state of the cell for the elements (usually common among pages) below the primary items */
  font-size:0.8em;
  font-weight:bold;
  padding-left:0.8em;
  background-color:#FFFFFF; /* darker */
  color:#475B82; /* constant: white */
  border-top:3px solid #475B82; /* constant: medium gray */
  border-left:3px solid #475B82; /* constant: medium gray */
  border-right:3px solid #475B82; /* constant: medium gray */
}
td.pageTitleBorder{ /* for the over state of the cell for the elements (usually common among pages) below the primary items */
  font-size:0.8em;
  font-weight:bold;
  padding-left:0.9em;
  background-color:#FFFFFF; /* constant: white */
  color:#475B82; /* darker */
  border-bottom:3px solid #475B82; /* constant: medium gray */
}
.formLabelBold{ /* for the non-required form labels */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  font-weight:bold;
  background-color:#F4F4F5; /* constant: light gray */
  color:#000000; /* constant: black */
  border-right:0px solid #5C5C5C; /* constant: dark gray */
  border-bottom:0px solid #5C5C5C; /* constant: dark gray */
  text-align:left;
}
.formLabelLeftNoBorder{ /* for the non-required form labels */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  background-color:#F4F4F5; /* constant: light gray */
  color:#000000; /* constant: black */
  text-align:left;
}
.formLabelRightNoBorder{ /* for the non-required form labels */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  background-color:#F4F4F5; /* constant: light gray */
  color:#000000; /* constant: black */
  text-align:right;
}

.spreadsheet {
float:left;
height:150px;
width:100%;
overflow:scroll;

min-height: 100%;
margin-bottom: 1px;
}

.spreadsheet200 {
/* float:left; */
/*height:140px; */
overflow: auto;
}

.headerDiv{
float:left;
width:100%;
overflow-x:-moz-scrollbars-none;
overflow-y:-moz-scrollbars-none;
overflow: none;;
}

.selectPathDiv{
height:50px;
width:800px;
overflow-x:scroll;
overflow-y:fixed;
}

.selectPathColumnDiv{
float:left;
height:200px;
width:100%;
overflow-x:-moz-scrollbars-none;
overflow-y:-moz-scrollbars-vertical;
overflow:auto;
white-space:normal;
}

td.formField40Height{ /* for the cell that contains the form elements */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  background-color:#F4F4F5; /* constant: light gray */
  height:30px;
}

td.blankFormField{ /* for the cell that contains the form elements */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.75em;
  color:#000000; /* constant: black */
  background-color:#F4F4F5; /* constant: light gray */
  /* width:800px;*/
}

td.formField800WidthLightGray{ /* for the cell that contains the form elements */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  background-color:#F4F4F5; /* constant: light gray */
  width:100%;
}

td.formField800WidthMediumGray{ /* for the cell that contains the form elements */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  color:#000000; /* constant: black */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  background-color:#C8C8D2; /* constant: light gray */
  width:100%;
}

.formFieldSized8LightGray{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  border:1px solid #5C5C5C; /* constant: dark gray */
  font-size:1em;
  width:7em;
  background-color:#F4F4F5;
}

.formFieldSized8MediumGray{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  border:1px solid #5C5C5C; /* constant: dark gray */
  font-size:1em;
  width:7em;
  background-color:#C8C8D2;
}

textarea.formFieldSized15{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  border:1px solid #5C5C5C; /* constant: dark gray */
  font-size:1em;
	width:15em;
}
.dataPagingSection1{ /* for the cell that contains the paging table */
  border-right:0px solid #5C5C5C; /* constant: dark gray */
  border-top:0px solid #5C5C5C; /* constant: dark gray */
  border-left:0px solid #5C5C5C; /* constant: dark gray */
  border-bottom:1px solid #5C5C5C; /* constant: dark gray */
  background-color:#F4F4F5; /* constant: light gray */
}

td.formTitleSmallFont{ /* for header cells (top) of forms */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.78em;
  font-weight:bold;
  padding-left:0.8em;
  background-color:#5C5C5C; /* constant: dark gray */
  color:#FFFFFF; /* constant: white */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
}
td.formTitleSmallFont10Sized{ /* for header cells (top) of forms */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.78em;
  font-weight:bold;
  /* padding-left:0.8em; */
  background-color:#5C5C5C; /* constant: dark gray */
  color:#FFFFFF; /* constant: white */
  border-top:1px solid #5C5C5C; /* constant: dark gray */
  border-left:1px solid #5C5C5C; /* constant: dark gray */
  border-right:1px solid #5C5C5C; /* constant: dark gray */
  width:10px;
}

.formFieldSized60{ /* for the form elements themselves and with a constant width (on elements) */
  font-family:arial,helvetica,verdana,sans-serif;
  border:1px solid #5C5C5C; /* constant: dark gray */
  font-size:1em;
  width:51em;
}
td.formSerialNumberFieldHome{ /* for the cell that contains the Serial Number */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.8em;
  /* font-weight:bold; */
  color:#000000; /* constant: black */
  /* border-right:1px solid #5C5C5C; *//* constant: dark gray */
  /* border-bottom:1px solid #5C5C5C; *//* constant: dark gray */
  /* border-left:1px solid #5C5C5C; *//* constant: dark gray */
  background-color:#F4F4F5; /* constant: light gray */
}
.formLabelBoldWhiteBack{ /* for the non-required form labels */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.7em;
  font-weight:bold;
  background-color:#FFFFFF; /* constant: light gray */
  color:#000000; /* constant: black */
  border-right:0px solid #5C5C5C; /* constant: dark gray */
  border-bottom:0px solid #5C5C5C; /* constant: dark gray */
  text-align:left;
}
.formLeftSubTableTitleNoBorder{ /* for subtitles in the table */
  font-family:arial,helvetica,verdana,sans-serif;
  font-size:0.8em;
  font-weight:bold;
  background-color:#CCCCCC; /* constant: medium gray */
  color:#000000; /* constant: black */
  border-bottom:0px solid #5C5C5C; /* constant: dark gray */
  border-left:0px solid #5C5C5C; /* constant: dark gray */
  border-right:0px solid #5C5C5C; /* constant: dark gray */
  text-align:left;
}


text:
require "distributary/version"

module Distributary
  # Your code goes here...
end

redpajama_set_name: RedPajamaGithub


text:
namespace ui {
namespace text {
namespace client {

    int Game::Game(neuroClient::Game & game) {
        game_state = game;
        //TODO register signal
    }

    void Game::gameEnded() const {
        if ( game_state.isFinished() ) {
            std::cout << "Game has finished!" << endl;
        } else {
            std::cout << "Game not yet finished." << endl;
        }
    }

    void Game::currentPlayer() const {
        std::cout << game_state.getCurrentPlayer() << endl;
    }

    void Game::numberOfLivingPlayers() const {
        std::cout << game_state.getNumberOfLivingPlayers() << endl;
    }

    void Game::numberOfPlayers() const {
        std::cout << game_state.getNumberOfPlayers() << endl;
    }

}
}
}


text:
<?php

namespace JJSoft\SigesCore\UI\Field;

use DB;
use JJSoft\SigesCore\EntityGenerator\EntityModel;
use JJSoft\SigesCore\Field\FieldTypeInterface;

/**
 * Class EntityFieldPresenter
 * @package JJSoft\SigesCore\UI\Field
 */
class EntityFieldPresenter
{
    /**
     * @var EntityModel
     */
    public $entity;

    /**
     * @var \Illuminate\Foundation\Application|mixed
     */
    protected $typeResolver;

    /**
     * @var array
     */
    protected $types = [];

    /**
     * @var
     */
    protected $entry;

    /**
     * EntityFieldPresenter constructor.
     * @param EntityModel $entity
     */
    public function __construct(EntityModel $entity)
    {
        $this->entity = $entity;
        $this->typeResolver = app('field.types');
        $this->setFieldTypes();
    }

    /**
     * @param $id
     */
    public function setRowId($id, $column = 'id')
    {
        $this->entry = DB::table($this->entity->getTableName())->where($column, $id)->first();
        foreach ($this->types as $field) {
            $field->setValue($this->entry->{$field->fieldSlug});
        }
    }

    /**
     * @return array
     */
    public function getFields()
    {
        return $this->types;
    }

    /**
     * @return $this
     */
    protected function setFieldTypes()
    {
        foreach ($this->entity->fields as $field) {
            $this->types[$field->slug] = $this->typeResolver->getFieldClass($field->type);
            $this->types[$field->slug]->fieldSlug = $field->slug;
            $this->types[$field->slug]->fieldName = $field->name;
            $this->types[$field->slug]->fieldDescription = $field->description;
            $this->types[$field->slug]->fieldOptions = $field->options;
        }
        return $this;
    }
}


text:
#ifndef __PUCKMAN_SEQUENCE_HEADER__
#define __PUCKMAN_SEQUENCE_HEADER__

#define ARRAY_TO_NODES(x) std::vector<Sequence::Node>(std::begin(x), std::end(x))

#include <vector>
#include <Games/Puckman/PuckmanEnums.h>

namespace Puckman {
    class MovingEntity;
    class AnimatedPuckman;
    class Ghost;

    /**
     * This class is used to make a sequence using entities.
     */
    class Sequence {
    public:
        //--------------------------------------------------------------------------------
        // Types
        //--------------------------------------------------------------------------------

        // This struct is used in the sequence array.
        struct Node {
            // The row.
            int Row;

            // The column.
            int Column;

            // The direction.
            MovingDirectionEnum Direction;

            // Tells to the program if the coordinates are in pixel values.
            bool PixelCoords;

            // Constructs a new Node object.
            Node(int row, int col, MovingDirectionEnum dir, bool pixelCoords = false)
                : Row(row), Column(col), Direction(dir), PixelCoords(pixelCoords) {}
        };

        //--------------------------------------------------------------------------------
        // Properties
        //--------------------------------------------------------------------------------

        const std::vector<Node> & Data() const { return data_; }

        //--------------------------------------------------------------------------------
        // Methods
        //--------------------------------------------------------------------------------

        void Reset();
        void Reset(const std::vector<Node> & data);
        bool IsEnded();
        void Check(Ghost & entity);
        void Check(AnimatedPuckman & entity);

        //--------------------------------------------------------------------------------
        // Constructors, destructor and operators
        //--------------------------------------------------------------------------------

        Sequence();
        Sequence(const std::vector<Node> & data);
        Sequence(const Sequence & source);
        virtual ~Sequence();
        Sequence & operator =(const Sequence & source);

    private:
        //--------------------------------------------------------------------------------
        // Fields
        //--------------------------------------------------------------------------------

        // The sequence of directions for the entities.
        std::vector<Node> data_;

        // The current node in the sequence.
        int currentNode_;

        //--------------------------------------------------------------------------------
        // Methods
        //--------------------------------------------------------------------------------

        bool checkCoordinates(MovingEntity & entity);
        void nextNode();
    };
}

#endif


text:
#ifndef GAMSWORKSPACEIMPL_H
#define GAMSWORKSPACEIMPL_H

#include <string>
#include <set>
#include "gamscheckpoint.h"
#include "gamsdatabase.h"
#include "gamsjob.h"
#include "gamsenum.h"
#include "gclgms.h"
#include "gamspath.h"
#include "gamsversion.h"

#include <mutex>

namespace gams
{

class GAMSWorkspaceImpl
{

public:
    /// Initialize
    /// \param workingDir GAMS working directory, anchor for all file-based operations (determined automatically if omitted, in user's temporary folder)
    /// \param systemDir  GAMS system directory (determined automatically if omitted)
    /// \param debug Debug Flag
    GAMSWorkspaceImpl(const std::string& workingDir, const std::string& systemDir, GAMSEnum::DebugLevel debug);

    GAMSWorkspaceImpl(const GAMSWorkspaceImpl& ws);

    ~GAMSWorkspaceImpl();

    bool operator==(const GAMSWorkspaceImpl& other) const;

    bool operator!=(const GAMSWorkspaceImpl& other) const;

    double specValues[5];

    std::string writeSource(const std::string &gamsSource, const std::string &jobName);
    std::string findSourceFile(const std::string &fileName);

    GAMSCheckpoint addCheckpoint(GAMSWorkspace& ws, const std::string& checkpointName);

    GAMSJob addJobFromFile(GAMSWorkspace& ws, const std::string& fileName, const std::string& jobName = "");

    GAMSJob addJobFromFile(GAMSWorkspace& ws, const std::string& fileName, const GAMSCheckpoint& checkpoint, const std::string& jobName = "");

    GAMSJob addJobFromString(GAMSWorkspace& ws, const std::string& gamsSource, const std::string& jobName = "");

    GAMSJob addJobFromString(GAMSWorkspace& ws, const std::string& gamsSource, const GAMSCheckpoint& checkpoint, const std::string& jobName = "");

    GAMSDatabase addDatabase(GAMSWorkspace& ws, const std::string& databaseName = "", const std::string& inModelName = "");

    GAMSDatabase addDatabase(GAMSWorkspace& ws, const GAMSDatabase& sourceDatabase, const std::string& databaseName = ""
            , const std::string& inModelName = "");

    GAMSDatabase addDatabaseFromGDXForcedName(GAMSWorkspace &ws, const std::string& gdxFileName
                                              , const std::string& databaseName, const std::string& inModelName);

    GAMSDatabase addDatabaseFromGDX(GAMSWorkspace &ws, const std::string& gdxFileName, const std::string& databaseName = ""
            , const std::string& inModelName = "");

    GAMSDatabase addDatabaseFromGMD(GAMSWorkspace &ws, void* gmdPtr);

    /// Registers a GAMSDatabase at the workspace
    /// \param databaseName Database name to add (empty: generate default name)
    /// \returns Database name if all worked well, else an empty string
    std::string registerDatabase(const std::string databaseName = "");
    std::string nextDatabaseName();

    /// Registers a GAMSCheckpoint at the workspace
    /// \param checkpointName Checkpoint name to add (empty: generate default name)
    /// \returns Checkpoint name if all worked well, else an empty string
    std::string registerCheckpoint(std::string checkpointName = "");

    /// Registers a GAMSModelInstance at the workspace
    /// \param modelInstanceName Model instance name to add (empty: generate default name)
    /// \returns ModelInstance name if all worked well, else an empty string
    std::string registerModelInstance(const std::string miName = "");

    /// Registers a GAMSJob at the workspace
    /// \param jobName  Job name to add (empty: generate default name)
    /// \returns        Job name if all worked well, else an empty string
    std::string registerJob(const std::string jobName = "");

    GAMSOptions addOptions(GAMSWorkspace& ws, const GAMSOptions& optFrom);
    GAMSOptions addOptions(GAMSWorkspace& ws, const std::string& optFile = "");

    LogId logID() { return static_cast<LogId>(this); }

    void xxxLib(std::string libname, std::string model);

    GAMSEnum::DebugLevel debug() { return mDebug; }

    GAMSPath workingDir() const {return mWorkingDir;}
    GAMSPath systemDir() const {return mSystemDir;}
    bool usingTmpWorkingDir() {return mUsingTmpWorkingDir;}

    std::string gamsVersion() const {return GAMSVersion::gamsVersion();}
    int gamsRelease() const {return GAMSVersion::gamsMajor();}
    int gamsSubRel() const {return GAMSVersion::gamsMinor();}
    int gamsGoldRel() const {return GAMSVersion::gamsBuild();}

    static std::string apiVersionDetail() {return GAMSVersion::apiDetail();}
    static std::string apiVersion() {return GAMSVersion::api();}
    static int apiRelease() {return GAMSVersion::apiMajor();}
    static int apiSubRel() {return GAMSVersion::apiMinor();}
    static int apiGoldRel() {return GAMSVersion::apiBuild();}

    std::string scratchFilePrefix() const {return mScratchFilePrefix;}
    void setScratchFilePrefix(const std::string &scratchFilePrefix);

    std::string optFileExtension(int index);

private:

    GAMSPath mWorkingDir;
    GAMSPath mSystemDir;

    std::string mScratchFilePrefix = "_gams_cpp_";
    bool mUsingTmpWorkingDir = false;

    GAMSEnum::DebugLevel mDebug = GAMSEnum::DebugLevel::Off;

    std::set<std::string> mGamsCheckpoints;
    std::set<std::string> mGamsDatabases;
    std::set<std::string> mGamsJobs;
    std::set<std::string> mGamsModelInstances;

    std::mutex mCheckpointLock;
    std::mutex mRegisterDatabaseLock;
    std::mutex mNextDatabaseNameLock;
    std::mutex mJobLock;
    std::mutex mModelInstanceLock;
    std::mutex mDebugLock;

    int mDefDBNameCnt = 0;
    int mDefJobNameCnt = 0;
    int mDefCheckpointNameCnt = 0;
    int mDefModeliNameCnt = 0;

    std::string mDefDBNameStem = "gdb";
    std::string mDefJobNameStem = "gjo";
    std::string mDefCheckpointNameStem = "gcp";
    std::string mDefModeliNameStem = "gmi";
};

} // namespace gams

#endif // GAMSWORKSPACEIMPL_H


text:
<?php

/**
 * This file is part of the Spryker Demoshop.
 * For full license information, please view the LICENSE file that was distributed with this source code.
 */

namespace Pyz\Zed\GiftCard;

use Spryker\Shared\DummyPayment\DummyPaymentConfig;
use Spryker\Zed\GiftCard\GiftCardConfig as SprykerGiftCardConfig;

class GiftCardConfig extends SprykerGiftCardConfig
{
    /**
     * @return array
     */
    public function getGiftCardMethodBlacklist()
    {
        return [
            DummyPaymentConfig::PAYMENT_METHOD_INVOICE,
        ];
    }
}


text:
module.exports = {
  name: 'firebase',
  description: 'Passes through commands to firebase-tools.',

  runCommand: function(command, args) {
    var path    = require('path');
    var RSVP    = require('rsvp');
    var Promise = RSVP.Promise;
    var spawn   = require('child_process').spawn;

    return new Promise(function(resolve, reject) {
      var child = spawn(command, args);

      var result = {
        output: [],
        errors: [],
        code: null
      };

      child.stdout.on('data', function (data) {
        var string = data.toString();

        console.log(string);

        result.output.push(string);
      });

      child.stderr.on('data', function (data) {
        var string = data.toString();

        console.error(string);

        result.errors.push(string);
      });

      child.on('close', function (code) {
        result.code = code;

        if (code === 0) {
          resolve(result);
        } else {
          reject(result);
        }
      });
    });
  },

  triggerBuild: function(commandOptions) {
    var BuildTask = this.tasks.Build;
    var buildTask = new BuildTask({
      ui: this.ui,
      analytics: this.analytics,
      project: this.project
    });

    commandOptions.outputPath = 'dist';
    return buildTask.run(commandOptions);
  },

  run: function(options, rawArgs) {
    var self = this;
    var path = require('path');
    var command = path.join(__dirname, '..', '..', 'node_modules', 'firebase-tools', 'bin', 'firebase');

    return this.triggerBuild(options)
      .then(function() {
        return self.runCommand(command, rawArgs);
      });
  }
};


text:
package com.wt.studio.plugin.querydesigner.gef.dnd;

import org.eclipse.gef.EditPartViewer;
import org.eclipse.gef.dnd.TemplateTransferDropTargetListener;
import org.eclipse.gef.requests.CreationFactory;

import com.wt.studio.plugin.querydesigner.gef.model.ElementFactory;

public class DiagramTemplateTransferDropTargetListener extends TemplateTransferDropTargetListener
{

	public DiagramTemplateTransferDropTargetListener(EditPartViewer viewer)
	{
		super(viewer);
	}

	// ------------------------------------------------------------------------
	// Abstract methods from TemplateTransferDropTargetListener

	protected CreationFactory getFactory(Object template)
	{
		return new ElementFactory(template);
	}
}


text:
<?xml version="1.0" encoding="UTF-8"?>
<instances
	xmlns="http://www.weblab.deusto.es/configuration"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="machine_configuration.xsd"
>
	<!-- you can put more than one file; the last ones will overwrite the first ones -->
	<configuration file="machine_config.py" />
	<configuration file="machine_config.py" />

	<instance>NAME_OF_INSTANCE1</instance>
	<instance>NAME_OF_INSTANCE2</instance>
</instances>


text:
require 'spec_helper'

module LoyalPassport
  describe OauthInfo do
    pending "add some examples to (or delete) #{__FILE__}"
  end
end


text:
package org.drools.compiler.integrationtests;

import java.io.IOException;
import java.io.StringReader;
import java.lang.reflect.Constructor;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.io.IOUtils;
import org.assertj.core.api.Assertions;
import org.drools.compiler.compiler.io.Folder;
import org.drools.compiler.compiler.io.memory.MemoryFileSystem;
import org.drools.core.impl.InternalKieContainer;
import org.drools.compiler.kie.builder.impl.MemoryKieModule;
import org.junit.Test;
import org.kie.api.KieServices;
import org.kie.api.builder.KieModule;
import org.kie.api.builder.Message.Level;
import org.kie.api.builder.ReleaseId;
import org.kie.api.builder.Results;
import org.kie.api.builder.model.KieSessionModel;
import org.kie.api.definition.type.FactType;
import org.kie.api.io.Resource;
import org.kie.api.io.ResourceType;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;

import static org.drools.compiler.integrationtests.incrementalcompilation.IncrementalCompilationTest.createAndDeployJar;
import static org.drools.core.util.DroolsAssert.assertEnumerationSize;
import static org.drools.core.util.DroolsAssert.assertUrlEnumerationContainsMatch;
import static org.junit.Assert.*;

public class KieContainerTest {

    @Test
    public void testMainKieModule() {
        KieServices ks = KieServices.Factory.get();
        // Create an in-memory jar for version 1.0.0
        ReleaseId releaseId = ks.newReleaseId("org.kie", "test-delete", "1.0.0");
        createAndDeployJar( ks, releaseId, createDRL("ruleA") );

        KieContainer kieContainer = ks.newKieContainer(releaseId);
        KieModule kmodule = ((InternalKieContainer) kieContainer).getMainKieModule();
        assertEquals( releaseId, kmodule.getReleaseId() );
    }

    @Test
    public void testUpdateToNonExistingRelease() {
        // DROOLS-1562
        KieServices ks = KieServices.Factory.get();
        ReleaseId releaseId = ks.newReleaseId("org.kie", "test-release", "1.0.0");
        createAndDeployJar( ks, releaseId, createDRL("ruleA") );

        KieContainer kieContainer = ks.newKieContainer(releaseId);

        Results results = kieContainer.updateToVersion( ks.newReleaseId( "org.kie", "test-release", "1.0.1" ) );
        assertEquals( 1, results.getMessages( Level.ERROR ).size() );
        assertEquals( "1.0.0", ( (InternalKieContainer) kieContainer ).getContainerReleaseId().getVersion() );
    }

    @Test
    public void testReleaseIdGetters() {
        KieServices ks = KieServices.Factory.get();
        ReleaseId releaseId = ks.newReleaseId("org.kie", "test-delete-v", "1.0.1");
        createAndDeployJar( ks, releaseId, createDRL("ruleA") );

        ReleaseId configuredReleaseId = ks.newReleaseId("org.kie", "test-delete-v", "RELEASE");
		KieContainer kieContainer = ks.newKieContainer(configuredReleaseId);

        InternalKieContainer iKieContainer = (InternalKieContainer) kieContainer;
        assertEquals(configuredReleaseId, iKieContainer.getConfiguredReleaseId());
        assertEquals(releaseId, iKieContainer.getResolvedReleaseId());
        assertEquals(releaseId, iKieContainer.getReleaseId());
        // demonstrate internal API behavior, in the future shall this be enforced?
        assertEquals(configuredReleaseId, iKieContainer.getContainerReleaseId());

        ReleaseId newReleaseId = ks.newReleaseId("org.kie", "test-delete-v", "1.0.2");
        createAndDeployJar( ks, newReleaseId, createDRL("ruleA") );
        iKieContainer.updateToVersion(newReleaseId);

        assertEquals(configuredReleaseId, iKieContainer.getConfiguredReleaseId());
        assertEquals(newReleaseId, iKieContainer.getResolvedReleaseId());
        assertEquals(newReleaseId, iKieContainer.getReleaseId());
        // demonstrate internal API behavior, in the future shall this be enforced?
        assertEquals(newReleaseId, iKieContainer.getContainerReleaseId());
    }

    @Test
    public void testSharedTypeDeclarationsUsingClassLoader() throws Exception {
        String type = "package org.drools.test\n" +
                      "declare Message\n" +
                      "   message : String\n" +
                      "end\n";

        String drl1 = "package org.drools.test\n" +
                      "rule R1 when\n" +
                      "   $o : Object()\n" +
                      "then\n" +
                      "   if ($o.getClass().getName().equals(\"org.drools.test.Message\") && $o.getClass() != new Message(\"Test\").getClass()) {\n" +
                      "       throw new RuntimeException();\n" +
                      "   }\n" +
                      "end\n";

        String drl2 = "package org.drools.test\n" +
                      "rule R2_2 when\n" +
                      "   $m : Message( message == \"Hello World\" )\n" +
                      "then\n" +
                      "   if ($m.getClass() != new Message(\"Test\").getClass()) {\n" +
                      "       throw new RuntimeException();\n" +
                      "   }\n" +
                      "end\n";

        KieServices ks = KieServices.Factory.get();
        // Create an in-memory jar for version 1.0.0
        ReleaseId releaseId1 = ks.newReleaseId("org.kie", "test-delete", "1.0.0");
        KieModule km = createAndDeployJar( ks, releaseId1, type, drl1, drl2 );

        KieContainer kieContainer = ks.newKieContainer(releaseId1);
        KieContainer kieContainer2 = ks.newKieContainer(releaseId1);

        KieSession ksession = kieContainer.newKieSession();
        KieSession ksession2 = kieContainer2.newKieSession();

        Class cls1 = kieContainer.getClassLoader().loadClass( "org.drools.test.Message");
        Constructor constructor = cls1.getConstructor(String.class);
        ksession.insert(constructor.newInstance("Hello World"));
        assertEquals( 2, ksession.fireAllRules() );

        Class cls2 = kieContainer2.getClassLoader().loadClass( "org.drools.test.Message");
        Constructor constructor2 = cls2.getConstructor(String.class);
        ksession2.insert(constructor2.newInstance("Hello World"));
        assertEquals( 2, ksession2.fireAllRules() );

        assertNotSame(cls1, cls2);
    }

    @Test
    public void testSharedTypeDeclarationsUsingFactTypes() throws Exception {
        String type = "package org.drools.test\n" +
                      "declare Message\n" +
                      "   message : String\n" +
                      "end\n";

        String drl1 = "package org.drools.test\n" +
                      "rule R1 when\n" +
                      "   $m : Message()\n" +
                      "then\n" +
                      "   if ($m.getClass() != new Message(\"Test\").getClass()) {\n" +
                      "       throw new RuntimeException();\n" +
                      "   }\n" +
                      "end\n";

        String drl2 = "package org.drools.test\n" +
                      "rule R2_2 when\n" +
                      "   $m : Message( message == \"Hello World\" )\n" +
                      "then\n" +
                      "   if ($m.getClass() != new Message(\"Test\").getClass()) {\n" +
                      "       throw new RuntimeException();\n" +
                      "   }\n" +
                      "end\n";

        KieServices ks = KieServices.Factory.get();
        // Create an in-memory jar for version 1.0.0
        ReleaseId releaseId1 = ks.newReleaseId("org.kie", "test-delete", "1.0.0");
        createAndDeployJar( ks, releaseId1, type, drl1, drl2 );

        KieContainer kieContainer = ks.newKieContainer(releaseId1);
        KieContainer kieContainer2 = ks.newKieContainer(releaseId1);

        KieSession ksession = kieContainer.newKieSession();
        KieSession ksession2 = kieContainer2.newKieSession();

        insertMessageFromTypeDeclaration( ksession );
        assertEquals( 2, ksession.fireAllRules() );

        ReleaseId releaseId2 = ks.newReleaseId("org.kie", "test-delete", "1.0.1");
        createAndDeployJar( ks, releaseId2, type, null, drl2 );

        kieContainer.updateToVersion(releaseId2);

        // test with the old ksession ...
        ksession = kieContainer.newKieSession();
        insertMessageFromTypeDeclaration( ksession );
        assertEquals( 1, ksession.fireAllRules() );

        // ... and with a brand new one
        ksession = kieContainer.newKieSession();
        insertMessageFromTypeDeclaration (ksession );
        assertEquals( 1, ksession.fireAllRules() );

        // check that the second kieContainer hasn't been affected by the update of the first one
        insertMessageFromTypeDeclaration( ksession2 );
        assertEquals( 2, ksession2.fireAllRules() );

        ksession2 = kieContainer2.newKieSession();
        insertMessageFromTypeDeclaration( ksession2 );
        assertEquals( 2, ksession2.fireAllRules() );
    }

    private void insertMessageFromTypeDeclaration(KieSession ksession) throws InstantiationException, IllegalAccessException {
        FactType messageType = ksession.getKieBase().getFactType("org.drools.test", "Message");
        Object message = messageType.newInstance();
        messageType.set(message, "message", "Hello World");
        ksession.insert(message);
    }

    @Test(timeout = 10000)
    public void testIncrementalCompilationSynchronization() throws Exception {
        final KieServices kieServices = KieServices.Factory.get();

        ReleaseId releaseId = kieServices.newReleaseId("org.kie.test", "sync-scanner-test", "1.0.0");
        createAndDeployJar( kieServices, releaseId, createDRL("rule0") );

        final KieContainer kieContainer = kieServices.newKieContainer(releaseId);

        KieSession kieSession = kieContainer.newKieSession();
        List<String> list = new ArrayList<String>();
        kieSession.setGlobal("list", list);
        kieSession.fireAllRules();
        kieSession.dispose();
        assertEquals(1, list.size());

        Thread t = new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 1; i < 10; i++) {
                    ReleaseId releaseId = kieServices.newReleaseId("org.kie.test", "sync-scanner-test", "1.0." + i);
                    createAndDeployJar( kieServices, releaseId, createDRL("rule" + i) );
                    kieContainer.updateToVersion(releaseId);
                }
            }
        });

        t.setDaemon(true);
        t.start();

        while (true) {
            kieSession = kieContainer.newKieSession();
            list = new ArrayList<String>();
            kieSession.setGlobal("list", list);
            kieSession.fireAllRules();
            kieSession.dispose();
            // There can be multiple items in the list if an updateToVersion is triggered during a fireAllRules
            // (updateToVersion can be called multiple times during fireAllRules, especially on slower machines)
            // in that case it may fire with the old rule and multiple new ones
            Assertions.assertThat(list).isNotEmpty();
            if (list.get(0).equals("rule9")) {
                break;
            }
        }
    }

    @Test
    public void testMemoryFileSystemFolderUniqueness() {
        KieServices kieServices = KieServices.Factory.get();
        String drl = "package org.drools.test\n" +
                     "rule R1 when\n" +
                     "   $m : Object()\n" +
                     "then\n" +
                     "end\n";
        Resource resource = kieServices.getResources().newReaderResource( new StringReader( drl), "UTF-8" );
        resource.setTargetPath("org/drools/test/rules.drl");
        String kmodule = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
                         "<kmodule xmlns=\"http://www.drools.org/xsd/kmodule\">\n" +
                         "  <kbase name=\"testKbase\" packages=\"org.drools.test\">\n" +
                         "    <ksession name=\"testKsession\"/>\n" +
                         "  </kbase>\n" +
                         "</kmodule>";

        // Create an in-memory jar for version 1.0.0
        ReleaseId releaseId = kieServices.newReleaseId("org.kie", "test-delete", "1.0.0");
        createAndDeployJar(kieServices, kmodule, releaseId, resource);

        KieContainer kieContainer = kieServices.newKieContainer(releaseId);

        KieModule kieModule = ((InternalKieContainer) kieContainer).getMainKieModule();
        MemoryFileSystem memoryFileSystem = ((MemoryKieModule) kieModule).getMemoryFileSystem();
        Folder rootFolder = memoryFileSystem.getFolder("");
        Object[] members = rootFolder.getMembers().toArray();
        assertEquals(2, members.length);
        Folder firstFolder = (Folder) members[0];
        Folder secondFolder = (Folder) members[1];
        assertEquals(firstFolder.getParent(), secondFolder.getParent());
    }

    @Test
    public void testClassLoaderGetResources() throws IOException {
        KieServices kieServices = KieServices.Factory.get();
        String drl1 = "package org.drools.testdrl;\n" +
                     "rule R1 when\n" +
                     "   $m : Object()\n" +
                     "then\n" +
                     "end\n";
        Resource resource1 = kieServices.getResources().newReaderResource(new StringReader(drl1), "UTF-8");
        resource1.setTargetPath("org/drools/testdrl/rules1.drl");

        String drl2 = "package org.drools.testdrl;\n" +
                     "rule R2 when\n" +
                     "   $m : Object()\n" +
                     "then\n" +
                     "end\n";
        Resource resource2 = kieServices.getResources().newReaderResource(new StringReader(drl2), "UTF-8");
        resource2.setTargetPath("org/drools/testdrl/rules2.drl");

        String java3 = "package org.drools.testjava;\n" +
                     "public class Message {}";
        Resource resource3 = kieServices.getResources().newReaderResource(new StringReader(java3), "UTF-8");
        resource3.setTargetPath("org/drools/testjava/Message.java");
        resource3.setResourceType(ResourceType.JAVA);

        String kmodule = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
                         "<kmodule xmlns=\"http://www.drools.org/xsd/kmodule\">\n" +
                         "  <kbase name=\"testKbase\" packages=\"org.drools.testdrl\">\n" +
                         "    <ksession name=\"testKsession\"/>\n" +
                         "  </kbase>\n" +
                         "</kmodule>";

        // Create an in-memory jar for version 1.0.0
        ReleaseId releaseId = kieServices.newReleaseId("org.kie", "test-delete", "1.0.0");
        createAndDeployJar(kieServices, kmodule, releaseId, resource1, resource2, resource3);

        KieContainer kieContainer = kieServices.newKieContainer(releaseId);

        ClassLoader classLoader = kieContainer.getClassLoader();
        assertEnumerationSize(1, classLoader.getResources("org/drools/testjava")); // no trailing "/"

        assertEnumerationSize(1, classLoader.getResources("org/drools/testdrl/")); // trailing "/" to test both variants
        // make sure the package resource correctly lists all its child resources (files in this case)
        URL url = classLoader.getResources("org/drools/testdrl").nextElement();
        List<String> lines = IOUtils.readLines(url.openStream());
        Assertions.assertThat(lines).contains("rules1.drl", "rules1.drl.properties", "rules2.drl", "rules2.drl.properties");

        assertUrlEnumerationContainsMatch("^mfs\\:/$", classLoader.getResources(""));
    }

    @Test
    public void testGetDefaultKieSessionModel() {
        KieServices kieServices = KieServices.Factory.get();
        String drl = "package org.drools.test\n" +
                "rule R1 when\n" +
                "   $m : Object()\n" +
                "then\n" +
                "end\n";
        Resource resource = kieServices.getResources().newReaderResource( new StringReader( drl), "UTF-8" );
        resource.setTargetPath("org/drools/test/rules.drl");
        String kmodule = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
                "<kmodule xmlns=\"http://www.drools.org/xsd/kmodule\">\n" +
                "  <kbase name=\"testKbase\" packages=\"org.drools.test\">\n" +
                "    <ksession name=\"testKsession\" default=\"true\"/>\n" +
                "  </kbase>\n" +
                "</kmodule>";

        // Create an in-memory jar for version 1.0.0
        ReleaseId releaseId = kieServices.newReleaseId("org.kie", "test-testGetDefaultKieSessionModel", "1.0.0");
        createAndDeployJar(kieServices, kmodule, releaseId, resource);

        KieContainer kieContainer = kieServices.newKieContainer(releaseId);

        KieSessionModel sessionModel = kieContainer.getKieSessionModel(null);
        assertNotNull(sessionModel);
        assertEquals("testKsession", sessionModel.getName());
    }

    @Test
    public void testGetDefaultKieSessionModelEmptyKmodule() {
        KieServices kieServices = KieServices.Factory.get();
        String drl = "package org.drools.test\n" +
                "rule R1 when\n" +
                "   $m : Object()\n" +
                "then\n" +
                "end\n";
        Resource resource = kieServices.getResources().newReaderResource( new StringReader( drl), "UTF-8" );
        resource.setTargetPath("org/drools/test/rules.drl");
        String kmodule = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
                "<kmodule xmlns=\"http://www.drools.org/xsd/kmodule\">\n" +
                "</kmodule>";

        // Create an in-memory jar for version 1.0.0
        ReleaseId releaseId = kieServices.newReleaseId("org.kie", "test-testGetDefaultKieSessionModelEmptyKmodule", "1.0.0");
        createAndDeployJar(kieServices, kmodule, releaseId, resource);

        KieContainer kieContainer = kieServices.newKieContainer(releaseId);

        KieSessionModel sessionModel = kieContainer.getKieSessionModel(null);
        assertNotNull(sessionModel);
    }

    private String createDRL(String ruleName) {
        return "package org.kie.test\n" +
               "global java.util.List list\n" +
               "rule " + ruleName + "\n" +
               "when\n" +
               "then\n" +
               "list.add( drools.getRule().getName() );\n" +
               "end\n";
    }
}