text:
package org.assertj.assertions.generator;

import static java.lang.String.format;
import static org.apache.commons.io.IOUtils.closeQuietly;
import static org.apache.commons.lang3.StringUtils.capitalize;
import static org.apache.commons.lang3.StringUtils.isEmpty;
import static org.apache.commons.lang3.StringUtils.remove;
import static org.apache.commons.lang3.StringUtils.replace;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Comparator;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;

import org.assertj.assertions.generator.Template.Type;
import org.assertj.assertions.generator.description.ClassDescription;
import org.assertj.assertions.generator.description.DataDescription;
import org.assertj.assertions.generator.description.FieldDescription;
import org.assertj.assertions.generator.description.GetterDescription;
import org.assertj.assertions.generator.description.TypeName;

public class BaseAssertionGenerator implements AssertionGenerator, AssertionsEntryPointGenerator {

  // default file for templates
  static final String DEFAULT_IS_ASSERTION_TEMPLATE = "is_assertion_template.txt";
  static final String DEFAULT_HAS_ELEMENTS_ASSERTION_TEMPLATE_FOR_ARRAY =
	  "has_elements_assertion_template_for_array.txt";
  static final String DEFAULT_HAS_ELEMENTS_ASSERTION_TEMPLATE_FOR_ITERABLE =
	  "has_elements_assertion_template_for_iterable.txt";
  static final String DEFAULT_HAS_ASSERTION_TEMPLATE = "has_assertion_template.txt";
  static final String DEFAULT_HAS_ASSERTION_TEMPLATE_FOR_PRIMITIVE = "has_assertion_template_for_primitive.txt";
  static final String DEFAULT_HAS_ASSERTION_TEMPLATE_FOR_REAL_NUMBER = "has_assertion_template_for_real_number.txt";
  static final String DEFAULT_CUSTOM_ASSERTION_CLASS_TEMPLATE = "custom_assertion_class_template.txt";
  static final String DEFAULT_CUSTOM_HIERARCHICAL_ASSERTION_CLASS_TEMPLATE = "custom_hierarchical_assertion_class_template.txt";
  static final String DEFAULT_CUSTOM_ABSTRACT_ASSERTION_CLASS_TEMPLATE = "custom_abstract_assertion_class_template.txt";
  static final String DEFAULT_ASSERTIONS_ENTRY_POINT_CLASS_TEMPLATE = "standard_assertions_entry_point_class_template.txt";
  static final String DEFAULT_ASSERTION_ENTRY_POINT_METHOD_TEMPLATE = "standard_assertion_entry_point_method_template.txt";
  static final String DEFAULT_SOFT_ENTRY_POINT_ASSERTIONS_CLASS_TEMPLATE =
	  "soft_assertions_entry_point_class_template.txt";
  static final String DEFAULT_JUNIT_SOFT_ENTRY_POINT_ASSERTIONS_CLASS_TEMPLATE =
	  "junit_soft_assertions_entry_point_class_template.txt";
  static final String DEFAULT_SOFT_ENTRY_POINT_ASSERTION_METHOD_TEMPLATE = "soft_assertion_entry_point_method_template.txt";
  static final String DEFAULT_BDD_ENTRY_POINT_ASSERTIONS_CLASS_TEMPLATE = "bdd_assertions_entry_point_class_template.txt";
  static final String DEFAULT_BDD_ENTRY_POINT_ASSERTION_METHOD_TEMPLATE = "bdd_assertion_entry_point_method_template.txt";
  static final String ABSTRACT_ASSERT_CLASS_PREFIX = "Abstract";
  static final String ASSERT_CLASS_SUFFIX = "Assert";
  static final String ASSERT_CLASS_FILE_SUFFIX = ASSERT_CLASS_SUFFIX + ".java";
  static final String TEMPLATES_DIR = "templates" + File.separator;
  private static final String IMPORT_LINE = "import %s;%s";
  private static final String PROPERTY_WITH_UPPERCASE_FIRST_CHAR = "${Property}";
  private static final String PROPERTY_WITH_LOWERCASE_FIRST_CHAR = "${property}";
  private static final String PACKAGE = "${package}";
  private static final String PROPERTY_TYPE = "${propertyType}";
  private static final String CLASS_TO_ASSERT = "${class_to_assert}";
  private static final String CUSTOM_ASSERTION_CLASS = "${custom_assertion_class}";
  private static final String SUPER_ASSERTION_CLASS = "${super_assertion_class}";
  private static final String SELF_TYPE = "${self_type}";
  private static final String MYSELF = "${myself}";
  private static final String ELEMENT_TYPE = "${elementType}";
  private static final String ALL_ASSERTIONS_ENTRY_POINTS = "${all_assertions_entry_points}";
  private static final String IMPORTS = "${imports}";
  private static final String THROWS = "${throws}";
  private static final String THROWS_JAVADOC = "${throws_javadoc}";
  private static final String LINE_SEPARATOR = System.getProperty("line.separator");
  // assertions classes are generated in their package directory starting from targetBaseDirectory.
  // ex : com.nba.Player -> targetBaseDirectory/com/nba/PlayerAssert.java
  private String targetBaseDirectory = ".";
  private Template classAssertionTemplate;
  private Template hierarchicalClassAssertionTemplate;
  private Template abstractClassAssertionTemplate;
  private Template hasAssertionTemplate;
  private Template hasAssertionTemplateForPrimitive;
  private Template hasAssertionTemplateForRealNumber;
  private Template hasIterableElementsAssertionTemplate;
  private Template hasArrayElementsAssertionTemplate;
  private Template isAssertionTemplate;
  private Template standardAssertionsEntryPointClassTemplate;
  private Template standardAssertionEntryPointMethodTemplate;
  private Template softAssertionsEntryPointClassTemplate;
  private Template junitSoftAssertionsEntryPointClassTemplate;
  private Template softAssertionEntryPointMethodTemplate;
  private Template bddAssertionsEntryPointClassTemplate;
  private Template bddAssertionEntryPointMethodTemplate;

  /**
   * Creates a new {@link BaseAssertionGenerator} with default templates directory.
   *
   * @throws IOException if some template file could not be found or read
   */
  public BaseAssertionGenerator() throws IOException {
	this(TEMPLATES_DIR);
  }

  /**
   * Creates a new {@link BaseAssertionGenerator} with in the specified directory.
   *
   * @param templatesDirectory path where to find templates
   * @throws IOException if some template file could not be found or read
   */
  public BaseAssertionGenerator(String templatesDirectory) throws IOException {
	this(
	     new Template(Template.Type.ASSERT_CLASS,
	                  new File(templatesDirectory, DEFAULT_CUSTOM_ASSERTION_CLASS_TEMPLATE)),
	     new Template(Template.Type.HIERARCHICAL_ASSERT_CLASS,
	                  new File(templatesDirectory, DEFAULT_CUSTOM_HIERARCHICAL_ASSERTION_CLASS_TEMPLATE)),
	     new Template(Template.Type.ABSTRACT_ASSERT_CLASS,
	                  new File(templatesDirectory, DEFAULT_CUSTOM_ABSTRACT_ASSERTION_CLASS_TEMPLATE)),
	     new Template(Template.Type.HAS,
	                  new File(templatesDirectory, DEFAULT_HAS_ASSERTION_TEMPLATE)),
	     new Template(Template.Type.HAS_FOR_PRIMITIVE,
	                  new File(templatesDirectory, DEFAULT_HAS_ASSERTION_TEMPLATE_FOR_PRIMITIVE)),
	     new Template(Template.Type.HAS_FOR_ITERABLE,
	                  new File(templatesDirectory, DEFAULT_HAS_ELEMENTS_ASSERTION_TEMPLATE_FOR_ITERABLE)),
	     new Template(Template.Type.HAS_FOR_ARRAY,
	                  new File(templatesDirectory, DEFAULT_HAS_ELEMENTS_ASSERTION_TEMPLATE_FOR_ARRAY)),
	     new Template(Template.Type.IS,
	                  new File(templatesDirectory, DEFAULT_IS_ASSERTION_TEMPLATE)),
	     new Template(Type.ASSERTIONS_ENTRY_POINT_CLASS,
	                  new File(templatesDirectory, DEFAULT_ASSERTIONS_ENTRY_POINT_CLASS_TEMPLATE)),
	     new Template(Type.ASSERTION_ENTRY_POINT,
	                  new File(templatesDirectory, DEFAULT_ASSERTION_ENTRY_POINT_METHOD_TEMPLATE)),
	     new Template(Type.SOFT_ASSERTIONS_ENTRY_POINT_CLASS,
	                  new File(templatesDirectory, DEFAULT_SOFT_ENTRY_POINT_ASSERTIONS_CLASS_TEMPLATE)),
	     new Template(Type.JUNIT_SOFT_ASSERTIONS_ENTRY_POINT_CLASS,
	                  new File(templatesDirectory, DEFAULT_JUNIT_SOFT_ENTRY_POINT_ASSERTIONS_CLASS_TEMPLATE)),
	     new Template(Type.SOFT_ENTRY_POINT_METHOD_ASSERTION,
	                  new File(templatesDirectory, DEFAULT_SOFT_ENTRY_POINT_ASSERTION_METHOD_TEMPLATE)),
	     new Template(Type.BDD_ASSERTIONS_ENTRY_POINT_CLASS,
	                  new File(templatesDirectory, DEFAULT_BDD_ENTRY_POINT_ASSERTIONS_CLASS_TEMPLATE)),
	     new Template(Type.BDD_ENTRY_POINT_METHOD_ASSERTION,
	                  new File(templatesDirectory, DEFAULT_BDD_ENTRY_POINT_ASSERTION_METHOD_TEMPLATE)),
	     new Template(Type.HAS_FOR_REAL_NUMBER,
	                  new File(templatesDirectory, DEFAULT_HAS_ASSERTION_TEMPLATE_FOR_REAL_NUMBER)));
  }

  public BaseAssertionGenerator(Template classAssertionTemplate,
	                            Template hierarchicalClassAssertionTemplate,
	                            Template abstractClassAssertionTemplate,
	                            Template hasAssertionTemplate,
	                            Template hasAssertionTemplateForPrimitive,
	                            Template hasIterableElementsAssertionTemplate,
	                            Template hasArrayElementsAssertionTemplate,
	                            Template isAssertionTemplate,
	                            Template entryPointAssertionsClassTemplate,
	                            Template entryPointAssertionTemplate,
	                            Template entryPointSoftAssertionsClassTemplate,
	                            Template entryPointJUnitSoftAssertionsClassTemplate,
	                            Template entryPointSoftAssertionTemplate,
	                            Template bddAssertionsEntryPointClassTemplate,
	                            Template bddAssertionEntryPointMethodTemplate,
	                            Template hasAssertionTemplateForRealNumber) {

	this.setAssertionClassTemplate(classAssertionTemplate);
	this.setHierarchicalAssertionClassTemplate(hierarchicalClassAssertionTemplate);
	this.setAbstractAssertionClassTemplate(abstractClassAssertionTemplate);
	this.setHasAssertionTemplate(hasAssertionTemplate);
	this.setHasAssertionTemplateForPrimitive(hasAssertionTemplateForPrimitive);
	this.setHasAssertionTemplateForRealNumber(hasAssertionTemplateForRealNumber);
	this.setHasElementsAssertionForIterableTemplate(hasIterableElementsAssertionTemplate);
	this.setHasElementsAssertionForArrayTemplate(hasArrayElementsAssertionTemplate);
	this.setIsAssertionTemplate(isAssertionTemplate);
	this.setStandardAssertionsEntryPointClassTemplate(entryPointAssertionsClassTemplate);
	this.setStandardAssertionEntryPointMethodTemplate(entryPointAssertionTemplate);
	this.setSoftAssertionsEntryPointClassTemplate(entryPointSoftAssertionsClassTemplate);
	this.setJUnitSoftAssertionsEntryPointClassTemplate(entryPointJUnitSoftAssertionsClassTemplate);
	this.setSoftAssertionEntryPointMethodTemplate(entryPointSoftAssertionTemplate);
	this.setBddAssertionsEntryPointClassTemplate(bddAssertionsEntryPointClassTemplate);
	this.setBddAssertionEntryPointMethodTemplate(bddAssertionEntryPointMethodTemplate);
  }

