From 5f2548ada9191964dd4c32bbca01372c74f63f6b Mon Sep 17 00:00:00 2001
From: klorpa <30924131+klorpa@users.noreply.github.com>
Date: Fri, 9 Nov 2018 23:53:50 -0600
Subject: [PATCH] JS Stuff

---
 devNotes/twine JS.txt       | 528 ++++++++++++++++++++++--------------
 src/js/slaveGenerationJS.tw | 486 +++++++++++++++++++--------------
 src/js/vignettes.tw         |  41 ++-
 3 files changed, 637 insertions(+), 418 deletions(-)

diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt
index 9b5f5837e60..6c941d8efa1 100644
--- a/devNotes/twine JS.txt	
+++ b/devNotes/twine JS.txt	
@@ -26987,7 +26987,7 @@ window.GetVignette = function GetVignette(slave) {
 				break;
 			case "devout":
 				vignettes.push({
-					text: `a customer catches ${him} praying to ${himself} as they inserts themselves into ${him}, turning them off,`,
+					text: `a customer catches ${him} praying to ${himself} as they inserted themselves into ${him}, turning them off,`,
 					type: "cash",
 					effect: -1,
 				});
@@ -28563,7 +28563,7 @@ window.GetVignette = function GetVignette(slave) {
 				break;
 			case "devout":
 				vignettes.push({
-					text: `a citizen catches ${him} praying to ${himself} as they inserts themsleves into ${him}, turning them off,`,
+					text: `a citizen catches ${him} praying to ${himself} as they inserted themsleves into ${him}, turning them off,`,
 					type: "rep",
 					effect: -1,
 				});
@@ -29939,7 +29939,7 @@ window.GetVignette = function GetVignette(slave) {
 			type: "rep",
 			effect: 0,
 		});
-	} else if (slave.assignment === "rest" || slave.assignment === "rest in the spa") {
+	} else if (slave.assignment === "rest" || slave.assignment === "rest in the spa" || slave.assignment === "be the Attendant") {
 		switch (slave.behavioralFlaw) {
 			case "anorexic":
 				vignettes.push({
@@ -29947,6 +29947,42 @@ window.GetVignette = function GetVignette(slave) {
 					type: "health",
 					effect: -1,
 				});
+				break;
+			case "devout":
+				vignettes.push({
+					text: `${he} spent nearly all of ${his} free time praying,`,
+					type: "cash",
+					effect: 0,
+				});
+				break;
+		}
+		switch (slave.behavioralQuirk) {
+			case "fitness":
+				vignettes.push({
+					text: `${he} spent a great deal of time working out,`,
+					type: "health",
+					effect: 1,
+				});
+				vignettes.push({
+					text: `${he} exercised to the point of physical exhaustion,`,
+					type: "health",
+					effect: -1,
+				});
+				break;
+			case "insecure":
+				vignettes.push({
+					text: `${he} relaxed by doing whatever other slaves were doing,`,
+					type: "cash",
+					effect: 0,
+				});
+				break;
+		}
+		if (slave.fetish === "mindbroken") {
+			vignettes.push({
+				text: `${he} spent ${his} time watching paint dry. No one bothered telling ${him} the wall wasn't newly painted,`,
+				type: "cash",
+				effect: 0,
+			});
 		}
 		if (slave.devotion > 95) {
 			vignettes.push({
@@ -30014,7 +30050,7 @@ window.GetVignette = function GetVignette(slave) {
 		}
 		if (slave.energy > 95) {
 			if (slave.behavioralFlaw === "odd") {
-				if (slave.amp !== 1) && (canSee(slave)) {
+				if (slave.amp !== 1 && canSee(slave)) {
 					vignettes.push({
 						text: `you discovered ${him} sketching an image of ${his} genitalia, which you managed to sell,`,
 						type: "cash",
@@ -30180,17 +30216,25 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 
 	switch (slave.nationality) {
 		case "Afghan":
-			slave.accent = (V.language === "Pashto") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			if (V.language === "Pashto") {
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
+			} else if (V.language === "Dari") {
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
+			} else if (V.language === "Persian") {
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
+			} else {
+				slave.accent = naturalAccent;
+			}
 			break;
 		case "Albanian":
 			slave.accent = naturalAccent;
 			break;
 		case "Algerian":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "American":
 			if (V.language === "English") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Spanish" && slave.race === "latina") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else if (V.language === "Chinese" && slave.race === "asian") {
@@ -30202,16 +30246,16 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Andorran":
-			slave.accent = (V.language === "Catalan") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Catalan") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Angolan":
-			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Antiguan":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Argentinian":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Armenian":
 			if (V.language === "Russian") {
@@ -30224,7 +30268,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			break;
 		case "Aruban":
 			if (V.language === "Dutch") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "English") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else if (V.language === "Portuguese") {
@@ -30234,16 +30278,16 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Australian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Austrian":
 			if (V.language === "German") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Serbian") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else if (V.language === "Slovene") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
-			} else if (V.language === "Turkish" && slave.race === "middle eastern") {
+			} else if (V.language === "Turkish" && slave.race === "indo-aryan") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
 				slave.accent = naturalAccent;
@@ -30253,14 +30297,14 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			slave.accent = naturalAccent;
 			break;
 		case "Bahamian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Bahraini":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Bangladeshi":
 			if (V.language === "Bengali") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Hindi") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -30268,16 +30312,16 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Barbadian":
-			slave.accent = naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Belarusian":
-			slave.accent = naturalAccent;
+			slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Belgian":
 			if (V.language === "Dutch") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "French") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "German") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -30285,35 +30329,35 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Belizean":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Beninese":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Bermudian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Bhutanese":
-			slave.accent = (V.language === "Dzongkha") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Dzongkha") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Bissau-Guinean":
-			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Bolivian":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Bosnian":
 			slave.accent = naturalAccent;
 			break;
 		case "Brazilian":
-			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "British":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Bruneian":
 			if (V.language === "Malay") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "English") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -30324,19 +30368,19 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			slave.accent = naturalAccent;
 			break;
 		case "Burkinabé":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Burmese":
 			slave.accent = naturalAccent;
 			break;
 		case "Burundian":
-			slave.accent = (V.language === "Kirundi") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Kirundi") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Cambodian":
 			if (V.language === "Khmer") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Cham") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "French") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -30344,31 +30388,31 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Cameroonian":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Canadian":
 			if (V.language === "English") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "French") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
 			break;
 		case "Cape Verdean":
-			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Catalan":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Central African":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Chadian":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Chilean":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Chinese":
 			if (V.language === "Tibetan") {
@@ -30382,7 +30426,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Colombian":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Comorian":
 			if (V.language === "Arabic") {
@@ -30395,38 +30439,38 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			break;
 		case "Congolese":
 			if (V.language === "Lingala") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Kikongo") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "French") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
 			break;
 		case "a Cook Islander":
 			if (V.language === "Cook Islands Māori") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
 			break;
 		case "Costa Rican":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Croatian":
 			slave.accent = naturalAccent;
 			break;
 		case "Cuban":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Cypriot":
 			if (V.language === "Greek") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Turkish") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "English") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -30434,28 +30478,34 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Czech":
-			slave.accent = naturalAccent;
+			if (V.language === "Slovak") {
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
+			} else if (V.language === "Vietnamese" && slave.race === "asian") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else {
+				slave.accent = naturalAccent;
+			}
 			break;
 		case "Danish":
 			slave.accent = naturalAccent;
 			break;
 		case "Djiboutian":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Dominican":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Dominiquais":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Dutch":
 			slave.accent = naturalAccent;
 			break;
 		case "East Timorese":
 			if (V.language === "Tetum") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Portuguese") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Malay") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -30463,22 +30513,22 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Ecuadorian":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Egyptian":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Emirati":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Equatoguinean":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Eritrean":
 			if (V.language === "Tigrinya") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Arabic") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "English") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -30490,7 +30540,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			break;
 		case "Ethiopian":
 			if (V.language === "Amharic") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Arabic") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else if (V.language === "Tigrinya") {
@@ -30500,15 +30550,15 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Fijian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Filipina":
 			if (V.language === "Filipino") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Tagalog") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Arabic") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else if (V.language === "Spanish") {
@@ -30518,7 +30568,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Finnish":
-			slave.accent = (V.language === "Swedish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Swedish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "French":
 			if (V.language === "English") {
@@ -30536,26 +30586,26 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "French Guianan":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "French Polynesian":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Gabonese":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Gambian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Georgian":
-			slave.accent = (V.language === "Abkhaz") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Abkhaz") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "German":
 			if (V.language === "English") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else if (V.language === "French") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
-			} else if (V.language === "Turkish" && slave.race === "middle eastern") {
+			} else if (V.language === "Turkish" && slave.race === "indo-aryan") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
 				slave.accent = naturalAccent;
@@ -30563,7 +30613,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			break;
 		case "Ghanan":
 			if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Hausa") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else if (V.language === "Arabic") {
@@ -30576,37 +30626,37 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			slave.accent = naturalAccent;
 			break;
 		case "Greenlandic":
-			slave.accent = (V.language === "Danish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Danish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Grenadian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Guamanian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Guatemalan":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Guinean":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Guyanese":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Haitian":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Honduran":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Hungarian":
 			slave.accent = naturalAccent;
 			break;
 		case "I-Kiribati":
 			if (V.language === "Gilbertese") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
@@ -30622,19 +30672,25 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			break;
 		case "Indian":
 			if (V.language === "Hindi") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
 			break;
 		case "Indonesian":
-			slave.accent = (V.language === "Malay") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			if (V.language === "Javanese") {
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
+			} else if (V.language === "Malay") {
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
+			} else {
+				slave.accent = naturalAccent;
+			}
 			break;
 		case "Iranian":
 			if (V.language === "Persian") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Arabic") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -30643,7 +30699,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			break;
 		case "Iraqi":
 			if (V.language === "Arabic") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Kurdish") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -30651,13 +30707,13 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Irish":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Israeli":
 			if (V.language === "Hebrew") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Arabic") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
@@ -30666,34 +30722,34 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			slave.accent = naturalAccent;
 			break;
 		case "Ivorian":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Jamaican":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Japanese":
 			slave.accent = naturalAccent;
 			break;
 		case "Jordanian":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Kazakh":
-			slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Kenyan":
 			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Kittitian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Korean":
 			slave.accent = (V.language === "Chinese") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Kosovan":
 			if (V.language === "Albanian") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Serbian") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
@@ -30702,16 +30758,16 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Kuwaiti":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Kyrgyz":
-			slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Laotian":
 			if (V.language === "Lao") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Khmu") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "French") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -30722,25 +30778,25 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			slave.accent = naturalAccent;
 			break;
 		case "Lebanese":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Liberian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Libyan":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "a Liechtensteiner":
-			slave.accent = (V.language === "German") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "German") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Lithuanian":
 			slave.accent = naturalAccent;
 			break;
 		case "Luxembourgian":
 			if (V.language === "German") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "French") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
@@ -30755,7 +30811,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			slave.accent = naturalAccent;
 			break;
 		case "Malaysian":
-			slave.accent = (V.language === "Malay") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Malay") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Maldivian":
 			slave.accent = naturalAccent;
@@ -30765,61 +30821,61 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			break;
 		case "Maltese":
 			if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Italian") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
 			break;
 		case "Marshallese":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Mauritanian":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Mauritian":
 			if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "French") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
 			break;
 		case "Mexican":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Micronesian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Moldovan":
-			slave.accent = naturalAccent;
+			slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Monégasque":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Mongolian":
 			slave.accent = naturalAccent;
 			break;
 		case "Montenegrin":
-			slave.accent = naturalAccent;
+			slave.accent = (V.language === "Serbian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Moroccan":
 			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Mosotho":
-			slave.accent = naturalAccent;
+			slave.accent = (V.language === "Sesotho") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Motswana":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Mozambican":
-			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Namibian":
 			if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Afrikaans") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -30827,34 +30883,52 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Nauruan":
-			slave.accent = naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Nepalese":
-			slave.accent = naturalAccent;
+			if (V.language === "Nepali") {
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
+			} else if (V.language === "Maithili") {
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
+			} else if (V.language === "Bhojpuri") {
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
+			} else if (V.language === "English") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else {
+				slave.accent = naturalAccent;
+			}
 			break;
 		case "New Caledonian":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			if (V.language === "French") {
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
+			} else if (V.language === "Nengone") {
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
+			} else if (V.language === "Drehu") {
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
+			} else {
+				slave.accent = naturalAccent;
+			}
 			break;
 		case "a New Zealander":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Ni-Vanuatu":
 			if (V.language === "French") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
 			break;
 		case "Nicaraguan":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Nigerian":
 			if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Hausa") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Arabic") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -30863,9 +30937,9 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			break;
 		case "Nigerien":
 			if (V.language === "French") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Hausa") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Arabic") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -30873,24 +30947,24 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Niuean":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Norwegian":
 			slave.accent = naturalAccent;
 			break;
 		case "Omani":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Pakistani":
 			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Palauan":
 			if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Sonsorolese") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Tobian") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Japanese") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -30898,19 +30972,19 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Palestinian":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Panamanian":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Papua New Guinean":
 			slave.accent = naturalAccent;
 			break;
 		case "Paraguayan":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Peruvian":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Polish":
 			slave.accent = naturalAccent;
@@ -30920,7 +30994,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			break;
 		case "Puerto Rican":
 			if (V.language === "Spanish") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "English") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -30928,7 +31002,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Qatari":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Romanian":
 			slave.accent = naturalAccent;
@@ -30937,41 +31011,41 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			slave.accent = naturalAccent;
 			break;
 		case "Rwandan":
-			slave.accent = (V.language === "Kinyarwanda") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Kinyarwanda") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Sahrawi":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Saint Lucian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Salvadoran":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Sammarinese":
-			slave.accent = (V.language === "Italian") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Italian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Samoan":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "São Toméan":
-			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Saudi":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Scottish":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Senegalese":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Serbian":
 			slave.accent = naturalAccent;
 			break;
 		case "Seychellois":
 			if (V.language === "French") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "English") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -30979,53 +31053,53 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Sierra Leonean":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Singaporean":
 			if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Chinese") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Malay") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Tamil") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
 			break;
 		case "Slovak":
-			slave.accent = naturalAccent;
+			slave.accent = (V.language === "Czech") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Slovene":
 			slave.accent = naturalAccent;
 			break;
 		case "a Solomon Islander":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Somali":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "South African":
 			if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Afrikaans") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else {
 				slave.accent = naturalAccent;
 			}
 			break;
 		case "South Sudanese":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Spanish":
 			slave.accent = (V.language === "Catalan") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Sri Lankan":
 			if (V.language === "Sinhalese") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Tamil") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "English") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -31036,10 +31110,20 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Surinamese":
-			slave.accent = (V.language === "Dutch") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Dutch") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Swazi":
-			slave.accent = naturalAccent;
+			if (V.language === "English") {
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
+			} else if (V.language === "Afrikaans") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else if (V.language === "Tsonga") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else if (V.language === "Zulu") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else {
+				slave.accent = naturalAccent;
+			}
 			break;
 		case "Swedish":
 			if (V.language === "English") {
@@ -31056,9 +31140,9 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			break;
 		case "Swiss":
 			if (V.language === "German") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "French") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Italian") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -31066,16 +31150,16 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Syrian":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Taiwanese":
-			slave.accent = (V.language === "Chinese") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Chinese") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Tajik":
 			slave.accent = (V.language === "Russian") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Tanzanian":
-			slave.accent = (V.language === "Swahili") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Swahili") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Thai":
 			if (V.language === "Chinese") {
@@ -31089,92 +31173,118 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Tibetan":
-			slave.accent = (V.language === "Chinese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Chinese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Togolese":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Tongan":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Trinidadian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Tunisian":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Turkish":
-			slave.accent = naturalAccent;
+			if (V.language === "Arabic") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else if (V.language === "Kurdish") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else if (V.language === "Zaza") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else {
+				slave.accent = naturalAccent;
+			}
 			break;
 		case "Turkmen":
 			slave.accent = (V.language === "Russian") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Tuvaluan":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Ugandan":
-			slave.accent = (V.language === "Swahili") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Swahili") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Ukrainian":
 			slave.accent = (V.language === "Russian") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Uruguayan":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Uzbek":
 			slave.accent = (V.language === "Russian") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Vatican":
-			slave.accent = (V.language === "Italian") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			if (V.language === "Italian") {
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
+			} else if (V.language === "Latin") {
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
+			} else if (V.language === "French") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else if (V.language === "German") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else {
+				slave.accent = naturalAccent;
+			}
 			break;
 		case "Venezuelan":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Vietnamese":
-			slave.accent = (V.language === "Chinese") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
+			if (V.language === "Chinese") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else if (V.language === "English") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else if (V.language === "French") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else {
+				slave.accent = naturalAccent;
+			}
 			break;
 		case "Vincentian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Yemeni":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Zairian":
 			if (V.language === "Lingala") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Kikongo") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Swahili") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "French") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
 			break;
 		case "Zambian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Zimbabwean":
-			slave.accent = (V.language === "English" && slave.race === "white") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English" && slave.race === "white") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Ancient Chinese Revivalist":
-			slave.accent = (V.language === "Chinese") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Chinese") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Ancient Egyptian Revivalist":
-			slave.accent = (V.language === "Ancient Egyptian") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Ancient Egyptian") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Arabian Revivalist":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Aztec Revivalist":
-			slave.accent = (V.language === "Nahuatl") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Nahuatl") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Edo Revivalist":
-			slave.accent = (V.language === "Japanese") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Japanese") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Roman Revivalist":
-			slave.accent = (V.language === "Latin") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Latin") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		default:
 			slave.accent = naturalAccent;
@@ -31182,7 +31292,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 	}
 
 	if (slave.nationality === V.language) {
-		slave.accent = jsEither([0, 0, 0, 0, 0, 0, 0, 0, 1]);
+		slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 	}
 };
 
