A visit to one of the great cities in the worlds of Dungeons & Dragons — Waterdeep, the Free City of Greyhawk, or even uncanny Sigil, the City of Doors — overwhelms the senses. Voices chatter in countless different languages. The smells of cooking in dozens of different cuisines mingle with the odors of crowded streets and poor sanitation. Buildings in myriad architectural styles display the diverse origins of their inhabitants.
And the people themselves — people of varying size, shape, and color, dressed in a dazzling spectrum of styles and hues — represent many different races, from diminutive halflings and stout dwarves to majestically beautiful elves, mingling among a variety of human ethnicities.
Scattered among the members of these more common races are the true exotics: a hulking dragonborn here, pushing his way through the crowd, and a sly tiefling there, lurking in the shadows with mischief in her eyes. A group of gnomes laughs as one of them activates a clever wooden toy that moves of its own accord. Half-elves and half-orcs live and work alongside humans, without fully belonging to the races of either of their parents. And there, well out of the sunlight, is a lone drow — a fugitive from the subterranean expanse of the Underdark, trying to make his way in a world that fears his kind.
Humans are the most common people in the worlds of D&D, but they live and work alongside dwarves, elves, halflings, and countless other fantastic species. Your character belongs to one of these peoples.
Not every intelligent race of the multiverse is appropriate for a player-controlled adventurer. Dwarves, elves, halflings, and humans are the most common races to produce the sort of adventurers who make up typical parties. Dragonborn, gnomes, half-elves, half-orcs, and tieflings are less common as adventurers. Drow, a subrace of elves, are also uncommon.
Your choice of race affects many different aspects of your character. It establishes fundamental qualities that exist throughout your character's adventuring career. When making this decision, keep in mind the kind of character you want to play. For example, a halfling could be a good choice for a sneaky rogue, a dwarf makes a tough warrior, and an elf can be a master of arcane magic.
Your character race not only affects your ability scores and traits but also provides the cues for building your character's story. Each race's description in this section includes information to help you roleplay a character of that race, including personality, physical appearance, features of society, and racial alignment tendencies. These details are suggestions to help you think about your character; adventurers can deviate widely from the norm for their race. It's worthwhile to consider why your character is different, as a helpful way to think about your character's background and personality.
By virtue of your race, your character can speak, read, and write certain languages. "Personality and Background" lists the most common languages of the D&D multiverse.
Some races have subraces. Members of a subrace have the traits of the parent race in addition to the traits specified for their subrace. Relationships among subraces vary significantly from race to race and world to world. In the Dragonlance campaign setting, for example, mountain dwarves and hill dwarves live together as different clans of the same people, but in the Forgotten Realms, they live far apart in separate kingdoms and call themselves shield dwarves and gold dwarves, respectively.
Kingdoms rich in ancient grandeur, halls carved into the roots of mountains, the echoing of picks and hammers in deep mines and blazing forges, a commitment to clan and tradition, and a burning hatred of goblins and orcs — these common threads unite all dwarves.
Dwarves can live to be more than 400 years old, so the oldest living dwarves often remember a very different world. For example, some of the oldest dwarves living in Citadel Felbarr (in the world of the Forgotten Realms) can recall the day, more than three centuries ago, when orcs conquered the fortress and drove them into an exile that lasted over 250 years. This longevity grants them a perspective on the world that shorter-lived races such as humans and halflings lack.
Dwarves are solid and enduring like the mountains they love, weathering the passage of centuries with stoic endurance and little change. They respect the traditions of their clans, tracing their ancestry back to the founding of their most ancient strongholds in the youth of the world, and don't abandon those traditions lightly. Part of those traditions is devotion to the gods of the dwarves, who uphold the dwarven ideals of industrious labor, skill in battle, and devotion to the forge.
Dwarves who take up the adventuring life might be motivated by a desire for treasure — for its own sake, for a specific purpose, or even out of an altruistic desire to help others. Other dwarves are driven by the command or inspiration of a deity, a direct calling or simply a desire to bring glory to one of the dwarf gods. Clan and ancestry are also important motivators. A dwarf might seek to restore a clan's lost honor, avenge an ancient wrong the clan suffered, or earn a new place within the clan after having been exiled. Or a dwarf might search for the axe wielded by a mighty ancestor, lost on the field of battle centuries ago.
Dwarves get along passably well with most other races. "The difference between an acquaintance and a friend is about a hundred years," is a dwarf saying that might be hyperbole, but certainly points to how difficult it can be for a member of a short-lived race like humans to earn a dwarf's trust.
A dwarf's name is granted by a clan elder, in accordance with tradition. Every proper dwarven name has been used and reused down through the generations. A dwarf's name belongs to the clan, not to the individual. A dwarf who misuses or brings shame to a clan name is stripped of the name and forbidden by law to use any dwarven name in its place.
Dwarven Resilience. You have advantage on saving throws against poison, and you have resistance against poison damage (explained in chapter 9, "Combat").
Subrace. Two main subraces of dwarves populate the worlds of D&D: hill dwarves and mountain dwarves. Choose one of these subraces.
In cities deep in the Underdark live the duergar, or gray dwarves. These vicious, stealthy slave traders raid the surface world for captives, then sell their prey to the other races of the Underdark. They have innate magical abilities to become invisible and to temporarily grow to giant size.
As a hill dwarf, you have keen senses, deep intuition, and remarkable resilience. The gold dwarves of Faerûn in their mighty southern kingdom are hill dwarves, as are the exiled Neidar and the debased Klar of Krynn in the Dragonlance setting.
As a mountain dwarf, you're strong and hardy, accustomed to a difficult life in rugged terrain. You're probably on the tall side (for a dwarf), and tend toward lighter coloration. The shield dwarves of northern Faerûn, as well as the ruling Hylar clan and the noble Daewar clan of Dragonlance, are mountain dwarves.
Dwarven Armor Training. You have proficiency with light and medium armor.
"I have never imagined such beauty existed," Goldmoon said softly. The day's march had been difficult, but the reward at the end was beyond their dreams. The companions stood on a high cliff over the fabled city of Qualinost.
Four slender spires rose from the city's corners like glistening spindles, their brilliant white stone marbled with shining silver. Graceful arches, swooping from spire to spire, soared through the air. Crafted by ancient dwarven metalsmiths, they were strong enough to hold the weight of an army, yet they appeared so delicate that a bird lighting on them might overthrow the balance. These glistening arches were the city's only boundaries; there was no wall around Qualinost. The elven city opened its arms lovingly to the wilderness.
Elves can live well over 700 years, giving them a broad perspective on events that might trouble the shorter-lived races more deeply. They are more often amused than excited, and more likely to be curious than greedy. They tend to remain aloof and unfazed by petty happenstance. When pursuing a goal, however, whether adventuring on a mission or learning a new skill or art, elves can be focused and relentless. They are slow to make friends and enemies, and even slower to forget them. They reply to petty insults with disdain and to serious insults with vengeance.
Although they can be haughty, elves are generally gracious even to those who fall short of their high expectations—which is most non-elves. Still, they can find good in just about anyone.
Alignment. Elves love freedom, variety, and self-expression, so they lean strongly toward the gentler aspects of chaos. They value and protect others' freedom as well as their own, and they are more often good than not. The drow are an exception; their exile into the Underdark has made them vicious and dangerous. Drow are more often evil than not.
Yet one drow, at least, broke the mold. In the world of the Forgotten Realms, Drizzt Do'Urden, ranger of the North, has proven his quality as a good-hearted defender of the weak and innocent. Rejecting his heritage and adrift in a world that looks upon him with terror and loathing, Drizzt is a model for those few drow who follow in his footsteps, trying to find a life apart from the evil society of their Underdark homes.
As a high elf, you have a keen mind and a mastery of at least the basics of magic. In many of the worlds of D&D, there are two kinds of high elves. One type (which includes the gray elves and valley elves of Greyhawk, the Silvanesti of Dragonlance, and the sun elves of the Forgotten Realms) is haughty and reclusive, believing themselves to be superior to non-elves and even other elves. The other type (including the high elves of Greyhawk, the Qualinesti of Dragonlance, and the moon elves of the Forgotten Realms) are more common and more friendly, and often encountered among humans and other races.
The sun elves of Faerûn (also called gold elves or sunrise elves) have bronze skin and hair of copper, black, or golden blond. Their eyes are golden, silver, or black. Moon elves (also called silver elves or gray elves) are much paler, with alabaster skin sometimes tinged with blue. They often have hair of silver-white, black, or blue, but various shades of blond, brown, and red are not uncommon. Their eyes are blue or green and flecked with gold.
As a wood elf, you have keen senses and intuition, and your fleet feet carry you quickly and stealthily through your native forests. This category includes the wild elves (grugach) of Greyhawk and the Kagonesti of Dragonlance, as well as the races called wood elves in Greyhawk and the Forgotten Realms. In Faerûn, wood elves (also called wild elves, green elves, or forest elves) are reclusive and distrusting of non-elves.
Regis the halfling, the only one of his kind for hundreds of miles in any direction, locked his fingers behind his head and leaned back against the mossy blanket of the tree trunk. Regis was short, even by the standards of his diminutive race, with the fluff of his curly brown locks barely cresting the three-foot mark, but his belly was amply thickened by his love of a good meal, or several, as the opportunities presented themselves. The crooked stick that served as his fishing pole rose up above him, clenched between two of his toes, and hung out over the quiet lake, mirrored perfectly in the glassy surface of Maer Dualdon.
The comforts of home are the goals of most halflings' lives: a place to settle in peace and quiet, far from marauding monsters and clashing armies; a blazing fire and a generous meal; fine drink and fine conversation. Though some halflings live out their days in remote agricultural communities, others form nomadic bands that travel constantly, lured by the open road and the wide horizon to discover the wonders of new lands and peoples. But even these wanderers love peace, food, hearth, and home, though home might be a wagon jostling along an dirt road or a raft floating downriver.
Most halflings live in small, peaceful communities with large farms and well-kept groves. They rarely build kingdoms of their own or even hold much land beyond their quiet shires. They typically don't recognize any sort of halfling nobility or royalty, instead looking to family elders to guide them. Families preserve their traditional ways despite the rise and fall of empires.
Halflings try to get along with everyone else and are loath to make sweeping generalizations — especially negative ones.
A halfling has a given name, a family name, and possibly a nickname. Family names are often nicknames that stuck so tenaciously they have been passed down through the generations.
Lucky. When you roll a 1 on the d20 for an attack roll, ability check, or saving throw, you can reroll the die and must use the new roll.
Subrace. The two main kinds of halfling, lightfoot and stout, are more like closely related families than true subraces. Choose one of these subraces.
As a lightfoot halfling, you can easily hide from notice, even using other people as cover. You're inclined to be affable and get along well with others. In the Forgotten Realms, lightfoot halflings have spread the farthest and thus are the most common variety.
Lightfoots are more prone to wanderlust than other halflings, and often dwell alongside other races or take up a nomadic life. In the world of Greyhawk, these halflings are called hairfeet or tallfellows.
As a stout halfling, you're hardier than average and have some resistance to poison. Some say that stouts have dwarven blood. In the Forgotten Realms, these halflings are called stronghearts, and they're most common in the south.
Stout Resilience. You have advantage on saving throws against poison, and you have resistance against poison damage.
These were the stories of a restless people who long ago took to the seas and rivers in longboats, first to pillage and terrorize, then to settle. Yet there was an energy, a love of adventure, that sang from every page. Long into the night Liriel read, lighting candle after precious candle.
She'd never given much thought to humans, but these stories fascinated her. In these yellowed pages were tales of bold heroes, strange and fierce animals, mighty primitive gods, and a magic that was part and fabric of that distant land.
Humans are the most adaptable and ambitious people among the common races. They have widely varying tastes, morals, and customs in the many different lands where they have settled. When they settle, though, they stay: they build cities to last for the ages, and great kingdoms that can persist for long centuries. An individual human might have a relatively short life span, but a human nation or culture preserves traditions with origins far beyond the reach of any single human's memory. They live fully in the present — making them well suited to the adventuring life — but also plan for the future, striving to leave a lasting legacy. Individually and as a group, humans are adaptable opportunists, and they stay alert to changing political and social dynamics.
Although some humans can be xenophobic, in general their societies are inclusive. Human lands welcome large numbers of nonhumans compared to the proportion of humans who live in nonhuman lands.
The material culture and physical characteristics of humans can change wildly from region to region. In the Forgotten Realms, for example, the clothing, architecture, cuisine, music, and literature are different in the northwestern lands of the Silver Marches than in distant Turmish or Impiltur to the east — and even more distinctive in far-off Kara-Tur. Human physical characteristics, though, vary according to the ancient migrations of the earliest humans, so that the humans of the Silver Marches have every possible variation of coloration and features.
In the Forgotten Realms, nine human ethnic groups are widely recognized, though over a dozen others are found in more localized areas of Faerûn. These groups, and the typical names of their members, can be used as inspiration no matter which world your human is in.
Shorter and slighter in build than most other humans, Calishites have dusky brown skin, hair, and eyes. They're found primarily in southwest Faerûn.
Chondathans are slender, tawny-skinned folk with brown hair that ranges from almost blond to almost black. Most are tall and have green or brown eyes, but these traits are hardly universal. Humans of Chondathan descent dominate the central lands of Faerûn, around the Inner Sea.
Found primarily in the northwest of Faerûn, Damarans are of moderate height and build, with skin hues ranging from tawny to fair. Their hair is usually brown or black, and their eye color varies widely, though brown is most common.
Dominant in the eastern and southeastern shores of the Inner Sea, the Mulan are generally tall, slim, and amber-skinned, with eyes of hazel or brown. Their hair ranges from black to dark brown, but in the lands where the Mulan are most prominent, nobles and many other Mulan shave off all their hair.
Most often found east of the Inner Sea and often intermingled with the Mulan, Rashemis tend to be short, stout, and muscular. They usually have dusky skin, dark eyes, and thick black hair.
The Shou are the most numerous and powerful ethnic group in Kara-Tur, far to the east of Faerûn. They are yellowish-bronze in hue, with black hair and dark eyes. Shou surnames are usually presented before the given name.
Widespread along the entire Sword Coast at the western edge of Faerûn, Tethyrians are of medium build and height, with dusky skin that tends to grow fairer the farther north they dwell. Their hair and eye color varies widely, but brown hair and blue eyes are the most common. Tethyrians primarily use Chondathan names.
Native to the southern shore of the Inner Sea, the Turami people are generally tall and muscular, with dark mahogany skin, curly black hair, and dark eyes.
If your campaign uses the optional feat rules from chapter 6, your Dungeon Master might allow these variant traits, all of which replace the human's Ability Score Increase trait.
The dragonborn and the rest of the races in this chapter are uncommon. They don't exist in every world of D&D, and even where they are found, they are less widespread than dwarves, elves, halflings, and humans.
In the cosmopolitan cities of the D&D multiverse, most people hardly look twice at members of even the most exotic races. But the small towns and villages that dot the countryside are different. The common folk aren't accustomed to seeing members of these races, and they react accordingly.
Dragonborn. It's easy to assume that a dragonborn is a monster, especially if his or her scales betray a chromatic heritage. Unless the dragonborn starts breathing fire and causing destruction, though, people are likely to respond with caution rather than outright fear.
Gnome. Gnomes don't look like a threat and can quickly disarm suspicion with good humor. The common folk are often curious about gnomes, likely never having seen one before, but they are rarely hostile or fearful.
Half-Elf. Although many people have never seen a half-elf, virtually everyone knows they exist. A half-elf stranger's arrival is followed by gossip behind the half-elf's back and stolen glances across the common room, rather than any confrontation or open curiosity.
Half-Orc. It's usually safe to assume that a half-orc is belligerent and quick to anger, so people watch themselves around an unfamiliar half-orc. Shopkeepers might surreptitiously hide valuable or fragile goods when a half-orc comes in, and people slowly clear out of a tavern, assuming a fight will break out soon.
Tiefling. Half-orcs are greeted with a practical caution, but tieflings are the subject of supernatural fear. The evil of their heritage is plainly visible in their features, and as far as most people are concerned, a tiefling could very well be a devil straight from the Nine Hells. People might make warding signs as a tiefling approaches, cross the street to avoid passing near, or bar shop doors before a tiefling can enter.
Her father stood on the first of the three stairs that led down from the portal, unmoving. The scales of his face had grown paler around the edges, but Clanless Mehen still looked as if he could wrestle down a dire bear himself. His familiar well-worn armor was gone, replaced by violet-tinted scale armor with bright silvery tracings. There was a blazon on his arm as well, the mark of some foreign house. The sword at his back was the same, though, the one he had carried since even before he had found the twins left in swaddling at the gates of Arush Vayem.
For all her life, Farideh had known that reading her father's face was a skill she'd been fortunate to learn. A human who couldn't spot the shift of her eyes or Havilar's would certainly see only the indifference of a dragon in Clanless Mehen's face. But the shift of scales, the arch of a ridge, the set of his eyes, the gape of his teeth — her father's face spoke volumes.
But every scale of it, this time, seemed completely still — the indifference of a dragon, even to Farideh.
Born of dragons, as their name proclaims, the dragonborn walk proudly through a world that greets them with fearful incomprehension. Shaped by draconic gods or the dragons themselves, dragonborn originally hatched from dragon eggs as a unique race, combining the best attributes of dragons and humanoids. Some dragonborn are faithful servants to true dragons, others form the ranks of soldiers in great wars, and still others find themselves adrift, with no clear calling in life.
Dragonborn look very much like dragons standing erect in humanoid form, though they lack wings or a tail. The first dragonborn had scales of vibrant hues matching the colors of their dragon kin, but generations of interbreeding have created a more uniform appearance. Their small, fine scales are usually brass or bronze in color, sometimes ranging to scarlet, rust, gold, or copper-green. They are tall and strongly built, often standing close to 6½ feet tall and weighing 300 pounds or more. Their hands and feet are strong, talonlike claws with three fingers and a thumb on each hand.
The blood of a particular type of dragon runs very strong through some dragonborn clans. These dragonborn often boast scales that more closely match those of their dragon ancestor — bright red, green, blue, or white, lustrous black, or gleaming metallic gold, silver, brass, copper, or bronze.
Though all dragonborn strive to be self-sufficient, they recognize that help is sometimes needed in difficult situations. But the best source for such help is the clan, and when a clan needs help, it turns to another dragonborn clan before seeking aid from other races — or even from the gods.
In the Dragonlance setting, the followers of the evil goddess Takhisis learned a dark ritual that let them corrupt the eggs of metallic dragons, producing evil dragonborn called draconians. Five types of draconians, corresponding to the five types of metallic dragons, fought for Takhisis in the War of the Lance: auraks (gold), baaz (brass), bozak (bronze), kapak (copper), and sivak (silver). In place of their draconic breath weapons, they have unique magical abilities.
Dragonborn have personal names given at birth, but they put their clan names first as a mark of honor. A childhood name or nickname is often used among clutchmates as a descriptive term or a term of endearment. The name might recall an event or center on a habit.
Draconic Ancestry. You have draconic ancestry. Choose one type of dragon from the Draconic Ancestry table. Your breath weapon and damage resistance are determined by the dragon type, as shown in the table.
Skinny and flaxen-haired, his skin walnut brown and his eyes a startling turquoise, Burgell stood half as tall as Aeron and had to climb up on a stool to look out the peephole. Like most habitations in Oeble, that particular tenement had been built for humans, and smaller residents coped with the resulting awkwardness as best they could.
But at least the relative largeness of the apartment gave Burgell room to pack in all his gnome-sized gear. The front room was his workshop, and it contained a bewildering miscellany of tools: hammers, chisels, saws, lockpicks, tinted lenses, jeweler's loupes, and jars of powdered and shredded ingredients for casting spells. A fat gray cat, the mage's familiar, lay curled atop a grimoire. It opened its eyes, gave Aeron a disdainful yellow stare, then appeared to go back to sleep.
Gnomes love names, and most have half a dozen or so. A gnome's mother, father, clan elder, aunts, and uncles each give the gnome a name, and various nicknames from just about everyone else might or might not stick over time. Gnome names are typically variants on the names of ancestors or distant relatives, though some are purely new inventions. When dealing with humans and others who are "stuffy" about names, a gnome learns to use no more than three names: a personal name, a clan name, and a nickname, choosing the one in each category that's the most fun to say.
Subrace. Two subraces of gnomes are found among the worlds of D&D: forest gnomes and rock gnomes. Choose one of these subraces.
A third subrace of gnomes, the deep gnomes (or svirfneblin), live in small communities scattered in the Underdark. Unlike the duergar and the drow, svirfneblin are as good as their surface cousins. However, their humor and enthusiasm are dampened by their oppressive environment, and their inventive expertise is directed mostly toward stonework.
Tinker. You have proficiency with artisan's tools (tinker's tools). Using those tools, you can spend 1 hour and 10 gp worth of materials to construct a Tiny clockwork device (AC 5, 1 hp). The device ceases to function after 24 hours (unless you spend 1 hour repairing it to keep the device functioning), or when you use your action to dismantle it; at that time, you can reclaim the materials used to create it. You can have up to three such devices active at a time.
Flint squinted into the setting sun. He thought he saw the figure of a man striding up the path. Standing, Flint drew back into the shadow of a tall pine to see better. The man's walk was marked by an easy grace — an elvish grace, Flint would have said; yet the man's body had the thickness and tight muscles of a human, while the facial hair was definitely humankind's. All the dwarf could see of the man's face beneath a green hood was tan skin and a brownish-red beard. A longbow was slung over one shoulder and a sword hung at his left side. He was dressed in soft leather, carefully tooled in the intricate designs the elves loved. But no elf in the world of Krynn could grow a beard . . . no elf, but . . .
"Tanis?" said Flint hesitantly as the man neared.
"The same." The newcomer's bearded face split in a wide grin. He held open his arms and, before the dwarf could stop him, engulfed Flint in a hug that lifted him off the ground. The dwarf clasped his old friend close for a brief instant, then, remembering his dignity, squirmed and freed himself from the half-elf's embrace.
Many half-elves learn at an early age to get along with everyone, defusing hostility and finding common ground. As a race, they have elven grace without elven aloofness and human energy without human boorishness. They often make excellent ambassadors and go-betweens (except between elves and humans, since each side suspects the half-elf of favoring the other).
The warchief Mhurren roused himself from his sleeping-furs and his women and pulled a short hauberk of heavy steel rings over his thick, well-muscled torso. He usually rose before most of his warriors, since he had a strong streak of human blood in him, and he found the daylight less bothersome than most of his tribe did. Among the Bloody Skulls, a warrior was judged by his strength, his fierceness, and his wits. Human ancestry was no blemish against a warrior — provided he was every bit as strong, enduring, and bloodthirsty as his full-blooded kin. Half-orcs who were weaker than their orc comrades didn't last long among the Bloody Skulls or any other orc tribe for that matter. But it was often true that a bit of human blood gave a warrior just the right mix of cunning, ambition, and self-discipline to go far indeed, as Mhurren had. He was master of a tribe that could muster two thousand spears, and the strongest chief in Thar.
Whether united under the leadership of a mighty warlock or having fought to a standstill after years of conflict, orc and human tribes sometimes form alliances, joining forces into a larger horde to the terror of civilized lands nearby. When these alliances are sealed by marriages, half-orcs are born. Some half-orcs rise to become proud chiefs of orc tribes, their human blood giving them an edge over their full-blooded orc rivals. Some venture into the world to prove their worth among humans and other more civilized races. Many of these become adventurers, achieving greatness for their mighty deeds and notoriety for their barbaric customs and savage fury.
The one-eyed god Gruumsh created the orcs, and even those orcs who turn away from his worship can't fully escape his influence. The same is true of half-orcs, though their human blood moderates the impact of their orcish heritage. Some half-orcs hear the whispers of Gruumsh in their dreams, calling them to unleash the rage that simmers within them. Others feel Gruumsh's exultation when they join in melee combat — and either exult along with him or shiver with fear and loathing. Half-orcs are not evil by nature, but evil does lurk within them, whether they embrace it or rebel against it.
Beyond the rage of Gruumsh, half-orcs feel emotion powerfully. Rage doesn't just quicken their pulse, it makes their bodies burn. An insult stings like acid, and sadness saps their strength. But they laugh loudly and heartily, and simple bodily pleasures — feasting, drinking, wrestling, drumming, and wild dancing — fill their hearts with joy. They tend to be short-tempered and sometimes sullen, more inclined to action than contemplation and to fighting than arguing. The most accomplished half-orcs are those with enough self-control to get by in a civilized land.
Each half-orc finds a way to gain acceptance from those who hate orcs. Some are reserved, trying not to draw attention to themselves. A few demonstrate piety and good-heartedness as publicly as they can (whether or not such demonstrations are genuine). And some simply try to be so tough that others just avoid them.
Half-orcs usually have names appropriate to the culture in which they were raised. A half-orc who wants to fit in among humans might trade an orc name for a human name. Some half-orcs with human names decide to adopt a guttural orc name because they think it makes them more intimidating.
0 hit points but not killed outright, you can drop to 1 hit point instead. You can't use this feature again until you finish a long rest.
a melee weapon attack, you can roll one of the weapon's damage dice one additional time and add it to the extra damage of the critical hit.
To be greeted with stares and whispers, to suffer violence and insult on the street, to see mistrust and fear in every eye: this is the lot of the tiefling. And to twist the knife, tieflings know that this is because a pact struck generations ago infused the essence of Asmodeus — overlord of the Nine Hells — into their bloodline. Their appearance and their nature are not their fault but the result of an ancient sin, for which they and their children and their children's children will always be held accountable.
Tieflings are derived from human bloodlines, and in the broadest possible sense, they still look human. However, their infernal heritage has left a clear imprint on their appearance. Tieflings have large horns that take any of a variety of shapes: some have curling horns like a ram, others have straight and tall horns like a gazelle's, and some spiral upward like an antelopes' horns. They have thick tails, four to five feet long, which lash or coil around their legs when they get upset or nervous. Their canine teeth are sharply pointed, and their eyes are solid colors — black, red, white, silver, or gold — with no visible sclera or pupil. Their skin tones cover the full range of human coloration, but also include various shades of red. Their hair, cascading down from behind their horns, is usually dark, from black or brown to dark red, blue, or purple.