  /**
   * Setter to define your own {@link Template} for assertion class general skeleton (see
   * custom_assertion_class_template.txt as an example).
   *
   * @param assertionClassTemplate the {@link Template} to use for assertion class general skeleton.
   */
  public final void setAssertionClassTemplate(Template assertionClassTemplate) {
	checkTemplateParameter(assertionClassTemplate, Template.Type.ASSERT_CLASS);
	this.classAssertionTemplate = assertionClassTemplate;
  }

  public final void setHierarchicalAssertionClassTemplate(Template hierarchicalAssertionClassTemplate) {
	checkTemplateParameter(hierarchicalAssertionClassTemplate, Template.Type.HIERARCHICAL_ASSERT_CLASS);
	this.hierarchicalClassAssertionTemplate = hierarchicalAssertionClassTemplate;
  }

  public final void setAbstractAssertionClassTemplate(Template abstractAssertionClassTemplate) {
	checkTemplateParameter(abstractAssertionClassTemplate, Template.Type.ABSTRACT_ASSERT_CLASS);
	this.abstractClassAssertionTemplate = abstractAssertionClassTemplate;
  }

  public final void setHasAssertionTemplate(Template hasAssertionTemplate) {
	checkTemplateParameter(hasAssertionTemplate, Template.Type.HAS);
	this.hasAssertionTemplate = hasAssertionTemplate;
  }

  public final void setHasAssertionTemplateForPrimitive(Template hasAssertionTemplateForPrimitive) {
	checkTemplateParameter(hasAssertionTemplateForPrimitive, Template.Type.HAS_FOR_PRIMITIVE);
	this.hasAssertionTemplateForPrimitive = hasAssertionTemplateForPrimitive;
  }

  public final void setHasAssertionTemplateForRealNumber(Template hasAssertionTemplateForRealNumber) {
	checkTemplateParameter(hasAssertionTemplateForRealNumber, Template.Type.HAS_FOR_REAL_NUMBER);
	this.hasAssertionTemplateForRealNumber = hasAssertionTemplateForRealNumber;
  }

  public final void setHasElementsAssertionForIterableTemplate(Template hasIterableElementsAssertionTemplate) {
	checkTemplateParameter(hasIterableElementsAssertionTemplate, Template.Type.HAS_FOR_ITERABLE);
	this.hasIterableElementsAssertionTemplate = hasIterableElementsAssertionTemplate;
  }

  public final void setHasElementsAssertionForArrayTemplate(Template hasArrayElementsAssertionTemplate) {
	checkTemplateParameter(hasArrayElementsAssertionTemplate, Template.Type.HAS_FOR_ARRAY);
	this.hasArrayElementsAssertionTemplate = hasArrayElementsAssertionTemplate;
  }

  public final void setIsAssertionTemplate(Template isAssertionTemplate) {
	checkTemplateParameter(isAssertionTemplate, Template.Type.IS);
	this.isAssertionTemplate = isAssertionTemplate;
  }

  public void setStandardAssertionsEntryPointClassTemplate(final Template standardAssertionsEntryPointClassTemplate) {
	checkTemplateParameter(standardAssertionsEntryPointClassTemplate, Type.ASSERTIONS_ENTRY_POINT_CLASS);
	this.standardAssertionsEntryPointClassTemplate = standardAssertionsEntryPointClassTemplate;
  }

  public void setStandardAssertionEntryPointMethodTemplate(final Template standardAssertionEntryPointMethodTemplate) {
	checkTemplateParameter(standardAssertionEntryPointMethodTemplate, Type.ASSERTION_ENTRY_POINT);
	this.standardAssertionEntryPointMethodTemplate = standardAssertionEntryPointMethodTemplate;
  }

  public void setDirectoryWhereAssertionFilesAreGenerated(String targetBaseDirectory) {
	this.targetBaseDirectory = targetBaseDirectory;
  }

  public void setSoftAssertionsEntryPointClassTemplate(final Template softAssertionsEntryPointClassTemplate) {
	this.softAssertionsEntryPointClassTemplate = softAssertionsEntryPointClassTemplate;
  }

  public void setJUnitSoftAssertionsEntryPointClassTemplate(final Template junitSoftAssertionsEntryPointClassTemplate) {
	this.junitSoftAssertionsEntryPointClassTemplate = junitSoftAssertionsEntryPointClassTemplate;
  }

  public void setSoftAssertionEntryPointMethodTemplate(final Template softAssertionEntryPointMethodTemplate) {
	this.softAssertionEntryPointMethodTemplate = softAssertionEntryPointMethodTemplate;
  }

  public void setBddAssertionsEntryPointClassTemplate(final Template bddAssertionsEntryPointClassTemplate) {
	this.bddAssertionsEntryPointClassTemplate = bddAssertionsEntryPointClassTemplate;
  }

  public void setBddAssertionEntryPointMethodTemplate(final Template bddAssertionEntryPointMethodTemplate) {
	this.bddAssertionEntryPointMethodTemplate = bddAssertionEntryPointMethodTemplate;
  }

  @Override
  public File generateCustomAssertionFor(ClassDescription classDescription) throws IOException {

	// Assertion content
	String assertionFileContent = generateCustomAssertionContentFor(classDescription);
	// finally create the assertion file, located in its package directory starting from targetBaseDirectory
	String targetDirectory = getDirectoryPathCorrespondingToPackage(classDescription.getPackageName());
	// build any needed directories
	new File(targetDirectory).mkdirs();
	return createFile(assertionFileContent, assertClassNameOf(classDescription) + ".java", targetDirectory);
  }

  @Override
  public File[] generateHierarchicalCustomAssertionFor(ClassDescription classDescription, Set<Class<?>> allClasses)
	  throws IOException {

	// Assertion content
	String[] assertionFileContent = generateHierarchicalCustomAssertionContentFor(classDescription, allClasses);
	// finally create the assertion file, located in its package directory starting from targetBaseDirectory
	String targetDirectory = getDirectoryPathCorrespondingToPackage(classDescription.getPackageName());
	// build any needed directories
	new File(targetDirectory).mkdirs();
	File[] assertionClassesFile = new File[2];
	final String concreteAsserClassFileName = assertClassNameOf(classDescription) + ".java";
	final String abstractAsserClassFileName = abstractAssertClassNameOf(classDescription) + ".java";
	assertionClassesFile[0] = createFile(assertionFileContent[0], abstractAsserClassFileName, targetDirectory);
	assertionClassesFile[1] = createFile(assertionFileContent[1], concreteAsserClassFileName, targetDirectory);
	return assertionClassesFile;
  }

  @Override
  public String[] generateHierarchicalCustomAssertionContentFor(ClassDescription classDescription,
	                                                            Set<Class<?>> allClasses) {
	// use class template first
	StringBuilder abstractAssertClassContentBuilder = new StringBuilder(abstractClassAssertionTemplate.getContent());

	// generate assertion method for each property with a public getter
	abstractAssertClassContentBuilder.append(generateAssertionsForDeclaredGettersOf(classDescription));
	abstractAssertClassContentBuilder.append(generateAssertionsForDeclaredPublicFieldsOf(classDescription));

	// close class with }
	abstractAssertClassContentBuilder.append(LINE_SEPARATOR).append("}").append(LINE_SEPARATOR);

	// use class template first
	StringBuilder concreteAssertClassContentBuilder = new StringBuilder(hierarchicalClassAssertionTemplate.getContent());

	String[] assertionClassesContent = new String[2];
	assertionClassesContent[0] = fillAssertClassTemplate(abstractAssertClassContentBuilder.toString(),
	                                                     classDescription, allClasses, false);
	assertionClassesContent[1] = fillAssertClassTemplate(concreteAssertClassContentBuilder.toString(),
	                                                     classDescription, null, true);
	return assertionClassesContent;
  }

  private String fillAssertClassTemplate(String template, ClassDescription classDescription,
	                                     Set<Class<?>> classesHierarchy, boolean concrete) {
	// Add any AssertJ needed imports only, other types are used with their fully qualifed names to avoid a compilation
	// error when two types have the same
	TreeSet<TypeName> assertjImports = new TreeSet<TypeName>();
	if (template.contains("Assertions.")) assertjImports.add(new TypeName("org.assertj.core.api.Assertions"));
	if (template.contains("Objects.")) assertjImports.add(new TypeName("org.assertj.core.util.Objects"));
	if (template.contains("Iterables.")) assertjImports.add(new TypeName("org.assertj.core.internal.Iterables"));

	final TypeName superAssertionClass;
	// Add assertion supertype to imports if needed
	if (classesHierarchy == null || !classesHierarchy.contains(classDescription.getSuperType())) {
	  superAssertionClass = new TypeName("org.assertj.core.api.AbstractAssert");
	} else {
	  final TypeName superTypeName = new TypeName(classDescription.getSuperType());
	  superAssertionClass = new TypeName(abstractAssertClassNameOf(superTypeName), superTypeName.getPackageName());
	}
	assertjImports.add(superAssertionClass);

	final String customAssertionClass = concrete ? assertClassNameOf(classDescription) :
	    abstractAssertClassNameOf(classDescription);
	final String selfType = concrete ? customAssertionClass : "S";
	final String myself = concrete ? "this" : "myself";

	template = replace(template, PACKAGE, classDescription.getPackageName());
	template = replace(template, CUSTOM_ASSERTION_CLASS, customAssertionClass);
	// className could be a nested class like "OuterClass.NestedClass", in that case assert class will be
	// OuterClassNestedClass
	template = replace(template, SUPER_ASSERTION_CLASS,
	                   superAssertionClass.getSimpleNameWithOuterClassNotSeparatedByDots());
	template = replace(template, CLASS_TO_ASSERT, classDescription.getClassNameWithOuterClass());
	template = replace(template, SELF_TYPE, selfType);
	template = replace(template, MYSELF, myself);
	template = replace(template, IMPORTS, listNeededImports(assertjImports, classDescription.getPackageName()));

	return template;
  }

  private String fillAssertClassTemplate(String template, ClassDescription classDescription) {
	return fillAssertClassTemplate(template, classDescription, null, true);
  }

  @Override
  public String generateCustomAssertionContentFor(ClassDescription classDescription) {

	// use class template first
	StringBuilder assertionFileContentBuilder = new StringBuilder(classAssertionTemplate.getContent());

	// generate assertion method for each property with a public getter
	assertionFileContentBuilder.append(generateAssertionsForGettersOf(classDescription));
	assertionFileContentBuilder.append(generateAssertionsForPublicFieldsOf(classDescription));

	// close class with }
	assertionFileContentBuilder.append(LINE_SEPARATOR).append("}").append(LINE_SEPARATOR);

	return fillAssertClassTemplate(assertionFileContentBuilder.toString(), classDescription);
  }