diff --git a/src/js/slaveGenerationJS.tw b/src/js/slaveGenerationJS.tw
index 3c781254088..f418d39cd49 100644
--- a/src/js/slaveGenerationJS.tw
+++ b/src/js/slaveGenerationJS.tw
@@ -75,17 +75,25 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 
 	switch (slave.nationality) {
 		case "Afghan":
-			slave.accent = (V.language === "Pashto") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			if (V.language === "Pashto") {
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
+			} else if (V.language === "Dari") {
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
+			} else if (V.language === "Persian") {
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
+			} else {
+				slave.accent = naturalAccent;
+			}
 			break;
 		case "Albanian":
 			slave.accent = naturalAccent;
 			break;
 		case "Algerian":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "American":
 			if (V.language === "English") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Spanish" && slave.race === "latina") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else if (V.language === "Chinese" && slave.race === "asian") {
@@ -97,16 +105,16 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Andorran":
-			slave.accent = (V.language === "Catalan") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Catalan") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Angolan":
-			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Antiguan":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Argentinian":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Armenian":
 			if (V.language === "Russian") {
@@ -119,7 +127,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			break;
 		case "Aruban":
 			if (V.language === "Dutch") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "English") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else if (V.language === "Portuguese") {
@@ -129,16 +137,16 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Australian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Austrian":
 			if (V.language === "German") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Serbian") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else if (V.language === "Slovene") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
-			} else if (V.language === "Turkish" && slave.race === "middle eastern") {
+			} else if (V.language === "Turkish" && slave.race === "indo-aryan") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
 				slave.accent = naturalAccent;
@@ -148,14 +156,14 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			slave.accent = naturalAccent;
 			break;
 		case "Bahamian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Bahraini":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Bangladeshi":
 			if (V.language === "Bengali") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Hindi") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -163,16 +171,16 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Barbadian":
-			slave.accent = naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Belarusian":
-			slave.accent = naturalAccent;
+			slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Belgian":
 			if (V.language === "Dutch") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "French") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "German") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -180,35 +188,35 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Belizean":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Beninese":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Bermudian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Bhutanese":
