code:
:: slave generation widgets [nobr widget]

<<widget "NationalityToRace">>
<<set $args[0].race
	= hashChoice(setup.raceSelector[$args[0].nationality] || setup.raceSelector[""])>>
<</widget>>

<<widget "NationalityToName">>
<<set $args[0].birthName =
	(setup.namePoolSelector[$args[0].nationality + "." + $args[0].race]
		|| setup.namePoolSelector[$args[0].nationality]
		|| setup.whiteAmericanSlaveNames).random()>>
<<set $args[0].birthSurname =
	(setup.surnamePoolSelector[$args[0].nationality + "." + $args[0].race]
		|| setup.surnamePoolSelector[$args[0].nationality]
		|| setup.whiteAmericanSlaveSurnames).random()>>
<<set $args[0].slaveName = $args[0].birthName>>
<<set $args[0].slaveName = $args[0].birthName, $args[0].slaveSurname = $args[0].birthSurname>>
<<if $useFSNames == 1>>
<<if $arcologies[0].FSChattelReligionist > 20>>
	<<set $args[0].slaveName = setup.chattelReligionistSlaveNames.random(), $args[0].slaveSurname = 0>>
<<elseif $arcologies[0].FSRomanRevivalist > 20>>
	<<set $args[0].slaveName = setup.romanSlaveNames.random(), $args[0].slaveSurname = setup.romanSlaveSurnames.random()>>
<<elseif $arcologies[0].FSAztecRevivalist > 20>>
	<<set $args[0].slaveName = setup.aztecSlaveNames.random(), $args[0].slaveSurname = 0>>
<<elseif $arcologies[0].FSEgyptianRevivalist > 20>>
	<<set $args[0].slaveName = setup.ancientEgyptianSlaveNames.random(), $args[0].slaveSurname = 0>>
<<elseif $arcologies[0].FSEdoRevivalist > 20>>
	<<set $args[0].slaveName = setup.edoSlaveNames.random(), $args[0].slaveSurname = setup.edoSlaveSurnames.random()>>
<<elseif $arcologies[0].FSDegradationist != "unset">>
	<<DegradingName $args[0]>>
<</if>>
<</if>>

<</widget>>

<<widget "NationalityToAccent">>

<<set _naturalAccent = either(0,1,1,2,2,2,3,3,3,3)>>

<<switch $args[0].nationality>>
<<case "Afghan">>
	<<if $language == "Pashto">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Albanian">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Algerian">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "American">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<elseif $language == "Spanish" && $args[0].race == "latina">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "Chinese" && $args[0].race == "asian">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "Arabic" && $args[0].race == "middle eastern">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Andorran">>
	<<if $language == "Catalan">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Angolan">>
	<<if $language == "Portuguese">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Antiguan">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Argentinian">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Armenian">>
	<<if $language == "Russian">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "English">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Aruban">>
	<<if $language == "Dutch">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "English">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "Portuguese">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Australian">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Austrian">>
	<<if $language == "German">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Serbian">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "Slovene">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "Turkish" && $args[0].race == "middle eastern">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Azerbaijani">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Bahamian">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Bahraini">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Bangladeshi">>
	<<if $language == "Bengali">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<elseif $language == "Hindi">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Barbadian">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Belarusian">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Belgian">>
	<<if $language == "Dutch">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "German">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Belizean">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Beninese">>
	<<if $language == "French">>
		<<set $args[0].accent = 1>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Bermudian">>
	<<if $language == "English">>
		<<set $args[0].accent = 1>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Bhutanese">>
	<<if $language == "Dzongkha">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Bissau-Guinean">>
	<<if $language == "Portuguese">>
		<<set $args[0].accent = 1>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Bolivian">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = 1>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Bosnian">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Brazilian">>
	<<if $language == "Portuguese">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "British">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Bruneian">>
	<<if $language == "Malay">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "English">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Bulgarian">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Burkinabé">>
	<<if $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Burmese">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Burundian">>
	<<if $language == "Kirundi">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Cambodian">>
	<<if $language == "Khmer">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<elseif $language == "Cham">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "French">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Cameroonian">>
	<<if $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Canadian">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<elseif $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Cape Verdean">>
	<<if $language == "Portuguese">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Catalan">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Central African">>
	<<if $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Chadian">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Chilean">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Chinese">>
	<<if $language == "Tibetan">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "Korean">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "Kazakh">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Colombian">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Comorian">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "French">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Congolese">>
	<<if $language == "Lingala">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<elseif $language == "Kikongo">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<elseif $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "a Cook Islander">>
	<<if $language == "Cook Islands Māori">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<elseif $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Costa Rican">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Croatian">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Cuban">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Cypriot">>
	<<if $language == "Greek">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Turkish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "English">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Czech">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Danish">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Djiboutian">>
	<<if $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Dominican">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Dominiquais">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Dutch">>
	<<set $args[0].accent = _naturalAccent>>