  @Override
  public String generateAssertionsEntryPointClassContentFor(final Set<ClassDescription> classDescriptionSet,
	                                                        AssertionsEntryPointType assertionsEntryPointType,
	                                                        String entryPointClassPackage) {
	if (noClassDescriptionsGiven(classDescriptionSet)) return "";
	Template assertionEntryPointMethodTemplate = chooseAssertionEntryPointMethodTemplate(assertionsEntryPointType);
	Template assertionsEntryPointClassTemplate = chooseAssertionEntryPointClassTemplate(assertionsEntryPointType);
	return generateAssertionsEntryPointClassContent(classDescriptionSet, assertionsEntryPointClassTemplate,
	                                                assertionEntryPointMethodTemplate, entryPointClassPackage);
  }

  private Template chooseAssertionEntryPointMethodTemplate(final AssertionsEntryPointType assertionsEntryPointType) {
	switch (assertionsEntryPointType) {
	case SOFT:
	case JUNIT_SOFT:
	  return softAssertionEntryPointMethodTemplate;
	case BDD:
	  return bddAssertionEntryPointMethodTemplate;
	default:
	  return standardAssertionEntryPointMethodTemplate;
	}
  }

  private Template chooseAssertionEntryPointClassTemplate(final AssertionsEntryPointType assertionsEntryPointType) {
	switch (assertionsEntryPointType) {
	case SOFT:
	  return softAssertionsEntryPointClassTemplate;
	case JUNIT_SOFT:
	  return junitSoftAssertionsEntryPointClassTemplate;
	case BDD:
	  return bddAssertionsEntryPointClassTemplate;
	default:
	  return standardAssertionsEntryPointClassTemplate;
	}
  }

  @Override
  public File generateAssertionsEntryPointClassFor(final Set<ClassDescription> classDescriptionSet,
	                                               AssertionsEntryPointType assertionsEntryPointType,
	                                               String entryPointClassPackage) throws IOException {
	if (noClassDescriptionsGiven(classDescriptionSet)) return null;
	String assertionsEntryPointFileContent = generateAssertionsEntryPointClassContentFor(classDescriptionSet,
	                                                                               assertionsEntryPointType,
	                                                                               entryPointClassPackage);
	return createAssertionsFileFor(classDescriptionSet, assertionsEntryPointFileContent,
	                               assertionsEntryPointType.getFileName(), entryPointClassPackage);
  }

  private String generateAssertionsEntryPointClassContent(final Set<ClassDescription> classDescriptionSet,
	                                                      final Template entryPointAssertionsClassTemplate,
	                                                      final Template entryPointAssertionMethodTemplate,
	                                                      String entryPointClassPackage) {
	String entryPointAssertionsClassContent = entryPointAssertionsClassTemplate.getContent();
	// resolve template markers
	String classPackage = isEmpty(entryPointClassPackage) ? determineBestEntryPointsAssertionsClassPackage(classDescriptionSet)
	    : entryPointClassPackage;
	entryPointAssertionsClassContent = replace(entryPointAssertionsClassContent, PACKAGE, classPackage);

	String allEntryPointsAssertionContent = generateAssertionEntryPointMethodsFor(classDescriptionSet,
	                                                                              entryPointAssertionMethodTemplate);
	entryPointAssertionsClassContent = replace(entryPointAssertionsClassContent, ALL_ASSERTIONS_ENTRY_POINTS,
	                                           allEntryPointsAssertionContent);
	return entryPointAssertionsClassContent;
  }

  /**
   * create the assertions entry point file, located in its package directory starting from targetBaseDirectory.
   *

   * If assertionsClassPackage is not set, we use the common base package of the given classes, if some classe are in
   * a.b.c package and others in a.b.c.d, then entry point class will be in a.b.c.
   *

   *
   * @param classDescriptionSet used to determine the assertions class package
   * @param fileContent assertions entry point file content
   * @param fileName assertions entry point file name
   * @param assertionsClassPackage the entry point class package - automatically determined if null.
   * @return the created assertions entry point file
   * @throws IOException if file can't be created.
   */
  private File createAssertionsFileFor(final Set<ClassDescription> classDescriptionSet, final String fileContent,
	                                   final String fileName, final String assertionsClassPackage) throws IOException {
	String classPackage = isEmpty(assertionsClassPackage) ? determineBestEntryPointsAssertionsClassPackage(classDescriptionSet)
	    : assertionsClassPackage;
	String assertionsDirectory = getDirectoryPathCorrespondingToPackage(classPackage);
	// build any needed directories
	new File(assertionsDirectory).mkdirs();
	return createFile(fileContent, fileName, assertionsDirectory);
  }

  private String generateAssertionEntryPointMethodsFor(final Set<ClassDescription> classDescriptionSet,
	                                                   Template assertionEntryPointMethodTemplate) {
	// sort ClassDescription according to their class name.
	SortedSet<ClassDescription> sortedClassDescriptionSet = new TreeSet<ClassDescription>(classDescriptionSet);
	// generate for each classDescription the entry point method, e.g. assertThat(MyClass) or then(MyClass)
	StringBuilder allAssertThatsContentBuilder = new StringBuilder();
	final String lineSeparator = System.getProperty("line.separator");
	for (ClassDescription classDescription : sortedClassDescriptionSet) {
	  String assertionEntryPointMethodContent = assertionEntryPointMethodTemplate.getContent();
	  // resolve class assert (ex: PlayerAssert)
	  // in case of inner classes like Movie.PublicCategory, class assert will be MoviePublicCategoryAssert
	  assertionEntryPointMethodContent = replace(assertionEntryPointMethodContent, CUSTOM_ASSERTION_CLASS,
		                                         fullyQualifiedAssertClassName(classDescription));
	  // resolve class (ex: Player)
	  // in case of inner classes like Movie.PublicCategory use class name with outer class i.e. Movie.PublicCategory.
	  assertionEntryPointMethodContent = replace(assertionEntryPointMethodContent, CLASS_TO_ASSERT,
		                                         classDescription.getFullyQualifiedClassName());
	  allAssertThatsContentBuilder.append(lineSeparator).append(assertionEntryPointMethodContent);
	}
	return allAssertThatsContentBuilder.toString();
  }

  private String determineBestEntryPointsAssertionsClassPackage(final Set<ClassDescription> classDescriptionSet) {
	SortedSet<String> packages = new TreeSet<String>(new Comparator<String>() {
	  @Override
	  public int compare(final String o1, final String o2) {
		return o1.length() - o2.length();
	  }
	});
	for (ClassDescription classDescription : classDescriptionSet) {
	  packages.add(classDescription.getPackageName());
	}
	// takes the base package of all given classes assuming they all belong to a common package, i.e a.b.c. over a.b.c.d
	// this can certainly be improved ...
	return packages.first();
  }

  private static String assertClassNameOf(ClassDescription classDescription) {
	return assertClassNameOf(classDescription.getTypeName());
  }

  private static String assertClassNameOf(TypeName type) {
	return type.getSimpleNameWithOuterClassNotSeparatedByDots() + ASSERT_CLASS_SUFFIX;
  }

  private static String abstractAssertClassNameOf(ClassDescription classDescription) {
	return abstractAssertClassNameOf(classDescription.getTypeName());
  }

  private static String abstractAssertClassNameOf(TypeName type) {
	return ABSTRACT_ASSERT_CLASS_PREFIX + assertClassNameOf(type);
  }

  private static String fullyQualifiedAssertClassName(ClassDescription classDescription) {
	return classDescription.getPackageName() + "." + classDescription.getClassNameWithOuterClassNotSeparatedByDots()
	       + ASSERT_CLASS_SUFFIX;
  }

  /**
   * Returns the target directory path where the assertions file for given classDescription will be created.
   *
   * @param packageName
   * @return the target directory path corresponding to the given package.
   */
  private String getDirectoryPathCorrespondingToPackage(final String packageName) {
	return targetBaseDirectory + File.separator + packageName.replace('.', File.separatorChar);
  }

  private static String listNeededImports(Set<TypeName> typesToImport, String classPackage) {
	StringBuilder importsBuilder = new StringBuilder();
	for (TypeName type : typesToImport) {
	  if (!type.isPrimitive() && !type.belongsToJavaLangPackage() && !type.getPackageName().equals(classPackage)) {
		importsBuilder.append(format(IMPORT_LINE, type, LINE_SEPARATOR));
	  }
	}
	return importsBuilder.toString();
  }

  protected String generateAssertionsForGettersOf(ClassDescription classDescription) {
	return generateAssertionsForGetters(classDescription.getGettersDescriptions(), classDescription);
  }

  protected String generateAssertionsForDeclaredGettersOf(ClassDescription classDescription) {
	return generateAssertionsForGetters(classDescription.getDeclaredGettersDescriptions(), classDescription);
  }

  protected String generateAssertionsForGetters(Set<GetterDescription> getters, ClassDescription classDescription) {
	StringBuilder assertionsForGetters = new StringBuilder();
	for (GetterDescription getter : getters) {
	  String assertionContent = assertionContentForProperty(getter, classDescription);
	  assertionsForGetters.append(assertionContent).append(LINE_SEPARATOR);
	}
	return assertionsForGetters.toString();
  }

  protected String generateAssertionsForPublicFieldsOf(ClassDescription classDescription) {
	return generateAssertionsForPublicFields(classDescription.getFieldsDescriptions(), classDescription);
  }

  protected String generateAssertionsForDeclaredPublicFieldsOf(ClassDescription classDescription) {
	return generateAssertionsForPublicFields(classDescription.getDeclaredFieldsDescriptions(), classDescription);
  }

  protected String generateAssertionsForPublicFields(Set<FieldDescription> fields, ClassDescription classDescription) {
	StringBuilder assertionsForPublicFields = new StringBuilder();
	for (FieldDescription field : fields) {
	  String assertionContent = assertionContentForField(field, classDescription);
	  assertionsForPublicFields.append(assertionContent).append(LINE_SEPARATOR);
	}
	return assertionsForPublicFields.toString();
  }

  private String assertionContentForField(FieldDescription field, ClassDescription classDescription) {
	String assertionContent = baseAssertionContentFor(field, classDescription);

	// we reuse template for properties to have consistent assertions for property and field but change the way we get
	// the value since it's a field and not a property:
	assertionContent = assertionContent.replace("get${Property}()", "${property}")
	                                   .replace("is${Property}())", "${property})");
	// - remove also ${throws} and ${throws_javadoc} since it does not make any sense for a field
	assertionContent = remove(assertionContent, "${throws}");
	assertionContent = remove(assertionContent, "${throws_javadoc}");

	// replace ${Property} and ${property} by field name (starting with uppercase/lowercase)
	assertionContent = replace(assertionContent, PROPERTY_WITH_UPPERCASE_FIRST_CHAR, capitalize(field.getName()));
	assertionContent = replace(assertionContent, PROPERTY_TYPE,
	                           field.getFullyQualifiedTypeNameIfNeeded(classDescription.getPackageName()));
	assertionContent = replace(assertionContent, PROPERTY_WITH_LOWERCASE_FIRST_CHAR, field.getName());
	return assertionContent;
  }

  private String assertionContentForProperty(GetterDescription getter, ClassDescription classDescription) {
	String assertionContent = baseAssertionContentFor(getter, classDescription);

	assertionContent = declareExceptions(getter, assertionContent, classDescription);

	String propertyName = getter.getPropertyName();
	assertionContent = replace(assertionContent, PROPERTY_WITH_UPPERCASE_FIRST_CHAR, capitalize(propertyName));
	assertionContent = replace(assertionContent, PROPERTY_TYPE,
	                           getter.getFullyQualifiedTypeNameIfNeeded(classDescription.getPackageName()));
	assertionContent = replace(assertionContent, PROPERTY_WITH_LOWERCASE_FIRST_CHAR, propertyName);
	return assertionContent;
  }