-			slave.accent = (V.language === "Dzongkha") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Dzongkha") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Bissau-Guinean":
-			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Bolivian":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Bosnian":
 			slave.accent = naturalAccent;
 			break;
 		case "Brazilian":
-			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "British":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Bruneian":
 			if (V.language === "Malay") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "English") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -219,19 +227,19 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			slave.accent = naturalAccent;
 			break;
 		case "Burkinabé":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Burmese":
 			slave.accent = naturalAccent;
 			break;
 		case "Burundian":
-			slave.accent = (V.language === "Kirundi") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Kirundi") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Cambodian":
 			if (V.language === "Khmer") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Cham") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "French") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -239,31 +247,31 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Cameroonian":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Canadian":
 			if (V.language === "English") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "French") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
 			break;
 		case "Cape Verdean":
-			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Catalan":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Central African":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Chadian":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Chilean":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Chinese":
 			if (V.language === "Tibetan") {
@@ -277,7 +285,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Colombian":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Comorian":
 			if (V.language === "Arabic") {
@@ -290,38 +298,38 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			break;
 		case "Congolese":
 			if (V.language === "Lingala") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Kikongo") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "French") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
 			break;
 		case "a Cook Islander":
 			if (V.language === "Cook Islands Māori") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
 			break;
 		case "Costa Rican":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Croatian":
 			slave.accent = naturalAccent;
 			break;
 		case "Cuban":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Cypriot":
 			if (V.language === "Greek") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Turkish") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "English") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -329,28 +337,34 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Czech":
-			slave.accent = naturalAccent;
+			if (V.language === "Slovak") {
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
+			} else if (V.language === "Vietnamese" && slave.race === "asian") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else {
+				slave.accent = naturalAccent;
+			}
 			break;
 		case "Danish":
 			slave.accent = naturalAccent;
 			break;
 		case "Djiboutian":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Dominican":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Dominiquais":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Dutch":
 			slave.accent = naturalAccent;
 			break;
 		case "East Timorese":
 			if (V.language === "Tetum") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Portuguese") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Malay") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -358,22 +372,22 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Ecuadorian":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Egyptian":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Emirati":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Equatoguinean":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Eritrean":
 			if (V.language === "Tigrinya") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Arabic") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "English") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -385,7 +399,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			break;
 		case "Ethiopian":
 			if (V.language === "Amharic") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Arabic") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else if (V.language === "Tigrinya") {
@@ -395,15 +409,15 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Fijian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Filipina":
 			if (V.language === "Filipino") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Tagalog") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Arabic") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else if (V.language === "Spanish") {
@@ -413,7 +427,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Finnish":
-			slave.accent = (V.language === "Swedish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Swedish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "French":
 			if (V.language === "English") {
@@ -431,26 +445,26 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "French Guianan":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "French Polynesian":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Gabonese":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Gambian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Georgian":
-			slave.accent = (V.language === "Abkhaz") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Abkhaz") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "German":
 			if (V.language === "English") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else if (V.language === "French") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
-			} else if (V.language === "Turkish" && slave.race === "middle eastern") {
+			} else if (V.language === "Turkish" && slave.race === "indo-aryan") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
 				slave.accent = naturalAccent;
@@ -458,7 +472,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			break;
 		case "Ghanan":
 			if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Hausa") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else if (V.language === "Arabic") {
@@ -471,37 +485,37 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			slave.accent = naturalAccent;
 			break;
 		case "Greenlandic":
-			slave.accent = (V.language === "Danish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Danish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Grenadian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Guamanian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Guatemalan":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Guinean":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Guyanese":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Haitian":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Honduran":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Hungarian":
 			slave.accent = naturalAccent;
 			break;
 		case "I-Kiribati":
 			if (V.language === "Gilbertese") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
@@ -517,19 +531,25 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			break;
 		case "Indian":
 			if (V.language === "Hindi") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
 			break;
 		case "Indonesian":
-			slave.accent = (V.language === "Malay") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			if (V.language === "Javanese") {
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
+			} else if (V.language === "Malay") {
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
+			} else {
+				slave.accent = naturalAccent;
+			}
 			break;
 		case "Iranian":
 			if (V.language === "Persian") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Arabic") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -538,7 +558,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			break;
 		case "Iraqi":
 			if (V.language === "Arabic") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Kurdish") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -546,13 +566,13 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Irish":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Israeli":
 			if (V.language === "Hebrew") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Arabic") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
@@ -561,34 +581,34 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			slave.accent = naturalAccent;
 			break;
 		case "Ivorian":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Jamaican":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Japanese":
 			slave.accent = naturalAccent;
 			break;
 		case "Jordanian":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Kazakh":
-			slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Kenyan":
 			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Kittitian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Korean":
 			slave.accent = (V.language === "Chinese") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Kosovan":
 			if (V.language === "Albanian") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Serbian") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
@@ -597,16 +617,16 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Kuwaiti":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Kyrgyz":
-			slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Laotian":
 			if (V.language === "Lao") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Khmu") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "French") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -617,25 +637,25 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			slave.accent = naturalAccent;
 			break;
 		case "Lebanese":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Liberian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Libyan":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "a Liechtensteiner":
-			slave.accent = (V.language === "German") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "German") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Lithuanian":
 			slave.accent = naturalAccent;
 			break;
 		case "Luxembourgian":
 			if (V.language === "German") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "French") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
@@ -650,7 +670,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			slave.accent = naturalAccent;
 			break;
 		case "Malaysian":
-			slave.accent = (V.language === "Malay") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Malay") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Maldivian":
 			slave.accent = naturalAccent;
@@ -660,61 +680,61 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			break;
 		case "Maltese":
 			if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Italian") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
 			break;
 		case "Marshallese":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Mauritanian":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Mauritian":
 			if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "French") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
 			break;
 		case "Mexican":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Micronesian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Moldovan":