<<case "East Timorese">>
	<<if $language == "Tetum">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<elseif $language == "Portuguese">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Malay">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Ecuadorian">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Egyptian">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Emirati">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Equatoguinean">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Eritrean">>
	<<if $language == "Tigrinya">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<elseif $language == "Arabic">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "English">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Estonian">>
	<<if $language == "Russian">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Ethiopian">>
	<<if $language == "Amharic">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<elseif $language == "Arabic">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "Tigrinya">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Fijian">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Filipina">>
	<<if $language == "Filipino">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<elseif $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Tagalog">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Arabic">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "Spanish">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Finnish">>
	<<if $language == "Swedish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "French">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "Spanish">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "German">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "Arabic" && $args[0].race == "middle eastern">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "Catalan">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "French Guianan">>
	<<if $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "French Polynesian">>
	<<if $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Gabonese">>
	<<if $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Gambian">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Georgian">>
	<<if $language == "Abkhaz">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "German">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "French">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "Turkish" && $args[0].race == "middle eastern">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Ghanan">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Hausa">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "Arabic">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Greek">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Greenlandic">>
	<<if $language == "Danish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Grenadian">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Guamanian">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Guatemalan">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Guinean">>
	<<if $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Guyanese">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Haitian">>
	<<if $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Honduran">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Hungarian">>
	<<set $args[0].accent = _naturalAccent>>
<<case "I-Kiribati">>
	<<if $language == "Gilbertese">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<elseif $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Icelandic">>
	<<if $language == "Danish">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "English">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Indian">>
	<<if $language == "Hindi">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<elseif $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Indonesian">>
	<<if $language == "Malay">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Iranian">>
	<<if $language == "Persian">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<elseif $language == "Arabic">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Iraqi">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Kurdish">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Irish">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Israeli">>
	<<if $language == "Hebrew">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<elseif $language == "Arabic">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Italian">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Ivorian">>
	<<if $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Jamaican">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>><<case "Japanese">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Jordanian">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Kazakh">>
	<<if $language == "Russian">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Kenyan">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Kittitian">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Korean">>
	<<if $language == "Chinese">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Kosovan">>
	<<if $language == "Albanian">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Serbian">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Kurdish">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Kuwaiti">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Kyrgyz">>
	<<if $language == "Russian">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Laotian">>
	<<if $language == "Lao">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<elseif $language == "Khmu">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "French">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Latvian">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Lebanese">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Liberian">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Libyan">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "a Liechtensteiner">>
	<<if $language == "German">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Lithuanian">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Luxembourgian">>
	<<if $language == "German">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Macedonian">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Malagasy">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Malawian">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Malaysian">>
	<<if $language == "Malay">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Maldivian">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Malian">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Maltese">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Italian">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Marshallese">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Mauritanian">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Mauritian">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Mexican">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Micronesian">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Moldovan">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Monégasque">>
	<<if $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Mongolian">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Montenegrin">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Moroccan">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Mosotho">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Motswana">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Mozambican">>
	<<if $language == "Portuguese">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Namibian">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Afrikaans">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Nauruan">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Nepalese">>
	<<set $args[0].accent = _naturalAccent>>
<<case "New Caledonian">>
	<<if $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "a New Zealander">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Ni-Vanuatu">>
	<<if $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Nicaraguan">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Nigerian">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Hausa">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Arabic">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Nigerien">>
	<<if $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Hausa">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Arabic">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Niuean">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Norwegian">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Omani">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Pakistani">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Palauan">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Sonsorolese">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Tobian">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Japanese">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Palestinian">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Panamanian">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Papua New Guinean">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Paraguayan">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Peruvian">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Polish">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Portuguese">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Puerto Rican">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "English">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Qatari">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Romanian">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Russian">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Rwandan">>
	<<if $language == "Kinyarwanda">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Sahrawi">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Saint Lucian">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Salvadoran">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Sammarinese">>
	<<if $language == "Italian">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Samoan">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "São Toméan">>
	<<if $language == "Portuguese">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Saudi">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Scottish">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Senegalese">>
	<<if $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Serbian">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Seychellois">>
	<<if $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "English">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Sierra Leonean">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Singaporean">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Chinese">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Malay">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Tamil">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Slovak">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Slovene">>
	<<set $args[0].accent = _naturalAccent>>
<<case "a Solomon Islander">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Somali">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "South African">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Afrikaans">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "South Sudanese">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Spanish">>
	<<if $language == "Catalan">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Sri Lankan">>
	<<if $language == "Sinhalese">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<elseif $language == "Tamil">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<elseif $language == "English">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Sudanese">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Surinamese">>
	<<if $language == "Dutch">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Swazi">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Swedish">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "Finnish">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "Norwegian">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "German">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Swiss">>
	<<if $language == "German">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Italian">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Syrian">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Taiwanese">>
	<<if $language == "Chinese">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Tajik">>
	<<if $language == "Russian">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Tanzanian">>
	<<if $language == "Swahili">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Thai">>
	<<if $language == "Chinese">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "Malay">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<elseif $language == "Khmer">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Tibetan">>
	<<if $language == "Chinese">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Togolese">>
	<<if $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Tongan">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Trinidadian">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Tunisian">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Turkish">>
	<<set $args[0].accent = _naturalAccent>>