  /**
   * The assertion content that is common to field and property (getter), the specific content partis handled
   * afterwards.
   *
   * @param fieldOrProperty
   * @return the base assertion content
   */
  private String baseAssertionContentFor(DataDescription fieldOrProperty, ClassDescription classDescription) {
	String assertionContent = hasAssertionTemplate.getContent();
	if (fieldOrProperty.isBooleanType()) {
	  assertionContent = isAssertionTemplate.getContent();
	} else if (fieldOrProperty.isIterableType()) {
	  assertionContent = replace(hasIterableElementsAssertionTemplate.getContent(), ELEMENT_TYPE,
		                         fieldOrProperty.getElementTypeName(classDescription.getPackageName()));
	} else if (fieldOrProperty.isArrayType()) {
	  assertionContent = replace(hasArrayElementsAssertionTemplate.getContent(), ELEMENT_TYPE,
		                         fieldOrProperty.getElementTypeName(classDescription.getPackageName()));
	} else if (fieldOrProperty.isRealNumberType()) {
	  assertionContent = hasAssertionTemplateForRealNumber.getContent();
	} else if (fieldOrProperty.isPrimitiveType()) {
	  assertionContent = hasAssertionTemplateForPrimitive.getContent();
	}
	return assertionContent;
  }

  /**
   * Handle case where getter throws an exception.
   *
   * @param getter
   * @param assertionContent
   * @param classDescription
   * @return
   */
  private String declareExceptions(GetterDescription getter, String assertionContent, ClassDescription classDescription) {
	StringBuilder throwsClause = new StringBuilder();
	StringBuilder throwsJavaDoc = new StringBuilder();
	boolean first = true;
	for (TypeName exception : getter.getExceptions()) {
	  if (first) throwsClause.append("throws ");
	  else throwsClause.append(", ");
	  first = false;
	  String exceptionName = exception.getFullyQualifiedTypeNameIfNeeded(classDescription.getPackageName());
	  throwsClause.append(exceptionName);
	  throwsJavaDoc.append(LINE_SEPARATOR).append("   * @throws ").append(exceptionName);
	  throwsJavaDoc.append(" if actual.").append(getter.isBooleanType() ? "is" : "get")
		           .append("${Property}() throws one.");
	}
	if (!getter.getExceptions().isEmpty()) throwsClause.append(' ');

	assertionContent = assertionContent.replace(THROWS_JAVADOC, throwsJavaDoc.toString());
	assertionContent = assertionContent.replace(THROWS, throwsClause.toString());
	return assertionContent;
  }

  private void fillFile(String customAssertionContent, File assertionJavaFile) throws IOException {
	FileWriter fileWriter = null;
	try {
	  fileWriter = new FileWriter(assertionJavaFile);
	  fileWriter.write(customAssertionContent);
	} finally {
	  closeQuietly(fileWriter);
	}
  }

  private File createFile(String fileContent, String fileName, String targetDirectory) throws IOException {
	File file = new File(targetDirectory, fileName);
	file.createNewFile();
	fillFile(fileContent, file);
	return file;
  }

  private static void checkTemplateParameter(Template assertionClassTemplate, Type templateType) {
	if (assertionClassTemplate == null) {
	  throw new NullPointerException("Expecting a non null Template");
	}
	if (templateType != assertionClassTemplate.getType()) {
	  throw new IllegalArgumentException("Expecting a Template type to be '" + templateType + "' but was '"
		                                 + assertionClassTemplate.getType() + "'");
	}
	if (assertionClassTemplate.getContent() == null) {
	  throw new NullPointerException("Expecting a non null content in the Template");
	}
  }

  private static boolean noClassDescriptionsGiven(final Set<ClassDescription> classDescriptionSet) {
	return classDescriptionSet == null || classDescriptionSet.isEmpty();
  }

}

redpajama_set_name: RedPajamaGithub


Exambible 700-020 dumps are the completely real original braindumps, which are researched and produced by only certified subject matter experts, and corrected by multiple times before publishing.
We guarantee your success in the first attempt, If you do not pass the Cisco 700-020 exam (Cisco Video Sales Essentials) on your first attempt using our Exambible testing engine, we will give you a FULL REFUND of your purchasing fee.
To all the customers buy the Royal Pack, we provide track service.If you buy the Royal Pack within one year. you can enjoy free update. If in this period, the certified test center change the 700-020 dumps, we will send the latest version to you in time.
We provide package contains two version, one is 700-020 Questions & Answers (Printable Version), and the other is 700-020 Practice Test (Testing Engine). We are the only vendor who offers two versions without charge any other fees.
I have to pass the 700-020 exam to get promotion in my company. This is a good chance for me to brighten my career. I take part in the Cisco exam training course. This pathway does give me full help and assistance. Bright future is not far away from me. So much gratitude to exambible.com.
Cisco practice demos contained the comprehensive and logical explanations of the structured questions designed by the certified experts at exambible.com. After three months practice, I have fully understood and memorized the necessary concepts. Heartfelt gratitude to exambible.com and all the professionals.
I'm curious by nature and this curiosity of mine determines me to explore exambible.com 700-020 braindumps. I surely like what I see. Behind the 700-020 test questions there is a treasure: the most complete explanations and references. Once you find a treasure, you cannot let it go.


Life is an alluring journey filled with wonderful memorable moments. There are numerous happy moments which become precious for us and there are some depressive moments which are difficult to forget. These are the situations when you need motivation for never losing hope.
You know your heart more than anyone else. So you should learn self-motivation.
One of the most effective ways for self-motivation is positive affirmations. Go through varied positive affirmations on a daily basis. It will escalate the positivity in you as well as it will build up rigid self-confidence in you.
This is an amazing way to build up the motivation. When people encourage you then you start to feel worthy of everything. This escalates your willpower and your capability. You start to believe in your heart. Words have huge power; they can make a person successful and can even doom a successful person. This is the reason due to which you should always keep optimistic people in your company so that you also never lose hope like them. These people will remind you of your capabilities and strength.
Toxic habits and negative people will doom your life. It is best to stay away from them. This will bring a huge impact in your life. You will start to feel free of all the nonsense and then you will be able to concentrate on a better way at everything.
Reading is the best way to utilize time. You should always read books that encourage you. This will escalate your inner abilities as well as it will give you the ray of hope by motivating you. This is one of the best ways of self-motivation. This technique will help you wonders.
Meditation is the solution of all kinds of problems prevailing in this world. You should start the concentration of your mind through meditation. This will relax your mind; soul and body. It will make you realize you inner worth and peace. You will meet your inner self. It will make you extremely calm. This is the best way to motivate yourself. A peaceful and calm mind can think of marvelous ideas.
If you desire to motivate yourself then this advice will surely give you a helping hand in this process.


Refill for The MACE PEPPER BATON. Pepper Mace fogger sprays up to 5 feet. Four gram unit contains 3 one second bursts. This pricing is available ONLINE ONLY. Standard retail or in-store price is much higher.


Schoolmistress Gwen Mayfield secures a job in the sleepy little English village of Heddaby, having recovered from a nervous breakdown caused by a terrifying experience with witchcraft in Africa. She is soon accepted into local life by the friendly, if a little remote, villagers, but as time goes by she becomes progressively more disturbed as she senses that once again she is surrounded by a nest of witches.
Hollywood actress Joan Fontaine owned the rights of the book on which this film is based and seems to have brought the idea to Hammer in the hope of reinvigorating her film career. If so, it did not work and she has only made three TV movies since – "The Users" (1978), "Crossings"' and "Dark Mansions" (both 1986). She had been in movies since 1935, but made her name as the second Mrs de Wynter in Alfred Hitchcock's "Rebecca" (1940), going on to win a Best Actress Oscar for her second film for him, "Suspicion" (1941). Her many other films include "Jane Eyre" (1944), "Ivanhoe" (1952), "Serenade" (1956) and "Voyage to the Bottom of the Sea" (1961). She is the sister of Olivia de Havilland, although the two actresses fell out and have not spoken to each other for many years. Cyril Frankel directed one other film for Hammer, the controversial 1960 thriller about a child molester, "Never Take Sweets from a Stranger". Ingrid Brett is the daughter of film producer/director Roy Boulting. Martin Stephens (17 years old here) had already given impressive performances as a child in "Village of the Damned" (1960) and "The Innocents" (1961). Michelle Dotrice will always be remembered as Michael Crawford's long-suffering wife Betty in the BBC TV sitcom "Some Mothers Do 'ave 'em". Leonard Rossiter later appeared in Stanley Kubrick's "2001:A Space Odyssey" (1968) before becoming a household name in BBC TV's "The Fall and Rise of Reginald Perrin" and as miserly landlord Rigsby in Yorkshire TV's sitcom "Rising Damp". Gwen Ffrangcon-Davies was a grand old lady of the British theatre, who rarely made films. She did however take another role for Hammer in "The Devil Rides Out" (1967). She was over 100 years old when she made her last TV appearance as The Dowager in Granada's adaptation of Sherlock Holmes' "The Master Blackmailer" (1991), starring Jeremy Brett. Novelist Peter Curtis was in fact a woman, the name being a pseudonym of authoress Norah Lofts.


text:
Jeremy Renner Tied The Knot With His Girlfriend In An Incognito Wedding
Photo credit: Gettyimages
The Avengers star Jeremy Renner, has recently revealed that he arranged a secret wedding a few days ago and that he has secretly tied the knot with his girlfriend Sonni Pacheco.
Jeremy Doesn't Like The Fuss
"I have tried to protect my family's privacy and my wife's privacy. I don't need her to get hammered with my life," the Avenger said for Capitol File a several days ago.
When a reporter asked him directly if he was now officially a married man, Jeremy simply replied "yes," with a smile on his face.
The actor also emphasized he doesn't like to be followed around all the time, especially if he's trying to enjoy some quality time with his precious family.
"It's annoying being followed when I'm with my family. It's not just me – everyone in Hollywood has to deal with that. I've been talked about a whole lot, because the less I put out there, the less people know, and it makes it interesting, I assume," Jeremy added.
Loves The New Role
When it comes to his new role of being a father, Jeremy simply couldn't hide the excitement and stated that he enjoys it very much and that he feels blessed.
"It's the best thing I have ever done – doing it later on in life. By then I achieved a lot of things that I wanted to achieve; I'm so blessed for that. Now I can spend time with family."
"I really love being a father. The only thing that has changed is my perspective on things. I still work, probably even more. It used to be all for myself so I'm not old and broke. All these things I still do, but I do it now for the future of my baby, and if it gets in the way of her well-being, then I stop," Jeremy said proudly.
Connor Cruise's Relationship With Mom Nicole Kidman: Rocky Or Smooth? Neil Patrick Harris And David Burtka Finally Married Stephen Fry and Elliott Spencer Tied The Knot Johnny Depp Ties The Knot, Marries Amber Heard Pamela Anderson Divorcing Again Melania And Trump: Is Their Marriage Crumbling Before Our Eyes?
List Of All The Actresses Harvey Weinstein Sexually Abused, Details Included
Kylie Jenner Is FIVE Months Pregnant! She's Expecting A GIRL
Kristen Bell Sheds Some New Light On Anna Faris And Chris Pratt's Split
John Legend And Chrissy Teigen Might Be Getting A Divorce
Sharon Osbourne: Ozzy Cheated On Me With Six Women

redpajama_set_name: RedPajamaCommonCrawl