-			slave.accent = naturalAccent;
+			slave.accent = (V.language === "Russian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Monégasque":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Mongolian":
 			slave.accent = naturalAccent;
 			break;
 		case "Montenegrin":
-			slave.accent = naturalAccent;
+			slave.accent = (V.language === "Serbian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Moroccan":
 			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Mosotho":
-			slave.accent = naturalAccent;
+			slave.accent = (V.language === "Sesotho") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Motswana":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Mozambican":
-			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Namibian":
 			if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Afrikaans") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -722,34 +742,52 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Nauruan":
-			slave.accent = naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Nepalese":
-			slave.accent = naturalAccent;
+			if (V.language === "Nepali") {
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
+			} else if (V.language === "Maithili") {
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
+			} else if (V.language === "Bhojpuri") {
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
+			} else if (V.language === "English") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else {
+				slave.accent = naturalAccent;
+			}
 			break;
 		case "New Caledonian":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			if (V.language === "French") {
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
+			} else if (V.language === "Nengone") {
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
+			} else if (V.language === "Drehu") {
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
+			} else {
+				slave.accent = naturalAccent;
+			}
 			break;
 		case "a New Zealander":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Ni-Vanuatu":
 			if (V.language === "French") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
 			break;
 		case "Nicaraguan":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Nigerian":
 			if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Hausa") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Arabic") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -758,9 +796,9 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			break;
 		case "Nigerien":
 			if (V.language === "French") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Hausa") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Arabic") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -768,24 +806,24 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Niuean":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Norwegian":
 			slave.accent = naturalAccent;
 			break;
 		case "Omani":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Pakistani":
 			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Palauan":
 			if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Sonsorolese") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Tobian") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Japanese") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -793,19 +831,19 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Palestinian":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Panamanian":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Papua New Guinean":
 			slave.accent = naturalAccent;
 			break;
 		case "Paraguayan":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Peruvian":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Polish":
 			slave.accent = naturalAccent;