text:
Predeal (do 1920 r. Tömösi-szoros), 1033 m n.p.m. – przełęcz górska w Karpatach rumuńskich.

Przełęcz Predeal wraz z ciągnącą się na południe od niej doliną rzeki Prahova oddziela Karpaty Wschodnie (góry Gârbova z pobliskim szczytem Predeal, 1923 m n.p.m.) od Karpat Południowych (góry Bucegi). Biegną przez nią linia kolejowa i droga, łączące Braszów w Siedmiogrodzie z Bukaresztem na Wołoszczyźnie. Po południowej stronie przełęczy leży miasto Predeal.

Przełęcze Rumunii
Przełęcze południowokarpackie
Przełęcze wschodniokarpackie

redpajama_set_name: RedPajamaWikipedia


text:
Inspirational Celebrity Speakers – Top Trending List – January 8
By Anthony Johnson on January 8, 2017 in Speakers News, Trending Speakers
Hollywood's elite were out in full force on Sunday strutting the red carpets and commanding the ballroom at The Beverly Hilton for the 74th annual Golden Globe Awards Show. What…a…night! Meryl Streep was honored with the Cecil B. DeMille Award for lifetime achievement and delivered a poignant acceptance speech on leadership while many other celebrity speakers took home awards and shared their messages of gratitude and encouragement with the audience and those watching at home. This week's list of top trending celebrity speakers features 10 inspirational celebrity speakers who were nominated and/or won awards at this year's Golden Globes:
Viola Davis: New Year, same Viola Davis! Empowering, confident and racking up top honors at annual awards shows. Viola won the award for Best Performance by an Actress in a Supporting Role in any Motion Picture for her role in the 2016 drama film Fences. Her poise, grace and humility are truly inspiring considering the great achievements she has amassed over the course of her career in entertainment. Away from the bright lights of Hollywood, Viola is very active on the keynote speaker circuit. She was hired as a keynote speaker for a number of women's leadership conferences and special events in 2016 and we expect another busy year in 2017.
Tracee Ellis Ross: Beloved actress and comedian Tracee Ellis Ross was a hit on Sunday night when she won Best Performance by an Actress in a Television Series – Musical or Comedy for her role on ABC's Black-ish. This was Tracee's first ever Golden Globe nomination and she nailed it. Her acceptance speech was the icing on the cake when she took the opportunity to encourage women of color to believe in their potential and understand that their hard work will not go unnoticed. Tracee's excitement was genuine and she is one of the most personable and inspirational celebrity speakers in Hollywood today.
Emma Stone: Emma sang her way to a Best Performance by an Actress in a Motion Picture – Musical or Comedy award for her lead role in the musical La La Land also starring Ryan Gosling. The romance musical also earned Gosling the award for Best Performance by an Actor in a Motion Picture – Musical or Comedy as well as winning the overall category for Best Motion Picture – Musical or Comedy. Emma's versatility as an actress translates to her personal appearances as a celebrity keynote speaker. She can speak to a variety of audiences on topics including women's empowerment, finding your passion and the entertainment industry.
Mahershala Ali: Mahershala won over the hearts of critics and movie buffs alike with his role in the film Moonlight which won the award for Best Motion Picture – Drama at the Golden Globes on Sunday. Many woke up the next morning feeling like he was snubbed for not winning the award for Best Performance by an Actor in a Supporting Role in any Motion Picture. Humble in victory and defeat, Mahershala has since made personal appearances on several news programs and talk shows and discussed his gratitude for the role and the way it has been received. He is one of the most endearing actors in Hollywood right now and will certainly be garnering an increased number of personal appearance opportunities in the coming year.
Octavia Spencer: It's official, Octavia Spencer has arrived! Octavia has dazzled in award-winning roles in recent years including feature films such as The Help, Fruitvale Station and most recently in Hidden Figures. She was nominated for the Best Performance by an Actress in a Supporting Role in any Motion Picture Golden Globe award for her role in Hidden Figures that premiered in December of 2016. Prior to attending the Golden Globes, Octavia made a stop in Las Vegas for a moderated Q&A discussion on the power of Hidden Figures at the 2017 Consumer Electronics Show. We expect Octavia to be at the top of the list for many organizations looking to book inspirational celebrity speakers for events going forward in 2017.
Kerry Washington: This award-winning actress was back in the mix at the Golden Globes this year nominated for the Best Performance by an Actress in a Limited Series or a Motion Picture Made for Television for her role in the history drama Confirmation. Kerry celebrated the birth of her second child in early October of last year and has been very open and honest in discussing the joys and challenges of her own life as a working mother. It's no wonder Kerry is one of the top requested inspirational celebrity speakers for women's conferences and leadership events heading into 2017!
Bryan Cranston: Some may recognize him best from his days on Malcolm in the Middle, or maybe from his award-winning role as drug kingpin Walter White in Breaking Bad. At any rate, Bryan Cranston has earned his place in Hollywood as a popular leading man for featured films and TV series. At the Golden Globes, Bryan was nominated for Best Performance by an Actor in a Limited Series or a Motion Picture Made for Television for his role as Lyndon B. Johnson in the history drama All the Way. Bryan continues to impress on the big screen and as a celebrity keynote speaker at corporate functions and special industry events.
Natalie Portman: Natalie made her way to The Beverly Hilton on Sunday night after earning a nomination for Best Performance by an Actress in a Motion Picture – Drama. She starred as Jackie Kennedy in a 2016 biographical drama based on Jackie's life following the assassination of President John F. Kennedy. What makes Natalie such as special figure in entertainment is her desire to use her celebrity platform to encourage and empower women. She has been outspoken in challenging the gender pay gap in entertainment and advocating for better opportunities and equal treatment for women in the corporate world.
Denzel Washington: Award nominations have become old hat for legendary actor Denzel Washington. This year, he earned a Golden Globe nomination for Best Performance by an Actor in a Motion Picture for his starring role in Fences. He is also set to receive the Motion Picture Showman of the Year Award from the International Cinematographers Guild Publicists in recognition of his lifetime achievements in entertainment. His name alone obviously draws a crowd for any event he keynotes or attends. In the past, Denzel has delivered keynote speeches that address the life lessons he has learned that have made him successful including putting God first, dreaming big, enjoying the journey and accepting it with gratitude.
Julia Louis-Dreyfus: Julia has continued her reign as a queen of TV comedy in her latest HBO TV series called Veep that premiered in 2012. This year, she was nominated for the Golden Globe for Best Performance by an Actress in a Television Series – Musical or Comedy. Julia is one of the most entertaining and inspirational celebrity speakers available for hire for special events. Her career achievements spanning multiple decades and her innate sense of humor make for an engaging and truly memorable keynote speech or moderated Q&A discussion.
At Celebrity Speakers Bureau, we take the stress and uncertainty out of booking inspirational celebrity speakers for events. Our team of experienced celebrity speaker booking agents are able to provide input every step of the way, from building a list of potential speakers to booking a speaker and executing event logistics and day of event needs. Contact us today via email at booking@celebrityspeakersbureau.com to start the conversation about inspirational celebrity speakers who would be a good fit for your next corporate conference, leadership summit, college speaker series, fundraiser or other special event.