Rep. Devin Nunes (R-Calif.) wants Twitter to pay him $250 million in compensatory damages for failing to protect him from online harassment.
Nunes filed a complaint in Virginia state court on Monday claiming the social media giant "shadow bans" conservatives, censors certain viewpoints and knowingly monetizes "abusive" content.
The complaint also targeted several Twitter users who had harassed Nunes on the platform, including one who claimed the congressman "does cocaine" and "colluded with prostitutes." Also listed in the complaint is a user by the name of @DevinNunesMom who used the platform to attack Nunes.
Nunes' legal team alleged Twitter "shadow-banned" Nunes in 2018 "in order to restrict his free speech" and sway the midterm elections.
"Shadow banning" is the practice of limiting a user's reach by making their posts visible only to themselves. It's a common conspiracy theory among conservatives that social media companies like Twitter regularly shadow ban right-wing voices.
Though this wouldn't have actually constituted shadow banning, and it affected both Republican and Democratic accounts, many conservatives saw this as proof that Twitter discriminated against them.
Nunes' attorney did not immediately respond to a request for comment.


text:
Maajid Nawaz's Plea To Mark Carney To Put Ethnic Minority Person On £50 Note
Maajid Nawaz says the campaign to put a person from black, Asian and minority ethnic background as the face of the new £50 note is a gentle reminder that there is still more work to do for race equality.
A campaign to have a historic figure from a black, Asian and minority ethnic background for the new plastic £50 note has been backed by more than 200 people including prominent stars, cultural leaders and politicians.
It comes after the Bank of England closed public nominations for suggestions for a new portrait on Friday.
The governor of the bank Mark Carney will make a final decision next year.
The campaigners' letter said: "Ethnic minority communities represent 14% of the British population.
"We do not lack candidates, and arguably their achievements were the greater for having been made at a time when many careers were effectively closed to them, whether through colonial rules, racism, or the legacy of slavery."
Crimean War nurse Mary Jane Seacole has been suggested as a portrait on the plastic £50 note. Picture: Getty
And Maajid agreed, noting that it took the campaign for him to realise that "there wasn't a person of colour on any of our money".
"That then made me realise how many other areas like this are blindspots," he said.
"How have I lived my life and gone through my entire 41 years and gotten used to that sort of blank, let's call it being white-washed out of existence and not being represented?
"And it kind of reminds you that there is still something to campaign for along these lines.
"They haven't yet decided who's on the other side and who will be on the other side of this new plastic £50 note is an opportunity to seize. Seize the moment and put somebody on that note."
The Best Of Maajid Nawaz
Maajid Nawaz's Blistering Case For Why Second Referendum Is Not Undemocratic
Maajid Nawaz Tests How The Queen Could Block Brexit Amid Parliament Deadlock
Maajid's Powerful Monologue On Dealing With British Made Extremism
Jeremy Corbyn Is Willing To Meet Terrorists, So Why Not Theresa May?
Maajid Nawaz: Is The Phrase "Whiter Than White" Racist?


Sinosteel Corporation of China won the bid for the mining rights of the Empresa Siderúrgica del Mutún (ESM) in Santa Cruz, Bolivia, on Jan 19.
The ESM is the world's largest iron-ore resource situated 2,000 kilometers (1,243 miles) southeast of La Paz, capital of Bolivia, with gross reserves at 40 billion tons.
Winning six out of seven votes in the last round of bidding, Sinosteel beat its rival, another Chinese enterprise Henan Complant Mechanical & Electrical Equipment Group Co. Ltd (HCME), with overwhelming odds.
According to the steel project carried out by ESM, ore-dressing plants, granulation workshops and plants for direct reduction will be set up in Bolivia, stated Saisaer Nawaluo, Mining Minister of Bolivia.
He added that a steel mill with continuous casting technology will also be established to satisfy 60 percent of domestic steel demand.
Sinosteel will invest $450 million in the project and initiate the construction in 100 days as prescribed under the supervision of another international corporation.
In 2007, the government of Bolivia collaborated with Jindal South West Group of India to develop ESM but failed five years later. Many corporations from Russia, Australia, Venezuela and China thereafter expressed their interest in the project.
"We have to choose a corporation rich in experience and funds as our powerful support. Sinosteel is our best choice", said Nawaluo in a news conference.


Perfect as an add on to any type of party.
* $250 max 15 children.
* Each additional child $15.
* $375 for up to 15 kids.
* Each additional child $20.
Prices vary. Contact us for a quote.
* New Jersey and Staten Island additional charge.
canceled within 48 hours of the scheduled appointment.


The same assessment method is used, whether designing a conventional, HD or IP mega pixel system. To ensure the system meets the customers' needs, the surveyor must first find out what their expectations are, this comes hand in hand with a detailed site survey. To achieve the best results, we also consider all the different types of equipment available. This is no mean task, as there is an extensive range of components to choose from, along with continual advancements in technology and new products.
To ensure we achieve this goal, we only use our most experienced surveyors, who have an in depth knowledge of every aspect of CCTV solutions. By maintaining close links with our suppliers/manufactures, attending regular training seminars and trade shows, the surveyors are continually kept up to date with all the products available.
HD systems are approximately double the cost of a conventional option, they do however have major advantages over their cheaper cousins, when comparing the quality of live and recorded images. HD cameras provide approximately 2 megapixel images, well over double the quality of conventional cameras. This enables cameras to cover a larger area with much better results, providing excellent images for evidential purposes. The only disadvantage other than cost, is the smaller variety of products to choose from when compared to the more established conventional market. There are also advantages when compared to an IP megapixel system, this becomes apparent if you wish to upgrade from an existing conventional system as HD uses the same co-axial cable making upgrades relatively straight forward. We have detailed some basic descriptions of the most common cameras and ancillaries used within our installations so you have a better understanding of the equipment available.
Our digital video recorders use the latest compression technology, ensuring outstanding hi-resolution playback and a long recording time. Depending on the number of pictures per second, the quantity of recorded cameras and the size of the hard drive, our DVR's are capable of recording over a month of video.
The latest units offer 2.1 mega-pixels in a compact cylindrical housing. They come with integral high powered infrared (IR) lighting for low light operation along with zoom lenses. They are capable of targeting the exact area requiring protection. Static Domes - These cameras also come with 2.1 mega-pixels in an even more compact, dome type housing. Available with integral infrared lighting for low light operation. However, due to size restrictions, they rarely come with zoom lenses. More suited to short range wide angle applications they are very useful in targeting an area at close range. HD Bodied Cameras - Although larger and more expensive than their more petite cousins, their size permits them to be more flexible, offering more features. They also come with the same 2.1 mega-pixels resolution. As they come without lenses, you can pick the exact lens to suit your needs. They are available from extremely wide fish eye to high powered zoom lenses, which can see incredible distances. When installed outside, a large housing will be needed. This too can have its advantages, for example large housings are more visible and so act as a bigger deterrent. They can also be fitted with heaters for humid environments, very high powered IR lighting and PTZ (pan/tilt/zoom) mounting systems.
Choosing the best type of PTZ for any site depends on many factors such as - • Camera location • Light levels (with or without infra-red lighting) • Longevity • Ease of maintenance • The environment such as very wet, humid or corrosive locations or areas where vandalism is prevalent.
Although larger and more expensive than most dome cameras, as modular units, they are much more versatile. For example, they can include long range IR lighting, extra powerful zoom lenses and have a large choice of cameras. Typically they are used on high security compounds and large commercial premises. The downsides are they're much larger, heavier units, being more difficult to install, higher maintenance and can't look directly below.


text:
Woman Arrested for Calling 911
Officers says she dialed emergency 150 times since June.
By Evelyn Diaz
August 8, 2015 / 8:41 AM
911 wants a Georgia woman to lose their number.
Toshiba L. Smith was taken into police custody last week for calling 911 more than 150 times in two months, the Macon Telegraph reports. Bibb County authorities charged the 41-year-old with making false reports and misusing the emergency line.
WATCH: SANDRA WASN'T THE ONLY ONE: 6 BLACK WOMEN FOUND DEAD IN JAIL
A sheriff's report says the woman was arrested Tuesday after calling 911 to claim a neighbor was using a recording device to monitor her. The report says Smith sometimes called emergency services so often that officers were showing up at her home back-to-back. Smith was reportedly warned that she would be arrested if she didn't stop making the calls, but that didn't deter her.
She was released on $1,300 bond Wednesday. A telephone number listed in her name was disconnected Thursday.
BET National News - Keep up to date with breaking news stories from around the nation, including headlines from the hip hop and entertainment world.
Click here to enter the #LookYourSundayBest contest for a chance to win FREE natural hair-care products.
Watch: If Jail Populations Are Decreasing, Why Are More Inmates Dying? in the BET.com exclusive video below.
(Photo: Bibb County Police Department)