@@ -815,7 +853,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			break;
 		case "Puerto Rican":
 			if (V.language === "Spanish") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "English") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -823,7 +861,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Qatari":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Romanian":
 			slave.accent = naturalAccent;
@@ -832,41 +870,41 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			slave.accent = naturalAccent;
 			break;
 		case "Rwandan":
-			slave.accent = (V.language === "Kinyarwanda") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Kinyarwanda") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Sahrawi":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Saint Lucian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Salvadoran":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Sammarinese":
-			slave.accent = (V.language === "Italian") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Italian") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Samoan":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "São Toméan":
-			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Portuguese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Saudi":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Scottish":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Senegalese":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Serbian":
 			slave.accent = naturalAccent;
 			break;
 		case "Seychellois":
 			if (V.language === "French") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "English") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -874,53 +912,53 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Sierra Leonean":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Singaporean":
 			if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Chinese") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Malay") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Tamil") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
 			break;
 		case "Slovak":
-			slave.accent = naturalAccent;
+			slave.accent = (V.language === "Czech") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Slovene":
 			slave.accent = naturalAccent;
 			break;
 		case "a Solomon Islander":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Somali":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "South African":
 			if (V.language === "English") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Afrikaans") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else {
 				slave.accent = naturalAccent;
 			}
 			break;
 		case "South Sudanese":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Spanish":
 			slave.accent = (V.language === "Catalan") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Sri Lankan":
 			if (V.language === "Sinhalese") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Tamil") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "English") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -931,10 +969,20 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Surinamese":