<<case "Turkmen">>
	<<if $language == "Russian">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Tuvaluan">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Ugandan">>
	<<if $language == "Swahili">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Ukrainian">>
	<<if $language == "Russian">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Uruguayan">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Uzbek">>
	<<if $language == "Russian">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Vatican">>
	<<if $language == "Italian">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Venezuelan">>
	<<if $language == "Spanish">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Vietnamese">>
	<<if $language == "Chinese">>
		<<set $args[0].accent = either(0,1,2,2,2,3,3)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Vincentian">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Yemeni">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Zairian">>
	<<if $language == "Lingala">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<elseif $language == "Kikongo">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "Swahili">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<elseif $language == "French">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Zambian">>
	<<if $language == "English">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Zimbabwean">>
	<<if $language == "English" && $args[0].race == "white">>
		<<set $args[0].accent = either(0,1,1,1,2)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Ancient Chinese Revivalist">>
	<<if $language == "Chinese">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Ancient Egyptian Revivalist">>
	<<if $language == "Ancient Egyptian">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Arabian Revivalist">>
	<<if $language == "Arabic">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Aztec Revivalist">>
	<<if $language == "Nahuatl">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Edo Revivalist">>
	<<if $language == "Japanese">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<case "Roman Revivalist">>
	<<if $language == "Latin">>
		<<set $args[0].accent = either(0,0,0,1)>>
	<<else>>
		<<set $args[0].accent = _naturalAccent>>
	<</if>>
<<default>>
	<<set $args[0].accent = _naturalAccent>>
<</switch>>

<<if $args[0].nationality == $language>>
	<<set $args[0].accent = either(0,0,0,1)>>
<</if>>

<</widget>>

/* Call as <<GenerateAge slave>> */
<<widget "GenerateAge">>

<<if $activeSlaveOneTimeMaxAge > 998>>
	<<if $pedo_mode == 1>>
		<<set $activeSlaveOneTimeMaxAge = 18>>
	<<else>>
		<<set $activeSlaveOneTimeMaxAge = 42>>
	<</if>>
<<elseif $pedo_mode == 1 && $one_time_age_overrides_pedo_mode == 0 && $activeSlaveOneTimeMaxAge > 18>>
	<<set $activeSlaveOneTimeMaxAge = 18>>
<</if>>
<<if $retirementAge < $activeSlaveOneTimeMaxAge>>
	<<set $activeSlaveOneTimeMaxAge = ($retirementAge-1)>>
<</if>>
<<if $activeSlaveOneTimeMinAge < $minimumSlaveAge>>
	<<set $activeSlaveOneTimeMinAge = $minimumSlaveAge>>
<<elseif $pedo_mode == 1 && $one_time_age_overrides_pedo_mode == 0>>
	<<set $activeSlaveOneTimeMinAge = $minimumSlaveAge>>
<</if>>
<<if $activeSlaveOneTimeMaxAge < $activeSlaveOneTimeMinAge>>
	<<set $activeSlaveOneTimeMaxAge = $activeSlaveOneTimeMinAge>>
<</if>>
<<if ($activeSlaveOneTimeMaxAge >= 30) && ($arcologies[0].FSMaturityPreferentialist != "unset")>>
	<<if $ageAdjustOverride != 1>>
		<<set $activeSlaveOneTimeMaxAge = ($activeSlaveOneTimeMaxAge + 10)>>
	<</if>>
<</if>>
<<set $args[0].actualAge = random($activeSlaveOneTimeMinAge,$activeSlaveOneTimeMaxAge)>>
<<set _secondAgeRoll = random($activeSlaveOneTimeMinAge,$activeSlaveOneTimeMaxAge)>>
<<if ($arcologies[0].FSYouthPreferentialist != "unset") && ($arcologies[0].FSYouthPreferentialist >= random(1,100))>>
	<<set $args[0].actualAge = Math.min($args[0].actualAge, _secondAgeRoll)>>
<<elseif ($arcologies[0].FSMaturityPreferentialist != "unset") && ($arcologies[0].FSMaturityPreferentialist >= random(1,100))>>
	<<set $args[0].actualAge = Math.max($args[0].actualAge, _secondAgeRoll)>>
<</if>>
<<if $args[0].actualAge >= $retirementAge>>
	<<set $args[0].actualAge = ($retirementAge-2)>>
<</if>>
<<set $activeSlaveOneTimeMinAge = 0>>
<<set $activeSlaveOneTimeMaxAge = 999>>
<<set $one_time_age_overrides_pedo_mode = 0>>
<<set $ageAdjustOverride = 0>>
<<set $args[0].visualAge = $args[0].actualAge>>
<<set $args[0].physicalAge = $args[0].actualAge>>
<<set $args[0].ovaryAge = $args[0].actualAge>>
<<set $args[0].age = $args[0].actualAge>> /*compatibility*/
<<set $args[0].pubertyAgeXX = $fertilityAge>>
<<set $args[0].pubertyAgeXY = $potencyAge>>

<</widget>>


code:
:: Summary Widgets [widget nobr]

/%
 Call as <<SlaveStatClamp $slave>>
%/
<<widget "SlaveStatClamp">>
<<set $args[0].energy = Math.clamp($args[0].energy, 0, 100)>>

<<if $args[0].devotion > 100>>
	<<if $args[0].trust < -95>>
		<<set $args[0].trust = -100>>
	<<elseif ($args[0].trust < 100) && ($args[0].trust >= 20)>>
		<<set $args[0].trust += (Math.trunc(($args[0].devotion-100)*5)/10)>>
	<<else>>
		<<set $rep += 10*($args[0].devotion-100)>>
	<</if>>
	<<set $args[0].devotion = 100>>
<<elseif $args[0].devotion < -95>>
	<<set $args[0].devotion = -100>>