text:
http://archiver.rootsweb.com/th/read/DOVER/1999-02/0918177767
From: "GAYLE CALABRESE"
Subject: [DOVER-L] Samuel and Susan Campbell Dover's Line part A
The following info is mostly for the benefit of those Dovers who are descended from Susan Campbell Dover ref: as subject. I have been communicating with a descendant of Susan's son by a first marriage, Hardaway Youngblood. There has never been any "proof" of this marriage, or that Hardaway was actually her son until now. They are as certain that he was her son, even though there isn't a marriage record for them, any more than there is proof of one for most of the unions that we recognize. There are for them, bible records, and various printed biographies to support this. The most significant things that I rec'd a copies of included a letter from Susan to her daughter Eliza, that was written during the Civil War, a photo of Susan's son, Hardaway , and a copy of a statement from JD Worthington, a greatgrandson of Hardaway Youngblood that was part of a biography of John Marion Bolton. Susan's letter was written in 1863. It makes reference to having rec'd a letter from her son Thomas [my greatgreat grandfather married to Nancy Ross] who was in the confederate army, and what he related about the conditions there. She says that "Bryant was at Dalton the other day and the report there was that Longstreet's men was cut to pieces dreadful on the 8th day of the month though I hope it is a fals report." She talks about a group of 60 yankees stealing the horses and mules. Names mentioned are "the McCamy's, Howels, James Crow, the Bryants family, and that man Cook. She closes with, " Adaline [Dover] sends her love to you all, and give our love to all of the children and except [accept] the same yourselves we remain with love and respect, your Affectionate Father and Mother and Sister till
separated by Death. Samuel and Susan Dover to John M. & Eliza E. Bolton and family, Farewell."
If any of her descendants would like to have copies, I will be glad to cpy & send it to them....just let me know.
Subject: [DOVER-L] Samuel and Susan Campbell Dover Part B
>From the biography of John Marion Bolton, grandfather of JD Worthington. [He preached at ten known churches in Ga.]
The heading is " 406th Dist. Ga. Militia. PICKNEYVILLE SETTLEMENT. Gwinnett County, Ga.
" In 1830 a stagecoach ran through Lawrenceville, Pinckneyville, and to Bennington, Alabama. Pinckneyville was a village with a post office. It was a trading post and a stagecoach stop, it also had a Inferior Courthouse located there. In 1870 this courthouse was moved to Norcross, Ga.
In 1813-1818, the first settlement established near what is now Lawrenceville, was Hog Mountain, There was a fort there called Fort Daniel in 1812. Hog Mountain gave way to was is now know as Lawrenceville, nearby."
"Samuel Dover married Susan Campbell Youngblood about 1828, for my grandmother their oldest child was born 7/17/1829, some where near Lawrenceville. According to my uncle Tom Bolton, Samuel Dover drove a stagecoach about 1820, between Augusta, Gainesville, and Dalton, Ga. when Dalton was in Murray County. Perhaps that is why Samuel Dove moved from Gwinnett County in 1850 to Murray County, where the 1860 census reveals that he had reside there for 10 years. He died and is buried there.
There can be no doubt that Samuel Dover was in Pinckneyville many times, because it to was a stagecoach stop. John Marion Bolton was appointed Captain of the 406 District, Pinckneyville, 11/25/1848, by Governor George W. Towns of Milledgeville, at age 23 1/2. This indicates he was a man of good character. This was 2 months and 7 days before he married grandma, Eliza E. Dover, 2/11/1849.
The 1850 census of Gwinnett County Ga. list John Marion Bolton as a school master, age 25, born in SC. His wife, Eliza E. Dover is listed as age 22. They had one child James Samuel Bolton, age 9 monts. Their marriage license is on file in Book 4, pg. 106, Court of the Ordinary, Lawrenceville, Ga. Marriage records for Gwinnett County begin with 1844, due to a fire about 1871, many records were destroyed, hence my failure to findthe marriage record, if there, of Samuel Dover.
My Maternal GGrandparents, Samuel and Susan Campbell Youngblood Dover, were both born in SC, according to the 1850 census of Gwinnett County, and the 1860 census of Murray Co. These censuses supply their ags from which their birth years can be determined.
Today Pinckneyville is a cross-roads settlement including Mt. Carmel Methodist Churchyard where Hardaway Youngblood lies buried, only child of Susan Campbell Youngblood Dover by her lst marriage to a Youngblood. His identity was first made know to me over 40 years ago by uncle Tom Bolton.
Hardaway Youngblood was a half brother of Eliza E. Dover Bolton and upon his mother's marriage to Samuel Dover, grew up with the Dover family for some years. So close were they that grandma Bolton named her 2nd son, William Hardaway Bolton for him. [Church and cemetery established 1826] "
A few lines follow regarding Kate Bolton's Bible, copies , and Alice Youngblood great granddaughter of Susan, being the only direct descendant living near Pinckneyville. This was compiled by J.D. Worthington in 1967.
The following notes come from a "Lineage of Susan Campbell" compiled by James D. Worthington along with notes from Alice Youngblood, both great grandchildren of Susan's.
Susan Campbell b. 1802, in SC. Based on 1850 Gwinnett Co. Ga. Census and 1860 Murray Co. Census. According to uncle Tom Bolton, Susan died in Ozark County, Evening Shade, Ark. having gone there because her oldest son, Samuel Zachary Dover lived there. She was buried there. Her son, Hardaway Youngblood was b. ca. 1819. Died 1899 buried Mt. Carmel Churchyard. He married Elizabeth Duncan in 1846. According to Alice Youngblood he was in the Civil war. He had 5 sons and 2 daughters.
1. Robert Anderson Youngblood, [married to Mary Palmer Haynie in 1873] born Feb.14,1848, Gwinnett Co. d. 12/28/1928. Age 80.
2.John Youngblood
3. Dave Youngblood
4. Frank Youngblood
5. William Youngblood
6. Catherine
7. a girl ?
Alice Youngblood is a daughter of Robert Anderson Youngblood. The genealogy of Susan's goes on to include reference to Samuel being buried in Murray Co. Ga., and list their 9 children. With Eliza Dover Bolton, b. 7/17/1829 died 5/9/1900 buried Milner, Ga. and the years of the other children's births attributed to the ages given in the census of Gwinnett Co. for 1850. " Samuel Dover resided in Gwinnett County for at least 21 years from 1828 until the 1850's when he moved to Murray County Ga."
Considering that the family of Susan Campbell is unknown, as was the family of Hardaway Youngblood, it is notable to see the names of his children as being common "Dover" names. Afterall, this probably is the family he related to, and it was a common pracitice to name children after family. Campbell, Susan (I0187)
Pike County, Journal
Zebulon, GA., Friday, April 10, 1891
Dr. John McDowell, a prominent young physician of Macon died at the home of his mother in Barnesville last Sunday. He was a son of the late Dr. George McDowell, and a brother of P.H. McDowell, a telegraph operator at Griffin. From a physician who was well acquainted with the deceased, we learn that his death was due to cigarette smoking.
(Transcribed 10/17/02 Lynn Cunningham)
At Zebulon Road Cemetery Lamar (formerly Pike) County:
Dr. J.M. McDowell, b. 16 Mar 1861, d. 5 Apr 1891
Also his father:
Dr. G.M. McDowell, b. 26 July 1834, d. 21 July 1883
http://ftp.rootsweb.com/pub/usgenweb/ga/pike/obits/1890s/mcdowell.txt McDowell, Dr. John M (I1372)
3 Holland and wife Sarah convey a portion of Long Point to William Luckett. Middleton, Holland (I0703)
4 Putnam D. SIMS Self M Male W 22 GA Engineer GA GA
Rosa SIMS Wife M Female W 20 GA Keeping Hou
Edner SIMS Dau S Female W 2 GA GA GA
Rosa B. SIMS Dau S Female W 1 GA GA GA
Martha CLAYTON Other S Female B 11 GA Nurse GA GA
Love CLAYTON Other S Female B 9 GA Nurse GA GA
William CLAYTON Other S Male B 6 GA GA GA
Annie Lee CLAYTON Other S Female B 4 GA GA GA
Census Place Grantville, Coweta, Georgia
Family History Library Film 1254142
NA Film Number T9-0142
Page Number 522A Simms, Putnam Dickinson (I1263)
5 The name of Thurstan's wife is not known. Family F6093
6 "10th September 1796. JOEL DICKENSON of Hancock County to ROBERT SIMMS of same place for the sume of one hundred and fourteen pounds for a tract of land containing one hundred and eighty two and a half acres in Hancock County on the waters of the Beaverdam of Ogeechee and adjoining WILLIAMSON's line and by FEW's corner. Wit: Will Dent, J.P. and H. (illegible). Reg: 30th September 1801."
Abstract at Helen and Tim Marsh, compilers, Land Deed Genealogy of Hancock County, Georgia (Greenville, South Carolina: Southern Historical Press 1997), p. 268. Deed Book E, p. 269. Simms, Robert III (I0306)
7 "Charles Weatherford was the second and last husband of Sehoy McPherson. They raised four children that I knew. Betsy, the oldest child, married Sam Moniac, and was the mother of Major David Moniac, who was educated at West Point and was killed by the Seminoles in the fall of 1836- he was educated at West Point in consequence of the faithful and disinterested friendship of his father to the whites. Billy was the next oldest, Jack next, and a younger daughter whose name I have forgotten. She married Capt. Shumac, a very intelligent officer of the United States army." Family F1373
9 "A missus dominicus (plural missi dominici), Latin for 'envoy[s] of the lord [ruler]' or palace inspector, also known in Dutch as Zendgraaf (German: Sendgraf), meaning "sent Graf", was an official commissioned by the Frankish king or Holy Roman Emperor to supervise the administration, mainly of justice, in parts of his dominions too remote for frequent personal visits. As such, the missus performed important intermediary functions between royal and local administrations. There are superficial points of comparison with the original Roman corrector, except that the missus was sent out on a regular basis. Four points made the missi effective as instruments of the centralized monarchy: the personal character of the missus, yearly change, isolation from local interests and the free choice of the king." Azzo, Alberto I Margrave of Milan (I19126)
10 "A charter dated Feb 3, 1247 records a final agreement between 'John Plesseto' [de Plessis] and 'William Mauduyt and Alice his wife', relating to 'premises Warwick ... pertientibus county Warwickshire, where Thomas [de Beaumont, 6th Earl of Warwick], brother of Margaret [de Beaumont], wife of John, whose heir she is' agreeing the succession of the latter if the wife of the former died without heirs." Medieval Lands. Thomas had died the previous June (26 June 1242) without issue. of Warwick, Alice (I12781)
11 "A childhood accident had left him with a deformed nose, squahed flat to his face, but he was tall, athletic and blue-eyed with a bushy beard and fair hair. To his admirers this made him look like a fiece lion. To his enemies he looked 'like a monkey'. Enrique suffered a form of acromegaly or gogantism, which left him with outsized hands and feet along with an abnormally large head and thick facial features. His massive forehead stood above strangely staring eyes and wide, strong cheeks tht flattened out as they descended into a long, unwieldy jaw." Castilla y León, Enrique IV de King of Castile and León (I23215)
12 "A covert marriage must have seemed liked a policy to have very few serious risks and a number of positive advantages: this was a bride who could demonstrate Edward's commitment to evenhanded kingship, but whose family was not so grand or proud as to feel they had anything to gain by wrecking his trust." Family F2561
13 "A day or so after, one of my scouts brought news of eighty or a hundred Indians camped on the east side of the Alabama, near what is now called Dale's Ferry. I took sixty men, intending to bury Jack Evans, and, if practicable, attack the enemy. Crossing the river in two canoes, which I had previously concealed, we spent the night in the canebrake. At daylight I manned each canoe with five picked men, and directed them to move cautiously up the river, while the rest of us followed the trail which ran along the bank. I considered that the canoes would be useful if we had to retreat or cross the river, or to carry our wounded. When we reached Bailey's, whose cabins were on the east, and his corn-crib and field on the westbank, we discovered two Indian canoes, laden with corn, paddling up stream. I ordered Jerry Austill to lay his canoes under the bluff and conceal his men from the Indians until I could get ahead of them. Unfortunately, the path left the river bank on account of swamp and cane-brakes, and so continued two and a half miles before it again approached the river. The Indians had, doubtless, perceived my canoes from the first, and I now saw them moving rapidly up, still far above us. We pushed on at a lively rate, George Foster and myself being a hundred yards in advance of the others. At an abrupt turn of the path we suddenly encountered five warriors. The file-leader leveled his rifle, but, before he could pull trigger, I shot him down. Foster shot the next, and the rest broke into the cane-brake. The leader of the party was Will Milfort, three quarters white, tall, handsome, intelligent, and prepossessing, and a strong attachment existed between us. He camped with me at the great council of Took-a-batcha, and privately informed me when Tecumseh was about to speak. By the influence of Weatherford he joined the hostiles, and was on his first war-path when he met his fate. We recognized each other in a moment; there was a mutual exclamation of surprise- a pang of regret, perhaps- but no time for parley. I dropped a tear over his body, and often bewail the destiny that doomed him to fall by the hand of his best friend. Such are the dreadful necessities of war. Some time after I sought and interred his fleshless bones; they now moulder on the banks of the river he loved so well; and often since, in my solitary bivouac, in the dead of night, have I fancied that I heard his wailing voice in the tops of the aged pines. Even now my heart bleeds for poor Will." Milfort, Will (I6024)
14 "A large number of the following invitations were issued to favored recipients yesterday: Mrs. M. E. Dickinson requests the pleasure of your presence at the wedding reception of her daughter Effie Pauline, and Dr. Henry Jackson Garland, Wednesday evening, December 18th, from half past eight until eleven o'clock, Meriwether Street, Griffin, Georgia." The Weekly News, December 13, 1889, reproduced at Fred R. Hartz and Emilie K. Hartz, Marriage and Death Notices From the Griffin (Georgia) Weekly News and The Griffin Weekly News and Sun, 1882-1896 (Vidalia, Georgia: The Gwendolyn Press), 164.
Family F0432
15 "A little way along Front street was Wall & Company's store, presided over by Mr. Fernando J. Moreno, who was also underwriter's agent. Mr. Moreno was a thorough American, though of foreign descent. Courtly, polite, with distinguished manners, he was to be seen each afternoon taking his constitutional on a pacing pony, out to the bush and South Beach. He was slightly deaf, and carried a silver ear trumpet gracefully suspended from his left arm, which strangers often took for a cornet, and a wag was once known to stop him with the question, "Old man, when are you going to give your concert?" Needless to say the question was not heard, for no man was familiar with Mr. Moreno with impunity. His chief assistant at that time was Mr. William McClintock, afterwards mayor of the city; a large, portly, powerful ex-man-of-war's-man from Philadelphia, who had had among other vicissitudes the experience of going down with the United States steamship Congress when she was sunk by the Merrimac." Moreno, Fernando Joaquin (I5054)
16 "A similar phrase ("juxta usitatam ecclesise Anglican* computationem" ["the use of the Church of England reckoning"]) occurs on the next slab, that of Hugh Poyntz, who died as a young man in March 1604. * * * The three here named, Edward, Hugh, and Robert, were sons of Sir Nicholas Poyntz of Iron Acton, by his second wife, the Lady Margaret Stanley, daughter of Edward, 3rd Earl of Derby." Poyntz of Tockington Park, Hugh (I11200)
17 "A similar phrase ("juxta usitatam ecclesise Anglican* computationem" ["the use of the Church of England reckoning"]) occurs on the next slab, that of Hugh Poyntz, who died as a young man in March 1604. * * * The three here named, Edward, Hugh, and Robert, were sons of Sir Nicholas Poyntz of Iron Acton, by his second wife, the Lady Margaret Stanley, daughter of Edward, 3rd Earl of Derby." Family F1806
18 "Abducted from her tent, browbeaten by her mother Maria Comnena into accepting a dubious annulment, Isabella finally acquiesced and was wed to Conrad. Decades later a papal commission would condemn their marriage as both bigamous and incestuous (because Isabella's sister had once been married to Conrad's brother) but for now the need for strong military leadership overruled the niceties of law." Family F6024
19 "According to Europäische Stammtafeln, Enguerrand, Marguerite, Marie and Beatrix were born from their father's first marriage and Hugues and Guy from his third (in addition, it lists Flandrine whose parentage is uncertain as shown above). None of the sources...provide sufficient information to determine the marriage from which any of these children were born." Family F5925
20 "According to Jaime de Salazar y Acha, followed by other authors, among them, Gonzalo Martínez Diez, they married in 1100, and with this ceremony their son was legitimized and declared heir of the Kingdoms of León and Castile. Salazar y Acha, Jaime de (1993). "Contribución al reinado de Alfonso VI de Castilla: algunas aclaraciones sobre su política matrimonial". Anales de la Real Academia Matritense de Heráldica y Genealogía, (Madrid: Real Academia Matritense de Heráldica y Genealogía, 1993)(ISSN 1133-1240), II: 323-5; Martínez Díez, Gonzalo, Alfonso VI: Señor del Cid, conquistador de Toledo, (Madrid: Temas de Hoy, S.A., 2003)(ISBN 84-8460-251-6), p. 121; Reilly, Bernard F., The Contest of Christian and Muslim Spain: 1031-1157, (Cambridge, Mass.: Blackwell, 1992)(ISBN 9780631199649), p. 96.
For Salazar y Acha, Zaida and the fourth wife of Alfonso VI, Isabel, are the same person, 'despite of the impotent efforts of later historians to try to prove that she was not the Moor Zaida' and, accordingly, she would also be the mother of Elvira and Sancha Alfónsez.[Salazar y Acha, pp. 323?324]
Another reason the author mentions to support this hypothesis was that shortly after the marriage of the king with Isabel, his son Sancho begins to confirm royal charters and, if Isabel and Zaida were not the same person, the new queen would not have allowed the new protagonism of Sancho in detriment of her possible future sons. Salazar y Acha, Jaime de (2007). "De nuevo sobre la mora Zaida", Hidalguía: La revista de genealogía, nobleza y armas, (Madrid: Asociación de hidalgos de fuero de España, 2007)(ISBN 9788495215291. ISSN 0018-1285), March-April, p. 221.
He also cites a charter from the cathedral of Astorga dated 14 April 1107 where Alfonso VI grants some fueros and acts cum uxore mea Elisabet et filio nostro Sancio (with my wife Isabel and our son Sancho). Salazar y Acha (2007), p. 228 This is the only document where Sancho is referred to as 'our son', since in others he only appears as the king's son even though Queen Isabel also confirms the charters.
Reilly accepts that there were two Isabels: the Moor Zaida (baptized Isabel) and the other Isabel, but argues that to reinforce the position of Sancho Alfónsez, the king annulled his marriage to Isabel in March 1106 and married Zaida. [Reilly (1992), p. 96; Reilly, Bernard F., The Kingdom of León-Castilla under King Alfonso VI, 1065?1109 (Princeton: Princeton University Press, 1989)(ISBN 9788487103032). p. 364-5).
The hypothesis that Alfonso VI had married Zaida was rejected by Menéndez Pidal and Lévi-Provençal. [Gambra, Andrés, Alfonso VI: Cancillería, curia e imperio, Vol. I. Estudio (León : Centro de Estudios e Investigación "San Isidoro" : Caja de España de Inversiones : Caja de Ahorros y Monte de Piedad, 1997)(ISBN 8487667287), p. 475.]" Family F4683
21 "Afterwards, in May, Roger [de Mortimer] also probably attended the marriage of his eldest daughter Margaret with Thomas, the son and heir of Lord Berkeley, which secured an earlier alliance with an important lord of the Welsh Marches. Interestingly Berkeley and his adherent John Maltravers and Thomas Gurney had fallen out with the Earl of Pembroke [Aymer de Valence] at this time, and Berkeley's move towards Roger was a long-term political shift, not a mere interweaving of alliances but a vote of confidence in him as a leader." Family F3100
22 "Alfonso VI's penultimate marriage was to Isabel and 'the cause of controversy during centuries has been whether this Isabel was the same person as Zaida or a different individual'. [Salazar y Acha, Jaime de, "Contribución al reinado de Alfonso VI de Castilla: algunas aclaraciones sobre su política matrimonial". Anales de la Real Academia Matritense de Heráldica y Genealogía (in Spanish) (Madrid: Real Academia Matritense de Heráldica y Genealogía. II: 301?336, 1993), p. 227. ISSN 1133-1240]
Both appear together for the first time on 14 May 1100 although the diploma is considered suspicious, and the second time in that same year at an unspecified date. [Gambra, Andrés, Alfonso VI. Cancillería, curia e imperio (in Spanish). Vol. I. Estudio. (León: Centro de Estudios e Investigación; San Isidoro: Caja España y el Archivo Histórico Diocesano de León, 1997) p. 473. ISBN 8487667287.]
Isabel's last mention in royal diplomas was on 8 and 14 May 1107 and she probably died in the middle of that year.[Gambra, p. 474.] She is, according to Salazar y Acha, Zaida, who after her baptism was called Isabel. If not identical to Zaida, her origin is uncertain. Bishop Pelagius of Oviedo does not refer to her origin. Lucas de Tuy in the 13th century, based on the epitaph of Isabel, makes her daughter of King Louis of France, who at that time would have to be Louis VI although this seems to be chronologically impossible. Reilly considers that she was probably of Burgundian origin. [Reilly, Bernard F., The Contest of Christian and Muslim Spain: 1031-1157. (Cambridge, Mass.: Blackwell, 1992) pp. 322-3] although this does not appear in the documentation."
23 "Alfonso's eccentric will was contested and a conventional political solution found to the succession crisis it provoked. (Put briefly, if not simply: Alfonso's brother, a Benedictine monk, was taken out of holy orders and married to the sister of the Duke of Aquitaine; the resulting daughter was married as an infant to the Count of Barcelona, Ramon Berenguer IV; Alfonso's brother, Ramiro, retired back to the cloister and Ramon Berenguer took control of Aragón, merging the kingdom permanently with his own territories.)" Family F3457
24 "Although Audley was an aging commander and his tactics had been seriously naive, he did not lack personal valor. He fought in the thick of the battle. But in the melee he was sought out by one Sir Roger Kynaston of Hordley, a retainer of the duke of York, who was among Salisbury's knights. In the open field, where the ground sloped gently downward, Audley eventually lost his valiant stand. He was hacked down and killed, and his assistant commander John Sutton, Lord Dudley, was taken prisoner. The loyalists had lost their leader and soon gave up the fight. The battle lasted a total of around four hours, and by the end of it perhaps two thousand men lay dead in the field, their blood seeping into the warm autumn soil." Touchet, James 5th Baron Audley, 2nd Baron Touchet (I12382)
25 "Anthony Poyntz, third son of Sir Nicholas Poyntz, was admitted to the Inner Temple November 1567. He would seem to have turned out a disreputable character. In 1581 he is described as of Frampton, co. Gloucester, Gent., and received a pardon for divers felonies. He was convicted with others for the crime of having on 1st Nov. 1574 ill-treated and placed in much fear, so that his life was despaired of, on the highway at Frampton Leas, co. Glouc, one John Gurden, and having stolen from him feloniously £100 then on his person of money belonging to a certain John Parsons; also of a similar felony of having stolen from Conan Parsons a like sum of £100 (Pat. Tested at Westminster, 3rd May 1582.)" Poyntz of Frampton, Gloucester, Anthony (I3980)
26 "Approaching Sifilke on 10 June 1190, the emperor impatiently decided to ford the River Saleph ahead of his troops. His horse lost its footing mid-stream, throwing Frederick into the river - on a scorching-hot day the water proved shockingly cold, and unable to swim, the German emperor drowned." Staufen, Friedrich I von Holy Roman Emperor (I12829)
27 "As a Syrian prince, Reynald had a reputation for untamed violence, garnered from his attack on Greek-held Cyprus and his infamous attempts, around 1154, to extort money from the Latin patriarch of Antioch, Aimery of Limoges. The unfortunate prelate was beaten, dragged to the citadel and forced to sit through an entire day beneath the blazing sun, with his bare skin smeared in honey to attract swarms of of worrisome insects. In the late 1170s, however, Reynald became one of Baldwin's [IV] most trusted allies, furnishing him with able support in the fields of war, diplomacy and politics." Châtillon, Renaud de Prince of Antioch (I19194)
28 "At first glance she seemed to be a good choice. She was pretty in a conventional way with blue eyes and fair hair, talkative, intelligent, and possessed of a strong sense of propriety, which Lady Spencer applauded. Less obvious until later were her more unattractive traits: she was moody, vindictive, hypocritical, and a calm liar who maintained a veneer of politeness to her in-laws while freely abusing them in conversation elsewhere." Bingham, Lavinia Ctss Spencer (I12012)
29 "At the residence of the bride at Hampton on yesterday afternoon at 6 o'clock Mr. John F. Dickerson, of this city, was united in marriage to Mrs. Mary Malone of the former place. The happy couple returned to this city on the accomodation and are domiciled at the residence of A. J. Allen."
The Griffin Weekly News and Sun, July 4, 1890, reproduced at Fred R. Hartz and Emilie K. Hartz, Marriage and Death Notices From the Griffin (Georgia) Weekly News and The Griffin Weekly News and Sun, 1882-1896 (Vidalia, Georgia: The Gwendolyn Press), 184.
Dickinson, John Franklin (I0069)
30 "Baker County was established on December 30, 1868, named for Alfred Baker, with its county seat at Grantville. Residents of the county petitioned the Alabama legislature for the renaming of their county; it was not something forced upon them. On December 17, 1874, the petitioners accepted the suggestion of Chilton County, even though the Chief Justice had not lived within its boundaries. In 1870 the county seat was moved after the court house burned to what is now Clanton." Mims, James A (I20706)
31 "Baker County was established on December 30, 1868, named for Alfred Baker, with its county seat at Grantville. Residents of the county petitioned the Alabama legislature for the renaming of their county; it was not something forced upon them. On December 17, 1874, the petitioners accepted the suggestion of Chilton County, even though the Chief Justice had not lived within its boundaries." Clackler, John (I20576)
32 "Baldwin, by strategy and treachery, founded the first Latin Principality in the East (1098)." Boulogne, Baldwin I de King of Jerusalem (I17725)
33 "Benjamin Drake Wright was born in Wilkes-Barre, Pennsylvania on January 23, 1799. Wright moved to Pensacola in the Spring of 1823. From 1824 to 1837 he was a member of the Legislative Council of the Territory of West Florida. Wright married Josephine de la Rua on February 23, 1826 and they had 8 children. He was a member of the 1838 Constitutional Convention, served in the Territorial Senate 1839-1840 and in the Florida Senate after statehood in 1845. He served as Supreme Court Chief Justice for 7 months in 1853 and was a member of the 1865 Constitutional Convention. Benjamin Drake Wright died in Pensacola, Florida on April 28, 1874."
Wright, Benjamin Drake (I15476)
34 "Brutus was within the Central New York Military Tract. The town was established in 1802 from the town of Aurelius." Sutton, Jeremiah (I17457)
35 "But after a feast at King's Lynn, John contracted dysentery and realized he was seriously ill. * * * On 12 October he took a short cut across the Wellstream, part of the Wash, where 'he lost all his carts, wagons, and pack horses, with his money, plate and everything of value, because the land opened in the middle of the waters and whirlpools sucked them down, men and horses.' He was lucky to escape with his life. He spent the night after at Swinehead Abbey, stuffing himself with peaches and new cider that made his dysentery worse. He struggled on to Newark in a litter of willow branches or clinging to a slow paced nag. * * * The king died at midnight on 18 October, during a whirlwind." John I King of England (I10786)
36 "But when King Æthelwulf was dead (and buried at Winchester), his son Æthelbald, contrary to God's prohibition and the dignity of a Christian, contrary also to the custom of all the heathen, ascended his father's bed, and married Judith, daughter of Charles, King of the Franks, incurring much infamy
from all who heard of it." Family F3292
37 "CALHOUN, Joseph, (cousin of John Caldwell Calhoun and John Ewing Colhoun), a Representative from South Carolina; born in Staunton, Augusta County, Va., October 22, 1750; moved with his father to South Carolina in 1756 and settled in Granville District, on Little River, near the present town of Abbeville; received a limited education; engaged in agricultural pursuits; served as a member of the South Carolina house of representatives in 1804 and 1805; colonel of State militia; elected as a Republican to the Tenth Congress to fill the vacancy caused by the death of Levi Casey; reelected to the Eleventh Congress and served from June 2, 1807, to March 3, 1811; declined to be a candidate for reelection in 1810 to the Twelfth Congress; resumed agricultural pursuits and engaged in milling; died in Calhoun Mills, Abbeville District (now Mount Carmel, McCormick County), April 14, 1817; interment in the family burying ground near his home." Calhoun, Joseph (I15269)
38 "Charles Dickenson, of Mt. Zion District, a most excellent young man of twenty-four years, was taken sick on Thursday morning and died Thursday evening. His death was caused by some disease of the kidneys." The Weekly News, February 6, 1885, reproduced at Fred R. Hartz and Emilie K. Hartz, Marriage and Death Notices From the Griffin (Georgia) Weekly News and The Griffin Weekly News and Sun, 1882-1896 (Vidalia, Georgia: The Gwendolyn Press), 44. Dickinson, Charles E (I0594)
39 "Chestnut Creek is a physical feature (stream) in Chilton County. The primary coordinates for Chestnut Creek places it within the AL 36091 ZIP Code delivery area." Baker, John (I20633)
40 "Constance, widow of the King of France, was a woman of depraved heart and infamous character; but such was her ascendancy over her husband, that she committed crimes of the blackest dye with impunity." She conspired to have her younger son displace the elder on the throne of their father. Henry fled to Fecamp, enlisting the aid of Robert, Duke of Normany. Robert secured Henry's crown by falling on France with great slaughter. d'Arles, Constance (I11162)
41 "David (son of Col. David and his wife, Anne Holmes) was known as 'English David,' or 'Sailor David,' as he sailed a vessel between the United States and England. He was born Oct. 5, 1726, and married Mary Weaver of England. Issue, four children:
1 Thomas, who never married
2 Gen. James (D. S.), m. Susan Hatcher in 1817, in Georgia.
3 David, m. Miss Smith. They lived in Coweta County, Ga.
4 Elizabeth, m. 1st, Mr. Patterson, who was killed by the fall of a tree, in Jefferson county, Ky. 1785 or '86. Issue, two daughters; one m, Mr. Eleazur Early, and the other m, Mr. Daniel Sturges, both of Georgia. Mrs. Patterson m. 2d time, Mr. Carson, who died in Shelby county, Ky., in 1801. Issue, one daughter, Elizabeth who m. Mr. Abercrombie of Georgia."
Meriwether, Capt. David (I23898)
42 "Detailed as hospital steward Feby 2nd 1863 by order Maj. Boyles" Lane, Thomas S. M.D. (I16431)
43 "Drewry, James A., the present ordinary of Spalding county, is engaged in the practice of law in Griffin and is also a clergyman of the Baptist church. He was born in that county, Feb. 13, 1860, a son of Fenton H. And Margaret D. (Grigg) Drewry, the former born at Drewry's Bluff, Va., Dec. 26, 1820 and the latter near Jarratt, Sussex county, that state, Dec. 29, 1826. Fenton H. Drewry was a gallant soldier of the Confederacy during the Civil war, having been a member of a Georgia regiment of volunteers, and after the war he followed the vocation of farming. He departed this life on Jan. 4, 1906. James A. Drewry attended school in Griffin, Ga., Opelika, Ala., and Macon, Ga., and for a time was a student in the University of Georgia. After completing his educational discipline he was engaged in farming, in Spalding county, for thirteen years, and for three years thereafter was a merchant in Drewryville, that county. He then located at Griffin, where he has since been engaged in the practice of law, having been admitted to the bar in 1886. He is a stalwart supporter of the principles and policies of the Democratic party; has been incumbent of the office of ordinary of the county since 1896, and served for twelve years as postmaster of Drewryville. In 1896 he was ordained a minister of the Baptist church and has charges in Spalding, Pike and Monroe counties. Since his ordination he has performed over 1600 marriage ceremonies and officiated at more than 800 funerals. He is affiliated with the Masonic fraternity and the Improved Order of Red Man. On Nov. 8, 1883, was solemnized the marriage of Dr. Drewry to Miss Blanche Strozier, of Greenville, Ga.
Blanche Strozier Drewry was born in Meriwether county, Ga., Aug. 11, 1866, and died in Griffin, Ga., April 25, 1906. She was the daughter of Ruben C. Strozier, was born in Meriwether county, Ga., June 30, 1839, and married Sarah Elizabeth Freeman, May 18, 1860. He served in the Confederate army in the war between the states. His parents were Peter Strozier, born March 22, 1806, and Mary W. Sherman, born May 22, 1811. They were married Feb. 16, 1826. Sarah Elizabeth Strozier, nee Freeman, was born Dec. 4, 1845, and died Feb. 20, 1887. Her parents were James Freeman, born in Wilkes county, Ga., and Patsy Rosser, date of birth unknown. Mr. and Mrs. J.A. Drewry had no children." Drewry, James Albert (I3134)
44 "Dryden's father died in June 1654, and left a small estate at Blakesley to his son. Malone etimates this at 60l. a year, of which 20l. went to his mother until her death in 1676 (Malone, pp.440-l)." Dryden of Tichmarsh, Erasmus (I6832)
45 "Duke Godrey, Seigneur of Bouillon (a small estate in Belgium), combined the qualities of soldier and monk- brave and competent in war and government, and pious to the point of fanaticism." Bouillon, Godefroi de Princeps of Jerusalem (I17724)
46 "Earl Reginald's eldest daughter, Sarah, had been given in marriage to Aimar of Limoges while he was a minor in Henry II's custody. For the viscount it was an illustrious connection; in Limoges men saw Earl Reginald as a great and influential figure, a man who had helped Henry II to the English throne. And when it became clear that the earl would have no sons, it became a marriage that aroused high expectations- expectations which were disappointed when the king took Cornwall for himself. Up to this point Aimar had remained loyal to the Old King. He had helped to entertain Henry and a vast gathering of kings and nobles for seven day at Limoges in February 1173 and had held aloof from the revolts of 1168 and 1173-4. In 1176 he suddenly changed his line. He went over to opposition and on and off pursued this new policy until his death in 1199. In 1175-6 Henry's obsessive concern for John, revealed again and again in the last sixteen years of his reign, drove Aimar of Limoges to rebellion. When he became king, Richard - too generous to John perhaps - failed to find a means of reconciling Aimar, and in the end it was while laying siege to one of the vixcount's castles that he received his fatal wound." Family F6221
47 "Edgefield District was created in 1785, and it is bordered on the west by the Savannah River. It was formed from the southern section of the former Ninety-Six District when it was divided into smaller districts or counties by an act of the state legislature." Moyer, Andrew W (I24983)
48 "Erasmus and Mary Dryden were married 21 Oct. 1630 at Pilton, near Aldwinkle (Notes and Queries, 2nd ser. xii. 207). The Drydens (or Dridens), originally settled in Cumberland, had moved into Northamptonshire about the middle of the sixteenth century. Erasmus Dryden after his marriage lived at Tichmarsh, where the Pickerings had a seat." Family F4156
49 "Family tradition says that the Joel P. Dickinson cemetery was on the right side of Springfield Church Rd up toward the Greene County -- Hancock County line. The cemetery was at one time under a large oak and at the back of a field. This possible grave is under a very large oak, but there is no additional proof that this is, in fact, the Dickinson Cemetery. Further research is needed to confirm or refute that this is a cemetery, and, if it is, whether it is the Dickinson cemetery."
Friends of Hancock County, Georgia Cemeteries
http://www.friendsofcems.org/Hancock/default.htm
Dickinson, Joel Putnam (I0075)
50 "Filmore Leak, of Mt. Zion district, died on Tuesday and was buried yesterday afternoon at three o'clock." The Griffin Weekly News, June 22, 1888, reproduced at Fred R. Hartz and Emilie K. Hartz, Marriage and Death Notices From the Griffin (Georgia) Weekly News and The Griffin Weekly News and Sun, 1882-1896 (Vidalia, Georgia: The Gwendolyn Press), p. 131. Leake, Millard Filmore (I0608)


I think that should fix it unless something is really broken.
> Sorry to bore you all, but I need some more specific RH7.2 help.
> and it worked fine there too.
> and thought nothing more about it.
> doesn't look as though DHCP even ran.


This how-to guide can rid children and families off medications and detrimental foods - junk foods loaded with sugar, preservatives, dairy products, and trans- fattyacids - so that children and families can enjoy optimal health.
A Guide for Parents and Professionals. The newly updated and expanded guide to raising a teenager with an attention deficit disorder is more comprehensive than ever.
Revolutionary Training Software System to Help with Brain Training and Attention Learning! If you have a child, or you are an adult confronting these issues, you can overcome them. Ideal for use, in the home.
Stopping the Roller Coaster When Someone You Love Has Attention Deficit Disorder. A comprehensive guide to recognizing the behaviors where you least expect them (on the road and in the bedroom, for example) and developing compassion for couples wrestling with unrecognized ADHD symptoms.