-			slave.accent = (V.language === "Dutch") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Dutch") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Swazi":
-			slave.accent = naturalAccent;
+			if (V.language === "English") {
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
+			} else if (V.language === "Afrikaans") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else if (V.language === "Tsonga") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else if (V.language === "Zulu") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else {
+				slave.accent = naturalAccent;
+			}
 			break;
 		case "Swedish":
 			if (V.language === "English") {
@@ -951,9 +999,9 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			break;
 		case "Swiss":
 			if (V.language === "German") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "French") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Italian") {
 				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
 			} else {
@@ -961,16 +1009,16 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Syrian":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Taiwanese":
-			slave.accent = (V.language === "Chinese") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Chinese") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Tajik":
 			slave.accent = (V.language === "Russian") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Tanzanian":
-			slave.accent = (V.language === "Swahili") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Swahili") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Thai":
 			if (V.language === "Chinese") {
@@ -984,92 +1032,118 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 			}
 			break;
 		case "Tibetan":
-			slave.accent = (V.language === "Chinese") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Chinese") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Togolese":
-			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "French") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Tongan":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Trinidadian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Tunisian":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Turkish":
-			slave.accent = naturalAccent;
+			if (V.language === "Arabic") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else if (V.language === "Kurdish") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else if (V.language === "Zaza") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else {
+				slave.accent = naturalAccent;
+			}
 			break;
 		case "Turkmen":
 			slave.accent = (V.language === "Russian") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Tuvaluan":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Ugandan":