redpajama_set_name: RedPajamaCommonCrawl


text:
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Reflection;
using System.Xml;

using Nini.Config;
using log4net;
using OpenSim.Framework;
using OpenSim.Framework.Console;
using OpenSim.Data;
using OpenSim.Server.Base;
using OpenSim.Services.Interfaces;
using OpenSim.Services.Connectors.Hypergrid;
using GridRegion = OpenSim.Services.Interfaces.GridRegion;
using OpenMetaverse;

namespace OpenSim.Services.GridService
{
    public class HypergridLinker
    {
        private static readonly ILog m_log =
                LogManager.GetLogger(
                MethodBase.GetCurrentMethod().DeclaringType);

        private static uint m_autoMappingX = 0;
        private static uint m_autoMappingY = 0;
        private static bool m_enableAutoMapping = false;

        protected IRegionData m_Database;
        protected GridService m_GridService;
        protected IAssetService m_AssetService;
        protected GatekeeperServiceConnector m_GatekeeperConnector;

        protected UUID m_ScopeID = UUID.Zero;
//        protected bool m_Check4096 = true;
        protected string m_MapTileDirectory = string.Empty;
        protected string m_ThisGatekeeper = string.Empty;
        protected Uri m_ThisGatekeeperURI = null;

        protected GridRegion m_DefaultRegion;
        protected GridRegion DefaultRegion
        {
            get
            {
                if (m_DefaultRegion == null)
                {
                    List<GridRegion> defs = m_GridService.GetDefaultHypergridRegions(m_ScopeID);
                    if (defs != null && defs.Count > 0)
                        m_DefaultRegion = defs[0];
                    else
                    {
                        // Get any region
                        defs = m_GridService.GetRegionsByName(m_ScopeID, "", 1);
                        if (defs != null && defs.Count > 0)
                            m_DefaultRegion = defs[0];
                        else
                        {
                            // This shouldn't happen
                            m_DefaultRegion = new GridRegion(1000, 1000);
                            m_log.Error("[HYPERGRID LINKER]: Something is wrong with this grid. It has no regions?");
                        }
                    }
                }
                return m_DefaultRegion;
            }
        }