<</if>>
<<if $args[0].trust > 100>>
	<<if $args[0].devotion < -95>>
		<<set $args[0].devotion = -100>>
	<<elseif $args[0].devotion < 100 && $args[0].devotion >= 20>>
		<<set $args[0].devotion += Math.trunc($args[0].trust-100)>>
	<<else>>
		<<set $rep += 10*($args[0].trust-100)>>
	<</if>>
	<<set $args[0].trust = 100>>
<<elseif $args[0].trust < -95>>
	<<set $args[0].trust = -100>>
<</if>>
<<if $args[0].trust < -100>><<set $args[0].trust = -100>><</if>>
<<if $args[0].devotion < -100>><<set $args[0].devotion = -100>><</if>>
<<if isNaN($args[0].oralCount)>><<set $args[0].oralCount = 0>>//Oral count has broken, report what you just did!<</if>>
<<if isNaN($args[0].analCount)>><<set $args[0].analCount = 0>>//Anal count has broken, report what you just did!<</if>>
<<if isNaN($args[0].vaginalCount)>><<set $args[0].vaginalCount = 0>>//Vaginal count has broken, report what you just did!<</if>>
<<if isNaN($args[0].mammaryCount)>><<set $args[0].mammaryCount = 0>>//Titfuck count has broken, report what you just did!<</if>>
<<if isNaN($args[0].penetrativeCount)>><<set $args[0].penetrativeCount = 0>>//Penetration count has broken, report what you just did!<</if>>
<<if ndef $args[0].foreskin>><<set $args[0].foreskin = 0>><</if>>
<<if $args[0].amp != 0 && $args[0].heels == 1>><<set $args[0].heels = 0>><</if>>
<<if $args[0].vagina < 0 && $args[0].mpreg == 0 && $args[0].preg == -1>><<set $args[0].preg = 0, WombFlush($args[0])>><</if>>
<</widget>>


code:
*.rtf	 diff=astextplain
*.RTF	 diff=astextplain
*.txt	 diff
*.TXT	 diff

repo_name: zaksynack/game

path: .gitattributes

license: unknown


code:
game/save
game/content
game/debugger
game/engine/FastQSP.ini
game/jack.qsp
game/FastQSP.ini
Qgen/jack.txt
Qgen/txt2gam.log
Qgen/FastQSP.ini
Qgen/qgen.cfg
*.rar

path: .gitignore


code:
@ECHO off

:: Set those lines to fit your setup.
:: This is where glife.qsp will be copied. If you don't want to move it just comment (::) the line below.
:: set CP_TO=..\GL_ECV

:: This is the program used to open the QSPFILE. If you comment this line windows will launch the default app for the ".qsp" extension.
set QSPGUI=..\game\engine\jack.exe
set QGEN=qgen.exe

:: The file that will be generated or open
set QSPFILE=..\game\jack.qsp

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:menu
cls
echo.
echo :: QSP Compiler and Launcher
echo.

if defined QGEN (
	if not exist "%QGEN%" (
		echo QGEN     : [ERROR] - %QGEN%  not found. Using DEFAULT application.
		set QGEN=
	) else ( echo QGEN     : [OK] - "%QGEN%")
) else echo QGEN     : [NOT DEFINED] - Using DEFAULT application.

if defined QSPGUI (
	if not exist "%QSPGUI%" (
		echo QSP EXEC : [ERROR] - %QSPGUI% not found.
		set QSPGUI=
	) else ( echo QSP EXEC : [OK] - "%QSPGUI%")
) else ( echo QSP EXEC : [NOT DEFINED] - Using Windows DEFAULT.)