-			slave.accent = (V.language === "Swahili") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Swahili") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Ukrainian":
 			slave.accent = (V.language === "Russian") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Uruguayan":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Uzbek":
 			slave.accent = (V.language === "Russian") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
 			break;
 		case "Vatican":
-			slave.accent = (V.language === "Italian") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			if (V.language === "Italian") {
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
+			} else if (V.language === "Latin") {
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
+			} else if (V.language === "French") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else if (V.language === "German") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else {
+				slave.accent = naturalAccent;
+			}
 			break;
 		case "Venezuelan":
-			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Spanish") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Vietnamese":
-			slave.accent = (V.language === "Chinese") ? jsEither([0, 1, 2, 2, 2, 3, 3]) : naturalAccent;
+			if (V.language === "Chinese") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else if (V.language === "English") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else if (V.language === "French") {
+				slave.accent = jsEither([0, 1, 2, 2, 2, 3, 3]);
+			} else {
+				slave.accent = naturalAccent;
+			}
 			break;
 		case "Vincentian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Yemeni":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Zairian":
 			if (V.language === "Lingala") {
-				slave.accent = jsEither([0, 0, 0, 1]);
+				slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 			} else if (V.language === "Kikongo") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "Swahili") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else if (V.language === "French") {
-				slave.accent = jsEither([0, 1, 1, 1, 2]);
+				slave.accent = jsEither([0, 1, 1, 1, 1, 2]);
 			} else {
 				slave.accent = naturalAccent;
 			}
 			break;
 		case "Zambian":