        public HypergridLinker(IConfigSource config, GridService gridService, IRegionData db)
        {
            IConfig gridConfig = config.Configs["GridService"];
            if (gridConfig == null)
                return;

            if (!gridConfig.GetBoolean("HypergridLinker", false))
                return;

            m_Database = db;
            m_GridService = gridService;
            m_log.DebugFormat("[HYPERGRID LINKER]: Starting with db {0}", db.GetType());

            string assetService = gridConfig.GetString("AssetService", string.Empty);

            Object[] args = new Object[] { config };

            if (assetService != string.Empty)
                m_AssetService = ServerUtils.LoadPlugin<IAssetService>(assetService, args);

            string scope = gridConfig.GetString("ScopeID", string.Empty);
            if (scope != string.Empty)
                UUID.TryParse(scope, out m_ScopeID);

//                m_Check4096 = gridConfig.GetBoolean("Check4096", true);

            m_MapTileDirectory = gridConfig.GetString("MapTileDirectory", "maptiles");

            m_ThisGatekeeper = Util.GetConfigVarFromSections<string>(config, "GatekeeperURI",
                new string[] { "Startup", "Hypergrid", "GridService" }, String.Empty);
            // Legacy. Remove soon!
            m_ThisGatekeeper = gridConfig.GetString("Gatekeeper", m_ThisGatekeeper);
            try
            {
                m_ThisGatekeeperURI = new Uri(m_ThisGatekeeper);
            }
            catch
            {
                m_log.WarnFormat("[HYPERGRID LINKER]: Malformed URL in [GridService], variable Gatekeeper = {0}", m_ThisGatekeeper);
            }

            m_GatekeeperConnector = new GatekeeperServiceConnector(m_AssetService);

            m_log.Debug("[HYPERGRID LINKER]: Loaded all services...");

            if (!string.IsNullOrEmpty(m_MapTileDirectory))
            {
                try
                {
                    Directory.CreateDirectory(m_MapTileDirectory);
                }
                catch (Exception e)
                {
                    m_log.WarnFormat("[HYPERGRID LINKER]: Could not create map tile storage directory {0}: {1}", m_MapTileDirectory, e);
                    m_MapTileDirectory = string.Empty;
                }
            }

            if (MainConsole.Instance != null)
            {
                MainConsole.Instance.Commands.AddCommand("Hypergrid", false, "link-region",
                    "link-region <Xloc> <Yloc> <ServerURI> [<RemoteRegionName>]",
                    "Link a HyperGrid Region. Examples for <ServerURI>: http://grid.net:8002/ or http://example.org/path/foo.php", RunCommand);
                MainConsole.Instance.Commands.AddCommand("Hypergrid", false, "link-region",
                    "link-region <Xloc> <Yloc> <RegionIP> <RegionPort> [<RemoteRegionName>]",
                    "Link a hypergrid region (deprecated)", RunCommand);
                MainConsole.Instance.Commands.AddCommand("Hypergrid", false, "unlink-region",
                    "unlink-region <local name>",
                    "Unlink a hypergrid region", RunCommand);
                MainConsole.Instance.Commands.AddCommand("Hypergrid", false, "link-mapping", "link-mapping [<x> <y>]",
                    "Set local coordinate to map HG regions to", RunCommand);
                MainConsole.Instance.Commands.AddCommand("Hypergrid", false, "show hyperlinks", "show hyperlinks",
                    "List the HG regions", HandleShow);
            }
        }

