diff --git a/src/js/nurseryWidgets.js b/src/js/nurseryWidgets.js
index db768785910e3fcf6e78f03bf2318029f530fd58..8f56a3ec82a7a743b5e22ade94c9ce73820fb153 100644
--- a/src/js/nurseryWidgets.js
+++ b/src/js/nurseryWidgets.js
@@ -1,16 +1,4961 @@
+/* eslint-disable camelcase */
 App.Facilities.Nursery.ChildSummary = function(child) {
-	r += `${child} will stay in ${V.nurseryName} for another ${child.weeksLeft} weeks. `;
-	r += LongChildDescription(child);
-	return r;
+	"use strict";
+	const V = State.variables;
+	let r = ``;
+	/* eslint-disable */
+	let pronouns = getPronouns(child);
+	let he = pronouns.pronoun;
+	let him = pronouns.object;
+	let his = pronouns.possessive;
+	let hers = pronouns.possessivePronoun;
+	let himself = pronouns.objectReflexive;
+	let boy = pronouns.noun;
+	let He = capFirstChar(he);
+	let His = capFirstChar(his);
+	/* eslint-enable */
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 * @returns {string} */
+	function ChildSummaryUncached(child) {
+		if (V.abbreviateDevotion === 1) {
+			short_devotion(child);
+		} else if (V.abbreviateDevotion === 2) {
+			long_devotion(child);
+		}
+		if (child.fuckdoll === 0) {
+			if (V.abbreviateRules === 1) {
+				short_rules(child);
+			} else if (V.abbreviateRules === 2) {
+				long_rules(child);
+			}
+		}
+		if (child.tired !== 0) {
+			r += `Tired.`;
+		}
+		if (V.abbreviateDiet === 1) {
+			short_weight(child);
+		} else if (V.abbreviateDiet === 2) {
+			long_weight(child);
+		}
+		if (V.abbreviateDiet === 1) {
+			short_diet(child);
+		} else if (V.abbreviateDiet === 2) {
+			long_diet(child);
+		}
+		if (V.abbreviateHealth === 1) {
+			short_health(child);
+		} else if (V.abbreviateHealth === 2) {
+			long_health(child);
+		}
+		if (V.abbreviateDrugs === 1) {
+			short_drugs(child);
+		} else if (V.abbreviateDrugs === 2) {
+			long_drugs(child);
+		}
+		if (V.abbreviateNationality + V.abbreviateGenitalia + V.abbreviatePhysicals + V.abbreviateSkills + V.abbreviateMental !== 0) {
+			r += `<br>`;
+			if (V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1) {
+				r += "&nbsp;&nbsp;&nbsp;&nbsp;";
+			}
+		}
+		V.desChildTitle(child);
+		const first_letter = V.desc.substring(0, 1).toUpperCase();
+		V.desc = first_letter + V.desc.substring(1);
+		r += `<strong><span class="coral">${V.desc}${V.abbreviatePhysicals === 2? '.' : ''}</span></strong> `;
+		if (V.seeRace === 1) {
+			r += `<span class="tan">`;
+			if (V.abbreviateRace === 1) {
+				short_race(child);
+			} else if (V.abbreviateRace === 2) {
+				long_race(child);
+			}
+			r += `</span> `;
+		}
+		if (V.abbreviateNationality === 1) {
+			short_nationality(child);
+		} else if (V.abbreviateNationality === 2) {
+			long_nationality(child);
+		}
+		if (V.abbreviatePhysicals === 1) {
+			short_skin(child);
+		} else {
+			r += `<span class="pink">${child.skin.charAt(0).toUpperCase() + child.skin.slice(1)} skin.</span> `;
+		}
+		if (V.abbreviateGenitalia === 1) {
+			short_genitals(child);
+		} else if (V.abbreviateGenitalia === 2) {
+			long_genitals(child);
+		}
+		if (V.abbreviatePhysicals === 1) {
+			short_age(child);
+			short_face(child);
+			short_eyes(child);
+			short_ears(child);
+			if (child.markings !== "none") {
+				r += "Markings";
+			}
+			short_lips(child);
+			short_teeth(child);
+			short_muscles(child);
+			short_limbs(child);
+			short_voice(child);
+			short_tits_ass(child);
+			short_hips(child);
+			short_waist(child);
+			short_implants(child);
+			short_lactation(child);
+			short_mods(child);
+			r += `</span>`;
+		} else if (V.abbreviatePhysicals === 2) {
+			long_age(child);
+			long_face(child);
+			long_eyes(child);
+			long_ears(child);
+			long_lips(child);
+			long_teeth(child);
+			long_muscles(child);
+			long_limbs(child);
+			long_voice(child);
+			long_tits_ass(child);
+			long_hips(child);
+			long_waist(child);
+			long_implants(child);
+			long_lactation(child);
+			long_mods(child);
+			if (child.brand !== 0) {
+				r += `Branded.`;
+			}
+			r += `</span>`;
+		}
+		if (V.abbreviateHormoneBalance === 1) {
+			if (child.hormoneBalance <= -21) {
+				r += `<span class="deepskyblue">`;
+				r += ` <strong>HB:M</strong>`;
+			} else if (child.hormoneBalance <= 20) {
+				r += `<span class="pink">`;
+				r += ` <strong>HB:N</strong>`;
+			} else if (child.hormoneBalance <= 500) {
+				r += `<span class="pink">`;
+				r += ` <strong>HB:F</strong>`;
+			}
+			r += `</span>`;
+		} else if (V.abbreviateHormoneBalance === 2) {
+			r += `<span class=`;
+			if (child.hormoneBalance <= -21) {
+				r += `"deepskyblue"`;
+			} else {
+				r += `"pink"`;
+			}
+			r += `> `;
+			if (child.hormoneBalance < -400) {
+				r += `Overwhelmingly masculine`;
+			} else if (child.hormoneBalance <= -300) {
+				r += `Extremely masculine`;
+			} else if (child.hormoneBalance <= -200) {
+				r += `Heavily masculine`;
+			} else if (child.hormoneBalance <= -100) {
+				r += `Very masculine`;
+			} else if (child.hormoneBalance <= -21) {
+				r += `Masculine`;
+			} else if (child.hormoneBalance <= 20) {
+				r += `Neutral`;
+			} else if (child.hormoneBalance <= 99) {
+				r += `Feminine`;
+			} else if (child.hormoneBalance <= 199) {
+				r += `Very feminine`;
+			} else if (child.hormoneBalance <= 299) {
+				r += `Heavily feminine`;
+			} else if (child.hormoneBalance <= 399) {
+				r += `Extremely feminine`;
+			} else if (child.hormoneBalance <= 500) {
+				r += `Overwhelmingly feminine`;
+			}
+			r += ` hormone balance.</span>`;
+		}
+		r += "<br>";
+		if (V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1) {
+			r += "&nbsp;&nbsp;&nbsp;&nbsp;";
+		}
+		if (V.abbreviateSkills === 1) {
+			short_intelligence(child);
+			short_sex_skills(child);
+			if (child.skill.combat > 0) {
+				r += "C";
+			}
+			r += "</span> ";
+			short_prestige(child);
+			short_porn_prestige(child);
+		} else if (V.abbreviateSkills === 2) {
+			long_intelligence(child);
+			long_sex_skills(child);
+			if (child.skill.combat > 0) {
+				r += "Trained fighter.";
+			}
+			r += "</span> ";
+			long_prestige(child);
+			long_porn_prestige(child);
+		}
+		if (V.abbreviateMental === 1) {
+			if (child.fetish !== "mindbroken") {
+				if (child.fetishKnown === 1) {
+					short_fetish(child);
+				}
+				if (child.attrKnown === 1) {
+					short_attraction(child);
+				}
+			}
+			if (child.clitPiercing === 3) {
+				short_smart_fetish(child);
+				short_smart_attraction(child);
+			}
+			short_behavior_flaw(child);
+			short_sex_flaw(child);
+			short_behavior_quirk(child);
+			short_sex_quirk(child);
+		} else if (V.abbreviateMental === 2) {
+			if (child.fetish !== "mindbroken") {
+				if (child.fetishKnown === 1) {
+					long_fetish(child);
+				}
+				if (child.attrKnown === 1) {
+					long_attraction(child);
+				}
+			}
+			if (child.clitPiercing === 3) {
+				long_smart_fetish(child);
+				long_smart_attraction(child);
+			}
+			long_behavior_flaw(child);
+			long_sex_flaw(child);
+			long_behavior_quirk(child);
+			long_sex_quirk(child);
+		}
+		if (child.custom.label) {
+			r += `<strong><span class="yellow">${capFirstChar(child.custom.label)}</span></strong>`;
+		}
+		if ((child.relationship !== 0) || (child.relation !== 0) || (V.abbreviateClothes === 2) || (V.abbreviateRulesets === 2)) {
+			r += `<br>`;
+			if (V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1) {
+				r += `&nbsp;&nbsp;&nbsp;&nbsp;`;
+			}
+		}
+		if (V.abbreviateMental === 1) {
+			r += `<span class="lightgreen">`;
+			if (V.familyTesting === 1) {
+				short_extended_family(child);
+			} else {
+				short_legacy_family(child);
+			}
+			r += `</span>`;
+			short_clone(child);
+			short_rival(child);
+		} else if (V.abbreviateMental === 2) {
+			if (V.familyTesting === 1) {
+				long_extended_family(child);
+			} else {
+				long_legacy_family(child);
+			}
+			long_clone(child);
+			long_rival(child);
+		}
+		if (child.fuckdoll === 0) {
+			if (V.abbreviateClothes === 2) {
+				r += `&nbsp;&nbsp;&nbsp;&nbsp;`;
+				if (child.choosesOwnClothes === 1) {
+					r += "Dressing herself. ";
+				}
+				long_clothes(child);
+				long_collar(child);
+				long_belly(child);
+				if (child.amp !== 1) {
+					long_legs(child);
+				}
+				if (canWalk(child)) {
+					long_shoes(child);
+				}
+				long_chastity(child);
+				long_vaginal_acc(child);
+				long_dick_acc(child);
+				long_buttplug(child);
+			}
+		}
+		r += `&nbsp;&nbsp;&nbsp;&nbsp;`;
+		rules_assistant(child);
+		if (V.abbreviateOrigins === 2 && child.origin !== 0) {
+			origins(child);
+		}
+		return r;
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_devotion(child) {
+		if (child.fetish === "mindbroken") {
+			r += `<span class="red">MB</span>`;
+		} else if (child.devotion < -95) {
+			r += `<span class="darkviolet">Hate${V.summaryStats ? `[${child.devotion}]` : ''}</span>`;
+		} else if (child.devotion < -50) {
+			r += `<span class="darkviolet">Hate${V.summaryStats ? `[${child.devotion}]` : ''}</span>`;
+		} else if (child.devotion < -20) {
+			r += `<span class="mediumorchid">Res${V.summaryStats ? `[${child.devotion}]` : ''}</span>`;
+		} else if (child.devotion <= 20) {
+			r += `<span class="yellow">Ambiv${V.summaryStats ? `[${child.devotion}]` : ''}</span>`;
+		} else if (child.devotion <= 50) {
+			r += `<span class="hotpink">Accept${V.summaryStats ? `[${child.devotion}]` : ''}</span>`;
+		} else if (child.devotion <= 95) {
+			r += `<span class="deeppink">Devo${V.summaryStats ? `[${child.devotion}]` : ''}</span>`;
+		} else {
+			r += `<span class="magenta">Wor${V.summaryStats ? `[${child.devotion}]` : ''}</span>`;
+		}
+		r += " ";
+		if (child.fetish === "mindbroken") {
+			return;
+		} else if (child.trust < -95) {
+			r += `<span class="darkgoldenrod">ETerr${V.summaryStats ? `[${child.trust}]` : ''}</span>`;
+		} else if (child.trust < -50) {
+			r += `<span class="goldenrod">Terr${V.summaryStats ? `[${child.trust}]` : ''}</span>`;
+		} else if (child.trust < -20) {
+			r += `<span class="gold">Fright${V.summaryStats ? `[${child.trust}]` : ''}</span>`;
+		} else if (child.trust <= 20) {
+			r += `<span class="yellow">Fear${V.summaryStats ? `[${child.trust}]` : ''}</span>`;
+		} else if (child.trust <= 50) {
+			if (child.devotion < -20) {
+				r += `<span class="orange">Caref${V.summaryStats ? `[${child.trust}]` : ''}</span>`;
+			} else {
+				r += `<span class="mediumaquamarine">Caref${V.summaryStats ? `[${child.trust}]` : ''}</span>`;
+			}
+		} else if (child.trust < 95) {
+			if (child.devotion < -20) {
+				r += `<span class="orangered">Bold${V.summaryStats ? `[${child.trust}]` : ''}</span>`;
+			} else {
+				r += `<span class="mediumseagreen">Trust${V.summaryStats ? `[${child.trust}]` : ''}</span>`;
+			}
+		} else {
+			if (child.devotion < -20) {
+				r += `<span class="darkred">Defiant${V.summaryStats ? `[${child.trust}]` : ''}</span>`;
+			} else {
+				r += `<span class="seagreen">VTrust ${V.summaryStats ? `[${child.trust}]` : ''}</span>`;
+			}
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_devotion(child) {
+		if (child.fetish === "mindbroken") {
+			r += `<span class="red">Mindbroken.</span>`;
+		} else if (child.devotion < -95) {
+			r += `<span class="darkviolet">Very hateful${V.summaryStats ? `[${child.devotion}]` : ''}.</span>`;
+		} else if (child.devotion < -50) {
+			r += `<span class="darkviolet">Hateful${V.summaryStats ? `[${child.devotion}]` : ''}.</span>`;
+		} else if (child.devotion < -20) {
+			r += `<span class="mediumorchid">Resistant${V.summaryStats ? `[${child.devotion}]` : ''}.</span>`;
+		} else if (child.devotion <= 20) {
+			r += `<span class="yellow">Ambivalent${V.summaryStats ? `[${child.devotion}]` : ''}.</span>`;
+		} else if (child.devotion <= 50) {
+			r += `<span class="hotpink">Accepting${V.summaryStats ? `[${child.devotion}]` : ''}.</span>`;
+		} else if (child.devotion <= 95) {
+			r += `<span class="deeppink">Devoted${V.summaryStats ? `[${child.devotion}]` : ''}.</span>`;
+		} else {
+			r += `<span class="magenta">Worshipful${V.summaryStats ? `[${child.devotion}]` : ''}.</span>`;
+		}
+		r += " ";
+		if (child.fetish === "mindbroken") {
+			return;
+		} else if (child.trust < -95) {
+			r += `<span class="darkgoldenrod">Extremely terrified${V.summaryStats ? `[${child.trust}]` : ''}.</span>`;
+		} else if (child.trust < -50) {
+			r += `<span class="goldenrod">Terrified${V.summaryStats ? `[${child.trust}]` : ''}.</span>`;
+		} else if (child.trust < -20) {
+			r += `<span class="gold">Frightened${V.summaryStats ? `[${child.trust}]` : ''}.</span>`;
+		} else if (child.trust <= 20) {
+			r += `<span class="yellow">Fearful${V.summaryStats ? `[${child.trust}]` : ''}.</span>`;
+		} else if (child.trust <= 50) {
+			if (child.devotion < -20) {
+				r += `<span class="orange">Careful${V.summaryStats ? `[${child.trust}]` : ''}.</span>`;
+			} else {
+				r += `<span class="mediumaquamarine">Careful${V.summaryStats ? `[${child.trust}]` : ''}.</span>`;
+			}
+		} else if (child.trust < 95) {
+			if (child.devotion < -20) {
+				r += `<span class="orangered">Bold${V.summaryStats ? `[${child.trust}]` : ''}.</span>`;
+			} else {
+				r += `<span class="mediumseagreen">Trusting${V.summaryStats ? `[${child.trust}]` : ''}.</span>`;
+			}
+		} else {
+			if (child.devotion < -20) {
+				r += `<span class="darkred">Defiant${V.summaryStats ? `[${child.trust}]` : ''}.</span>`;
+			} else {
+				r += `<span class="seagreen">Profoundly trusting${V.summaryStats ? `[${child.trust}]` : ''}.</span>`;
+			}
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_rules(child) {
+		switch (child.livingRules) {
+			case "luxurious":
+				r += `<strong>LS:Lux</strong>`;
+				break;
+			case "normal":
+				r += `<strong>LS:Nor</strong>`;
+				break;
+			default:
+				r += `<strong>LS:Spa</strong>`;
+				break;
+		}
+		r += " ";
+		if (canTalk(child)) {
+			switch (child.speechRules) {
+				case "permissive":
+					r += `<strong>SpR:P</strong>`;
+					break;
+				case "accent elimination":
+					r += `<strong>SpR:NoAcc</strong>`;
+					break;
+				case "language lessons":
+					r += `<strong>SpR:LL</strong>`;
+					break;
+				default:
+					r += `<strong>SpR:R</strong>`;
+					break;
+			}
+			r += " ";
+		}
+		switch (child.relationshipRules) {
+			case "permissive":
+				r += `<strong>ReR:P</strong>`;
+				break;
+			case "just friends":
+				r += `<strong>ReR:Fr</strong>`;
+				break;
+			default:
+				r += `<strong>ReR:R</strong>`;
+				break;
+		}
+		r += " ";
+		switch (child.standardPunishment) {
+			case "confinement":
+				r += `<strong>Pun:Conf</strong>`;
+				break;
+			case "whipping":
+				r += `<strong>Pun:Whip</strong>`;
+				break;
+			case "chastity":
+				r += `<strong>Pun:Chas</strong>`;
+				break;
+			default:
+				r += `<strong>Pun:Situ</strong>`;
+				break;
+		}
+		r += " ";
+		switch (child.standardReward) {
+			case "relaxation":
+				r += `<strong>Rew:Relx</strong>`;
+				break;
+			case "drugs":
+				r += `<strong>Rew:Drug</strong>`;
+				break;
+			case "orgasm":
+				r += `<strong>Rew:Orga</strong>`;
+				break;
+			default:
+				r += `<strong>Rew:Situ</strong>`;
+				break;
+		}
+		r += " ";
+		switch (child.releaseRules) {
+			case "permissive":
+				r += `<strong>MaR:P</strong>`;
+				break;
+			case "sapphic":
+				r += `<strong>MaR:S</strong>`;
+				break;
+			case "masturbation":
+				r += `<strong>MaR:M</strong>`;
+				break;
+			case "chastity":
+				r += `<strong>MaR:C</strong>`;
+				break;
+			default:
+				r += `<strong>MaR:R</strong>`;
+				break;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_rules(child) {
+		r += `Living standard: ${child.livingRules}. `;
+		if (canTalk(child)) {
+			r += `Speech rules: ${child.speechRules}. `;
+		}
+		r += `Relationship rules: ${child.relationshipRules}. `;
+		r += `Typical punishment: ${child.standardPunishment}. `;
+		r += `Typical reward: ${child.standardReward}. `;
+		r += `Release rules: ${child.releaseRules}. `;
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_weight(child) {
+		if (child.weight < -95) {
+			r += `<strong><span class="red">W---${V.summaryStats? `[${child.weight}]` : ''}</span></strong>`;
+		} else if (child.weight < -30) {
+			if (child.hips < -1) {
+				r += `<strong>W--${V.summaryStats? `[${child.weight}]` : ''}</strong>`;
+			} else {
+				r += `<strong><span class="red">W--${V.summaryStats? `[${child.weight}]` : ''}</span></strong>`;
+			}
+		} else if (child.weight < -10) {
+			r += `<strong>W-${V.summaryStats? `[${child.weight}]` : ''}</strong>`;
+		} else if (child.weight <= 10) {
+			r += `<strong>W${V.summaryStats? `[${child.weight}]` : ''}</strong>`;
+		} else if (child.weight <= 30) {
+			r += `<strong>W+${V.summaryStats? `[${child.weight}]` : ''}</strong>`;
+		} else if (child.weight <= 95) {
+			if (child.hips > 1 || V.arcologies[0].FSHedonisticDecadence !== "unset") {
+				r += `<strong>W++${V.summaryStats? `[${child.weight}]` : ''}</strong>`;
+			} else {
+				r += `<strong><span class="red">W++${V.summaryStats? `[${child.weight}]` : ''}</span></strong>`;
+			}
+		} else if (child.weight <= 130) {
+			if (child.hips > 2 || V.arcologies[0].FSHedonisticDecadence !== "unset") {
+				r += `<strong>W+++${V.summaryStats? `[${child.weight}]` : ''}</strong>`;
+			} else {
+				r += `<strong><span class="red">W+++${V.summaryStats? `[${child.weight}]` : ''}</span></strong>`;
+			}
+		} else if (child.weight <= 160) {
+			if (V.arcologies[0].FSHedonisticDecadence !== "unset") {
+				r += `<strong>W++++${V.summaryStats? `[${child.weight}]` : ''}</strong>`;
+			} else {
+				r += `<strong><span class="red">W++++${V.summaryStats? `[${child.weight}]` : ''}</span></strong>`;
+			}
+		} else if (child.weight <= 190) {
+			if (V.arcologies[0].FSHedonisticDecadence !== "unset") {
+				r += `<strong>W+++++${V.summaryStats? `[${child.weight}]` : ''}</strong>`;
+			} else {
+				r += `<strong><span class="red">W+++++${V.summaryStats? `[${child.weight}]` : ''}</span></strong>`;
+			}
+		} else {
+			if (V.arcologies[0].FSHedonisticDecadence !== "unset") {
+				r += `<strong>W++++++${V.summaryStats? `[${child.weight}]` : ''}</strong>`;
+			} else {
+				r += `<strong><span class="red">W++++++${V.summaryStats? `[${child.weight}]` : ''}</span></strong>`;
+			}
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_weight(child) {
+		if (child.weight < -95) {
+			r += `<span class="red">Emaciated${V.summaryStats ? `[${child.weight}]`: ''}.</span>`;
+		} else if (child.weight < -30) {
+			if (child.hips < -1) {
+				r += `Model-thin${V.summaryStats? `[${child.weight}]`: ''}.`;
+			} else {
+				r += `<span class="red">Very thin${V.summaryStats ? `[${child.weight}]`: ''}.</span>`;
+			}
+		} else if (child.weight < -10) {
+			r += `Thin${V.summaryStats? `[${child.weight}]`: ''}.`;
+		} else if (child.weight <= 10) {
+			r += `Trim${V.summaryStats? `[${child.weight}]`: ''}.`;
+		} else if (child.weight <= 30) {
+			r += `Plush${V.summaryStats? `[${child.weight}]`: ''}.`;
+		} else if (child.weight <= 95) {
+			if (child.hips > 1 || V.arcologies[0].FSHedonisticDecadence !== "unset") {
+				r += `Nicely chubby${V.summaryStats? `[${child.weight}]`: ''}.`;
+			} else {
+				r += `<span class="red">Overweight${V.summaryStats ? `[${child.weight}]`: ''}.</span>`;
+			}
+		} else if (child.weight <= 130) {
+			if (child.hips > 2 || V.arcologies[0].FSHedonisticDecadence !== "unset") {
+				r += `Pleasantly soft and shapely${V.summaryStats? `[${child.weight}]`: ''}.`;
+			} else {
+				r += `<span class="red">Fat${V.summaryStats ? `[${child.weight}]`: ''}.</span>`;
+			}
+		} else if (child.weight <= 160) {
+			if (V.arcologies[0].FSHedonisticDecadence !== "unset") {
+				r += `Amazingly voluptuous${V.summaryStats? `[${child.weight}]`: ''}.`;
+			} else {
+				r += `<span class="red">Obese${V.summaryStats ? `[${child.weight}]`: ''}.</span>`;
+			}
+		} else if (child.weight <= 190) {
+			if (V.arcologies[0].FSHedonisticDecadence !== "unset") {
+				r += `SSBBW${V.summaryStats? `[${child.weight}]`: ''}.`;
+			} else {
+				r += `<span class="red">Super Obese${V.summaryStats ? `[${child.weight}]`: ''}.</span>`;
+			}
+		} else {
+			if (V.arcologies[0].FSHedonisticDecadence !== "unset") {
+				r += `Perfectly massive${V.summaryStats? `[${child.weight}]`: ''}.`;
+			} else {
+				r += `<span class="red">Dangerously Obese${V.summaryStats ? `[${child.weight}]`: ''}.</span>`;
+			}
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_diet(child) {
+		r += `<span class="teal">`;
+		switch (child.diet) {
+			case "restricted":
+				r += `<strong>Di:W-</strong>`;
+				break;
+			case "fattening":
+				r += `<strong>Di:W+</strong>`;
+				break;
+			case "XX":
+				r += `<strong>Di:XX+</strong>`;
+				break;
+			case "XY":
+				r += `<strong>Di:XY+</strong>`;
+				break;
+			case "XXY":
+				r += `<strong>Di:XXY+</strong>`;
+				break;
+			case "muscle building":
+				r += `<strong>Di:M+</strong>`;
+				break;
+			case "slimming":
+				r += `<strong>Di:M-</strong>`;
+				break;
+			case "cum production":
+				r += `<strong>Di:C+</strong>`;
+				break;
+			case "cleansing":
+				r += `<strong>Di:H+</strong>`;
+				break;
+			case "fertility":
+				r += `<strong>Di:F+</strong>`;
+				break;
+		}
+		r += `</span> `;
+		r += `<span class="cyan">`;
+		if (child.dietCum === 2) {
+			r += `<strong>Cum++</strong>`;
+		} else if (((child.dietCum === 1) && (child.dietMilk === 0))) {
+			r += `<strong>Cum+</strong>`;
+		} else if (((child.dietCum === 1) && (child.dietMilk === 1))) {
+			r += `<strong>Cum+ Milk+</strong>`;
+		} else if (((child.dietCum === 0) && (child.dietMilk === 1))) {
+			r += `<strong>Milk+</strong>`;
+		} else if ((child.dietMilk === 2)) {
+			r += `<strong>Milk++</strong>`;
+		}
+		r += `</span> `;
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_diet(child) {
+		r += `<span class="teal">`;
+		switch (child.diet) {
+			case "restricted":
+				r += `Dieting.`;
+				break;
+			case "fattening":
+				r += `Gaining weight.`;
+				break;
+			case "XX":
+				r += `Estrogen rich.`;
+				break;
+			case "XY":
+				r += `Testosterone rich.`;
+				break;
+			case "XXY":
+				r += `Futanari mix.`;
+				break;
+			case "muscle building":
+				r += `Pumping iron.`;
+				break;
+			case "slimming":
+				r += `Slimming down.`;
+				break;
+			case "cum production":
+				r += `Cum production.`;
+				break;
+			case "cleansing":
+				r += `Cleansing.`;
+				break;
+			case "fertility":
+				r += `Fertility.`;
+				break;
+		}
+		r += `</span> `;
+		if (child.dietCum === 2) {
+			r += `Diet base: <span class="cyan">Cum Based.</span>`;
+		} else if (((child.dietCum === 1) && (child.dietMilk === 0))) {
+			r += `Diet base: <span class="cyan">Cum Added.</span>`;
+		} else if (((child.dietCum === 1) && (child.dietMilk === 1))) {
+			r += `Diet base: <span class="cyan">Milk & Cum Added.</span>`;
+		} else if (((child.dietCum === 0) && (child.dietMilk === 1))) {
+			r += `Diet base: <span class="cyan">Milk Added.</span>`;
+		} else if ((child.dietMilk === 2)) {
+			r += `Diet base: <span class="cyan">Milk Based.</span>`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_health(child) {
+		if (child.health < -20) {
+			r += `<strong><span class="red">H${V.summaryStats? `[${child.health}]` : ''}</span></strong>`;
+		} else if (child.health <= 20) {
+			r += `<strong><span class="yellow">H${V.summaryStats? `[${child.health}]` : ''}</span></strong>`;
+		} else if (child.health > 20) {
+			r += `<strong><span class="green">H${V.summaryStats? `[${child.health}]` : ''}</span></strong>`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_health(child) {
+		if (child.health < -90) {
+			r += `<span class="red">On the edge of death${V.summaryStats? `[${child.health}]` : ''}.</span>`;
+		} else if (child.health < -50) {
+			r += `<span class="red">Extremely unhealthy${V.summaryStats? `[${child.health}]` : ''}.</span>`;
+		} else if (child.health < -20) {
+			r += `<span class="red">Unhealthy${V.summaryStats? `[${child.health}]` : ''}.</span>`;
+		} else if (child.health <= 20) {
+			r += `<span class="yellow">Healthy${V.summaryStats? `[${child.health}]` : ''}.</span>`;
+		} else if (child.health <= 50) {
+			r += `<span class="green">Very healthy${V.summaryStats? `[${child.health}]` : ''}.</span>`;
+		} else if (child.health <= 90) {
+			r += `<span class="green">Extremely healthy${V.summaryStats? `[${child.health}]` : ''}.</span>`;
+		} else {
+			r += `<span class="green">Unnaturally healthy${V.summaryStats? `[${child.health}]` : ''}.</span>`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_drugs(child) {
+		r += `<span class="tan">`;
+		switch (child.drugs) {
+			case "breast injections":
+				r += `<strong>Dr:Boobs+</strong>`;
+				break;
+			case "intensive breast injections":
+				r += `<strong>Dr:Boobs++</strong>`;
+				break;
+			case "hyper breast injections":
+				r += `<strong>Dr:Boobs+++</strong>`;
+				break;
+			case "butt injections":
+				r += `<strong>Dr:Butt+</strong>`;
+				break;
+			case "intensive butt injections":
+				r += `<strong>Dr:Butt++</strong>`;
+				break;
+			case "hyper butt injections":
+				r += `<strong>Dr:Butt+++</strong>`;
+				break;
+			case "lip injections":
+				r += `<strong>Dr:Lip+</strong>`;
+				break;
+			case "fertility drugs":
+				r += `<strong>Dr:Fert+</strong>`;
+				break;
+			case "super fertility drugs":
+				r += `<strong>Dr:Fert++</strong>`;
+				break;
+			case "penis enhancement":
+				r += `<strong>Dr:Dick+</strong>`;
+				break;
+			case "intensive penis enhancement":
+				r += `<strong>Dr:Dick++</strong>`;
+				break;
+			case "hyper penis enhancement":
+				r += `<strong>Dr:Dick+++</strong>`;
+				break;
+			case "testicle enhancement":
+				r += `<strong>Dr:Balls+</strong>`;
+				break;
+			case "intensive testicle enhancement":
+				r += `<strong>Dr:Balls++</strong>`;
+				break;
+			case "hyper testicle enhancement":
+				r += `<strong>Dr:Balls+++</strong>`;
+				break;
+			case "psychosuppressants":
+				r += `<strong>Dr:Psych</strong>`;
+				break;
+			case "steroids":
+				r += `<strong>Dr:Ster</strong>`;
+				break;
+			case "female hormone injections":
+				r += `<strong>Dr:HormXX++</strong>`;
+				break;
+			case "male hormone injections":
+				r += `<strong>Dr:HormXY++</strong>`;
+				break;
+			case "hormone enhancers":
+				r += `<strong>Dr:Horm+</strong>`;
+				break;
+			case "hormone blockers":
+				r += `<strong>Dr:Horm-</strong>`;
+				break;
+			case "anti-aging cream":
+				r += `<strong>Dr:Age-</strong>`;
+				break;
+			case "appetite suppressors":
+				r += `<strong>Dr:ApSup</strong>`;
+				break;
+			case "penis atrophiers":
+				r += `<strong>Dr:Dick-</strong>`;
+				break;
+			case "testicle atrophiers":
+				r += `<strong>Dr:Balls-</strong>`;
+				break;
+			case "clitoris atrophiers":
+				r += `<strong>Dr:Clit-</strong>`;
+				break;
+			case "labia atrophiers":
+				r += `<strong>Dr:Labia-</strong>`;
+				break;
+			case "nipple atrophiers":
+				r += `<strong>Dr:Nipple-</strong>`;
+				break;
+			case "lip atrophiers":
+				r += `<strong>Dr:Lip-</strong>`;
+				break;
+			case "breast redistributors":
+				r += `<strong>Dr:Breast-</strong>`;
+				break;
+			case "butt redistributors":
+				r += `<strong>Dr:Butt-</strong>`;
+				break;
+			case "sag-B-gone":
+				r += `<strong>Dr:AntiSag</strong>`;
+				break;
+			case "growth stimulants":
+				r += `<strong>Dr:groStim</strong>`;
+				break;
+		}
+		r += `</span> `;
+		r += `<span class="lightgreen">`;
+		if (child.curatives === 2) {
+			r += `<strong>Cura</strong>`;
+		} else if (child.curatives === 1) {
+			r += `<strong>Prev</strong>`;
+		}
+		r += `</span> `;
+		if (child.aphrodisiacs !== 0) {
+			r += `<span class="lightblue">`;
+			if (child.aphrodisiacs === 1) {
+				r += `<strong>Aph</strong>`;
+			} else if (child.aphrodisiacs === 2) {
+				r += `<strong>Aph++</strong>`;
+			} else {
+				r += `<strong>Anaph</strong>`;
+			}
+			r += `</span> `;
+		}
+		if (child.addict !== 0) {
+			r += `<span class="cyan">Add</span>`;
+		}
+		r += `<span class="lightsalmon">`;
+		if (child.hormones > 1) {
+			r += `<strong>Ho:F+</strong>`;
+		} else if (child.hormones > 0) {
+			r += `<strong>Ho:F</strong>`;
+		} else if (child.hormones < -1) {
+			r += `<strong>Ho:M+</strong>`;
+		} else if (child.hormones < 0) {
+			r += `<strong>Ho:M</strong>`;
+		}
+		r += `</span> `;
+		r += `<span class="mediumseagreen">`;
+		if ((child.bellyImplant > -1)) {
+			r += `<strong>Belly Imp</strong>`;
+		} else if (((child.preg <= -2) || (child.ovaries === 0)) && (child.vagina !== -1)) {
+			r += `<strong>Barr</strong>`;
+		} else if (child.pubertyXX === 0 && (child.ovaries === 1 || child.mpreg === 1)) {
+			r += `<strong>Prepub</strong>`;
+		} else if (child.ovaryAge >= 47 && (child.ovaries === 1 || child.mpreg === 1)) {
+			r += `<strong>Meno</strong>`;
+		} else if (child.pregWeek < 0) {
+			r += `<strong>Postpartum</strong>`;
+		} else if (child.preg === -1) {
+			r += `<strong>CC</strong>`;
+		} else if (child.preg === 0 && (child.ovaries === 1 || child.mpreg === 1)) {
+			r += `<strong>Fert+</strong>`;
+		//} else if (((child.preg < child.pregData.normalBirth / 10) && (child.preg > 0) && child.pregKnown === 0) || child.pregWeek === 1) {
+		//	r += `<strong>Preg?</strong>`;
+		} else if ((child.preg >= 36) && (child.broodmother > 0)) {
+			r += `<strong>Perm preg</strong>`;
+		} else if (child.pregKnown === 1) {
+			r += `<strong>${child.pregWeek} wks preg</strong>`;
+		}
+		r += `</span> `;
+		if (child.induce === 1) {
+			r += `<span class="orange"><strong>Early Labor</strong></span>`;
+		}
+		if (child.pubertyXY === 0 && child.balls > 0) {
+			r += `<strong>Prepub balls</strong>`;
+		}
+		if (child.balls > 0 && child.vasectomy === 1) {
+			r += `<strong>Vasect</strong>`;
+		}
+		r += `<span class="springgreen">`;
+		if (child.inflation === 3) {
+			r += `<strong>8 ltr ${child.inflationType}</strong>`;
+		} else if (child.inflation === 2) {
+			r += `<strong>4 ltr ${child.inflationType}</strong>`;
+		} else if (child.inflation === 1) {
+			r += `<strong>2 ltr ${child.inflationType}</strong>`;
+		} else if (child.bellyFluid > 0) {
+			r += `<strong>${child.bellyFluid}ccs ${child.inflationType}</strong>`;
+		}
+		r += `</span> `;
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_drugs(child) {
+		if ((child.drugs !== "no drugs") && (child.drugs !== "none")) {
+			r += `<span class="tan">On ${child.drugs}.</span> `;
+		}
+		r += `<span class="lightgreen">`;
+		if (child.curatives === 2) {
+			r += `On curatives.`;
+		} else if (child.curatives === 1) {
+			r += `On preventatives.`;
+		}
+		r += `</span> `;
+		r += `<span class="lightblue">`;
+		if (child.aphrodisiacs > 0) {
+			r += `On ${child.aphrodisiacs > 1 ? 'extreme': ''} aphrodisiacs.`;
+		} else if (child.aphrodisiacs === -1) {
+			r += `On anaphrodisiacs.`;
+		}
+		r += `</span> `;
+		if (child.addict !== 0) {
+			r += `<span class="cyan">Addict.</span>`;
+		}
+		r += `<span class="lightsalmon">`;
+		if (child.hormones > 1) {
+			r += `Heavy female hormones.`;
+		} else if (child.hormones > 0) {
+			r += `Female hormones.`;
+		} else if (child.hormones < -1) {
+			r += `Heavy male hormones.`;
+		} else if (child.hormones < 0) {
+			r += `Male hormones.`;
+		}
+		r += `</span> `;
+		r += `<span class="mediumseagreen">`;
+		if ((child.bellyImplant > -1)) {
+			r += `Belly Implant.`;
+		} else if (((child.preg <= -2) || (child.ovaries === 0)) && (child.vagina !== -1)) {
+			r += `Barren.`;
+		} else if (child.pubertyXX === 0 && (child.ovaries === 1 || child.mpreg === 1)) {
+			r += `Not ovulating yet.`;
+		} else if (child.ovaryAge >= 47 && (child.ovaries === 1 || child.mpreg === 1)) {
+			r += `Menopausal.`;
+		} else if (child.pregWeek < 0) {
+			r += `Postpartum.`;
+		} else if (child.preg === -1) {
+			r += `On contraceptives.`;
+		} else if (child.preg === 0 && (child.ovaries === 1 || child.mpreg === 1)) {
+			r += `Fertile.`;
+		} else if (((child.preg < child.pregData.normalBirth / 10) && (child.preg > 0) && child.pregKnown === 0) || child.pregWeek === 1) {
+			r += `May be pregnant.`;
+		} else if ((child.preg >= 36) && (child.broodmother > 0)) {
+			r += `Permanently pregnant.`;
+		} else if (child.pregKnown === 1) {
+			if (child.pregType < 2 || child.broodmother > 0) {
+				r += `${child.pregWeek} weeks pregnant.`;
+			} else {
+				r += `${child.pregWeek} weeks pregnant with `;
+				if (child.pregType >= 40) {
+					r += `a tremendous brood of offspring.`;
+				} else if (child.pregType >= 20) {
+					r += `a brood of offspring.`;
+				} else if (child.pregType >= 10) {
+					r += `${child.pregType} babies.`;
+				} else if (child.pregType === 9) {
+					r += `nonuplets.`;
+				} else if (child.pregType === 8) {
+					r += `octuplets.`;
+				} else if (child.pregType === 7) {
+					r += `septuplets.`;
+				} else if (child.pregType === 6) {
+					r += `sextuplets.`;
+				} else if (child.pregType === 5) {
+					r += `quintuplets.`;
+				} else if (child.pregType === 4) {
+					r += `quadruplets.`;
+				} else if (child.pregType === 3) {
+					r += `triplets.`;
+				} else {
+					r += `twins.`;
+				}
+			}
+			if (child.preg > child.pregData.normalBirth && child.broodmother === 0) {
+				r += ` (Overdue.)`;
+			}
+		}
+		r += `</span> `;
+		if (child.induce === 1) {
+			r += `<span class="orange">Showing signs of early labor.</span>`;
+		}
+		if (child.pubertyXY === 0 && child.balls > 0) {
+			r += `Has not had first ejaculation.`;
+		}
+		if (child.balls > 0 && child.vasectomy === 1) {
+			r += `Vasectomy.`;
+		}
+		r += `<span class="springgreen">`;
+		if (child.inflation === 3) {
+			r += `Filled with 8 liters of ${child.inflationType}.`;
+		} else if (child.inflation === 2) {
+			r += `Filled with 4 liters of ${child.inflationType}.`;
+		} else if (child.inflation === 1) {
+			r += `Filled with 2 liters of ${child.inflationType}.`;
+		} else if (child.bellyFluid > 0) {
+			r += `Stuffed with ${child.bellyFluid}ccs of ${child.inflationType}.`;
+		}
+		r += `</span> `;
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_race(child) {
+		switch (child.race) {
+			case "white":
+				r += `Caucasian.`;
+				break;
+			case "asian":
+				r += `Asian.`;
+				break;
+			case "indo-aryan":
+				r += `Indo-aryan.`;
+				break;
+			case "latina":
+				r += `Latina.`;
+				break;
+			case "middle eastern":
+				r += `Middle Eastern.`;
+				break;
+			case "black":
+				r += `Black.`;
+				break;
+			case "pacific islander":
+				r += `Pacific Islander.`;
+				break;
+			case "malay":
+				r += `Malay.`;
+				break;
+			case "amerindian":
+				r += `Amerindian.`;
+				break;
+			case "semitic":
+				r += `Semitic.`;
+				break;
+			case "southern european":
+				r += `Southern European.`;
+				break;
+			case "mixed race":
+				r += `Mixed race.`;
+				break;
+			default:
+				r += `${child.race.charAt(0).toUpperCase() + child.race.slice(1)}.`;
+				break;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_race(child) {
+		switch (child.race) {
+			case "white":
+				r += `C`;
+				break;
+			case "asian":
+				r += `A`;
+				break;
+			case "indo-aryan":
+				r += `I`;
+				break;
+			case "latina":
+				r += `L`;
+				break;
+			case "middle eastern":
+				r += `ME`;
+				break;
+			case "black":
+				r += `B`;
+				break;
+			case "pacific islander":
+				r += `PI`;
+				break;
+			case "malay":
+				r += `M`;
+				break;
+			case "amerindian":
+				r += `AI`;
+				break;
+			case "semitic":
+				r += `S`;
+				break;
+			case "southern european":
+				r += `SE`;
+				break;
+			case "mixed race":
+				r += `MR`;
+				break;
+			default:
+				r += `${child.race.charAt(0).toUpperCase() + child.race.charAt(1) + child.race.charAt(2)}`;
+				break;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_nationality(child) {
+		r += `<span class="tan">`;
+		switch (child.nationality) {
+			case "Afghan":
+				r += `Afg`;
+				break;
+			case "Albanian":
+				r += `Alb`;
+				break;
+			case "Algerian":
+				r += `Alg`;
+				break;
+			case "American":
+				r += `USA`;
+				break;
+			case "Andorran":
+				r += `And`;
+				break;
+			case "Angolan":
+				r += `Ang`;
+				break;
+			case "Antiguan":
+				r += `AB`;
+				break;
+			case "Argentinian":
+				r += `Arg`;
+				break;
+			case "Armenian":
+				r += `Arm`;
+				break;
+			case "Aruban":
+				r += `Aru`;
+				break;
+			case "Australian":
+				r += `Aus`;
+				break;
+			case "Austrian":
+				r += `Aut`;
+				break;
+			case "Azerbaijani":
+				r += `Aze`;
+				break;
+			case "Bahamian":
+				r += `Bah`;
+				break;
+			case "Bahraini":
+				r += `Bah`;
+				break;
+			case "Bangladeshi":
+				r += `Bgd`;
+				break;
+			case "Barbadian":
+				r += `Bar`;
+				break;
+			case "Belarusian":
+				r += `Ber`;
+				break;
+			case "Belgian":
+				r += `Bel`;
+				break;
+			case "Belizean":
+				r += `Blz`;
+				break;
+			case "Beninese":
+				r += `Ben`;
+				break;
+			case "Bermudian":
+				r += `Bmd`;
+				break;
+			case "Bhutanese":
+				r += `Bhu`;
+				break;
+			case "Bissau-Guinean":
+				r += `GB`;
+				break;
+			case "Bolivian":
+				r += `Bol`;
+				break;
+			case "Bosnian":
+				r += `Bos`;
+				break;
+			case "Brazilian":
+				r += `Bra`;
+				break;
+			case "British":
+				r += `UK`;
+				break;
+			case "Bruneian":
+				r += `Bru`;
+				break;
+			case "Bulgarian":
+				r += `Bul`;
+				break;
+			case "Burkinabé":
+				r += `BF`;
+				break;
+			case "Burmese":
+				r += `Bur`;
+				break;
+			case "Burundian":
+				r += `Bnd`;
+				break;
+			case "Cambodian":
+				r += `Kam`;
+				break;
+			case "Cameroonian":
+				r += `Cam`;
+				break;
+			case "Canadian":
+				r += `Can`;
+				break;
+			case "Cape Verdean":
+				r += `CV`;
+				break;
+			case "Catalan":
+				r += `Cat`;
+				break;
+			case "Central African":
+				r += `CAR`;
+				break;
+			case "Chadian":
+				r += `Cha`;
+				break;
+			case "Chilean":
+				r += `Chl`;
+				break;
+			case "Chinese":
+				r += `Chi`;
+				break;
+			case "Colombian":
+				r += `Col`;
+				break;
+			case "Comorian":
+				r += `Com`;
+				break;
+			case "Congolese":
+				r += `RC`;
+				break;
+			case "a Cook Islander":
+				r += `CI`;
+				break;
+			case "Costa Rican":
+				r += `CR`;
+				break;
+			case "Croatian":
+				r += `Cro`;
+				break;
+			case "Cuban":
+				r += `Cub`;
+				break;
+			case "Curaçaoan":
+				r += `Cur`;
+				break;
+			case "Cypriot":
+				r += `Cyp`;
+				break;
+			case "Czech":
+				r += `Cze`;
+				break;
+			case "Danish":
+				r += `Den`;
+				break;
+			case "Djiboutian":
+				r += `Dji`;
+				break;
+			case "Dominican":
+				r += `DR`;
+				break;
+			case "Dominiquais":
+				r += `Dom`;
+				break;
+			case "Dutch":
+				r += `Nld`;
+				break;
+			case "East Timorese":
+				r += `ET`;
+				break;
+			case "Ecuadorian":
+				r += `Ecu`;
+				break;
+			case "Egyptian":
+				r += `Egy`;
+				break;
+			case "Emirati":
+				r += `UAE`;
+				break;
+			case "Equatoguinean":
+				r += `EG`;
+				break;
+			case "Eritrean":
+				r += `Eri`;
+				break;
+			case "Estonian":
+				r += `Est`;
+				break;
+			case "Ethiopian":
+				r += `Eth`;
+				break;
+			case "Fijian":
+				r += `Fij`;
+				break;
+			case "Filipina":
+				r += `Phl`;
+				break;
+			case "Finnish":
+				r += `Fin`;
+				break;
+			case "French":
+				r += `Fra`;
+				break;
+			case "French Guianan":
+				r += `FG`;
+				break;
+			case "French Polynesian":
+				r += `FP`;
+				break;
+			case "Gabonese":
+				r += `Gab`;
+				break;
+			case "Gambian":
+				r += `Gam`;
+				break;
+			case "Georgian":
+				r += `Geo`;
+				break;
+			case "German":
+				r += `Ger`;
+				break;
+			case "Ghanan":
+				r += `Gha`;
+				break;
+			case "Greek":
+				r += `Gre`;
+				break;
+			case "Greenlandic":
+				r += `Grn`;
+				break;
+			case "Grenadian":
+				r += `Gda`;
+				break;
+			case "Guamanian":
+				r += `Gua`;
+				break;
+			case "Guatemalan":
+				r += `Gtm`;
+				break;
+			case "Guinean":
+				r += `Gui`;
+				break;
+			case "Guyanese":
+				r += `Guy`;
+				break;
+			case "Haitian":
+				r += `Hai`;
+				break;
+			case "Honduran":
+				r += `Hon`;
+				break;
+			case "Hungarian":
+				r += `Hun`;
+				break;
+			case "I-Kiribati":
+				r += `Kir`;
+				break;
+			case "Icelandic":
+				r += `Ice`;
+				break;
+			case "Indian":
+				r += `Ind`;
+				break;
+			case "Indonesian":
+				r += `Idn`;
+				break;
+			case "Iranian":
+				r += `Irn`;
+				break;
+			case "Iraqi":
+				r += `Irq`;
+				break;
+			case "Irish":
+				r += `Irl`;
+				break;
+			case "Israeli":
+				r += `Isr`;
+				break;
+			case "Italian":
+				r += `Ita`;
+				break;
+			case "Ivorian":
+				r += `IC`;
+				break;
+			case "Jamaican":
+				r += `Jam`;
+				break;
+			case "Japanese":
+				r += `Jpn`;
+				break;
+			case "Jordanian":
+				r += `Jor`;
+				break;
+			case "Kazakh":
+				r += `Kaz`;
+				break;
+			case "Kenyan":
+				r += `Ken`;
+				break;
+			case "Kittitian":
+				r += `SKN`;
+				break;
+			case "Korean":
+				r += `Kor`;
+				break;
+			case "Kosovan":
+				r += `Kos`;
+				break;
+			case "Kurdish":
+				r += `Kur`;
+				break;
+			case "Kuwaiti":
+				r += `Kuw`;
+				break;
+			case "Kyrgyz":
+				r += `Kyr`;
+				break;
+			case "Laotian":
+				r += `Lao`;
+				break;
+			case "Latvian":
+				r += `Lat`;
+				break;
+			case "Lebanese":
+				r += `Lbn`;
+				break;
+			case "Liberian":
+				r += `Lib`;
+				break;
+			case "Libyan":
+				r += `Lby`;
+				break;
+			case "a Liechtensteiner":
+				r += `Lie`;
+				break;
+			case "Lithuanian":
+				r += `Lit`;
+				break;
+			case "Luxembourgian":
+				r += `Lux`;
+				break;
+			case "Macedonian":
+				r += `Mac`;
+				break;
+			case "Malagasy":
+				r += `Mad`;
+				break;
+			case "Malawian":
+				r += `Mwi`;
+				break;
+			case "Malaysian":
+				r += `Mys`;
+				break;
+			case "Maldivian":
+				r += `Mdv`;
+				break;
+			case "Malian":
+				r += `Mal`;
+				break;
+			case "Maltese":
+				r += `Mlt`;
+				break;
+			case "Marshallese":
+				r += `MI`;
+				break;
+			case "Mauritanian":
+				r += `Mta`;
+				break;
+			case "Mauritian":
+				r += `Mts`;
+				break;
+			case "Mexican":
+				r += `Mex`;
+				break;
+			case "Micronesian":
+				r += `FSM`;
+				break;
+			case "Moldovan":
+				r += `Mol`;
+				break;
+			case "Monégasque":
+				r += `Mnc`;
+				break;
+			case "Mongolian":
+				r += `Mon`;
+				break;
+			case "Montenegrin":
+				r += `Mng`;
+				break;
+			case "Moroccan":
+				r += `Mor`;
+				break;
+			case "Mosotho":
+				r += `Les`;
+				break;
+			case "Motswana":
+				r += `Bot`;
+				break;
+			case "Mozambican":
+				r += `Moz`;
+				break;
+			case "Namibian":
+				r += `Nam`;
+				break;
+			case "Nauruan":
+				r += `Nau`;
+				break;
+			case "Nepalese":
+				r += `Npl`;
+				break;
+			case "New Caledonian":
+				r += `NC`;
+				break;
+			case "a New Zealander":
+				r += `NZ`;
+				break;
+			case "Ni-Vanuatu":
+				r += `Van`;
+				break;
+			case "Nicaraguan":
+				r += `Nic`;
+				break;
+			case "Nigerian":
+				r += `Nga`;
+				break;
+			case "Nigerien":
+				r += `Ngr`;
+				break;
+			case "Niuean":
+				r += `Niu`;
+				break;
+			case "Norwegian":
+				r += `Nor`;
+				break;
+			case "Omani":
+				r += `Omn`;
+				break;
+			case "Pakistani":
+				r += `Pak`;
+				break;
+			case "Palauan":
+				r += `Plu`;
+				break;
+			case "Palestinian":
+				r += `Pal`;
+				break;
+			case "Panamanian":
+				r += `Pan`;
+				break;
+			case "Papua New Guinean":
+				r += `PNG`;
+				break;
+			case "Paraguayan":
+				r += `Par`;
+				break;
+			case "Peruvian":
+				r += `Per`;
+				break;
+			case "Polish":
+				r += `Pol`;
+				break;
+			case "Portuguese":
+				r += `Por`;
+				break;
+			case "Puerto Rican":
+				r += `PR`;
+				break;
+			case "Qatari":
+				r += `Qat`;
+				break;
+			case "Romanian":
+				r += `Rom`;
+				break;
+			case "Russian":
+				r += `Rus`;
+				break;
+			case "Rwandan":
+				r += `Rwa`;
+				break;
+			case "Sahrawi":
+				r += `Sah`;
+				break;
+			case "Saint Lucian":
+				r += `SL`;
+				break;
+			case "Salvadoran":
+				r += `ES`;
+				break;
+			case "Sammarinese":
+				r += `SM`;
+				break;
+			case "Samoan":
+				r += `Sam`;
+				break;
+			case "São Toméan":
+				r += `STP`;
+				break;
+			case "Saudi":
+				r += `Sau`;
+				break;
+			case "Scottish":
+				r += `Sco`;
+				break;
+			case "Senegalese":
+				r += `Sen`;
+				break;
+			case "Serbian":
+				r += `Srb`;
+				break;
+			case "Seychellois":
+				r += `Sey`;
+				break;
+			case "Sierra Leonean":
+				r += `Sie`;
+				break;
+			case "Singaporean":
+				r += `Sng`;
+				break;
+			case "Slovak":
+				r += `Svk`;
+				break;
+			case "Slovene":
+				r += `Svn`;
+				break;
+			case "a Solomon Islander":
+				r += `SI`;
+				break;
+			case "Somali":
+				r += `Som`;
+				break;
+			case "South African":
+				r += `RSA`;
+				break;
+			case "South Sudanese":
+				r += `SS`;
+				break;
+			case "Spanish":
+				r += `Spa`;
+				break;
+			case "Sri Lankan":
+				r += `Sri`;
+				break;
+			case "Sudanese":
+				r += `Sud`;
+				break;
+			case "Surinamese":
+				r += `Sur`;
+				break;
+			case "Swazi":
+				r += `Swa`;
+				break;
+			case "Swedish":
+				r += `Swe`;
+				break;
+			case "Swiss":
+				r += `Swi`;
+				break;
+			case "Syrian":
+				r += `Syr`;
+				break;
+			case "Taiwanese":
+				r += `Tai`;
+				break;
+			case "Tajik":
+				r += `Taj`;
+				break;
+			case "Tanzanian":
+				r += `Tza`;
+				break;
+			case "Thai":
+				r += `Tha`;
+				break;
+			case "Tibetan":
+				r += `Tib`;
+				break;
+			case "Togolese":
+				r += `Tog`;
+				break;
+			case "Tongan":
+				r += `Ton`;
+				break;
+			case "Trinidadian":
+				r += `TT`;
+				break;
+			case "Tunisian":
+				r += `Tun`;
+				break;
+			case "Turkish":
+				r += `Tur`;
+				break;
+			case "Turkmen":
+				r += `Tkm`;
+				break;
+			case "Tuvaluan":
+				r += `Tuv`;
+				break;
+			case "Ugandan":
+				r += `Uga`;
+				break;
+			case "Ukrainian":
+				r += `Ukr`;
+				break;
+			case "Uruguayan":
+				r += `Uru`;
+				break;
+			case "Uzbek":
+				r += `Uzb`;
+				break;
+			case "Vatican":
+				r += `VC`;
+				break;
+			case "Venezuelan":
+				r += `Ven`;
+				break;
+			case "Vietnamese":
+				r += `Vnm`;
+				break;
+			case "Vincentian":
+				r += `SVG`;
+				break;
+			case "Yemeni":
+				r += `Yem`;
+				break;
+			case "Zairian":
+				r += `DRC`;
+				break;
+			case "Zambian":
+				r += `Zam`;
+				break;
+			case "Zimbabwean":
+				if (child.race === "white") {
+					r += `Rho`;
+				} else {
+					r += `Zwe`;
+				}
+				break;
+			case "Ancient Chinese Revivalist":
+				r += `Chi Rev`;
+				break;
+			case "Ancient Egyptian Revivalist":
+				r += `Egy Rev`;
+				break;
+			case "Arabian Revivalist":
+				r += `Ara Rev`;
+				break;
+			case "Aztec Revivalist":
+				r += `Azt Rev`;
+				break;
+			case "Edo Revivalist":
+				r += `Edo Rev`;
+				break;
+			case "Roman Revivalist":
+				r += `Rom Rev`;
+				break;
+			case "":
+			case "none":
+			case "child":
+			case "Stateless":
+				r += `None`;
+				break;
+			default:
+				r += `${child.nationality.charAt(0) + child.nationality.charAt(1) + child.nationality.charAt(2)}`;
+				break;
+		}
+		r += `</span> `;
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_nationality(child) {
+		r += `<span class="tan">`;
+		switch (child.nationality) {
+			case "a Cook Islander":
+				r += `Cook Islander.`;
+				break;
+			case "a Liechtensteiner":
+				r += `Liechtensteiner.`;
+				break;
+			case "a New Zealander":
+				r += `New Zealander.`;
+				break;
+			case "a Solomon Islander":
+				r += `Solomon Islander.`;
+				break;
+			case "Zimbabwean":
+				if (child.race === "white") {
+					r += `Rhodesian.`;
+				} else {
+					r += `${child.nationality}.`;
+				}
+				break;
+			case "child":
+			case "none":
+			case "":
+			case "Stateless":
+				r += `Stateless.`;
+				break;
+			default:
+				r += `${child.nationality}.`;
+				break;
+		}
+		r += `</span> `;
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_skin(child) {
+		r += `<span class="pink">`;
+		switch (child.skin) {
+			case "pure white":
+				r += `P. Whi`;
+				break;
+			case "extremely fair":
+				r += `E. Fai`;
+				break;
+			case "very fair":
+				r += `V. Fai`;
+				break;
+			case "extremely pale":
+				r += `E. Pal`;
+				break;
+			case "very pale":
+				r += `V. Pal`;
+				break;
+			case "light brown":
+				r += `L. Br`;
+				break;
+			case "dark brown":
+				r += `D. Br`;
+				break;
+			case "light olive":
+				r += `L. Oli`;
+				break;
+			case "dark olive":
+				r += `D. Oli`;
+				break;
+			case "light beige":
+				r += `L. Bei`;
+				break;
+			case "dark beige":
+				r += `D. Bei`;
+				break;
+			case "tan":
+				r += `Tan`;
+				break;
+			case "bronze":
+				r += `Bron`;
+				break;
+			case "ebony":
+				r += `Ebon`;
+				break;
+			case "pure black":
+				r += `P. Bla`;
+				break;
+			case "dark":
+			case "fair":
+			case "pale":
+				r += `${child.skin.charAt(0).toUpperCase() + child.skin.slice(1)}`;
+				break;
+			default:
+				r += `${child.skin.charAt(0).toUpperCase() + child.skin.charAt(1) + child.skin.charAt(2)}`;
+				break;
+		}
+		r += `</span> `;
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_genitals(child) {
+		if (child.dick > 0) {
+			r += `<span class="pink">`;
+			if (child.balls === 0) {
+				r += `Geld`;
+			}
+			if ((child.dick > 8) && (child.balls > 8)) {
+				r += `Junk+++`;
+			} else if ((child.dick > 5) && (child.balls > 5)) {
+				r += `Junk++`;
+			} else if ((child.dick > 4) && (child.balls > 4)) {
+				r += `Junk+`;
+			} else if ((child.dick > 3) && (child.balls > 3)) {
+				r += `Junk`;
+			} else if (child.dick > 8) {
+				r += `Dick+++`;
+			} else if (child.dick > 5) {
+				r += `Dick++`;
+			} else if (child.dick > 4) {
+				r += `Dick+`;
+			} else if (child.dick > 3) {
+				r += `Dick`;
+			} else if (child.balls > 10) {
+				r += `Balls+++`;
+			} else if (child.balls > 5) {
+				r += `Balls++`;
+			} else if (child.balls > 4) {
+				r += `Balls+`;
+			} else if (child.balls > 3) {
+				r += `Balls`;
+			}
+			r += `</span> `;
+		}
+		if (child.vagina === 0) {
+			r += `<span class="lime">VV</span>`;
+		} else if ((child.pregKnown === 1) && canWalk(child) && (child.clothes === "no clothing" || child.clothes === "body oil") && (child.shoes === "none")) {
+			r += `<span class="pink">NBP</span>`;
+		}
+		if (child.anus === 0) {
+			r += ` <span class="lime">AV</span>`;
+		}
+		r += `<span class="pink">`;
+		if ((child.vagina > 3) && (child.anus > 3)) {
+			r += ` V++A++`;
+		} else if ((child.vagina > 2) && (child.anus > 2)) {
+			r += ` V+A+`;
+		} else if (child.vagina > 3) {
+			r += ` V++`;
+		} else if (child.vagina > 2) {
+			r += ` V+`;
+		} else if (child.anus > 3) {
+			r += ` A++`;
+		} else if (child.anus > 2) {
+			r += ` A+`;
+		}
+		r += `</span> `;
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_genitals(child) {
+		if (child.dick > 0) {
+			r += `<span class="pink">`;
+			if (child.balls === 0) {
+				r += `Gelded.`;
+			}
+			if ((child.dick > 8) && (child.balls > 8)) {
+				r += `Hyper dick & balls.`;
+			} else if ((child.dick > 5) && (child.balls > 5)) {
+				r += `Monster dick & balls.`;
+			} else if ((child.dick > 4) && (child.balls > 4)) {
+				r += `Huge dick & balls.`;
+			} else if ((child.dick > 3) && (child.balls > 3)) {
+				r += `Big dick & balls.`;
+			} else if (child.dick > 8) {
+				r += `Hyper dong.`;
+			} else if (child.dick > 5) {
+				r += `Monster dong.`;
+			} else if (child.dick > 4) {
+				r += `Huge dick.`;
+			} else if (child.dick > 3) {
+				r += `Big dick.`;
+			} else if (child.balls > 8) {
+				r += `Hyper balls.`;
+			} else if (child.balls > 5) {
+				r += `Monstrous balls.`;
+			} else if (child.balls > 4) {
+				r += `Huge balls.`;
+			} else if (child.balls > 3) {
+				r += `Big balls.`;
+			}
+			r += `</span> `;
+		}
+		if (child.vagina === 0) {
+			r += `<span class="lime">Virgin.</span> `;
+		} else if ((child.pregKnown === 1) && canWalk(child) && (child.clothes === "no clothing" || child.clothes === "body oil") && (child.shoes === "none")) {
+			r += `<span class="pink">Naked, barefoot, and pregnant.</span> `;
+		}
+		if (child.anus === 0) {
+			r += `<span class="lime">Anal virgin.</span> `;
+		}
+		r += `<span class="pink">`;
+		if ((child.vagina > 3) && (child.anus > 3)) {
+			r += `Blown out holes.`;
+		} else if ((child.vagina > 2) && (child.anus > 2)) {
+			r += `High mileage.`;
+		} else if (child.vagina > 3) {
+			r += `Cavernous pussy.`;
+		} else if (child.vagina > 2) {
+			r += `Loose pussy.`;
+		} else if (child.anus > 3) {
+			r += `Permagaped anus.`;
+		} else if (child.anus > 2) {
+			r += `Gaping anus.`;
+		}
+		r += `</span> `;
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_age(child) {
+		r += `<span class="pink">`;
+		if (V.showAgeDetail === 1) {
+			r += child.actualAge;
+		} else if (child.actualAge >= 40) {
+			r += `40s`;
+		} else if (child.actualAge >= 35) {
+			r += `Lt30s`;
+		} else if (child.actualAge >= 30) {
+			r += `Ea30s`;
+		} else if (child.actualAge >= 25) {
+			r += `Lt20s`;
+		} else if (child.actualAge >= 20) {
+			r += `Ea20s`;
+		} else if (child.actualAge >= 18) {
+			r += child.actualAge;
+		}
+		if (child.actualAge !== child.physicalAge) {
+			r += ` w ${child.physicalAge}y-bdy`;
+		}
+		if (child.visualAge !== child.physicalAge) {
+			r += ` Lks${child.visualAge}`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_face(child) {
+		if (child.face < -95) {
+			r += `<span class="red">Face---${V.summaryStats? `[${child.face}]` : ''}</span>`;
+		} else if (child.face < -40) {
+			r += `<span class="red">Face--${V.summaryStats? `[${child.face}]` : ''}</span>`;
+		} else if (child.face < -10) {
+			r += `<span class="red">Face-${V.summaryStats? `[${child.face}]` : ''}</span>`;
+		} else if (child.face <= 10) {
+			r += `Face${V.summaryStats? `[${child.face}]` : ''}`;
+		} else if (child.face <= 40) {
+			r += `<span class="pink">Face+${V.summaryStats? `[${child.face}]` : ''}</span>`;
+		} else if (child.face <= 95) {
+			r += `<span class="pink">Face++${V.summaryStats? `[${child.face}]` : ''}</span>`;
+		} else {
+			r += `<span class="pink">Face+++${V.summaryStats? `[${child.face}]` : ''}</span>`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_eyes(child) {
+		if (child.eyes === -2) {
+			r += `<span class="red">Blind</span>`;
+		} else if (((child.eyes === -1) && (child.eyewear !== "corrective glasses") && (child.eyewear !== "corrective contacts")) || (child.eyewear === "blurring glasses") || (child.eyewear === "blurring contacts")) {
+			r += `<span class="yellow">Sight-</span>`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_ears(child) {
+		if (child.hears === -2) {
+			r += `<span class="red">Deaf</span>`;
+		} else if ((child.hears === -1) && (child.earwear !== "hearing aids")) {
+			r += `<span class="yellow">Hearing-</span>`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_lips(child) {
+		if (child.lips > 95) {
+			r += `Facepussy`;
+		} else if (child.lips > 70) {
+			r += `Lips+++${V.summaryStats? `[${child.lips}]` : ''}`;
+		} else if (child.lips > 40) {
+			r += `Lips++${V.summaryStats? `[${child.lips}]` : ''}`;
+		} else if (child.lips > 20) {
+			r += `Lips+${V.summaryStats? `[${child.lips}]` : ''}`;
+		} else if (child.lips > 10) {
+			r += `Lips${V.summaryStats? `[${child.lips}]` : ''}`;
+		} else {
+			r += `<span class="red">Lips-${V.summaryStats? `[${child.lips}]` : ''}</span>`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_teeth(child) {
+		if (child.teeth === "crooked") {
+			r += `<span class="yellow">Cr Teeth</span>`;
+		} else if (child.teeth === "gapped") {
+			r += `<span class="yellow">Gap</span>`;
+		} else if (child.teeth === "cosmetic braces") {
+			r += `Cos Braces`;
+		} else if (child.teeth === "straightening braces") {
+			r += `Braces`;
+		} else if (child.teeth === "removable") {
+			r += `Rem Teeth`;
+		} else if (child.teeth === "pointy") {
+			r += `Fangs`;
+		} else if (child.teeth === "baby") {
+			r += `Baby`;
+		} else if (child.teeth === "mixed") {
+			r += `Mixed`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_muscles(child) {
+		if (child.muscles > 95) {
+			r += `Musc++${V.summaryStats? `[${child.muscles}]`: ''}`;
+		} else if (child.muscles > 50) {
+			r += `Musc+${V.summaryStats? `[${child.muscles}]`: ''}`;
+		} else if (child.muscles > 5) {
+			r += `Fit${V.summaryStats? `[${child.muscles}]`: ''}`;
+		} else if (child.muscles > -6) {
+			r += `Soft${V.summaryStats? `[${child.muscles}]`: ''}`;
+		} else if (child.muscles > -31) {
+			if (V.arcologies[0].FSPhysicalIdealist === "unset") {
+				r += `<span class="red">Weak</span>${V.summaryStats? `[${child.muscles}]`: ''}`;
+			} else {
+				r += `Soft${V.summaryStats? `[${child.muscles}]`: ''}`;
+			}
+		} else if (child.muscles > -96) {
+			if (V.arcologies[0].FSPhysicalIdealist === "unset") {
+				r += `<span class="red">Weak+</span>${V.summaryStats? `[${child.muscles}]`: ''}`;
+			} else {
+				r += `Soft+${V.summaryStats? `[${child.muscles}]`: ''}`;
+			}
+		} else {
+			r += `<span class="red">Weak++</span>${V.summaryStats? `[${child.muscles}]`: ''}`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_limbs(child) {
+		if (child.amp !== 0) {
+			if (child.amp === -1) {
+				r += `P-Limbs`;
+			} else if (child.amp === -2) {
+				r += `Sex P-Limbs`;
+			} else if (child.amp === -3) {
+				r += `Beauty P-Limbs`;
+			} else if (child.amp === -4) {
+				r += `Combat P-Limbs`;
+			} else if (child.amp === -5) {
+				r += `Cyber P-Limbs`;
+			} else {
+				r += `Amp`;
+			}
+		}
+		r += " ";
+		if (!canWalk(child)) {
+			r += ` Immob `;
+		}
+		if (child.heels === 1) {
+			r += ` Heel `;
+		}
+		r += `</span> `;
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_voice(child) {
+		if (child.voice === 0) {
+			r += `<span class="red">Mute</span>`;
+		} else {
+			if (child.accent === 3) {
+				r += `<span class="red">Acc--</span>`;
+			} else if (child.accent === 2) {
+				r += `Acc-`;
+			} else if (child.accent === 4) {
+				r += `Acc--`;
+			} else if (child.accent === 1) {
+				r += `<span class="pink">Acc</span>`;
+			}
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_tits_ass(child) {
+		r += `<span class="pink">`;
+		if ((child.boobs >= 12000) && (child.butt > 9)) {
+			r += `T&A+++`;
+		} else if ((child.boobs > 4000) && (child.butt > 8)) {
+			r += `T&A++`;
+		} else if ((child.boobs > 2000) && (child.butt > 6)) {
+			r += `T&A+`;
+		} else if ((child.boobs > 800) && (child.butt > 4)) {
+			r += `T&A`;
+		} else if ((child.boobs < 500) && (child.butt < 3) && (child.weight <= 10) && (child.muscles <= 30)) {
+			r += `Girlish`;
+		} else if (child.boobs >= 12000) {
+			r += `Boobs+++`;
+		} else if (child.boobs > 4000) {
+			r += `Boobs++`;
+		} else if (child.boobs > 2000) {
+			r += `Boobs+`;
+		} else if (child.boobs > 800) {
+			r += `Boobs`;
+		} else if (child.butt > 9) {
+			r += `Ass+++`;
+		} else if (child.butt > 8) {
+			r += `Ass++`;
+		} else if (child.butt > 6) {
+			r += `Ass+`;
+		} else if (child.butt > 4) {
+			r += `Ass`;
+		}
+		r += `</span> `;
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_hips(child) {
+		r += `<span class="red">`;
+		if (child.hips < -1) {
+			if (child.butt > 2 && (V.arcologies[0].FSTransformationFetishist < 20 || V.arcologies[0].FSTransformationFetishist === "unset") && (V.arcologies[0].FSHedonisticDecadence < 20 || V.arcologies[0].FSHedonisticDecadence === "unset")) {
+				r += `Disp+`;
+			}
+		} else if (child.hips < 0) {
+			if (child.butt > 4 && (V.arcologies[0].FSTransformationFetishist < 20 || V.arcologies[0].FSTransformationFetishist === "unset") && (V.arcologies[0].FSHedonisticDecadence < 20 || V.arcologies[0].FSHedonisticDecadence === "unset")) {
+				r += `Disp+`;
+			}
+		} else if (child.hips > 2) {
+			if (child.butt <= 8) {
+				r += `Disp-`;
+			}
+		} else if (child.hips > 1) {
+			if (child.butt <= 3 && (V.arcologies[0].FSSlimnessEnthusiast === "unset" || (child.boobs >= 500))) {
+				r += `Disp-`;
+			}
+		} else if (child.hips > 0) {
+			if (child.butt > 8) {
+				if ((V.arcologies[0].FSTransformationFetishist < 20 || V.arcologies[0].FSTransformationFetishist === "unset") && (V.arcologies[0].FSHedonisticDecadence < 20 || V.arcologies[0].FSHedonisticDecadence === "unset")) {
+					r += `Disp+`;
+				}
+			} else if (child.butt <= 2 && (V.arcologies[0].FSSlimnessEnthusiast === "unset" || (child.boobs >= 500))) {
+				r += `Disp-`;
+			}
+		} else {
+			if (child.butt > 6) {
+				if ((V.arcologies[0].FSTransformationFetishist < 20 || V.arcologies[0].FSTransformationFetishist === "unset") && (V.arcologies[0].FSHedonisticDecadence < 20 || V.arcologies[0].FSHedonisticDecadence === "unset")) {
+					r += `Disp+`;
+				}
+			} else if (child.butt <= 1 && (V.arcologies[0].FSSlimnessEnthusiast === "unset" || (child.boobs >= 500))) {
+				r += `Disp-`;
+			}
+		}
+		r += `</span> `;
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_waist(child) {
+		if (child.waist > 95) {
+			r += `<span class="red">Wst---${V.summaryStats? `[${child.waist}]` : ''}</span>`;
+		} else if (child.waist > 40) {
+			r += `<span class="red">Wst--${V.summaryStats? `[${child.waist}]`: ''}</span>`;
+		} else if (child.waist > 10) {
+			r += `<span class="red">Wst-${V.summaryStats? `[${child.waist}]` : ''}</span>`;
+		} else if (child.waist >= -10) {
+			r += `Wst${V.summaryStats? `[${child.waist}]`: ''}`;
+		} else if (child.waist >= -40) {
+			r += `<span class="pink">Wst+${V.summaryStats? `[${child.waist}]` : ''}</span>`;
+		} else if (child.waist >= -95) {
+			r += `<span class="pink">Wst++${V.summaryStats? `[${child.waist}]` : ''}</span>`;
+		} else {
+			r += `<span class="pink">Wst+++${V.summaryStats? `[${child.waist}]`: ''}</span>`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_implants(child) {
+		r += `<span class="pink">`;
+		if ((child.boobsImplant === 0) && (child.buttImplant === 0) && (child.waist >= -95) && (child.lipsImplant === 0) && (child.faceImplant <= 5) && (child.bellyImplant === -1)) {
+			r += `Natr`;
+		} else {
+			r += `Impl`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_lactation(child) {
+		if (child.lactation === 1) {
+			r += `Lact`;
+		} else if (child.lactation === 2) {
+			r += `Lact++`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_mods(child) {
+		V.modScorChildStatsChecker.modScore(child);
+		if (child.corsetPiercing === 0 && V.piercingScore < 3 && V.tatScore < 2) {
+			return;
+		} else if (V.modScore > 15 || (V.piercingScore > 8 && V.tatScore > 5)) {
+			r += `Mods++`;
+		} else if (V.modScore > 7) {
+			r += `Mods+`;
+		} else {
+			r += `Mods`;
+		}
+		if (child.brand !== 0) {
+			r += `Br`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_age(child) {
+		r += `<span class="pink">`;
+		if (V.showAgeDetail === 1) {
+			r += `Age ` + `${child.actualAge}` + `.`;
+		} else if (child.actualAge >= 40) {
+			r += `Forties.`;
+		} else if (child.actualAge >= 35) {
+			r += `Late thirties.`;
+		} else if (child.actualAge >= 30) {
+			r += `Early thirties.`;
+		} else if (child.actualAge >= 25) {
+			r += `Late twenties.`;
+		} else if (child.actualAge >= 20) {
+			r += `Early twenties.`;
+		} else if (child.actualAge >= 19) {
+			r += `Nineteen.`;
+		} else if (child.actualAge >= 18) {
+			r += `Eighteen.`;
+		} else {
+			r += `Underage.`;
+		}
+		r += " ";
+		/*
+		 ** No NCS, then do the standard, However because of the wrinkes of Incubators, as long as visual age is greater
+		 ** than or equal to physical age, we do the old physical body/Looks for fresh out of the can NCS childs.
+		 */
+		if (((child.geneMods.NCS === 0) || (child.visualAge >= child.physicalAge))) {
+			if (child.actualAge !== child.physicalAge) {
+				r += `${child.physicalAge}` + ` year old body. `;
+			}
+			if (child.visualAge !== child.physicalAge) {
+				r += `Looks ` + `${child.visualAge}` + `. `;
+			}
+		} else {
+			/*
+			 ** Now the rub. The use of physical Age for the year old body above, basically conflicts with the changes
+			 ** that NCS introduces, so here to *distinguish* the changes, we use visual age with the 'year old body'
+			 ** and appears, for exampChild release from incubator at age 10, Her summary would show, 'Age 0. 10
+			 ** year old body.' But if she's given NCS a few weeks after release, while she's still before her first
+			 ** birthday, it'll appear the same. But once her birthday fires, if we ran with the above code it would
+			 ** say: 'Age 1. 11 year old body.' -- this conflicts with the way NCS works though, because she hasn't
+			 ** visually aged, so our change here makes it say 'Age 1. Appears to have a 10 year old body.'
+			 */
+			r += `Appears to have a ` + `${child.visualAge}` + ` year old body. `;
+		}
+		if (child.geneMods.NCS === 1) {
+			r += `(<span class="orange">NCS</span>) `;
+		}
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_face(child) {
+		if (child.face < -95) {
+			r += `<span class="red">Very ugly${V.summaryStats? `[${child.face}]`: ''}</span>`;
+		} else if (child.face < -40) {
+			r += `<span class="red">Ugly${V.summaryStats? `[${child.face}]`: ''}</span>`;
+		} else if (child.face < -10) {
+			r += `<span class="red">Unattractive${V.summaryStats? `[${child.face}]`: ''}</span>`;
+		} else if (child.face <= 10) {
+			r += `Average${V.summaryStats? `[${child.face}]`: ''}`;
+		} else if (child.face <= 40) {
+			r += `<span class="pink">Attractive${V.summaryStats? `[${child.face}]`: ''}</span>`;
+		} else if (child.face <= 95) {
+			r += `<span class="pink">Beautiful${V.summaryStats? `[${child.face}]`: ''}</span>`;
+		} else {
+			r += `<span class="pink">Very beautiful${V.summaryStats? `[${child.face}]`: ''}</span>`;
+		}
+		r += ` ${child.faceShape} face. `;
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_eyes(child) {
+		if (child.eyes <= -2) {
+			r += `<span class="red">Blind.</span>`;
+		} else if (((child.eyes === -1) && (child.eyewear !== "corrective glasses") && (child.eyewear !== "corrective contacts")) || (child.eyewear === "blurring glasses") || (child.eyewear === "blurring contacts")) {
+			r += `<span class="yellow">Nearsighted.</span>`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_ears(child) {
+		if (child.hears <= -2) {
+			r += `<span class="red">Deaf.</span>`;
+		} else if ((child.hears === -1) && (child.earwear !== "hearing aids")) {
+			r += `<span class="yellow">Hard of hearing.</span>`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_lips(child) {
+		if (child.lips > 95) {
+			r += `Facepussy${V.summaryStats? `[${child.lips}]`: ''}.`;
+		} else if (child.lips > 70) {
+			r += `Huge lips${V.summaryStats? `[${child.lips}]`: ''}.`;
+		} else if (child.lips > 40) {
+			r += `Big lips${V.summaryStats? `[${child.lips}]`: ''}.`;
+		} else if (child.lips > 20) {
+			r += `Pretty lips${V.summaryStats? `[${child.lips}]`: ''}.`;
+		} else if (child.lips > 10) {
+			r += `Normal lips${V.summaryStats? `[${child.lips}]`: ''}.`;
+		} else {
+			r += `<span class="red">Thin lips${V.summaryStats? `[${child.lips}]`: ''}.</span>`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_teeth(child) {
+		if (child.teeth === "crooked") {
+			r += `<span class="yellow">Crooked teeth.</span>`;
+		} else if (child.teeth === "gapped") {
+			r += `<span class="yellow">Tooth gap.</span>`;
+		} else if (child.teeth === "cosmetic braces") {
+			r += `Cosmetic braces.`;
+		} else if (child.teeth === "straightening braces") {
+			r += `Braces.`;
+		} else if (child.teeth === "removable") {
+			r += `Removable teeth.`;
+		} else if (child.teeth === "pointy") {
+			r += `Sharp fangs.`;
+		} else if (child.teeth === "baby") {
+			r += `Baby teeth.`;
+		} else if (child.teeth === "mixed") {
+			r += `Mixed teeth.`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_muscles(child) {
+		if (child.muscles > 95) {
+			r += `Hugely muscular${V.summaryStats? `[${child.muscles}]` : ''}.`;
+		} else if (child.muscles > 50) {
+			r += `Muscular${V.summaryStats? `[${child.muscles}]`: ''}.`;
+		} else if (child.muscles > 5) {
+			r += `Fit${V.summaryStats? `[${child.muscles}]`: ''}.`;
+		} else if (child.muscles > -6) {
+			r += `Soft${V.summaryStats? `[${child.muscles}]`: ''}.`;
+		} else if (child.muscles > -31) {
+			if (V.arcologies[0].FSPhysicalIdealist === "unset") {
+				r += `<span class="red">Weak${V.summaryStats? `[${child.muscles}]`: ''}.</span>`;
+			} else {
+				r += `Weak${V.summaryStats? `[${child.muscles}]`: ''}.`;
+			}
+		} else if (child.muscles > -96) {
+			if (V.arcologies[0].FSPhysicalIdealist === "unset") {
+				r += `<span class="red">Very weak${V.summaryStats? `[${child.muscles}]`: ''}.</span>`;
+			} else {
+				r += `Very weak${V.summaryStats? `[${child.muscles}]`: ''}.`;
+			}
+		} else {
+			r += `<span class="red">Frail${V.summaryStats? `[${child.muscles}]`: ''}.</span>`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_limbs(child) {
+		if (child.amp !== 0) {
+			if (child.amp === -1) {
+				r += `Prosthetic limbs.`;
+			} else if (child.amp === -2) {
+				r += `Sexy prosthetic limbs.`;
+			} else if (child.amp === -3) {
+				r += `Beautiful prosthetic limbs.`;
+			} else if (child.amp === -4) {
+				r += `Deadly prosthetic limbs.`;
+			} else if (child.amp === -5) {
+				r += `Cyber prosthetic limbs.`;
+			} else {
+				r += `Amputee.`;
+			}
+		}
+		r += " ";
+		if (!canWalk(child)) {
+			r += `Immobile. `;
+		}
+		if (child.heels === 1) {
+			r += `Heeled. `;
+		}
+		r += `</span> `;
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_voice(child) {
+		if (child.voice === 0) {
+			r += `<span class="red">Mute.</span>`;
+		} else {
+			if (child.accent === 3) {
+				r += `<span class="red">Bad accent.</span>`;
+			} else if (child.accent === 4) {
+				r += `<span class="red">No language skills.</span>`;
+			} else if (child.accent === 2) {
+				r += `Accent.`;
+			} else if (child.accent === 1) {
+				r += `<span class="pink">Cute accent.</span>`;
+			}
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_tits_ass(child) {
+		r += `<span class="pink">`;
+		if ((child.boobs >= 12000) && (child.butt > 9)) {
+			r += `Hyper T&A.`;
+		} else if ((child.boobs > 4000) && (child.butt > 8)) {
+			r += `Enormous T&A.`;
+		} else if ((child.boobs > 2000) && (child.butt > 6)) {
+			r += `Huge T&A.`;
+		} else if ((child.boobs > 800) && (child.butt > 4)) {
+			r += `Big T&A.`;
+		} else if ((child.boobs < 500) && (child.butt < 3) && (child.weight <= 10) && (child.muscles <= 30)) {
+			r += `Girlish figure.`;
+		} else if (child.boobs >= 12000) {
+			r += `Immobilizing tits.`;
+		} else if (child.boobs > 4000) {
+			r += `Monstrous tits.`;
+		} else if (child.boobs > 2000) {
+			r += `Huge tits.`;
+		} else if (child.boobs > 800) {
+			r += `Big tits.`;
+		} else if (child.butt > 9) {
+			r += `Hyper ass.`;
+		} else if (child.butt > 8) {
+			r += `Titanic ass.`;
+		} else if (child.butt > 6) {
+			r += `Huge ass.`;
+		} else if (child.butt > 4) {
+			r += `Big ass.`;
+		}
+		r += `</span> `;
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_hips(child) {
+		r += `<span class="red">`;
+		if (child.hips < -1) {
+			if (child.butt > 2 && (V.arcologies[0].FSTransformationFetishist < 20 || V.arcologies[0].FSTransformationFetishist === "unset") && (V.arcologies[0].FSHedonisticDecadence < 20 || V.arcologies[0].FSHedonisticDecadence === "unset") && (V.arcologies[0].FSAssetExpansionist < 20 || V.arcologies[0].FSAssetExpansionist === "unset")) {
+				r += `Disproportionately big butt.`;
+			}
+		} else if (child.hips < 0) {
+			if (child.butt > 4 && (V.arcologies[0].FSTransformationFetishist < 20 || V.arcologies[0].FSTransformationFetishist === "unset") && (V.arcologies[0].FSHedonisticDecadence < 20 || V.arcologies[0].FSHedonisticDecadence === "unset") && (V.arcologies[0].FSAssetExpansionist < 20 || V.arcologies[0].FSAssetExpansionist === "unset")) {
+				r += `Disproportionately big butt.`;
+			}
+		} else if (child.hips > 2) {
+			if (child.butt <= 8) {
+				r += `Disproportionately small butt.`;
+			}
+		} else if (child.hips > 1) {
+			if (child.butt <= 3 && ((V.arcologies[0].FSSlimnessEnthusiast === "unset") || (child.boobs >= 500))) {
+				r += `Disproportionately small butt.`;
+			}
+		} else if (child.hips > 0) {
+			if (child.butt > 8) {
+				if ((V.arcologies[0].FSTransformationFetishist < 20 || V.arcologies[0].FSTransformationFetishist === "unset") && (V.arcologies[0].FSHedonisticDecadence < 20 || V.arcologies[0].FSHedonisticDecadence === "unset") && (V.arcologies[0].FSAssetExpansionist < 20 || V.arcologies[0].FSAssetExpansionist === "unset")) {
+					r += `Disproportionately big butt.`;
+				}
+			} else if (child.butt <= 2 && ((V.arcologies[0].FSSlimnessEnthusiast === "unset") || (child.boobs >= 500))) {
+				r += `Disproportionately small butt.`;
+			}
+		} else {
+			if (child.butt > 6) {
+				if ((V.arcologies[0].FSTransformationFetishist < 20 || V.arcologies[0].FSTransformationFetishist === "unset") && (V.arcologies[0].FSHedonisticDecadence < 20 || V.arcologies[0].FSHedonisticDecadence === "unset") && (V.arcologies[0].FSAssetExpansionist < 20 || V.arcologies[0].FSAssetExpansionist === "unset")) {
+					r += `Disproportionately big butt.`;
+				}
+			} else if (child.butt <= 1 && ((V.arcologies[0].FSSlimnessEnthusiast === "unset") || (child.boobs >= 500))) {
+				r += `Disproportionately small butt.`;
+			}
+		}
+		r += `</span> `;
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_waist(child) {
+		if (child.waist > 95) {
+			r += `<span class="red">Masculine waist${V.summaryStats? `[${child.waist}]`: ''}.</span>`;
+		} else if (child.waist > 40) {
+			r += `<span class="red">Ugly waist${V.summaryStats? `[${child.waist}]`: ''}.</span>`;
+		} else if (child.waist > 10) {
+			r += `<span class="red">Unattractive waist${V.summaryStats? `[${child.waist}]`: ''}.</span>`;
+		} else if (child.waist >= -10) {
+			r += `Average waist${V.summaryStats? `[${child.waist}]`: ''}.`;
+		} else if (child.waist >= -40) {
+			r += `<span class="pink">Feminine waist${V.summaryStats? `[${child.waist}]`: ''}.</span>`;
+		} else if (child.waist >= -95) {
+			r += `<span class="pink">Hourglass waist${V.summaryStats? `[${child.waist}]`: ''}.</span>`;
+		} else {
+			r += `<span class="pink">Absurdly narrow waist${V.summaryStats? `[${child.waist}]`: ''}.</span>`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_implants(child) {
+		r += `<span class="pink">`;
+		if ((child.boobsImplant !== 0) || (child.buttImplant !== 0) || (child.lipsImplant !== 0) || (child.bellyImplant !== -1)) {
+			r += `Implants.`;
+		} else if ((child.faceImplant >= 30) || (child.waist < -95)) {
+			r += `Surgery enhanced.`;
+		} else {
+			r += `All natural.`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_lactation(child) {
+		if (child.lactation === 1) {
+			r += `Lactating naturally.`;
+		} else if (child.lactation === 2) {
+			r += `Heavy lactation.`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_mods(child) {
+		V.modScorChildStatsChecker.modScore(child);
+		if (child.corsetPiercing === 0 && V.piercingScore < 3 && V.tatScore < 2) {
+			return;
+		} else if (V.modScore > 15 || (V.piercingScore > 8 && V.tatScore > 5)) {
+			r += `Extensive body mods.`;
+		} else if (V.modScore > 7) {
+			r += `Noticeable body mods.`;
+		} else {
+			r += `Light body mods.`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_intelligence(child) {
+		const intelligence = child.intelligence + child.intelligenceImplant;
+		if (child.fetish === "mindbroken") {
+			return;
+		} else if (child.intelligenceImplant >= 30) {
+			if (intelligence >= 130) {
+				r += `<span class="deepskyblue">I++++(e+)${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}</span>`;
+			} else if (intelligence > 95) {
+				r += `<span class="deepskyblue">I+++(e+)${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}</span>`;
+			} else if (intelligence > 50) {
+				r += `<span class="deepskyblue">I++(e+)${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}</span>`;
+			} else if (intelligence > 15) {
+				r += `<span class="deepskyblue">I+(e+)${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}</span>`;
+			} else if (intelligence >= -15) {
+				r += `I(e+)${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}`;
+			} else if (intelligence >= -50) {
+				r += `<span class="orangered">I-(e+)${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}</span>`;
+			} else if (intelligence >= -95) {
+				r += `<span class="orangered">I--(e+)${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}</span>`;
+			} else {
+				r += `<span class="orangered">I---(e+)${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}</span>`;
+			}
+		} else if (child.intelligenceImplant >= 15) {
+			if (intelligence > 95) {
+				r += `<span class="deepskyblue">I+++(e)${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}</span>`;
+			} else if (intelligence > 50) {
+				r += `<span class="deepskyblue">I++(e)${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}</span>`;
+			} else if (intelligence > 15) {
+				r += `<span class="deepskyblue">I+(e)${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}</span>`;
+			} else if (intelligence >= -15) {
+				r += `I(e)${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}`;
+			} else if (intelligence >= -50) {
+				r += `<span class="orangered">I-(e)${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}</span>`;
+			} else if (intelligence >= -95) {
+				r += `<span class="orangered">I--(e)${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}</span>`;
+			} else {
+				r += `<span class="orangered">I---(e)${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}</span>`;
+			}
+		} else {
+			if (intelligence > 95) {
+				r += `<span class="deepskyblue">I+++${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}</span>`;
+			} else if (intelligence > 50) {
+				r += `<span class="deepskyblue">I++${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}</span>`;
+			} else if (intelligence > 15) {
+				r += `<span class="deepskyblue">I+${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}</span>`;
+			} else if (intelligence >= -15) {
+				r += `I${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}`;
+			} else if (intelligence >= -50) {
+				r += `<span class="orangered">I-${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}</span>`;
+			} else if (intelligence >= -95) {
+				r += `<span class="orangered">I--${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}</span>`;
+			} else {
+				r += `<span class="orangered">I---${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}</span>`;
+			}
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_sex_skills(child) {
+		let _SSkills = child.skill.anal + child.skill.oral;
+		r += `<span class="aquamarine">`;
+		if (((_SSkills + child.skill.whoring + child.skill.entertainment) >= 400) && ((child.vagina < 0) || (child.skill.vaginal >= 100))) {
+			r += `MSS`;
+		} else {
+			_SSkills += child.skill.vaginal;
+			_SSkills = Math.trunc(_SSkills);
+			if (_SSkills > 180) {
+				r += `S++`;
+			} else if ((_SSkills > 120) && (child.vagina < 0)) {
+				r += `Sh++`;
+			} else if (_SSkills > 90) {
+				r += `S+`;
+			} else if (_SSkills > 30) {
+				r += `S`;
+			} else {
+				r += `S-`;
+			}
+			if (V.summaryStats) {
+				r += `[${_SSkills}] `;
+			}
+			r += " ";
+			if (child.skill.whoring >= 100) {
+				r += `W+++`;
+			} else if (child.skill.whoring > 60) {
+				r += `W++`;
+			} else if (child.skill.whoring > 30) {
+				r += `W+`;
+			} else if (child.skill.whoring > 10) {
+				r += `W`;
+			}
+			if (child.skill.whoring > 10) {
+				if (V.summaryStats) {
+					r += `[${child.skill.whoring}] `;
+				}
+			}
+			r += " ";
+			if (child.skill.entertainment >= 100) {
+				r += `E+++`;
+			} else if (child.skill.entertainment > 60) {
+				r += `E++`;
+			} else if (child.skill.entertainment > 30) {
+				r += `E+`;
+			} else if (child.skill.entertainment > 10) {
+				r += `E`;
+			}
+			if (child.skill.entertainment > 10) {
+				if (V.summaryStats) {
+					r += `[${child.skill.entertainment}] `;
+				}
+			}
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_prestige(child) {
+		if (child.prestige > 0) {
+			r += `<span class="green">`;
+			if (child.prestige > 2) {
+				r += `Prest++`;
+			} else if (child.prestige === 2) {
+				r += `Prest+`;
+			} else if (child.prestige === 1) {
+				r += `Prest`;
+			}
+			r += `</span> `;
+		}
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_porn_prestige(child) {
+		if (child.pornPrestige > 0) {
+			r += `<span class="green">`;
+			if (child.pornPrestige > 2) {
+				r += `PPrest++`;
+			} else if (child.pornPrestige === 2) {
+				r += `PPrest+`;
+			} else if (child.pornPrestige === 1) {
+				r += `PPrest`;
+			}
+			r += `</span> `;
+		}
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_intelligence(child) {
+		const intelligence = child.intelligence + child.intelligenceImplant;
+		if (child.fetish === "mindbroken") {
+			return;
+		} else if (child.intelligenceImplant >= 30) {
+			if (intelligence >= 130) {
+				r += `<span class="deepskyblue">Genius${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.</span>`;
+			} else if (intelligence > 95) {
+				r += `<span class="deepskyblue">Brilliant, well educated${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.</span>`;
+			} else if (intelligence > 50) {
+				r += `<span class="deepskyblue">Very smart, well educated${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.</span>`;
+			} else if (intelligence > 15) {
+				r += `<span class="deepskyblue">Smart, well educated${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.</span>`;
+			} else if (intelligence >= -15) {
+				r += `Average intelligence, well educated${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.`;
+			} else if (intelligence >= -50) {
+				r += `<span class="orangered">Slow, well educated${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.</span>`;
+			} else if (intelligence >= -95) {
+				r += `<span class="orangered">Very slow, well educated${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.</span>`;
+			} else {
+				r += `<span class="orangered">Moronic, well educated${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.</span>`;
+			}
+		} else if (child.intelligenceImplant >= 15) {
+			if (intelligence > 95) {
+				r += `<span class="deepskyblue">Brilliant, educated${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.</span>`;
+			} else if (intelligence > 50) {
+				r += `<span class="deepskyblue">Very smart, educated${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.</span>`;
+			} else if (intelligence > 15) {
+				r += `<span class="deepskyblue">Smart, educated${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.</span>`;
+			} else if (intelligence >= -15) {
+				r += `Average intelligence, educated${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.`;
+			} else if (intelligence >= -50) {
+				r += `<span class="orangered">Slow, educated${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.</span>`;
+			} else if (intelligence >= -95) {
+				r += `<span class="orangered">Very slow, educated${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.</span>`;
+			} else {
+				r += `<span class="orangered">Moronic, educated${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.</span>`;
+			}
+		} else {
+			if (intelligence > 95) {
+				r += `<span class="deepskyblue">Brilliant${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.</span>`;
+			} else if (intelligence > 50) {
+				r += `<span class="deepskyblue">Very smart${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.</span>`;
+			} else if (intelligence > 15) {
+				r += `<span class="deepskyblue">Smart${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.</span>`;
+			} else if (intelligence >= -15) {
+				r += `Average intelligence${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.`;
+			} else if (intelligence >= -50) {
+				r += `<span class="orangered">Slow${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.</span>`;
+			} else if (intelligence >= -95) {
+				r += `<span class="orangered">Very slow${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.</span>`;
+			} else {
+				r += `<span class="orangered">Moronic${V.summaryStats ? `[${child.intelligence+child.intelligenceImplant}]` : ''}.</span>`;
+			}
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_sex_skills(child) {
+		let _SSkills = (child.skill.anal + child.skill.oral);
+		r += `<span class="aquamarine">`;
+		if (((_SSkills + child.skill.whoring + child.skill.entertainment) >= 400) && ((child.vagina < 0) || (child.skill.vaginal >= 100))) {
+			r += `Masterful Child. `;
+		} else {
+			_SSkills += child.skill.vaginal;
+			if (_SSkills > 180) {
+				r += `Sex master${V.summaryStats? `[${Math.trunc(_SSkills)}]`: ''}.`;
+			} else if ((_SSkills > 120) && (child.vagina < 0)) {
+				r += `Masterful shemale${V.summaryStats? `[${Math.trunc(_SSkills)}]`: ''}.`;
+			} else if (_SSkills > 90) {
+				r += `Sexual expert${V.summaryStats? `[${Math.trunc(_SSkills)}]`: ''}.`;
+			} else if (_SSkills > 30) {
+				r += `Sexually skilled${V.summaryStats? `[${Math.trunc(_SSkills)}]` : ''}.`;
+			} else {
+				r += `Sexually unskilled${V.summaryStats? `[${Math.trunc(_SSkills)}]` : ''}.`;
+			}
+			r += " ";
+			if (child.skill.whoring >= 100) {
+				r += `Masterful whore${V.summaryStats? `[${child.skill.whoring}]`: ''}.`;
+			} else if (child.skill.whoring >= 60) {
+				r += `Expert whore${V.summaryStats? `[${child.skill.whoring}]`: ''}.`;
+			} else if (child.skill.whoring >= 30) {
+				r += `Skilled whore${V.summaryStats? `[${child.skill.whoring}]`: ''}.`;
+			} else if (child.skill.whoring >= 10) {
+				r += `Basic whore${V.summaryStats? `[${child.skill.whoring}]`: ''}.`;
+			}
+			r += " ";
+			if (child.skill.entertainment >= 100) {
+				r += `Masterful entertainer${V.summaryStats? `[${child.skill.entertainment}]`: ''}.`;
+			} else if (child.skill.entertainment >= 60) {
+				r += `Expert entertainer${V.summaryStats? `[${child.skill.entertainment}]`: ''}.`;
+			} else if (child.skill.entertainment >= 30) {
+				r += `Skilled entertainer${V.summaryStats? `[${child.skill.entertainment}]`: ''}.`;
+			} else if (child.skill.entertainment >= 10) {
+				r += `Basic entertainer${V.summaryStats? `[${child.skill.entertainment}]`: ''}.`;
+			}
+			r += " ";
+		}
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_prestige(child) {
+		if (child.prestige > 0) {
+			r += `<span class="green">`;
+			if (child.prestige > 2) {
+				r += `Extremely prestigious.`;
+			} else if (child.prestige === 2) {
+				r += `Very prestigious.`;
+			} else if (child.prestige === 1) {
+				r += `Prestigious.`;
+			}
+			r += `</span> `;
+		}
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_porn_prestige(child) {
+		if (child.pornPrestige > 0) {
+			r += `<span class="green">`;
+			if (child.pornPrestige > 2) {
+				r += `Porn star.`;
+			} else if (child.pornPrestige === 2) {
+				r += `Porn slut.`;
+			} else if (child.pornPrestige === 1) {
+				r += `Porn amateur.`;
+			}
+			r += `</span> `;
+		}
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_fetish(child) {
+		r += `<span class="lightcoral">`;
+		switch (child.fetish) {
+			case "submissive":
+				if (child.fetishStrength > 95) {
+					r += `Sub++`;
+				} else if (child.fetishStrength > 60) {
+					r += `Sub+`;
+				} else {
+					r += `Sub`;
+				}
+				break;
+			case "cumslut":
+				if (child.fetishStrength > 95) {
+					r += `Oral++`;
+				} else if (child.fetishStrength > 60) {
+					r += `Oral+`;
+				} else {
+					r += `Oral`;
+				}
+				break;
+			case "humiliation":
+				if (child.fetishStrength > 95) {
+					r += `Humil++`;
+				} else if (child.fetishStrength > 60) {
+					r += `Humil+`;
+				} else {
+					r += `Humil`;
+				}
+				break;
+			case "buttslut":
+				if (child.fetishStrength > 95) {
+					r += `Anal++`;
+				} else if (child.fetishStrength > 60) {
+					r += `Anal+`;
+				} else {
+					r += `Anal`;
+				}
+				break;
+			case "boobs":
+				if (child.fetishStrength > 95) {
+					r += `Boobs++`;
+				} else if (child.fetishStrength > 60) {
+					r += `Boobs+`;
+				} else {
+					r += `Boobs`;
+				}
+				break;
+			case "sadist":
+				if (child.fetishStrength > 95) {
+					r += `Sadist++`;
+				} else if (child.fetishStrength > 60) {
+					r += `Sadist+`;
+				} else {
+					r += `Sadist`;
+				}
+				break;
+			case "masochist":
+				if (child.fetishStrength > 95) {
+					r += `Pain++`;
+				} else if (child.fetishStrength > 60) {
+					r += `Pain+`;
+				} else {
+					r += `Pain`;
+				}
+				break;
+			case "dom":
+				if (child.fetishStrength > 95) {
+					r += `Dom++`;
+				} else if (child.fetishStrength > 60) {
+					r += `Dom+`;
+				} else {
+					r += `Dom`;
+				}
+				break;
+			case "pregnancy":
+				if (child.fetishStrength > 95) {
+					r += `Preg++`;
+				} else if (child.fetishStrength > 60) {
+					r += `Preg+`;
+				} else {
+					r += `Preg`;
+				}
+				break;
+			default:
+				r += `Vanilla`;
+				break;
+		}
+		if (V.summaryStats) {
+			r += `[${child.fetishStrength}]`;
+		}
+		r += `</span> `;
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_attraction(child) {
+		if (child.attrXY <= 5) {
+			r += `<span class="red">XY---${V.summaryStats? `[${child.attrXY}]`: ''}</span>`;
+		} else if (child.attrXY <= 15) {
+			r += `<span class="red">XY--${V.summaryStats? `[${child.attrXY}]`: ''}</span>`;
+		} else if (child.attrXY <= 35) {
+			r += `<span class="red">XY-${V.summaryStats? `[${child.attrXY}]`: ''}</span>`;
+		} else if (child.attrXY <= 65) {
+			r += `XY${V.summaryStats? `[${child.attrXY}]`: ''}`;
+		} else if (child.attrXY <= 85) {
+			r += `<span class="green">XY+${V.summaryStats? `[${child.attrXY}]`: ''}</span>`;
+		} else if (child.attrXY <= 95) {
+			r += `<span class="green">XY++${V.summaryStats? `[${child.attrXY}]`: ''}</span>`;
+		} else if (child.attrXX > 95) {
+			if (child.energy <= 95) {
+				r += `<span class="green">Omni!</span>`;
+			} else {
+				r += `<span class="green">Omni+Nympho!!</span>`;
+			}
+		} else {
+			r += `<span class="green">XY+++${V.summaryStats? `[${child.attrXY}]`: ''}</span>`;
+		}
+		r += " ";
+		if (child.attrXX <= 5) {
+			r += `<span class="red">XX---${V.summaryStats? `[${child.attrXX}]`: ''}</span>`;
+		} else if (child.attrXX <= 15) {
+			r += `<span class="red">XX--${V.summaryStats? `[${child.attrXX}]`: ''}</span>`;
+		} else if (child.attrXX <= 35) {
+			r += `<span class="red">XX-${V.summaryStats? `[${child.attrXX}]`: ''}</span>`;
+		} else if (child.attrXX <= 65) {
+			r += `XX${V.summaryStats? `[${child.attrXX}]`: ''}`;
+		} else if (child.attrXX <= 85) {
+			r += `<span class="green">XX+${V.summaryStats? `[${child.attrXX}]`: ''}</span>`;
+		} else if (child.attrXX <= 95) {
+			r += `<span class="green">XX++${V.summaryStats? `[${child.attrXX}]`: ''}</span>`;
+		} else if (child.attrXY <= 95) {
+			r += `<span class="green">XX+++${V.summaryStats? `[${child.attrXX}]`: ''}</span>`;
+		}
+		r += " ";
+		if (child.energy > 95) {
+			if ((child.attrXY <= 95) || (child.attrXX <= 95)) {
+				r += `<span class="green">Nympho!</span>`;
+			}
+		} else if (child.energy > 80) {
+			r += `<span class="green">SD++${V.summaryStats? `[${child.energy}]`: ''}</span>`;
+		} else if (child.energy > 60) {
+			r += `<span class="green">SD+${V.summaryStats? `[${child.energy}]`: ''}</span>`;
+		} else if (child.energy > 40) {
+			r += `<span class="yellow">SD${V.summaryStats? `[${child.energy}]`: ''}</span>`;
+		} else if (child.energy > 20) {
+			r += `<span class="red">SD-${V.summaryStats? `[${child.energy}]`: ''}</span>`;
+		} else {
+			r += `<span class="red">SD--${V.summaryStats? `[${child.energy}]`: ''}</span>`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_smart_fetish(child) {
+		if (child.fetishKnown === 1) {
+			if (child.clitSetting === "off") {
+				r += `SP-`;
+			} else if (((child.fetish !== "submissive") || (child.fetishStrength <= 95)) && (child.clitSetting === "submissive")) {
+				r += `SP:sub`;
+			} else if (((child.fetish !== "cumslut") || (child.fetishStrength <= 95)) && (child.clitSetting === "oral")) {
+				r += `SP:oral`;
+			} else if (((child.fetish !== "humiliation") || (child.fetishStrength <= 95)) && (child.clitSetting === "humiliation")) {
+				r += `SP:humil`;
+			} else if (((child.fetish !== "buttslut") || (child.fetishStrength <= 95)) && (child.clitSetting === "anal")) {
+				r += `SP:anal`;
+			} else if (((child.fetish !== "boobs") || (child.fetishStrength <= 95)) && (child.clitSetting === "boobs")) {
+				r += `SP:boobs`;
+			} else if (((child.fetish !== "sadist") || (child.fetishStrength <= 95)) && (child.clitSetting === "sadist")) {
+				r += `SP:sade`;
+			} else if (((child.fetish !== "masochist") || (child.fetishStrength <= 95)) && (child.clitSetting === "masochist")) {
+				r += `SP:pain`;
+			} else if (((child.fetish !== "dom") || (child.fetishStrength <= 95)) && (child.clitSetting === "dom")) {
+				r += `SP:dom`;
+			} else if (((child.fetish !== "pregnancy") || (child.fetishStrength <= 95)) && (child.clitSetting === "pregnancy")) {
+				r += `SP:preg`;
+			} else if (((child.fetish !== "none") && (child.clitSetting === "vanilla"))) {
+				r += `SP:vanilla`;
+			} else if ((child.energy <= 95) && (child.clitSetting === "all")) {
+				r += `SP:all`;
+			} else if ((child.energy > 5) && (child.clitSetting === "none")) {
+				r += `SP:none`;
+			} else if (!["women", "men", "anti-women", "anti-men"].includes(child.clitSetting)) {
+				r += `SP:monitoring`;
+			}
+		} else {
+			switch (child.clitSetting) {
+				case "off":
+					r += `SP-`;
+					break;
+				case "submissive":
+					r += `SP:sub`;
+					break;
+				case "lesbian":
+					r += `SP:les`;
+					break;
+				case "oral":
+					r += `SP:oral`;
+					break;
+				case "humiliation":
+					r += `SP:humil`;
+					break;
+				case "anal":
+					r += `SP:anal`;
+					break;
+				case "boobs":
+					r += `SP:boobs`;
+					break;
+				case "sadist":
+					r += `SP:sade`;
+					break;
+				case "masochist":
+					r += `SP:pain`;
+					break;
+				case "dom":
+					r += `SP:dom`;
+					break;
+				case "pregnancy":
+					r += `SP:pregnancy`;
+					break;
+				case "vanilla":
+					r += `SP:vanilla`;
+					break;
+				case "all":
+					r += `SP:all`;
+					break;
+				case "none":
+					r += `SP:none`;
+					break;
+			}
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_smart_attraction(child) {
+		if (child.attrKnown === 1) {
+			if (child.clitSetting === "women") {
+				if (child.attrXX < 95) {
+					r += `SP:women`;
+				} else {
+					r += `SP:monitoring`;
+				}
+			} else if (child.clitSetting === "men") {
+				if (child.attrXY < 95) {
+					r += `SP:men`;
+				} else {
+					r += `SP:monitoring`;
+				}
+			} else if (child.clitSetting === "anti-women") {
+				if (child.attrXX > 0) {
+					r += `SP:anti-women`;
+				} else {
+					r += `SP:monitoring`;
+				}
+			} else if (child.clitSetting === "anti-men") {
+				if (child.attrXY > 0) {
+					r += `SP:anti-men`;
+				} else {
+					r += `SP:monitoring`;
+				}
+			}
+		} else {
+			if (child.clitSetting === "women") {
+				r += `SP:women`;
+			} else if (child.clitSetting === "men") {
+				r += `SP:men`;
+			} else if (child.clitSetting === "anti-women") {
+				r += `SP:anti-women`;
+			} else if (child.clitSetting === "anti-men") {
+				r += `SP:anti-men`;
+			}
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_behavior_flaw(child) {
+		r += `<span class="red">`;
+		switch (child.behavioralFlaw) {
+			case "arrogant":
+				r += `Arrog`;
+				break;
+			case "bitchy":
+				r += `Bitchy`;
+				break;
+			case "odd":
+				r += `Odd`;
+				break;
+			case "hates men":
+				r += `Men-`;
+				break;
+			case "hates women":
+				r += `Women-`;
+				break;
+			case "gluttonous":
+				r += `Glut`;
+				break;
+			case "anorexic":
+				r += `Ano`;
+				break;
+			case "devout":
+				r += `Dev`;
+				break;
+			case "liberated":
+				r += `Lib`;
+				break;
+			default:
+				child.behavioralFlaw = "none";
+				break;
+		}
+		r += `</span> `;
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_sex_flaw(child) {
+		switch (child.sexualFlaw) {
+			case "hates oral":
+				r += `<span class="red">Oral-</span>`;
+				break;
+			case "hates anal":
+				r += `<span class="red">Anal-</span>`;
+				break;
+			case "hates penetration":
+				r += `<span class="red">Fuck-</span>`;
+				break;
+			case "shamefast":
+				r += `<span class="red">Shame</span>`;
+				break;
+			case "idealistic":
+				r += `<span class="red">Ideal</span>`;
+				break;
+			case "repressed":
+				r += `<span class="red">Repre</span>`;
+				break;
+			case "apathetic":
+				r += `<span class="red">Apath</span>`;
+				break;
+			case "crude":
+				r += `<span class="red">Crude</span>`;
+				break;
+			case "judgemental":
+				r += `<span class="red">Judge</span>`;
+				break;
+			case "cum addict":
+				r += `<span class="yellow">CumAdd</span>`;
+				break;
+			case "anal addict":
+				r += `<span class="yellow">AnalAdd</span>`;
+				break;
+			case "attention whore":
+				r += `<span class="yellow">Attention</span>`;
+				break;
+			case "breast growth":
+				r += `<span class="yellow">BoobObsess</span>`;
+				break;
+			case "abusive":
+				r += `<span class="yellow">Abusive</span>`;
+				break;
+			case "malicious":
+				r += `<span class="yellow">Malice</span>`;
+				break;
+			case "self hating":
+				r += `<span class="yellow">SelfHatr</span>`;
+				break;
+			case "neglectful":
+				r += `<span class="yellow">SelfNeglect</span>`;
+				break;
+			case "breeder":
+				r += `<span class="yellow">BreedObsess</span>`;
+				break;
+			default:
+				child.sexualFlaw = "none";
+				break;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_behavior_quirk(child) {
+		r += `<span class="green">`;
+		switch (child.behavioralQuirk) {
+			case "confident":
+				r += `Confid`;
+				break;
+			case "cutting":
+				r += `Cutting`;
+				break;
+			case "funny":
+				r += `Funny`;
+				break;
+			case "fitness":
+				r += `Fit`;
+				break;
+			case "adores women":
+				r += `Women+`;
+				break;
+			case "adores men":
+				r += `Men+`;
+				break;
+			case "insecure":
+				r += `Insec`;
+				break;
+			case "sinful":
+				r += `Sinf`;
+				break;
+			case "advocate":
+				r += `Advoc`;
+				break;
+			default:
+				child.behavioralQuirk = "none";
+				break;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function short_sex_quirk(child) {
+		switch (child.sexualQuirk) {
+			case "gagfuck queen":
+				r += `Gagfuck`;
+				break;
+			case "painal queen":
+				r += `Painal`;
+				break;
+			case "strugglefuck queen":
+				r += `Struggle`;
+				break;
+			case "tease":
+				r += `Tease`;
+				break;
+			case "romantic":
+				r += `Romantic`;
+				break;
+			case "perverted":
+				r += `Perverted`;
+				break;
+			case "caring":
+				r += `Caring`;
+				break;
+			case "unflinching":
+				r += `Unflinch`;
+				break;
+			case "size queen":
+				r += `SizeQ`;
+				break;
+			default:
+				child.sexualQuirk = "none";
+				break;
+		}
+		r += `</span> `;
+	}
+
+	/**
+	 * @param {App.EntChildState} child
+	 */
+	function long_fetish(child) {
+		r += `<span class="lightcoral">`;
+		switch (child.fetish) {
+			case "submissive":
+				if (child.fetishStrength > 95) {
+					r += `Complete submissive${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				} else if (child.fetishStrength > 60) {
+					r += `Submissive${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				} else {
+					r += `Submissive tendencies${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				}
+				break;
+			case "cumslut":
+				if (child.fetishStrength > 95) {
+					r += `Cumslut${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				} else if (child.fetishStrength > 60) {
+					r += `Oral fixation${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				} else {
+					r += `Prefers oral${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				}
+				break;
+			case "humiliation":
+				if (child.fetishStrength > 95) {
+					r += `Humiliation slut${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				} else if (child.fetishStrength > 60) {
+					r += `Exhibitionist${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				} else {
+					r += `Interest in humiliation${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				}
+				break;
+			case "buttslut":
+				if (child.fetishStrength > 95) {
+					r += `Buttslut${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				} else if (child.fetishStrength > 60) {
+					r += `Anal fixation${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				} else {
+					r += `Prefers anal${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				}
+				break;
+			case "boobs":
+				if (child.fetishStrength > 95) {
+					r += `Boobslut${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				} else if (child.fetishStrength > 60) {
+					r += `Breast fixation${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				} else {
+					r += `Loves boobs${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				}
+				break;
+			case "sadist":
+				if (child.fetishStrength > 95) {
+					r += `Complete sadist${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				} else if (child.fetishStrength > 60) {
+					r += `Sadist${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				} else {
+					r += `Sadistic tendencies${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				}
+				break;
+			case "masochist":
+				if (child.fetishStrength > 95) {
+					r += `Complete masochist${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				} else if (child.fetishStrength > 60) {
+					r += `Masochist${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				} else {
+					r += `Masochistic tendencies${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				}
+				break;
+			case "dom":
+				if (child.fetishStrength > 95) {
+					r += `Complete dom${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				} else if (child.fetishStrength > 60) {
+					r += `Dominant${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				} else {
+					r += `Dominant tendencies${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				}
+				break;
+			case "pregnancy":
+				if (child.fetishStrength > 95) {
+					r += `Pregnancy fetish${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				} else if (child.fetishStrength > 60) {
+					r += `Pregnancy kink${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				} else {
+					r += `Interest in impregnation${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				}
+				break;
+			default:
+				r += `Sexually vanilla${V.summaryStats? `[${child.fetishStrength}]` : ''}.`;
+				break;
+		}
+		r += `</span> `;
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function long_attraction(child) {
+		if (child.attrXY <= 5) {
+			r += `<span class="red">Disgusted by men${V.summaryStats? `[${child.attrXY}]` : ''},</span> `;
+		} else if (child.attrXY <= 15) {
+			r += `<span class="red">Turned off by men${V.summaryStats? `[${child.attrXY}]` : ''},</span> `;
+		} else if (child.attrXY <= 35) {
+			r += `<span class="red">Not attracted to men${V.summaryStats? `[${child.attrXY}]` : ''},</span> `;
+		} else if (child.attrXY <= 65) {
+			r += `Indifferent to men${V.summaryStats? `[${child.attrXY}]` : ''}, `;
+		} else if (child.attrXY <= 85) {
+			r += `<span class="green">Attracted to men${V.summaryStats? `[${child.attrXY}]` : ''},</span> `;
+		} else if (child.attrXY <= 95) {
+			r += `<span class="green">Aroused by men${V.summaryStats? `[${child.attrXY}]` : ''},</span> `;
+		} else if (child.attrXX > 95) {
+			if (child.energy <= 95) {
+				r += `<span class="green">Omnisexual!</span> `;
+			} else {
+				r += `<span class="green">Omnisexual nymphomaniac!</span> `;
+			}
+		} else {
+			r += `<span class="green">Passionate about men${V.summaryStats? `[${child.attrXY}]` : ''},</span> `;
+		}
+		if (child.attrXX <= 5) {
+			r += `<span class="red">disgusted by women${V.summaryStats? `[${child.attrXX}]` : ''}.</span> `;
+		} else if (child.attrXX <= 15) {
+			r += `<span class="red">turned off by women${V.summaryStats? `[${child.attrXX}]` : ''}.</span> `;
+		} else if (child.attrXX <= 35) {
+			r += `<span class="red">not attracted to women${V.summaryStats? `[${child.attrXX}]` : ''}.</span> `;
+		} else if (child.attrXX <= 65) {
+			r += `indifferent to women${V.summaryStats? `[${child.attrXX}]` : ''}. `;
+		} else if (child.attrXX <= 85) {
+			r += `<span class="green">attracted to women${V.summaryStats? `[${child.attrXX}]` : ''}.</span> `;
+		} else if (child.attrXX <= 95) {
+			r += `<span class="green">aroused by women${V.summaryStats? `[${child.attrXX}]` : ''}.</span> `;
+		} else if (child.attrXY <= 95) {
+			r += `<span class="green">passionate about women${V.summaryStats? `[${child.attrXX}]` : ''}.</span> `;
+		}
+		if (child.energy > 95) {
+			if ((child.attrXY <= 95) || (child.attrXX <= 95)) {
+				r += `<span class="green">Nymphomaniac!</span>`;
+			}
+		} else if (child.energy > 80) {
+			r += `<span class="green">Powerful sex drive${V.summaryStats? `[${child.energy}]` : ''}.</span>`;
+		} else if (child.energy > 60) {
+			r += `<span class="green">Good sex drive${V.summaryStats? `[${child.energy}]` : ''}.</span>`;
+		} else if (child.energy > 40) {
+			r += `<span class="yellow">Average sex drive${V.summaryStats? `[${child.energy}]` : ''}.</span>`;
+		} else if (child.energy > 20) {
+			r += `<span class="red">Poor sex drive${V.summaryStats? `[${child.energy}]` : ''}.</span>`;
+		} else {
+			r += `<span class="red">No sex drive${V.summaryStats? `[${child.energy}]` : ''}.</span>`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function long_smart_fetish(child) {
+		if (child.fetishKnown === 1) {
+			if (child.clitSetting === "off") {
+				r += `SP off.`;
+			} else if (((child.fetish !== "submissive") || (child.fetishStrength <= 95)) && (child.clitSetting === "submissive")) {
+				r += `SP: submissive.`;
+			} else if (((child.fetish !== "cumslut") || (child.fetishStrength <= 95)) && (child.clitSetting === "oral")) {
+				r += `SP: oral.`;
+			} else if (((child.fetish !== "humiliation") || (child.fetishStrength <= 95)) && (child.clitSetting === "humiliation")) {
+				r += `SP: humiliation.`;
+			} else if (((child.fetish !== "buttslut") || (child.fetishStrength <= 95)) && (child.clitSetting === "anal")) {
+				r += `SP: anal.`;
+			} else if (((child.fetish !== "boobs") || (child.fetishStrength <= 95)) && (child.clitSetting === "boobs")) {
+				r += `SP: breasts.`;
+			} else if (((child.fetish !== "sadist") || (child.fetishStrength <= 95)) && (child.clitSetting === "sadist")) {
+				r += `SP: sadism.`;
+			} else if (((child.fetish !== "masochist") || (child.fetishStrength <= 95)) && (child.clitSetting === "masochist")) {
+				r += `SP: masochism.`;
+			} else if (((child.fetish !== "dom") || (child.fetishStrength <= 95)) && (child.clitSetting === "dom")) {
+				r += `SP: dominance.`;
+			} else if (((child.fetish !== "pregnancy") || (child.fetishStrength <= 95)) && (child.clitSetting === "pregnancy")) {
+				r += `SP: pregnancy.`;
+			} else if ((child.fetish !== "none") && (child.clitSetting === "vanilla")) {
+				r += `SP: vanilla.`;
+			} else if ((child.energy <= 95) && (child.clitSetting === "all")) {
+				r += `SP: all.`;
+			} else if ((child.energy > 5) && (child.clitSetting === "none")) {
+				r += `SP: none.`;
+			} else if (!["women", "men", "anti-women", "anti-men"].includes(child.clitSetting)) {
+				r += `SP: monitoring.`;
+			}
+		} else {
+			switch (child.clitSetting) {
+				case "off":
+					r += `SP off.`;
+					break;
+				case "submissive":
+					r += `SP: submissive.`;
+					break;
+				case "oral":
+					r += `SP: oral.`;
+					break;
+				case "humiliation":
+					r += `SP: humiliation.`;
+					break;
+				case "anal":
+					r += `SP: anal.`;
+					break;
+				case "boobs":
+					r += `SP: breasts.`;
+					break;
+				case "sadist":
+					r += `SP: sadism.`;
+					break;
+				case "masochist":
+					r += `SP: masochism.`;
+					break;
+				case "dom":
+					r += `SP: dominance.`;
+					break;
+				case "pregnancy":
+					r += `SP: pregnancy.`;
+					break;
+				case "vanilla":
+					r += `SP: vanilla.`;
+					break;
+				case "all":
+					r += `SP: all.`;
+					break;
+				case "none":
+					r += `SP: none.`;
+					break;
+			}
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function long_smart_attraction(child) {
+		if (child.attrKnown === 1) {
+			if ((child.attrXX < 100) && (child.clitSetting === "women")) {
+				r += `SP: women.`;
+			} else if ((child.attrXY < 100) && (child.clitSetting === "men")) {
+				r += `SP: men.`;
+			}
+		} else {
+			if (child.clitSetting === "women") {
+				r += `SP: women.`;
+			} else if (child.clitSetting === "men") {
+				r += `SP: men.`;
+			}
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function long_behavior_flaw(child) {
+		r += `<span class="red">`;
+		switch (child.behavioralFlaw) {
+			case "arrogant":
+				r += `Arrogant.`;
+				break;
+			case "bitchy":
+				r += `Bitchy.`;
+				break;
+			case "odd":
+				r += `Odd.`;
+				break;
+			case "hates men":
+				r += `Hates men.`;
+				break;
+			case "hates women":
+				r += `Hates women.`;
+				break;
+			case "gluttonous":
+				r += `Stress eater.`;
+				break;
+			case "anorexic":
+				r += `Anorexic.`;
+				break;
+			case "devout":
+				r += `Devoutly religious.`;
+				break;
+			case "liberated":
+				r += `Mentally liberated.`;
+				break;
+			default:
+				child.behavioralFlaw = "none";
+				break;
+		}
+		r += `</span> `;
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function long_sex_flaw(child) {
+		switch (child.sexualFlaw) {
+			case "hates oral":
+				r += `<span class="red">Hates oral.</span>`;
+				break;
+			case "hates anal":
+				r += `<span class="red">Hates anal.</span>`;
+				break;
+			case "hates penetration":
+				r += `<span class="red">Hates penetration.</span>`;
+				break;
+			case "shamefast":
+				r += `<span class="red">Shamefast.</span>`;
+				break;
+			case "idealistic":
+				r += `<span class="red">Sexually idealistic.</span>`;
+				break;
+			case "repressed":
+				r += `<span class="red">Sexually repressed.</span>`;
+				break;
+			case "apathetic":
+				r += `<span class="red">Sexually apathetic.</span>`;
+				break;
+			case "crude":
+				r += `<span class="red">Sexually crude.</span>`;
+				break;
+			case "judgemental":
+				r += `<span class="red">Sexually judgemental.</span>`;
+				break;
+			case "cum addict":
+				r += `<span class="yellow">Cum addict.</span>`;
+				break;
+			case "anal addict":
+				r += `<span class="yellow">Anal addict.</span>`;
+				break;
+			case "attention whore":
+				r += `<span class="yellow">Attention whore.</span>`;
+				break;
+			case "breast growth":
+				r += `<span class="yellow">Breast obsession.</span>`;
+				break;
+			case "abusive":
+				r += `<span class="yellow">Sexually abusive.</span>`;
+				break;
+			case "malicious":
+				r += `<span class="yellow">Sexually malicious.</span>`;
+				break;
+			case "self hating":
+				r += `<span class="yellow">Self hatred.</span>`;
+				break;
+			case "neglectful":
+				r += `<span class="yellow">Self neglectful.</span>`;
+				break;
+			case "breeder":
+				r += `<span class="yellow">Breeding obsession.</span>`;
+				break;
+			default:
+				child.sexualFlaw = "none";
+				break;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function long_behavior_quirk(child) {
+		r += `<span class="green">`;
+		switch (child.behavioralQuirk) {
+			case "confident":
+				r += `Confident.`;
+				break;
+			case "cutting":
+				r += `Cutting.`;
+				break;
+			case "funny":
+				r += `Funny.`;
+				break;
+			case "fitness":
+				r += `Fitness.`;
+				break;
+			case "adores women":
+				r += `Adores women.`;
+				break;
+			case "adores men":
+				r += `Adores men.`;
+				break;
+			case "insecure":
+				r += `Insecure.`;
+				break;
+			case "sinful":
+				r += `Sinful.`;
+				break;
+			case "advocate":
+				r += `Advocate.`;
+				break;
+			default:
+				child.behavioralQuirk = "none";
+				break;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function long_sex_quirk(child) {
+		switch (child.sexualQuirk) {
+			case "gagfuck queen":
+				r += `Gagfuck queen.`;
+				break;
+			case "painal queen":
+				r += `Painal queen.`;
+				break;
+			case "strugglefuck queen":
+				r += `Strugglefuck queen.`;
+				break;
+			case "tease":
+				r += `Tease.`;
+				break;
+			case "romantic":
+				r += `Romantic.`;
+				break;
+			case "perverted":
+				r += `Perverted.`;
+				break;
+			case "caring":
+				r += `Caring.`;
+				break;
+			case "unflinching":
+				r += `Unflinching.`;
+				break;
+			case "size queen":
+				r += `Size queen.`;
+				break;
+			default:
+				child.sexualQuirk = "none";
+				break;
+		}
+		r += `</span> `;
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function short_extended_family(child) {
+		let handled = 0;
+		if (child.mother > 0) {
+			const _ssj = V.childs.findIndex(function(s) {
+				return s.ID === child.mother;
+			});
+			if (_ssj !== -1) {
+				r += `${SlaveFullName(V.childs[_ssj])}'s daughter`;
+				if (child.relationshipTarget === V.childs[_ssj].ID) {
+					const friendShipShort = relationshipTermShort(child);
+					r += ` & ${friendShipShort}`;
+					handled = 1;
+				}
+			}
+			r += " ";
+		} else if (child.mother === -1) {
+			r += `Your daughter`;
+			if (child.relationship === -3) {
+				r += ` & wife`;
+				handled = 1;
+			} else if (child.relationship === -2) {
+				r += ` & lover`;
+				handled = 1;
+			}
+			r += " ";
+		} else if (child.mother in V.missingTable && V.showMissingSlavesSD && V.showMissingSlaves) {
+			r += `${V.missingTable[child.mother].fullName}'s daughter `;
+		}
+		if (child.father > 0 && child.father !== child.mother) {
+			const _ssj = V.childs.findIndex(function(s) {
+				return s.ID === child.father;
+			});
+			if (_ssj !== -1) {
+				r += `${SlaveFullName(V.childs[_ssj])}'s daughter`;
+				if (child.relationshipTarget === V.childs[_ssj].ID && handled !== 1) {
+					const friendShipShort = relationshipTermShort(child);
+					r += ` & ${friendShipShort}`;
+					handled = 1;
+				}
+			}
+			r += " ";
+		} else if (child.father === -1 && child.mother !== -1) {
+			r += `Your daughter`;
+			if (child.relationship === -3) {
+				r += ` & wife`;
+				handled = 1;
+			} else if (child.relationship === -2) {
+				r += ` & lover`;
+				handled = 1;
+			}
+			r += " ";
+		} else if (child.father in V.missingTable && child.father !== child.mother && V.showMissingSlavesSD && V.showMissingSlaves) {
+			r += `${V.missingTable[child.father].fullName}'s daughter`;
+		}
+		if (child.daughters === 1) {
+			let _ssj = V.childs.findIndex(function(s) {
+				return s.mother === child.ID;
+			});
+			if (_ssj !== -1) {
+				r += `${SlaveFullName(V.childs[_ssj])}'s mother`;
+				if (child.relationshipTarget === V.childs[_ssj].ID) {
+					const friendShipShort = relationshipTermShort(child);
+					r += ` & ${friendShipShort}`;
+					handled = 1;
+				}
+			}
+			r += " ";
+			_ssj = V.childs.findIndex(function(s) {
+				return s.father === child.ID;
+			});
+			if (_ssj !== -1) {
+				r += `${SlaveFullName(V.childs[_ssj])}'s father`;
+				if (child.relationshipTarget === V.childs[_ssj].ID && handled !== 1) {
+					const friendShipShort = relationshipTermShort(child);
+					r += ` & ${friendShipShort}`;
+					handled = 1;
+				}
+			}
+			r += " ";
+		} else if (child.daughters > 1) {
+			r += `multiple daughters `;
+		}
+		if (child.sisters === 1) {
+			const _ssj = V.childs.findIndex(function(s) {
+				return areSisters(s, child) > 0;
+			});
+			if (_ssj !== -1) {
+				r += `${SlaveFullName(V.childs[_ssj])}'s sister`;
+				if (child.relationshipTarget === V.childs[_ssj].ID) {
+					const friendShipShort = relationshipTermShort(child);
+					r += `& ${friendShipShort}`;
+					handled = 1;
+				}
+			}
+			r += " ";
+		} else if (child.sisters > 1) {
+			r += `multiple sisters `;
+		}
+		if (child.relationship > 0 && handled !== 1) {
+			const _ssj = V.childs.findIndex(function(s) {
+				return s.ID === child.relationshipTarget;
+			});
+			if (_ssj !== -1) {
+				r += `${SlaveFullName(V.childs[_ssj])}'s`;
+				const friendShipShort = relationshipTermShort(child);
+				r += ` ${friendShipShort}`;
+			}
+		} else if (child.relationship === -3 && child.mother !== -1 && child.father !== -1) {
+			r += `Your wife`;
+		} else if (child.relationship === -2) {
+			r += `E Bonded`;
+		} else if (child.relationship === -1) {
+			r += `E Slut`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function short_legacy_family(child) {
+		if (child.relation !== 0) {
+			const _ssj = V.childs.findIndex(function(s) {
+				return s.ID === child.relationTarget;
+			});
+			if (_ssj !== -1) {
+				r += `${SlaveFullName(V.childs[_ssj])}'s ${child.relation}`;
+			}
+		}
+		if (child.relationship > 0) {
+			const _ssj = V.childs.findIndex(function(s) {
+				return s.ID === child.relationshipTarget;
+			});
+			if (_ssj !== -1) {
+				const friendship = relationshipTerm(child);
+				if (child.relationshipTarget !== child.relationTarget) {
+					r += `${SlaveFullName(V.childs[_ssj])}'s`;
+				} else {
+					r += ` &`;
+				}
+				r += ` ${friendship}`;
+			}
+		} else if (child.relationship === -3) {
+			r += `Your wife`;
+		} else if (child.relationship === -2) {
+			r += `E Bonded`;
+		} else if (child.relationship === -1) {
+			r += `E Slut`;
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function short_clone(child) {
+		if (child.clone !== 0) {
+			r += ` Clone`;
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function short_rival(child) {
+		if (child.rivalry !== 0) {
+			r += `&nbsp;&nbsp;&nbsp;&nbsp;`;
+			const _ssj = V.childs.findIndex(function(s) {
+				return s.ID === child.rivalryTarget;
+			});
+			if (_ssj !== -1) {
+				r += `<span class="lightsalmon">`;
+				if (child.rivalry <= 1) {
+					r += `Disl ${SlaveFullName(V.childs[_ssj])}`;
+				} else if (child.rivalry <= 2) {
+					r += `${SlaveFullName(V.childs[_ssj])}'s rival`;
+				} else {
+					r += `Hates ${SlaveFullName(V.childs[_ssj])}`;
+				}
+				r += `</span> `;
+			}
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function long_extended_family(child) {
+		let handled = 0;
+		if (child.mother > 0) {
+			const _ssj = V.childs.findIndex(function(s) {
+				return s.ID === child.mother;
+			});
+			if (_ssj !== -1) {
+				r += `${SlaveFullName(V.childs[_ssj])}'s <span class="lightgreen">daughter`;
+				if (child.relationshipTarget === V.childs[_ssj].ID) {
+					const friendShipShort = relationshipTerm(child);
+					r += ` and ${friendShipShort}`;
+					handled = 1;
+				}
+				r += `.</span> `;
+			}
+		} else if (child.mother === -1) {
+			r += `Your `;
+			if (child.relationship === -3) {
+				r += `<span class="lightgreen">daughter and wife.</span> `;
+				handled = 1;
+			} else if (child.relationship === -2) {
+				r += `<span class="lightgreen">daughter and lover.</span> `;
+				handled = 1;
+			} else {
+				r += `<span class="lightgreen">daughter.</span> `;
+			}
+		} else if (child.mother in V.missingTable && V.showMissingSlavesSD && V.showMissingSlaves) {
+			r += `${V.missingTable[child.mother].fullName}'s <span class="lightgreen">daughter.</span> `;
+		}
+		if (child.father > 0 && child.father !== child.mother) {
+			const _ssj = V.childs.findIndex(function(s) {
+				return s.ID === child.father;
+			});
+			if (_ssj !== -1) {
+				r += `${SlaveFullName(V.childs[_ssj])}'s <span class="lightgreen">daughter`;
+				if (child.relationshipTarget === V.childs[_ssj].ID) {
+					const friendShipShort = relationshipTerm(child);
+					r += ` and ${friendShipShort}`;
+					handled = 1;
+				}
+				r += `.</span> `;
+			}
+		} else if (child.father === -1 && child.father !== child.mother) {
+			r += `Your `;
+			if (child.relationship === -3) {
+				r += `<span class="lightgreen">daughter and wife.</span> `;
+				handled = 1;
+			} else if (child.relationship === -2) {
+				r += `<span class="lightgreen">daughter and lover.</span> `;
+				handled = 1;
+			} else {
+				r += `<span class="lightgreen">daughter.</span> `;
+			}
+		} else if (child.father in V.missingTable && child.father !== child.mother && V.showMissingSlavesSD && V.showMissingSlaves) {
+			r += `${V.missingTable[child.father].fullName}'s <span class="lightgreen">daughter.</span> `;
+		}
+		if (child.daughters === 1) {
+			let _ssj = V.childs.findIndex(function(s) {
+				return s.mother === child.ID;
+			});
+			if (_ssj !== -1) {
+				r += `${SlaveFullName(V.childs[_ssj])}'s <span class="lightgreen">mother`;
+				if (child.relationshipTarget === V.childs[_ssj].ID) {
+					const friendShipShort = relationshipTerm(child);
+					r += ` and ${friendShipShort}`;
+					handled = 1;
+				}
+				r += `.</span> `;
+			}
+			_ssj = V.childs.findIndex(function(s) {
+				return s.father === child.ID;
+			});
+			if (_ssj !== -1) {
+				r += `${SlaveFullName(V.childs[_ssj])}'s <span class="lightgreen">father`;
+				if (child.relationshipTarget === V.childs[_ssj].ID) {
+					const friendShipShort = relationshipTerm(child);
+					r += ` and ${friendShipShort}`;
+					handled = 1;
+				}
+				r += `.</span> `;
+			}
+		} else if (child.daughters > 1) {
+			if (child.daughters > 10) {
+				r += `<span class="lightgreen">Has tons of daughters.</span> `;
+			} else if (child.daughters > 5) {
+				r += `<span class="lightgreen">Has many daughters.</span> `;
+			} else {
+				r += `<span class="lightgreen">Has several daughters.</span> `;
+			}
+		}
+		if (child.sisters === 1) {
+			const _ssj = V.childs.findIndex(function(s) {
+				return areSisters(s, child) > 0;
+			});
+			if (_ssj !== -1) {
+				r += `${SlaveFullName(V.childs[_ssj])}'s <span class="lightgreen">sister`;
+				if (child.relationshipTarget === V.childs[_ssj].ID) {
+					const friendShipShort = relationshipTerm(child);
+					r += ` and ${friendShipShort}`;
+					handled = 1;
+				}
+				r += `.</span> `;
+			}
+		} else if (child.sisters > 1) {
+			if (child.sisters > 10) {
+				r += `<span class="lightgreen">One of many sisters.</span> `;
+			} else if (child.sisters > 5) {
+				r += `<span class="lightgreen">Has many sisters.</span> `;
+			} else {
+				r += `<span class="lightgreen">Has several sisters.</span> `;
+			}
+		}
+		if (child.relationship > 0 && handled !== 1) {
+			const _ssj = V.childs.findIndex(function(s) {
+				return s.ID === child.relationshipTarget;
+			});
+			if (_ssj !== -1) {
+				const friendship = relationshipTerm(child);
+				r += `${SlaveFullName(V.childs[_ssj])}'s `;
+				r += `<span class="lightgreen">${friendship}.</span> `;
+			}
+		} else if (child.relationship === -3 && child.mother !== -1 && child.father !== -1) {
+			r += `<span class="lightgreen">Your wife.</span> `;
+		} else if (child.relationship === -2) {
+			r += `<span class="lightgreen">Emotionally bonded to you.</span> `;
+		} else if (child.relationship === -1) {
+			r += `<span class="lightgreen">Emotional slut.</span> `;
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function long_legacy_family(child) {
+		if (child.relation !== 0) {
+			const _ssj = V.childs.findIndex(function(s) {
+				return s.ID === child.relationTarget;
+			});
+			if (_ssj !== -1) {
+				r += `${SlaveFullName(V.childs[_ssj])}'s `;
+				if (child.relationshipTarget !== child.relationTarget) {
+					r += `<span class="lightgreen">${child.relation}.</span> `;
+				} else {
+					r += `<span class="lightgreen">${child.relation}</span> `;
+				}
+				if (child.relationship <= 0) {
+					r += `&nbsp;&nbsp;&nbsp;&nbsp;`;
+				}
+			}
+		}
+		if (child.relationship > 0) {
+			const _ssj = V.childs.findIndex(function(s) {
+				return s.ID === child.relationshipTarget;
+			});
+			if (_ssj !== -1) {
+				const friendship = relationshipTerm(child);
+				if (child.relationshipTarget !== child.relationTarget) {
+					r += `${SlaveFullName(V.childs[_ssj])}'s `;
+				} else {
+					r += ` and `;
+				}
+				r += `<span class="lightgreen">${friendship}.</span> `;
+			}
+		} else if (child.relationship === -3) {
+			r += `<span class="lightgreen">Your wife.</span> `;
+		} else if (child.relationship === -2) {
+			r += `<span class="lightgreen">Emotionally bonded to you.</span> `;
+		} else if (child.relationship === -1) {
+			r += `<span class="lightgreen">Emotional slut.</span> `;
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function long_clone(child) {
+		if (child.clone !== 0) {
+			r += ` <span class="skyblue">Clone of ${child.clone}.</span>`;
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function long_rival(child) {
+		if (child.rivalry !== 0) {
+			r += `&nbsp;&nbsp;&nbsp;&nbsp;`;
+			const _ssj = V.childs.findIndex(function(s) {
+				return s.ID === child.rivalryTarget;
+			});
+			if (_ssj !== -1) {
+				if (child.rivalry <= 1) {
+					r += `<span class="lightsalmon">Dislikes</span> ${SlaveFullName(V.childs[_ssj])}.`;
+				} else if (child.rivalry <= 2) {
+					r += `${SlaveFullName(V.childs[_ssj])}'s <span class="lightsalmon">rival.</span>`;
+				} else {
+					r += `<span class="lightsalmon">Hates</span> ${SlaveFullName(V.childs[_ssj])}.`;
+				}
+			}
+			r += " ";
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function long_clothes(child) {
+		switch (child.clothes) {
+			case "attractive lingerie":
+				r += `Nice lingerie.`;
+				break;
+			case "a succubus outfit":
+				r += `Succubus outfit.`;
+				break;
+			case "a string bikini":
+				r += `String bikini.`;
+				break;
+			case "a scalemail bikini":
+				r += `Scalemail bikini.`;
+				break;
+			case "striped panties":
+				r += `Striped panties.`;
+				break;
+			case "a monokini":
+				r += `Monokini.`;
+				break;
+			case "an apron":
+				r += `Apron.`;
+				break;
+			case "a cybersuit":
+				r += `Cybersuit.`;
+				break;
+			case "cutoffs and a t-shirt":
+				r += `Cutoffs, t-shirt.`;
+				break;
+			case "a slutty outfit":
+				r += `Slutty outfit.`;
+				break;
+			case "uncomfortable straps":
+				r += `Leather straps.`;
+				break;
+			case "a fallen nuns habit":
+				r += `Slutty habit.`;
+				break;
+			case "a chattel habit":
+				r += `Chattel habit.`;
+				break;
+			case "a penitent nuns habit":
+				r += `Cilice.`;
+				break;
+			case "slutty jewelry":
+				r += `Bangles.`;
+				break;
+			case "attractive lingerie for a pregnant woman":
+				r += `Preggo lingerie.`;
+				break;
+			case "a maternity dress":
+				r += `Maternity dress.`;
+				break;
+			case "stretch pants and a crop-top":
+				r += `Stretch pants, crop-top.`;
+				break;
+			case "harem gauze":
+				r += `Harem outfit.`;
+				break;
+			case "a child gown":
+				r += `Slave gown.`;
+				break;
+			case "a halter top dress":
+				r += `Halter top dress.`;
+				break;
+			case "a mini dress":
+				r += `Mini dress.`;
+				break;
+			case "a ball gown":
+				r += `Ball gown.`;
+				break;
+			case "slutty business attire":
+				r += `Slutty suit.`;
+				break;
+			case "nice business attire":
+				r += `Nice suit.`;
+				break;
+			case "a comfortable bodysuit":
+				r += `Bodysuit.`;
+				break;
+			case "a military uniform":
+				r += `Military uniform.`;
+				break;
+			case "a schutzstaffel uniform":
+				r += `Schutzstaffel uniform.`;
+				break;
+			case "a slutty schutzstaffel uniform":
+				r += `Slutty Schutzstaffel uniform.`;
+				break;
+			case "a red army uniform":
+				r += `Red Army uniform.`;
+				break;
+			case "a long qipao":
+				r += `Long Qipao.`;
+				break;
+			case "battlearmor":
+				r += `Battlearmor.`;
+				break;
+			case "a mounty outfit":
+				r += `Mounty outfit.`;
+				break;
+			case "a dirndl":
+				r += `Dirndl.`;
+				break;
+			case "lederhosen":
+				r += `Lederhosen.`;
+				break;
+			case "a biyelgee costume":
+				r += `Biyelgee costume.`;
+				break;
+			case "a leotard":
+				r += `Leotard.`;
+				break;
+			case "a bunny outfit":
+				r += `Bunny outfit.`;
+				break;
+			case "a slutty maid outfit":
+				r += `Slutty maid.`;
+				break;
+			case "a nice maid outfit":
+				r += `Nice maid.`;
+				break;
+			case "a slutty nurse outfit":
+				r += `Slutty nurse.`;
+				break;
+			case "a nice nurse outfit":
+				r += `Nice nurse.`;
+				break;
+			case "a schoolgirl outfit":
+				r += `Schoolgirl outfit.`;
+				break;
+			case "a kimono":
+				r += `Kimono.`;
+				break;
+			case "a hijab and abaya":
+				r += `Hijab and abaya.`;
+				break;
+			case "battledress":
+				r += `Battledress.`;
+				break;
+			case "a latex catsuit":
+				r += `Nice latex.`;
+				break;
+			case "restrictive latex":
+				r += `Bondage latex.`;
+				break;
+			case "conservative clothing":
+				r += `Conservative clothing.`;
+				break;
+			case "chains":
+				r += `Chains.`;
+				break;
+			case "overalls":
+				r += `Overalls.`;
+				break;
+			case "a cheerleader outfit":
+				r += `Cheerleader.`;
+				break;
+			case "clubslut netting":
+				r += `Netting.`;
+				break;
+			case "shibari ropes":
+				r += `Shibari.`;
+				break;
+			case "Western clothing":
+				r += `Chaps.`;
+				break;
+			case "body oil":
+				r += `Body oil.`;
+				break;
+			case "a toga":
+				r += `Toga.`;
+				break;
+			case "a huipil":
+				r += `Huipil.`;
+				break;
+			case "a slutty qipao":
+				r += `Slutty qipao.`;
+				break;
+			case "spats and a tank top":
+				r += `Spats, tank top.`;
+				break;
+			case "a burkini":
+				r += `Burkini.`;
+				break;
+			case "a niqab and abaya":
+				r += `Niqab and abaya.`;
+				break;
+			case "a klan robe":
+				r += `Klan robe.`;
+				break;
+			case "a hijab and blouse":
+				r += `Hijab and blouse.`;
+				break;
+			case "a burqa":
+				r += `Burqa.`;
+				break;
+			case "kitty lingerie":
+				r += `Kitty lingerie.`;
+				break;
+			case "a tube top and thong":
+				r += `Tube top, thong.`;
+				break;
+			case "a button-up shirt and panties":
+				r += `Button-up shirt, panties.`;
+				break;
+			case "a gothic lolita dress":
+				r += `Gothic lolita dress.`;
+				break;
+			case "a hanbok":
+				r += `Hanbok.`;
+				break;
+			case "a bra":
+				r += `Nice bra.`;
+				break;
+			case "a button-up shirt":
+				r += `Nice button-up shirt.`;
+				break;
+			case "a nice pony outfit":
+				r += `Nice pony outfit.`;
+				break;
+			case "a sweater":
+				r += `Nice sweater.`;
+				break;
+			case "a tank-top":
+				r += `Nice tank-top.`;
+				break;
+			case "a thong":
+				r += `Nice thong.`;
+				break;
+			case "a tube top":
+				r += `Nice tube top.`;
+				break;
+			case "a one-piece swimsuit":
+				r += `Swimsuit.`;
+				break;
+			case "a police uniform":
+				r += `Police uniform.`;
+				break;
+			case "a striped bra":
+				r += `Striped bra.`;
+				break;
+			case "a skimpy loincloth":
+				r += `Skimpy loincloth.`;
+				break;
+			case "a slutty klan robe":
+				r += `Slutty klan robe.`;
+				break;
+			case "a slutty pony outfit":
+				r += `Slutty pony outfit.`;
+				break;
+			case "a Santa dress":
+				r += `Santa dress.`;
+				break;
+			case "a sports bra":
+				r += `Sports bra.`;
+				break;
+			case "a sweater and panties":
+				r += `Sweater, panties.`;
+				break;
+			case "a t-shirt":
+				r += `T-shirt.`;
+				break;
+			case "a tank-top and panties":
+				r += `Tank-top, panties.`;
+				break;
+			case "a t-shirt and thong":
+				r += `Thong, t-shirt.`;
+				break;
+			case "an oversized t-shirt and boyshorts":
+				r += `Over-sized t-shirt, boy shorts.`;
+				break;
+			case "an oversized t-shirt":
+				r += `Nice over-sized t-shirt.`;
+				break;
+			case "a t-shirt and jeans":
+				r += `Blue jeans, t-shirt.`;
+				break;
+			case "boyshorts":
+				r += `Boy shorts.`;
+				break;
+			case "cutoffs":
+				r += `Jean shorts.`;
+				break;
+			case "leather pants and pasties":
+				r += `Leather pants, pasties.`;
+				break;
+			case "leather pants":
+				r += `Nice leather pants.`;
+				break;
+			case "panties":
+				r += `Nice panties.`;
+				break;
+			case "sport shorts and a t-shirt":
+				r += `Nice sport shorts, shirt.`;
+				break;
+			case "a t-shirt and panties":
+				r += `Panties, t-shirt.`;
+				break;
+			case "panties and pasties":
+				r += `Pasties, panties.`;
+				break;
+			case "striped underwear":
+				r += `Striped underwear`;
+				break;
+			case "sport shorts and a sports bra":
+				r += `Shorts, bra.`;
+				break;
+			case "jeans":
+				r += `Tight blue jeans.`;
+				break;
+			case "a sweater and cutoffs":
+				r += `Jean shorts, sweater.`;
+				break;
+			case "leather pants and a tube top":
+				r += `Leather pants, tube top.`;
+				break;
+			case "sport shorts":
+				r += `Shorts.`;
+				break;
+			default:
+				r += `Naked.`;
+				break;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function long_collar(child) {
+		switch (child.collar) {
+			case "uncomfortable leather":
+				r += `Leather collar.`;
+				break;
+			case "tight steel":
+				r += `Steel collar.`;
+				break;
+			case "preg biometrics":
+				r += `Pregnancy biometrics collar.`;
+				break;
+			case "cruel retirement counter":
+				r += `Cruel counter collar.`;
+				break;
+			case "shock punishment":
+				r += `Shock collar.`;
+				break;
+			case "dildo gag":
+				r += `Dildo gag.`;
+				break;
+			case "massive dildo gag":
+				r += `Throat-bulging dildo gag.`;
+				break;
+			case "neck corset":
+				r += `Neck corset.`;
+				break;
+			case "stylish leather":
+				r += `Stylish leather collar.`;
+				break;
+			case "satin choker":
+				r += `Satin choker.`;
+				break;
+			case "silk ribbon":
+				r += `Silken ribbon.`;
+				break;
+			case "heavy gold":
+				r += `Gold collar.`;
+				break;
+			case "bowtie":
+				r += `Bowtie collar.`;
+				break;
+			case "pretty jewelry":
+				r += `Pretty collar.`;
+				break;
+			case "nice retirement counter":
+				r += `Nice counter collar.`;
+				break;
+			case "bell collar":
+				r += `Bell collar.`;
+				break;
+			case "leather with cowbell":
+				r += `Cowbell collar.`;
+				break;
+			case "ancient Egyptian":
+				r += `Wesekh.`;
+				break;
+			case "ball gag":
+				r += `Ball gag.`;
+				break;
+			case "bit gag":
+				r += `Bit gag.`;
+				break;
+			case "porcelain mask":
+				r += `Porcelain mask.`;
+				break;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function long_belly(child) {
+		switch (child.bellyAccessory) {
+			case "shapewear":
+				r += `Shapewear.`;
+				break;
+			case "a small empathy belly":
+				r += `Small fake belly.`;
+				break;
+			case "a medium empathy belly":
+				r += `Medium fake belly.`;
+				break;
+			case "a large empathy belly":
+				r += `Large fake belly.`;
+				break;
+			case "a huge empathy belly":
+				r += `Huge fake belly.`;
+				break;
+			case "a corset":
+				r += `Corset.`;
+				break;
+			case "an extreme corset":
+				r += `Extreme corsetage.`;
+				break;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function long_legs(child) {
+		if (child.legAccessory === "short stockings") {
+			r += `Short stockings.`;
+		} else if (child.legAccessory === "long stockings") {
+			r += `Long stockings.`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function long_shoes(child) {
+		if (child.shoes === "heels") {
+			r += `Heels.`;
+		} else if (child.shoes === "pumps") {
+			r += `Pumps.`;
+		} else if (child.shoes === "extreme heels") {
+			r += `Extreme heels.`;
+		} else if (child.shoes === "boots") {
+			r += `Boots.`;
+		} else if (child.heels === 1) {
+			r += `<span class="yellow">Crawling.</span>`;
+		} else if (child.shoes === "flats") {
+			r += `Flats.`;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function long_chastity(child) {
+		if (child.chastityAnus === 1 && child.chastityPenis === 1 && child.chastityVagina === 1) {
+			r += `Full chastity.`;
+		} else if (child.chastityPenis === 1 && child.chastityVagina === 1) {
+			r += `Genital chastity.`;
+		} else if ((child.chastityAnus === 1 && child.chastityVagina === 1) || (child.chastityAnus === 1 && child.chastityPenis === 1)) {
+			r += `Combined chastity.`;
+		} else if (child.chastityVagina === 1) {
+			r += `Vaginal chastity.`;
+		} else if (child.chastityPenis === 1) {
+			r += `Chastity cage.`;
+		} else if (child.chastityAnus === 1) {
+			r += `Anal chastity.`;
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function long_vaginal_acc(child) {
+		if (child.vaginalAttachment !== "vibrator") {
+			switch (child.vaginalAccessory) {
+				case "bullet vibrator":
+					r += `Attached bullet vibrator.`;
+					break;
+				case "smart bullet vibrator":
+					r += `Attached smart bullet vibrator.`;
+					break;
+				case "dildo":
+					r += `Vaginal dildo.`;
+					break;
+				case "large dildo":
+					r += `Large vaginal dildo.`;
+					break;
+				case "huge dildo":
+					r += `Huge vaginal dildo.`;
+					break;
+				case "long dildo":
+					r += `Long vaginal dildo.`;
+					break;
+				case "long, large dildo":
+					r += `Long and large vaginal dildo.`;
+					break;
+				case "long, huge dildo":
+					r += `Long and wide vaginal dildo.`;
+					break;
+			}
+		}
+		r += " ";
+		if (child.vaginalAttachment !== "none") {
+			switch (child.vaginalAttachment) {
+				case "vibrator":
+					r += `Vibrating dildo.`;
+					break;
+			}
+			r += " ";
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function long_dick_acc(child) {
+		switch (child.dickAccessory) {
+			case "sock":
+				r += `Cock sock.`;
+				break;
+			case "bullet vibrator":
+				r += `Frenulum bullet vibrator.`;
+				break;
+			case "smart bullet vibrator":
+				r += `Smart frenulum bullet vibrator.`;
+				break;
+		}
+		r += " ";
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function long_buttplug(child) {
+		switch (child.buttplug) {
+			case "plug":
+				r += `Buttplug.`;
+				break;
+			case "large plug":
+				r += `Large buttplug.`;
+				break;
+			case "huge plug":
+				r += `Huge buttplug.`;
+				break;
+			case "long plug":
+				r += `Long buttplug.`;
+				break;
+			case "long, large plug":
+				r += `Large, long buttplug.`;
+				break;
+			case "long, huge plug":
+				r += `Enormous buttplug.`;
+				break;
+		}
+		r += " ";
+		switch (child.buttplugAttachment) {
+			case "tail":
+				r += `Attached tail. `;
+				break;
+			case "cat tail":
+				r += `Attached cat tail. `;
+				break;
+			case "fox tail":
+				r += `Attached fox tail. `;
+				break;
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function rules_assistant(child) {
+		if (child.useRulesAssistant === 0) {
+			r += `<span class="lightgreen">RA-Exempt</span> `;
+		} else if (V.abbreviateRulesets === 2 && (child.currentRules !== undefined) && (child.currentRules.length > 0)) {
+			r += `Rules: ${V.defaultRules.filter(x => ruleApplied(child, x)).map(x => x.name).join(", ") }`;
+		}
+	}
+
+	/**
+	 * @param {App.Entity.SlaveState} child
+	 */
+	function origins(child) {
+		r += `<br>`;
+		if (V.seeImages !== 1 || V.seeSummaryImages !== 1 || V.imageChoice === 1) {
+			r += `&nbsp;&nbsp;&nbsp;&nbsp;`;
+		}
+		r += `<span class="gray">${child.origin}</span>`;
+	}
+
+	return ChildSummaryUncached(child);
 };
 
+/**
+ * @param {App.Entity.SlaveState} child	// TODO: would this still be a SlaveState?
+ * @returns {string}
+ */
 App.Facilities.Nursery.LongChildDescription = function(child) {
 	"use strict";
+	let r = ``;
 	const V = State.variables;
 	const arcology = V.arcologies[0];
 	const PC = V.PC;
 	const slaves = V.slaves;
-	let r = ``;
 	let beauty = Beauty(child);
 	/* eslint-disable */
 	let pronouns = getPronouns(child);
@@ -767,793 +5712,793 @@ App.Facilities.Nursery.LongChildDescription = function(child) {
 	}
 	r += `<br>&nbsp;&nbsp;&nbsp;&nbsp; `;
 
-if (child.prestige > 0) { // TODO: child objects do not have prestige properties
-	if (child.prestigeDesc) {
-		r += `${child.prestigeDesc} `;
+	if (child.prestige > 0) { // TODO: child objects do not have prestige properties
+		if (child.prestigeDesc) {
+			r += `${child.prestigeDesc} `;
+		}
+		if (child.prestige > 2) {
+			r += `It is extremely prestigious to own ${him}. `;
+		} else if (child.prestige > 1) {
+			r += `It is quite prestigious to own ${him}. `;
+		} else {
+			r += `It is fairly prestigious to own ${him}. `;
+		}
 	}
-	if (child.prestige > 2) {
-		r += `It is extremely prestigious to own ${him}. `;
-	} else if (child.prestige > 1) {
-		r += `It is quite prestigious to own ${him}. `;
-	} else {
-		r += `It is fairly prestigious to own ${him}. `;
-	}
-}
-
-if (child.pornPrestige > 0) {
-	if (child.pornPrestigeDesc) {
-		r += `${child.pornPrestigeDesc} `;
-	}
-}
-if (child.pornPrestige > 2) {
-	r += `As such, ${he} tends to gain a following wherever ${he} goes. `;
-} else if (child.pornPrestige > 1) {
-	r += `As such, ${he} is recognized often. `;
-} else {
-	r += `As such, ${he} is recognized occasionally. `;
-}
-
-if (child.prestige > 0 || child.pornPrestige > 1) {
-	if (child.markings === "birthmark") {
-		r += `${He} has a large, liver-colored birthmark, but since ${he}'s well known, this uniqueness adds to ${his} beauty rather than detracting from it. `;
-	}
-}
-
-if (child.skill.whoring <= 10) {
-	if (child.skill.entertainment <= 10) {
-		r += `${He} is somewhat entertaining. `;
-	} else if (child.skill.entertainment <= 30) {
-		r += `${He} is <span class=aquamarine>reasonably entertaining.</span> `;
-	} else if (child.skill.entertainment <= 60) {
-		r += `${He} is a <span class=aquamarine>skilled entertainer.</span> `;
-	} else if (child.skill.entertainment < 100) {
-		r += `${He} is an <span class=aquamarine>expert entertainer.</span> `;
-	} else {
-		r += `${He} is a <span class=aquamarine>master of entertainment.</span> `;
-	}
-} else {
-	if (child.skill.entertainment <= 10) {
-		r += `${He} is somewhat entertaining and `;
-	} else if (child.skill.entertainment <= 30) {
-		r += `${He} is <span class=aquamarine>reasonably entertaining</span> and `;
-	} else if (child.skill.entertainment <= 60) {
-		r += `${He} is a <span class=aquamarine>skilled entertainer</span> and `;
-	} else if (child.skill.entertainment < 100) {
-		r += `${He} is an <span class=aquamarine>expert entertainer</span> and `;
-	} else {
-		r += `${He} is a <span class=aquamarine>master of entertainment</span> and `;
-	}
-}
-if (child.skill.whoring <= 10) {
-	r += `${He} has very little experience in selling ${his} body. `;
-} else if (child.skill.whoring <= 30) {
-	if (child.skill.entertainment <= 10) {
-		r += `${He} `;
-	}
-	r += `has <span class=aquamarine>basic experience as a prostitute.</span>`;
-} else if (child.skill.whoring <= 60) {
-	if (child.skill.entertainment <= 10) {
-		r += `${He} is `;
-	}
-	r += `a <span class=aquamarine>skilled streetwalker.</span>`;
-} else if (child.skill.whoring < 100) {
-	if (child.skill.entertainment <= 10) {
-		r += `${He} is `;
-	}
-	r += `an <span class=aquamarine>expert working $girl.</span>`;
-} else {
-	if (child.skill.entertainment <= 10) {
-		r += `${He} is `;
-	}
-	r += `a <span class=aquamarine>masterful whore.</span>`;
-}
-
-if (child.custom.def !== "" && typeof child.custom.desc !== "undefined") {
-	r += `${child.custom.desc} `;
-}
-
-// r += App.Desc.FSeffects(child);	TODO:
-
-if (V.showScores) {
-	FResult(child);
-	r += `Currently, ${he} has an <span class="pink"><strong>attractiveness score</strong> of <strong><u>${beauty}</u></strong></span> and a <span class="lightcoral"><strong>sexual score</strong> of <strong><u>${V.FResult}</u></strong>.</span> `;
-}
-
-r += `<br>&nbsp;&nbsp;&nbsp;&nbsp;`;
-
-if (child.amp) {
-	// r += App.Desc.amputee(child); // TODO: verify this exists
-}
-
-// r += App.Desc.clothing(child);
-if (V.showBodyMods) {
-	// r += App.Desc.clothingCorset(child);
-}
-
-// r += App.Desc.heightAndWeight;	TODO:
-if (V.showClothing && !V.saleDescription) {
-	r += `${He}`;
-} else {
-	r += `${child.slaveName}`;
-}
-let averageHeight = Height.mean(child);
-
-r += ` is `;
-
-if (child.height <= averageHeight + 5 && child.height >= averageHeight - 5) {
-	r += `an average height`;
-	if (child.physicalAge < 16) {
-		r += ` for ${his} age`;
-	}
-} else if (child.height < averageHeight - 15) {
-	r += `petite`;
-	if (child.physicalAge < 16) {
-		r += ` for ${his} age`;
-	}
-} else if (child.height < averageHeight - 5) {
-	r += `short`;
-	if (child.physicalAge < 16) {
-		r += ` for ${his} age`;
-	}
-} else if (child.height > averageHeight + 15) {
-	r += `very tall`;
-	if (child.physicalAge < 16) {
-		r += ` for ${his} age`;
-	}
-} else if (child.height > averageHeight + 5) {
-	r += `tall`;
-	if (child.physicalAge < 16) {
-		r += ` for ${his} age`;
-	}
-}
-if (V.showHeightCMs) {
-	r += ` at ${heightToEitherUnit(child.height)},`;
-}
-
-r += ` and `;
-
-if (child.weight > 190) {
-	if (arcology.FSHedonisticDecadance !== "unset") {
-		r += `${jsEither("perfectly curvy", "perfectly plush")}. `;
-	} else {
-		r += `<span class="red>${jsEither("dangerously fat", "dangerously overweight", "extremely obese")}</span>. `;
+
+	if (child.pornPrestige > 0) {
+		if (child.pornPrestigeDesc) {
+			r += `${child.pornPrestigeDesc} `;
+		}
 	}
-} else if (child.weight > 160) {
-	if (arcology.FSHedonisticDecadance !== "unset") {
-		r += `${jsEither("spectacularly curvy", "spectacularly plush")}. `;
+	if (child.pornPrestige > 2) {
+		r += `As such, ${he} tends to gain a following wherever ${he} goes. `;
+	} else if (child.pornPrestige > 1) {
+		r += `As such, ${he} is recognized often. `;
 	} else {
-		r += `<span class="red">${jsEither("extremely fat", "extremely overweight")}</span>. `;
+		r += `As such, ${he} is recognized occasionally. `;
 	}
-} else if (child.weight > 130) {
-	if (arcology.FSHedonisticDecadance !== "unset") {
-		r += `${jsEither("amazingly curvy", "amazingly plush")}. `;
-	} else {
-		r += `<span class="red">${jsEither("very overweight", "obese", "very fat")}</span>. `;
+
+	if (child.prestige > 0 || child.pornPrestige > 1) {
+		if (child.markings === "birthmark") {
+			r += `${He} has a large, liver-colored birthmark, but since ${he}'s well known, this uniqueness adds to ${his} beauty rather than detracting from it. `;
+		}
 	}
-} else if (child.weight > 95) {
-	if (child.hips > 1) {
-		r += `${"extremely curvy", "extremely plush"}, but ${his} huge hips make the extra weight attractive on ${him}. `;
-	} else if (arcology.FSHedonisticDecadance !== "unset") {
-		r += `${jsEither("extremely curvy", "extremely plush")}. `;
+
+	if (child.skill.whoring <= 10) {
+		if (child.skill.entertainment <= 10) {
+			r += `${He} is somewhat entertaining. `;
+		} else if (child.skill.entertainment <= 30) {
+			r += `${He} is <span class=aquamarine>reasonably entertaining.</span> `;
+		} else if (child.skill.entertainment <= 60) {
+			r += `${He} is a <span class=aquamarine>skilled entertainer.</span> `;
+		} else if (child.skill.entertainment < 100) {
+			r += `${He} is an <span class=aquamarine>expert entertainer.</span> `;
+		} else {
+			r += `${He} is a <span class=aquamarine>master of entertainment.</span> `;
+		}
 	} else {
-		r += `<span class="red">${jsEither("carrying a lot of extra weight", "fat", "overweight")}</span>. `;
+		if (child.skill.entertainment <= 10) {
+			r += `${He} is somewhat entertaining and `;
+		} else if (child.skill.entertainment <= 30) {
+			r += `${He} is <span class=aquamarine>reasonably entertaining</span> and `;
+		} else if (child.skill.entertainment <= 60) {
+			r += `${He} is a <span class=aquamarine>skilled entertainer</span> and `;
+		} else if (child.skill.entertainment < 100) {
+			r += `${He} is an <span class=aquamarine>expert entertainer</span> and `;
+		} else {
+			r += `${He} is a <span class=aquamarine>master of entertainment</span> and `;
+		}
 	}
-} else if (child.weight > 30) {
-	if (child.hips > 1) {
-		r += `${jsEither("quite curvy", "very plush")}, but ${his} motherly hips make the extra weight attractive on ${him}. `;
-	} else if (arcology.FSHedonisticDecadance !== "unset") {
-		r += `${jsEither("quite curvy", "very plush")}. `;
-	} else {
-		r += `<span class="red">${jsEither("carrying extra weight", "chubby")}</span>. `;
-	}
-} else if (child.weight > 10) {
-	r += `${jsEither("nicely plush", "pleasingly curvy")}. `;
-} else if (child.weight >= -10) {
-	r += `${jsEither("a healthy weight", "an attractive weight")}. `;
-} else if (child.weight >= -30) {
-	r += `${jsEither("appealingly skinny", "pleasingly thin")}. `;
-} else if (child.weight >= -95) {
-	if (child.hips > 1) {
-		r += `${jsEither("quite skinny", "very thin")}, but ${his} wide hips make the gap between ${his} thighs very noticeable. `;
-	} else if (child.hips < -1) {
-		r += `${jsEither("quite skinny", "very thin")}, but ${his} trim hips make ${him} look like a model. `;
+	if (child.skill.whoring <= 10) {
+		r += `${He} has very little experience in selling ${his} body. `;
+	} else if (child.skill.whoring <= 30) {
+		if (child.skill.entertainment <= 10) {
+			r += `${He} `;
+		}
+		r += `has <span class=aquamarine>basic experience as a prostitute.</span>`;
+	} else if (child.skill.whoring <= 60) {
+		if (child.skill.entertainment <= 10) {
+			r += `${He} is `;
+		}
+		r += `a <span class=aquamarine>skilled streetwalker.</span>`;
+	} else if (child.skill.whoring < 100) {
+		if (child.skill.entertainment <= 10) {
+			r += `${He} is `;
+		}
+		r += `an <span class=aquamarine>expert working $girl.</span>`;
 	} else {
-		r += `<span class="red">${"rail thin", "too skinny", "unserweight"}</span>. `;
+		if (child.skill.entertainment <= 10) {
+			r += `${He} is `;
+		}
+		r += `a <span class=aquamarine>masterful whore.</span>`;
+	}
+
+	if (child.custom.def !== "" && typeof child.custom.desc !== "undefined") {
+		r += `${child.custom.desc} `;
 	}
-} else {
-	r += `<span class="red">${"dangerously skinny", "emaciated"}</span>. `;
-}
 
-if (child.hips > 2) {
-	r += `${His} hips are unrealistically wide; it is obvious they have been artificially widened. `;
-}
+	// r += App.Desc.FSeffects(child);	TODO:
 
-// r += App.Desc.waist(child);	TODO:
+	if (V.showScores) {
+		FResult(child);
+		r += `Currently, ${he} has an <span class="pink"><strong>attractiveness score</strong> of <strong><u>${beauty}</u></strong></span> and a <span class="lightcoral"><strong>sexual score</strong> of <strong><u>${V.FResult}</u></strong>.</span> `;
+	}
 
-if (arcology.FSGenderFundamentalistLawBeauty + arcology.FSGenderFundamentalistLawBeauty > 0) {
-	if (arcology.FSHedonisticDecadance === "unset" && arcology.FSPhyscialIdealistStrongFat === 0) {
-		if (child.weight > 130) {
-			r += `${He} is much too fat for the fashionable feminine ideal. `;
-		} else if (child.weight > 30) {
-			r += `${He} is too fat for the fashionable feminine ideal. `;
-		} else if (child.weight < -30) {
-			r += `${He} is too skinny for the fashionable feminine ideal. `;
-		}
+	r += `<br>&nbsp;&nbsp;&nbsp;&nbsp;`;
+
+	if (child.amp) {
+		// r += App.Desc.amputee(child); // TODO: verify this exists
+	}
+
+	// r += App.Desc.clothing(child);
+	if (V.showBodyMods) {
+		// r += App.Desc.clothingCorset(child);
+	}
+
+	// r += App.Desc.heightAndWeight;	TODO:
+	if (V.showClothing && !V.saleDescription) {
+		r += `${He}`;
 	} else {
-		if (child.weight > 130) {
-			r += `${He} is much too fat for the fashionable feminine ideal. `;
-		} else if (child.weight < -30) {
-			r += `${He} is too skinny for the fashionable feminine ideal. `;
-		}
+		r += `${child.slaveName}`;
 	}
-} else if (arcology.FSSlimnessEnthusiastLaw === 1) {
-	if (arcology.FSHedonisticDecadance === "unset" && arcology.FSPhyscialIdealistStrongFat === 0) {
-		if (child.weight > 30) {
-			r += `${He} is much too fat for the fashionable feminine ideal. `;
-		} else if (child.weight > 10) {
-			r += `${He} is too fat for the fashionable feminine ideal. `;
+	let averageHeight = Height.mean(child);
+
+	r += ` is `;
+
+	if (child.height <= averageHeight + 5 && child.height >= averageHeight - 5) {
+		r += `an average height`;
+		if (child.physicalAge < 16) {
+			r += ` for ${his} age`;
 		}
-	} else {
-		if (child.weight > 60) {
-			r += `${He} is much too fat for the fashionable feminine ideal. `;
-		} else if (child.weight > 30) {
-			r += `${He} is too fat for the fashionable feminine ideal. `;
+	} else if (child.height < averageHeight - 15) {
+		r += `petite`;
+		if (child.physicalAge < 16) {
+			r += ` for ${his} age`;
+		}
+	} else if (child.height < averageHeight - 5) {
+		r += `short`;
+		if (child.physicalAge < 16) {
+			r += ` for ${his} age`;
+		}
+	} else if (child.height > averageHeight + 15) {
+		r += `very tall`;
+		if (child.physicalAge < 16) {
+			r += ` for ${his} age`;
+		}
+	} else if (child.height > averageHeight + 5) {
+		r += `tall`;
+		if (child.physicalAge < 16) {
+			r += ` for ${his} age`;
 		}
 	}
-} else if (arcology.FSHedonisticDecadance2) {
-	if (child.weight <= 95) {
-		r += `${He} is too thin for the fashionable feminine ideal. `;
-	} else if (child.weight <= 10) {
-		r += `${He} is much too thin for the fashionable feminine ideal. `;
+	if (V.showHeightCMs) {
+		r += ` at ${heightToEitherUnit(child.height)},`;
 	}
-}
 
-if (canWalk(child)) {
-	if (child.weight > (170 + child.muscles / 5) && child.physicalAge >= 18) {
-		r += `${He} is so fat that it is difficult for ${him} to move. `;
-		if (child.muscles > 95) {
-			r += `However, ${he} is so powerfully built that ${he} can manage it with effort, though ${he} often has to stop for breaks. `;
-		} else if (child.muscles > 30) {
-			r += `${He} can barely manage to get to ${his} feet unaided, and usually walks alongside objects to help relieve the weight. `;
-		} else if (child.muscles > 5) {
-			r += `${He} requires assistance to get to ${his} feet, and tends to lean on things to help relieve the weight. Much furniture has met an early demise thanks to this habit. `;
+	r += ` and `;
+
+	if (child.weight > 190) {
+		if (arcology.FSHedonisticDecadance !== "unset") {
+			r += `${jsEither("perfectly curvy", "perfectly plush")}. `;
 		} else {
-			r += `${He} cannot get to ${his} feet unaided, and tries to stay seated as much as ${he} can. `;
+			r += `<span class="red>${jsEither("dangerously fat", "dangerously overweight", "extremely obese")}</span>. `;
 		}
-	} else if (child.weight > (110 + child.muscles / 20) && child.physicalAge <= 3) {
-		r += `${He} is so fat that it is difficult for ${him} to move. `;
-		if (child.muscles > 95) {
-			r += `However, ${he} is so powerfully built that ${he} can manage it with effort, though ${he} often has to stop for breaks. `;
-		} else if (child.muscles > 30) {
-			r += `${He} can barely manage to get to ${his} feet unaided, and usually walks alongside objects to help relieve the weight. `;
-		} else if (child.muscles > 5) {
-			r += `${He} requires assistance to get to ${his} feet, and tends to lean on things to help relieve the weight. Much furniture has met an early demise thanks to this habit. `;
+	} else if (child.weight > 160) {
+		if (arcology.FSHedonisticDecadance !== "unset") {
+			r += `${jsEither("spectacularly curvy", "spectacularly plush")}. `;
 		} else {
-			r += `${He} cannot get to ${his} feet unaided, and tries to stay seated as much as ${he} can. `;
+			r += `<span class="red">${jsEither("extremely fat", "extremely overweight")}</span>. `;
 		}
-	} else if (child.weight > (140 + child.muscles / 15) && child.physicalAge <= 12) {
-		r += `${He} is so fat that it is difficult for ${him} to move. `;
-		if (child.muscles > 95) {
-			r += `However, ${he} is so powerfully built that ${he} can manage it with effort, though ${he} often has to stop for breaks. `;
-		} else if (child.muscles > 30) {
-			r += `${He} can barely manage to get to ${his} feet unaided, and usually walks alongside objects to help relieve the weight. `;
-		} else if (child.muscles > 5) {
-			r += `${He} requires assistance to get to ${his} feet, and tends to lean on things to help relieve the weight. Much furniture has met an early demise thanks to this habit. `;
+	} else if (child.weight > 130) {
+		if (arcology.FSHedonisticDecadance !== "unset") {
+			r += `${jsEither("amazingly curvy", "amazingly plush")}. `;
 		} else {
-			r += `${He} cannot get to ${his} feet unaided, and tries to stay seated as much as ${he} can. `;
+			r += `<span class="red">${jsEither("very overweight", "obese", "very fat")}</span>. `;
 		}
-	} else if (child.weight > (165 + child.muscles / 10 && child.physicalAge < 18)) {
-		r += `${He} is so fat that it is difficult for ${him} to move. `;
-		if (child.muscles > 95) {
-			r += `However, ${he} is so powerfully built that ${he} can manage it with effort, though ${he} often has to stop for breaks. `;
-		} else if (child.muscles > 30) {
-			r += `${He} can barely manage to get to ${his} feet unaided, and usually walks alongside objects to help relieve the weight. `;
-		} else if (child.muscles > 5) {
-			r += `${He} requires assistance to get to ${his} feet, and tends to lean on things to help relieve the weight. Much furniture has met an early demise thanks to this habit. `;
+	} else if (child.weight > 95) {
+		if (child.hips > 1) {
+			r += `${"extremely curvy", "extremely plush"}, but ${his} huge hips make the extra weight attractive on ${him}. `;
+		} else if (arcology.FSHedonisticDecadance !== "unset") {
+			r += `${jsEither("extremely curvy", "extremely plush")}. `;
 		} else {
-			r += `${He} cannot get to ${his} feet unaided, and tries to stay seated as much as ${he} can. `;
-		}
-	}
-}
-
-// App.Desc.heightImplant(child); TODO:
-
-r += `${He} is `;
-if (child.muscles > 95) {
-	r += `<span class="pink">extremely muscular,</span> with defined pecs, powerful glutes, and massive traps`;
-	if ($activeChild.weight > 95) {
-		r += ` hidden beneath a layer of fat`;
-	}
-	r += `. `;
-} else if (child.muscles > 50) {
-	r += `<span class="pink">quite muscular,</span> with ripped abs, strong shoulders, and defined lats`;
-	if ($activeChild.weight > 95) {
-		r += ` hidden beneath a layer of fat`;
-	}
-	r += `. `;
-} else if (child.muscles > 30) {
-	r += `<span class="pink">well built,</span> yet feminine with defined abs and strong shapely muscles`;
-	if ($activeChild.weight > 95) {
-		r += ` hidden beneath a layer of fat`;
-	}
-	r += `. `;
-} else if (child.muscles > 5) {
-	r += `<span class="pink">well built,</span> yet feminine, with just-visible muscles`;
-	if ($activeChild.weight > 30) {
-		r += ` hidden beneath a layer of fat`;
-	}
-	r += `. `;
-} else if (child.muscles >= -5) {
-	r += `<span class="pink">soft and feminine,</span> with no visible muscles. `;
-} else if (child.muscles >= -30) {
-	r += `<span class="pink">rather weak,</span> with barely any muscles. `;
-} else if (child.muscles >= -95) {
-	r += `<span class="pink">very weak;</span> ${he} struggles with day-to-day tasks. `;
-} else {
-	r += `<span class="red">frail;</span> ${he} can barely hold ${himself} up. `;
-}
-
-if (arcology.FSGenderFundamentalistLawBeauty + arcology.FSGenderRadicalistLawBeauty + arcology.FSSlimnessEnthusiastLaw > 0 && arcology.FSPhyscialIdealist === "unset" && !arcology.FSHedonisticDecadanceStrongFat) {
-	if (arcology.FSPhyscialIdealistLaw > 0 && child.muscles > 50) {
-		r += `${He} is entirely too muscular for the fashionable feminine ideal. `;
-	} else if (child.muscles > 30) {
-		r += `${He} is entirely too muscular for the fashionable feminine ideal. `;
+			r += `<span class="red">${jsEither("carrying a lot of extra weight", "fat", "overweight")}</span>. `;
+		}
+	} else if (child.weight > 30) {
+		if (child.hips > 1) {
+			r += `${jsEither("quite curvy", "very plush")}, but ${his} motherly hips make the extra weight attractive on ${him}. `;
+		} else if (arcology.FSHedonisticDecadance !== "unset") {
+			r += `${jsEither("quite curvy", "very plush")}. `;
+		} else {
+			r += `<span class="red">${jsEither("carrying extra weight", "chubby")}</span>. `;
+		}
+	} else if (child.weight > 10) {
+		r += `${jsEither("nicely plush", "pleasingly curvy")}. `;
+	} else if (child.weight >= -10) {
+		r += `${jsEither("a healthy weight", "an attractive weight")}. `;
+	} else if (child.weight >= -30) {
+		r += `${jsEither("appealingly skinny", "pleasingly thin")}. `;
+	} else if (child.weight >= -95) {
+		if (child.hips > 1) {
+			r += `${jsEither("quite skinny", "very thin")}, but ${his} wide hips make the gap between ${his} thighs very noticeable. `;
+		} else if (child.hips < -1) {
+			r += `${jsEither("quite skinny", "very thin")}, but ${his} trim hips make ${him} look like a model. `;
+		} else {
+			r += `<span class="red">${"rail thin", "too skinny", "unserweight"}</span>. `;
+		}
+	} else {
+		r += `<span class="red">${"dangerously skinny", "emaciated"}</span>. `;
 	}
-}
 
-if (!child.amp) {
-	if (child.weight > 190) {
-		r += `${He} has hugely thick arms with sagging fat rolls and `;
-	} else if (child.weight > 160) {
-		r += `${He} has thick arms with drooping fat folds and `;
-	} else if (child.weight > 130) {
-		r += `${He} has plump arms with `;
-	} else if (child.weight > 97) {
-		r += `${He} has chubby arms with `;
-	} else {
-		r += `${He} has normal arms with `;
-	}
-}
-
-if (child.muscles > 95) {
-	r += `huge muscles`;
-	if (child.weight > 95) {
-		r += ` hidden beneath ${his} soft flesh `;
-	}
-	r += `. `;
-} else if (child.muscles > 30) {
-	r += `obvious muscles`;
-	if (child.weight > 95) {
-		r += ` hidden beneath ${his} soft flesh `;
-	}
-	r += `. `;
-} else if (child.muscles > 5) {
-	r += `toned muscles`;
-	if (child.weight > 30) {
-		r += ` hidden beneath ${his} soft flesh `;
-	}
-	r += `. `;
-} else {
-	r += `little muscle to them. `;
-}
-
-if (child.skill.combat > 0) {
-	r += `${He} is <span class="aquamarine"skilled at combat:</span> ${he} is comfortable with the use of modern firearms and edges weapons, and ${his} hands `;
-	if (child.amp === -4) {
-		r += `would be deadly weapons even if they weren't full of deadly weapons already`;
-	} else if (child.amp > 0) {
-		r += `would be deadly weapons if ${he} had any`;
-	} else {
-		r += `are deadly weapons`;
+	if (child.hips > 2) {
+		r += `${His} hips are unrealistically wide; it is obvious they have been artificially widened. `;
+	}
+
+	// r += App.Desc.waist(child);	TODO:
+
+	if (arcology.FSGenderFundamentalistLawBeauty + arcology.FSGenderFundamentalistLawBeauty > 0) {
+		if (arcology.FSHedonisticDecadance === "unset" && arcology.FSPhyscialIdealistStrongFat === 0) {
+			if (child.weight > 130) {
+				r += `${He} is much too fat for the fashionable feminine ideal. `;
+			} else if (child.weight > 30) {
+				r += `${He} is too fat for the fashionable feminine ideal. `;
+			} else if (child.weight < -30) {
+				r += `${He} is too skinny for the fashionable feminine ideal. `;
+			}
+		} else {
+			if (child.weight > 130) {
+				r += `${He} is much too fat for the fashionable feminine ideal. `;
+			} else if (child.weight < -30) {
+				r += `${He} is too skinny for the fashionable feminine ideal. `;
+			}
+		}
+	} else if (arcology.FSSlimnessEnthusiastLaw === 1) {
+		if (arcology.FSHedonisticDecadance === "unset" && arcology.FSPhyscialIdealistStrongFat === 0) {
+			if (child.weight > 30) {
+				r += `${He} is much too fat for the fashionable feminine ideal. `;
+			} else if (child.weight > 10) {
+				r += `${He} is too fat for the fashionable feminine ideal. `;
+			}
+		} else {
+			if (child.weight > 60) {
+				r += `${He} is much too fat for the fashionable feminine ideal. `;
+			} else if (child.weight > 30) {
+				r += `${He} is too fat for the fashionable feminine ideal. `;
+			}
+		}
+	} else if (arcology.FSHedonisticDecadance2) {
+		if (child.weight <= 95) {
+			r += `${He} is too thin for the fashionable feminine ideal. `;
+		} else if (child.weight <= 10) {
+			r += `${He} is much too thin for the fashionable feminine ideal. `;
+		}
 	}
-	r += `. `;
-}
 
-if (child.counter.pitKills > 0) {
-	r += `${child.counter.pitKills} slaves have died by ${his} hand in pit fights. `;
-}
+	if (canWalk(child)) {
+		if (child.weight > (170 + child.muscles / 5) && child.physicalAge >= 18) {
+			r += `${He} is so fat that it is difficult for ${him} to move. `;
+			if (child.muscles > 95) {
+				r += `However, ${he} is so powerfully built that ${he} can manage it with effort, though ${he} often has to stop for breaks. `;
+			} else if (child.muscles > 30) {
+				r += `${He} can barely manage to get to ${his} feet unaided, and usually walks alongside objects to help relieve the weight. `;
+			} else if (child.muscles > 5) {
+				r += `${He} requires assistance to get to ${his} feet, and tends to lean on things to help relieve the weight. Much furniture has met an early demise thanks to this habit. `;
+			} else {
+				r += `${He} cannot get to ${his} feet unaided, and tries to stay seated as much as ${he} can. `;
+			}
+		} else if (child.weight > (110 + child.muscles / 20) && child.physicalAge <= 3) {
+			r += `${He} is so fat that it is difficult for ${him} to move. `;
+			if (child.muscles > 95) {
+				r += `However, ${he} is so powerfully built that ${he} can manage it with effort, though ${he} often has to stop for breaks. `;
+			} else if (child.muscles > 30) {
+				r += `${He} can barely manage to get to ${his} feet unaided, and usually walks alongside objects to help relieve the weight. `;
+			} else if (child.muscles > 5) {
+				r += `${He} requires assistance to get to ${his} feet, and tends to lean on things to help relieve the weight. Much furniture has met an early demise thanks to this habit. `;
+			} else {
+				r += `${He} cannot get to ${his} feet unaided, and tries to stay seated as much as ${he} can. `;
+			}
+		} else if (child.weight > (140 + child.muscles / 15) && child.physicalAge <= 12) {
+			r += `${He} is so fat that it is difficult for ${him} to move. `;
+			if (child.muscles > 95) {
+				r += `However, ${he} is so powerfully built that ${he} can manage it with effort, though ${he} often has to stop for breaks. `;
+			} else if (child.muscles > 30) {
+				r += `${He} can barely manage to get to ${his} feet unaided, and usually walks alongside objects to help relieve the weight. `;
+			} else if (child.muscles > 5) {
+				r += `${He} requires assistance to get to ${his} feet, and tends to lean on things to help relieve the weight. Much furniture has met an early demise thanks to this habit. `;
+			} else {
+				r += `${He} cannot get to ${his} feet unaided, and tries to stay seated as much as ${he} can. `;
+			}
+		} else if (child.weight > (165 + child.muscles / 10 && child.physicalAge < 18)) {
+			r += `${He} is so fat that it is difficult for ${him} to move. `;
+			if (child.muscles > 95) {
+				r += `However, ${he} is so powerfully built that ${he} can manage it with effort, though ${he} often has to stop for breaks. `;
+			} else if (child.muscles > 30) {
+				r += `${He} can barely manage to get to ${his} feet unaided, and usually walks alongside objects to help relieve the weight. `;
+			} else if (child.muscles > 5) {
+				r += `${He} requires assistance to get to ${his} feet, and tends to lean on things to help relieve the weight. Much furniture has met an early demise thanks to this habit. `;
+			} else {
+				r += `${He} cannot get to ${his} feet unaided, and tries to stay seated as much as ${he} can. `;
+			}
+		}
+	}
 
-if (child.corsetPiercing > 0) {
-	// r += App.Desc.corsetPiercing(child);	TODO:
-}
+	// App.Desc.heightImplant(child); TODO:
 
-if (!child.amp) {
-	if (child.weight > 190) {
-		r += `${He} has extremely fat legs with immense soft, rather uneven thighs and `;
-	} else if (child.weight > 160) {
-		r += `${He} has very fat legs with massively thick, soft, somewhat uneven thighs and `;
-	} else if (child.weight > 130) {
-		r += `${He} has fat legs with hugely thick, soft thighs and `;
-	} else if (child.weight > 97) {
-		r += `${He} has fat legs with thick, soft thighs and `;
-	} else if (child.weight > 95) {
-		r += `${He} has normal legs with thick, soft thighs and `;
+	r += `${He} is `;
+	if (child.muscles > 95) {
+		r += `<span class="pink">extremely muscular,</span> with defined pecs, powerful glutes, and massive traps`;
+		if ($activeChild.weight > 95) {
+			r += ` hidden beneath a layer of fat`;
+		}
+		r += `. `;
+	} else if (child.muscles > 50) {
+		r += `<span class="pink">quite muscular,</span> with ripped abs, strong shoulders, and defined lats`;
+		if ($activeChild.weight > 95) {
+			r += ` hidden beneath a layer of fat`;
+		}
+		r += `. `;
+	} else if (child.muscles > 30) {
+		r += `<span class="pink">well built,</span> yet feminine with defined abs and strong shapely muscles`;
+		if ($activeChild.weight > 95) {
+			r += ` hidden beneath a layer of fat`;
+		}
+		r += `. `;
+	} else if (child.muscles > 5) {
+		r += `<span class="pink">well built,</span> yet feminine, with just-visible muscles`;
+		if ($activeChild.weight > 30) {
+			r += ` hidden beneath a layer of fat`;
+		}
+		r += `. `;
+	} else if (child.muscles >= -5) {
+		r += `<span class="pink">soft and feminine,</span> with no visible muscles. `;
+	} else if (child.muscles >= -30) {
+		r += `<span class="pink">rather weak,</span> with barely any muscles. `;
+	} else if (child.muscles >= -95) {
+		r += `<span class="pink">very weak;</span> ${he} struggles with day-to-day tasks. `;
 	} else {
-		r += `${He} has relatively normal legs and thighs with `;
+		r += `<span class="red">frail;</span> ${he} can barely hold ${himself} up. `;
+	}
+
+	if (arcology.FSGenderFundamentalistLawBeauty + arcology.FSGenderRadicalistLawBeauty + arcology.FSSlimnessEnthusiastLaw > 0 && arcology.FSPhyscialIdealist === "unset" && !arcology.FSHedonisticDecadanceStrongFat) {
+		if (arcology.FSPhyscialIdealistLaw > 0 && child.muscles > 50) {
+			r += `${He} is entirely too muscular for the fashionable feminine ideal. `;
+		} else if (child.muscles > 30) {
+			r += `${He} is entirely too muscular for the fashionable feminine ideal. `;
+		}
+	}
+
+	if (!child.amp) {
+		if (child.weight > 190) {
+			r += `${He} has hugely thick arms with sagging fat rolls and `;
+		} else if (child.weight > 160) {
+			r += `${He} has thick arms with drooping fat folds and `;
+		} else if (child.weight > 130) {
+			r += `${He} has plump arms with `;
+		} else if (child.weight > 97) {
+			r += `${He} has chubby arms with `;
+		} else {
+			r += `${He} has normal arms with `;
+		}
 	}
 
 	if (child.muscles > 95) {
 		r += `huge muscles`;
 		if (child.weight > 95) {
-			r += ` hidden beneath ${his} soft flab`;
+			r += ` hidden beneath ${his} soft flesh `;
 		}
 		r += `. `;
 	} else if (child.muscles > 30) {
 		r += `obvious muscles`;
 		if (child.weight > 95) {
-			r += ` hidden beneath ${his} soft flab`;
+			r += ` hidden beneath ${his} soft flesh `;
 		}
 		r += `. `;
 	} else if (child.muscles > 5) {
-		r += `tones muscles`;
+		r += `toned muscles`;
 		if (child.weight > 30) {
-			r += ` hidden beneath ${his} soft flab`;
+			r += ` hidden beneath ${his} soft flesh `;
 		}
 		r += `. `;
 	} else {
-		r += `barely any muscle in them. `;
+		r += `little muscle to them. `;
 	}
-}
 
-// r += App.Desc.heel(child);	TODO:
+	if (child.skill.combat > 0) {
+		r += `${He} is <span class="aquamarine"skilled at combat:</span> ${he} is comfortable with the use of modern firearms and edges weapons, and ${his} hands `;
+		if (child.amp === -4) {
+			r += `would be deadly weapons even if they weren't full of deadly weapons already`;
+		} else if (child.amp > 0) {
+			r += `would be deadly weapons if ${he} had any`;
+		} else {
+			r += `are deadly weapons`;
+		}
+		r += `. `;
+	}
 
-if (V.showBodyMods) {
-	if (["ankles", "back", "calves", "chest", "feet", "hands", "left ankle", "left calf", "left foot", "left hand", "left lower arm", "left shoulder", "left upper arm", "left wrist", "lower arms", "lower back", "right ankle", "right calf", "right foot", "right hand", "right lower arm", "right shoulder", "right upper arm", "right wrist", "shoulders", "upper arms", "wrists"].includes(child.brandLocation)) {
-		// r += App.Desc.brand(child);
+	if (child.counter.pitKills > 0) {
+		r += `${child.counter.pitKills} slaves have died by ${his} hand in pit fights. `;
 	}
-}
 
-// r += App.Desc.skin(child);	TODO:
+	if (child.corsetPiercing > 0) {
+		// r += App.Desc.corsetPiercing(child);	TODO:
+	}
 
-if (V.saleDescription) {
-	// r += App.Desc.accent(child);	TODO:
-}
+	if (!child.amp) {
+		if (child.weight > 190) {
+			r += `${He} has extremely fat legs with immense soft, rather uneven thighs and `;
+		} else if (child.weight > 160) {
+			r += `${He} has very fat legs with massively thick, soft, somewhat uneven thighs and `;
+		} else if (child.weight > 130) {
+			r += `${He} has fat legs with hugely thick, soft thighs and `;
+		} else if (child.weight > 97) {
+			r += `${He} has fat legs with thick, soft thighs and `;
+		} else if (child.weight > 95) {
+			r += `${He} has normal legs with thick, soft thighs and `;
+		} else {
+			r += `${He} has relatively normal legs and thighs with `;
+		}
 
-if (child.markings === "birthmark" && !child.prestige && child.pornPrestige < 2) {
-	r += `${He} has a large, liver-colored birthmark, detracting from ${his} beauty. `;
-}
-if (child.skin === "sun tanned") {
-	if (child.releaseRules !== "restrictive" && child.releaseRules !== "masturbation" && child.releaseRules !== "chastity") {
-		if (child.fetishKnown && child.fetishStrength > 60) {
-			r += `${His} tan is slightly uneven, since ${he} enjoys`;
-			switch (child.fetish) {
-				case "buttslut":
-					r += `letting other tanned slaves share a tanning bed with ${him} so they can sodomize ${him} while ${he} tans. `;
-					break;
-				case "cumslut":
-					r += `letting other tanned slaves share a tanning bed with ${him} so they get oral from ${him} while ${he} tans. `;
-					break;
-				case "sadist":
-					r += `forcing inferior slaves into the tanning beds with ${him} so ${he} can sodomize them while ${he} tans. `;
-					break;
-				case "dom":
-					r += `bringing other slaves into the tanning beds with ${him} so ${he} can fuck them while ${he} tans. `;
-					break;
-				case "masochist":
-				case "submissive":
-					r += `letting other slaves into the tanning beds with ${him} so they can fuck ${him} while ${he} tans. `;
-					break;
-				case "boobs":
-					r += `bringing other slaves into the tanning beds with ${him} so ${he} can tittyfuck them while ${he} tans. `;
-					break;
-				case "pregnancy":
-					if (Math.random() * 100 < V.seeDicks) {
-						r += `letting slaves with dicks into the tanning beds with ${him} so they can cum inside ${him} while ${he} tans. `;
-					}
-					break;
-				default:
-					r += `bringing other slaves into the tanning beds with ${him} to have sex while ${he} tans. `;
-					break;
+		if (child.muscles > 95) {
+			r += `huge muscles`;
+			if (child.weight > 95) {
+				r += ` hidden beneath ${his} soft flab`;
+			}
+			r += `. `;
+		} else if (child.muscles > 30) {
+			r += `obvious muscles`;
+			if (child.weight > 95) {
+				r += ` hidden beneath ${his} soft flab`;
+			}
+			r += `. `;
+		} else if (child.muscles > 5) {
+			r += `tones muscles`;
+			if (child.weight > 30) {
+				r += ` hidden beneath ${his} soft flab`;
 			}
+			r += `. `;
+		} else {
+			r += `barely any muscle in them. `;
 		}
 	}
-}
-
-if (V.showClothing && !V.saleDescription) {
-	// r += App.Desc.ear(child);	TODO:
-	// r += App.Desc.upperFace(child);	TODO:
-	// r += App.Desc.hair(child);	TODO:
-} else {
-	r += `${His} hair is ${child.hColor}`;
-	if (child.hColor !== child.eyebrowHColor) {
-		r += `, with ${child.eyebrowHColor} eyebrows`;
-	}
-	r += `. `;
-	if (child.hColor === "red" && child.hLength >= 10) {
-		if (child.markings === "freckles" || (child.markings === "heavily freckled")) {
-			if (skinToneLevel(child.skin) > 5 && skinToneLevel(child) < 10) {
-				r += `It goes perfectly with ${his} ${child.skin} skin and freckles. `;
-			}
-		}
-	}
-}
-
-let pubertyAge = Math.max(child.pubertyAgeXX, child.pubertyAgeXY);
-if (child.physicalAge < pubertyAge - 2) {
-	r += `${He} is too sexually immature to have armpit hair. `;
-} else if (child.underArmHStyle === "hairless") {
-	r += `${His} armpits are perfectly smooth and naturally hairless. `;
-} else if (child.underArmHStyle === "bald") {
-	r += `${His} armpits no longer grow hair, leaving them smooth and hairless. `;
-} else if (child.underArmHStyle === "waxed") {
-	r += `${His} armpits are waxed and smooth. `;
-} else if (child.physicalAge < pubertyAge - 1) {
-	r += `${He} has a few ${child.underArmHColor} wisps of armpit hair. `;
-} else if (child.physicalAge < pubertyAge) {
-	r += `${He} is on the verge of puberty and has a small patch of ${child.underArmHColor} armpit hair. `;
-} else if (child.underArmHStyle === "shaved") {
-	r += `${His} armpits appear hairless, but closer inspection reveals light, ${child.underArmHColor} stubble. `;
-} else if (child.underArmHStyle === "neat") {
-	r += `${His} armpit hair is neatly trimmed `;
-	if (child.amp) {
-		r += `since it is always in full view`;
-	} else {
-		r += ` to not be visible unless ${he} lifts ${his} arms`;
+
+	// r += App.Desc.heel(child);	TODO:
+
+	if (V.showBodyMods) {
+		if (["ankles", "back", "calves", "chest", "feet", "hands", "left ankle", "left calf", "left foot", "left hand", "left lower arm", "left shoulder", "left upper arm", "left wrist", "lower arms", "lower back", "right ankle", "right calf", "right foot", "right hand", "right lower arm", "right shoulder", "right upper arm", "right wrist", "shoulders", "upper arms", "wrists"].includes(child.brandLocation)) {
+			// r += App.Desc.brand(child);
+		}
 	}
-	r += `. `;
-} else if (child.underArmHStyle === "bushy") {
-	r += `${His} ${child.underArmHColor} armpit hair has been allowed to grow freely`;
-	if (child.amp) {
-		r += ` creating two bushy patches under where ${his} arms used to be`;
+
+	// r += App.Desc.skin(child);	TODO:
+
+	if (V.saleDescription) {
+		// r += App.Desc.accent(child);	TODO:
+	}
+
+	if (child.markings === "birthmark" && !child.prestige && child.pornPrestige < 2) {
+		r += `${He} has a large, liver-colored birthmark, detracting from ${his} beauty. `;
+	}
+	if (child.skin === "sun tanned") {
+		if (child.releaseRules !== "restrictive" && child.releaseRules !== "masturbation" && child.releaseRules !== "chastity") {
+			if (child.fetishKnown && child.fetishStrength > 60) {
+				r += `${His} tan is slightly uneven, since ${he} enjoys`;
+				switch (child.fetish) {
+					case "buttslut":
+						r += `letting other tanned slaves share a tanning bed with ${him} so they can sodomize ${him} while ${he} tans. `;
+						break;
+					case "cumslut":
+						r += `letting other tanned slaves share a tanning bed with ${him} so they get oral from ${him} while ${he} tans. `;
+						break;
+					case "sadist":
+						r += `forcing inferior slaves into the tanning beds with ${him} so ${he} can sodomize them while ${he} tans. `;
+						break;
+					case "dom":
+						r += `bringing other slaves into the tanning beds with ${him} so ${he} can fuck them while ${he} tans. `;
+						break;
+					case "masochist":
+					case "submissive":
+						r += `letting other slaves into the tanning beds with ${him} so they can fuck ${him} while ${he} tans. `;
+						break;
+					case "boobs":
+						r += `bringing other slaves into the tanning beds with ${him} so ${he} can tittyfuck them while ${he} tans. `;
+						break;
+					case "pregnancy":
+						if (Math.random() * 100 < V.seeDicks) {
+							r += `letting slaves with dicks into the tanning beds with ${him} so they can cum inside ${him} while ${he} tans. `;
+						}
+						break;
+					default:
+						r += `bringing other slaves into the tanning beds with ${him} to have sex while ${he} tans. `;
+						break;
+				}
+			}
+		}
+	}
+
+	if (V.showClothing && !V.saleDescription) {
+		// r += App.Desc.ear(child);	TODO:
+		// r += App.Desc.upperFace(child);	TODO:
+		// r += App.Desc.hair(child);	TODO:
 	} else {
-		r += ` and can be seen poking out from under ${his} arms at all times`;
-	}
-	r += `. `;
-}
-
-if (!child.voice) {
-	r += `${He} is <span class="pink">completely silent,</span> which is understandable, since ${he}'s mute. `;
-} else {
-	if (child.lips > 95) {
-		r += `${He} is <span class="pink">effectively mute,</span> since ${his} lips are so large that ${he} can no longer speak intelligibly. ${He} can still `;
-		if (child.devotion > 50) {
-			r += `moan`;
-		} else if (child.devotion > 20) {
-			r += `whimper`;
+		r += `${His} hair is ${child.hColor}`;
+		if (child.hColor !== child.eyebrowHColor) {
+			r += `, with ${child.eyebrowHColor} eyebrows`;
+		}
+		r += `. `;
+		if (child.hColor === "red" && child.hLength >= 10) {
+			if (child.markings === "freckles" || (child.markings === "heavily freckled")) {
+				if (skinToneLevel(child.skin) > 5 && skinToneLevel(child) < 10) {
+					r += `It goes perfectly with ${his} ${child.skin} skin and freckles. `;
+				}
+			}
+		}
+	}
+
+	let pubertyAge = Math.max(child.pubertyAgeXX, child.pubertyAgeXY);
+	if (child.physicalAge < pubertyAge - 2) {
+		r += `${He} is too sexually immature to have armpit hair. `;
+	} else if (child.underArmHStyle === "hairless") {
+		r += `${His} armpits are perfectly smooth and naturally hairless. `;
+	} else if (child.underArmHStyle === "bald") {
+		r += `${His} armpits no longer grow hair, leaving them smooth and hairless. `;
+	} else if (child.underArmHStyle === "waxed") {
+		r += `${His} armpits are waxed and smooth. `;
+	} else if (child.physicalAge < pubertyAge - 1) {
+		r += `${He} has a few ${child.underArmHColor} wisps of armpit hair. `;
+	} else if (child.physicalAge < pubertyAge) {
+		r += `${He} is on the verge of puberty and has a small patch of ${child.underArmHColor} armpit hair. `;
+	} else if (child.underArmHStyle === "shaved") {
+		r += `${His} armpits appear hairless, but closer inspection reveals light, ${child.underArmHColor} stubble. `;
+	} else if (child.underArmHStyle === "neat") {
+		r += `${His} armpit hair is neatly trimmed `;
+		if (child.amp) {
+			r += `since it is always in full view`;
+		} else {
+			r += ` to not be visible unless ${he} lifts ${his} arms`;
+		}
+		r += `. `;
+	} else if (child.underArmHStyle === "bushy") {
+		r += `${His} ${child.underArmHColor} armpit hair has been allowed to grow freely`;
+		if (child.amp) {
+			r += ` creating two bushy patches under where ${his} arms used to be`;
 		} else {
-			r += `scream`;
+			r += ` and can be seen poking out from under ${his} arms at all times`;
 		}
-		r += ` through them, though. `;
+		r += `. `;
 	}
-}
 
-if (V.showBodyMods) {
-	// r += App.Desc.earPiercing(child);	TODO:
-	// r += App.Desc.nosePiercing(child);	TODO:
-	// r += App.Desc.eyebrowPiercing(child);	TODO:
-	// r += App.Desc.customTat(child);	TODO:
-}
+	if (!child.voice) {
+		r += `${He} is <span class="pink">completely silent,</span> which is understandable, since ${he}'s mute. `;
+	} else {
+		if (child.lips > 95) {
+			r += `${He} is <span class="pink">effectively mute,</span> since ${his} lips are so large that ${he} can no longer speak intelligibly. ${He} can still `;
+			if (child.devotion > 50) {
+				r += `moan`;
+			} else if (child.devotion > 20) {
+				r += `whimper`;
+			} else {
+				r += `scream`;
+			}
+			r += ` through them, though. `;
+		}
+	}
 
-// r += App.Desc.face(child);	TODO:
-// r += App.Desc.mouth(child);	TODO:
+	if (V.showBodyMods) {
+		// r += App.Desc.earPiercing(child);	TODO:
+		// r += App.Desc.nosePiercing(child);	TODO:
+		// r += App.Desc.eyebrowPiercing(child);	TODO:
+		// r += App.Desc.customTat(child);	TODO:
+	}
 
-if (V.showClothing && !V.saleDescription) {
-	// r += App.Desc.collar(child);	TODO:
-	if (child.relationship > 4) { // TODO: will children be able to get married?
-		if (child.amp !== 1) {
-			r += `${He} has a simple gold band on the little finger of ${his} left hand. `;
-		} else {
-			r += `${He} has a simple gold band on a length of chain around ${his} neck. `;
+	// r += App.Desc.face(child);	TODO:
+	// r += App.Desc.mouth(child);	TODO:
+
+	if (V.showClothing && !V.saleDescription) {
+		// r += App.Desc.collar(child);	TODO:
+		if (child.relationship > 4) { // TODO: will children be able to get married?
+			if (child.amp !== 1) {
+				r += `${He} has a simple gold band on the little finger of ${his} left hand. `;
+			} else {
+				r += `${He} has a simple gold band on a length of chain around ${his} neck. `;
+			}
+		} else if (child.relationship === -3) {
+			if (child.amp !== 1) {
+				r += `${He} has a simple steel band on the little finger of ${his} left hand. `;
+			} else {
+				r += `${He} has a simple steel band on a length of cord around ${his} neck. `;
+			}
 		}
-	} else if (child.relationship === -3) {
-		if (child.amp !== 1) {
-			r += `${He} has a simple steel band on the little finger of ${his} left hand. `;
-		} else {
-			r += `${He} has a simple steel band on a length of cord around ${his} neck. `;
-		}
-	}
-}
-
-// r += App.Desc.nails(child)	TODO:
-
-if (child.minorInjury !== 0 && child.minorInjury !== "sore ass") {
-	r += `${He} is sporting a <span class="red">$activeChild.minorInjury,</span> covered by makeup. `;
-}
-
-r += `<br>&nbsp;&nbsp;&nbsp;&nbsp;`;
-
-// r += App.Desc.boobs(child);	TODO:
-// r += App.Desc.boobsShape(child);	TODO:
-// r += App.Desc.boobsExtra(child);	TODO:
-if (V.showBodyMods) {
-	// r += App.Desc.boobsTat(child);	TODO:
-}
-// r += App.Desc.boobsBrand(child);	TODO:
-// r += App.Desc.shoulder(child);	TODO:
-// r += App.Desc.nipples(child);	TODO:
-if (V.showBodyMods) {
-	// r += App.Desc.nipplesPiercing(child);	TODO:
-}
-// r += App.Desc.areolae(child);	TODO:
-
-if (child.inflation > 0) { // TODO: will children be able to be inflated?
-	// r += App.Desc.bellyInflation(child);	TODO:
-} else if (child.bellyImplant >= 2000) {
-	// r += App.Desc.bellyImplant;	TODO:
-}
-// r += App.Desc.butt(child);
-
-r += `<br>&nbsp;&nbsp;&nbsp;&nbsp;`;
-
-// r += App.Desc.crotch(child);
-// r += App.Desc.dick(child);
-// r += App.Desc.vagina(child);
-// r += App.Desc.anus(child);
-
-r += `<br>&nbsp;&nbsp;&nbsp;&nbsp;`;
-
-switch (child.drugs) {
-	case "super fertility drugs":
-		if (isFertile(child) && !child.preg) {
-			r += `${He} is constantly dripping sexual fluids and ${his} breasts and belly are slightly swollen. The super fertility drugs have ${him} ready to be impregnated. `;
-		}
-		break;
-	case "fertility drugs":
-		if (isFertile(child) && !child.preg) {
-			r += `${He} smells of sexual fluids and ${his} breasts are slightly swollen. The fertility drugs have ${him} ready to be impregnated. `;
-		}
-		break;
-	case "intensive breast injections":
-	case "hyper breast injections":
-		r += `${He} ${child.amp !== 1 ? `massages ${his} tits uncomfortably` : `squirms under the unfamiliar weight on ${his} chest`}. The ${child.drugs === "hyper breast injections" ? `HA-HGH` : `A-HGH`} must be having an effect, painfully stretching ${his} breasts as the mammary and adipose tissue underneath grows explosively. `;
-		break;
-	case "intensive butt injections":
-	case "hyper butt injections":
-		r += `${He} ${child.amp !== 1 ? `massages ${his} butt uncomfortably` : `squirms under the unfamiliar weight on ${his} backside`}. The ${child.drugs === "hyper butt injections" ? `HA-HGH` : `A-HGH`} must be having an effect, painfully stretching ${his} buttocks as the muscular and adipose tissue underneath grows explosively. `;
-		break;
-	case "intensive penis enhancement":
-	case "hyper penis enhancement":
-		`${He} ${child.amp !== 1 ? `massages ${his} ${child.dick > 0 ? `dick` : `clit`} uncomfortably` : `squirms under the unfamiliar weight in ${his} ${child.dick > 0 ? `dick` : `clit`}`}. The ${child.drugs === "hyper penis enhancement" ? `HA-HGH` : `A-HGH`} must be having an effect, painfully lengthening and thickening ${his} ${child.dick > 0 ? `dick` : `clit`}. `;
-		break;
-	case "intensive testicle enhancement":
-	case "hyper testicle enhancement":
-		r += `${He} ${child.amp !== 1 ? `${He} massages ${his} balls uncomfortably` : `${He} squirms under the unfamiliar pressure in ${his} balls`} as `;
-		if (child.drugs === "hyper testicle enhancement") {
-			if (child.balls < 20) {
-				r += ` as cum drools from the tip of ${his} dick. `;
-			} else if (child.balls >= 50) {
-				r += ` as a thick cascade of cum pours from the tip of ${his} cock. `;
-			} else if (child.balls >= 37) {
-				r += ` as cum freely flows from the tip of ${his} cock, pooling under ${him}. `;
-			} else if (child.balls >= 20) {
-				r += ` as precum pools under ${him}. `;
-			}
-			r += `The HA-HGH must be having an effect, painfully expanding ${his} testicles. `;
-		} else {
-			r += `a bead of cum forms on tip of ${his} dick. The A-HGH must be having an effect, painfully expanding ${his} testicles. `;
-		}
-		break;
-	case "female hormone injections":
-	case "male hormore injections":
-		r += `${He} looks very ill, likely a side effect of the extreme hormone injections. `;
-		break;
-	case "appetite suppresors":
-		r += `Despite how little ${he} has been eating lately, ${his} stomach barely growls at all. `;
-		break;
-	case "penis atrophiers":
-		r += `${He} ${child.amp !== 1 ? `massages ${his} dick uncomfortably` : `squirms in respose to the discomfort in ${his} dick`}. The A-TRPH must be having an effect, painfully causing ${his} body to atrophy ${his} dick. `;
-		break;
-	case "testicle atropiers":
-		r += `${He} ${child.amp !== 1 ? `massages ${his} balls uncomfortably` : `squirms in respose to the discomfort in ${his} balls`}. The A-TRPH must be having an effect, painfully causing ${his} body to atrophy ${his} balls. `;
-		break;
-	case "clitoris atrophiers":
-		r += `${He} ${child.amp !== 1 ? `massages ${his} clit uncomfortably` : `squirms in respose to the discomfort in ${his} clit`}. The A-TRPH must be having an effect, painfully causing ${his} body to atrophy ${his} clit. `;
-		break;
-	case "labia atrophiers":
-		r += `${He} ${child.amp !== 1 ? `massages ${his} pussy uncomfortably` : `squirms in respose to the discomfort in ${his} pussy`}. The A-TRPH must be having an effect, painfully causing ${his} body to atrophy ${his} pussy. `;
-		break;
-	case "nipple atrophiers":
-		r += `${He} ${child.amp !== 1 ? `massages ${his} nipples uncomfortably` : `squirms in respose to the discomfort in ${his} nipples`}. The A-TRPH must be having an effect, painfully causing ${his} body to atrophy ${his} nipples. `;
-		break;
-	case "lip atrophiers":
-		r += `${He} ${child.amp !== 1 ? `massages ${his} lips uncomfortably` : `licks ${his} lips uncomfortably`}. The A-TRPH must be having an effect, painfully causing ${his} body to atrophy ${his} lips. `;
-		break;
-	case "breast redistributors":
-	case "butt redistributors":
-		r += `${He} ${child.amp !== 1 ? `pinches at the fat building on ${his} belly and lets off a sigh` : `squirms under the added weight building on ${his} belly`}. The RDST-D must be having an effect, encouraging ${his} body to redistribute ${his} ${child.drugs === "breast redistributors" ? `breasts'` : `buttocks'`} adipose tissue to ${his} middle. `;
-		break;
-	case "sag-B-gone":
-		r += `${His} breasts are shiny from the layer of anti-sag cream rubbed onto them. They might be a little perkier, or not. `;
-		break;
-}
-
-if (child.aphrodisiacs > 0 || child.inflationType === "aphrodisiacs") {
-	if (child.inflationType === "aphrodisiacs") {
-		r += `${He}'s literally full of`;
-		if (child.amp) {
-			r += `aphrodisiacs, but is an amputee, so ${he} cannot touch ${himself}. ${He} writhes with extreme sexual frustration, desperately trying to relieve ${himself}, but only managing to stir up the aphrodisiacs contained in ${his} gut, strengthening their effects even more. `;
-		} else if (child.chastityVagina) {
-			r += `aphrodisiacs, but is wearing a chastity belt and cannot touch ${himself}. ${He} writhes with extreme sexual frustration, desperately trying to relieve ${himself}, but only managing to stir up the aphrodisiacs contained in ${his} gut, strengthening their effects even more. `;
-		} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0 && child.vagina === -1) {
-			r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} shaft with one hand while ${he} fingers ${his} anus with the other. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}${His} frantic masturbation forces ${his} distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in ${his} gut and strengthening their effects even more. `;
-		} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0) {
-			r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} shaft and pussy with one hand while ${he} fingers ${his} anus with the other. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}${His} frantic masturbation forces ${his} distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in ${his} gut and strengthening their effects even more. `;
-		} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.vagina !== -1) {
-			r += `aphrodisiacs, has ${V.seeDicks > 0 ? `no penis and ` : ``}no vagina, and is not allowed to masturbate, so as ${he} stands before you ${he} `;
-			if (child.anus === 0) {
-				r += `plays with a nipple with one hand while furiously rubbing ${his} virgin anus and the sensitive perineum beneath it with the other, desperately trying to get ${himself} off. ${His} frantic attempts force ${his} distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in ${his} gut and strengthening their effects even more. `;
+	}
+
+	// r += App.Desc.nails(child)	TODO:
+
+	if (child.minorInjury !== 0 && child.minorInjury !== "sore ass") {
+		r += `${He} is sporting a <span class="red">$activeChild.minorInjury,</span> covered by makeup. `;
+	}
+
+	r += `<br>&nbsp;&nbsp;&nbsp;&nbsp;`;
+
+	// r += App.Desc.boobs(child);	TODO:
+	// r += App.Desc.boobsShape(child);	TODO:
+	// r += App.Desc.boobsExtra(child);	TODO:
+	if (V.showBodyMods) {
+		// r += App.Desc.boobsTat(child);	TODO:
+	}
+	// r += App.Desc.boobsBrand(child);	TODO:
+	// r += App.Desc.shoulder(child);	TODO:
+	// r += App.Desc.nipples(child);	TODO:
+	if (V.showBodyMods) {
+		// r += App.Desc.nipplesPiercing(child);	TODO:
+	}
+	// r += App.Desc.areolae(child);	TODO:
+
+	if (child.inflation > 0) { // TODO: will children be able to be inflated?
+		// r += App.Desc.bellyInflation(child);	TODO:
+	} else if (child.bellyImplant >= 2000) {
+		// r += App.Desc.bellyImplant;	TODO:
+	}
+	// r += App.Desc.butt(child);
+
+	r += `<br>&nbsp;&nbsp;&nbsp;&nbsp;`;
+
+	// r += App.Desc.crotch(child);
+	// r += App.Desc.dick(child);
+	// r += App.Desc.vagina(child);
+	// r += App.Desc.anus(child);
+
+	r += `<br>&nbsp;&nbsp;&nbsp;&nbsp;`;
+
+	switch (child.drugs) {
+		case "super fertility drugs":
+			if (isFertile(child) && !child.preg) {
+				r += `${He} is constantly dripping sexual fluids and ${his} breasts and belly are slightly swollen. The super fertility drugs have ${him} ready to be impregnated. `;
+			}
+			break;
+		case "fertility drugs":
+			if (isFertile(child) && !child.preg) {
+				r += `${He} smells of sexual fluids and ${his} breasts are slightly swollen. The fertility drugs have ${him} ready to be impregnated. `;
+			}
+			break;
+		case "intensive breast injections":
+		case "hyper breast injections":
+			r += `${He} ${child.amp !== 1 ? `massages ${his} tits uncomfortably` : `squirms under the unfamiliar weight on ${his} chest`}. The ${child.drugs === "hyper breast injections" ? `HA-HGH` : `A-HGH`} must be having an effect, painfully stretching ${his} breasts as the mammary and adipose tissue underneath grows explosively. `;
+			break;
+		case "intensive butt injections":
+		case "hyper butt injections":
+			r += `${He} ${child.amp !== 1 ? `massages ${his} butt uncomfortably` : `squirms under the unfamiliar weight on ${his} backside`}. The ${child.drugs === "hyper butt injections" ? `HA-HGH` : `A-HGH`} must be having an effect, painfully stretching ${his} buttocks as the muscular and adipose tissue underneath grows explosively. `;
+			break;
+		case "intensive penis enhancement":
+		case "hyper penis enhancement":
+			`${He} ${child.amp !== 1 ? `massages ${his} ${child.dick > 0 ? `dick` : `clit`} uncomfortably` : `squirms under the unfamiliar weight in ${his} ${child.dick > 0 ? `dick` : `clit`}`}. The ${child.drugs === "hyper penis enhancement" ? `HA-HGH` : `A-HGH`} must be having an effect, painfully lengthening and thickening ${his} ${child.dick > 0 ? `dick` : `clit`}. `;
+			break;
+		case "intensive testicle enhancement":
+		case "hyper testicle enhancement":
+			r += `${He} ${child.amp !== 1 ? `${He} massages ${his} balls uncomfortably` : `${He} squirms under the unfamiliar pressure in ${his} balls`} as `;
+			if (child.drugs === "hyper testicle enhancement") {
+				if (child.balls < 20) {
+					r += ` as cum drools from the tip of ${his} dick. `;
+				} else if (child.balls >= 50) {
+					r += ` as a thick cascade of cum pours from the tip of ${his} cock. `;
+				} else if (child.balls >= 37) {
+					r += ` as cum freely flows from the tip of ${his} cock, pooling under ${him}. `;
+				} else if (child.balls >= 20) {
+					r += ` as precum pools under ${him}. `;
+				}
+				r += `The HA-HGH must be having an effect, painfully expanding ${his} testicles. `;
 			} else {
-				r += `uses `;
-				if (child.anus > 2) {
-					r += `${his} entire hand, formed into a beak shape,`;
-				} else if (child.anus > 1) {
-					r += `two fingers`;
+				r += `a bead of cum forms on tip of ${his} dick. The A-HGH must be having an effect, painfully expanding ${his} testicles. `;
+			}
+			break;
+		case "female hormone injections":
+		case "male hormore injections":
+			r += `${He} looks very ill, likely a side effect of the extreme hormone injections. `;
+			break;
+		case "appetite suppresors":
+			r += `Despite how little ${he} has been eating lately, ${his} stomach barely growls at all. `;
+			break;
+		case "penis atrophiers":
+			r += `${He} ${child.amp !== 1 ? `massages ${his} dick uncomfortably` : `squirms in respose to the discomfort in ${his} dick`}. The A-TRPH must be having an effect, painfully causing ${his} body to atrophy ${his} dick. `;
+			break;
+		case "testicle atropiers":
+			r += `${He} ${child.amp !== 1 ? `massages ${his} balls uncomfortably` : `squirms in respose to the discomfort in ${his} balls`}. The A-TRPH must be having an effect, painfully causing ${his} body to atrophy ${his} balls. `;
+			break;
+		case "clitoris atrophiers":
+			r += `${He} ${child.amp !== 1 ? `massages ${his} clit uncomfortably` : `squirms in respose to the discomfort in ${his} clit`}. The A-TRPH must be having an effect, painfully causing ${his} body to atrophy ${his} clit. `;
+			break;
+		case "labia atrophiers":
+			r += `${He} ${child.amp !== 1 ? `massages ${his} pussy uncomfortably` : `squirms in respose to the discomfort in ${his} pussy`}. The A-TRPH must be having an effect, painfully causing ${his} body to atrophy ${his} pussy. `;
+			break;
+		case "nipple atrophiers":
+			r += `${He} ${child.amp !== 1 ? `massages ${his} nipples uncomfortably` : `squirms in respose to the discomfort in ${his} nipples`}. The A-TRPH must be having an effect, painfully causing ${his} body to atrophy ${his} nipples. `;
+			break;
+		case "lip atrophiers":
+			r += `${He} ${child.amp !== 1 ? `massages ${his} lips uncomfortably` : `licks ${his} lips uncomfortably`}. The A-TRPH must be having an effect, painfully causing ${his} body to atrophy ${his} lips. `;
+			break;
+		case "breast redistributors":
+		case "butt redistributors":
+			r += `${He} ${child.amp !== 1 ? `pinches at the fat building on ${his} belly and lets off a sigh` : `squirms under the added weight building on ${his} belly`}. The RDST-D must be having an effect, encouraging ${his} body to redistribute ${his} ${child.drugs === "breast redistributors" ? `breasts'` : `buttocks'`} adipose tissue to ${his} middle. `;
+			break;
+		case "sag-B-gone":
+			r += `${His} breasts are shiny from the layer of anti-sag cream rubbed onto them. They might be a little perkier, or not. `;
+			break;
+	}
+
+	if (child.aphrodisiacs > 0 || child.inflationType === "aphrodisiacs") {
+		if (child.inflationType === "aphrodisiacs") {
+			r += `${He}'s literally full of`;
+			if (child.amp) {
+				r += `aphrodisiacs, but is an amputee, so ${he} cannot touch ${himself}. ${He} writhes with extreme sexual frustration, desperately trying to relieve ${himself}, but only managing to stir up the aphrodisiacs contained in ${his} gut, strengthening their effects even more. `;
+			} else if (child.chastityVagina) {
+				r += `aphrodisiacs, but is wearing a chastity belt and cannot touch ${himself}. ${He} writhes with extreme sexual frustration, desperately trying to relieve ${himself}, but only managing to stir up the aphrodisiacs contained in ${his} gut, strengthening their effects even more. `;
+			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0 && child.vagina === -1) {
+				r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} shaft with one hand while ${he} fingers ${his} anus with the other. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}${His} frantic masturbation forces ${his} distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in ${his} gut and strengthening their effects even more. `;
+			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0) {
+				r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} shaft and pussy with one hand while ${he} fingers ${his} anus with the other. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}${His} frantic masturbation forces ${his} distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in ${his} gut and strengthening their effects even more. `;
+			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.vagina !== -1) {
+				r += `aphrodisiacs, has ${V.seeDicks > 0 ? `no penis and ` : ``}no vagina, and is not allowed to masturbate, so as ${he} stands before you ${he} `;
+				if (child.anus === 0) {
+					r += `plays with a nipple with one hand while furiously rubbing ${his} virgin anus and the sensitive perineum beneath it with the other, desperately trying to get ${himself} off. ${His} frantic attempts force ${his} distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in ${his} gut and strengthening their effects even more. `;
 				} else {
-					r += `a finger`;
+					r += `uses `;
+					if (child.anus > 2) {
+						r += `${his} entire hand, formed into a beak shape,`;
+					} else if (child.anus > 1) {
+						r += `two fingers`;
+					} else {
+						r += `a finger`;
+					}
+					r += ` to fuck ${his} own ass. ${His} frantic attempts force ${his} distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in ${his} gut and strengthening their effects even more. `;
 				}
-				r += ` to fuck ${his} own ass. ${His} frantic attempts force ${his} distended middle to jiggle obscenely, stirring up the aphrodisiacs contained in ${his} gut and strengthening their effects even more. `;
-			}
-		} else if (child.releaseRules === "permissive" || child.releaseRules === "masturbation") {
-			r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} clit with one hand while ${he} fingers ${his} anus with the other. `;
-		} else if (child.dick !== 0) {
-			r += `aphrodisiacs and is not allowed to masturbate, so as ${he} stands before you ${he} desperately presents ${his} open mouth, ${his} breasts, ${his} crotch, and ${his} anus in turn, hoping that something will entice you to give ${him} relief. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}`;
-		} else if (child.vagina === -1) {
-			r += `aphrodisiacs, has ${V.seeDicks > 0 ? `no penis and ` : ``}no vagina, and is not allowed to masturbate, so as ${he} stands before you ${he} desperately presents ${his} asshole, desperately hoping you'll fuck ${his} only real source of relief. `;
-		} else {
-			r += `aphrodisiacs and is not allowed to masturbate, so as ${he} stands before you ${he} desperately presents ${his} open mouth, ${his} breasts, ${his} pussy, and ${his} anus in turn, hoping that something will entice you to give ${him} relief. `;
-		}
-	} else if (child.aphrodisiacs > 1) {
-		r += `${He}'s swimming in`;
-		if (child.amp) {
-			r += `aphrodisiacs, but is an amputee, so ${he} cannot touch ${himself}. ${He} writhes with extreme sexual frustration, desperately trying to relieve ${himself}.`;
-		} else if (child.chastityVagina) {
-			r += `aphrodisiacs, but is wearing a chastity belt and cannot touch ${himself}. ${He} writhes with extreme sexual frustration, desperately trying to relieve ${himself}.`;
-		} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0 && child.vagina === -1) {
-			r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} shaft with one hand while ${he} fingers ${his} anus with the other. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}`;
-		} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0) {
-			r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} shaft and pussy with one hand while ${he} fingers ${his} anus with the other. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}`;
-		} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.vagina !== -1) {
-			r += `aphrodisiacs, has ${V.seeDicks > 0 ? `no penis and ` : ``}no vagina, and is not allowed to masturbate, so as ${he} stands before you ${he}`;
-			if (child.anus === 0) {
-				r += `plays with a nipple with one hand while furiously rubbing ${his} virgin anus and the sensitive perineum beneath it with the other, desperately trying to get ${himself} off.`;
+			} else if (child.releaseRules === "permissive" || child.releaseRules === "masturbation") {
+				r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} clit with one hand while ${he} fingers ${his} anus with the other. `;
+			} else if (child.dick !== 0) {
+				r += `aphrodisiacs and is not allowed to masturbate, so as ${he} stands before you ${he} desperately presents ${his} open mouth, ${his} breasts, ${his} crotch, and ${his} anus in turn, hoping that something will entice you to give ${him} relief. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}`;
+			} else if (child.vagina === -1) {
+				r += `aphrodisiacs, has ${V.seeDicks > 0 ? `no penis and ` : ``}no vagina, and is not allowed to masturbate, so as ${he} stands before you ${he} desperately presents ${his} asshole, desperately hoping you'll fuck ${his} only real source of relief. `;
 			} else {
-				r += `uses `;
-				if (child.anus > 2) {
-					r += `${his} entire hand, formed into a beak shape,`;
-				} else if (child.anus > 1) {
-					r += `two fingers`;
+				r += `aphrodisiacs and is not allowed to masturbate, so as ${he} stands before you ${he} desperately presents ${his} open mouth, ${his} breasts, ${his} pussy, and ${his} anus in turn, hoping that something will entice you to give ${him} relief. `;
+			}
+		} else if (child.aphrodisiacs > 1) {
+			r += `${He}'s swimming in`;
+			if (child.amp) {
+				r += `aphrodisiacs, but is an amputee, so ${he} cannot touch ${himself}. ${He} writhes with extreme sexual frustration, desperately trying to relieve ${himself}.`;
+			} else if (child.chastityVagina) {
+				r += `aphrodisiacs, but is wearing a chastity belt and cannot touch ${himself}. ${He} writhes with extreme sexual frustration, desperately trying to relieve ${himself}.`;
+			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0 && child.vagina === -1) {
+				r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} shaft with one hand while ${he} fingers ${his} anus with the other. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}`;
+			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0) {
+				r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} shaft and pussy with one hand while ${he} fingers ${his} anus with the other. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}`;
+			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.vagina !== -1) {
+				r += `aphrodisiacs, has ${V.seeDicks > 0 ? `no penis and ` : ``}no vagina, and is not allowed to masturbate, so as ${he} stands before you ${he}`;
+				if (child.anus === 0) {
+					r += `plays with a nipple with one hand while furiously rubbing ${his} virgin anus and the sensitive perineum beneath it with the other, desperately trying to get ${himself} off.`;
 				} else {
-					r += `a finger`;
+					r += `uses `;
+					if (child.anus > 2) {
+						r += `${his} entire hand, formed into a beak shape,`;
+					} else if (child.anus > 1) {
+						r += `two fingers`;
+					} else {
+						r += `a finger`;
+					}
+					r += ` to fuck ${his} own ass. `;
 				}
-				r += ` to fuck ${his} own ass. `;
+			} else if (child.releaseRules === "permissive" || child.releaseRules === "masturbation") {
+				r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} clit with one hand while ${he} fingers ${his} anus with the other.`;
+			} else if (child.dick !== 0) {
+				r += `aphrodisiacs and is not allowed to masturbate, so as ${he} stands before you ${he} desperately presents ${his} open mouth, ${his} breasts, ${his} crotch, and ${his} anus in turn, hoping that something will entice you to give ${him} relief. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}`;
+			} else if (child.vagina === -1) {
+				r += `aphrodisiacs, has ${V.seeDicks > 0 ? `no penis and ` : ``}no vagina, and is not allowed to masturbate, so as ${he} stands before you ${he} desperately presents ${his} asshole, desperately hoping you'll fuck ${his} only real source of relief.`;
+			} else {
+				r += `aphrodisiacs and is not allowed to masturbate, so as ${he} stands before you ${he} desperately presents ${his} open mouth, ${his} breasts, ${his} pussy, and ${his} anus in turn, hoping that something will entice you to give ${him} relief.`;
 			}
-		} else if (child.releaseRules === "permissive" || child.releaseRules === "masturbation") {
-			r += `aphrodisiacs and is allowed to masturbate, so as ${he} stands before you ${he} rubs ${his} clit with one hand while ${he} fingers ${his} anus with the other.`;
-		} else if (child.dick !== 0) {
-			r += `aphrodisiacs and is not allowed to masturbate, so as ${he} stands before you ${he} desperately presents ${his} open mouth, ${his} breasts, ${his} crotch, and ${his} anus in turn, hoping that something will entice you to give ${him} relief. ${canPenetrate(child) ? `${His} cock is painfully erect. ` : ``}`;
-		} else if (child.vagina === -1) {
-			r += `aphrodisiacs, has ${V.seeDicks > 0 ? `no penis and ` : ``}no vagina, and is not allowed to masturbate, so as ${he} stands before you ${he} desperately presents ${his} asshole, desperately hoping you'll fuck ${his} only real source of relief.`;
 		} else {
-			r += `aphrodisiacs and is not allowed to masturbate, so as ${he} stands before you ${he} desperately presents ${his} open mouth, ${his} breasts, ${his} pussy, and ${his} anus in turn, hoping that something will entice you to give ${him} relief.`;
-		}
-	} else {
-		if (child.amp) {
-			r += `${He}'s on aphrodisiacs, but is an amputee, so ${he} cannot touch ${himself}. ${He} writhes with sexual frustration.`;
-		} else if (child.chastityVagina) {
-			r += `${He}'s on aphrodisiacs, but is wearing a chastity belt and cannot touch ${himself}. ${He} writhes with sexual frustration.`;
-		} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0 && child.vagina === -1) {
-			r += `${He}'s on aphrodisiacs and is allowed to masturbate, so as ${he} obeys your commands ${he} idly rubs ${his} shaft with one hand while the other pinches a nipple.`;
-		} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0) {
-			r += `${He}'s on aphrodisiacs and is allowed to masturbate, so as ${he} obeys your commands ${he} idly rubs ${his} shaft and pussy with one hand while the other pinches a nipple.`;
-		} else if (child.releaseRules === "permissive" || child.releaseRules === "masturbation") {
-			r += `${He}'s on aphrodisiacs and is allowed to masturbate, so as ${he} obeys your commands ${he} idly rubs ${his} pussy with one hand while the other pinches a nipple.`;
-		} else if (child.dick !== 0 && canPenetrate(child)) {
-			r += `${He}'s on aphrodisiacs and is not allowed to masturbate, so as ${he} obeys your commands ${he} shifts ${his} weight uncomfortably. ${His} erect dick sways as ${he} does.`;
-		} else {
-			r += `${He}'s on aphrodisiacs and is not allowed to masturbate, so as ${he} obeys your commands ${he} shifts ${his} weight uncomfortably.`;
+			if (child.amp) {
+				r += `${He}'s on aphrodisiacs, but is an amputee, so ${he} cannot touch ${himself}. ${He} writhes with sexual frustration.`;
+			} else if (child.chastityVagina) {
+				r += `${He}'s on aphrodisiacs, but is wearing a chastity belt and cannot touch ${himself}. ${He} writhes with sexual frustration.`;
+			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0 && child.vagina === -1) {
+				r += `${He}'s on aphrodisiacs and is allowed to masturbate, so as ${he} obeys your commands ${he} idly rubs ${his} shaft with one hand while the other pinches a nipple.`;
+			} else if ((child.releaseRules === "permissive" || child.releaseRules === "masturbation") && child.dick !== 0) {
+				r += `${He}'s on aphrodisiacs and is allowed to masturbate, so as ${he} obeys your commands ${he} idly rubs ${his} shaft and pussy with one hand while the other pinches a nipple.`;
+			} else if (child.releaseRules === "permissive" || child.releaseRules === "masturbation") {
+				r += `${He}'s on aphrodisiacs and is allowed to masturbate, so as ${he} obeys your commands ${he} idly rubs ${his} pussy with one hand while the other pinches a nipple.`;
+			} else if (child.dick !== 0 && canPenetrate(child)) {
+				r += `${He}'s on aphrodisiacs and is not allowed to masturbate, so as ${he} obeys your commands ${he} shifts ${his} weight uncomfortably. ${His} erect dick sways as ${he} does.`;
+			} else {
+				r += `${He}'s on aphrodisiacs and is not allowed to masturbate, so as ${he} obeys your commands ${he} shifts ${his} weight uncomfortably.`;
+			}
 		}
 	}
-}
 
-if (child.addict > 0 && child.addict < 3) {
-	r += `${He} is a new <span class="cyan">aphrodisiac addict.</span>`;
-} else if (child.addict > 0 && child.addict < 10) {
-	r += `${He} is a confirmed <span class="cyan">aphrodisiac addict.</span>`;
-} else if (child.addict > 0) {
-	r += `${He} is completely <span class="cyan">dependent on aphrodisiacs,</span> and it is unlikely you will ever be able to wean ${him} off them.`;
-}
+	if (child.addict > 0 && child.addict < 3) {
+		r += `${He} is a new <span class="cyan">aphrodisiac addict.</span>`;
+	} else if (child.addict > 0 && child.addict < 10) {
+		r += `${He} is a confirmed <span class="cyan">aphrodisiac addict.</span>`;
+	} else if (child.addict > 0) {
+		r += `${He} is completely <span class="cyan">dependent on aphrodisiacs,</span> and it is unlikely you will ever be able to wean ${him} off them.`;
+	}
 
-V.saleDescription = 0, V.applyLaw = 0;
+	V.saleDescription = 0, V.applyLaw = 0;
 
-return r;
+	return r;
 };