-			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Zimbabwean":
-			slave.accent = (V.language === "English" && slave.race === "white") ? jsEither([0, 1, 1, 1, 2]) : naturalAccent;
+			slave.accent = (V.language === "English" && slave.race === "white") ? jsEither([0, 1, 1, 1, 1, 2]) : naturalAccent;
 			break;
 		case "Ancient Chinese Revivalist":
-			slave.accent = (V.language === "Chinese") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Chinese") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Ancient Egyptian Revivalist":
-			slave.accent = (V.language === "Ancient Egyptian") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Ancient Egyptian") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Arabian Revivalist":
-			slave.accent = (V.language === "Arabic") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Arabic") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Aztec Revivalist":
-			slave.accent = (V.language === "Nahuatl") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Nahuatl") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Edo Revivalist":
-			slave.accent = (V.language === "Japanese") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Japanese") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		case "Roman Revivalist":
-			slave.accent = (V.language === "Latin") ? jsEither([0, 0, 0, 1]) : naturalAccent;
+			slave.accent = (V.language === "Latin") ? jsEither([0, 0, 0, 0, 0, 0, 1]) : naturalAccent;
 			break;
 		default:
 			slave.accent = naturalAccent;
@@ -1077,7 +1151,7 @@ window.nationalityToAccent = function nationalityToAccent(slave) {
 	}
 
 	if (slave.nationality === V.language) {
-		slave.accent = jsEither([0, 0, 0, 0, 0, 0, 0, 0, 1]);
+		slave.accent = jsEither([0, 0, 0, 0, 0, 0, 1]);
 	}
 };
 
@@ -1633,4 +1707,4 @@ window.generatePronouns = function generatePronouns(slave) {
 		slave.objectReflexive = "herself";
 		slave.noun = "girl";	
 	}
-};
+};
\ No newline at end of file
diff --git a/src/js/vignettes.tw b/src/js/vignettes.tw
index cf8ce1940d5..f0506c84d07 100644
--- a/src/js/vignettes.tw
+++ b/src/js/vignettes.tw
@@ -369,7 +369,7 @@ window.GetVignette = function GetVignette(slave) {
 				break;
 			case "devout":
 				vignettes.push({
-					text: `a customer catches ${him} praying to ${himself} as they inserts themselves into ${him}, turning them off,`,
+					text: `a customer catches ${him} praying to ${himself} as they inserted themselves into ${him}, turning them off,`,
 					type: "cash",
 					effect: -1,
 				});
@@ -1945,7 +1945,7 @@ window.GetVignette = function GetVignette(slave) {
 				break;
 			case "devout":
 				vignettes.push({
-					text: `a citizen catches ${him} praying to ${himself} as they inserts themsleves into ${him}, turning them off,`,
+					text: `a citizen catches ${him} praying to ${himself} as they inserted themsleves into ${him}, turning them off,`,
 					type: "rep",
 					effect: -1,
 				});
@@ -3329,7 +3329,42 @@ window.GetVignette = function GetVignette(slave) {
 					type: "health",
 					effect: -1,
 				});
-			break;
+				break;
+			case "devout":
+				vignettes.push({
+					text: `${he} spent nearly all of ${his} free time praying,`,
+					type: "cash",
+					effect: 0,
+				});
+				break;
+		}
+		switch (slave.behavioralQuirk) {
+			case "fitness":
+				vignettes.push({
+					text: `${he} spent a great deal of time working out,`,
+					type: "health",
+					effect: 1,
+				});
+				vignettes.push({
+					text: `${he} exercised to the point of physical exhaustion,`,
+					type: "health",
+					effect: -1,
+				});
+				break;
+			case "insecure":
+				vignettes.push({
+					text: `${he} relaxed by doing whatever other slaves were doing,`,
+					type: "cash",
+					effect: 0,
+				});
+				break;
+		}
+		if (slave.fetish === "mindbroken") {
+			vignettes.push({
+				text: `${he} spent ${his} time watching paint dry. No one bothered telling ${him} the wall wasn't newly painted,`,
+				type: "cash",
+				effect: 0,
+			});
 		}
 		if (slave.devotion > 95) {
 			vignettes.push({
-- 
GitLab