        #region Link Region

        // from map search
        public GridRegion LinkRegion(UUID scopeID, string regionDescriptor)
        {
            string reason = string.Empty;
            uint xloc = Util.RegionToWorldLoc((uint)random.Next(0, Int16.MaxValue));
            return TryLinkRegionToCoords(scopeID, regionDescriptor, (int)xloc, 0, out reason);
        }

        private static Random random = new Random();

        // From the command line link-region (obsolete) and the map
        public GridRegion TryLinkRegionToCoords(UUID scopeID, string mapName, int xloc, int yloc, out string reason)
        {
            return TryLinkRegionToCoords(scopeID, mapName, xloc, yloc, UUID.Zero, out reason);
        }

        public GridRegion TryLinkRegionToCoords(UUID scopeID, string mapName, int xloc, int yloc, UUID ownerID, out string reason)
        {
            reason = string.Empty;
            GridRegion regInfo = null;

            mapName = mapName.Trim();

            if (!mapName.StartsWith("http"))
            {
                // Formats: grid.example.com:8002:region name
                //          grid.example.com:region name
                //          grid.example.com:8002
                //          grid.example.com

                string host;
                uint port = 80;
                string regionName = "";

                string[] parts = mapName.Split(new char[] { ':' });

                if (parts.Length == 0)
                {
                    reason = "Wrong format for link-region";
                    return null;
                }

                host = parts[0];

                if (parts.Length >= 2)
                {
                    // If it's a number then assume it's a port. Otherwise, it's a region name.
                    if (!UInt32.TryParse(parts[1], out port))
                        regionName = parts[1];
                }

                // always take the last one
                if (parts.Length >= 3)
                {
                    regionName = parts[2];
                }

                bool success = TryCreateLink(scopeID, xloc, yloc, regionName, port, host, ownerID, out regInfo, out reason);
                if (success)
                {
                    regInfo.RegionName = mapName;
                    return regInfo;
                }
            }
            else
            {
                // Formats: http://grid.example.com region name
                //          http://grid.example.com "region name"
                //          http://grid.example.com

                string serverURI;
                string regionName = "";

                string[] parts = mapName.Split(new char[] { ' ' });

                if (parts.Length == 0)
                {
                    reason = "Wrong format for link-region";
                    return null;
                }

                serverURI = parts[0];

                if (parts.Length >= 2)
                {
                    regionName = mapName.Substring(serverURI.Length);
                    regionName = regionName.Trim(new char[] { '"', ' ' });
                }

                if (TryCreateLink(scopeID, xloc, yloc, regionName, 0, null, serverURI, ownerID, out regInfo, out reason))
                {
                    regInfo.RegionName = mapName;
                    return regInfo;
                }
            }

            return null;
        }