if defined QSPFILE (
	if not exist "%QSPFILE%" (
		echo QSP FILE : [WARNING] - %QSPFILE% not found.
	) else ( echo QSP FILE : [OK] - "%QSPFILE%")
) else ( echo QSP FILE : [NOT DEFINED] - ERROR: CAN'T CONTINUE.)

if defined CP_TO (
	if not exist "%CP_TO%" (
		echo COPY     : [ERROR] - Destination "%CP_TO%" not found. Copy DISABLED.
		set CP_TO=
	) else ( echo COPY     : [OK] - "%CP_TO%")
) else (  echo COPY     : [DISABLED] )

echo.

if defined NOT_FOUND (
	echo ERROR: Option '%action%' wasn't recognized. Is it lowercase?
	set NOT_FOUND=
)

echo.
echo ACTIONS: (B)uild  (R)un  (F)ull  (Q)Gen  (E)xit
echo.
set /p action=Choose an action:

if defined QSPFILE (
	if %action% == b goto build
	if %action% == r goto run
	if %action% == f goto build
	if %action% == d goto build
	if %action% == q goto qgen
)

if %action% == e goto exit

set NOT_FOUND=1
goto menu

:build
echo.
echo Building ...

@ECHO ON
DEL %QSPFILE%
python txtmerge.py
txt2gam.exe jack.txt %QSPFILE% > txt2gam.log
@ECHO OFF

echo.
if defined CP_TO ( echo Copying %QSPFILE% to "%CP_TO%" ... & copy %QSPFILE% %CP_TO% > nul )

echo.
echo Done.
pause
if %action% == d ( goto run )
if %action% == f ( goto run ) else ( goto menu )

:qgen
echo.
echo Running ...
if defined CP_TO ( start %QGEN% %CP_TO%\%QSPFILE% ) else ( start %QGEN% %QSPFILE% )
goto exit

:run
echo.
echo Running ...

::if defined CP_TO ( start %QSPGUI% %CP_TO%\%QSPFILE% ) else ( start %QSPGUI% %QSPFILE% )
::if defined CP_TO ( start %QSPGUI% %CP_TO%\%QSPFILE% ) else ( cd .. & Jack-o-nine-tails.exe )
if %action% == d ( start %QSPGUI% %QSPFILE% ) else ( cd .. & Jack-o-nine-tails.exe )
:exit


code:
<?xml version="1.0" encoding="utf-8"?>
<QGen-keywords>
  <Statements>
    <Keyword name="pl" desc="PL [выражение] / *PL [выражение] - вывод текста в дополнительное / основное окно описания, затем переход на новую строку"/>
    <Keyword name="clear" desc="CLEAR / *CLEAR - очистка дополнительного / основного окна описания"/>
    <Keyword name="clr" desc="CLR / *CLR - очистка дополнительного / основного окна описания"/>
    <Keyword name="p" desc="P [выражение] / *P [выражение] - вывод текста в дополнительное / основное окно описания"/>
    <Keyword name="nl" desc="NL [выражение] / *NL [выражение] - переход на новую строку, затем вывод текста в дополнительное / основное окно описания"/>
    <Keyword name="msg" desc="MSG [выражение] - вывод сообщения в информационном окне"/>
    <Keyword name="wait" desc="WAIT [#выражение] - остановка выполнения программы на заданное количество миллисекунд"/>
    <Keyword name="act" desc="ACT [$название],[$путь к изображению]:[оператор] & [оператор] & ... - добавление действия"/>
    <Keyword name="delact" desc="DELACT [$название] / DEL ACT [$название] - удаление действия"/>
    <Keyword name="cla" desc="CLA - очистка списка действий"/>
    <Keyword name="cmdclear" desc="CMDCLEAR - очистка строки ввода"/>
    <Keyword name="cmdclr" desc="CMDCLEAR - очистка строки ввода"/>
    <Keyword name="cls" desc="CLS - очищает экран, оставляя только список предметов"/>
    <Keyword name="menu" desc="MENU [$выражение] - показ меню с заданным названием"/>
    <Keyword name="settimer" desc="SETTIMER [#выражение] - задает интервал таймера для локации-счетчика"/>
    <Keyword name="dynamic" desc="DYNAMIC [$строка кода],[параметр 1],[параметр 2], ... - динамическое выполнение кода"/>
    <Keyword name="set" desc="SET [название переменной]=[выражение] - установка значения переменной"/>
    <Keyword name="let" desc="LET [название переменной]=[выражение] - установка значения переменной"/>
    <Keyword name="killvar" desc="KILLVAR [$название],[#индекс] - удаление всех переменных / указанной переменной"/>
    <Keyword name="copyarr" desc="COPYARR [$массив-приемник],[$массив-источник] - копирование содержимого массива в другой массив"/>
    <Keyword name="addobj" desc="ADDOBJ [$название],[$путь к изображению],[#позиция] / ADD OBJ [$название],[$путь к изображению],[#позиция] - добавление предмета"/>
    <Keyword name="delobj" desc="DELOBJ [$название] / DEL OBJ [$название] - удаление предмета"/>
    <Keyword name="killobj" desc="KILLOBJ [#позиция] - удаление всех предметов / предмета в заданной позиции"/>
    <Keyword name="unselect" desc="UNSELECT - отмена выбора предмета"/>
    <Keyword name="unsel" desc="UNSEL - отмена выбора предмета"/>
    <Keyword name="killall" desc="KILLALL - удаление всех переменных и предметов"/>
    <Keyword name="opengame" desc="OPENGAME [$выражение] - загрузка состояния игры"/>
    <Keyword name="openqst" desc="OPENQST [$выражение] - открытие и запуск файла игры"/>
    <Keyword name="addqst" desc="ADDQST [$выражение] - добавление локаций из указанного файла"/>
    <Keyword name="killqst" desc="KILLQST - удаление всех добавленных через ADDQST локаций"/>
    <Keyword name="savegame" desc="SAVEGAME [$выражение] - сохранение состояния игры"/>
    <Keyword name="refint" desc="REFINT - обновление интерфейса"/>
    <Keyword name="showacts" desc="SHOWACTS [#выражение] - показ / скрытие списка действий"/>
    <Keyword name="showinput" desc="SHOWINPUT [#выражение] - показ / скрытие строки ввода"/>
    <Keyword name="showobjs" desc="SHOWOBJS [#выражение] - показ / скрытие списка предметов"/>
    <Keyword name="showstat" desc="SHOWSTAT [#выражение] - показ / скрытие дополнительного окна описания"/>
    <Keyword name="if" desc="IF [#выражение]:[оператор1] & [оператор2] & ... ELSE [оператор3] & [оператор4] & ... - условие"/>
    <Keyword name="else" desc="IF [#выражение]:[оператор1] & [оператор2] & ... ELSE [оператор3] & [оператор4] & ... - условие"/>
    <Keyword name="elseif" desc="ELSEIF [#выражение]:[оператор1] & [оператор2] & ... - альтернативное условие"/>
    <Keyword name="exit" desc="EXIT - завершение выполнения текущего кода"/>
    <Keyword name="end" desc="END - завершение многострочной формы IF / ACT"/>
    <Keyword name="jump" desc="JUMP [$выражение] - переход на указанную метку"/>
    <Keyword name="gosub" desc="GOSUB [$выражение],[параметр 1],[параметр 2], ... - обработка указанной локации"/>
    <Keyword name="gs" desc="GS [$выражение],[параметр 1],[параметр 2], ... - обработка указанной локации"/>
    <Keyword name="goto" desc="GOTO [$выражение],[параметр 1],[параметр 2], ... - переход на указанную локацию"/>
    <Keyword name="gt" desc="GT [$выражение],[параметр 1],[параметр 2], ... - переход на указанную локацию"/>
    <Keyword name="xgoto" desc="XGOTO [$выражение],[параметр 1],[параметр 2], ... - переход на указанную локацию без очистки основного окна описания"/>
    <Keyword name="xgt" desc="XGT [$выражение],[параметр 1],[параметр 2], ... - переход на указанную локацию без очистки основного окна описания"/>
    <Keyword name="play" desc="PLAY [$путь к звуковому файлу],[#громкость] - воспроизведение звукового файла с заданной громкостью"/>
    <Keyword name="close" desc="CLOSE [$путь к звуковому файлу] / CLOSE ALL - остановка проигрывания звукового файла / всех звуковых файлов"/>
    <Keyword name="view" desc="VIEW [$путь к графическому файлу] - просмотр изображения"/>
  </Statements>
  <Expressions>
    <Keyword name="and" desc="[#выражение 1] AND [#выражение 2] - логическое "и=""/>
    <Keyword name="or" desc="[#выражение 1] OR [#выражение 2] - логическое "или""/>
    <Keyword name="obj" desc="OBJ [$предмет] - проверка наличия предмета в рюкзаке"/>
    <Keyword name="loc" desc="LOC [$локация] - проверка существования локации"/>
    <Keyword name="no" desc="NO [#выражение] - отрицание"/>
    <Keyword name="mod" desc="[#выражение 1] MOD [#выражение 2] - вычисление остатка от деления"/>
    <Keyword name="desc" desc="DESC([$выражение]) - возвращает текст базового описания локации"/>
    <Keyword name="$desc" desc="$DESC([$выражение]) - возвращает текст базового описания локации"/>
    <Keyword name="iif" desc="IIF([#выражение],[выражение_да],[выражение_нет]) - возвращает одно из выражений по условию"/>
    <Keyword name="$iif" desc="$IIF([#выражение],[выражение_да],[выражение_нет]) - возвращает одно из выражений по условию"/>
    <Keyword name="input" desc="INPUT([выражение]) - показывает окно ввода текста и возвращает введенное значение"/>
    <Keyword name="$input" desc="$INPUT([выражение]) - показывает окно ввода текста и возвращает введенное значение"/>
    <Keyword name="isplay" desc="ISPLAY([$выражение]) - проверяет, проигрывается ли в текущий момент указанный файл"/>
    <Keyword name="max" desc="MAX([выражение 1],[выражение 2], ...) - возвращает максимальное из значений аргументов"/>
    <Keyword name="$max" desc="$MAX([выражение 1],[выражение 2], ...) - возвращает максимальное из значений аргументов"/>
    <Keyword name="min" desc="MIN([выражение 1],[выражение 2], ...) - возвращает минимальное из значений аргументов"/>
    <Keyword name="$min" desc="$MIN([выражение 1],[выражение 2], ...) - возвращает минимальное из значений аргументов"/>
    <Keyword name="rand" desc="RAND([#выражение 1],[#выражение 2]) - возвращает случайное число между заданными"/>
    <Keyword name="rgb" desc="RGB([#красный],[#зеленый],[#синий]) - возвращает код цвета на основе 3-х составляющих"/>
    <Keyword name="getobj" desc="GETOBJ([#позиция]) - возвращает название предмета, расположенного в заданной позиции"/>
    <Keyword name="$getobj" desc="$GETOBJ([#позиция]) - возвращает название предмета, расположенного в заданной позиции"/>
    <Keyword name="dyneval" desc="DYNEVAL([$выражение],[параметр 1],[параметр 2], ...) - возвращает значение динамически вычисленного выражения"/>
    <Keyword name="$dyneval" desc="$DYNEVAL([$выражение],[параметр 1],[параметр 2], ...) - возвращает значение динамически вычисленного выражения"/>
    <Keyword name="func" desc="FUNC([$выражение],[параметр 1],[параметр 2], ...) - обработка указанной локации как функции"/>
    <Keyword name="$func" desc="$FUNC([$выражение],[параметр 1],[параметр 2], ...) - обработка указанной локации как функции"/>
    <Keyword name="arrsize" desc="ARRSIZE([$выражение]) - возвращает число элементов в указанном массиве"/>
    <Keyword name="arrpos" desc="ARRPOS([#начальный индекс],[$имя массива],[значение]) - поиск в массиве элемента с заданным значением"/>
    <Keyword name="instr" desc="INSTR([#начальная позиция],[$текст],[$искомый текст]) - поиск вхождения текста"/>
    <Keyword name="isnum" desc="ISNUM([$выражение]) - проверяет, является ли указанная строка числом"/>
    <Keyword name="trim" desc="TRIM([$выражение]) - удаляет из текста прилегающие пробелы и символы табуляции"/>
    <Keyword name="$trim" desc="$TRIM([$выражение]) - удаляет из текста прилегающие пробелы и символы табуляции"/>
    <Keyword name="ucase" desc="UCASE([$выражение]) - преобразует маленькие буквы текста в большие"/>
    <Keyword name="$ucase" desc="$UCASE([$выражение]) - преобразует маленькие буквы текста в большие"/>
    <Keyword name="lcase" desc="LCASE([$выражение]) - преобразует большие буквы текста в маленькие"/>
    <Keyword name="$lcase" desc="$LCASE([$выражение]) - преобразует большие буквы текста в маленькие"/>
    <Keyword name="len" desc="LEN([$выражение]) - возвращает длину указанной строки"/>
    <Keyword name="mid" desc="MID([$текст],[#начало],[#длина]) - вырезает из текста строку указанной длины начиная с заданной позиции"/>
    <Keyword name="$mid" desc="$MID([$текст],[#начало],[#длина]) - вырезает из текста строку указанной длины начиная с заданной позиции"/>
    <Keyword name="replace" desc="REPLACE([$текст],[$искомый текст],[$текст для замены]) - заменяет в тексте заданную строку"/>
    <Keyword name="$replace" desc="$REPLACE([$текст],[$искомый текст],[$текст для замены]) - заменяет в тексте заданную строку"/>
    <Keyword name="str" desc="STR([#выражение]) - переводит число в строку"/>
    <Keyword name="$str" desc="$STR([#выражение]) - переводит число в строку"/>
    <Keyword name="val" desc="VAL([$выражение]) - переводит строку в число"/>
    <Keyword name="arrcomp" desc="ARRCOMP([#начальный индекс],[$имя массива],[$шаблон]) - поиск в массиве элемента, соответствующего регулярному выражению"/>
    <Keyword name="strcomp" desc="STRCOMP([$выражение],[$шаблон]) - проверяет заданный текст на соответствие регулярному выражению"/>
    <Keyword name="strfind" desc="STRFIND([$выражение],[$шаблон],[#номер]) - возвращает подстроку, соответствующую группе с номером [#номер] регулярного выражения"/>
    <Keyword name="$strfind" desc="$STRFIND([$выражение],[$шаблон],[#номер]) - возвращает подстроку, соответствующую группе с номером [#номер] регулярного выражения"/>
    <Keyword name="strpos" desc="STRPOS([$выражение],[$шаблон],[#номер]) - возвращает позицию подстроки, соответствующей группе с номером [#номер] регулярного выражения"/>
    <Keyword name="countobj" desc="COUNTOBJ - возвращает текущее число предметов"/>
    <Keyword name="msecscount" desc="MSECSCOUNT - возвращает количество миллисекунд, прошедших с момента начала игры"/>
    <Keyword name="rnd" desc="RND - возвращает случайное значение от 1 до 1000"/>
    <Keyword name="curloc" desc="CURLOC - возвращает название текущей локации"/>
    <Keyword name="$curloc" desc="$CURLOC - возвращает название текущей локации"/>
    <Keyword name="qspver" desc="QSPVER - возвращает версию интерпретатора"/>
    <Keyword name="$qspver" desc="$QSPVER - возвращает версию интерпретатора"/>
    <Keyword name="selobj" desc="SELOBJ - возвращает название выделенного предмета"/>
    <Keyword name="$selobj" desc="$SELOBJ - возвращает название выделенного предмета"/>
    <Keyword name="selact" desc="SELACT - возвращает название выделенного действия"/>
    <Keyword name="$selact" desc="$SELACT - возвращает название выделенного действия"/>
    <Keyword name="curacts" desc="CURACTS - возвращает в виде кода все текущие действия"/>
    <Keyword name="$curacts" desc="$CURACTS - возвращает в виде кода все текущие действия"/>
    <Keyword name="user_text" desc="USER_TEXT - возвращает текст в строке ввода"/>
    <Keyword name="$user_text" desc="$USER_TEXT - возвращает текст в строке ввода"/>
    <Keyword name="usrtxt" desc="USRTXT - возвращает текст в строке ввода"/>
    <Keyword name="$usrtxt" desc="$USRTXT - возвращает текст в строке ввода"/>
    <Keyword name="maintxt" desc="MAINTXT - возвращает текст в основном окне описания"/>
    <Keyword name="$maintxt" desc="$MAINTXT - возвращает текст в основном окне описания"/>
    <Keyword name="stattxt" desc="STATTXT - возвращает текст в дополнительном окне описания"/>
    <Keyword name="$stattxt" desc="$STATTXT - возвращает текст в дополнительном окне описания"/>
  </Expressions>
  <Variables>
    <Keyword name="args" desc="ARGS - массив с параметрами процедуры / функции"/>
    <Keyword name="$args" desc="$ARGS - массив с параметрами процедуры / функции"/>
    <Keyword name="result" desc="RESULT - переменная содержит результат, возвращаемый текущей функцией"/>
    <Keyword name="$result" desc="$RESULT - переменная содержит результат, возвращаемый текущей функцией"/>
    <Keyword name="disablescroll" desc="DISABLESCROLL - если переменная не равна 0, то запрещает автопрокрутку текста при выводе"/>
    <Keyword name="disablesubex" desc="DISABLESUBEX - если переменная не равна 0, то запрещает использование "подвыражений" в тексте"/>
    <Keyword name="nosave" desc="NOSAVE - если переменная не равна 0, то сохранение состояния игры пользователем невозможно"/>
    <Keyword name="debug" desc="DEBUG - если переменная не равна 0, то отключается проверка идентификатора игры при загрузке состояния"/>
    <Keyword name="$counter" desc="$COUNTER - переменная содержит название локации-счётчика"/>
    <Keyword name="$ongload" desc="$ONGLOAD - переменная содержит название локации-обработчика загрузки состояния"/>
    <Keyword name="$ongsave" desc="$ONGSAVE - переменная содержит название локации-обработчика сохранения состояния"/>
    <Keyword name="$onnewloc" desc="$ONNEWLOC - переменная содержит название локации-обработчика перехода на новую локацию"/>
    <Keyword name="$onactsel" desc="$ONACTSEL - переменная содержит название локации-обработчика выбора действия"/>
    <Keyword name="$onobjsel" desc="$ONOBJSEL - переменная содержит название локации-обработчика выбора предмета"/>
    <Keyword name="$onobjadd" desc="$ONOBJADD - переменная содержит название локации-обработчика добавления предмета"/>
    <Keyword name="$onobjdel" desc="$ONOBJDEL - переменная содержит название локации-обработчика удаления предмета"/>
    <Keyword name="$usercom" desc="$USERCOM - переменная содержит название локации-обработчика строки ввода"/>
    <Keyword name="usehtml" desc="USEHTML - если переменная не равна 0, то включает возможность использования HTML"/>
    <Keyword name="bcolor" desc="BCOLOR - переменная содержит цвет фона"/>
    <Keyword name="fcolor" desc="FCOLOR - переменная содержит основной цвет шрифта"/>
    <Keyword name="lcolor" desc="LCOLOR - переменная содержит основной цвет ссылок"/>
    <Keyword name="fsize" desc="FSIZE - переменная содержит основной размер шрифта"/>
    <Keyword name="$fname" desc="$FNAME - переменная содержит название основного шрифта"/>
    <Keyword name="$backimage" desc="$BACKIMAGE - переменная содержит путь к фоновому изображению"/>
  </Variables>
</QGen-keywords>


code:
#!/usr/bin/env python
# usage: txtmerge.py <input_dir> <output_file_name>
# does the exact opposite of txtsplit.py

import os
#import sys
#import re
import io
import xml.etree.ElementTree as ET

#assert len(sys.argv) == 3, "usage:\ntxtmerge.py <input_dir> <output_file_name>"
#idir = str(sys.argv[1])
#oname = str(sys.argv[2])
idir = '../game/locations'
oname = 'jack.txt'

# read the project xml file first
# let's do this later in order to implement directory structure
tree = ET.parse('../game/jack.qproj')
root = tree.getroot()

ofile = io.open(oname, 'w', encoding='utf-16', newline='\r\n')

for location in root.iter('Location'):
    iname = location.attrib['name']
    #iname = iname.replace("$","_")

    try:
        ifile = io.open(os.path.join(idir,iname + '.qsrc'), 'rt', encoding='utf-8')
        text = ifile.read()

        # make sure there's a line at the end of file
        # (why wouldn't there be one? WINDOWS!
        if text[-1] != u'\n':
            text += u'\n\n'

        ofile.write(text)
        ifile.close()
    except IOError:
        print("WARNING: missing location %s" % iname)
        pass

ofile.close()


code:
#!/usr/bin/env python3
# usage: txtsplit.py <input_file_name> <output_dir>
# ammended usage: txtsplit.py, no longer accepts arguments for JoNT
# splits a txt2gam file into individual location files
# encoded in utf-8, for git to better handle

import os
#import sys
import re
import io
#import xml.etree.ElementTree as ET

#assert len(sys.argv) == 3, "usage:\ntxtsplit.py <input_file_name> <output_dir>"
#iname = str(sys.argv[1])
#odir = str(sys.argv[2])
iname = 'jack.txt'
odir = '../game/locations'

# read the project xml file first
# let's do this later in order to implement directory structure
"""
tree = ET.parse('../game/jack.qproj')
root = tree.getroot()
"""

ifile = io.open(iname, 'rt', encoding='utf-16')

counter = 1

oname = None
firstline = ifile.readline().replace(u'\ufeff','')
# use \S (non-whitespace) instead of [_.\w] to match Russian characters in location names - ImperatorAugustus
match = re.search('^#\s([\$|\#]?\S+)$', firstline)
if match:
    oname = os.path.join(odir, match.group(1) + '.qsrc' )
    counter += 1
assert oname, "file is in the wrong format, must start with a location name"

ofile = io.open(oname, 'w', encoding='utf-8')
ofile.write(firstline)

for line in ifile:
 # use \S (non-whitespace) instead of [_.\w] to match Russian characters in location names (solves trinity_engine files being appended to #quest_base) - ImperatorAugustus
    match = re.search('^#\s([\$|\#]?[\S]+)$', line)
    if match:
        ofile.close()
        oname = os.path.join(odir, match.group(1) + '.qsrc' )
        counter += 1
        ofile = io.open(oname, 'w', encoding='utf-8')
    ofile.write(line)