        public bool TryCreateLink(UUID scopeID, int xloc, int yloc, string remoteRegionName, uint externalPort, string externalHostName, UUID ownerID, out GridRegion regInfo, out string reason)
        {
            return TryCreateLink(scopeID, xloc, yloc, remoteRegionName, externalPort, externalHostName, null, ownerID, out regInfo, out reason);
        }

        public bool TryCreateLink(UUID scopeID, int xloc, int yloc, string remoteRegionName, uint externalPort, string externalHostName, string serverURI, UUID ownerID, out GridRegion regInfo, out string reason)
        {
            m_log.InfoFormat("[HYPERGRID LINKER]: Link to {0} {1}, in {2}-{3}",
                ((serverURI == null) ? (externalHostName + ":" + externalPort) : serverURI),
                remoteRegionName, Util.WorldToRegionLoc((uint)xloc), Util.WorldToRegionLoc((uint)yloc));

            reason = string.Empty;
            Uri uri = null;

            regInfo = new GridRegion();
            if (externalPort > 0)
                regInfo.HttpPort = externalPort;
            else
                regInfo.HttpPort = 80;
            if (externalHostName != null)
                regInfo.ExternalHostName = externalHostName;
            else
                regInfo.ExternalHostName = "0.0.0.0";
            if (serverURI != null)
            {
                regInfo.ServerURI = serverURI;
                try
                {
                    uri = new Uri(serverURI);
                    regInfo.ExternalHostName = uri.Host;
                    regInfo.HttpPort = (uint)uri.Port;
                }
                catch {}
            }

            if (remoteRegionName != string.Empty)
                regInfo.RegionName = remoteRegionName;

            regInfo.RegionLocX = xloc;
            regInfo.RegionLocY = yloc;
            regInfo.ScopeID = scopeID;
            regInfo.EstateOwner = ownerID;

            // Make sure we're not hyperlinking to regions on this grid!
            if (m_ThisGatekeeperURI != null)
            {
                if (regInfo.ExternalHostName == m_ThisGatekeeperURI.Host && regInfo.HttpPort == m_ThisGatekeeperURI.Port)
                {
                    m_log.InfoFormat("[HYPERGRID LINKER]: Cannot hyperlink to regions on the same grid");
                    reason = "Cannot hyperlink to regions on the same grid";
                    return false;
                }
            }
            else
                m_log.WarnFormat("[HYPERGRID LINKER]: Please set this grid's Gatekeeper's address in [GridService]!");

            // Check for free coordinates
            GridRegion region = m_GridService.GetRegionByPosition(regInfo.ScopeID, regInfo.RegionLocX, regInfo.RegionLocY);
            if (region != null)
            {
                m_log.WarnFormat("[HYPERGRID LINKER]: Coordinates {0}-{1} are already occupied by region {2} with uuid {3}",
                    Util.WorldToRegionLoc((uint)regInfo.RegionLocX), Util.WorldToRegionLoc((uint)regInfo.RegionLocY),
                    region.RegionName, region.RegionID);
                reason = "Coordinates are already in use";
                return false;
            }

            try
            {
                regInfo.InternalEndPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), (int)0);
            }
            catch (Exception e)
            {
                m_log.Warn("[HYPERGRID LINKER]: Wrong format for link-region: " + e.Message);
                reason = "Internal error";
                return false;
            }

            // Finally, link it
            ulong handle = 0;
            UUID regionID = UUID.Zero;
            string externalName = string.Empty;
            string imageURL = string.Empty;
            if (!m_GatekeeperConnector.LinkRegion(regInfo, out regionID, out handle, out externalName, out imageURL, out reason))
                return false;

            if (regionID == UUID.Zero)
            {
                m_log.Warn("[HYPERGRID LINKER]: Unable to link region");
                reason = "Remote region could not be found";
                return false;
            }

            region = m_GridService.GetRegionByUUID(scopeID, regionID);
            if (region != null)
            {
                m_log.DebugFormat("[HYPERGRID LINKER]: Region already exists in coordinates {0} {1}",
                    Util.WorldToRegionLoc((uint)regInfo.RegionLocX), Util.WorldToRegionLoc((uint)regInfo.RegionLocY));
                regInfo = region;
                return true;
            }

            // We are now performing this check for each individual teleport in the EntityTransferModule instead.  This
            // allows us to give better feedback when teleports fail because of the distance reason (which can't be
            // done here) and it also hypergrid teleports that are within range (possibly because the source grid
            // itself has regions that are very far apart).
//            uint x, y;
//            if (m_Check4096 && !Check4096(handle, out x, out y))
//            {
//                //RemoveHyperlinkRegion(regInfo.RegionID);
//                reason = "Region is too far (" + x + ", " + y + ")";
//                m_log.Info("[HYPERGRID LINKER]: Unable to link, region is too far (" + x + ", " + y + ")");
//                //return false;
//            }

            regInfo.RegionID = regionID;

            if (externalName == string.Empty)
                regInfo.RegionName = regInfo.ServerURI;
             else
                regInfo.RegionName = externalName;

            m_log.DebugFormat("[HYPERGRID LINKER]: naming linked region {0}, handle {1}", regInfo.RegionName, handle.ToString());

            // Get the map image
            regInfo.TerrainImage = GetMapImage(regionID, imageURL);

            // Store the origin's coordinates somewhere
            regInfo.RegionSecret = handle.ToString();

            AddHyperlinkRegion(regInfo, handle);
            m_log.InfoFormat("[HYPERGRID LINKER]: Successfully linked to region {0} with image {1}", regInfo.RegionName, regInfo.TerrainImage);
            return true;
        }

        public bool TryUnlinkRegion(string mapName)
        {
            m_log.DebugFormat("[HYPERGRID LINKER]: Request to unlink {0}", mapName);
            GridRegion regInfo = null;

            List<RegionData> regions = m_Database.Get(Util.EscapeForLike(mapName), m_ScopeID);
            if (regions != null && regions.Count > 0)
            {
                OpenSim.Framework.RegionFlags rflags = (OpenSim.Framework.RegionFlags)Convert.ToInt32(regions[0].Data["flags"]);
                if ((rflags & OpenSim.Framework.RegionFlags.Hyperlink) != 0)
                {
                    regInfo = new GridRegion();
                    regInfo.RegionID = regions[0].RegionID;
                    regInfo.ScopeID = m_ScopeID;
                }
            }

            if (regInfo != null)
            {
                RemoveHyperlinkRegion(regInfo.RegionID);
                return true;
            }
            else
            {
                m_log.InfoFormat("[HYPERGRID LINKER]: Region {0} not found", mapName);
                return false;
            }
        }

// Not currently used
//        /// <summary>
//        /// Cope with this viewer limitation.
//        /// </summary>
//        /// <param name="regInfo"></param>
//        /// <returns></returns>
//        public bool Check4096(ulong realHandle, out uint x, out uint y)
//        {
//            uint ux = 0, uy = 0;
//            Utils.LongToUInts(realHandle, out ux, out uy);
//            x = Util.WorldToRegionLoc(ux);
//            y = Util.WorldToRegionLoc(uy);
//
//            const uint limit = Util.RegionToWorldLoc(4096 - 1);
//            uint xmin = ux - limit;
//            uint xmax = ux + limit;
//            uint ymin = uy - limit;
//            uint ymax = uy + limit;
//            // World map boundary checks
//            if (xmin < 0 || xmin > ux)
//                xmin = 0;
//            if (xmax > int.MaxValue || xmax < ux)
//                xmax = int.MaxValue;
//            if (ymin < 0 || ymin > uy)
//                ymin = 0;
//            if (ymax > int.MaxValue || ymax < uy)
//                ymax = int.MaxValue;
//
//            // Check for any regions that are within the possible teleport range to the linked region
//            List<GridRegion> regions = m_GridService.GetRegionRange(m_ScopeID, (int)xmin, (int)xmax, (int)ymin, (int)ymax);
//            if (regions.Count == 0)
//            {
//                return false;
//            }
//            else
//            {
//                // Check for regions which are not linked regions
//                List<GridRegion> hyperlinks = m_GridService.GetHyperlinks(m_ScopeID);
//                IEnumerable<GridRegion> availableRegions = regions.Except(hyperlinks);
//                if (availableRegions.Count() == 0)
//                    return false;
//            }
//
//            return true;
//        }

        private void AddHyperlinkRegion(GridRegion regionInfo, ulong regionHandle)
        {
            RegionData rdata = m_GridService.RegionInfo2RegionData(regionInfo);
            int flags = (int)OpenSim.Framework.RegionFlags.Hyperlink + (int)OpenSim.Framework.RegionFlags.NoDirectLogin + (int)OpenSim.Framework.RegionFlags.RegionOnline;
            rdata.Data["flags"] = flags.ToString();

            m_Database.Store(rdata);
        }

        private void RemoveHyperlinkRegion(UUID regionID)
        {
            m_Database.Delete(regionID);
        }

        public UUID GetMapImage(UUID regionID, string imageURL)
        {
            return m_GatekeeperConnector.GetMapImage(regionID, imageURL, m_MapTileDirectory);
        }
        #endregion

        #region Console Commands

        public void HandleShow(string module, string[] cmd)
        {
            if (cmd.Length != 2)
            {
                MainConsole.Instance.Output("Syntax: show hyperlinks");
                return;
            }
            List<RegionData> regions = m_Database.GetHyperlinks(UUID.Zero);
            if (regions == null || regions.Count < 1)
            {
                MainConsole.Instance.Output("No hyperlinks");
                return;
            }

            MainConsole.Instance.Output("Region Name");
            MainConsole.Instance.Output("Location                         Region UUID");
            MainConsole.Instance.Output(new string('-', 72));
            foreach (RegionData r in regions)
            {
                MainConsole.Instance.Output(
                    String.Format("{0}\n{2,-32} {1}\n",
                        r.RegionName, r.RegionID,
                        String.Format("{0},{1} ({2},{3})", r.posX, r.posY,
                                    Util.WorldToRegionLoc((uint)r.posX), Util.WorldToRegionLoc((uint)r.posY)
                        )
                    )
                );
            }
            return;
        }

        public void RunCommand(string module, string[] cmdparams)
        {
            List<string> args = new List<string>(cmdparams);
            if (args.Count < 1)
                return;

            string command = args[0];
            args.RemoveAt(0);

            cmdparams = args.ToArray();

            RunHGCommand(command, cmdparams);

        }

        private void RunLinkRegionCommand(string[] cmdparams)
        {
            int xloc, yloc;
            string serverURI;
            string remoteName = null;
            xloc = (int)Util.RegionToWorldLoc((uint)Convert.ToInt32(cmdparams[0]));
            yloc = (int)Util.RegionToWorldLoc((uint)Convert.ToInt32(cmdparams[1]));
            serverURI = cmdparams[2];
            if (cmdparams.Length > 3)
                remoteName = string.Join(" ", cmdparams, 3, cmdparams.Length - 3);
            string reason = string.Empty;
            GridRegion regInfo;
            if (TryCreateLink(UUID.Zero, xloc, yloc, remoteName, 0, null, serverURI, UUID.Zero, out regInfo, out reason))
                MainConsole.Instance.Output("Hyperlink established");
            else
                MainConsole.Instance.Output("Failed to link region: " + reason);
        }

        private void RunHGCommand(string command, string[] cmdparams)
        {
            if (command.Equals("link-mapping"))
            {
                if (cmdparams.Length == 2)
                {
                    try
                    {
                        m_autoMappingX = Convert.ToUInt32(cmdparams[0]);
                        m_autoMappingY = Convert.ToUInt32(cmdparams[1]);
                        m_enableAutoMapping = true;
                    }
                    catch (Exception)
                    {
                        m_autoMappingX = 0;
                        m_autoMappingY = 0;
                        m_enableAutoMapping = false;
                    }
                }
            }
            else if (command.Equals("link-region"))
            {
                if (cmdparams.Length < 3)
                {
                    if ((cmdparams.Length == 1) || (cmdparams.Length == 2))
                    {
                        LoadXmlLinkFile(cmdparams);
                    }
                    else
                    {
                        LinkRegionCmdUsage();
                    }
                    return;
                }

                //this should be the prefererred way of setting up hg links now
                if (cmdparams[2].StartsWith("http"))
                {
                    RunLinkRegionCommand(cmdparams);
                }
                else if (cmdparams[2].Contains(":"))
                {
                    // New format
                    string[] parts = cmdparams[2].Split(':');
                    if (parts.Length > 2)
                    {
                        // Insert remote region name
                        ArrayList parameters = new ArrayList(cmdparams);
                        parameters.Insert(3, parts[2]);
                        cmdparams = (string[])parameters.ToArray(typeof(string));
                    }
                    cmdparams[2] = "http://" + parts[0] + ':' + parts[1];

                    RunLinkRegionCommand(cmdparams);
                }
                else
                {
                    // old format
                    GridRegion regInfo;
                    uint xloc, yloc;
                    uint externalPort;
                    string externalHostName;
                    try
                    {
                        xloc = Convert.ToUInt32(cmdparams[0]);
                        yloc = Convert.ToUInt32(cmdparams[1]);
                        externalPort = Convert.ToUInt32(cmdparams[3]);
                        externalHostName = cmdparams[2];
                        //internalPort = Convert.ToUInt32(cmdparams[4]);
                        //remotingPort = Convert.ToUInt32(cmdparams[5]);
                    }
                    catch (Exception e)
                    {
                        MainConsole.Instance.Output("[HGrid] Wrong format for link-region command: " + e.Message);
                        LinkRegionCmdUsage();
                        return;
                    }

                    // Convert cell coordinates given by the user to meters
                    xloc = Util.RegionToWorldLoc(xloc);
                    yloc = Util.RegionToWorldLoc(yloc);
                    string reason = string.Empty;
                    if (TryCreateLink(UUID.Zero, (int)xloc, (int)yloc,
                                    string.Empty, externalPort, externalHostName, UUID.Zero, out regInfo, out reason))
                    {
                        // What is this? The GridRegion instance will be discarded anyway,
                        // which effectively ignores any local name given with the command.
                        //if (cmdparams.Length >= 5)
                        //{
                        //    regInfo.RegionName = "";
                        //    for (int i = 4; i < cmdparams.Length; i++)
                        //        regInfo.RegionName += cmdparams[i] + " ";
                        //}
                    }
                }
                return;
            }
            else if (command.Equals("unlink-region"))
            {
                if (cmdparams.Length < 1)
                {
                    UnlinkRegionCmdUsage();
                    return;
                }
                string region = string.Join(" ", cmdparams);
                if (TryUnlinkRegion(region))
                    MainConsole.Instance.Output("Successfully unlinked " + region);
                else
                    MainConsole.Instance.Output("Unable to unlink " + region + ", region not found.");
            }
        }

        private void LoadXmlLinkFile(string[] cmdparams)
        {
            //use http://www.hgurl.com/hypergrid.xml for test
            try
            {
                XmlReader r = XmlReader.Create(cmdparams[0]);
                XmlConfigSource cs = new XmlConfigSource(r);
                string[] excludeSections = null;

                if (cmdparams.Length == 2)
                {
                    if (cmdparams[1].ToLower().StartsWith("excludelist:"))
                    {
                        string excludeString = cmdparams[1].ToLower();
                        excludeString = excludeString.Remove(0, 12);
                        char[] splitter = { ';' };

                        excludeSections = excludeString.Split(splitter);
                    }
                }

                for (int i = 0; i < cs.Configs.Count; i++)
                {
                    bool skip = false;
                    if ((excludeSections != null) && (excludeSections.Length > 0))
                    {
                        for (int n = 0; n < excludeSections.Length; n++)
                        {
                            if (excludeSections[n] == cs.Configs[i].Name.ToLower())
                            {
                                skip = true;
                                break;
                            }
                        }
                    }
                    if (!skip)
                    {
                        ReadLinkFromConfig(cs.Configs[i]);
                    }
                }
            }
            catch (Exception e)
            {
                m_log.Error(e.ToString());
            }
        }

        private void ReadLinkFromConfig(IConfig config)
        {
            GridRegion regInfo;
            uint xloc, yloc;
            uint externalPort;
            string externalHostName;
            uint realXLoc, realYLoc;

            xloc = Convert.ToUInt32(config.GetString("xloc", "0"));
            yloc = Convert.ToUInt32(config.GetString("yloc", "0"));
            externalPort = Convert.ToUInt32(config.GetString("externalPort", "0"));
            externalHostName = config.GetString("externalHostName", "");
            realXLoc = Convert.ToUInt32(config.GetString("real-xloc", "0"));
            realYLoc = Convert.ToUInt32(config.GetString("real-yloc", "0"));

            if (m_enableAutoMapping)
            {
                xloc = (xloc % 100) + m_autoMappingX;
                yloc = (yloc % 100) + m_autoMappingY;
            }

            if (((realXLoc == 0) && (realYLoc == 0)) ||
                (((realXLoc - xloc < 3896) || (xloc - realXLoc < 3896)) &&
                 ((realYLoc - yloc < 3896) || (yloc - realYLoc < 3896))))
            {
                xloc = Util.RegionToWorldLoc(xloc);
                yloc = Util.RegionToWorldLoc(yloc);
                string reason = string.Empty;
                if (TryCreateLink(UUID.Zero, (int)xloc, (int)yloc,
                                string.Empty, externalPort, externalHostName, UUID.Zero, out regInfo, out reason))
                {
                    regInfo.RegionName = config.GetString("localName", "");
                }
                else
                    MainConsole.Instance.Output("Unable to link " + externalHostName + ": " + reason);
            }
        }

        private void LinkRegionCmdUsage()
        {
            MainConsole.Instance.Output("Usage: link-region <Xloc> <Yloc> <ServerURI> [<RemoteRegionName>]");
            MainConsole.Instance.Output("Usage (deprecated): link-region <Xloc> <Yloc> <HostName>:<HttpPort>[:<RemoteRegionName>]");
            MainConsole.Instance.Output("Usage (deprecated): link-region <Xloc> <Yloc> <HostName> <HttpPort> [<LocalName>]");
            MainConsole.Instance.Output("Usage: link-region <URI_of_xml> [<exclude>]");
        }

        private void UnlinkRegionCmdUsage()
        {
            MainConsole.Instance.Output("Usage: unlink-region <LocalName>");
        }

        #endregion

    }
}

redpajama_set_name: RedPajamaGithub


text:
SEC Reaches $119 Million Settlement With Charles Schwab
Signaling its continued focus on how major industry players communicate with investors, the SEC has announced a $119 million settlement with Charles Schwab for misleading investors.
By Jenna Greene | January 11, 2011 at 12:00 AM
The Securities and Exchange Commission is starting the year with a bang, announcing a $119 million settlement with the Charles Schwab Corp. for misleading investors and failing to prevent the misuse of nonpublic information.


Amazon.com Price: $70.99 $52.11 (as of 20/04/2019 23:25 PST- Details)	& FREE Shipping.
Using real-world cases, this clinical guide details the psychosocial challenges faced by patients navigating the world of medically assisted reproduction (MAR). It describes in depth the latest perspectives on counseling approaches to the evolving complexities of family creation, whether fertility issues are a presenting problem or occur during the course of therapy or the aftermath of a struggle with infertility. Applying an evidence-based, cross-border approach, international experts not only discuss advanced perspectives on topics such as third party reproduction, pregnancy loss and adoption, but also newer issues of fertility preservation, "older" patient parenthood, GLBT and singles' family creation. A comprehensive resource, it explores pioneering insights into fertility counseling such as spirituality, developing disclosure language, a counselor's personal fertility issues, and more. This is an essential aid for medical and mental health professionals to develop and refine the skills needed to treat the increasingly diverse and complex needs of MAR patients.


text:
Q: Transform HTML text into input field Consider a standard web page created with PHP passing some text variables, taken from a database, to an HTML file.
I would like to be able to modify the value of the variables using as an interface the real HTML file (so one can actually see where the variables are in the page).
I tried simply using a substitution like "$variable --> < input value="'.$variable.'"/>". This works only in some cases. For example it doesn't work if the variable is the content on an  tag or if the variable contains some HTML.
Do you have any suggestion on how I could accomplish this? Is there a way to force <input> tags anywhere in my HTML file, so that they can be seen from the end user?

A: This is the default and the easiest way to edit your variables (content of your site)
<!DOCTYPE html>

    <meta charset="utf-8">
    <title>Edit</title>

<?php
    $title = "Lorem Ipsum";
    $content = "Lorem Ipsum is simply dummy text of the printing and typesetting industry Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.

function toggle(o) {
    var e = document.getElementById(o);
    e.style.display = (e.style.display != 'none' ? 'none' : '' );
}
";
    $author = "Anonymous";
?>

    <form enctype="multipart/form-data" method="post" action="_URL_">
        Tilte
<input type="text" name="title" value="<?php echo  stripslashes($title) ?>" />

        Content
<textarea name="content"><?php echo stripslashes($content) ?></textarea>

        Author
<input type="text" name="author" value="<?php echo  stripslashes($author) ?>" />

        <input type="submit" name="submit" value="submit" />
    </form>

redpajama_set_name: RedPajamaStackExchange