mimic-data 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +77 -66
- package/dist/index.d.mts +48 -12
- package/dist/index.d.ts +48 -12
- package/dist/index.js +10580 -48
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +10580 -48
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/random.ts","../src/core/mimic.ts","../src/core/registry.ts","../src/locales/en_US.ts","../src/locales/ja_JP.ts","../src/locales/id_ID.ts","../src/locales/de_DE.ts","../src/locales/fr_FR.ts","../src/locales/pt_BR.ts","../src/locales/ko_KR.ts","../src/locales/en_AU.ts","../src/locales/zh_CN.ts","../src/locales/en_IN.ts","../src/locales/es_MX.ts","../src/locales/it_IT.ts","../src/locales/es_ES.ts","../src/locales/nl_NL.ts","../src/locales/en_CA.ts","../src/locales/en_GB.ts","../src/locales/ru_RU.ts","../src/locales/pl_PL.ts","../src/locales/tr_TR.ts","../src/locales/sv_SE.ts","../src/locales/nb_NO.ts","../src/locales/da_DK.ts","../src/locales/fi_FI.ts","../src/locales/es_AR.ts","../src/locales/es_CL.ts","../src/locales/th_TH.ts","../src/locales/vi_VN.ts","../src/locales/ms_MY.ts","../src/locales/en_SG.ts","../src/locales/en_PH.ts","../src/locales/en_NZ.ts","../src/locales/en_ZA.ts","../src/locales/pt_PT.ts","../src/locales/el_GR.ts","../src/locales/cs_CZ.ts","../src/locales/de_AT.ts","../src/locales/de_CH.ts","../src/locales/nl_BE.ts","../src/locales/hu_HU.ts","../src/locales/ro_RO.ts","../src/locales/ar_AE.ts","../src/locales/ar_SA.ts","../src/locales/ar_EG.ts","../src/locales/he_IL.ts","../src/locales/uk_UA.ts","../src/locales/sk_SK.ts","../src/locales/hr_HR.ts","../src/locales/rs_RS.ts","../src/locales/lt_LT.ts","../src/locales/lv_LV.ts","../src/locales/et_EE.ts","../src/locales/bg_BG.ts","../src/locales/is_IS.ts","../src/locales/ng_NG.ts","../src/locales/ke_KE.ts","../src/locales/pk_PK.ts","../src/locales/bd_BD.ts","../src/locales/ir_IR.ts","../src/locales/ma_MA.ts","../src/locales/co_CO.ts","../src/locales/pe_PE.ts","../src/locales/ve_VE.ts","../src/locales/gt_GT.ts","../src/locales/cr_CR.ts","../src/locales/tw_TW.ts","../src/index.ts"],"sourcesContent":["/**\n * Seeded random number generator using Mulberry32 algorithm\n * Provides reproducible random sequences for testing\n */\nexport class Random {\n private static seedValue: number | null = null;\n\n /**\n * Initialize seeded random with a specific seed\n * Call this to reproduce the same random sequence\n * @param seed - Number seed for reproducible randomness\n */\n static seed(seed: number): void {\n this.seedValue = seed;\n }\n\n /**\n * Reset to native Math.random() (non-deterministic)\n */\n static unseed(): void {\n this.seedValue = null;\n }\n\n /**\n * Get random number (seeded or native)\n */\n private static random(): number {\n if (this.seedValue !== null) {\n // Mulberry32 algorithm\n this.seedValue |= 0;\n this.seedValue = (this.seedValue + 0x6D2B79F5) | 0;\n let t = Math.imul(this.seedValue ^ (this.seedValue >>> 15), 1 | this.seedValue);\n t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t;\n return ((t ^ (t >>> 14)) >>> 0) / 4294967296;\n }\n return Math.random();\n }\n\n /**\n * Get random integer between min and max (inclusive)\n */\n static int(min: number, max: number): number {\n return Math.floor(this.random() * (max - min + 1)) + min;\n }\n\n /**\n * Get random float between min and max\n */\n static float(min: number, max: number, decimals: number = 2): number {\n const value = this.random() * (max - min) + min;\n return Number(value.toFixed(decimals));\n }\n\n /**\n * Get random boolean\n */\n static boolean(): boolean {\n return this.random() >= 0.5;\n }\n\n /**\n * Get random element from array\n */\n static pick<T>(array: T[]): T {\n return array[Math.floor(this.random() * array.length)];\n }\n\n /**\n * Shuffle array (Fisher-Yates algorithm)\n */\n static shuffle<T>(array: T[]): T[] {\n const result = [...array];\n for (let i = result.length - 1; i > 0; i--) {\n const j = Math.floor(this.random() * (i + 1));\n [result[i], result[j]] = [result[j], result[i]];\n }\n return result;\n }\n\n /**\n * Generate multiple random values at once\n */\n static multiple<T>(generator: () => T, count: number): T[] {\n const results: T[] = [];\n for (let i = 0; i < count; i++) {\n results.push(generator());\n }\n return results;\n }\n\n /**\n * Generate unique random values (no duplicates)\n */\n static unique<T>(generator: () => T, count: number, maxAttempts: number = 1000): T[] {\n const results = new Set<T>();\n let attempts = 0;\n\n while (results.size < count && attempts < maxAttempts) {\n results.add(generator());\n attempts++;\n }\n\n if (results.size < count) {\n throw new Error(\n `Could not generate ${count} unique values after ${maxAttempts} attempts. ` +\n 'The generator may have insufficient variety.'\n );\n }\n\n return Array.from(results);\n }\n}\n","import { LocaleDefinition, Gender, PersonData, AddressData, PhysicalData, WorkData, AgeRange, ContactData, CompanyData } from '../types';\nimport { Random } from './random';\n\nexport class Mimic {\n private locale: LocaleDefinition;\n private identityCache: ReturnType<typeof this.createIdentity> | null = null;\n private locationCache: ReturnType<typeof this.createLocation> | null = null;\n private physicalCache: ReturnType<typeof this.createPhysical> | null = null;\n private workCache: ReturnType<typeof this.createWork> | null = null;\n\n constructor(locale: LocaleDefinition) {\n this.locale = locale;\n }\n\n /**\n * Update the locale and clear caches\n */\n setLocale(locale: LocaleDefinition): void {\n this.locale = locale;\n this.clearCaches();\n }\n\n /**\n * Clear all cached generators\n */\n private clearCaches(): void {\n this.identityCache = null;\n this.locationCache = null;\n this.physicalCache = null;\n this.workCache = null;\n }\n\n /**\n * Create identity generator (cached)\n */\n private createIdentity() {\n const self = this;\n return {\n firstName: (gender?: Gender): string => {\n const genderChoice = gender || Random.pick(['male', 'female'] as Gender[]);\n return genderChoice === 'male'\n ? Random.pick(self.locale.firstNamesMale)\n : Random.pick(self.locale.firstNamesFemale);\n },\n\n lastName: (): string => {\n return Random.pick(self.locale.lastNames);\n },\n\n fullName: (gender?: Gender): string => {\n const genderChoice = gender || Random.pick(['male', 'female'] as Gender[]);\n const firstName = genderChoice === 'male'\n ? Random.pick(self.locale.firstNamesMale)\n : Random.pick(self.locale.firstNamesFemale);\n const lastName = Random.pick(self.locale.lastNames);\n return self.locale.formatFullName(firstName, lastName);\n },\n\n gender: (): Gender => {\n return Random.pick(['male', 'female'] as Gender[]);\n },\n\n age: (range?: AgeRange): number => {\n const min = range?.min ?? 18;\n const max = range?.max ?? 65;\n return Random.int(min, max);\n },\n\n dateOfBirth: (range?: AgeRange): Date => {\n const age = self.identity.age(range);\n const currentYear = new Date().getFullYear();\n const birthYear = currentYear - age;\n const month = Random.int(0, 11);\n const day = Random.int(1, 28);\n return new Date(birthYear, month, day);\n },\n\n person: (gender?: Gender, ageRange?: AgeRange): PersonData => {\n const genderChoice = gender || Random.pick(['male', 'female'] as Gender[]);\n const firstName = genderChoice === 'male'\n ? Random.pick(self.locale.firstNamesMale)\n : Random.pick(self.locale.firstNamesFemale);\n const lastName = Random.pick(self.locale.lastNames);\n const ageVal = self.identity.age(ageRange);\n const currentYear = new Date().getFullYear();\n const birthYear = currentYear - ageVal;\n const month = Random.int(0, 11);\n const day = Random.int(1, 28);\n\n return {\n firstName,\n lastName,\n fullName: self.locale.formatFullName(firstName, lastName),\n gender: genderChoice,\n age: ageVal,\n dateOfBirth: new Date(birthYear, month, day)\n };\n },\n\n /**\n * Generate multiple persons at once\n */\n persons: (count: number, gender?: Gender, ageRange?: AgeRange): PersonData[] => {\n return Random.multiple(() => self.identity.person(gender, ageRange), count);\n },\n\n /**\n * Generate unique persons (no duplicate full names)\n */\n uniquePersons: (count: number, gender?: Gender, ageRange?: AgeRange): PersonData[] => {\n return Random.unique(() => self.identity.person(gender, ageRange), count);\n }\n };\n }\n\n /**\n * Identity generator (cached accessor)\n */\n get identity(): ReturnType<typeof this.createIdentity> {\n if (!this.identityCache) {\n this.identityCache = this.createIdentity();\n }\n return this.identityCache;\n }\n\n /**\n * Create location generator (cached)\n */\n private createLocation() {\n const self = this;\n return {\n street: (): string => {\n return Random.pick(self.locale.streets);\n },\n\n city: (): string => {\n return Random.pick(self.locale.cities);\n },\n\n state: (): string => {\n return Random.pick(self.locale.states);\n },\n\n zipCode: (): string => {\n return self.locale.generateZipCode();\n },\n\n fullAddress: (): string => {\n const street = Random.pick(self.locale.streets);\n const city = Random.pick(self.locale.cities);\n const state = Random.pick(self.locale.states);\n const zipCode = self.locale.generateZipCode();\n return self.locale.formatAddress(street, city, state, zipCode);\n },\n\n address: (): AddressData => {\n const street = Random.pick(self.locale.streets);\n const city = Random.pick(self.locale.cities);\n const state = Random.pick(self.locale.states);\n const zipCode = self.locale.generateZipCode();\n\n return {\n street,\n city,\n state,\n zipCode,\n fullAddress: self.locale.formatAddress(street, city, state, zipCode)\n };\n },\n\n /**\n * Generate multiple addresses at once\n */\n addresses: (count: number): AddressData[] => {\n return Random.multiple(() => self.location.address(), count);\n },\n\n /**\n * Generate unique addresses (no duplicate full addresses)\n */\n uniqueAddresses: (count: number): AddressData[] => {\n return Random.unique(() => self.location.address(), count);\n }\n };\n }\n\n /**\n * Location generator (cached accessor)\n */\n get location(): ReturnType<typeof this.createLocation> {\n if (!this.locationCache) {\n this.locationCache = this.createLocation();\n }\n return this.locationCache;\n }\n\n /**\n * Create physical data generator (cached)\n */\n private createPhysical() {\n const self = this;\n return {\n height: (): PhysicalData => {\n if (self.locale.metricSystem === 'metric') {\n const height = Random.int(150, 190);\n return {\n height,\n weight: 0,\n heightUnit: 'cm',\n weightUnit: 'kg'\n };\n } else {\n const height = Random.float(4.9, 6.3, 1);\n return {\n height,\n weight: 0,\n heightUnit: 'ft',\n weightUnit: 'lb'\n };\n }\n },\n\n weight: (): PhysicalData => {\n if (self.locale.metricSystem === 'metric') {\n const weight = Random.int(45, 100);\n return {\n height: 0,\n weight,\n heightUnit: 'cm',\n weightUnit: 'kg'\n };\n } else {\n const weight = Random.int(100, 220);\n return {\n height: 0,\n weight,\n heightUnit: 'ft',\n weightUnit: 'lb'\n };\n }\n },\n\n data: (): PhysicalData => {\n if (self.locale.metricSystem === 'metric') {\n return {\n height: Random.int(150, 190),\n weight: Random.int(45, 100),\n heightUnit: 'cm',\n weightUnit: 'kg'\n };\n } else {\n return {\n height: Random.float(4.9, 6.3, 1),\n weight: Random.int(100, 220),\n heightUnit: 'ft',\n weightUnit: 'lb'\n };\n }\n },\n\n /**\n * Generate multiple physical data at once\n */\n datas: (count: number): PhysicalData[] => {\n return Random.multiple(() => self.physical.data(), count);\n }\n };\n }\n\n /**\n * Physical data generator (cached accessor)\n */\n get physical(): ReturnType<typeof this.createPhysical> {\n if (!this.physicalCache) {\n this.physicalCache = this.createPhysical();\n }\n return this.physicalCache;\n }\n\n /**\n * Create work data generator (cached)\n */\n private createWork() {\n const self = this;\n return {\n jobTitle: (): string => {\n return Random.pick(self.locale.jobTitles);\n },\n\n department: (): string => {\n return Random.pick(self.locale.departments);\n },\n\n data: (): WorkData => {\n return {\n jobTitle: Random.pick(self.locale.jobTitles),\n department: Random.pick(self.locale.departments)\n };\n },\n\n /**\n * Generate multiple work data at once\n */\n datas: (count: number): WorkData[] => {\n return Random.multiple(() => self.work.data(), count);\n },\n\n /**\n * Generate unique job titles\n */\n uniqueJobTitles: (count: number): string[] => {\n return Random.unique(() => self.work.jobTitle(), count);\n },\n\n /**\n * Generate unique departments\n */\n uniqueDepartments: (count: number): string[] => {\n return Random.unique(() => self.work.department(), count);\n }\n };\n }\n\n /**\n * Work data generator (cached accessor)\n */\n get work(): ReturnType<typeof this.createWork> {\n if (!this.workCache) {\n this.workCache = this.createWork();\n }\n return this.workCache;\n }\n\n /**\n * Create contact generator (cached)\n */\n private createContact() {\n const self = this;\n return {\n email: (firstName?: string, lastName?: string): string => {\n const name = firstName && lastName\n ? `${firstName}.${lastName}`\n : firstName\n ? firstName\n : self.identity.firstName();\n const domain = self.locale.emailDomains?.length\n ? Random.pick(self.locale.emailDomains)\n : Random.pick(['gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com']);\n const randomNum = Random.int(1, 999);\n return `${name.toLowerCase()}${randomNum}@${domain}`;\n },\n\n phone: (): string => {\n if (self.locale.phoneFormats?.length) {\n const format = Random.pick(self.locale.phoneFormats);\n return self.formatPhoneNumber(format);\n }\n // Default US format\n return `+1 (${Random.int(200, 999)}) ${Random.int(200, 999)}-${Random.int(1000, 9999)}`;\n },\n\n website: (companyName?: string): string => {\n const name = companyName || self.company.name();\n const domain = name.toLowerCase().replace(/[^a-z0-9]/g, '-');\n const tld = Random.pick(['.com', '.net', '.org', '.io', '.co']);\n return `www.${domain}${tld}`;\n },\n\n data: (firstName?: string, lastName?: string): ContactData => {\n return {\n email: self.contact.email(firstName, lastName),\n phone: self.contact.phone(),\n website: self.contact.website()\n };\n },\n\n /**\n * Generate multiple contact data at once\n */\n datas: (count: number): ContactData[] => {\n return Random.multiple(() => self.contact.data(), count);\n }\n };\n }\n\n /**\n * Contact generator (cached accessor)\n */\n get contact(): ReturnType<typeof this.createContact> {\n return this.createContact();\n }\n\n /**\n * Create company generator (cached)\n */\n private createCompany() {\n const self = this;\n return {\n name: (): string => {\n if (self.locale.companyNames?.length) {\n return Random.pick(self.locale.companyNames);\n }\n const prefixes = ['Tech', 'Global', 'Smart', 'Digital', 'Inno', 'Data', 'Cloud', 'Net', 'Cyber', 'Quantum'];\n const suffixes = ['ify', 'ly', 'hub', 'lab', 'box', 'flow', 'sync', 'grid', 'wave', 'spark'];\n const types = ['Tech', 'Solutions', 'Systems', 'Corp', 'Inc', 'Group', 'Labs', 'Works', 'Studio', 'Dynamics'];\n return `${Random.pick(prefixes)}${Random.pick(suffixes)} ${Random.pick(types)}`;\n },\n\n industry: (): string => {\n if (self.locale.industries?.length) {\n return Random.pick(self.locale.industries);\n }\n const industries = [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transportation',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace'\n ];\n return Random.pick(industries);\n },\n\n catchPhrase: (): string => {\n if (self.locale.catchPhrases?.length) {\n return Random.pick(self.locale.catchPhrases);\n }\n const verbs = ['Empower', 'Transform', 'Revolutionize', 'Innovate', 'Optimize', 'Streamline', 'Accelerate', 'Maximize'];\n const nouns = ['solutions', 'experiences', 'processes', 'outcomes', 'potential', 'growth', 'success', 'future'];\n const adjectives = ['innovative', 'cutting-edge', 'seamless', 'intelligent', 'dynamic', 'scalable', 'sustainable', 'next-generation'];\n return `${Random.pick(verbs)} ${Random.pick(adjectives)} ${Random.pick(nouns)}`;\n },\n\n data: (): CompanyData => {\n return {\n name: self.company.name(),\n industry: self.company.industry(),\n catchPhrase: self.company.catchPhrase()\n };\n },\n\n /**\n * Generate multiple company data at once\n */\n datas: (count: number): CompanyData[] => {\n return Random.multiple(() => self.company.data(), count);\n }\n };\n }\n\n /**\n * Company generator (cached accessor)\n */\n get company(): ReturnType<typeof this.createCompany> {\n return this.createCompany();\n }\n\n /**\n * Format phone number from pattern\n */\n private formatPhoneNumber(format: string): string {\n return format.replace(/#/g, () => String(Random.int(0, 9)));\n }\n\n /**\n * Generate complete mock data for multiple entities\n */\n generateMockEntities(count: number, options?: {\n gender?: Gender;\n ageRange?: AgeRange;\n }): Array<PersonData & AddressData & PhysicalData & WorkData> {\n const { gender, ageRange } = options || {};\n \n return Random.multiple(() => ({\n ...this.identity.person(gender, ageRange),\n ...this.location.address(),\n ...this.physical.data(),\n ...this.work.data()\n }), count);\n }\n\n /**\n * Generate unique mock entities (no duplicate full names)\n */\n generateUniqueMockEntities(count: number, options?: {\n gender?: Gender;\n ageRange?: AgeRange;\n }): Array<PersonData & AddressData & PhysicalData & WorkData> {\n const { gender, ageRange } = options || {};\n \n return Random.unique(() => ({\n ...this.identity.person(gender, ageRange),\n ...this.location.address(),\n ...this.physical.data(),\n ...this.work.data()\n }), count);\n }\n}\n","import { LocaleDefinition } from '../types';\r\n\r\n/**\r\n * Locale Registry untuk manajemen locale yang efisien\r\n * Mendukung lazy loading dan auto-registration\r\n */\r\nclass LocaleRegistry {\r\n private locales: Map<string, LocaleDefinition> = new Map();\r\n private aliases: Map<string, string> = new Map();\r\n\r\n /**\r\n * Register locale baru\r\n * @param code - Kode locale utama (contoh: 'en_US')\r\n * @param definition - Definisi locale\r\n * @param aliasesArray - Array alias untuk locale ini (contoh: ['en', 'us'])\r\n */\r\n register(\r\n code: string,\r\n definition: LocaleDefinition,\r\n aliasesArray: string[] = []\r\n ): void {\r\n this.locales.set(code, definition);\r\n \r\n // Register aliases\r\n for (const alias of aliasesArray) {\r\n this.aliases.set(alias, code);\r\n }\r\n }\r\n\r\n /**\r\n * Get locale definition\r\n * @param code - Kode locale atau alias\r\n * @returns LocaleDefinition atau undefined\r\n */\r\n get(code: string): LocaleDefinition | undefined {\r\n // Cek langsung di locales\r\n if (this.locales.has(code)) {\r\n return this.locales.get(code);\r\n }\r\n \r\n // Cek di aliases\r\n const mainCode = this.aliases.get(code);\r\n if (mainCode) {\r\n return this.locales.get(mainCode);\r\n }\r\n \r\n return undefined;\r\n }\r\n\r\n /**\r\n * Check apakah locale tersedia\r\n */\r\n has(code: string): boolean {\r\n return this.locales.has(code) || this.aliases.has(code);\r\n }\r\n\r\n /**\r\n * Get semua locale yang tersedia\r\n */\r\n getAvailableLocales(): string[] {\r\n return Array.from(this.locales.keys());\r\n }\r\n\r\n /**\r\n * Get semua aliases yang tersedia\r\n */\r\n getAvailableAliases(): string[] {\r\n return Array.from(this.aliases.keys());\r\n }\r\n\r\n /**\r\n * Get semua kode (locale + aliases)\r\n */\r\n getAllCodes(): string[] {\r\n return [\r\n ...this.getAvailableLocales(),\r\n ...this.getAvailableAliases()\r\n ];\r\n }\r\n}\r\n\r\n// Singleton instance\r\nexport const localeRegistry = new LocaleRegistry();","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_US: LocaleDefinition = {\n firstNamesMale: [\n 'James', 'John', 'Robert', 'Michael', 'William', 'David', 'Richard', 'Joseph',\n 'Thomas', 'Christopher', 'Daniel', 'Matthew', 'Anthony', 'Mark', 'Donald',\n 'Steven', 'Andrew', 'Paul', 'Joshua', 'Kenneth', 'Kevin', 'Brian', 'George',\n 'Timothy', 'Ronald', 'Edward', 'Jason', 'Jeffrey', 'Ryan', 'Jacob', 'Gary',\n 'Nicholas', 'Eric', 'Jonathan', 'Stephen', 'Larry', 'Justin', 'Scott', 'Brandon',\n 'Benjamin', 'Samuel', 'Raymond', 'Gregory', 'Alexander', 'Patrick', 'Frank',\n 'Dennis', 'Jerry', 'Tyler', 'Aaron', 'Jose', 'Adam', 'Nathan', 'Douglas',\n 'Zachary', 'Peter', 'Kyle', 'Noah', 'Ethan', 'Jeremy', 'Christian', 'Walter'\n ],\n firstNamesFemale: [\n 'Mary', 'Patricia', 'Jennifer', 'Linda', 'Barbara', 'Elizabeth', 'Susan',\n 'Jessica', 'Sarah', 'Karen', 'Lisa', 'Nancy', 'Betty', 'Margaret', 'Sandra',\n 'Ashley', 'Kimberly', 'Emily', 'Donna', 'Michelle', 'Carol', 'Amanda', 'Dorothy',\n 'Melissa', 'Deborah', 'Stephanie', 'Rebecca', 'Sharon', 'Laura', 'Cynthia',\n 'Kathleen', 'Amy', 'Angela', 'Shirley', 'Anna', 'Brenda', 'Pamela', 'Emma',\n 'Nicole', 'Helen', 'Samantha', 'Katherine', 'Christine', 'Debra', 'Rachel',\n 'Carolyn', 'Janet', 'Catherine', 'Maria', 'Heather', 'Diane', 'Ruth', 'Julie',\n 'Olivia', 'Joyce', 'Virginia', 'Victoria', 'Kelly', 'Lauren', 'Christina'\n ],\n lastNames: [\n 'Smith', 'Johnson', 'Williams', 'Brown', 'Jones', 'Garcia', 'Miller', 'Davis',\n 'Rodriguez', 'Martinez', 'Hernandez', 'Lopez', 'Gonzalez', 'Wilson', 'Anderson',\n 'Thomas', 'Taylor', 'Moore', 'Jackson', 'Martin', 'Lee', 'Perez', 'Thompson',\n 'White', 'Harris', 'Sanchez', 'Clark', 'Ramirez', 'Lewis', 'Robinson', 'Walker',\n 'Young', 'Allen', 'King', 'Wright', 'Scott', 'Torres', 'Nguyen', 'Hill', 'Flores',\n 'Green', 'Adams', 'Nelson', 'Baker', 'Hall', 'Rivera', 'Campbell', 'Mitchell',\n 'Carter', 'Roberts', 'Gomez', 'Phillips', 'Evans', 'Turner', 'Diaz', 'Parker',\n 'Cruz', 'Edwards', 'Collins', 'Reyes', 'Stewart', 'Morris', 'Morales', 'Murphy'\n ],\n streets: [\n 'Main Street', 'Oak Avenue', 'Maple Drive', 'Cedar Lane', 'Elm Street',\n 'Washington Boulevard', 'Lake View Drive', 'Park Avenue', 'Hill Road',\n 'Forest Lane', 'River Road', 'Sunset Boulevard', 'First Avenue', 'Second Street',\n 'Third Avenue', 'Pine Street', 'Walnut Avenue', 'Cherry Lane', 'Spring Street',\n 'Church Road', 'Market Street', 'Broadway', 'Madison Avenue', 'Lincoln Street',\n 'Jefferson Avenue', 'Franklin Street', 'Highland Avenue', 'Prospect Street',\n 'Valley Road', 'Ridge Road', 'Summit Avenue', 'Grove Street', 'Pearl Street'\n ],\n cities: [\n 'New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix', 'Philadelphia',\n 'San Antonio', 'San Diego', 'Dallas', 'San Jose', 'Austin', 'Jacksonville',\n 'Fort Worth', 'Columbus', 'Charlotte', 'San Francisco', 'Indianapolis', 'Seattle',\n 'Denver', 'Boston', 'Nashville', 'Detroit', 'Portland', 'Las Vegas', 'Memphis',\n 'Louisville', 'Baltimore', 'Milwaukee', 'Albuquerque', 'Tucson', 'Fresno',\n 'Sacramento', 'Kansas City', 'Mesa', 'Atlanta', 'Omaha', 'Colorado Springs',\n 'Raleigh', 'Miami', 'Long Beach', 'Virginia Beach', 'Oakland', 'Minneapolis'\n ],\n states: [\n 'Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado',\n 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho',\n 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana',\n 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi',\n 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey',\n 'New Mexico', 'New York', 'North Carolina', 'North Dakota', 'Ohio', 'Oklahoma',\n 'Oregon', 'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota',\n 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington',\n 'West Virginia', 'Wisconsin', 'Wyoming'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'Human Resources Manager', 'Designer',\n 'Operations Manager', 'Business Analyst', 'Financial Analyst', 'Product Manager',\n 'Systems Administrator', 'Customer Service Representative', 'Quality Assurance Engineer',\n 'Technical Writer', 'Database Administrator', 'Network Engineer', 'UX Designer',\n 'Content Writer', 'Executive Assistant', 'Account Manager', 'DevOps Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'imperial',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 9999);\n return `${houseNumber} ${street}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '(###) ###-####',\n '###-###-####',\n '###.###.####',\n '+1 (###) ###-####',\n '1-###-###-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com', 'aol.com',\n 'icloud.com', 'protonmail.com', 'mail.com', 'zoho.com', 'yandex.com'\n ],\n\n companyNames: [\n 'Acme Corp', 'Globex Corporation', 'Soylent Corp', 'Initech', 'Umbrella Corporation',\n 'Stark Industries', 'Wayne Enterprises', 'Cyberdyne Systems', 'Massive Dynamic',\n 'Hooli', 'Vehement Capital Partners', 'Bluth Company', 'Dunder Mifflin',\n 'Stark Industries', 'Wonka Industries', 'Stark Industries', 'Stark Industries'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transportation',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace'\n ],\n\n catchPhrases: [\n 'Innovating tomorrow, today', 'Your success is our business', 'Building the future together',\n 'Empowering possibilities', 'Transforming ideas into reality', 'Excellence in every detail',\n 'Where quality meets innovation', 'Driving progress through technology',\n 'Your partner in growth', 'Making the impossible possible'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ja_JP: LocaleDefinition = {\n // Nama keluarga Jepang (姓)\n lastNames: [\n 'Satou', 'Suzuki', 'Takahashi', 'Tanaka', 'Watanabe', 'Itou', 'Yamamoto',\n 'Nakamura', 'Kobayashi', 'Katou', 'Yoshida', 'Yamada', 'Sasaki', 'Yamaguchi',\n 'Matsumoto', 'Inoue', 'Kimura', 'Hayashi', 'Shimizu', 'Yamazaki', 'Mori',\n 'Abe', 'Ikeda', 'Hashimoto', 'Yamashita', 'Ishikawa', 'Nakajima', 'Maeda',\n 'Fujita', 'Ogawa', 'Gotou', 'Okada', 'Hasegawa', 'Murakami', 'Kondou',\n 'Ishii', 'Saitou', 'Sakamoto', 'Endou', 'Fujii', 'Nishimura', 'Fukuda',\n 'Ootani', 'Miura', 'Okamoto', 'Matsuda', 'Nakano', 'Harada'\n ],\n // Nama depan pria (男性名)\n firstNamesMale: [\n 'Hiroshi', 'Takeshi', 'Kenji', 'Kazuo', 'Masao', 'Toshio', 'Minoru',\n 'Makoto', 'Satoshi', 'Yuji', 'Koji', 'Takashi', 'Shinji', 'Hideki',\n 'Masashi', 'Kenichi', 'Yuki', 'Haruki', 'Daiki', 'Ryouta', 'Shou',\n 'Kaito', 'Hayato', 'Souta', 'Yuuto', 'Kouki', 'Ren', 'Haruto',\n 'Akira', 'Ryuu', 'Tatsuya', 'Daisuke', 'Naoki', 'Tomoya', 'Shun',\n 'Ryousuke', 'Kenta', 'Yousuke', 'Taichi', 'Yuuma', 'Shouta', 'Riku'\n ],\n // Nama depan wanita (女性名)\n firstNamesFemale: [\n 'Yuko', 'Keiko', 'Kumiko', 'Sachiko', 'Yoshiko', 'Kazuko', 'Michiko',\n 'Akiko', 'Noriko', 'Yuki', 'Emi', 'Aiko', 'Mayumi', 'Naoko', 'Tomoko',\n 'Yuka', 'Ayumi', 'Haruka', 'Miho', 'Maki', 'Sakura', 'Hana', 'Yui',\n 'Rina', 'Nana', 'Ami', 'Mei', 'Momoka', 'Hina', 'Aoi', 'Mio',\n 'Nanami', 'Riko', 'Kana', 'Ayaka', 'Akari', 'Yuna', 'Sara', 'Miyu',\n 'Honoka', 'Koharu', 'Himari', 'Miku', 'Rin', 'Saki', 'Hinata'\n ],\n streets: [\n 'Chuo-dori', 'Sakura-dori', 'Midori-cho', 'Higashi-cho', 'Nishi-cho',\n 'Minami-cho', 'Kita-cho', 'Honcho', 'Miyuki-dori', 'Ekimae-dori',\n 'Showa-dori', 'Taisho-dori', 'Heisei-dori', 'Reiwa-dori', 'Yanagi-cho',\n 'Matsu-cho', 'Take-cho', 'Ume-cho', 'Momo-cho', 'Kiku-cho', 'Tsubaki-cho',\n 'Fuji-cho', 'Asahi-cho', 'Hoshi-cho', 'Tsuki-cho', 'Sora-cho', 'Umi-cho'\n ],\n cities: [\n 'Tokyo', 'Yokohama', 'Osaka', 'Nagoya', 'Sapporo', 'Fukuoka', 'Kobe',\n 'Kyoto', 'Kawasaki', 'Saitama', 'Hiroshima', 'Sendai', 'Chiba', 'Kitakyushu',\n 'Sakai', 'Niigata', 'Hamamatsu', 'Kumamoto', 'Sagamihara', 'Shizuoka',\n 'Okayama', 'Kagoshima', 'Hachioji', 'Matsuyama', 'Utsunomiya', 'Matsudo'\n ],\n // Prefektur Jepang (都道府県)\n states: [\n 'Tokyo', 'Osaka', 'Kyoto', 'Hokkaido', 'Aichi', 'Fukuoka', 'Kanagawa',\n 'Saitama', 'Chiba', 'Hyogo', 'Hiroshima', 'Miyagi', 'Niigata', 'Shizuoka',\n 'Okayama', 'Kumamoto', 'Kagoshima', 'Nagano', 'Gifu', 'Fukushima', 'Gunma',\n 'Ibaraki', 'Tochigi', 'Mie', 'Nara', 'Wakayama', 'Shiga', 'Yamanashi',\n 'Ishikawa', 'Toyama', 'Fukui', 'Yamaguchi', 'Ehime', 'Kagawa', 'Tokushima',\n 'Kochi', 'Saga', 'Nagasaki', 'Oita', 'Miyazaki', 'Okinawa', 'Aomori',\n 'Iwate', 'Akita', 'Yamagata', 'Tottori', 'Shimane'\n ],\n zipCodePattern: '###-####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Sales Manager', 'Accountant',\n 'HR Manager', 'Marketing Specialist', 'Data Analyst', 'Designer',\n 'Operations Manager', 'Business Analyst', 'System Administrator',\n 'Product Manager', 'Customer Support', 'Quality Assurance Engineer',\n 'Technical Writer', 'Database Administrator', 'Network Engineer'\n ],\n departments: [\n 'Engineering', 'Sales', 'Marketing', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Administration', 'Quality Assurance'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n // Format Jepang: Nama Keluarga + Nama Depan\n return `${lastName} ${firstName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n // Format alamat Jepang: 〒Kode Pos, Prefektur, Kota, Jalan, Nomor\n const choume = Random.int(1, 5);\n const banchi = Random.int(1, 20);\n const gou = Random.int(1, 30);\n return `〒${zipCode} ${state}, ${city}, ${street} ${choume}-${banchi}-${gou}`;\n },\n\n generateZipCode(): string {\n const part1 = String(Random.int(100, 999));\n const part2 = String(Random.int(1000, 9999));\n return `${part1}-${part2}`;\n },\n\n phoneFormats: [\n '+81-##-####-####',\n '0#-####-####',\n '0##-###-####',\n '0###-##-####',\n '090-####-####',\n '080-####-####',\n '070-####-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.co.jp', 'outlook.com', 'hotmail.co.jp',\n 'docomo.ne.jp', 'au.com', 'softbank.ne.jp', 'ezweb.ne.jp',\n 'excite.co.jp', 'livedoor.com', 'goo.ne.jp', 'nifty.com'\n ],\n\n companyNames: [\n 'トヨタ自動車', 'ソニーグループ', 'キーエンス', 'ファーストリテイリング',\n '日本電信電話', '三菱商事', '三井物産', '伊藤忠商事', '住友商事',\n '丸紅', '双日', '豊田通商', '本田技研工業', '日産自動車', 'マツダ',\n 'パナソニック', '東芝', '日立製作所', '富士通', 'NEC', 'シャープ'\n ],\n\n industries: [\n '技術', '金融', '医療', '教育', '小売',\n '製造', 'メディア', '通信', 'エネルギー', '運輸',\n '不動産', 'コンサルティング', 'ホテル', '自動車', '航空宇宙'\n ],\n\n catchPhrases: [\n '未来を創造する', 'お客様の成功が私たちの使命', '共に未来を築く',\n '品質と信頼', '革新と伝統', '最高のサービスをお届け',\n '持続可能な成長', '価値を創出する', 'あなたのパートナー'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const id_ID: LocaleDefinition = {\n firstNamesMale: [\n 'Budi', 'Ahmad', 'Agus', 'Andi', 'Bambang', 'Dedi', 'Eko', 'Hadi',\n 'Iwan', 'Joko', 'Rudi', 'Slamet', 'Teguh', 'Wawan', 'Yudi', 'Rizki',\n 'Fajar', 'Bayu', 'Dimas', 'Arif', 'Indra', 'Gunawan', 'Hendra', 'Firman',\n 'Aditya', 'Putra', 'Gilang', 'Yoga', 'Rama', 'Satria', 'Wahyu', 'Rizal',\n 'Firdaus', 'Ilham', 'Ridwan', 'Surya', 'Akbar', 'Pratama', 'Nugroho'\n ],\n firstNamesFemale: [\n 'Siti', 'Dewi', 'Ani', 'Sri', 'Ratna', 'Rina', 'Endang', 'Fitri',\n 'Diah', 'Yuni', 'Wati', 'Ayu', 'Indah', 'Maya', 'Lestari', 'Putri',\n 'Sari', 'Rini', 'Tuti', 'Nur', 'Lia', 'Dian', 'Ika', 'Nia', 'Mega',\n 'Andini', 'Citra', 'Kartika', 'Puspita', 'Cahaya', 'Anggraini', 'Permata',\n 'Safitri', 'Rahayu', 'Maharani', 'Pratiwi', 'Kusuma', 'Melati', 'Zahra'\n ],\n lastNames: [\n 'Santoso', 'Wijaya', 'Susanto', 'Pranowo', 'Saputra', 'Kurniawan', 'Wibowo',\n 'Prasetyo', 'Hidayat', 'Setiawan', 'Nugroho', 'Hakim', 'Gunawan', 'Firmansyah',\n 'Budiman', 'Hermawan', 'Putra', 'Cahyadi', 'Utomo', 'Suharto', 'Handoko',\n 'Kusuma', 'Rahmat', 'Irawan', 'Sinaga', 'Sitorus', 'Sihotang', 'Simanjuntak',\n 'Tampubolon', 'Nababan', 'Manurung', 'Siregar', 'Panjaitan', 'Pasaribu',\n 'Hasibuan', 'Sembiring', 'Tarigan', 'Lubis', 'Nasution', 'Situmorang',\n 'Pardede', 'Simbolon', 'Silalahi', 'Aritonang', 'Simatupang', 'Hutapea'\n ],\n streets: [\n 'Jl. Merdeka', 'Jl. Sudirman', 'Jl. Gatot Subroto', 'Jl. Ahmad Yani',\n 'Jl. Diponegoro', 'Jl. Veteran', 'Jl. Pahlawan', 'Jl. Hayam Wuruk',\n 'Jl. Gajah Mada', 'Jl. Kartini', 'Jl. Proklamasi', 'Jl. Kemerdekaan',\n 'Jl. Imam Bonjol', 'Jl. Pemuda', 'Jl. Pattimura', 'Jl. Sisingamangaraja',\n 'Jl. Thamrin', 'Jl. Rasuna Said', 'Jl. MT Haryono', 'Jl. Basuki Rahmat',\n 'Jl. Wolter Monginsidi', 'Jl. Teuku Umar', 'Jl. Cut Nyak Dien', 'Jl. Majapahit'\n ],\n cities: [\n 'Jakarta', 'Surabaya', 'Bandung', 'Medan', 'Semarang', 'Makassar', 'Palembang',\n 'Tangerang', 'Depok', 'Bekasi', 'Bogor', 'Yogyakarta', 'Malang', 'Batam',\n 'Pekanbaru', 'Bandar Lampung', 'Padang', 'Denpasar', 'Samarinda', 'Banjarmasin',\n 'Pontianak', 'Balikpapan', 'Jambi', 'Manado', 'Mataram', 'Kupang', 'Ambon'\n ],\n states: [\n 'DKI Jakarta', 'Jawa Barat', 'Jawa Tengah', 'Jawa Timur', 'Banten',\n 'Sumatera Utara', 'Sumatera Barat', 'Sumatera Selatan', 'Riau', 'Lampung',\n 'Kepulauan Riau', 'Bangka Belitung', 'Jambi', 'Bengkulu', 'Aceh',\n 'Kalimantan Barat', 'Kalimantan Tengah', 'Kalimantan Selatan', 'Kalimantan Timur',\n 'Kalimantan Utara', 'Sulawesi Utara', 'Sulawesi Tengah', 'Sulawesi Selatan',\n 'Sulawesi Tenggara', 'Gorontalo', 'Sulawesi Barat', 'Bali', 'Nusa Tenggara Barat',\n 'Nusa Tenggara Timur', 'Maluku', 'Maluku Utara', 'Papua', 'Papua Barat',\n 'DI Yogyakarta'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Akuntan', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Financial Analyst', 'Product Manager', 'System Administrator',\n 'Customer Service', 'Quality Assurance Engineer', 'Technical Writer',\n 'Database Administrator', 'Network Engineer', 'Content Writer', 'Account Manager'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n const rt = Random.int(1, 20);\n const rw = Random.int(1, 15);\n return `${street} No. ${number}, RT ${rt}/RW ${rw}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+62 ###-####-####',\n '08##-####-####',\n '(021) ####-####',\n '021-####-####',\n '+62 (###) ###-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'icloud.com', 'protonmail.com', 'mail.com',\n 'gmail.co.id', 'yahoo.co.id', 'plasa.com', 'telkom.net'\n ],\n\n companyNames: [\n 'PT Astra International', 'PT Telkom Indonesia', 'PT Bank Central Asia',\n 'PT Unilever Indonesia', 'PT Indofood Sukses Makmur', 'PT Garuda Indonesia',\n 'PT Pertamina', 'PT Bank Mandiri', 'PT Bukit Asam', 'PT Freeport Indonesia',\n 'PT Gudang Garam', 'PT Djarum', 'PT HM Sampoerna', 'PT Kalbe Farma',\n 'PT XL Axiata', 'PT Indosat Ooredoo', 'PT Gojek Indonesia', 'PT Traveloka'\n ],\n\n industries: [\n 'Teknologi', 'Keuangan', 'Kesehatan', 'Pendidikan', 'Retail',\n 'Manufaktur', 'Media', 'Telekomunikasi', 'Energi', 'Transportasi',\n 'Properti', 'Konsultasi', 'Perhotelan', 'Otomotif', 'Pertambangan'\n ],\n\n catchPhrases: [\n 'Inovasi untuk masa depan', 'Solusi terbaik untuk Anda', 'Membangun bersama menuju sukses',\n 'Kualitas terbaik, pelayanan prima', 'Mitra terpercaya Anda', 'Menghadirkan kemudahan',\n 'Solusi digital untuk kehidupan', 'Bersama meraih kesuksesan', 'Komitmen untuk keunggulan'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const de_DE: LocaleDefinition = {\n firstNamesMale: [\n 'Lukas', 'Leon', 'Tim', 'Paul', 'Jonas', 'Finn', 'Noah', 'Felix',\n 'Elias', 'Ben', 'Luca', 'Maximilian', 'Jan', 'Niklas', 'Tom', 'Moritz',\n 'Max', 'Julian', 'David', 'Alexander', 'Simon', 'Fabian', 'Tobias',\n 'Sebastian', 'Philipp', 'Florian', 'Kevin', 'Christian', 'Daniel',\n 'Michael', 'Stefan', 'Thomas', 'Andreas', 'Matthias', 'Markus', 'Peter',\n 'Klaus', 'Wolfgang', 'Jürgen', 'Hans', 'Dieter', 'Helmut', 'Werner'\n ],\n firstNamesFemale: [\n 'Emma', 'Mia', 'Hannah', 'Sofia', 'Anna', 'Emilia', 'Lina', 'Marie',\n 'Sophia', 'Lena', 'Lea', 'Leonie', 'Amelie', 'Laura', 'Lisa', 'Luisa',\n 'Sarah', 'Julia', 'Katharina', 'Nina', 'Jana', 'Michelle', 'Christina',\n 'Vanessa', 'Jessica', 'Jennifer', 'Sandra', 'Stefanie', 'Melanie',\n 'Andrea', 'Petra', 'Sabine', 'Susanne', 'Martina', 'Monika', 'Birgit',\n 'Claudia', 'Karin', 'Angelika', 'Ingrid', 'Helga', 'Gisela', 'Ursula'\n ],\n lastNames: [\n 'Müller', 'Schmidt', 'Schneider', 'Fischer', 'Weber', 'Meyer', 'Wagner',\n 'Becker', 'Schulz', 'Hoffmann', 'Schäfer', 'Koch', 'Bauer', 'Richter',\n 'Klein', 'Wolf', 'Schröder', 'Neumann', 'Schwarz', 'Zimmermann', 'Braun',\n 'Krüger', 'Hofmann', 'Hartmann', 'Lange', 'Schmitt', 'Werner', 'Schmitz',\n 'Krause', 'Meier', 'Lehmann', 'Schmid', 'Schulze', 'Maier', 'Köhler',\n 'Herrmann', 'König', 'Walter', 'Mayer', 'Huber', 'Kaiser', 'Fuchs',\n 'Peters', 'Lang', 'Scholz', 'Möller', 'Weiß', 'Jung', 'Hahn', 'Schubert'\n ],\n streets: [\n 'Hauptstraße', 'Bahnhofstraße', 'Gartenstraße', 'Schulstraße', 'Dorfstraße',\n 'Kirchstraße', 'Bergstraße', 'Waldstraße', 'Schillerstraße', 'Goethestraße',\n 'Lindenstraße', 'Parkstraße', 'Mozartstraße', 'Beethovenstraße', 'Bachstraße',\n 'Kantstraße', 'Lessingstraße', 'Fichtestraße', 'Schubertstraße', 'Brahmsstraße',\n 'Friedrichstraße', 'Wilhelmstraße', 'Marktstraße', 'Kaiserstraße', 'Poststraße',\n 'Ringstraße', 'Am Markt', 'Rosenstraße', 'Birkenweg', 'Ahornweg'\n ],\n cities: [\n 'Berlin', 'Hamburg', 'München', 'Köln', 'Frankfurt', 'Stuttgart', 'Düsseldorf',\n 'Dortmund', 'Essen', 'Leipzig', 'Bremen', 'Dresden', 'Hannover', 'Nürnberg',\n 'Duisburg', 'Bochum', 'Wuppertal', 'Bielefeld', 'Bonn', 'Münster', 'Karlsruhe',\n 'Mannheim', 'Augsburg', 'Wiesbaden', 'Gelsenkirchen', 'Mönchengladbach',\n 'Braunschweig', 'Chemnitz', 'Kiel', 'Aachen', 'Halle', 'Magdeburg', 'Freiburg',\n 'Krefeld', 'Lübeck', 'Oberhausen', 'Erfurt', 'Mainz', 'Rostock', 'Kassel'\n ],\n states: [\n 'Baden-Württemberg', 'Bayern', 'Berlin', 'Brandenburg', 'Bremen',\n 'Hamburg', 'Hessen', 'Mecklenburg-Vorpommern', 'Niedersachsen',\n 'Nordrhein-Westfalen', 'Rheinland-Pfalz', 'Saarland', 'Sachsen',\n 'Sachsen-Anhalt', 'Schleswig-Holstein', 'Thüringen'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Projektmanager', 'Datenanalyst', 'Marketing Manager',\n 'Vertriebsmitarbeiter', 'Buchhalter', 'Personalleiter', 'Designer',\n 'Betriebsleiter', 'Business Analyst', 'Finanzanalyst', 'Produktmanager',\n 'Systemadministrator', 'Kundenbetreuer', 'Quality Assurance Engineer',\n 'Technischer Redakteur', 'Datenbankadministrator', 'Netzwerkingenieur'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Vertrieb', 'Personalwesen', 'Finanzen',\n 'Betrieb', 'Kundenservice', 'IT', 'Forschung und Entwicklung',\n 'Recht', 'Produktmanagement', 'Design', 'Qualitätssicherung', 'Verwaltung'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 200);\n return `${street} ${houseNumber}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+49 (###) #######',\n '0### ########',\n '0#### #######',\n '+49 (0)### ########',\n '01## #######'\n ],\n\n emailDomains: [\n 'gmail.com', 'web.de', 'gmx.de', 't-online.de', 'yahoo.de',\n 'hotmail.de', 'outlook.de', 'mail.de', 'freenet.de', '1und1.de'\n ],\n\n companyNames: [\n 'Volkswagen AG', 'Siemens AG', 'BMW AG', 'Mercedes-Benz AG', 'Bosch GmbH',\n 'SAP SE', 'Deutsche Bank AG', 'Allianz SE', 'BASF SE', 'Adidas AG',\n 'Deutsche Telekom AG', 'Audi AG', 'Deutsche Post AG', 'Bayer AG', 'Henkel AG'\n ],\n\n industries: [\n 'Technologie', 'Finanzen', 'Gesundheitswesen', 'Bildung', 'Einzelhandel',\n 'Fertigung', 'Medien', 'Telekommunikation', 'Energie', 'Transport',\n 'Immobilien', 'Beratung', 'Gastgewerbe', 'Automobil', 'Luftfahrt'\n ],\n\n catchPhrases: [\n 'Innovation für die Zukunft', 'Ihr Erfolg ist unser Geschäft', 'Gemeinsam die Zukunft gestalten',\n 'Qualität made in Germany', 'Vertrauen und Kompetenz', 'Exzellenz in jedem Detail',\n 'Nachhaltig und zuverlässig', 'Präzision und Innovation', 'Ihr Partner für Wachstum'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const fr_FR: LocaleDefinition = {\n firstNamesMale: [\n 'Gabriel', 'Raphaël', 'Léo', 'Louis', 'Lucas', 'Adam', 'Arthur', 'Hugo',\n 'Jules', 'Maël', 'Noah', 'Tom', 'Nathan', 'Ethan', 'Paul', 'Théo',\n 'Pierre', 'Jean', 'Marc', 'François', 'Michel', 'Nicolas', 'Antoine',\n 'Philippe', 'Jacques', 'Christophe', 'Olivier', 'Julien', 'David',\n 'Alexandre', 'Sébastien', 'Laurent', 'Guillaume', 'Maxime', 'Benjamin',\n 'Thomas', 'Vincent', 'Daniel', 'Patrick', 'Christian', 'Bernard', 'André'\n ],\n firstNamesFemale: [\n 'Emma', 'Léa', 'Chloé', 'Manon', 'Camille', 'Zoé', 'Sarah', 'Lola',\n 'Inès', 'Jade', 'Louise', 'Lina', 'Rose', 'Alice', 'Juliette', 'Clara',\n 'Marie', 'Sophie', 'Isabelle', 'Julie', 'Nathalie', 'Caroline', 'Laura',\n 'Émilie', 'Pauline', 'Charlotte', 'Lucie', 'Céline', 'Marine', 'Sandra',\n 'Valérie', 'Sylvie', 'Catherine', 'Martine', 'Christine', 'Françoise',\n 'Monique', 'Nicole', 'Véronique', 'Brigitte', 'Dominique', 'Anne', 'Claire'\n ],\n lastNames: [\n 'Martin', 'Bernard', 'Thomas', 'Petit', 'Robert', 'Richard', 'Durand',\n 'Dubois', 'Moreau', 'Laurent', 'Simon', 'Michel', 'Lefebvre', 'Leroy',\n 'Roux', 'David', 'Bertrand', 'Morel', 'Fournier', 'Girard', 'Bonnet',\n 'Dupont', 'Lambert', 'Fontaine', 'Rousseau', 'Vincent', 'Muller', 'Lefevre',\n 'Faure', 'Andre', 'Mercier', 'Blanc', 'Guerin', 'Boyer', 'Garnier',\n 'Chevalier', 'Francois', 'Legrand', 'Gauthier', 'Garcia', 'Perrin',\n 'Robin', 'Clement', 'Morin', 'Nicolas', 'Henry', 'Roussel', 'Matthieu'\n ],\n streets: [\n 'Rue de la Paix', 'Avenue des Champs-Élysées', 'Boulevard Haussmann',\n 'Rue de Rivoli', 'Rue Saint-Honoré', 'Avenue Montaigne', 'Rue du Faubourg',\n 'Boulevard Saint-Germain', 'Rue de Vaugirard', 'Avenue Victor Hugo',\n 'Rue Lafayette', 'Boulevard Voltaire', 'Rue de la République', 'Place de la Concorde',\n 'Rue Nationale', 'Avenue Jean Jaurès', 'Rue Pasteur', 'Boulevard Gambetta',\n 'Rue du Général de Gaulle', 'Avenue de la Liberté', 'Rue Carnot', 'Place du Marché',\n 'Rue Victor Hugo', 'Boulevard de la Mer', 'Rue des Écoles', 'Avenue du Président'\n ],\n cities: [\n 'Paris', 'Marseille', 'Lyon', 'Toulouse', 'Nice', 'Nantes', 'Strasbourg',\n 'Montpellier', 'Bordeaux', 'Lille', 'Rennes', 'Reims', 'Le Havre', 'Saint-Étienne',\n 'Toulon', 'Grenoble', 'Dijon', 'Angers', 'Nîmes', 'Villeurbanne', 'Saint-Denis',\n 'Le Mans', 'Aix-en-Provence', 'Clermont-Ferrand', 'Brest', 'Limoges', 'Tours',\n 'Amiens', 'Perpignan', 'Metz', 'Besançon', 'Boulogne-Billancourt', 'Orléans',\n 'Mulhouse', 'Rouen', 'Caen', 'Nancy', 'Argenteuil', 'Montreuil', 'Saint-Paul'\n ],\n states: [\n 'Île-de-France', 'Provence-Alpes-Côte d\\'Azur', 'Auvergne-Rhône-Alpes',\n 'Nouvelle-Aquitaine', 'Occitanie', 'Hauts-de-France', 'Pays de la Loire',\n 'Bretagne', 'Grand Est', 'Normandie', 'Bourgogne-Franche-Comté',\n 'Centre-Val de Loire', 'Corse'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Ingénieur Logiciel', 'Chef de Projet', 'Analyste de Données', 'Responsable Marketing',\n 'Commercial', 'Comptable', 'Responsable RH', 'Designer', 'Responsable des Opérations',\n 'Analyste d\\'Affaires', 'Analyste Financier', 'Chef de Produit',\n 'Administrateur Système', 'Chargé de Clientèle', 'Ingénieur Qualité',\n 'Rédacteur Technique', 'Administrateur de Base de Données', 'Ingénieur Réseau'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Commercial', 'Ressources Humaines', 'Finance',\n 'Opérations', 'Service Client', 'IT', 'Recherche et Développement',\n 'Juridique', 'Gestion de Produit', 'Design', 'Assurance Qualité', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 300);\n return `${houseNumber} ${street}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+33 # ## ## ## ##',\n '0# ## ## ## ##',\n '+33 (0)# ## ## ## ##',\n '06 ## ## ## ##',\n '07 ## ## ## ##'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.fr', 'outlook.fr', 'hotmail.fr', 'orange.fr',\n 'free.fr', 'laposte.net', 'sfr.fr', 'bbox.fr', 'numericable.fr'\n ],\n\n companyNames: [\n 'TotalEnergies SE', 'LVMH Moët Hennessy', 'L\\'Oréal SA', 'Sanofi SA',\n 'Air Liquide SA', 'Renault SA', 'Peugeot SA', 'Airbus SE', 'Thales SA',\n 'Société Générale', 'BNP Paribas', 'Crédit Agricole', 'Carrefour SA',\n 'Danone SA', 'Hermès International', 'Chanel SA', 'Dassault Aviation'\n ],\n\n industries: [\n 'Technologie', 'Finance', 'Santé', 'Éducation', 'Commerce de détail',\n 'Fabrication', 'Médias', 'Télécommunications', 'Énergie', 'Transport',\n 'Immobilier', 'Conseil', 'Hôtellerie', 'Automobile', 'Aérospatial'\n ],\n\n catchPhrases: [\n 'Innover pour l\\'avenir', 'Votre réussite est notre métier', 'Construire l\\'avenir ensemble',\n 'L\\'excellence à la française', 'Qualité et innovation', 'Engagement et confiance',\n 'Solutions durables', 'Créer de la valeur', 'Votre partenaire de croissance'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const pt_BR: LocaleDefinition = {\n firstNamesMale: [\n 'Miguel', 'Arthur', 'Heitor', 'Bernardo', 'Théo', 'Davi', 'Gabriel', 'Pedro',\n 'Lucas', 'Matheus', 'Rafael', 'João', 'Guilherme', 'Gustavo', 'Felipe',\n 'Bruno', 'Leonardo', 'Diego', 'Rodrigo', 'Marcelo', 'Vinícius', 'André',\n 'Thiago', 'Fernando', 'Ricardo', 'Daniel', 'Carlos', 'Paulo', 'José',\n 'Antônio', 'Francisco', 'Marcos', 'Roberto', 'Eduardo', 'Fábio', 'César',\n 'Alexandre', 'Renato', 'Márcio', 'Sérgio', 'Luciano', 'Anderson', 'Caio'\n ],\n firstNamesFemale: [\n 'Alice', 'Sophia', 'Helena', 'Valentina', 'Laura', 'Isabella', 'Manuela',\n 'Júlia', 'Heloísa', 'Luiza', 'Maria', 'Lorena', 'Lívia', 'Giovanna',\n 'Beatriz', 'Ana', 'Fernanda', 'Camila', 'Juliana', 'Mariana', 'Patrícia',\n 'Amanda', 'Letícia', 'Carolina', 'Gabriela', 'Renata', 'Bianca', 'Natália',\n 'Vanessa', 'Aline', 'Cristina', 'Paula', 'Adriana', 'Sandra', 'Tatiana',\n 'Luciana', 'Priscila', 'Débora', 'Simone', 'Carla', 'Andreia', 'Viviane'\n ],\n lastNames: [\n 'Silva', 'Santos', 'Oliveira', 'Souza', 'Rodrigues', 'Ferreira', 'Alves',\n 'Pereira', 'Lima', 'Gomes', 'Costa', 'Ribeiro', 'Martins', 'Carvalho',\n 'Almeida', 'Lopes', 'Soares', 'Fernandes', 'Vieira', 'Barbosa', 'Rocha',\n 'Dias', 'Nascimento', 'Araujo', 'Monteiro', 'Cardoso', 'Nunes', 'Mendes',\n 'Freitas', 'Cavalcanti', 'Castro', 'Pinto', 'Farias', 'Moreira', 'Correia',\n 'Rezende', 'Campos', 'Teixeira', 'Miranda', 'Duarte', 'Aragão', 'Machado',\n 'Barros', 'Andrade', 'Moura', 'Cunha', 'Azevedo', 'Melo', 'Ramos', 'Pires'\n ],\n streets: [\n 'Rua das Flores', 'Avenida Paulista', 'Rua Augusta', 'Avenida Atlântica',\n 'Rua Oscar Freire', 'Avenida Brasil', 'Rua XV de Novembro', 'Avenida Copacabana',\n 'Rua da Consolação', 'Avenida Brigadeiro Faria Lima', 'Rua Direita',\n 'Avenida Getúlio Vargas', 'Rua do Comércio', 'Avenida Rio Branco',\n 'Rua Sete de Setembro', 'Avenida Presidente Vargas', 'Rua da Paz',\n 'Avenida Santos Dumont', 'Rua Amazonas', 'Avenida Dom Pedro II',\n 'Rua Tiradentes', 'Avenida Independência', 'Rua Marechal Deodoro',\n 'Avenida Afonso Pena', 'Rua Barão do Rio Branco', 'Avenida Ipiranga'\n ],\n cities: [\n 'São Paulo', 'Rio de Janeiro', 'Brasília', 'Salvador', 'Fortaleza', 'Belo Horizonte',\n 'Manaus', 'Curitiba', 'Recife', 'Porto Alegre', 'Goiânia', 'Belém', 'Guarulhos',\n 'Campinas', 'São Luís', 'São Gonçalo', 'Maceió', 'Duque de Caxias', 'Natal',\n 'Teresina', 'Campo Grande', 'Nova Iguaçu', 'São Bernardo do Campo', 'João Pessoa',\n 'Santo André', 'Osasco', 'Jaboatão dos Guararapes', 'São José dos Campos',\n 'Ribeirão Preto', 'Uberlândia', 'Sorocaba', 'Contagem', 'Aracaju', 'Feira de Santana'\n ],\n states: [\n 'São Paulo', 'Rio de Janeiro', 'Minas Gerais', 'Bahia', 'Paraná', 'Rio Grande do Sul',\n 'Pernambuco', 'Ceará', 'Pará', 'Santa Catarina', 'Goiás', 'Maranhão', 'Espírito Santo',\n 'Paraíba', 'Amazonas', 'Mato Grosso', 'Rio Grande do Norte', 'Alagoas', 'Piauí',\n 'Distrito Federal', 'Mato Grosso do Sul', 'Sergipe', 'Rondônia', 'Tocantins',\n 'Acre', 'Amapá', 'Roraima'\n ],\n zipCodePattern: '#####-###',\n jobTitles: [\n 'Engenheiro de Software', 'Gerente de Projetos', 'Analista de Dados',\n 'Gerente de Marketing', 'Representante de Vendas', 'Contador', 'Gerente de RH',\n 'Designer', 'Gerente de Operações', 'Analista de Negócios', 'Analista Financeiro',\n 'Gerente de Produto', 'Administrador de Sistemas', 'Atendente ao Cliente',\n 'Engenheiro de Qualidade', 'Redator Técnico', 'Administrador de Banco de Dados',\n 'Engenheiro de Redes', 'Coordenador de Marketing', 'Supervisor de Vendas'\n ],\n departments: [\n 'Engenharia', 'Marketing', 'Vendas', 'Recursos Humanos', 'Financeiro',\n 'Operações', 'Atendimento ao Cliente', 'TI', 'Pesquisa e Desenvolvimento',\n 'Jurídico', 'Gestão de Produtos', 'Design', 'Qualidade', 'Administração'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 9999);\n const complement = Random.pick(['Apto', 'Casa', 'Sala', 'Bloco']);\n const complementNumber = Random.int(1, 500);\n return `${street}, ${houseNumber} - ${complement} ${complementNumber}, ${city} - ${state}, CEP ${zipCode}`;\n },\n\n generateZipCode(): string {\n const part1 = String(Random.int(10000, 99999));\n const part2 = String(Random.int(100, 999));\n return `${part1}-${part2}`;\n },\n\n phoneFormats: [\n '+55 (##) #####-####',\n '(##) #####-####',\n '(##) ####-####',\n '+55 ## #####-####',\n '0## # ####-####',\n '0800-###-####',\n '0300-###-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com.br', 'outlook.com', 'hotmail.com', 'uol.com.br',\n 'bol.com.br', 'ig.com.br', 'terra.com.br', 'live.com', 'msn.com'\n ],\n\n companyNames: [\n 'Petróleo Brasileiro SA', 'Vale SA', 'Itaú Unibanco', 'Banco do Brasil',\n 'Bradesco SA', 'Caixa Econômica Federal', 'JBS SA', 'Ambev SA', 'B3 SA',\n 'Magazine Luiza', 'Lojas Renner', 'WEG SA', 'Raia Drogasil', 'Suzano SA',\n 'Embraer SA', 'Gol Linhas Aéreas', 'Azul SA', 'Tim Brasil', 'Vivo SA'\n ],\n\n industries: [\n 'Tecnologia', 'Finanças', 'Saúde', 'Educação', 'Varejo',\n 'Manufatura', 'Mídia', 'Telecomunicações', 'Energia', 'Transporte',\n 'Imobiliário', 'Consultoria', 'Hotelaria', 'Automotivo', 'Aeroespacial'\n ],\n\n catchPhrases: [\n 'Inovando para o futuro', 'Seu sucesso é nosso negócio', 'Construindo o futuro juntos',\n 'Qualidade e confiança', 'Excelência e compromisso', 'Soluções sustentáveis',\n 'Criando valor', 'Seu parceiro de confiança', 'Liderando a mudança'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ko_KR: LocaleDefinition = {\n // Nama keluarga Korea (성)\n lastNames: [\n 'Kim', 'Lee', 'Park', 'Choi', 'Jung', 'Kang', 'Cho', 'Yoon', 'Jang',\n 'Lim', 'Han', 'Oh', 'Seo', 'Shin', 'Kwon', 'Hwang', 'Ahn', 'Song',\n 'Hong', 'Jeon', 'Ko', 'Moon', 'Son', 'Yang', 'Baek', 'Heo', 'Nam',\n 'Shim', 'Roh', 'Ha', 'Joo', 'Koo', 'Chung', 'Min', 'Yoo', 'Sung',\n 'Ji', 'Woo', 'Chae', 'Yeo', 'Do', 'Bae', 'Noh', 'Pyo', 'Tae'\n ],\n // Nama depan pria Korea (이름 - 남성)\n firstNamesMale: [\n 'Minho', 'Joon', 'Hyun', 'Seung', 'Woong', 'Jin', 'Sung', 'Tae',\n 'Young', 'Dong', 'Soo', 'Jun', 'Woo', 'Hoon', 'Jae', 'Kyung',\n 'Ho', 'Chan', 'Hyuk', 'Min', 'Joon-Ho', 'Ji-Hoon', 'Seo-Jun', 'Do-Yun',\n 'Si-Woo', 'Ye-Jun', 'Min-Jun', 'Joo-Won', 'Ha-Jun', 'Woo-Jin',\n 'Yu-Jun', 'Hyun-Woo', 'Jun-Seo', 'Geon-Woo', 'Ji-Hu', 'Yoon-Seo'\n ],\n // Nama depan wanita Korea (이름 - 여성)\n firstNamesFemale: [\n 'Hye', 'Min', 'Ji', 'Soo', 'Young', 'Eun', 'Mi', 'Sun', 'Kyung',\n 'Jung', 'Hee', 'Jin', 'Yeon', 'Seo', 'Ha', 'Yoo', 'Ah', 'Na',\n 'Seo-Yun', 'Ji-Woo', 'Ha-Eun', 'Min-Seo', 'Seo-Hyun', 'Ji-Ah', 'Yoo-Na',\n 'Soo-Ah', 'Chae-Won', 'Eun-Seo', 'Ha-Yoon', 'Ji-Yoo', 'Ah-Rin',\n 'Ye-Eun', 'Ga-Eun', 'Yu-Ri', 'Hye-Won', 'So-Yeon', 'Da-Eun', 'Bo-Ra'\n ],\n streets: [\n 'Gangnam-daero', 'Teheran-ro', 'Seocho-daero', 'Yeongdong-daero',\n 'Sejong-daero', 'Jongno', 'Euljiro', 'Myeongdong-gil', 'Insadong-gil',\n 'Dongdaemun-ro', 'Sinchon-ro', 'Hongik-ro', 'Itaewon-ro', 'Apgujeong-ro',\n 'Garosu-gil', 'Cheonggyecheon-ro', 'Hangang-daero', 'Olympic-ro',\n 'Dongho-ro', 'Seongbuk-ro', 'Bukchon-ro', 'Samcheong-ro', 'Sajik-ro'\n ],\n cities: [\n 'Seoul', 'Busan', 'Incheon', 'Daegu', 'Daejeon', 'Gwangju', 'Suwon',\n 'Ulsan', 'Changwon', 'Goyang', 'Yongin', 'Seongnam', 'Bucheon', 'Ansan',\n 'Cheongju', 'Jeonju', 'Anyang', 'Cheonan', 'Pohang', 'Gimhae', 'Pyeongtaek',\n 'Uijeongbu', 'Siheung', 'Paju', 'Jinju', 'Gimpo', 'Iksan', 'Wonju'\n ],\n // Provinsi Korea (도/광역시)\n states: [\n 'Seoul', 'Busan', 'Incheon', 'Daegu', 'Daejeon', 'Gwangju', 'Ulsan',\n 'Sejong', 'Gyeonggi-do', 'Gangwon-do', 'North Chungcheong', 'South Chungcheong',\n 'North Jeolla', 'South Jeolla', 'North Gyeongsang', 'South Gyeongsang', 'Jeju'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer',\n 'Operations Manager', 'Business Analyst', 'Financial Analyst', 'Product Manager',\n 'System Administrator', 'Customer Service Representative', 'QA Engineer',\n 'Technical Writer', 'Database Administrator', 'Network Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n // Format Korea: Nama Keluarga + Nama Depan\n return `${lastName} ${firstName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n // Format alamat Korea: Provinsi, Kota, Jalan, Nomor bangunan, Kode Pos\n const buildingNumber = Random.int(1, 500);\n const dong = Random.pick(['Gangnam-gu', 'Seocho-gu', 'Songpa-gu', 'Jongno-gu', 'Jung-gu', 'Yongsan-gu']);\n return `${state}, ${city}, ${dong}, ${street} ${buildingNumber}, ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+82-##-####-####',\n '0##-###-####',\n '010-####-####',\n '011-###-####',\n '016-###-####',\n '019-###-####',\n '02-###-####',\n '031-###-####',\n '032-###-####',\n '051-###-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'naver.com', 'daum.net', 'nate.com', 'yahoo.co.kr',\n 'hotmail.com', 'outlook.com', 'hanmail.net', 'paran.com', 'empas.com'\n ],\n\n companyNames: [\n '삼성전자', '현대자동차', 'SK 하이닉스', 'LG 전자', 'POSCO',\n 'KB 국민은행', '삼성생명', '현대모비스', '기아', 'LG 화학',\n 'SK 텔레콤', 'KT', 'LG 유플러스', 'NAVER', '카카오',\n '셀트리온', '삼성바이오로직스', '현대중공업', '두산', '롯데그룹'\n ],\n\n industries: [\n '기술', '금융', '의료', '교육', '유통',\n '제조', '미디어', '통신', '에너지', '운송',\n '부동산', '컨설팅', '호텔', '자동차', '항공우주'\n ],\n\n catchPhrases: [\n '미래를 창조합니다', '고객의 성공이 우리의 사명', '함께 미래를築습니다',\n '품질과 신뢰', '혁신과 전통', '최고의 서비스를 제공합니다',\n '지속 가능한 성장', '가치를 창출합니다', '당신의 파트너'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_AU: LocaleDefinition = {\n firstNamesMale: [\n 'Oliver', 'Jack', 'Noah', 'William', 'Thomas', 'James', 'Henry', 'Lucas',\n 'Charlie', 'Ethan', 'Liam', 'Mason', 'Benjamin', 'Alexander', 'Samuel',\n 'Daniel', 'Matthew', 'Joshua', 'Ryan', 'Andrew', 'Michael', 'David',\n 'Christopher', 'Nathan', 'Jacob', 'Dylan', 'Luke', 'Isaac', 'Harrison',\n 'Lachlan', 'Cooper', 'Max', 'Angus', 'Hamish', 'Oscar', 'Archer', 'Flynn'\n ],\n firstNamesFemale: [\n 'Charlotte', 'Amelia', 'Olivia', 'Isla', 'Mia', 'Ava', 'Grace', 'Chloe',\n 'Emily', 'Sophie', 'Ella', 'Ruby', 'Harper', 'Zoe', 'Lucy', 'Lily',\n 'Emma', 'Isabella', 'Sophia', 'Hannah', 'Jessica', 'Sarah', 'Madison',\n 'Abigail', 'Elizabeth', 'Scarlett', 'Sienna', 'Matilda', 'Georgia',\n 'Evie', 'Willow', 'Ivy', 'Layla', 'Jasmine', 'Poppy', 'Maya', 'Aria'\n ],\n lastNames: [\n 'Smith', 'Jones', 'Williams', 'Brown', 'Wilson', 'Taylor', 'Johnson',\n 'White', 'Martin', 'Anderson', 'Thompson', 'Nguyen', 'Thomas', 'Walker',\n 'Harris', 'Lee', 'Ryan', 'Robinson', 'Kelly', 'King', 'Murphy', 'Edwards',\n 'Hall', 'Moore', 'Clark', 'Jackson', 'Young', 'Lewis', 'Wood', 'Scott',\n 'Green', 'Davis', 'Baker', 'Adams', 'Nelson', 'Hill', 'Mitchell', 'Campbell',\n 'Roberts', 'Carter', 'Phillips', 'Evans', 'Turner', 'Collins', 'Stewart',\n 'Morris', 'Rogers', 'Reed', 'Cook', 'Morgan', 'Bell', 'Cooper', 'Richardson'\n ],\n streets: [\n 'George Street', 'Elizabeth Street', 'King Street', 'Queen Street', 'Collins Street',\n 'Bourke Street', 'Flinders Street', 'Swanston Street', 'William Street', 'Victoria Street',\n 'Chapel Street', 'High Street', 'Main Road', 'Oxford Street', 'Brunswick Street',\n 'Smith Street', 'Sydney Road', 'Lygon Street', 'Fitzroy Street', 'Acland Street',\n 'Beach Road', 'Princes Highway', 'Pacific Highway', 'Anzac Parade', 'Military Road',\n 'Crown Street', 'Park Road', 'Station Street', 'Church Street', 'Bay Street'\n ],\n cities: [\n 'Sydney', 'Melbourne', 'Brisbane', 'Perth', 'Adelaide', 'Gold Coast', 'Newcastle',\n 'Canberra', 'Sunshine Coast', 'Wollongong', 'Hobart', 'Geelong', 'Townsville',\n 'Cairns', 'Darwin', 'Toowoomba', 'Ballarat', 'Bendigo', 'Albury', 'Launceston',\n 'Mackay', 'Rockhampton', 'Bunbury', 'Bundaberg', 'Wagga Wagga', 'Hervey Bay',\n 'Mildura', 'Shepparton', 'Port Macquarie', 'Gladstone', 'Tamworth', 'Dubbo'\n ],\n states: [\n 'New South Wales', 'Victoria', 'Queensland', 'Western Australia',\n 'South Australia', 'Tasmania', 'Northern Territory',\n 'Australian Capital Territory'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer',\n 'Operations Manager', 'Business Analyst', 'Financial Analyst', 'Product Manager',\n 'Systems Administrator', 'Customer Service Representative', 'Quality Assurance Engineer',\n 'Technical Writer', 'Database Administrator', 'Network Engineer', 'Tradesperson',\n 'Nurse', 'Teacher', 'Electrician', 'Plumber', 'Carpenter', 'Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 999);\n const unitNumber = Random.boolean() ? `Unit ${Random.int(1, 50)}/` : '';\n return `${unitNumber}${houseNumber} ${street}, ${city} ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+61 # #### ####',\n '0# #### ####',\n '+61 (0)# #### ####',\n '04## ### ###',\n '04## ### ###',\n '02 #### ####',\n '03 #### ####',\n '07 #### ####',\n '08 #### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com.au', 'outlook.com.au', 'hotmail.com', 'live.com.au',\n 'bigpond.com', 'optusnet.com.au', 'tpg.com.au', 'iinet.net.au', 'internode.on.net'\n ],\n\n companyNames: [\n 'Commonwealth Bank', 'BHP Group', 'CSL Limited', 'Westpac Banking', 'ANZ Group',\n 'National Australia Bank', 'Wesfarmers', 'Woolworths Group', 'Telstra Corporation',\n 'Macquarie Group', 'Rio Tinto Australia', 'Fortescue Metals', 'Woodside Energy',\n 'Qantas Airways', 'Transurban Group', 'Goodman Group', 'Atlassian Corporation'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transport',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace'\n ],\n\n catchPhrases: [\n 'Innovating for the future', 'Your success is our business', 'Building the future together',\n 'Quality and trust', 'Excellence and commitment', 'Sustainable solutions',\n 'Creating value', 'Your trusted partner', 'Leading the change'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const zh_CN: LocaleDefinition = {\n lastNames: [\n 'Wang', 'Li', 'Zhang', 'Liu', 'Chen', 'Yang', 'Huang', 'Zhao', 'Wu', 'Zhou',\n 'Xu', 'Sun', 'Ma', 'Zhu', 'Hu', 'Guo', 'He', 'Gao', 'Lin', 'Luo',\n 'Zheng', 'Liang', 'Xie', 'Song', 'Tang', 'Xu', 'Deng', 'Han', 'Feng', 'Cao',\n 'Peng', 'Zeng', 'Xiao', 'Tian', 'Dong', 'Pan', 'Yuan', 'Cai', 'Jiang', 'Yu'\n ],\n firstNamesMale: [\n 'Wei', 'Jun', 'Ming', 'Tao', 'Jie', 'Qiang', 'Lei', 'Yong', 'Jian', 'Ping',\n 'Bin', 'Feng', 'Long', 'Chao', 'Yang', 'Lin', 'Hao', 'Gang', 'Kai', 'Peng',\n 'Zhi', 'Yun', 'Bo', 'Hua', 'Xin', 'Liang', 'Chen', 'Dong', 'Fei', 'Xiong',\n 'Huan', 'Yu', 'Rui', 'Jing', 'Song', 'Zhen', 'Kun', 'Han', 'Xi', 'Cheng'\n ],\n firstNamesFemale: [\n 'Li', 'Fang', 'Xiu', 'Ying', 'Min', 'Jing', 'Juan', 'Yan', 'Hong', 'Mei',\n 'Xia', 'Qing', 'Lan', 'Yue', 'Xin', 'Ling', 'Na', 'Hui', 'Rong', 'Dan',\n 'Shan', 'Yun', 'Ping', 'Jie', 'Xue', 'Fen', 'Yu', 'Qian', 'Shu', 'Wen',\n 'Zhen', 'Xiang', 'Cui', 'Lin', 'Ran', 'Meng', 'Rou', 'Yi', 'Ning', 'Qin'\n ],\n streets: [\n 'Zhongshan Road', 'Renmin Road', 'Jiefang Road', 'Changjiang Road', 'Huanghe Road',\n 'Beijing Road', 'Shanghai Road', 'Guangzhou Road', 'Nanjing Road', 'Chengdu Road',\n 'Dongfeng Road', 'Xin Avenue', 'Heping Road', 'Wenhua Road', 'Jianshe Road',\n 'Minzhu Road', 'Gongyuan Road', 'Xueyuan Road', 'Keji Road', 'Binhe Road'\n ],\n cities: [\n 'Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen', 'Chengdu', 'Chongqing', 'Tianjin',\n 'Wuhan', 'Hangzhou', 'Nanjing', 'Xi\\'an', 'Shenyang', 'Harbin', 'Changchun',\n 'Dalian', 'Qingdao', 'Jinan', 'Zhengzhou', 'Shijiazhuang', 'Taiyuan', 'Hefei',\n 'Changsha', 'Nanchang', 'Fuzhou', 'Kunming', 'Guiyang', 'Nanning', 'Lanzhou'\n ],\n states: [\n 'Beijing', 'Shanghai', 'Tianjin', 'Chongqing', 'Hebei', 'Shanxi', 'Liaoning',\n 'Jilin', 'Heilongjiang', 'Jiangsu', 'Zhejiang', 'Anhui', 'Fujian', 'Jiangxi',\n 'Shandong', 'Henan', 'Hubei', 'Hunan', 'Guangdong', 'Hainan', 'Sichuan',\n 'Guizhou', 'Yunnan', 'Shaanxi', 'Gansu', 'Qinghai', 'Xinjiang', 'Guangxi'\n ],\n zipCodePattern: '######',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'R&D', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${lastName} ${firstName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const building = Random.int(1, 999);\n const unit = Random.int(1, 50);\n return `${state} Province, ${city}, ${street} No.${building}, Unit ${unit}, ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(100000, 999999));\n },\n\n phoneFormats: [\n '+86 ### #### ####',\n '### #### ####',\n '+86-###-####-####',\n '1##-####-####',\n '13#-####-####',\n '15#-####-####',\n '18#-####-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'qq.com', '163.com', '126.com', 'sina.com',\n 'sohu.com', 'yahoo.com.cn', 'hotmail.com', 'outlook.com',\n 'gmail.cn', 'foxmail.com', 'yeah.net', '21cn.com'\n ],\n\n companyNames: [\n '阿里巴巴集团', '腾讯控股', '华为技术', '百度', '京东集团',\n '中国移动', '中国石化', '中国石油', '工商银行', '建设银行',\n '中国平安', '中国银行', '农业银行', '上汽集团', '比亚迪',\n '小米集团', '美团点评', '网易公司', '苏宁易购', '海尔集团'\n ],\n\n industries: [\n '科技', '金融', '医疗', '教育', '零售',\n '制造', '媒体', '电信', '能源', '交通',\n '房地产', '咨询', '酒店', '汽车', '航空航天'\n ],\n\n catchPhrases: [\n '创新引领未来', '客户至上', '携手共创美好明天',\n '品质卓越', '诚信为本', '追求卓越',\n '可持续发展', '创造价值', '您的合作伙伴'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_IN: LocaleDefinition = {\n firstNamesMale: [\n 'Rahul', 'Amit', 'Raj', 'Rohan', 'Arjun', 'Aditya', 'Aryan', 'Vikram', 'Suresh',\n 'Karan', 'Sandeep', 'Rajesh', 'Manoj', 'Ashok', 'Deepak', 'Ajay', 'Ravi',\n 'Krishna', 'Sanjay', 'Vijay', 'Anil', 'Ramesh', 'Rakesh', 'Nitin', 'Vivek',\n 'Sachin', 'Akash', 'Nikhil', 'Siddharth', 'Ankit', 'Varun', 'Kunal', 'Harsh'\n ],\n firstNamesFemale: [\n 'Priya', 'Pooja', 'Anita', 'Sneha', 'Kavita', 'Neha', 'Ritu', 'Anjali', 'Divya',\n 'Preeti', 'Sunita', 'Asha', 'Rekha', 'Sonal', 'Manisha', 'Deepika', 'Simran',\n 'Nisha', 'Swati', 'Meera', 'Radha', 'Seema', 'Geeta', 'Riya', 'Shreya',\n 'Ayesha', 'Sakshi', 'Tanvi', 'Aditi', 'Kritika', 'Ishita', 'Dia', 'Mira'\n ],\n lastNames: [\n 'Sharma', 'Verma', 'Singh', 'Kumar', 'Gupta', 'Patel', 'Shah', 'Reddy', 'Desai',\n 'Joshi', 'Rao', 'Mehta', 'Nair', 'Iyer', 'Chopra', 'Malhotra', 'Kapoor', 'Agarwal',\n 'Bansal', 'Jain', 'Sinha', 'Khan', 'Menon', 'Kulkarni', 'Bhatt', 'Trivedi',\n 'Pandey', 'Mishra', 'Yadav', 'Saxena', 'Bose', 'Ghosh', 'Chatterjee', 'Das'\n ],\n streets: [\n 'MG Road', 'Nehru Street', 'Gandhi Nagar', 'Park Street', 'Brigade Road',\n 'Anna Salai', 'Mall Road', 'Station Road', 'Marine Drive', 'Linking Road',\n 'Main Road', 'Church Street', 'Cross Road', 'Ring Road', 'Service Road',\n 'Residency Road', 'Commercial Street', 'Infantry Road', 'Richmond Road'\n ],\n cities: [\n 'Mumbai', 'Delhi', 'Bangalore', 'Hyderabad', 'Chennai', 'Kolkata', 'Pune', 'Ahmedabad',\n 'Jaipur', 'Surat', 'Lucknow', 'Kanpur', 'Nagpur', 'Indore', 'Bhopal', 'Visakhapatnam',\n 'Patna', 'Vadodara', 'Ghaziabad', 'Ludhiana', 'Agra', 'Nashik', 'Faridabad', 'Meerut',\n 'Rajkot', 'Kalyan', 'Vasai', 'Varanasi', 'Srinagar', 'Aurangabad', 'Dhanbad', 'Amritsar'\n ],\n states: [\n 'Maharashtra', 'Delhi', 'Karnataka', 'Telangana', 'Tamil Nadu', 'West Bengal',\n 'Gujarat', 'Rajasthan', 'Uttar Pradesh', 'Madhya Pradesh', 'Bihar', 'Kerala',\n 'Andhra Pradesh', 'Haryana', 'Punjab', 'Odisha', 'Jharkhand', 'Uttarakhand',\n 'Himachal Pradesh', 'Assam', 'Chhattisgarh', 'Goa', 'Jammu and Kashmir'\n ],\n zipCodePattern: '######',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Executive', 'Chartered Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Analyst'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Support', 'IT', 'Research & Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNo = Random.int(1, 999);\n const sector = Random.pick(['A', 'B', 'C', 'D', 'E']);\n return `${houseNo}/${sector}, ${street}, ${city}, ${state} - ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(100000, 999999));\n },\n\n phoneFormats: [\n '+91 ##### #####',\n '0##### #####',\n '+91 (0)##### #####',\n '9##### #####',\n '8##### #####',\n '7##### #####',\n '6##### #####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.co.in', 'outlook.in', 'hotmail.co.in', 'live.in',\n 'rediffmail.com', 'sify.com', 'sancharnet.in', 'vsnl.com', 'dataone.in'\n ],\n\n companyNames: [\n 'Tata Consultancy Services', 'Reliance Industries', 'HDFC Bank', 'Infosys Limited',\n 'ICICI Bank', 'Hindustan Unilever', 'ITC Limited', 'Bharti Airtel',\n 'State Bank of India', 'Larsen & Toubro', 'Wipro Limited', 'Tata Motors',\n 'Mahindra & Mahindra', 'Maruti Suzuki', 'Bajaj Finance', 'Asian Paints',\n 'Titan Company', 'Sun Pharmaceutical', 'Dr Reddy\\'s Laboratories', 'Zomato Limited'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transport',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace'\n ],\n\n catchPhrases: [\n 'Innovating for the future', 'Your success is our business', 'Building the future together',\n 'Quality and trust', 'Excellence and commitment', 'Sustainable solutions',\n 'Creating value', 'Your trusted partner', 'Leading the change'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const es_MX: LocaleDefinition = {\n firstNamesMale: [\n 'José', 'Juan', 'Luis', 'Miguel', 'Carlos', 'Antonio', 'Francisco', 'Alejandro',\n 'Pedro', 'Jesús', 'Manuel', 'Rafael', 'Javier', 'Daniel', 'Ricardo', 'Fernando',\n 'Jorge', 'Roberto', 'Eduardo', 'Sergio', 'Raúl', 'Arturo', 'Gerardo', 'Héctor',\n 'Andrés', 'Diego', 'Gabriel', 'Oscar', 'Julio', 'Ramón', 'Armando', 'Enrique'\n ],\n firstNamesFemale: [\n 'María', 'Guadalupe', 'Juana', 'Margarita', 'Rosa', 'Francisca', 'Teresa', 'Ana',\n 'Patricia', 'Carmen', 'Laura', 'Gabriela', 'Verónica', 'Silvia', 'Martha', 'Diana',\n 'Karla', 'Leticia', 'Sandra', 'Elena', 'Claudia', 'Alejandra', 'Daniela', 'Sofía',\n 'Adriana', 'Andrea', 'Monica', 'Beatriz', 'Cecilia', 'Paola', 'Fernanda', 'Lucía'\n ],\n lastNames: [\n 'Hernández', 'García', 'Martínez', 'López', 'González', 'Rodríguez', 'Pérez', 'Sánchez',\n 'Ramírez', 'Torres', 'Flores', 'Rivera', 'Gómez', 'Díaz', 'Cruz', 'Morales',\n 'Reyes', 'Gutiérrez', 'Ortiz', 'Mendoza', 'Castillo', 'Vargas', 'Romero', 'Jiménez',\n 'Ruiz', 'Álvarez', 'Vázquez', 'Medina', 'Aguilar', 'Salazar', 'Rojas', 'Herrera'\n ],\n streets: [\n 'Avenida Reforma', 'Calle Juárez', 'Avenida Insurgentes', 'Calle Hidalgo',\n 'Avenida Revolución', 'Calle Morelos', 'Avenida Universidad', 'Calle Independencia',\n 'Avenida Constitución', 'Calle 5 de Mayo', 'Avenida Chapultepec', 'Calle Madero',\n 'Avenida Patriotismo', 'Calle Guerrero', 'Avenida División del Norte', 'Calle Cuauhtémoc'\n ],\n cities: [\n 'Ciudad de México', 'Guadalajara', 'Monterrey', 'Puebla', 'Tijuana', 'León',\n 'Juárez', 'Zapopan', 'Mérida', 'San Luis Potosí', 'Querétaro', 'Toluca',\n 'Chihuahua', 'Aguascalientes', 'Saltillo', 'Mexicali', 'Culiacán', 'Acapulco',\n 'Cancún', 'Veracruz', 'Hermosillo', 'Morelia', 'Durango', 'Oaxaca', 'Tampico'\n ],\n states: [\n 'Ciudad de México', 'Jalisco', 'Nuevo León', 'Puebla', 'Baja California', 'Guanajuato',\n 'Chihuahua', 'Yucatán', 'San Luis Potosí', 'Querétaro', 'Estado de México',\n 'Veracruz', 'Aguascalientes', 'Coahuila', 'Sinaloa', 'Sonora', 'Michoacán',\n 'Guerrero', 'Quintana Roo', 'Tamaulipas', 'Oaxaca', 'Chiapas', 'Durango'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Ingeniero de Software', 'Gerente de Proyecto', 'Analista de Datos', 'Gerente de Marketing',\n 'Representante de Ventas', 'Contador', 'Gerente de RH', 'Diseñador', 'Gerente de Operaciones',\n 'Analista de Negocios', 'Gerente de Producto', 'Administrador de Sistemas'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas', 'Operaciones',\n 'Servicio al Cliente', 'TI', 'Investigación y Desarrollo', 'Legal', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n const colonia = Random.pick(['Centro', 'Norte', 'Sur', 'Oriente', 'Poniente']);\n return `${street} ${number}, Col. ${colonia}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+52 ## #### ####',\n '0## #### ####',\n '+52 (##) #### ####',\n '(##) #### ####',\n '1## #### ####',\n '55 #### ####',\n '33 #### ####',\n '81 #### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com.mx', 'outlook.com', 'hotmail.com', 'live.com',\n 'prodigy.net.mx', 'cablevision.net.mx', 'telmex.net.mx', 'uninet.com.mx',\n 'alestra.com.mx', 'totalplay.net'\n ],\n\n companyNames: [\n 'América Móvil', 'Grupo México', 'Grupo Aeroportuario del Sureste', 'Fomento Económico Mexicano',\n 'Grupo Bimbo', 'Cemex', 'Grupo Televisa', 'TV Azteca', 'Grupo Carso',\n 'Grupo Salinas', 'Banco Santander México', 'BBVA México', 'Banorte',\n 'Aeroméxico', 'Volaris', 'Interjet', 'Grupo Modelo', 'Heineken México',\n 'Walmart de México', 'Organización Soriana', 'El Puerto de Liverpool'\n ],\n\n industries: [\n 'Tecnología', 'Finanzas', 'Salud', 'Educación', 'Venta minorista',\n 'Fabricación', 'Medios', 'Telecomunicaciones', 'Energía', 'Transporte',\n 'Inmobiliaria', 'Consultoría', 'Hostelería', 'Automoción', 'Aeroespacial'\n ],\n\n catchPhrases: [\n 'Innovando para el futuro', 'Su éxito es nuestro negocio', 'Construyendo el futuro juntos',\n 'Calidad y confianza', 'Excelencia y compromiso', 'Soluciones sostenibles',\n 'Creamos valor', 'Su socio de confianza', 'Liderando el cambio'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const it_IT: LocaleDefinition = {\n firstNamesMale: [\n 'Francesco', 'Alessandro', 'Andrea', 'Lorenzo', 'Matteo', 'Gabriele', 'Mattia',\n 'Marco', 'Luca', 'Giovanni', 'Giuseppe', 'Antonio', 'Roberto', 'Paolo', 'Stefano',\n 'Carlo', 'Davide', 'Simone', 'Federico', 'Riccardo', 'Michele', 'Tommaso',\n 'Filippo', 'Vincenzo', 'Emanuele', 'Alberto', 'Daniele', 'Leonardo', 'Pietro'\n ],\n firstNamesFemale: [\n 'Sofia', 'Giulia', 'Aurora', 'Alice', 'Ginevra', 'Emma', 'Giorgia', 'Greta',\n 'Beatrice', 'Anna', 'Chiara', 'Francesca', 'Sara', 'Martina', 'Alessia', 'Elena',\n 'Silvia', 'Valentina', 'Federica', 'Laura', 'Elisa', 'Claudia', 'Monica', 'Paola',\n 'Roberta', 'Simona', 'Antonella', 'Maria', 'Lucia', 'Cristina', 'Isabella'\n ],\n lastNames: [\n 'Rossi', 'Russo', 'Ferrari', 'Esposito', 'Bianchi', 'Romano', 'Colombo', 'Ricci',\n 'Marino', 'Greco', 'Bruno', 'Gallo', 'Conti', 'De Luca', 'Costa', 'Giordano',\n 'Mancini', 'Rizzo', 'Lombardi', 'Moretti', 'Barbieri', 'Fontana', 'Santoro',\n 'Mariani', 'Rinaldi', 'Caruso', 'Ferrara', 'Galli', 'Martini', 'Leone', 'Longo'\n ],\n streets: [\n 'Via Roma', 'Corso Italia', 'Via Garibaldi', 'Via Mazzini', 'Piazza Duomo',\n 'Via Dante', 'Corso Vittorio Emanuele', 'Via Cavour', 'Via Verdi', 'Via Nazionale',\n 'Corso Umberto', 'Via Milano', 'Via Torino', 'Via Napoli', 'Viale Europa',\n 'Via della Repubblica', 'Corso Giuseppe Mazzini', 'Via San Francesco', 'Via Venezia'\n ],\n cities: [\n 'Roma', 'Milano', 'Napoli', 'Torino', 'Palermo', 'Genova', 'Bologna', 'Firenze',\n 'Bari', 'Catania', 'Venezia', 'Verona', 'Messina', 'Padova', 'Trieste', 'Brescia',\n 'Parma', 'Taranto', 'Prato', 'Modena', 'Reggio Calabria', 'Reggio Emilia', 'Perugia',\n 'Livorno', 'Ravenna', 'Cagliari', 'Foggia', 'Rimini', 'Salerno', 'Ferrara', 'Sassari'\n ],\n states: [\n 'Lazio', 'Lombardia', 'Campania', 'Piemonte', 'Sicilia', 'Liguria', 'Emilia-Romagna',\n 'Toscana', 'Puglia', 'Veneto', 'Calabria', 'Sardegna', 'Marche', 'Abruzzo',\n 'Friuli-Venezia Giulia', 'Umbria', 'Basilicata', 'Molise', 'Trentino-Alto Adige', 'Valle d\\'Aosta'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Ingegnere Software', 'Project Manager', 'Analista Dati', 'Responsabile Marketing',\n 'Rappresentante Vendite', 'Commercialista', 'Responsabile HR', 'Designer',\n 'Responsabile Operazioni', 'Analista di Business', 'Product Manager', 'Amministratore di Sistema'\n ],\n departments: [\n 'Ingegneria', 'Marketing', 'Vendite', 'Risorse Umane', 'Finanza', 'Operazioni',\n 'Servizio Clienti', 'IT', 'Ricerca e Sviluppo', 'Legale', 'Amministrazione'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n return `${street}, ${number}, ${zipCode} ${city} (${state.substring(0, 2).toUpperCase()})`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+39 0## ### ####',\n '+39 0## #######',\n '0## ### ####',\n '0## #######',\n '+39 3## ### ####',\n '3## ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.it', 'outlook.it', 'hotmail.it', 'libero.it',\n 'alice.it', 'tin.it', 'virgilio.it', 'tiscali.it', 'fastwebnet.it'\n ],\n\n companyNames: [\n 'Eni SpA', 'Enel SpA', 'Generali Italia', 'Intesa Sanpaolo', 'UniCredit SpA',\n 'Stellantis Italy', 'Ferrari NV', 'Lamborghini SpA', 'Pirelli & C',\n 'Telecom Italia', 'Poste Italiane', 'Leonardo SpA', 'Saipem SpA',\n 'Mediaset SpA', 'Moncler SpA', 'Armani SpA', 'Prada SpA', 'Gucci SpA'\n ],\n\n industries: [\n 'Tecnologia', 'Finanza', 'Sanità', 'Istruzione', 'Vendita al dettaglio',\n 'Produzione', 'Media', 'Telecomunicazioni', 'Energia', 'Trasporti',\n 'Immobiliare', 'Consulenza', 'Alberghiero', 'Automobilistico', 'Aerospaziale'\n ],\n\n catchPhrases: [\n 'Innovare per il futuro', 'Il vostro successo è il nostro lavoro', 'Costruire il futuro insieme',\n 'Qualità e fiducia', 'Eccellenza e impegno', 'Soluzioni sostenibili',\n 'Creiamo valore', 'Il vostro partner di fiducia', 'Guidare il cambiamento'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const es_ES: LocaleDefinition = {\n firstNamesMale: [\n 'Antonio', 'Manuel', 'José', 'Francisco', 'David', 'Juan', 'Javier', 'Daniel',\n 'Carlos', 'Miguel', 'Alejandro', 'Pedro', 'Jesús', 'Pablo', 'Sergio', 'Rafael',\n 'Ángel', 'José Antonio', 'Fernando', 'Luis', 'Alberto', 'Jorge', 'Adrián',\n 'Álvaro', 'Diego', 'Raúl', 'Enrique', 'Rubén', 'Iván', 'Gonzalo', 'Hugo'\n ],\n firstNamesFemale: [\n 'María', 'Carmen', 'Ana', 'Isabel', 'Dolores', 'Pilar', 'Teresa', 'Rosa',\n 'Lucía', 'Paula', 'Sara', 'Laura', 'Marta', 'Elena', 'Cristina', 'Andrea',\n 'Sofía', 'Beatriz', 'Alba', 'Nuria', 'Silvia', 'Patricia', 'Raquel', 'Marina',\n 'Clara', 'Irene', 'Julia', 'Natalia', 'Rocío', 'Eva', 'Mónica', 'Susana'\n ],\n lastNames: [\n 'García', 'Fernández', 'González', 'Rodríguez', 'López', 'Martínez', 'Sánchez', 'Pérez',\n 'Gómez', 'Martín', 'Jiménez', 'Ruiz', 'Hernández', 'Díaz', 'Moreno', 'Muñoz',\n 'Álvarez', 'Romero', 'Alonso', 'Gutiérrez', 'Navarro', 'Torres', 'Domínguez',\n 'Vázquez', 'Ramos', 'Gil', 'Ramírez', 'Serrano', 'Blanco', 'Molina', 'Morales'\n ],\n streets: [\n 'Calle Mayor', 'Gran Vía', 'Calle Real', 'Paseo de la Castellana', 'Avenida de Andalucía',\n 'Calle Alcalá', 'Paseo del Prado', 'Calle de Serrano', 'Avenida Diagonal',\n 'Ronda de Segovia', 'Calle Toledo', 'Plaza de España', 'Calle Atocha',\n 'Paseo de Gracia', 'Calle Preciados', 'Avenida de América', 'Calle Génova'\n ],\n cities: [\n 'Madrid', 'Barcelona', 'Valencia', 'Sevilla', 'Zaragoza', 'Málaga', 'Murcia',\n 'Palma', 'Las Palmas', 'Bilbao', 'Alicante', 'Córdoba', 'Valladolid', 'Vigo',\n 'Gijón', 'Hospitalet', 'Vitoria', 'Granada', 'Elche', 'Oviedo', 'Badalona',\n 'Cartagena', 'Terrassa', 'Jerez', 'Sabadell', 'Santa Cruz', 'Pamplona', 'Almería'\n ],\n states: [\n 'Madrid', 'Cataluña', 'Comunidad Valenciana', 'Andalucía', 'Aragón', 'Galicia',\n 'Castilla y León', 'País Vasco', 'Canarias', 'Castilla-La Mancha', 'Murcia',\n 'Asturias', 'Islas Baleares', 'Extremadura', 'Navarra', 'Cantabria', 'La Rioja'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Ingeniero de Software', 'Jefe de Proyecto', 'Analista de Datos', 'Responsable de Marketing',\n 'Comercial', 'Contable', 'Jefe de RRHH', 'Diseñador', 'Responsable de Operaciones',\n 'Analista de Negocio', 'Jefe de Producto', 'Administrador de Sistemas'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas', 'Operaciones',\n 'Atención al Cliente', 'Informática', 'Investigación y Desarrollo', 'Legal', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 300);\n const piso = Random.int(1, 8);\n const puerta = Random.pick(['A', 'B', 'C', 'D']);\n return `${street}, ${number}, ${piso}º ${puerta}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+34 ### ## ## ##',\n '### ## ## ##',\n '6## ## ## ##',\n '7## ## ## ##',\n '9## ## ## ##',\n '+34 6## ## ## ##'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.es', 'outlook.es', 'hotmail.es', 'terra.es',\n 'movistar.es', 'vodafone.es', 'orange.es', 'ono.com', 'wanadoo.es'\n ],\n\n companyNames: [\n 'Inditex SA', 'Banco Santander', 'BBVA', 'Iberdrola SA', 'Repsol SA',\n 'Telefónica SA', 'ACS Actividades', 'Iberia LAE', 'El Corte Inglés',\n 'Mercadona SA', 'Cellnex Telecom', 'Aena SME', 'Ferrovial SA',\n 'Acciona SA', 'CaixaBank', 'Sabadell', 'Mapfre SA'\n ],\n\n industries: [\n 'Tecnología', 'Finanzas', 'Salud', 'Educación', 'Venta minorista',\n 'Fabricación', 'Medios', 'Telecomunicaciones', 'Energía', 'Transporte',\n 'Inmobiliaria', 'Consultoría', 'Hostelería', 'Automoción', 'Aeroespacial'\n ],\n\n catchPhrases: [\n 'Innovando para el futuro', 'Su éxito es nuestro negocio', 'Construyendo el futuro juntos',\n 'Calidad y confianza', 'Excelencia y compromiso', 'Soluciones sostenibles',\n 'Creamos valor', 'Su socio de confianza', 'Liderando el cambio'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const nl_NL: LocaleDefinition = {\n firstNamesMale: [\n 'Jan', 'Pieter', 'Kees', 'Henk', 'Johan', 'Daan', 'Lucas', 'Sem', 'Bram', 'Thijs',\n 'Lars', 'Tim', 'Tom', 'Ruben', 'Sven', 'Stijn', 'Luuk', 'Jesse', 'Milan', 'Max',\n 'Finn', 'Teun', 'Bas', 'Nick', 'Thomas', 'Jasper', 'Jelle', 'Roel', 'Sander'\n ],\n firstNamesFemale: [\n 'Anna', 'Emma', 'Sophie', 'Julia', 'Lisa', 'Laura', 'Sanne', 'Eva', 'Lotte',\n 'Sara', 'Isa', 'Anne', 'Nina', 'Fleur', 'Femke', 'Iris', 'Noa', 'Maud', 'Roos',\n 'Eline', 'Demi', 'Lynn', 'Amy', 'Lieke', 'Naomi', 'Amber', 'Vera', 'Maja', 'Tess'\n ],\n lastNames: [\n 'de Jong', 'Jansen', 'de Vries', 'van den Berg', 'van Dijk', 'Bakker', 'Janssen',\n 'Visser', 'Smit', 'Meijer', 'de Boer', 'Mulder', 'de Groot', 'Bos', 'Vos',\n 'Peters', 'Hendriks', 'van Leeuwen', 'Dekker', 'Brouwer', 'de Wit', 'Dijkstra',\n 'Smits', 'de Graaf', 'van der Meer', 'van der Linden', 'Kok', 'Jacobs', 'de Haan'\n ],\n streets: [\n 'Hoofdstraat', 'Kerkstraat', 'Schoolstraat', 'Dorpsstraat', 'Stationsweg',\n 'Molenstraat', 'Nieuwstraat', 'Parkweg', 'Bosweg', 'Beatrixlaan', 'Wilhelminalaan',\n 'Julianastraat', 'Koningstraat', 'Prins Hendrikstraat', 'Marktstraat',\n 'Parallelweg', 'Gravenstraat', 'Binnenweg', 'Groeneweg', 'Lindenstraat'\n ],\n cities: [\n 'Amsterdam', 'Rotterdam', 'Den Haag', 'Utrecht', 'Eindhoven', 'Tilburg', 'Groningen',\n 'Almere', 'Breda', 'Nijmegen', 'Enschede', 'Haarlem', 'Arnhem', 'Zaanstad',\n 'Amersfoort', 'Apeldoorn', 'Hoofddorp', 'Maastricht', 'Leiden', 'Dordrecht',\n 'Zoetermeer', 'Zwolle', 'Deventer', 'Delft', 'Alkmaar', 'Heerlen', 'Venlo'\n ],\n states: [\n 'Noord-Holland', 'Zuid-Holland', 'Utrecht', 'Noord-Brabant', 'Gelderland',\n 'Overijssel', 'Limburg', 'Groningen', 'Friesland', 'Zeeland', 'Flevoland', 'Drenthe'\n ],\n zipCodePattern: '#### @@',\n jobTitles: [\n 'Software Engineer', 'Projectmanager', 'Data Analist', 'Marketingmanager',\n 'Vertegenwoordiger', 'Accountant', 'HR Manager', 'Designer', 'Operationeel Manager',\n 'Business Analist', 'Productmanager', 'Systeembeheerder', 'Kwaliteitsanalist'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Verkoop', 'Human Resources', 'Financiën', 'Operaties',\n 'Klantenservice', 'IT', 'Onderzoek en Ontwikkeling', 'Juridisch', 'Administratie'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 250);\n const letter = Random.boolean() ? Random.pick(['A', 'B', 'C']) : '';\n return `${street} ${number}${letter}, ${zipCode}, ${city}`;\n },\n\n generateZipCode(): string {\n const digits = String(Random.int(1000, 9999));\n const letters = String.fromCharCode(65 + Random.int(0, 25)) +\n String.fromCharCode(65 + Random.int(0, 25));\n return `${digits} ${letters}`;\n },\n\n phoneFormats: [\n '+31 (0)## ### ####',\n '0## ### ####',\n '+31 (0)# ### ####',\n '0# ### ####',\n '+31 (0)6 ########',\n '06 ########'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.nl', 'outlook.com', 'hotmail.nl', 'live.nl',\n 'ziggo.nl', 'kpnmail.nl', 'upcmail.nl', 'home.nl', 'hetnet.nl'\n ],\n\n companyNames: [\n 'Royal Dutch Shell', 'ASML Holding', 'Philips NV', 'Unilever NV',\n 'ING Groep', 'Heineken NV', 'Akzo Nobel', 'DSM NV', 'KLM Royal Dutch Airlines',\n 'Rabobank', 'ABN AMRO', 'Ahold Delhaize', 'Wolters Kluwer', 'Adyen NV',\n 'Just Eat Takeaway', 'Prosus NV', 'NN Group', 'Aegon NV'\n ],\n\n industries: [\n 'Technologie', 'Financiën', 'Gezondheidszorg', 'Onderwijs', 'Detailhandel',\n 'Productie', 'Media', 'Telecommunicatie', 'Energie', 'Transport',\n 'Onroerend goed', 'Consultancy', 'Horeca', 'Automotive', 'Luchtvaart'\n ],\n\n catchPhrases: [\n 'Innoveren voor de toekomst', 'Uw succes is onze zaak', 'Samen de toekomst bouwen',\n 'Kwaliteit en vertrouwen', 'Uitstekendheid en toewijding', 'Duurzame oplossingen',\n 'Waarde creëren', 'Uw vertrouwde partner', 'Verandering leiden'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_CA: LocaleDefinition = {\n firstNamesMale: [\n 'Liam', 'Noah', 'Oliver', 'Ethan', 'Logan', 'Lucas', 'Mason', 'Benjamin', 'Jack',\n 'James', 'William', 'Alexander', 'Michael', 'Jacob', 'Daniel', 'Matthew', 'Ryan',\n 'Nathan', 'Samuel', 'Owen', 'Dylan', 'Connor', 'Carter', 'Caleb', 'Luke', 'Wyatt',\n 'Thomas', 'Andrew', 'Nicholas', 'Adam', 'David', 'Joseph', 'Tyler', 'Hunter'\n ],\n firstNamesFemale: [\n 'Emma', 'Olivia', 'Ava', 'Sophia', 'Isabella', 'Charlotte', 'Amelia', 'Mia', 'Harper',\n 'Emily', 'Abigail', 'Ella', 'Madison', 'Scarlett', 'Grace', 'Chloe', 'Victoria',\n 'Sofia', 'Lily', 'Hannah', 'Avery', 'Zoe', 'Aria', 'Brooklyn', 'Claire', 'Leah',\n 'Maya', 'Addison', 'Riley', 'Sarah', 'Rachel', 'Jessica', 'Jennifer', 'Laura'\n ],\n lastNames: [\n 'Smith', 'Brown', 'Lee', 'Wilson', 'Martin', 'Roy', 'Tremblay', 'Anderson', 'Johnson',\n 'Taylor', 'Gagnon', 'White', 'Thomas', 'Thompson', 'Campbell', 'Clark', 'Lewis',\n 'Walker', 'Hall', 'Young', 'Allen', 'King', 'Wright', 'Scott', 'Robinson', 'Green',\n 'MacDonald', 'Murphy', 'Stewart', 'Cook', 'Bailey', 'Kelly', 'Ross', 'Mitchell'\n ],\n streets: [\n 'Main Street', 'King Street', 'Queen Street', 'Yonge Street', 'Bloor Street',\n 'Dundas Street', 'College Street', 'Bay Street', 'University Avenue', 'Front Street',\n 'Wellington Street', 'Richmond Street', 'Adelaide Street', 'Spadina Avenue',\n 'Parliament Street', 'Jarvis Street', 'Church Street', 'Victoria Street', 'First Avenue'\n ],\n cities: [\n 'Toronto', 'Montreal', 'Vancouver', 'Calgary', 'Edmonton', 'Ottawa', 'Winnipeg',\n 'Quebec City', 'Hamilton', 'Kitchener', 'London', 'Victoria', 'Halifax', 'Oshawa',\n 'Windsor', 'Saskatoon', 'Regina', 'Barrie', 'Kelowna', 'Abbotsford', 'Sherbrooke',\n 'Guelph', 'Kingston', 'Trois-Rivières', 'Sudbury', 'Thunder Bay', 'Moncton'\n ],\n states: [\n 'Ontario', 'Quebec', 'British Columbia', 'Alberta', 'Manitoba', 'Saskatchewan',\n 'Nova Scotia', 'New Brunswick', 'Newfoundland and Labrador', 'Prince Edward Island',\n 'Northwest Territories', 'Yukon', 'Nunavut'\n ],\n zipCodePattern: '@#@ #@#',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'Systems Administrator', 'Quality Assurance Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 9999);\n const unit = Random.boolean() ? `Unit ${Random.int(1, 100)}, ` : '';\n return `${unit}${number} ${street}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n const letters = 'ABCDEFGHJKLMNPRSTVWXYZ';\n const digits = '0123456789';\n return `${letters[Random.int(0, letters.length - 1)]}${digits[Random.int(0, 9)]}${letters[Random.int(0, letters.length - 1)]} ${digits[Random.int(0, 9)]}${letters[Random.int(0, letters.length - 1)]}${digits[Random.int(0, 9)]}`;\n },\n\n phoneFormats: [\n '+1 (###) ###-####',\n '(###) ###-####',\n '###-###-####',\n '###.###.####',\n '+1 ### ###-####',\n '1 (###) ###-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.ca', 'outlook.com', 'hotmail.com', 'live.ca',\n 'sympatico.ca', 'rogers.com', 'shaw.ca', 'telus.net', 'bell.net'\n ],\n\n companyNames: [\n 'Royal Bank of Canada', 'Toronto-Dominion Bank', 'Enbridge Inc', 'Canadian National Railway',\n 'Bank of Nova Scotia', 'Bank of Montreal', 'Canadian Imperial Bank', 'Suncor Energy',\n 'Canadian Natural Resources', 'BCE Inc', 'Telus Corporation', 'Rogers Communications',\n 'George Weston Limited', 'Loblaw Companies', 'Empire Company', 'Metro Inc',\n 'Air Canada', 'Canadian Pacific Railway', 'Barrick Gold', 'Agnico Eagle Mines'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transport',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace'\n ],\n\n catchPhrases: [\n 'Innovating for the future', 'Your success is our business', 'Building the future together',\n 'Quality and trust', 'Excellence and commitment', 'Sustainable solutions',\n 'Creating value', 'Your trusted partner', 'Leading the change'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_GB: LocaleDefinition = {\n firstNamesMale: [\n 'Oliver', 'George', 'Harry', 'Jack', 'Jacob', 'Noah', 'Charlie', 'Muhammad', 'Thomas',\n 'Oscar', 'William', 'James', 'Henry', 'Alfie', 'Leo', 'Joshua', 'Freddie', 'Ethan',\n 'Archie', 'Isaac', 'Alexander', 'Joseph', 'Edward', 'Samuel', 'Daniel', 'Max',\n 'Lucas', 'Mason', 'Harrison', 'Logan', 'Sebastian', 'Dylan', 'Arthur', 'Theo'\n ],\n firstNamesFemale: [\n 'Olivia', 'Amelia', 'Isla', 'Ava', 'Emily', 'Isabella', 'Mia', 'Poppy', 'Ella',\n 'Lily', 'Sophie', 'Grace', 'Sophia', 'Charlotte', 'Freya', 'Evie', 'Daisy', 'Florence',\n 'Alice', 'Jessica', 'Ivy', 'Millie', 'Ruby', 'Rosie', 'Scarlett', 'Isabelle',\n 'Phoebe', 'Willow', 'Sienna', 'Lucy', 'Emma', 'Harriet', 'Evelyn', 'Elsie'\n ],\n lastNames: [\n 'Smith', 'Jones', 'Taylor', 'Brown', 'Williams', 'Wilson', 'Johnson', 'Davies',\n 'Robinson', 'Wright', 'Thompson', 'Evans', 'Walker', 'White', 'Roberts', 'Green',\n 'Hall', 'Wood', 'Jackson', 'Clarke', 'Patel', 'Khan', 'Lewis', 'James', 'Roberts',\n 'Baker', 'Harrison', 'Hughes', 'Edwards', 'Collins', 'Morgan', 'Cooper', 'Bell'\n ],\n streets: [\n 'High Street', 'Station Road', 'Main Street', 'Park Road', 'Church Street',\n 'Victoria Road', 'Green Lane', 'Manor Road', 'Church Lane', 'Park Avenue',\n 'The Avenue', 'Queens Road', 'New Road', 'Grange Road', 'King Street', 'Kingsway',\n 'Windsor Road', 'London Road', 'Mill Lane', 'School Lane', 'The Green', 'The Crescent'\n ],\n cities: [\n 'London', 'Birmingham', 'Manchester', 'Leeds', 'Liverpool', 'Newcastle', 'Sheffield',\n 'Bristol', 'Glasgow', 'Leicester', 'Edinburgh', 'Bradford', 'Cardiff', 'Belfast',\n 'Nottingham', 'Coventry', 'Kingston upon Hull', 'Stoke-on-Trent', 'Plymouth',\n 'Wolverhampton', 'Derby', 'Southampton', 'Portsmouth', 'Brighton', 'Reading',\n 'Northampton', 'Luton', 'Bolton', 'Aberdeen', 'York', 'Oxford', 'Cambridge'\n ],\n states: [\n 'England', 'Scotland', 'Wales', 'Northern Ireland', 'Greater London', 'West Midlands',\n 'Greater Manchester', 'West Yorkshire', 'South Yorkshire', 'Merseyside', 'Tyne and Wear'\n ],\n zipCodePattern: '@## #@@',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'Systems Administrator', 'Quality Assurance Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 300);\n return `${number} ${street}, ${city}, ${zipCode}`;\n },\n\n generateZipCode(): string {\n const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n const area = letters[Random.int(0, letters.length - 1)] + letters[Random.int(0, letters.length - 1)];\n const district = Random.int(1, 99);\n const sector = Random.int(0, 9);\n const unit = letters[Random.int(0, letters.length - 1)] + letters[Random.int(0, letters.length - 1)];\n return `${area}${district} ${sector}${unit}`;\n },\n\n phoneFormats: [\n '+44 ## #### ####',\n '0## #### ####',\n '+44 (0)## #### ####',\n '07### ######',\n '07### ### ###',\n '020 #### ####',\n '01### ######',\n '01### ### ###'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.co.uk', 'outlook.co.uk', 'hotmail.co.uk', 'live.co.uk',\n 'btinternet.com', 'sky.com', 'talktalk.net', 'virginmedia.com', 'aol.co.uk'\n ],\n\n companyNames: [\n 'HSBC Holdings', 'BP plc', 'Shell plc', 'AstraZeneca', 'GlaxoSmithKline',\n 'Unilever PLC', 'Diageo plc', 'British American Tobacco', 'Rio Tinto Group',\n 'Barclays PLC', 'Lloyds Banking Group', 'NatWest Group', 'Vodafone Group',\n 'BT Group', 'Tesco PLC', 'Sainsbury\\'s', 'Marks & Spencer', 'Rolls-Royce Holdings'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transport',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace'\n ],\n\n catchPhrases: [\n 'Innovating for the future', 'Your success is our business', 'Building the future together',\n 'Quality and trust', 'Excellence and commitment', 'Sustainable solutions',\n 'Creating value', 'Your trusted partner', 'Leading the change'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ru_RU: LocaleDefinition = {\n firstNamesMale: [\n 'Alexander', 'Dmitry', 'Maxim', 'Sergey', 'Andrey', 'Alexey', 'Artem', 'Ivan',\n 'Mikhail', 'Roman', 'Vladimir', 'Nikita', 'Yegor', 'Denis', 'Pavel', 'Kirill',\n 'Anton', 'Oleg', 'Konstantin', 'Igor', 'Evgeny', 'Viktor', 'Nikolay', 'Ilya',\n 'Timur', 'Daniil', 'Vadim', 'Georgy', 'Stanislav', 'Gleb', 'Ruslan', 'Yaroslav'\n ],\n firstNamesFemale: [\n 'Anastasia', 'Maria', 'Daria', 'Anna', 'Ekaterina', 'Victoria', 'Polina', 'Elizaveta',\n 'Alexandra', 'Natalia', 'Olga', 'Tatiana', 'Irina', 'Yulia', 'Elena', 'Ksenia',\n 'Svetlana', 'Marina', 'Vera', 'Sophia', 'Alina', 'Valeria', 'Veronika', 'Kristina',\n 'Diana', 'Lyubov', 'Galina', 'Nina', 'Larisa', 'Ludmila', 'Angelina', 'Arina'\n ],\n lastNames: [\n 'Ivanov', 'Smirnov', 'Kuznetsov', 'Popov', 'Vasiliev', 'Petrov', 'Sokolov', 'Mikhailov',\n 'Novikov', 'Fedorov', 'Morozov', 'Volkov', 'Alexeev', 'Lebedev', 'Semenov', 'Egorov',\n 'Pavlov', 'Kozlov', 'Stepanov', 'Nikolaev', 'Orlov', 'Andreev', 'Makarov', 'Nikitin',\n 'Zakharov', 'Zaitsev', 'Soloviev', 'Borisov', 'Yakovlev', 'Grigoriev', 'Romanov'\n ],\n streets: [\n 'Lenina Street', 'Pushkina Street', 'Sovetskaya Street', 'Tsentralnaya Street',\n 'Mira Avenue', 'Gagarina Street', 'Komsomolskaya Street', 'Kirova Street',\n 'Pobedy Avenue', 'Oktyabrskaya Street', 'Sadovaya Street', 'Moskovskaya Street',\n 'Nevsky Prospekt', 'Tverskaya Street', 'Arbat Street', 'Prospekt Mira',\n 'Kutuzovsky Prospekt', 'Leningradsky Prospekt', 'Novinsky Boulevard'\n ],\n cities: [\n 'Moscow', 'Saint Petersburg', 'Novosibirsk', 'Yekaterinburg', 'Kazan', 'Nizhny Novgorod',\n 'Chelyabinsk', 'Samara', 'Omsk', 'Rostov-on-Don', 'Ufa', 'Krasnoyarsk', 'Voronezh',\n 'Perm', 'Volgograd', 'Krasnodar', 'Saratov', 'Tyumen', 'Tolyatti', 'Izhevsk',\n 'Barnaul', 'Ulyanovsk', 'Irkutsk', 'Khabarovsk', 'Yaroslavl', 'Vladivostok', 'Tomsk'\n ],\n states: [\n 'Moscow Oblast', 'Saint Petersburg', 'Moscow', 'Sverdlovsk Oblast', 'Tatarstan',\n 'Krasnodar Krai', 'Chelyabinsk Oblast', 'Nizhny Novgorod Oblast', 'Samara Oblast',\n 'Bashkortostan', 'Rostov Oblast', 'Krasnoyarsk Krai', 'Novosibirsk Oblast',\n 'Perm Krai', 'Voronezh Oblast', 'Volgograd Oblast', 'Saratov Oblast'\n ],\n zipCodePattern: '######',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const building = Random.int(1, 200);\n const apartment = Random.int(1, 150);\n return `${state}, ${city}, ${street}, d. ${building}, kv. ${apartment}, ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(100000, 999999));\n },\n\n phoneFormats: [\n '+7 (###) ###-##-##',\n '8 (###) ###-##-##',\n '+7 ### ###-##-##',\n '8-###-###-##-##',\n '9##-###-##-##'\n ],\n\n emailDomains: [\n 'gmail.com', 'mail.ru', 'yandex.ru', 'rambler.ru', 'yahoo.com',\n 'outlook.com', 'hotmail.com', 'bk.ru', 'list.ru', 'inbox.ru'\n ],\n\n companyNames: [\n 'Газпром', 'Роснефть', 'Лукойл', 'Сбербанк', 'ВТБ',\n 'Российские железные дороги', 'Норникель', 'Новатэк', 'Татнефть',\n 'Аэрофлот', 'Яндекс', 'Mail.ru Group', 'Wildberries', 'Ozon',\n 'МТС', 'Билайн', 'МегаФон', 'Ростелеком', 'Алроса'\n ],\n\n industries: [\n 'Технологии', 'Финансы', 'Здравоохранение', 'Образование', 'Розничная торговля',\n 'Производство', 'Медиа', 'Телекоммуникации', 'Энергетика', 'Транспорт',\n 'Недвижимость', 'Консалтинг', 'Гостиницы', 'Автомобилестроение', 'Аэрокосмос'\n ],\n\n catchPhrases: [\n 'Инновации для будущего', 'Ваш успех - наше дело', 'Строим будущее вместе',\n 'Качество и надежность', 'Превосходство и приверженность', 'Устойчивые решения',\n 'Создаем ценность', 'Ваш надежный партнер', 'Ведущие перемены'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const pl_PL: LocaleDefinition = {\n firstNamesMale: [\n 'Jan', 'Andrzej', 'Piotr', 'Krzysztof', 'Stanisław', 'Tomasz', 'Paweł', 'Józef',\n 'Marcin', 'Michał', 'Grzegorz', 'Jerzy', 'Tadeusz', 'Adam', 'Łukasz', 'Zbigniew',\n 'Ryszard', 'Kazimierz', 'Marek', 'Mateusz', 'Kamil', 'Jakub', 'Robert', 'Rafał',\n 'Wojciech', 'Sławomir', 'Dariusz', 'Dawid', 'Bartosz', 'Kacper', 'Filip', 'Igor'\n ],\n firstNamesFemale: [\n 'Maria', 'Anna', 'Katarzyna', 'Małgorzata', 'Agnieszka', 'Barbara', 'Ewa', 'Krystyna',\n 'Elżbieta', 'Zofia', 'Teresa', 'Joanna', 'Magdalena', 'Monika', 'Jadwiga', 'Danuta',\n 'Irena', 'Halina', 'Helena', 'Beata', 'Aleksandra', 'Natalia', 'Dorota', 'Paulina',\n 'Sylwia', 'Iwona', 'Jolanta', 'Renata', 'Karolina', 'Weronika', 'Julia', 'Martyna'\n ],\n lastNames: [\n 'Nowak', 'Kowalski', 'Wiśniewski', 'Dąbrowski', 'Lewandowski', 'Wójcik', 'Kamiński',\n 'Kowalczyk', 'Zieliński', 'Szymański', 'Woźniak', 'Kozłowski', 'Jankowski', 'Wojciechowski',\n 'Kwiatkowski', 'Kaczmarek', 'Mazur', 'Krawczyk', 'Piotrowski', 'Grabowski', 'Nowakowski',\n 'Pawłowski', 'Michalski', 'Nowicki', 'Adamczyk', 'Dudek', 'Zając', 'Wieczorek', 'Jabłoński'\n ],\n streets: [\n 'ulica Główna', 'ulica Kwiatowa', 'ulica Słoneczna', 'ulica Polna', 'ulica Leśna',\n 'ulica Krótka', 'ulica Długa', 'ulica Szkolna', 'ulica Kościelna', 'ulica Parkowa',\n 'Plac Wolności', 'Aleja Solidarności', 'ulica 3 Maja', 'ulica Piłsudskiego',\n 'ulica Mickiewicza', 'ulica Słowackiego', 'ulica Kopernika', 'ulica Chopina'\n ],\n cities: [\n 'Warszawa', 'Kraków', 'Łódź', 'Wrocław', 'Poznań', 'Gdańsk', 'Szczecin', 'Bydgoszcz',\n 'Lublin', 'Białystok', 'Katowice', 'Gdynia', 'Częstochowa', 'Radom', 'Sosnowiec',\n 'Toruń', 'Kielce', 'Gliwice', 'Zabrze', 'Bytom', 'Olsztyn', 'Bielsko-Biała',\n 'Rzeszów', 'Ruda Śląska', 'Rybnik', 'Tychy', 'Dąbrowa Górnicza', 'Płock', 'Elbląg'\n ],\n states: [\n 'Mazowieckie', 'Śląskie', 'Wielkopolskie', 'Małopolskie', 'Dolnośląskie', 'Łódzkie',\n 'Pomorskie', 'Kujawsko-Pomorskie', 'Zachodniopomorskie', 'Lubelskie', 'Podkarpackie',\n 'Warmińsko-Mazurskie', 'Świętokrzyskie', 'Podlaskie', 'Opolskie', 'Lubuskie'\n ],\n zipCodePattern: '##-###',\n jobTitles: [\n 'Inżynier Oprogramowania', 'Kierownik Projektu', 'Analityk Danych', 'Kierownik Marketingu',\n 'Przedstawiciel Handlowy', 'Księgowy', 'Kierownik HR', 'Projektant', 'Kierownik Operacyjny',\n 'Analityk Biznesowy', 'Kierownik Produktu', 'Administrator Systemu', 'Inżynier Jakości'\n ],\n departments: [\n 'Inżynieria', 'Marketing', 'Sprzedaż', 'Zasoby Ludzkie', 'Finanse', 'Operacje',\n 'Obsługa Klienta', 'IT', 'Badania i Rozwój', 'Prawny', 'Administracja'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 150);\n const apartment = Random.int(1, 80);\n return `${street} ${number}/${apartment}, ${zipCode} ${city}, woj. ${state}`;\n },\n\n generateZipCode(): string {\n const part1 = String(Random.int(10, 99));\n const part2 = String(Random.int(100, 999));\n return `${part1}-${part2}`;\n },\n\n phoneFormats: [\n '+48 ### ### ###',\n '### ### ###',\n '+48 ## ### ## ##',\n '## ### ## ##',\n '+48 (##) ###-##-##',\n '(##) ###-##-##'\n ],\n\n emailDomains: [\n 'gmail.com', 'wp.pl', 'onet.pl', 'interia.pl', 'o2.pl',\n 'yahoo.com', 'outlook.com', 'hotmail.com', 'tlen.pl', 'gazeta.pl'\n ],\n\n companyNames: [\n 'PKN Orlen SA', 'CD Projekt SA', 'PZU SA', 'PKO Bank Polski', 'PGE SA',\n 'KGHM Polska Miedź', 'Tauron Polska Energia', 'Energa SA', 'LOTOS SA',\n 'Telekom Polska', 'Orange Polska', 'Play', 'Plus', 'T-Mobile Polska',\n 'Allegro.pl', 'Dino SA', 'Jeronimo Martins', 'Żabka Polska'\n ],\n\n industries: [\n 'Technologia', 'Finanse', 'Zdrowie', 'Edukacja', 'Detal',\n 'Produkcja', 'Media', 'Telekomunikacja', 'Energetyka', 'Transport',\n 'Nieruchomości', 'Konsulting', 'Hotele', 'Motoryzacja', 'Lotnictwo'\n ],\n\n catchPhrases: [\n 'Innowacje dla przyszłości', 'Twój sukces to nasza sprawa', 'Budujemy przyszłość razem',\n 'Jakość i zaufanie', 'Doskonałość i zaangażowanie', 'Zrównoważone rozwiązania',\n 'Tworzymy wartość', 'Twój zaufany partner', 'Prowadzimy zmiany'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const tr_TR: LocaleDefinition = {\n firstNamesMale: [\n 'Mehmet', 'Mustafa', 'Ahmet', 'Ali', 'Hüseyin', 'Hasan', 'İbrahim', 'İsmail',\n 'Yusuf', 'Murat', 'Süleyman', 'Ömer', 'Emre', 'Can', 'Burak', 'Kemal', 'Onur',\n 'Serkan', 'Fatih', 'Oğuz', 'Eren', 'Cem', 'Deniz', 'Barış', 'Kaan', 'Arda',\n 'Emir', 'Efe', 'Okan', 'Furkan', 'Yasin', 'Berkay', 'Umut', 'Volkan'\n ],\n firstNamesFemale: [\n 'Ayşe', 'Fatma', 'Emine', 'Hatice', 'Zeynep', 'Elif', 'Merve', 'Büşra', 'Esra',\n 'Sultan', 'Hanife', 'Meryem', 'Şeyma', 'Fadime', 'Cemre', 'Selin', 'Yasemin',\n 'Özlem', 'Gül', 'Aylin', 'Deniz', 'Ceren', 'Ece', 'Beyza', 'Tuğba', 'Burcu',\n 'Ebru', 'Nur', 'Buse', 'Defne', 'Ada', 'Aslı', 'Seda', 'Meltem'\n ],\n lastNames: [\n 'Yılmaz', 'Kaya', 'Demir', 'Şahin', 'Çelik', 'Yıldız', 'Yıldırım', 'Öztürk',\n 'Aydın', 'Özdemir', 'Arslan', 'Doğan', 'Kılıç', 'Aslan', 'Çetin', 'Kara',\n 'Koç', 'Kurt', 'Özkan', 'Şimşek', 'Erdoğan', 'Aksoy', 'Güneş', 'Çakır',\n 'Özgür', 'Korkmaz', 'Acar', 'Polat', 'Aktaş', 'Özer', 'Demirci', 'Yavuz'\n ],\n streets: [\n 'Atatürk Caddesi', 'İstiklal Caddesi', 'Cumhuriyet Caddesi', 'Barbaros Bulvarı',\n 'Bağdat Caddesi', 'Gazi Mustafa Kemal Bulvarı', 'Ankara Caddesi', 'İnönü Caddesi',\n 'Fevzi Çakmak Caddesi', 'Mithatpaşa Caddesi', 'Kızılay Meydanı', 'Fatih Caddesi',\n 'Yeşilırmak Sokak', 'Mehmet Akif Caddesi', 'Hürriyet Bulvarı', 'Mimar Sinan Caddesi'\n ],\n cities: [\n 'İstanbul', 'Ankara', 'İzmir', 'Bursa', 'Antalya', 'Adana', 'Konya', 'Gaziantep',\n 'Şanlıurfa', 'Kocaeli', 'Mersin', 'Diyarbakır', 'Hatay', 'Manisa', 'Kayseri',\n 'Samsun', 'Balıkesir', 'Kahramanmaraş', 'Van', 'Aydın', 'Denizli', 'Sakarya',\n 'Tekirdağ', 'Muğla', 'Eskişehir', 'Mardin', 'Malatya', 'Erzurum', 'Trabzon'\n ],\n states: [\n 'İstanbul', 'Ankara', 'İzmir', 'Bursa', 'Antalya', 'Adana', 'Konya', 'Gaziantep',\n 'Mersin', 'Kocaeli', 'Diyarbakır', 'Hatay', 'Manisa', 'Kayseri', 'Samsun',\n 'Balıkesir', 'Tekirdağ', 'Trabzon', 'Erzurum', 'Malatya', 'Van', 'Şanlıurfa'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Yazılım Mühendisi', 'Proje Yöneticisi', 'Veri Analisti', 'Pazarlama Müdürü',\n 'Satış Temsilcisi', 'Muhasebeci', 'İnsan Kaynakları Müdürü', 'Tasarımcı',\n 'Operasyon Müdürü', 'İş Analisti', 'Ürün Müdürü', 'Sistem Yöneticisi', 'Kalite Mühendisi'\n ],\n departments: [\n 'Mühendislik', 'Pazarlama', 'Satış', 'İnsan Kaynakları', 'Finans', 'Operasyon',\n 'Müşteri Hizmetleri', 'BT', 'Araştırma ve Geliştirme', 'Hukuk', 'İdari İşler'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const mahalle = Random.pick(['Merkez', 'Yeni', 'Çarşı', 'Kale', 'Bahçelievler']);\n const no = Random.int(1, 200);\n const daire = Random.int(1, 50);\n return `${mahalle} Mah., ${street} No:${no} D:${daire}, ${zipCode} ${city}/${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+90 (###) ###-####',\n '0(###) ###-####',\n '0### ###-####',\n '+90 ### ###-####',\n '05## ###-####',\n '053# ###-####',\n '054# ###-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'yandex.com.tr', 'mail.ru', 'yandex.ru', 'live.com',\n 'icloud.com', 'protonmail.com', 'tutanota.com'\n ],\n\n companyNames: [\n 'Türk Hava Yolları', 'Türk Telekom', 'Tüpraş', 'BİM Birleşik Mağazalar',\n 'Ereğli Demir Çelik', 'Aygaz', 'Koç Holding', 'Sabancı Holding',\n 'Vestel', 'Arçelik', 'Turkcell', 'Vodafone Türkiye', 'Halkbank',\n 'Ziraat Bankası', 'İş Bankası', 'Garanti BBVA', 'Akbank', 'Yapı Kredi'\n ],\n\n industries: [\n 'Teknoloji', 'Finans', 'Sağlık', 'Eğitim', 'Perakende',\n 'Üretim', 'Medya', 'Telekomünikasyon', 'Enerji', 'Ulaştırma',\n 'Gayrimenkul', 'Danışmanlık', 'Otelcilik', 'Otomotiv', 'Havacılık'\n ],\n\n catchPhrases: [\n 'Gelecek için yenilik', 'Başarınız işimizdir', 'Birlikte gelecek inşa ediyoruz',\n 'Kalite ve güven', 'Mükemmellik ve bağlılık', 'Sürdürülebilir çözümler',\n 'Değer yaratıyoruz', 'Güvenilir ortağınız', 'Değişime öncülük ediyoruz'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const sv_SE: LocaleDefinition = {\n firstNamesMale: [\n 'Erik', 'Lars', 'Karl', 'Anders', 'Per', 'Johan', 'Nils', 'Lennart', 'Emil',\n 'Oscar', 'Gustav', 'Viktor', 'Axel', 'Filip', 'Elias', 'Lucas', 'Alexander',\n 'Oliver', 'William', 'Hugo', 'Liam', 'Noah', 'Adam', 'Isak', 'Anton', 'Theo',\n 'Mattias', 'Magnus', 'Stefan', 'Peter', 'Mikael', 'Daniel', 'Fredrik', 'Björn'\n ],\n firstNamesFemale: [\n 'Anna', 'Maria', 'Karin', 'Eva', 'Kristina', 'Lena', 'Emma', 'Sofia', 'Ingrid',\n 'Birgitta', 'Sara', 'Lisa', 'Linnea', 'Maja', 'Elin', 'Ida', 'Ebba', 'Wilma',\n 'Alice', 'Julia', 'Elsa', 'Alicia', 'Olivia', 'Astrid', 'Agnes', 'Ella', 'Freja',\n 'Klara', 'Saga', 'Isabelle', 'Emilia', 'Hanna', 'Amanda', 'Josefin', 'Ellen'\n ],\n lastNames: [\n 'Andersson', 'Johansson', 'Karlsson', 'Nilsson', 'Eriksson', 'Larsson', 'Olsson',\n 'Persson', 'Svensson', 'Gustafsson', 'Pettersson', 'Jonsson', 'Jansson', 'Hansson',\n 'Bengtsson', 'Jönsson', 'Lindberg', 'Jakobsson', 'Magnusson', 'Olofsson', 'Lindström',\n 'Lindqvist', 'Lindgren', 'Berg', 'Axelsson', 'Bergström', 'Lundberg', 'Lind', 'Lundgren'\n ],\n streets: [\n 'Storgatan', 'Drottninggatan', 'Kungsgatan', 'Biblioteksgatan', 'Birger Jarlsgatan',\n 'Sveavägen', 'Vasagatan', 'Hamngatan', 'Karlavägen', 'Valhallavägen',\n 'Linnégatan', 'Skånegatan', 'Södermalmsallén', 'Odengatan', 'Götgatan',\n 'Ringvägen', 'Hornsgatan', 'Folkungagatan', 'Östermalmsgatan', 'Norrtullsgatan'\n ],\n cities: [\n 'Stockholm', 'Göteborg', 'Malmö', 'Uppsala', 'Västerås', 'Örebro', 'Linköping',\n 'Helsingborg', 'Jönköping', 'Norrköping', 'Lund', 'Umeå', 'Gävle', 'Borås',\n 'Eskilstuna', 'Södertälje', 'Karlstad', 'Täby', 'Växjö', 'Halmstad', 'Sundsvall',\n 'Luleå', 'Trollhättan', 'Östersund', 'Borlänge', 'Falun', 'Skellefteå', 'Kalmar'\n ],\n states: [\n 'Stockholm', 'Västra Götaland', 'Skåne', 'Uppsala', 'Västmanland', 'Örebro',\n 'Östergötland', 'Jönköping', 'Kronoberg', 'Kalmar', 'Gotland', 'Blekinge',\n 'Halland', 'Värmland', 'Dalarna', 'Gävleborg', 'Västernorrland', 'Jämtland',\n 'Västerbotten', 'Norrbotten', 'Södermanland'\n ],\n zipCodePattern: '### ##',\n jobTitles: [\n 'Mjukvaruingenjör', 'Projektledare', 'Dataanalytiker', 'Marknadschef',\n 'Säljare', 'Revisor', 'HR-chef', 'Designer', 'Driftschef', 'Affärsanalytiker',\n 'Produktchef', 'Systemadministratör', 'Kvalitetsingenjör', 'Utvecklare'\n ],\n departments: [\n 'Teknik', 'Marknadsföring', 'Försäljning', 'Personal', 'Ekonomi', 'Drift',\n 'Kundtjänst', 'IT', 'Forskning och utveckling', 'Juridik', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 150);\n const apartment = Random.boolean() ? ` lgh ${Random.int(1001, 1299)}` : '';\n return `${street} ${number}${apartment}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n const part1 = String(Random.int(100, 999));\n const part2 = String(Random.int(10, 99));\n return `${part1} ${part2}`;\n },\n\n phoneFormats: [\n '+46 (0)# ### ###',\n '0# ### ###',\n '+46 (0)## ### ###',\n '0## ### ###',\n '+46 (0)### ### ##',\n '0### ### ##',\n '07# ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.se', 'outlook.com', 'hotmail.com', 'live.se',\n 'telia.com', 'comhem.se', 'bredband.net', 'swipnet.se', 'spray.se'\n ],\n\n companyNames: [\n 'Volvo AB', 'Ericsson', 'IKEA', 'H&M Hennes & Mauritz', 'Electrolux',\n 'Atlas Copco', 'Sandvik AB', 'SKF AB', 'Scania AB', 'AstraZeneca',\n 'SEB AB', 'Swedbank', 'Handelsbanken', 'Nordea', 'Telia Company',\n 'Investor AB', 'Husqvarna AB', 'ABB AB', 'Tetra Pak', 'Spotify AB'\n ],\n\n industries: [\n 'Teknik', 'Finans', 'Hälsovård', 'Utbildning', 'Detaljhandel',\n 'Tillverkning', 'Media', 'Telekom', 'Energi', 'Transport',\n 'Fastigheter', 'Konsult', 'Hotell', 'Automotive', 'Flyg'\n ],\n\n catchPhrases: [\n 'Innovativt för framtiden', 'Er framgång är vårt affär', 'Bygger framtiden tillsammans',\n 'Kvalitet och förtroende', 'Excellens och engagemang', 'Hållbara lösningar',\n 'Skapar värde', 'Er pålitliga partner', 'Leder förändring'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const nb_NO: LocaleDefinition = {\n firstNamesMale: [\n 'Jan', 'Per', 'Bjørn', 'Ole', 'Lars', 'Knut', 'Arne', 'Kjell', 'Tor', 'Svein',\n 'Thomas', 'Andreas', 'Martin', 'Daniel', 'Henrik', 'Magnus', 'Jonas', 'Emil',\n 'Alexander', 'Markus', 'Kristian', 'Fredrik', 'Marius', 'Erik', 'Øyvind',\n 'Adrian', 'Lucas', 'Tobias', 'Noah', 'Oliver', 'William', 'Filip', 'Jakob'\n ],\n firstNamesFemale: [\n 'Anne', 'Marit', 'Inger', 'Kari', 'Nina', 'Lise', 'Eva', 'Hilde', 'Ingrid',\n 'Emma', 'Nora', 'Sara', 'Sofie', 'Emilie', 'Ingrid', 'Thea', 'Maja', 'Eline',\n 'Ida', 'Julie', 'Maria', 'Vilde', 'Frida', 'Amalie', 'Victoria', 'Anna',\n 'Mathilde', 'Mia', 'Hanna', 'Linnea', 'Leah', 'Isabella', 'Ella', 'Hedda'\n ],\n lastNames: [\n 'Hansen', 'Johansen', 'Olsen', 'Larsen', 'Andersen', 'Pedersen', 'Nilsen', 'Kristiansen',\n 'Jensen', 'Karlsen', 'Johnsen', 'Pettersen', 'Eriksen', 'Berg', 'Haugen', 'Hagen',\n 'Johannessen', 'Andreassen', 'Jacobsen', 'Olsen', 'Solberg', 'Moen', 'Lund', 'Bakke',\n 'Lie', 'Strand', 'Nguyen', 'Halvorsen', 'Svendsen', 'Martinsen', 'Mikkelsen'\n ],\n streets: [\n 'Storgata', 'Kirkegata', 'Hovedgata', 'Karl Johans gate', 'Prinsens gate',\n 'Torgallmenningen', 'Grensen', 'Stortingsgata', 'Bogstadveien', 'Bygdøy allé',\n 'Parkveien', 'Skippergata', 'Kongens gate', 'Drammensveien', 'Pilestredet',\n 'Ullevålsveien', 'Markveien', 'Thorvald Meyers gate', 'Akersgata', 'Møllergata'\n ],\n cities: [\n 'Oslo', 'Bergen', 'Stavanger', 'Trondheim', 'Drammen', 'Fredrikstad', 'Kristiansand',\n 'Sandnes', 'Tromsø', 'Sarpsborg', 'Skien', 'Ålesund', 'Sandefjord', 'Haugesund',\n 'Tønsberg', 'Moss', 'Porsgrunn', 'Bodø', 'Arendal', 'Hamar', 'Larvik', 'Halden',\n 'Askøy', 'Lillehammer', 'Mo i Rana', 'Molde', 'Horten', 'Gjøvik', 'Kongsberg'\n ],\n states: [\n 'Oslo', 'Viken', 'Innlandet', 'Vestfold og Telemark', 'Agder', 'Rogaland',\n 'Vestland', 'Møre og Romsdal', 'Trøndelag', 'Nordland', 'Troms og Finnmark'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Programvareingeniør', 'Prosjektleder', 'Dataanalytiker', 'Markedssjef',\n 'Selger', 'Regnskapsfører', 'HR-leder', 'Designer', 'Driftsleder',\n 'Forretningsanalytiker', 'Produktleder', 'Systemadministrator', 'Kvalitetsingeniør'\n ],\n departments: [\n 'Ingeniør', 'Markedsføring', 'Salg', 'Personale', 'Økonomi', 'Drift',\n 'Kundeservice', 'IT', 'Forskning og utvikling', 'Juridisk', 'Administrasjon'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n return `${street} ${number}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+47 ### ## ###',\n '### ## ###',\n '+47 ## ## ## ##',\n '## ## ## ##',\n '4## ## ###',\n '9## ## ###'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.no', 'outlook.no', 'hotmail.no', 'live.no',\n 'online.no', 'home.no', 'getmail.no', 'broadpark.no', 'icloud.com'\n ],\n\n companyNames: [\n 'Equinor ASA', 'DNB ASA', 'Telenor ASA', 'Yara International', 'Norsk Hydro',\n 'Orkla ASA', 'Kongsberg Gruppen', 'Aker ASA', 'Mowi ASA', 'Lerøy Seafood',\n 'SalMar ASA', 'Gjensidige Forsikring', 'Storebrand', 'Wilh. Wilhelmsen',\n 'Frontline Ltd', 'Golden Ocean', 'Aker BP', 'Vår Energi', 'Höegh Autoliners'\n ],\n\n industries: [\n 'Teknologi', 'Finans', 'Helsevesen', 'Utdanning', 'Detaljhandel',\n 'Produksjon', 'Media', 'Telekom', 'Energi', 'Transport',\n 'Eiendom', 'Konsulent', 'Hoteller', 'Bilindustri', 'Luftfart'\n ],\n\n catchPhrases: [\n 'Innovasjon for fremtiden', 'Din suksess er vår sak', 'Bygger fremtiden sammen',\n 'Kvalitet og tillit', 'Fortreffelighet og engasjement', 'Bærekraftige løsninger',\n 'Skaper verdi', 'Din pålitelige partner', 'Leder endring'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const da_DK: LocaleDefinition = {\n firstNamesMale: [\n 'Morten', 'Peter', 'Jens', 'Michael', 'Lars', 'Henrik', 'Thomas', 'Søren',\n 'Christian', 'Martin', 'Niels', 'Rasmus', 'Anders', 'Mikkel', 'Frederik',\n 'Mathias', 'Casper', 'Simon', 'Mads', 'Jacob', 'Emil', 'Magnus', 'Lucas',\n 'Oliver', 'William', 'Noah', 'Oscar', 'Victor', 'Alexander', 'Sebastian'\n ],\n firstNamesFemale: [\n 'Anne', 'Kirsten', 'Mette', 'Hanne', 'Lene', 'Susanne', 'Camilla', 'Louise',\n 'Maria', 'Sofie', 'Julie', 'Emma', 'Ida', 'Anna', 'Laura', 'Sarah', 'Mathilde',\n 'Freja', 'Clara', 'Isabella', 'Alma', 'Ella', 'Karla', 'Josefine', 'Victoria',\n 'Caroline', 'Katrine', 'Line', 'Rikke', 'Trine', 'Charlotte', 'Maja'\n ],\n lastNames: [\n 'Nielsen', 'Jensen', 'Hansen', 'Pedersen', 'Andersen', 'Christensen', 'Larsen',\n 'Sørensen', 'Rasmussen', 'Jørgensen', 'Petersen', 'Madsen', 'Kristensen', 'Olsen',\n 'Thomsen', 'Christiansen', 'Poulsen', 'Johansen', 'Møller', 'Mortensen', 'Knudsen',\n 'Jakobsen', 'Laursen', 'Simonsen', 'Frederiksen', 'Kjær', 'Schmidt', 'Holm'\n ],\n streets: [\n 'Hovedgaden', 'Kirkevej', 'Skovvej', 'Parkvej', 'Strandvej', 'Møllevej',\n 'Skolevej', 'Birkevej', 'Rosenvej', 'Vestergade', 'Østergade', 'Nørregade',\n 'Søndergade', 'Tingvej', 'Lillevej', 'Storegade', 'Åvej', 'Byvej', 'Havnevej'\n ],\n cities: [\n 'København', 'Aarhus', 'Odense', 'Aalborg', 'Esbjerg', 'Randers', 'Kolding',\n 'Horsens', 'Vejle', 'Roskilde', 'Herning', 'Silkeborg', 'Næstved', 'Fredericia',\n 'Viborg', 'Køge', 'Holstebro', 'Taastrup', 'Slagelse', 'Hillerød', 'Sønderborg',\n 'Holbæk', 'Svendborg', 'Hjørring', 'Frederikshavn', 'Rønne', 'Nykøbing F'\n ],\n states: [\n 'Hovedstaden', 'Sjælland', 'Syddanmark', 'Midtjylland', 'Nordjylland'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Softwareingeniør', 'Projektleder', 'Dataanalytiker', 'Marketingchef',\n 'Salgsrepræsentant', 'Revisor', 'HR-chef', 'Designer', 'Driftschef',\n 'Forretningsanalytiker', 'Produktchef', 'Systemadministrator', 'Kvalitetsingeniør'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Salg', 'HR', 'Økonomi', 'Drift', 'Kundeservice',\n 'IT', 'Forskning og udvikling', 'Juridisk', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n const floor = Random.boolean() ? `, ${Random.int(1, 5)}. sal` : '';\n return `${street} ${number}${floor}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+45 ## ## ## ##',\n '## ## ## ##',\n '+45 (##) ## ## ##',\n '(##) ## ## ##',\n '2# ## ## ##',\n '3# ## ## ##',\n '4# ## ## ##',\n '5# ## ## ##'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.dk', 'outlook.dk', 'hotmail.dk', 'live.dk',\n 'mail.dk', 'telia.dk', 'tdc.dk', 'youmail.dk', 'post.tele.dk'\n ],\n\n companyNames: [\n 'A.P. Møller-Mærsk', 'Novo Nordisk', 'Carlsberg Group', 'Vestas Wind Systems',\n 'Danske Bank', 'Nordea', 'Ørsted', 'Coloplast', 'Demant',\n 'ISS A/S', 'DSV A/S', 'Pandora A/S', 'Royal Unibrew',\n 'Tryg A/S', 'GN Store Nord', 'Ambu A/S', 'Zealand Pharma'\n ],\n\n industries: [\n 'Teknologi', 'Finans', 'Sundhedsvæsen', 'Uddannelse', 'Detailhandel',\n 'Fremstilling', 'Medier', 'Telekommunikation', 'Energi', 'Transport',\n 'Ejendomme', 'Konsulentvirksomhed', 'Hoteller', 'Automobil', 'Luftfart'\n ],\n\n catchPhrases: [\n 'Innovation for fremtiden', 'Din succes er vores sag', 'Bygger fremtiden sammen',\n 'Kvalitet og tillid', 'Excellence og engagement', 'Bæredygtige løsninger',\n 'Skaber værdi', 'Din pålidelige partner', 'Leder forandring'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const fi_FI: LocaleDefinition = {\n firstNamesMale: [\n 'Jari', 'Mika', 'Mikko', 'Juha', 'Petri', 'Jukka', 'Antti', 'Timo', 'Ville',\n 'Matti', 'Pekka', 'Sami', 'Kari', 'Markus', 'Teemu', 'Joonas', 'Lauri', 'Tuomas',\n 'Eero', 'Oskari', 'Valtteri', 'Aleksi', 'Oliver', 'Emil', 'Elias', 'Leo',\n 'Onni', 'Aatos', 'Väinö', 'Eino', 'Veikko', 'Seppo', 'Heikki', 'Kalevi'\n ],\n firstNamesFemale: [\n 'Maria', 'Anna', 'Johanna', 'Sari', 'Hanna', 'Kaisa', 'Laura', 'Sanna', 'Minna',\n 'Tiina', 'Pirjo', 'Tuula', 'Eeva', 'Aino', 'Sofia', 'Emilia', 'Emma', 'Olivia',\n 'Aada', 'Helmi', 'Lilja', 'Elli', 'Isla', 'Venla', 'Linnea', 'Matilda', 'Aino',\n 'Kerttu', 'Ella', 'Anni', 'Iida', 'Sara', 'Oona', 'Pihla'\n ],\n lastNames: [\n 'Virtanen', 'Korhonen', 'Nieminen', 'Mäkinen', 'Hämäläinen', 'Laine', 'Heikkinen',\n 'Koskinen', 'Järvinen', 'Lehtonen', 'Lehtinen', 'Saarinen', 'Salminen', 'Heinonen',\n 'Niemi', 'Heikkilä', 'Kinnunen', 'Salonen', 'Tuominen', 'Laitinen', 'Turunen',\n 'Mattila', 'Rantanen', 'Karjalainen', 'Jokinen', 'Laaksonen', 'Savolainen', 'Mäkelä'\n ],\n streets: [\n 'Mannerheimintie', 'Hämeentie', 'Aleksanterinkatu', 'Esplanadi', 'Bulevardi',\n 'Pohjoinen Rautatiekatu', 'Fredrikinkatu', 'Iso Roobertinkatu', 'Kalevankatu',\n 'Töölönkatu', 'Runeberginkatu', 'Mechelininkatu', 'Hietaniemenkatu', 'Lapinlahdenkatu',\n 'Agricolankatu', 'Sturenkatu', 'Hämeentie', 'Koskelantie', 'Hitsaajankatu'\n ],\n cities: [\n 'Helsinki', 'Espoo', 'Tampere', 'Vantaa', 'Oulu', 'Turku', 'Jyväskylä', 'Lahti',\n 'Kuopio', 'Pori', 'Kouvola', 'Joensuu', 'Lappeenranta', 'Hämeenlinna', 'Vaasa',\n 'Rovaniemi', 'Seinäjoki', 'Mikkeli', 'Kotka', 'Salo', 'Porvoo', 'Kokkola',\n 'Lohja', 'Hyvinkää', 'Järvenpää', 'Rauma', 'Tuusula', 'Kajaani', 'Savonlinna'\n ],\n states: [\n 'Uusimaa', 'Varsinais-Suomi', 'Satakunta', 'Kanta-Häme', 'Pirkanmaa', 'Päijät-Häme',\n 'Kymenlaakso', 'Etelä-Karjala', 'Etelä-Savo', 'Pohjois-Savo', 'Pohjois-Karjala',\n 'Keski-Suomi', 'Etelä-Pohjanmaa', 'Pohjanmaa', 'Keski-Pohjanmaa', 'Pohjois-Pohjanmaa',\n 'Kainuu', 'Lappi', 'Ahvenanmaa'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Ohjelmistokehittäjä', 'Projektipäällikkö', 'Data-analyytikko', 'Markkinointipäällikkö',\n 'Myyntiedustaja', 'Kirjanpitäjä', 'HR-päällikkö', 'Suunnittelija', 'Toimintapäällikkö',\n 'Liiketoiminta-analyytikko', 'Tuotepäällikkö', 'Järjestelmänvalvoja', 'Laatuinsinööri'\n ],\n departments: [\n 'Kehitys', 'Markkinointi', 'Myynti', 'Henkilöstöhallinto', 'Talous', 'Toiminnot',\n 'Asiakaspalvelu', 'IT', 'Tutkimus ja kehitys', 'Oikeusosasto', 'Hallinto'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n const apartment = Random.boolean() ? ` ${Random.int(1, 99)}` : '';\n return `${street} ${number}${apartment}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+358 ## ### ####',\n '0## ### ####',\n '+358 (0)## ### ####',\n '0## #######',\n '04# ### ####',\n '040 ### ####',\n '044 ### ####',\n '045 ### ####',\n '050 ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.fi', 'outlook.fi', 'hotmail.fi', 'live.fi',\n 'elisanet.fi', 'luukku.com', 'kolumbus.fi', 'pp.inet.fi', 'mbnet.fi'\n ],\n\n companyNames: [\n 'Nokia Oyj', 'Neste Oyj', 'Nordea Bank', 'Kone Oyj', 'Fortum Oyj',\n 'UPM-Kymmene', 'Stora Enso', 'Wärtsilä Oyj', 'Metso Outotec', 'Sampo Group',\n 'Elisa Oyj', 'Telia Finland', 'DNA Oyj', 'Kesko Oyj', 'S-Group',\n 'Valio Ltd', 'Hartwall Oy', 'Fiskars Oyj', 'Marimekko Oyj', 'Rovio Entertainment'\n ],\n\n industries: [\n 'Teknologia', 'Rahoitus', 'Terveys', 'Koulutus', 'Vähittäiskauppa',\n 'Valmistus', 'Media', 'Telekommunikaatio', 'Energia', 'Kuljetus',\n 'Kiinteistöt', 'Konsultointi', 'Hotellit', 'Autoteollisuus', 'Ilmailu'\n ],\n\n catchPhrases: [\n 'Innovaatioita tulevaisuuteen', 'Menestyksesi on asiamme', 'Rakennamme tulevaisuutta yhdessä',\n 'Laatua ja luotettavuutta', 'Erinomaista sitoutumista', 'Kestäviä ratkaisuja',\n 'Luomme arvoa', 'Luotettava kumppanisi', 'Johdamme muutosta'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const es_AR: LocaleDefinition = {\n firstNamesMale: [\n 'Juan', 'Carlos', 'José', 'Luis', 'Jorge', 'Ricardo', 'Daniel', 'Marcelo',\n 'Alejandro', 'Pablo', 'Diego', 'Martín', 'Fernando', 'Gonzalo', 'Matías',\n 'Sebastián', 'Nicolás', 'Federico', 'Gabriel', 'Andrés', 'Ezequiel', 'Facundo',\n 'Maximiliano', 'Rodrigo', 'Germán', 'Luciano', 'Ignacio', 'Agustín', 'Franco'\n ],\n firstNamesFemale: [\n 'María', 'Ana', 'Laura', 'Marta', 'Silvia', 'Andrea', 'Gabriela', 'Claudia',\n 'Carolina', 'Valeria', 'Natalia', 'Paula', 'Verónica', 'Cecilia', 'Patricia',\n 'Sofía', 'Martina', 'Lucía', 'Valentina', 'Florencia', 'Camila', 'Milagros',\n 'Victoria', 'Catalina', 'Antonella', 'Agustina', 'Micaela', 'Julieta', 'Guadalupe'\n ],\n lastNames: [\n 'González', 'Rodríguez', 'Fernández', 'López', 'Martínez', 'García', 'Pérez', 'Gómez',\n 'Sánchez', 'Romero', 'Álvarez', 'Díaz', 'Torres', 'Ruiz', 'Ramírez', 'Flores',\n 'Benítez', 'Acosta', 'Medina', 'Castro', 'Molina', 'Moreno', 'Suárez', 'Vega',\n 'Pereyra', 'Gutiérrez', 'Silva', 'Vargas', 'Cabrera', 'Ramos', 'Navarro', 'Sosa'\n ],\n streets: [\n 'Avenida Corrientes', 'Avenida Santa Fe', 'Avenida 9 de Julio', 'Avenida Rivadavia',\n 'Calle Florida', 'Avenida de Mayo', 'Calle San Martín', 'Avenida Callao',\n 'Calle Lavalle', 'Avenida Córdoba', 'Avenida Belgrano', 'Calle Reconquista',\n 'Avenida Libertador', 'Calle Maipú', 'Avenida Pueyrredón', 'Calle Defensa',\n 'Avenida Independencia', 'Calle Rodríguez Peña', 'Avenida Las Heras'\n ],\n cities: [\n 'Buenos Aires', 'Córdoba', 'Rosario', 'Mendoza', 'La Plata', 'San Miguel de Tucumán',\n 'Mar del Plata', 'Salta', 'Santa Fe', 'San Juan', 'Resistencia', 'Neuquén',\n 'Corrientes', 'Santiago del Estero', 'Posadas', 'Bahía Blanca', 'Paraná',\n 'San Salvador de Jujuy', 'Formosa', 'La Rioja', 'Catamarca', 'San Luis', 'Río Cuarto'\n ],\n states: [\n 'Buenos Aires', 'Córdoba', 'Santa Fe', 'Mendoza', 'Tucumán', 'Entre Ríos',\n 'Salta', 'Chaco', 'Corrientes', 'Misiones', 'San Juan', 'Jujuy', 'Santiago del Estero',\n 'San Luis', 'Catamarca', 'La Rioja', 'Formosa', 'Neuquén', 'Río Negro',\n 'Chubut', 'Santa Cruz', 'Tierra del Fuego', 'La Pampa'\n ],\n zipCodePattern: '@####@@@',\n jobTitles: [\n 'Ingeniero de Software', 'Gerente de Proyecto', 'Analista de Datos', 'Gerente de Marketing',\n 'Representante de Ventas', 'Contador', 'Gerente de RRHH', 'Diseñador', 'Gerente de Operaciones',\n 'Analista de Negocios', 'Gerente de Producto', 'Administrador de Sistemas'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas', 'Operaciones',\n 'Atención al Cliente', 'IT', 'Investigación y Desarrollo', 'Legal', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 9999);\n const piso = Random.int(1, 20);\n const depto = Random.pick(['A', 'B', 'C', 'D', 'E']);\n return `${street} ${number}, Piso ${piso} Dpto ${depto}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n const letter = String.fromCharCode(65 + Random.int(0, 25));\n const digits = String(Random.int(1000, 9999));\n const letters = String.fromCharCode(65 + Random.int(0, 25)) +\n String.fromCharCode(65 + Random.int(0, 25)) +\n String.fromCharCode(65 + Random.int(0, 25));\n return `${letter}${digits}${letters}`;\n },\n\n phoneFormats: [\n '+54 9 ## #### ####',\n '0## #### ####',\n '+54 (0)## #### ####',\n '011 #### ####',\n '0341 #### ####',\n '0351 #### ####',\n '0261 #### ####',\n '0223 #### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com.ar', 'outlook.com', 'hotmail.com', 'live.com',\n 'fibertel.com.ar', 'speedy.com.ar', 'arnet.com.ar', 'cablenet.com.ar',\n 'telecentro.com.ar', 'claro.com.ar'\n ],\n\n companyNames: [\n 'YPF Sociedad Anónima', 'Grupo Galicia', 'Banco Santander Río', 'Banco Nación',\n 'Mercado Libre', 'Globant SE', 'Telecom Argentina', 'Telefónica Argentina',\n 'Aerolíneas Argentinas', 'Aluar Aluminio Argentino', 'Arcor SAIC', 'Molinos Río de la Plata',\n 'Grupo Clarín', 'Cablevisión', 'Pampa Energía', 'Transener SA', 'Edenor SA',\n 'Tenaris SA', 'Siderar SA', 'Petrobras Argentina'\n ],\n\n industries: [\n 'Tecnología', 'Finanzas', 'Salud', 'Educación', 'Venta minorista',\n 'Fabricación', 'Medios', 'Telecomunicaciones', 'Energía', 'Transporte',\n 'Inmobiliaria', 'Consultoría', 'Hostelería', 'Automoción', 'Aeroespacial'\n ],\n\n catchPhrases: [\n 'Innovando para el futuro', 'Su éxito es nuestro negocio', 'Construyendo el futuro juntos',\n 'Calidad y confianza', 'Excelencia y compromiso', 'Soluciones sostenibles',\n 'Creamos valor', 'Su socio de confianza', 'Liderando el cambio'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const es_CL: LocaleDefinition = {\n firstNamesMale: [\n 'Juan', 'Pedro', 'José', 'Luis', 'Carlos', 'Jorge', 'Miguel', 'Andrés',\n 'Francisco', 'Ricardo', 'Manuel', 'Alejandro', 'Diego', 'Sebastián', 'Cristian',\n 'Matías', 'Felipe', 'Gonzalo', 'Rodrigo', 'Javier', 'Pablo', 'Marcelo',\n 'Gabriel', 'Nicolás', 'Maximiliano', 'Tomás', 'Martín', 'Ignacio', 'Joaquín'\n ],\n firstNamesFemale: [\n 'María', 'Carmen', 'Rosa', 'Ana', 'Isabel', 'Teresa', 'Gloria', 'Patricia',\n 'Claudia', 'Andrea', 'Carolina', 'Francisca', 'Daniela', 'Camila', 'Javiera',\n 'Valentina', 'Constanza', 'Fernanda', 'Catalina', 'Isidora', 'Sofía', 'Martina',\n 'Florencia', 'Antonia', 'Emilia', 'Trinidad', 'Maite', 'Josefa', 'Amanda'\n ],\n lastNames: [\n 'González', 'Muñoz', 'Rojas', 'Díaz', 'Pérez', 'Soto', 'Contreras', 'Silva',\n 'Martínez', 'Sepúlveda', 'Morales', 'Rodríguez', 'López', 'Fuentes', 'Hernández',\n 'Torres', 'Araya', 'Flores', 'Espinoza', 'Valenzuela', 'Castillo', 'Tapia',\n 'Reyes', 'Vásquez', 'Ramírez', 'Núñez', 'Pizarro', 'Carrasco', 'Gutiérrez', 'Herrera'\n ],\n streets: [\n 'Avenida Libertador Bernardo O\\'Higgins', 'Avenida Providencia', 'Avenida Apoquindo',\n 'Avenida Las Condes', 'Avenida Vicuña Mackenna', 'Avenida Grecia', 'Calle Huérfanos',\n 'Calle Agustinas', 'Avenida Pedro de Valdivia', 'Avenida Bilbao', 'Calle Bandera',\n 'Avenida República', 'Calle Estado', 'Avenida Irarrázaval', 'Avenida Ñuñoa'\n ],\n cities: [\n 'Santiago', 'Valparaíso', 'Viña del Mar', 'Concepción', 'La Serena', 'Antofagasta',\n 'Temuco', 'Rancagua', 'Talca', 'Arica', 'Puerto Montt', 'Chillán', 'Iquique',\n 'Los Ángeles', 'Coyhaique', 'Punta Arenas', 'Valdivia', 'Osorno', 'Quillota',\n 'Curicó', 'Calama', 'Copiapó', 'Linares', 'Ovalle', 'San Antonio'\n ],\n states: [\n 'Región Metropolitana', 'Valparaíso', 'Biobío', 'Araucanía', 'Los Lagos',\n 'Maule', 'Antofagasta', 'Coquimbo', 'O\\'Higgins', 'Tarapacá', 'Los Ríos',\n 'Aysén', 'Magallanes', 'Atacama', 'Arica y Parinacota', 'Ñuble'\n ],\n zipCodePattern: '#######',\n jobTitles: [\n 'Ingeniero en Software', 'Jefe de Proyecto', 'Analista de Datos', 'Jefe de Marketing',\n 'Ejecutivo Comercial', 'Contador', 'Jefe de RRHH', 'Diseñador', 'Jefe de Operaciones',\n 'Analista de Negocios', 'Product Manager', 'Administrador de Sistemas'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas', 'Operaciones',\n 'Atención al Cliente', 'TI', 'Investigación y Desarrollo', 'Legal', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 9999);\n const depto = Random.int(1, 500);\n return `${street} ${number}, Depto ${depto}, ${city}, ${state}, ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000000, 9999999));\n },\n\n phoneFormats: [\n '+56 9 #### ####',\n '9 #### ####',\n '+56 (9) #### ####',\n '(9) #### ####',\n '02 #### ####',\n '032 #### ####',\n '041 #### ####',\n '055 #### ####',\n '061 #### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.cl', 'outlook.cl', 'hotmail.cl', 'live.cl',\n 'vtr.net', 'movistar.cl', 'entel.cl', 'claro.cl', 'telsur.cl'\n ],\n\n companyNames: [\n 'Sociedad Química y Minera', 'Banco de Chile', 'Banco Santander Chile', 'Banco Estado',\n 'Latam Airlines', 'Falabella SA', 'Cencosud SA', 'Ripley Corp', 'Parque Arauco',\n 'Mallplaza', 'Empresas Copec', 'Colbún SA', 'Enel Chile', 'Enel Distribución',\n 'Chilectra', 'Aguas Andinas', 'CCU Compañía de las Cervecerías Unidas', 'Viña Concha y Toro'\n ],\n\n industries: [\n 'Tecnología', 'Finanzas', 'Salud', 'Educación', 'Venta minorista',\n 'Fabricación', 'Medios', 'Telecomunicaciones', 'Energía', 'Transporte',\n 'Inmobiliaria', 'Consultoría', 'Hostelería', 'Automoción', 'Aeroespacial'\n ],\n\n catchPhrases: [\n 'Innovando para el futuro', 'Su éxito es nuestro negocio', 'Construyendo el futuro juntos',\n 'Calidad y confianza', 'Excelencia y compromiso', 'Soluciones sostenibles',\n 'Creamos valor', 'Su socio de confianza', 'Liderando el cambio'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const th_TH: LocaleDefinition = {\n firstNamesMale: [\n 'Somchai', 'Somsak', 'Chai', 'Niran', 'Anon', 'Thana', 'Korn', 'Pong',\n 'Arun', 'Wit', 'Sak', 'Nop', 'Chai', 'Manop', 'Anucha', 'Weerasak',\n 'Surasak', 'Prasert', 'Phong', 'Sombat', 'Narong', 'Wichit', 'Lek', 'Noi',\n 'Anurak', 'Sarawut', 'Kittipong', 'Jirawat', 'Thanawat', 'Apichai'\n ],\n firstNamesFemale: [\n 'Somying', 'Noi', 'Lek', 'Malee', 'Siriporn', 'Suda', 'Nittaya', 'Pornpan',\n 'Orathai', 'Wanida', 'Suwanna', 'Pranee', 'Rattana', 'Chanya', 'Supaporn',\n 'Areerat', 'Apinya', 'Waranya', 'Jirapha', 'Panida', 'Kanokwan', 'Sudarat',\n 'Naruemon', 'Wilai', 'Amara', 'Thanaporn', 'Pimsiri', 'Sirikul', 'Nutcha'\n ],\n lastNames: [\n 'Srisuk', 'Tantrakul', 'Wongcharoen', 'Pholchai', 'Saetang', 'Chanthara', 'Wattana',\n 'Ruangsri', 'Pornprasert', 'Thongchai', 'Suwannaphon', 'Chaiyaporn', 'Kingkaew',\n 'Intharasombat', 'Duangkaew', 'Maneekan', 'Somkhuan', 'Thepthong', 'Ratanaporn',\n 'Wongsawat', 'Chanthaburi', 'Phongsri', 'Methaphan', 'Rattanawong', 'Phongphan'\n ],\n streets: [\n 'Sukhumvit Road', 'Rama IV Road', 'Silom Road', 'Sathorn Road', 'Ratchadamri Road',\n 'Petchburi Road', 'Rama I Road', 'Phayathai Road', 'Ratchadaphisek Road',\n 'Vibhavadi Rangsit Road', 'Ladprao Road', 'Charoenkrung Road', 'Yaowarat Road',\n 'Ratchawithi Road', 'Lan Luang Road', 'Phra Athit Road', 'Khao San Road'\n ],\n cities: [\n 'Bangkok', 'Nonthaburi', 'Nakhon Ratchasima', 'Chiang Mai', 'Hat Yai', 'Udon Thani',\n 'Pak Kret', 'Khon Kaen', 'Chon Buri', 'Nakhon Si Thammarat', 'Rayong', 'Lampang',\n 'Ubon Ratchathani', 'Surat Thani', 'Phuket', 'Nakhon Sawan', 'Chiang Rai', 'Saraburi',\n 'Samut Prakan', 'Trang', 'Phitsanulok', 'Krabi', 'Songkhla', 'Phetchaburi'\n ],\n states: [\n 'Bangkok', 'Nonthaburi', 'Pathum Thani', 'Samut Prakan', 'Chiang Mai', 'Chon Buri',\n 'Nakhon Ratchasima', 'Khon Kaen', 'Surat Thani', 'Udon Thani', 'Phuket', 'Songkhla',\n 'Rayong', 'Nakhon Si Thammarat', 'Chiang Rai', 'Ubon Ratchathani', 'Phitsanulok'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const soi = Random.int(1, 50);\n const number = Random.int(1, 999);\n return `${number} Soi ${soi}, ${street}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+66 # #### ####',\n '0# #### ####',\n '+66 (0)# #### ####',\n '08# ### ####',\n '09# ### ####',\n '06# ### ####',\n '02 ### ####',\n '03# ### ####',\n '04# ### ####',\n '05# ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.co.th', 'outlook.co.th', 'hotmail.co.th', 'live.co.th',\n 'hotmail.com', 'yahoo.com', 'thaimail.com', 'mailthai.com', 'sanook.com'\n ],\n\n companyNames: [\n 'PTT Public Company', 'Bangkok Bank', 'Kasikornbank', 'Siam Commercial Bank',\n 'Krung Thai Bank', 'Bank of Ayudhya', 'TMB Bank', 'Thanachart Bank',\n 'Advanced Info Service', 'True Corporation', 'DTAC', 'TOT Public Company',\n 'Thai Airways International', 'Bangkok Airways', 'AirAsia Thailand',\n 'Central Group', 'The Mall Group', 'Siam Piwat', 'Major Cineclic Group'\n ],\n\n industries: [\n 'เทคโนโลยี', 'การเงิน', 'การดูแลสุขภาพ', 'การศึกษา', 'การขายปลีก',\n 'การผลิต', 'สื่อ', 'โทรคมนาคม', 'พลังงาน', 'การขนส่ง',\n 'อสังหาริมทรัพย์', 'ที่ปรึกษา', 'โรงแรม', 'ยานยนต์', 'การบิน'\n ],\n\n catchPhrases: [\n 'นวัตกรรมเพื่ออนาคต', 'ความสำเร็จของคุณคือธุรกิจของเรา', 'สร้างอนาคตร่วมกัน',\n 'คุณภาพและความไว้วางใจ', 'ความเป็นเลิศและความมุ่งมั่น', 'โซลูชันที่ยั่งยืน',\n 'สร้างคุณค่า', 'พันธมิตรที่ไว้วางใจได้', 'นำไปสู่การเปลี่ยนแปลง'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const vi_VN: LocaleDefinition = {\n lastNames: [\n 'Nguyen', 'Tran', 'Le', 'Pham', 'Hoang', 'Huynh', 'Phan', 'Vu', 'Vo', 'Dang',\n 'Bui', 'Do', 'Ngo', 'Duong', 'Ly', 'Dinh', 'Trinh', 'Ha', 'Mai', 'Truong',\n 'To', 'Dao', 'Lam', 'Chau', 'Doan', 'Tang', 'Quach', 'Cao', 'Tong', 'Thai'\n ],\n firstNamesMale: [\n 'Van', 'Minh', 'Duc', 'Tuan', 'Thanh', 'Hieu', 'Khang', 'Phong', 'Hung',\n 'Quang', 'Hoang', 'Nam', 'Duy', 'Hai', 'Long', 'Khanh', 'Son', 'Thang',\n 'Dat', 'Huy', 'Trung', 'Tai', 'Vinh', 'Cuong', 'Khoa', 'Anh', 'Bao', 'Quan',\n 'Tien', 'Kien', 'Linh', 'Binh', 'An', 'Phu'\n ],\n firstNamesFemale: [\n 'Thi', 'Anh', 'Lan', 'Huong', 'Mai', 'Thu', 'Linh', 'Phuong', 'Ha', 'Hoa',\n 'Hang', 'Thuy', 'Yen', 'Nga', 'Nhu', 'Quynh', 'Van', 'Tuyet', 'Hien', 'Nhung',\n 'Dieu', 'Tam', 'My', 'Trang', 'Ngoc', 'Thao', 'Chi', 'Vy', 'Uyen', 'Khanh',\n 'Nhi', 'Bich', 'Trinh', 'Minh', 'Kim', 'Hong'\n ],\n streets: [\n 'Le Loi', 'Nguyen Hue', 'Tran Hung Dao', 'Ly Thai To', 'Hai Ba Trung',\n 'Ba Trieu', 'Phan Chu Trinh', 'Hoang Dieu', 'Nguyen Thai Hoc', 'Nguyen Trai',\n 'Tran Phu', 'Le Duan', 'Vo Thi Sau', 'Nguyen Du', 'Dong Khoi', 'Pasteur',\n 'Dien Bien Phu', 'Cach Mang Thang Tam', 'Vo Van Tan', 'Tran Quoc Toan'\n ],\n cities: [\n 'Ho Chi Minh City', 'Hanoi', 'Da Nang', 'Hai Phong', 'Can Tho', 'Bien Hoa',\n 'Hue', 'Nha Trang', 'Buon Ma Thuot', 'Vung Tau', 'Quy Nhon', 'Nam Dinh',\n 'Thai Nguyen', 'Phan Thiet', 'Thai Binh', 'Vinh', 'My Tho', 'Rach Gia',\n 'Long Xuyen', 'Cam Ranh', 'Ha Long', 'Pleiku', 'Bac Lieu', 'Cao Lanh'\n ],\n states: [\n 'Ho Chi Minh City', 'Hanoi', 'Da Nang', 'Hai Phong', 'Can Tho', 'Dong Nai',\n 'Binh Duong', 'Ba Ria-Vung Tau', 'Khanh Hoa', 'Lam Dong', 'Thua Thien Hue',\n 'Quang Nam', 'Thanh Hoa', 'Nghe An', 'Hai Duong', 'Nam Dinh', 'Thai Nguyen',\n 'Bac Ninh', 'Vinh Phuc', 'Phu Tho', 'Long An', 'Tien Giang', 'Ben Tre'\n ],\n zipCodePattern: '######',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${lastName} ${firstName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n const ward = Random.int(1, 20);\n const district = Random.int(1, 12);\n return `${number} ${street}, Ward ${ward}, District ${district}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(100000, 999999));\n },\n\n phoneFormats: [\n '+84 ## ### ####',\n '0## ### ####',\n '+84 (0)## ### ####',\n '09# ### ####',\n '03# ### ####',\n '05# ### ####',\n '07# ### ####',\n '08# ### ####',\n '02# ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com.vn', 'outlook.com', 'hotmail.com', 'live.com',\n 'yahoo.com', 'vnn.vn', 'hcm.vnn.vn', 'hn.vnn.vn', 'viettel.vn',\n 'vnnic.net.vn', 'fpt.vn', 'vtc.vn'\n ],\n\n companyNames: [\n 'Tập đoàn Vingroup', 'Tập đoàn Viettel', 'Tập đoàn FPT', 'Vietnam Oil and Gas Group',\n 'Ngân hàng Vietcombank', 'Ngân hàng BIDV', 'Ngân hàng VietinBank', 'Ngân hàng Techcombank',\n 'Vietnam Airlines', 'VietJet Air', 'Bamboo Airways', 'Tập đoàn TH',\n 'Tập đoàn Masan', 'Tập đoàn Vinamilk', 'Tập đoàn Hòa Phát', 'Tập đoàn Sun Group',\n 'Tập đoàn Novaland', 'Tập đoàn FLC', 'Tập đoàn T&T Group'\n ],\n\n industries: [\n 'Công nghệ', 'Tài chính', 'Y tế', 'Giáo dục', 'Bán lẻ',\n 'Sản xuất', 'Truyền thông', 'Viễn thông', 'Năng lượng', 'Giao thông',\n 'Bất động sản', 'Tư vấn', 'Khách sạn', 'Ô tô', 'Hàng không'\n ],\n\n catchPhrases: [\n 'Đổi mới cho tương lai', 'Thành công của bạn là công việc của chúng tôi', 'Xây dựng tương lai cùng nhau',\n 'Chất lượng và niềm tin', 'Xuất sắc và cam kết', 'Giải pháp bền vững',\n 'Tạo ra giá trị', 'Đối tác đáng tin cậy của bạn', 'Dẫn đầu sự thay đổi'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ms_MY: LocaleDefinition = {\n firstNamesMale: [\n 'Ahmad', 'Ali', 'Hassan', 'Ismail', 'Ibrahim', 'Mohd', 'Abdullah', 'Yusof',\n 'Rahman', 'Aziz', 'Zulkifli', 'Hamid', 'Halim', 'Hakim', 'Amin', 'Rashid',\n 'Fahmi', 'Faiz', 'Hafiz', 'Amirul', 'Danial', 'Syafiq', 'Iqbal', 'Haikal',\n 'Rizal', 'Ammar', 'Zikri', 'Arif', 'Ashraf', 'Firdaus', 'Nabil', 'Hakimi'\n ],\n firstNamesFemale: [\n 'Siti', 'Nur', 'Norain', 'Farah', 'Aisha', 'Zainab', 'Fatimah', 'Maryam',\n 'Amira', 'Sarah', 'Alya', 'Nadia', 'Sofea', 'Hanna', 'Aisyah', 'Najwa',\n 'Qistina', 'Irdina', 'Balqis', 'Ain', 'Nasuha', 'Izyan', 'Natasha', 'Erina',\n 'Fatin', 'Hanis', 'Syahirah', 'Insyirah', 'Marissa', 'Zulaikha', 'Nabila'\n ],\n lastNames: [\n 'Abdullah', 'Ahmad', 'Mohamed', 'Ibrahim', 'Hassan', 'Ismail', 'Rahman', 'Ali',\n 'Omar', 'Osman', 'Yusof', 'Aziz', 'Hamid', 'Salleh', 'Idris', 'Daud', 'Bakar',\n 'Mansor', 'Hussain', 'Yasin', 'Karim', 'Samad', 'Sulaiman', 'Hashim', 'Ramli',\n 'Harun', 'Wahab', 'Zain', 'Latif', 'Rashid', 'Ghani', 'Nasir', 'Rahim'\n ],\n streets: [\n 'Jalan Raja', 'Jalan Sultan', 'Jalan Tun Razak', 'Jalan Ampang', 'Jalan Bukit Bintang',\n 'Jalan Masjid India', 'Jalan Tuanku Abdul Rahman', 'Jalan Pudu', 'Jalan Imbi',\n 'Jalan Hang Tuah', 'Jalan Petaling', 'Jalan Chow Kit', 'Jalan Ipoh', 'Jalan Kelang Lama',\n 'Jalan Tun Perak', 'Jalan Munshi Abdullah', 'Jalan Genting Klang', 'Jalan Pahang'\n ],\n cities: [\n 'Kuala Lumpur', 'George Town', 'Ipoh', 'Shah Alam', 'Petaling Jaya', 'Johor Bahru',\n 'Malacca City', 'Alor Setar', 'Kuching', 'Kota Kinabalu', 'Seremban', 'Kuantan',\n 'Klang', 'Subang Jaya', 'Kota Bharu', 'Sandakan', 'Kuala Terengganu', 'Miri',\n 'Kangar', 'Putrajaya', 'Cyberjaya', 'Taiping', 'Sibu', 'Muar', 'Batu Pahat'\n ],\n states: [\n 'Selangor', 'Johor', 'Penang', 'Perak', 'Kedah', 'Pahang', 'Negeri Sembilan',\n 'Melaka', 'Kelantan', 'Terengganu', 'Perlis', 'Sabah', 'Sarawak',\n 'Kuala Lumpur', 'Putrajaya', 'Labuan'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n const taman = Random.pick(['Taman', 'Bandar', 'Kampung']);\n const area = Random.pick(['Indah', 'Jaya', 'Perdana', 'Utama', 'Sentosa']);\n return `No. ${number}, ${street}, ${taman} ${area}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+60 ## ### ####',\n '0## ### ####',\n '+60 (0)## ### ####',\n '01# ### ####',\n '012 ### ####',\n '013 ### ####',\n '014 ### ####',\n '016 ### ####',\n '017 ### ####',\n '018 ### ####',\n '019 ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com.my', 'outlook.com', 'hotmail.com', 'live.com',\n 'tm.net.my', 'maxis.com.my', 'digi.com.my', 'celcom.com.my', 'unifi.com.my'\n ],\n\n companyNames: [\n 'Petronas', 'Maybank', 'Public Bank', 'CIMB Group', 'Rhbank Malaysia',\n 'Tenaga Nasional', 'Petronas Dagangan', 'Axiata Group', 'Maxis Berhad',\n 'Digi.Com Berhad', 'Celcom Axiata', 'Umobile', 'AirAsia Berhad',\n 'Malaysia Airlines', 'Sime Darby', 'IOI Corporation', 'Sime Darby Plantation',\n 'Genting Berhad', 'Berjaya Group', 'YTL Corporation', 'Hong Leong Bank'\n ],\n\n industries: [\n 'Teknologi', 'Kewangan', 'Kesihatan', 'Pendidikan', 'Runcit',\n 'Perkilangan', 'Media', 'Telekomunikasi', 'Tenaga', 'Pengangkutan',\n 'Hartanah', 'Perundingan', 'Perhotelan', 'Automotif', 'Aerospace'\n ],\n\n catchPhrases: [\n 'Berinovasi untuk masa depan', 'Kejayaan anda adalah urusan kami', 'Membina masa depan bersama',\n 'Kualiti dan kepercayaan', 'Kecemerlangan dan komitmen', 'Penyelesaian mampan',\n 'Mencipta nilai', 'Rakan dipercayai anda', 'Memimpin perubahan'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_SG: LocaleDefinition = {\n firstNamesMale: [\n 'Wei Ming', 'Jun Hao', 'Ryan', 'Ethan', 'Kai', 'Zhi Hao', 'Darren', 'Marcus',\n 'Nicholas', 'Brandon', 'Wei Jie', 'Joshua', 'Matthew', 'Daniel', 'Benjamin',\n 'Aaron', 'Isaac', 'Jayden', 'Aiden', 'Sean', 'Adrian', 'Xavier', 'Lucas',\n 'Nathan', 'Tyler', 'Arjun', 'Ravi', 'Kumar', 'Raj', 'Vikram'\n ],\n firstNamesFemale: [\n 'Hui Ling', 'Xin Yi', 'Rachel', 'Chloe', 'Emma', 'Ying Xuan', 'Sarah', 'Emily',\n 'Michelle', 'Nicole', 'Angela', 'Amanda', 'Cheryl', 'Joyce', 'Melissa', 'Sophia',\n 'Isabelle', 'Natalie', 'Ashley', 'Crystal', 'Priya', 'Divya', 'Kavitha', 'Ananya',\n 'Shreya', 'Mei Ling', 'Li Ying', 'Jia Yi', 'Shi Hui', 'Wei Ting'\n ],\n lastNames: [\n 'Tan', 'Lim', 'Lee', 'Ng', 'Ong', 'Wong', 'Goh', 'Chua', 'Chan', 'Koh',\n 'Teo', 'Ang', 'Yeo', 'Lau', 'Tay', 'Ho', 'Low', 'Sim', 'Chia', 'Toh',\n 'Kumar', 'Singh', 'Kaur', 'Rahman', 'Ali', 'Hassan', 'Ahmad', 'Mohamed',\n 'Abdullah', 'Ibrahim', 'Chen', 'Wang', 'Zhang', 'Liu', 'Yang'\n ],\n streets: [\n 'Orchard Road', 'Raffles Boulevard', 'Shenton Way', 'Marina Boulevard', 'Beach Road',\n 'North Bridge Road', 'South Bridge Road', 'Collyer Quay', 'Robinson Road', 'Cecil Street',\n 'Eu Tong Sen Street', 'Serangoon Road', 'Geylang Road', 'Balestier Road', 'Thomson Road',\n 'Bukit Timah Road', 'Clementi Road', 'Jurong East Avenue', 'Ang Mo Kio Avenue', 'Tampines Avenue'\n ],\n cities: [\n 'Singapore', 'Woodlands', 'Tampines', 'Jurong East', 'Ang Mo Kio', 'Bedok',\n 'Hougang', 'Yishun', 'Sembawang', 'Bukit Panjang', 'Choa Chu Kang', 'Punggol',\n 'Sengkang', 'Pasir Ris', 'Clementi', 'Bukit Batok', 'Toa Payoh', 'Queenstown'\n ],\n states: [\n 'Central Region', 'North Region', 'North-East Region', 'East Region', 'West Region'\n ],\n zipCodePattern: '######',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Executive', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const block = Random.int(1, 999);\n const unit = `#${Random.int(1, 40).toString().padStart(2, '0')}-${Random.int(1, 999)}`;\n return `Blk ${block} ${street}, ${unit}, Singapore ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(100000, 999999));\n },\n\n phoneFormats: [\n '+65 #### ####',\n '#### ####',\n '+65 (####) ####',\n '(####) ####',\n '8### ####',\n '9### ####',\n '6### ####',\n '3### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com.sg', 'outlook.com', 'hotmail.com', 'live.com',\n 'singnet.com.sg', 'starhub.com', 'm1.com.sg', 'pacbell.net', 'asianet.com'\n ],\n\n companyNames: [\n 'DBS Bank', 'United Overseas Bank', 'Oversea-Chinese Banking Corporation',\n 'Singapore Telecommunications', 'Singapore Airlines', 'Singapore Exchange',\n 'CapitaLand Investment', 'City Developments Limited', 'Genting Singapore',\n 'Wilmar International', 'Thai Beverage', 'Yangzijiang Shipbuilding',\n 'Sembcorp Industries', 'Keppel Corporation', 'Jardine Cycle & Carriage',\n 'Hongkong Land', 'Dairy Farm International', 'Sheng Siong Group'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transport',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace'\n ],\n\n catchPhrases: [\n 'Innovating for the future', 'Your success is our business', 'Building the future together',\n 'Quality and trust', 'Excellence and commitment', 'Sustainable solutions',\n 'Creating value', 'Your trusted partner', 'Leading the change'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_PH: LocaleDefinition = {\n firstNamesMale: [\n 'John', 'Mark', 'Angelo', 'Joshua', 'James', 'Michael', 'Christian', 'Carl',\n 'Kenneth', 'Anthony', 'Kristian', 'Daniel', 'Joseph', 'Gabriel', 'Rafael',\n 'Emmanuel', 'Nathaniel', 'Matthew', 'Andrew', 'Samuel', 'Diego', 'Luis',\n 'Marco', 'Paolo', 'Adrian', 'Ryan', 'Ethan', 'Jacob', 'Nathan', 'Vincent'\n ],\n firstNamesFemale: [\n 'Maria', 'Anna', 'Princess', 'Angel', 'Andrea', 'Nicole', 'Michelle', 'Sarah',\n 'Angelica', 'Christine', 'Patricia', 'Mary', 'Rose', 'Joy', 'Grace', 'Faith',\n 'Hope', 'Kristine', 'Jasmine', 'Sofia', 'Isabella', 'Gabriela', 'Katrina',\n 'Samantha', 'Jessica', 'Jennifer', 'Stephanie', 'Alexandra', 'Alessandra', 'Bianca'\n ],\n lastNames: [\n 'dela Cruz', 'Garcia', 'Reyes', 'Ramos', 'Mendoza', 'Santos', 'Flores', 'Gonzales',\n 'Bautista', 'Cruz', 'Fernandez', 'Lopez', 'Perez', 'Martinez', 'Rivera', 'Torres',\n 'Aquino', 'Villanueva', 'Castro', 'Santiago', 'Morales', 'Valdez', 'Navarro',\n 'Alvarez', 'Salazar', 'Romero', 'Manuel', 'Castillo', 'Aguilar', 'Mercado'\n ],\n streets: [\n 'EDSA', 'Roxas Boulevard', 'Quezon Avenue', 'Taft Avenue', 'España Boulevard',\n 'Ayala Avenue', 'Ortigas Avenue', 'Shaw Boulevard', 'Commonwealth Avenue',\n 'C-5 Road', 'Katipunan Avenue', 'Magsaysay Avenue', 'Rizal Avenue', 'Del Pilar Street',\n 'Araneta Avenue', 'Aurora Boulevard', 'Marcos Highway', 'Bonifacio Drive'\n ],\n cities: [\n 'Manila', 'Quezon City', 'Makati', 'Pasig', 'Taguig', 'Pasay', 'Parañaque',\n 'Las Piñas', 'Muntinlupa', 'Caloocan', 'Malabon', 'Navotas', 'Valenzuela',\n 'Marikina', 'San Juan', 'Mandaluyong', 'Cebu City', 'Davao City', 'Zamboanga City',\n 'Cagayan de Oro', 'General Santos', 'Iloilo City', 'Bacolod', 'Baguio'\n ],\n states: [\n 'Metro Manila', 'Calabarzon', 'Central Luzon', 'Central Visayas', 'Western Visayas',\n 'Davao Region', 'Northern Mindanao', 'Ilocos Region', 'Cagayan Valley', 'Bicol Region',\n 'Eastern Visayas', 'Zamboanga Peninsula', 'SOCCSKSARGEN', 'Cordillera', 'MIMAROPA'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Assurance Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n const barangay = Random.pick(['Barangay San Antonio', 'Barangay Santa Cruz', 'Barangay San Jose', 'Barangay Poblacion']);\n return `${number} ${street}, ${barangay}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+63 ### ### ####',\n '0### ### ####',\n '+63 (0)### ### ####',\n '09## ### ####',\n '091# ### ####',\n '092# ### ####',\n '093# ### ####',\n '094# ### ####',\n '095# ### ####',\n '096# ### ####',\n '097# ### ####',\n '098# ### ####',\n '099# ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com.ph', 'outlook.com', 'hotmail.com', 'live.com',\n 'yahoo.com', 'pldtdsl.net', 'globe.com.ph', 'smart.com.ph', 'sun.com.ph'\n ],\n\n companyNames: [\n 'SM Investments Corporation', 'Ayala Corporation', 'JG Summit Holdings', 'Metro Pacific Investments',\n 'BDO Unibank', 'Bank of the Philippine Islands', 'Metropolitan Bank & Trust', 'Philippine National Bank',\n 'PLDT Inc', 'Globe Telecom', 'Philippine Long Distance Telephone', 'Jollibee Foods Corporation',\n 'SM Prime Holdings', 'Ayala Land Inc', 'Megaworld Corporation', 'Robinsons Land Corporation',\n 'Cebu Pacific Air', 'Philippine Airlines', 'Manila Electric Company', 'Aboitiz Power Corporation'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transport',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace'\n ],\n\n catchPhrases: [\n 'Innovating for the future', 'Your success is our business', 'Building the future together',\n 'Quality and trust', 'Excellence and commitment', 'Sustainable solutions',\n 'Creating value', 'Your trusted partner', 'Leading the change'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_NZ: LocaleDefinition = {\n firstNamesMale: [\n 'Oliver', 'Jack', 'Noah', 'William', 'James', 'Lucas', 'Mason', 'Ethan', 'Leo',\n 'Liam', 'Benjamin', 'Hunter', 'Joshua', 'Samuel', 'Daniel', 'Matthew', 'Joseph',\n 'Thomas', 'Harry', 'Charlie', 'Jacob', 'Archie', 'George', 'Max', 'Oscar',\n 'Finn', 'Isaac', 'Connor', 'Ryan', 'Lachlan', 'Cooper', 'Riley', 'Flynn'\n ],\n firstNamesFemale: [\n 'Charlotte', 'Olivia', 'Amelia', 'Isla', 'Mia', 'Harper', 'Emily', 'Ella', 'Sophie',\n 'Ava', 'Lily', 'Grace', 'Chloe', 'Isabella', 'Ruby', 'Lucy', 'Zoe', 'Emma',\n 'Hannah', 'Aria', 'Scarlett', 'Poppy', 'Evelyn', 'Willow', 'Sienna', 'Ivy',\n 'Hazel', 'Aurora', 'Madison', 'Layla', 'Alice', 'Eleanor', 'Maya'\n ],\n lastNames: [\n 'Smith', 'Wilson', 'Taylor', 'Brown', 'Williams', 'Jones', 'Anderson', 'White',\n 'Thompson', 'Davis', 'Martin', 'Clark', 'Robinson', 'Walker', 'Young', 'Harris',\n 'King', 'Scott', 'Green', 'Adams', 'Baker', 'Campbell', 'Mitchell', 'Roberts',\n 'Carter', 'Phillips', 'Evans', 'Turner', 'Collins', 'Stewart', 'Morris', 'Murphy'\n ],\n streets: [\n 'Queen Street', 'High Street', 'Main Street', 'Victoria Street', 'Lambton Quay',\n 'Courtenay Place', 'Cuba Street', 'Willis Street', 'The Terrace', 'Customhouse Quay',\n 'Karangahape Road', 'Ponsonby Road', 'Dominion Road', 'Great South Road', 'Broadway',\n 'Riccarton Road', 'Colombo Street', 'Cashel Street', 'Manchester Street', 'Hereford Street'\n ],\n cities: [\n 'Auckland', 'Wellington', 'Christchurch', 'Hamilton', 'Tauranga', 'Lower Hutt',\n 'Dunedin', 'Palmerston North', 'Napier', 'Porirua', 'Hibiscus Coast', 'New Plymouth',\n 'Rotorua', 'Whangarei', 'Nelson', 'Hastings', 'Invercargill', 'Upper Hutt',\n 'Gisborne', 'Taupo', 'Blenheim', 'Pukekohe', 'Timaru', 'Whanganui'\n ],\n states: [\n 'Auckland', 'Wellington', 'Canterbury', 'Waikato', 'Bay of Plenty', 'Otago',\n 'Manawatu-Wanganui', 'Hawke\\'s Bay', 'Northland', 'Taranaki', 'Southland',\n 'Nelson', 'Marlborough', 'Tasman', 'Gisborne', 'West Coast'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'Systems Administrator', 'Quality Assurance Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n const unit = Random.boolean() ? `Unit ${Random.int(1, 50)}, ` : '';\n return `${unit}${number} ${street}, ${city} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+64 # ### ####',\n '0# ### ####',\n '+64 (0)# ### ####',\n '02# ### ####',\n '021 ### ####',\n '022 ### ####',\n '027 ### ####',\n '03 ### ####',\n '04 ### ####',\n '06 ### ####',\n '07 ### ####',\n '09 ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.co.nz', 'outlook.co.nz', 'hotmail.co.nz', 'live.co.nz',\n 'xtra.co.nz', 'vodafone.co.nz', 'slingshot.co.nz', 'orcon.net.nz', 'ihug.co.nz'\n ],\n\n companyNames: [\n 'Air New Zealand', 'Fisher & Paykel Healthcare', 'Contact Energy', 'Meridian Energy',\n 'Spark New Zealand', 'Vector Limited', 'Infratil Limited', 'Kathmandu Holdings',\n 'The Warehouse Group', 'Foodstuffs North Island', 'Foodstuffs South Island',\n 'ANZ Bank New Zealand', 'ASB Bank', 'BNZ Bank', 'Westpac New Zealand',\n 'Fletcher Building', 'Goodman Property Trust', 'Kiwi Property Group', 'Z Energy'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transport',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace'\n ],\n\n catchPhrases: [\n 'Innovating for the future', 'Your success is our business', 'Building the future together',\n 'Quality and trust', 'Excellence and commitment', 'Sustainable solutions',\n 'Creating value', 'Your trusted partner', 'Leading the change'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_ZA: LocaleDefinition = {\n firstNamesMale: [\n 'Liam', 'Joshua', 'Daniel', 'Matthew', 'Michael', 'Ethan', 'David', 'Ryan',\n 'Connor', 'Benjamin', 'Luke', 'Thabang', 'Sipho', 'Thabo', 'Mandla', 'Bongani',\n 'Jabulani', 'Sibusiso', 'Nkosinathi', 'Siyabonga', 'Andile', 'Lwazi', 'Sandile',\n 'Dylan', 'Tyler', 'Nathan', 'Christian', 'Kyle', 'Cameron', 'Jordan'\n ],\n firstNamesFemale: [\n 'Emma', 'Olivia', 'Sarah', 'Jessica', 'Emily', 'Hannah', 'Nicole', 'Amy',\n 'Chloe', 'Sophie', 'Nomsa', 'Thandi', 'Zanele', 'Precious', 'Nomvula', 'Lindiwe',\n 'Sibongile', 'Nokuthula', 'Busisiwe', 'Nompumelelo', 'Zinhle', 'Ayanda', 'Noluthando',\n 'Madison', 'Mia', 'Kayla', 'Paige', 'Amelia', 'Grace', 'Isabella'\n ],\n lastNames: [\n 'Smith', 'van der Merwe', 'Botha', 'Naidoo', 'Pillay', 'Mthembu', 'Dlamini', 'Nkosi',\n 'Zulu', 'Ndlovu', 'Ngcobo', 'Khumalo', 'Sithole', 'Mahlangu', 'Molefe', 'Mokoena',\n 'Du Plessis', 'Pretorius', 'Nel', 'Meyer', 'Venter', 'Muller', 'Marais', 'Coetzee',\n 'Williams', 'Jones', 'Brown', 'Taylor', 'Johnson', 'Davies', 'Singh', 'Patel'\n ],\n streets: [\n 'Mandela Street', 'Church Street', 'Main Road', 'Voortrekker Road', 'Oxford Road',\n 'Rissik Street', 'Commissioner Street', 'Jorrisen Street', 'Rivonia Road', 'William Nicol Drive',\n 'Jan Smuts Avenue', 'Beyers Naude Drive', 'Long Street', 'Adderley Street', 'Strand Street',\n 'Kloof Street', 'Sea Point Promenade', 'Smith Street', 'Anton Lembede Street', 'Victoria Embankment'\n ],\n cities: [\n 'Johannesburg', 'Cape Town', 'Durban', 'Pretoria', 'Port Elizabeth', 'Bloemfontein',\n 'East London', 'Pietermaritzburg', 'Polokwane', 'Nelspruit', 'Kimberley', 'Rustenburg',\n 'George', 'Midrand', 'Centurion', 'Sandton', 'Soweto', 'Benoni', 'Boksburg',\n 'Germiston', 'Randburg', 'Roodepoort', 'Vereeniging', 'Welkom', 'Newcastle'\n ],\n states: [\n 'Gauteng', 'Western Cape', 'KwaZulu-Natal', 'Eastern Cape', 'Free State',\n 'Limpopo', 'Mpumalanga', 'North West', 'Northern Cape'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'Systems Administrator', 'Quality Assurance Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n return `${number} ${street}, ${city}, ${state}, ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+27 ## ### ####',\n '0## ### ####',\n '+27 (0)## ### ####',\n '0## #### ####',\n '06# ### ####',\n '07# ### ####',\n '08# ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.co.za', 'outlook.co.za', 'hotmail.co.za', 'live.co.za',\n 'telkomsa.net', 'mweb.co.za', 'vodamail.co.za', 'absamail.co.za', 'iafrica.com'\n ],\n\n companyNames: [\n 'Naspers Limited', 'Prosus NV', 'Anglo American plc', 'BHP Billiton', 'Rio Tinto',\n 'Standard Bank Group', 'FirstRand Limited', 'Absa Group', 'Nedbank Group',\n 'Capitec Bank', 'Discovery Limited', 'Old Mutual', 'Sanlam Limited',\n 'MTN Group', 'Telkom SA', 'Vodacom Group', 'Shoprite Holdings', 'Pick n Pay Stores',\n 'Woolworths Holdings', 'Massmart Holdings', 'Sasol Limited', 'Impala Platinum'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transport',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace'\n ],\n\n catchPhrases: [\n 'Innovating for the future', 'Your success is our business', 'Building the future together',\n 'Quality and trust', 'Excellence and commitment', 'Sustainable solutions',\n 'Creating value', 'Your trusted partner', 'Leading the change'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const pt_PT: LocaleDefinition = {\n firstNamesMale: [\n 'João', 'Francisco', 'Miguel', 'Rodrigo', 'Pedro', 'Tiago', 'Gonçalo', 'Diogo',\n 'José', 'António', 'Manuel', 'Carlos', 'Paulo', 'Rui', 'Luís', 'Bruno',\n 'Ricardo', 'Hugo', 'André', 'Nuno', 'Rafael', 'Daniel', 'David', 'Tomás',\n 'Bernardo', 'Martim', 'Santiago', 'Afonso', 'Duarte', 'Gabriel', 'Gustavo'\n ],\n firstNamesFemale: [\n 'Maria', 'Ana', 'Beatriz', 'Sofia', 'Mariana', 'Inês', 'Carolina', 'Catarina',\n 'Rita', 'Joana', 'Francisca', 'Teresa', 'Helena', 'Isabel', 'Leonor', 'Lara',\n 'Sara', 'Marta', 'Margarida', 'Diana', 'Matilde', 'Alice', 'Mafalda', 'Adriana',\n 'Carlota', 'Constança', 'Gabriela', 'Luísa', 'Melissa', 'Raquel', 'Cristina'\n ],\n lastNames: [\n 'Silva', 'Santos', 'Ferreira', 'Pereira', 'Oliveira', 'Costa', 'Rodrigues', 'Martins',\n 'Jesus', 'Sousa', 'Fernandes', 'Gonçalves', 'Gomes', 'Lopes', 'Marques', 'Alves',\n 'Almeida', 'Ribeiro', 'Pinto', 'Carvalho', 'Teixeira', 'Moreira', 'Correia', 'Mendes',\n 'Nunes', 'Soares', 'Vieira', 'Monteiro', 'Cardoso', 'Rocha', 'Neves', 'Coelho'\n ],\n streets: [\n 'Avenida da Liberdade', 'Rua Augusta', 'Rua da Prata', 'Avenida Almirante Reis',\n 'Rua Garrett', 'Praça do Comércio', 'Rua de Santa Catarina', 'Avenida dos Aliados',\n 'Rua das Flores', 'Avenida da República', 'Rua do Ouro', 'Rua Direita', 'Rua da Madalena',\n 'Avenida Fontes Pereira de Melo', 'Rua Braamcamp', 'Rua Alexandre Herculano'\n ],\n cities: [\n 'Lisboa', 'Porto', 'Vila Nova de Gaia', 'Amadora', 'Braga', 'Coimbra', 'Funchal',\n 'Setúbal', 'Almada', 'Agualva-Cacém', 'Queluz', 'Rio Tinto', 'Barreiro', 'Aveiro',\n 'Évora', 'Odivelas', 'Corroios', 'Loures', 'Gondomar', 'Guimarães', 'Matosinhos',\n 'Faro', 'Portimão', 'Leiria', 'Viseu', 'Castelo Branco', 'Vila Real', 'Santarém'\n ],\n states: [\n 'Lisboa', 'Porto', 'Braga', 'Aveiro', 'Faro', 'Setúbal', 'Coimbra', 'Leiria',\n 'Viseu', 'Santarém', 'Viana do Castelo', 'Vila Real', 'Évora', 'Beja',\n 'Castelo Branco', 'Guarda', 'Portalegre', 'Bragança', 'Açores', 'Madeira'\n ],\n zipCodePattern: '####-###',\n jobTitles: [\n 'Engenheiro de Software', 'Gestor de Projeto', 'Analista de Dados', 'Gestor de Marketing',\n 'Representante de Vendas', 'Contabilista', 'Gestor de RH', 'Designer', 'Gestor de Operações',\n 'Analista de Negócios', 'Gestor de Produto', 'Administrador de Sistemas'\n ],\n departments: [\n 'Engenharia', 'Marketing', 'Vendas', 'Recursos Humanos', 'Finanças', 'Operações',\n 'Apoio ao Cliente', 'IT', 'Investigação e Desenvolvimento', 'Jurídico', 'Administração'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 300);\n const floor = Random.int(1, 8);\n const door = Random.pick(['A', 'B', 'C', 'D', 'E']);\n return `${street}, ${number}, ${floor}º ${door}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n const part1 = String(Random.int(1000, 9999));\n const part2 = String(Random.int(100, 999));\n return `${part1}-${part2}`;\n },\n\n phoneFormats: [\n '+351 ### ### ###',\n '### ### ###',\n '+351 (###) ### ###',\n '(###) ### ###',\n '9## ### ###',\n '91# ### ###',\n '92# ### ###',\n '93# ### ###',\n '96# ### ###'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.pt', 'outlook.pt', 'hotmail.pt', 'live.pt',\n 'sapo.pt', 'iol.pt', 'netcabo.pt', 'clix.pt', 'aeiou.pt'\n ],\n\n companyNames: [\n 'EDP Energias de Portugal', 'Galp Energia', 'The Navigator Company', 'Jerónimo Martins',\n 'Sonae SGPS', 'NOS SGPS', 'CTT Correios', 'Banco Comercial Português', 'Caixa Geral de Depósitos',\n 'Novo Banco', 'Banco Santander Totta', 'Fidelidade Seguros', 'TAP Air Portugal',\n 'Sumol+Compal', 'Sogrape Vinhos', 'Corticeira Amorim', 'Impresa SGPS', 'Global Match'\n ],\n\n industries: [\n 'Tecnologia', 'Finanças', 'Saúde', 'Educação', 'Retalho',\n 'Manufatura', 'Media', 'Telecomunicações', 'Energia', 'Transportes',\n 'Imobiliário', 'Consultoria', 'Hotelaria', 'Automóvel', 'Aeroespacial'\n ],\n\n catchPhrases: [\n 'Inovar para o futuro', 'O seu sucesso é o nosso negócio', 'Construir o futuro juntos',\n 'Qualidade e confiança', 'Excelência e compromisso', 'Soluções sustentáveis',\n 'Criar valor', 'O seu parceiro de confiança', 'Liderar a mudança'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const el_GR: LocaleDefinition = {\n firstNamesMale: [\n 'Georgios', 'Ioannis', 'Konstantinos', 'Dimitrios', 'Nikolaos', 'Panagiotis', 'Vasileios',\n 'Christos', 'Athanasios', 'Michail', 'Spyridon', 'Andreas', 'Alexandros', 'Stefanos',\n 'Antonios', 'Theodoros', 'Evangelos', 'Ilias', 'Petros', 'Apostolos', 'Anastasios',\n 'Grigorios', 'Charalampos', 'Nikos', 'Kostas', 'Giorgos', 'Yannis', 'Dimitris', 'Marios'\n ],\n firstNamesFemale: [\n 'Maria', 'Eleni', 'Aikaterini', 'Vasiliki', 'Sofia', 'Angeliki', 'Georgia', 'Dimitra',\n 'Konstantina', 'Paraskevi', 'Ioanna', 'Anastasia', 'Christina', 'Styliani', 'Fotini',\n 'Panagiota', 'Despina', 'Katerina', 'Anna', 'Alexandra', 'Irini', 'Nikoletta',\n 'Evangelia', 'Chrysoula', 'Theodora', 'Zoi', 'Antonia', 'Eleftheria', 'Marina'\n ],\n lastNames: [\n 'Papadopoulos', 'Pappas', 'Georgiou', 'Dimitriou', 'Nikolaou', 'Ioannou', 'Konstantinou',\n 'Christodoulou', 'Vasiliou', 'Athanasiou', 'Petrou', 'Andreou', 'Oikonomou', 'Karagiannis',\n 'Angelopoulos', 'Alexandrou', 'Michailidis', 'Georgiadis', 'Papadakis', 'Vlahos',\n 'Papageorgiou', 'Theodorou', 'Nikou', 'Economou', 'Panagiotou', 'Makris', 'Kostopoulos'\n ],\n streets: [\n 'Odos Ermou', 'Leoforos Vasilissis Sofias', 'Odos Panepistimiou', 'Odos Stadiou',\n 'Leoforos Alexandras', 'Odos Akadimias', 'Odos Patision', 'Leoforos Kifisias',\n 'Odos Solonos', 'Odos Athinas', 'Leoforos Mesogeion', 'Odos Voukourestiou',\n 'Plateia Syntagmatos', 'Odos Mitropoleos', 'Leoforos Vouliagmenis'\n ],\n cities: [\n 'Athens', 'Thessaloniki', 'Patras', 'Heraklion', 'Larissa', 'Volos', 'Ioannina',\n 'Chania', 'Chalcis', 'Serres', 'Katerini', 'Kalamata', 'Kavala', 'Rhodes',\n 'Agrinio', 'Trikala', 'Lamia', 'Kozani', 'Drama', 'Veria', 'Corfu', 'Xanthi'\n ],\n states: [\n 'Attica', 'Central Macedonia', 'Crete', 'Thessaly', 'Western Greece', 'Peloponnese',\n 'Epirus', 'Central Greece', 'Eastern Macedonia and Thrace', 'Ionian Islands',\n 'Western Macedonia', 'North Aegean', 'South Aegean', 'Mount Athos'\n ],\n zipCodePattern: '### ##',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n return `${street} ${number}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n const part1 = String(Random.int(100, 999));\n const part2 = String(Random.int(10, 99));\n return `${part1} ${part2}`;\n },\n\n phoneFormats: [\n '+30 2# ### ####',\n '2# ### ####',\n '+30 (2#) ### ####',\n '(2#) ### ####',\n '+30 69# ### ####',\n '69# ### ####',\n '69# ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.gr', 'outlook.gr', 'hotmail.gr', 'live.gr',\n 'otenet.gr', 'forthnet.gr', 'wind.com.gr', 'cosmote.gr', 'vodafone.gr'\n ],\n\n companyNames: [\n 'National Bank of Greece', 'Piraeus Bank', 'Alpha Bank', 'Eurobank Ergasias',\n 'OTE Group', 'OPAP SA', 'Coca-Cola HBC', 'Titan Cement', 'Motor Oil Hellas',\n 'Hellenic Petroleum', 'Jumbo SA', 'Folli Follie', 'Lamda Development',\n 'Aegean Airlines', 'Mytilineos Holdings', 'GEK Terna', 'Ellaktor SA'\n ],\n\n industries: [\n 'Τεχνολογία', 'Χρηματοοικονομικά', 'Υγεία', 'Εκπαίδευση', 'Λιανική',\n 'Κατασκευές', 'ΜΜΕ', 'Τηλεπικοινωνίες', 'Ενέργεια', 'Μεταφορές',\n 'Ακίνητα', 'Συμβουλευτική', 'Ξενοδοχεία', 'Αυτοκινητοβιομηχανία', 'Αεροπορία'\n ],\n\n catchPhrases: [\n 'Καινοτομία για το μέλλον', 'Η επιτυχία σας είναι η δουλειά μας', 'Χτίζουμε το μέλλον μαζί',\n 'Ποιότητα και εμπιστοσύνη', 'Αριστεία και δέσμευση', 'Βιώσιμες λύσεις',\n 'Δημιουργούμε αξία', 'Ο αξιόπιστος συνεργάτης σας', 'Ηγούμαστε της αλλαγής'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const cs_CZ: LocaleDefinition = {\n firstNamesMale: [\n 'Jiří', 'Jan', 'Petr', 'Josef', 'Pavel', 'Martin', 'Tomáš', 'Jaroslav', 'Miroslav',\n 'Zdeněk', 'Václav', 'Milan', 'Michal', 'František', 'David', 'Lukáš', 'Jakub',\n 'Ondřej', 'Filip', 'Stanislav', 'Vojtěch', 'Adam', 'Radek', 'Daniel', 'Marek',\n 'Aleš', 'Roman', 'Ladislav', 'Karel', 'Patrik', 'Dominik', 'Matěj'\n ],\n firstNamesFemale: [\n 'Marie', 'Jana', 'Eva', 'Anna', 'Hana', 'Věra', 'Lenka', 'Alena', 'Petra',\n 'Kateřina', 'Lucie', 'Martina', 'Veronika', 'Jitka', 'Ivana', 'Michaela',\n 'Helena', 'Zuzana', 'Markéta', 'Andrea', 'Monika', 'Barbora', 'Tereza', 'Nikola',\n 'Simona', 'Kristýna', 'Natálie', 'Adéla', 'Eliška', 'Karolína', 'Daniela'\n ],\n lastNames: [\n 'Novák', 'Svoboda', 'Novotný', 'Dvořák', 'Černý', 'Procházka', 'Kučera', 'Veselý',\n 'Horáček', 'Němec', 'Pospíšil', 'Pokorný', 'Hájek', 'Jelínek', 'Král', 'Růžička',\n 'Beneš', 'Fiala', 'Sedláček', 'Doležal', 'Zeman', 'Kolář', 'Navrátil', 'Čermák',\n 'Urban', 'Vaněk', 'Blažek', 'Krejčí', 'Moravec', 'Marek', 'Štěpánek', 'Šimek'\n ],\n streets: [\n 'Václavské náměstí', 'Národní třída', 'Na Příkopě', 'Pařížská ulice', 'Karlova ulice',\n 'Nerudova ulice', 'Revolucní', 'Spálená', 'Vinohradská', 'Jugoslávská', 'Náměstí Míru',\n 'Jungmannova', 'Jindřišská', 'Sokolská', 'Žitná', 'Anglická', 'Italská', 'Rumunská'\n ],\n cities: [\n 'Praha', 'Brno', 'Ostrava', 'Plzeň', 'Liberec', 'Olomouc', 'České Budějovice',\n 'Hradec Králové', 'Ústí nad Labem', 'Pardubice', 'Zlín', 'Havířov', 'Kladno',\n 'Most', 'Opava', 'Frýdek-Místek', 'Jihlava', 'Teplice', 'Karviná', 'Karlovy Vary',\n 'Děčín', 'Chomutov', 'Přerov', 'Jablonec nad Nisou', 'Mladá Boleslav', 'Prostějov'\n ],\n states: [\n 'Hlavní město Praha', 'Středočeský', 'Jihočeský', 'Plzeňský', 'Karlovarský',\n 'Ústecký', 'Liberecký', 'Královéhradecký', 'Pardubický', 'Vysočina',\n 'Jihomoravský', 'Olomoucký', 'Zlínský', 'Moravskoslezský'\n ],\n zipCodePattern: '### ##',\n jobTitles: [\n 'Softwarový inženýr', 'Projektový manažer', 'Datový analytik', 'Marketingový manažer',\n 'Obchodní zástupce', 'Účetní', 'Personalista', 'Designer', 'Provozní manažer',\n 'Business analytik', 'Produktový manažer', 'Správce systému', 'Kontrolor kvality'\n ],\n departments: [\n 'Technický', 'Marketing', 'Prodej', 'Lidské zdroje', 'Finance', 'Provoz',\n 'Zákaznický servis', 'IT', 'Výzkum a vývoj', 'Právní', 'Administrativa'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n return `${street} ${number}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n const part1 = String(Random.int(100, 999));\n const part2 = String(Random.int(10, 99));\n return `${part1} ${part2}`;\n },\n\n phoneFormats: [\n '+420 ### ### ###',\n '### ### ###',\n '+420 (###) ### ###',\n '(###) ### ###',\n '6## ### ###',\n '7## ### ###'\n ],\n\n emailDomains: [\n 'gmail.com', 'seznam.cz', 'email.cz', 'post.cz', 'centrum.cz',\n 'volny.cz', 'atlas.cz', 'iol.cz', 'tiscali.cz', 'outlook.com'\n ],\n\n companyNames: [\n 'Škoda Auto', 'ČEZ Group', 'Agrofert', 'Komerční banka', 'Erste Group',\n 'O2 Czech Republic', 'Česká pojišťovna', 'Plzeňský Prazdroj', 'Fortuna',\n 'Avast Software', 'JetBrains', 'Rohlik.cz', 'Alza.cz', 'Mall.cz',\n 'Czech Airlines', 'České dráhy', 'Pražská energetika'\n ],\n\n industries: [\n 'Technologie', 'Finance', 'Zdravotnictví', 'Vzdělávání', 'Maloobchod',\n 'Výroba', 'Média', 'Telekomunikace', 'Energetika', 'Doprava',\n 'Nemovitosti', 'Poradenství', 'Hotely', 'Automobilový průmysl', 'Letectví'\n ],\n\n catchPhrases: [\n 'Inovace pro budoucnost', 'Váš úspěch je naše věc', 'Budujeme budoucnost společně',\n 'Kvalita a důvěra', 'Excellence a závazek', 'Udržitelná řešení',\n 'Tvoříme hodnotu', 'Váš spolehlivý partner', 'Vedeme změnu'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const de_AT: LocaleDefinition = {\n firstNamesMale: [\n 'Michael', 'Thomas', 'Christian', 'Andreas', 'Stefan', 'Markus', 'Alexander', 'Wolfgang',\n 'Florian', 'Daniel', 'Patrick', 'Mario', 'Manuel', 'Christoph', 'Philipp', 'Matthias',\n 'David', 'Sebastian', 'Lukas', 'Johannes', 'Marcel', 'Dominik', 'Benjamin', 'Tobias',\n 'Simon', 'Martin', 'Peter', 'Franz', 'Josef', 'Maximilian', 'Jakob', 'Felix'\n ],\n firstNamesFemale: [\n 'Anna', 'Julia', 'Sarah', 'Lisa', 'Laura', 'Katharina', 'Marie', 'Sophie', 'Lena',\n 'Magdalena', 'Christina', 'Nina', 'Hannah', 'Stefanie', 'Sandra', 'Daniela', 'Melanie',\n 'Jasmin', 'Verena', 'Elisabeth', 'Andrea', 'Maria', 'Petra', 'Sabine', 'Martina',\n 'Claudia', 'Eva', 'Michaela', 'Karin', 'Susanne', 'Barbara', 'Angelika'\n ],\n lastNames: [\n 'Müller', 'Gruber', 'Wagner', 'Huber', 'Pichler', 'Steiner', 'Moser', 'Mayer',\n 'Berger', 'Hofer', 'Leitner', 'Bauer', 'Schmid', 'Schneider', 'Reiter', 'Fischer',\n 'Weber', 'Maier', 'Schwarz', 'Eder', 'Brunner', 'Lang', 'Hoffmann', 'Binder',\n 'Lechner', 'Wolf', 'Koller', 'Fuchs', 'Haas', 'Wimmer', 'Egger', 'Aigner'\n ],\n streets: [\n 'Hauptstraße', 'Bahnhofstraße', 'Kirchenplatz', 'Marktplatz', 'Dorfstraße', 'Schulstraße',\n 'Wiener Straße', 'Linzer Straße', 'Salzburger Straße', 'Grazer Straße', 'Ringstraße',\n 'Innsbrucker Straße', 'Am Ring', 'Schönbrunner Straße', 'Mariahilfer Straße',\n 'Kärntner Straße', 'Graben', 'Herrengasse', 'Landstraße', 'Favoritenstraße'\n ],\n cities: [\n 'Wien', 'Graz', 'Linz', 'Salzburg', 'Innsbruck', 'Klagenfurt', 'Villach', 'Wels',\n 'Sankt Pölten', 'Dornbirn', 'Steyr', 'Wiener Neustadt', 'Feldkirch', 'Bregenz',\n 'Leonding', 'Klosterneuburg', 'Baden', 'Wolfsberg', 'Leoben', 'Krems', 'Traun',\n 'Amstetten', 'Lustenau', 'Kapfenberg', 'Mödling', 'Hallein', 'Kufstein', 'Traiskirchen'\n ],\n states: [\n 'Wien', 'Niederösterreich', 'Oberösterreich', 'Steiermark', 'Tirol', 'Kärnten',\n 'Salzburg', 'Vorarlberg', 'Burgenland'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Softwareentwickler', 'Projektmanager', 'Datenanalyst', 'Marketingleiter',\n 'Vertriebsmitarbeiter', 'Buchhalter', 'Personalleiter', 'Designer', 'Betriebsleiter',\n 'Business Analyst', 'Produktmanager', 'Systemadministrator', 'Qualitätsingenieur'\n ],\n departments: [\n 'Technik', 'Marketing', 'Vertrieb', 'Personalwesen', 'Finanzen', 'Betrieb',\n 'Kundenservice', 'IT', 'Forschung und Entwicklung', 'Recht', 'Verwaltung'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 150);\n const door = Random.int(1, 30);\n return `${street} ${number}/${door}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+43 (0)# #######',\n '0# #######',\n '+43 (0)## #######',\n '0## #######',\n '+43 (0)### ######',\n '0### ######',\n '06## ######',\n '06## #######',\n '067# #######',\n '068# #######'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.at', 'outlook.at', 'hotmail.at', 'live.at',\n 'aon.at', 'gmx.at', 'chello.at', 'inode.at', 'utanet.at'\n ],\n\n companyNames: [\n 'OMV AG', 'Erste Group Bank', 'Raiffeisen Bank', 'Vienna Insurance Group',\n 'Red Bull GmbH', 'Swarovski', 'Voestalpine', 'Andritz AG', 'Verbund AG',\n 'Austrian Airlines', 'Magna International', 'Lenzing AG', 'Porsche Holding',\n 'Spar Österreich', 'Rewe International', 'Hofer KG', 'Billa AG'\n ],\n\n industries: [\n 'Technologie', 'Finanzen', 'Gesundheitswesen', 'Bildung', 'Einzelhandel',\n 'Fertigung', 'Medien', 'Telekommunikation', 'Energie', 'Transport',\n 'Immobilien', 'Beratung', 'Gastgewerbe', 'Automobil', 'Luftfahrt'\n ],\n\n catchPhrases: [\n 'Innovation für die Zukunft', 'Ihr Erfolg ist unser Geschäft', 'Gemeinsam die Zukunft gestalten',\n 'Qualität und Vertrauen', 'Exzellenz und Engagement', 'Nachhaltige Lösungen',\n 'Wert schaffen', 'Ihr verlässlicher Partner', 'Veränderung vorantreiben'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const de_CH: LocaleDefinition = {\n firstNamesMale: [\n 'David', 'Luca', 'Noah', 'Leon', 'Nico', 'Jan', 'Marco', 'Lukas', 'Jonas', 'Sandro',\n 'Thomas', 'Michael', 'Daniel', 'Christian', 'Stefan', 'Patrick', 'Andreas', 'Markus',\n 'Peter', 'Martin', 'Marcel', 'Simon', 'Fabian', 'Tobias', 'Raphael', 'Samuel',\n 'Benjamin', 'Adrian', 'Florian', 'Dominik', 'Matthias', 'Alexander'\n ],\n firstNamesFemale: [\n 'Mia', 'Emma', 'Laura', 'Lara', 'Sophie', 'Anna', 'Julia', 'Sara', 'Lea', 'Nina',\n 'Lisa', 'Sarah', 'Melanie', 'Michelle', 'Jennifer', 'Nadine', 'Nicole', 'Stefanie',\n 'Andrea', 'Sandra', 'Claudia', 'Martina', 'Jasmin', 'Vanessa', 'Sabrina', 'Anja',\n 'Elena', 'Chiara', 'Alina', 'Elisa', 'Noemi', 'Ladina'\n ],\n lastNames: [\n 'Müller', 'Meier', 'Schmid', 'Keller', 'Weber', 'Huber', 'Schneider', 'Meyer',\n 'Steiner', 'Fischer', 'Gerber', 'Brunner', 'Baumann', 'Frei', 'Zimmermann', 'Moser',\n 'Widmer', 'Wyss', 'Graf', 'Roth', 'Hofmann', 'Lehmann', 'Bühler', 'Hofer',\n 'Suter', 'Kuhn', 'Koch', 'Blanc', 'Kohler', 'Wenger', 'Lang', 'Kaufmann'\n ],\n streets: [\n 'Bahnhofstrasse', 'Hauptstrasse', 'Dorfstrasse', 'Bergstrasse', 'Kirchgasse',\n 'Schulhausstrasse', 'Poststrasse', 'Seestrasse', 'Talstrasse', 'Gartenstrasse',\n 'Waldhofstrasse', 'Industriestrasse', 'Rosenweg', 'Lindenweg', 'Parkstrasse',\n 'Feldweg', 'Mühlestrasse', 'Brunnenweg', 'Ringstrasse', 'Zürcherstrasse'\n ],\n cities: [\n 'Zürich', 'Genf', 'Basel', 'Lausanne', 'Bern', 'Winterthur', 'Luzern', 'St. Gallen',\n 'Lugano', 'Biel', 'Thun', 'Köniz', 'La Chaux-de-Fonds', 'Schaffhausen', 'Fribourg',\n 'Chur', 'Vernier', 'Neuchâtel', 'Uster', 'Sion', 'Emmen', 'Zug', 'Yverdon-les-Bains',\n 'Kriens', 'Rapperswil-Jona', 'Dübendorf', 'Montreux', 'Frauenfeld', 'Dietikon', 'Wil'\n ],\n states: [\n 'Zürich', 'Bern', 'Luzern', 'Uri', 'Schwyz', 'Obwalden', 'Nidwalden', 'Glarus',\n 'Zug', 'Fribourg', 'Solothurn', 'Basel-Stadt', 'Basel-Landschaft', 'Schaffhausen',\n 'Appenzell Ausserrhoden', 'Appenzell Innerrhoden', 'St. Gallen', 'Graubünden',\n 'Aargau', 'Thurgau', 'Ticino', 'Vaud', 'Valais', 'Neuchâtel', 'Genève', 'Jura'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Softwareentwickler', 'Projektleiter', 'Datenanalyst', 'Marketingleiter',\n 'Verkäufer', 'Buchhalter', 'Personalleiter', 'Designer', 'Betriebsleiter',\n 'Business Analyst', 'Produktmanager', 'Systemadministrator', 'Qualitätsingenieur'\n ],\n departments: [\n 'Technik', 'Marketing', 'Verkauf', 'Personal', 'Finanzen', 'Betrieb',\n 'Kundendienst', 'IT', 'Forschung und Entwicklung', 'Recht', 'Verwaltung'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 150);\n return `${street} ${number}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+41 (0)## ### ## ##',\n '0## ### ## ##',\n '+41 (0)## ### ## ##',\n '0## ### ## ##',\n '07# ### ## ##',\n '075 ### ## ##',\n '076 ### ## ##',\n '077 ### ## ##',\n '078 ### ## ##',\n '079 ### ## ##'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.ch', 'outlook.ch', 'hotmail.ch', 'bluewin.ch',\n 'swissonline.ch', 'sunrise.ch', 'quickline.ch', 'gmx.ch', 'mail.ch'\n ],\n\n companyNames: [\n 'Nestlé SA', 'Roche Holding', 'Novartis AG', 'UBS Group', 'Credit Suisse',\n 'Zurich Insurance', 'ABB Ltd', 'Glencore International', 'Trafigura',\n 'Mercuria Energy', 'Swiss Re', 'Richemont', 'Swatch Group',\n 'Holcim Group', 'LafargeHolcim', 'Sika AG', 'Georg Fischer', 'Schindler Group'\n ],\n\n industries: [\n 'Technologie', 'Finanzen', 'Gesundheitswesen', 'Bildung', 'Einzelhandel',\n 'Fertigung', 'Medien', 'Telekommunikation', 'Energie', 'Transport',\n 'Immobilien', 'Beratung', 'Gastgewerbe', 'Automobil', 'Luftfahrt'\n ],\n\n catchPhrases: [\n 'Innovation für die Zukunft', 'Ihr Erfolg ist unser Geschäft', 'Gemeinsam die Zukunft gestalten',\n 'Schweizer Qualität und Präzision', 'Vertrauen und Zuverlässigkeit', 'Nachhaltige Lösungen',\n 'Exzellenz in jedem Detail', 'Ihr vertrauenswürdiger Partner', 'Fortschritt durch Innovation'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const nl_BE: LocaleDefinition = {\n firstNamesMale: [\n 'Lars', 'Thomas', 'Lucas', 'Maxime', 'Nathan', 'Louis', 'Noah', 'Arthur', 'Victor',\n 'Adam', 'Mohamed', 'Nicolas', 'Alexander', 'Simon', 'Mathias', 'Robbe', 'Wout',\n 'Jan', 'Pieter', 'Koen', 'Bart', 'Tom', 'Kevin', 'David', 'Michael', 'Johan',\n 'Marc', 'Steven', 'Peter', 'Filip', 'Stijn', 'Bram'\n ],\n firstNamesFemale: [\n 'Emma', 'Louise', 'Marie', 'Anna', 'Laura', 'Lisa', 'Julie', 'Noor', 'Lotte',\n 'Sara', 'Camille', 'Charlotte', 'Ella', 'Nina', 'Fien', 'Lena', 'Amber', 'Luna',\n 'Sarah', 'Sophie', 'Kim', 'Elke', 'Sofie', 'Eline', 'Jana', 'Karen', 'Nathalie',\n 'Katrien', 'Ann', 'Veerle', 'Ellen', 'Inge'\n ],\n lastNames: [\n 'Peeters', 'Janssens', 'Maes', 'Jacobs', 'Mertens', 'Willems', 'Claes', 'Goossens',\n 'Wouters', 'De Smet', 'De Vos', 'Hermans', 'Van de Velde', 'Vermeulen', 'Dubois',\n 'Lambert', 'Laurent', 'Simon', 'Leroy', 'Dupont', 'Martens', 'De Wilde', 'Hendrickx',\n 'Michiels', 'Van den Berg', 'Pauwels', 'Stevens', 'De Clercq', 'Coppens', 'Bogaert'\n ],\n streets: [\n 'Grote Markt', 'Kerkstraat', 'Dorpsstraat', 'Stationsstraat', 'Hoogstraat',\n 'Molenstraat', 'Nieuwstraat', 'Brugsestraat', 'Antwerpsestraat', 'Brusselsestraat',\n 'Koning Albertlaan', 'Koningin Elisabethlaan', 'Leopold II-laan', 'Mechelsesteenweg',\n 'Turnhoutsebaan', 'Leuvenselaan', 'Gentsebaan', 'Gentsestraat', 'Markt', 'Burg'\n ],\n cities: [\n 'Brussel', 'Antwerpen', 'Gent', 'Charleroi', 'Luik', 'Brugge', 'Namen', 'Leuven',\n 'Bergen', 'Mechelen', 'Aalst', 'La Louvière', 'Kortrijk', 'Hasselt', 'Sint-Niklaas',\n 'Oostende', 'Doornik', 'Genk', 'Seraing', 'Roeselare', 'Moeskroen', 'Verviers',\n 'Dendermonde', 'Beringen', 'Turnhout', 'Dilbeek', 'Heist-op-den-Berg', 'Vilvoorde'\n ],\n states: [\n 'Antwerpen', 'Limburg', 'Oost-Vlaanderen', 'West-Vlaanderen', 'Vlaams-Brabant',\n 'Waals-Brabant', 'Henegouwen', 'Luik', 'Luxemburg', 'Namen', 'Brussels Hoofdstedelijk Gewest'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Software Engineer', 'Projectmanager', 'Data Analist', 'Marketingmanager',\n 'Verkoopvertegenwoordiger', 'Boekhouder', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analist', 'Productmanager', 'Systeembeheerder', 'Kwaliteitsingenieur'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Verkoop', 'Human Resources', 'Financiën', 'Operaties',\n 'Klantenservice', 'IT', 'Onderzoek en Ontwikkeling', 'Juridisch', 'Administratie'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 300);\n const bus = Random.boolean() ? ` bus ${Random.int(1, 50)}` : '';\n return `${street} ${number}${bus}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+32 # ### ## ##',\n '0# ### ## ##',\n '+32 (0)# ### ## ##',\n '04## ## ## ##',\n '047# ## ## ##',\n '048# ## ## ##',\n '049# ## ## ##'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.be', 'outlook.be', 'hotmail.be', 'live.be',\n 'telenet.be', 'proximus.be', 'skynet.be', 'pandora.be', 'belgacom.net'\n ],\n\n companyNames: [\n 'Anheuser-Busch InBev', 'KBC Group', 'Belfius Bank', 'Ageas SA', 'Umicore SA',\n 'Solvay SA', 'Groupe Bruxelles Lambert', 'Ackermans & van Haaren', 'Colruyt NV',\n 'Delhaize Group', 'Galeria Inno', 'Telenet Group', 'Proximus', 'bpost',\n 'Brussels Airlines', 'Cofinimmo', 'Warehouses De Pauw', 'Aperam SA'\n ],\n\n industries: [\n 'Technologie', 'Financiën', 'Gezondheidszorg', 'Onderwijs', 'Detailhandel',\n 'Productie', 'Media', 'Telecommunicatie', 'Energie', 'Transport',\n 'Onroerend goed', 'Consultancy', 'Horeca', 'Automotive', 'Luchtvaart'\n ],\n\n catchPhrases: [\n 'Innoveren voor de toekomst', 'Uw succes is onze zaak', 'Samen de toekomst bouwen',\n 'Kwaliteit en vertrouwen', 'Uitstekendheid en toewijding', 'Duurzame oplossingen',\n 'Waarde creëren', 'Uw vertrouwde partner', 'Verandering leiden'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const hu_HU: LocaleDefinition = {\n firstNamesMale: [\n 'László', 'István', 'József', 'János', 'Zoltán', 'Sándor', 'Gábor', 'Ferenc',\n 'Péter', 'Attila', 'Tamás', 'András', 'Balázs', 'Máté', 'Dávid', 'Ádám',\n 'Levente', 'Bence', 'Márk', 'Dominik', 'Norbert', 'Kristóf', 'Richárd', 'Viktor',\n 'Gyula', 'Imre', 'Csaba', 'Tibor', 'Mihály', 'Zsolt', 'Krisztián', 'Róbert'\n ],\n firstNamesFemale: [\n 'Mária', 'Erzsébet', 'Ilona', 'Katalin', 'Éva', 'Anna', 'Margit', 'Judit',\n 'Ágnes', 'Eszter', 'Andrea', 'Krisztina', 'Erika', 'Mónika', 'Zsuzsanna', 'Réka',\n 'Petra', 'Laura', 'Zsófia', 'Lilla', 'Dóra', 'Boglárka', 'Fanni', 'Viktória',\n 'Renáta', 'Nikolett', 'Tímea', 'Beatrix', 'Anita', 'Noémi', 'Emese', 'Orsolya'\n ],\n lastNames: [\n 'Nagy', 'Kovács', 'Tóth', 'Szabó', 'Horváth', 'Varga', 'Kiss', 'Molnár',\n 'Németh', 'Farkas', 'Balogh', 'Papp', 'Takács', 'Juhász', 'Lakatos', 'Mészáros',\n 'Oláh', 'Simon', 'Rácz', 'Fekete', 'Szűcs', 'Kocsis', 'Szilágyi', 'Török',\n 'Fehér', 'Balázs', 'Gál', 'Vincze', 'Szalai', 'Máté', 'Kozma', 'Hegedűs'\n ],\n streets: [\n 'Fő utca', 'Kossuth utca', 'Petőfi utca', 'Rákóczi út', 'Dózsa György út',\n 'Árpád utca', 'Vörösmarty utca', 'Bem utca', 'Ady Endre utca', 'József Attila utca',\n 'Mátyás király utca', 'Széchenyi utca', 'Deák Ferenc utca', 'Hősök tere',\n 'Andrássy út', 'Váci utca', 'Dohány utca', 'Nagykörút', 'Baross utca', 'Üllői út'\n ],\n cities: [\n 'Budapest', 'Debrecen', 'Szeged', 'Miskolc', 'Pécs', 'Győr', 'Nyíregyháza', 'Kecskemét',\n 'Székesfehérvár', 'Szombathely', 'Szolnok', 'Tatabánya', 'Kaposvár', 'Érd', 'Veszprém',\n 'Békéscsaba', 'Zalaegerszeg', 'Sopron', 'Eger', 'Nagykanizsa', 'Dunakeszi', 'Hódmezővásárhely',\n 'Szentendre', 'Cegléd', 'Vác', 'Gyula', 'Baja', 'Ózd', 'Salgótarján', 'Mosonmagyaróvár'\n ],\n states: [\n 'Budapest', 'Pest', 'Fejér', 'Komárom-Esztergom', 'Veszprém', 'Győr-Moson-Sopron',\n 'Vas', 'Zala', 'Baranya', 'Somogy', 'Tolna', 'Borsod-Abaúj-Zemplén', 'Heves',\n 'Nógrád', 'Hajdú-Bihar', 'Jász-Nagykun-Szolnok', 'Szabolcs-Szatmár-Bereg',\n 'Bács-Kiskun', 'Békés', 'Csongrád-Csanád'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Szoftverfejlesztő', 'Projektvezető', 'Adatelemző', 'Marketing menedzser',\n 'Értékesítési képviselő', 'Könyvelő', 'HR vezető', 'Tervező', 'Üzemeltetési vezető',\n 'Üzleti elemző', 'Termékmenedzser', 'Rendszergazda', 'Minőségbiztosítási mérnök'\n ],\n departments: [\n 'Mérnöki', 'Marketing', 'Értékesítés', 'Humán erőforrás', 'Pénzügy', 'Üzemeltetés',\n 'Ügyfélszolgálat', 'IT', 'Kutatás-fejlesztés', 'Jogi', 'Adminisztráció'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n // Hungarian name format: Last First\n return `${lastName} ${firstName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n return `${zipCode} ${city}, ${street} ${number}.`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+36 (##) ###-####',\n '(##) ###-####',\n '+36 ## ###-####',\n '## ###-####',\n '+36 (20) ###-####',\n '(20) ###-####',\n '(30) ###-####',\n '(70) ###-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.hu', 'outlook.hu', 'hotmail.hu', 'live.hu',\n 'freemail.hu', 'citromail.hu', 'mail.hu', 'indamail.hu', 'vipmail.hu'\n ],\n\n companyNames: [\n 'MOL Nyrt', 'OTP Bank', 'Richter Gedeon', 'Magyar Telekom', 'MVM Zrt',\n 'FHB Bank', 'Graphisoft Park', 'Wizz Air', '4iG Nyrt', 'Masterplast',\n 'Opus Global', 'Rába Nyrt', 'Zwack Unicum', 'Pick Szeged', 'Duna Autó',\n 'CIG Pannonia', 'Budapest Bank', 'K&H Bank', 'Erste Bank Hungary'\n ],\n\n industries: [\n 'Technológia', 'Pénzügy', 'Egészségügy', 'Oktatás', 'Kiskereskedelem',\n 'Gyártás', 'Média', 'Távközlés', 'Energia', 'Szállítás',\n 'Ingatlan', 'Tanácsadás', 'Szálloda', 'Autóipar', 'Repülés'\n ],\n\n catchPhrases: [\n 'Innováció a jövőért', 'Az ön sikere a mi dolgunk', 'Közösen építjük a jövőt',\n 'Minőség és megbízhatóság', 'Kiválóság és elkötelezettség', 'Fenntartható megoldások',\n 'Értéket teremtünk', 'Az ön megbízható partnere', 'Vezetjük a változást'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ro_RO: LocaleDefinition = {\n firstNamesMale: [\n 'Ion', 'Gheorghe', 'Nicolae', 'Vasile', 'Constantin', 'Andrei', 'Mihai', 'Alexandru',\n 'Adrian', 'Cristian', 'Florin', 'Marian', 'Daniel', 'Ionuț', 'Gabriel', 'Bogdan',\n 'Ștefan', 'Vlad', 'Radu', 'George', 'David', 'Cosmin', 'Dragoș', 'Ciprian',\n 'Sorin', 'Dan', 'Viorel', 'Petru', 'Dumitru', 'Emil', 'Liviu', 'Ovidiu'\n ],\n firstNamesFemale: [\n 'Maria', 'Elena', 'Ana', 'Ioana', 'Andreea', 'Alexandra', 'Mihaela', 'Cristina',\n 'Gabriela', 'Alina', 'Daniela', 'Monica', 'Simona', 'Diana', 'Raluca', 'Adriana',\n 'Laura', 'Nicoleta', 'Corina', 'Carmen', 'Oana', 'Roxana', 'Valentina', 'Camelia',\n 'Florentina', 'Georgeta', 'Mariana', 'Luminița', 'Silvia', 'Anca', 'Magdalena', 'Irina'\n ],\n lastNames: [\n 'Popescu', 'Ionescu', 'Popa', 'Radu', 'Dumitrescu', 'Georgescu', 'Stan', 'Stoica',\n 'Constantin', 'Munteanu', 'Dima', 'Vasile', 'Barbu', 'Preda', 'Mocanu', 'Ilie',\n 'Mihai', 'Dobre', 'Andrei', 'Stanciu', 'Tudor', 'Enache', 'Ștefan', 'Marin',\n 'Niculescu', 'Drăghici', 'Alexandru', 'Matei', 'Sandu', 'Cristea', 'Oprea', 'Munteanu'\n ],\n streets: [\n 'Strada Independenței', 'Bulevardul Unirii', 'Strada Republicii', 'Calea Victoriei',\n 'Strada Libertății', 'Bulevardul Carol I', 'Strada Mihai Viteazu', 'Strada Aviatorilor',\n 'Bulevardul Magheru', 'Strada Dorobanți', 'Calea Moșilor', 'Strada Lipscani',\n 'Bulevardul Brâncoveanu', 'Strada Obor', 'Calea Grivița', 'Bulevardul Pache Protopopescu'\n ],\n cities: [\n 'București', 'Cluj-Napoca', 'Timișoara', 'Iași', 'Constanța', 'Craiova', 'Brașov',\n 'Galați', 'Ploiești', 'Oradea', 'Brăila', 'Arad', 'Pitești', 'Sibiu', 'Bacău',\n 'Târgu Mureș', 'Baia Mare', 'Buzău', 'Botoșani', 'Satu Mare', 'Râmnicu Vâlcea',\n 'Suceava', 'Piatra Neamț', 'Drobeta-Turnu Severin', 'Focșani', 'Târgoviște', 'Tulcea'\n ],\n states: [\n 'București', 'Cluj', 'Timiș', 'Iași', 'Constanța', 'Dolj', 'Brașov', 'Galați',\n 'Prahova', 'Bihor', 'Brăila', 'Arad', 'Argeș', 'Sibiu', 'Bacău', 'Mureș',\n 'Maramureș', 'Buzău', 'Botoșani', 'Satu Mare', 'Vâlcea', 'Suceava', 'Neamț',\n 'Mehedinți', 'Vrancea', 'Dâmbovița', 'Tulcea', 'Bistrița-Năsăud', 'Caraș-Severin'\n ],\n zipCodePattern: '######',\n jobTitles: [\n 'Inginer Software', 'Manager de Proiect', 'Analist de Date', 'Manager Marketing',\n 'Reprezentant Vânzări', 'Contabil', 'Manager HR', 'Designer', 'Manager Operațiuni',\n 'Analist de Afaceri', 'Manager Produs', 'Administrator Sistem', 'Inginer Calitate'\n ],\n departments: [\n 'Inginerie', 'Marketing', 'Vânzări', 'Resurse Umane', 'Finanțe', 'Operațiuni',\n 'Servicii Clienți', 'IT', 'Cercetare și Dezvoltare', 'Juridic', 'Administrație'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n const bloc = Random.pick(['A', 'B', 'C', 'D']);\n const scara = Random.int(1, 4);\n const ap = Random.int(1, 50);\n return `${street} nr. ${number}, Bl. ${bloc}, Sc. ${scara}, Ap. ${ap}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(100000, 999999));\n },\n\n phoneFormats: [\n '+40 ### ### ####',\n '0### ### ####',\n '+40 (0)### ### ####',\n '07## ### ####',\n '071# ### ####',\n '072# ### ####',\n '073# ### ####',\n '074# ### ####',\n '075# ### ####',\n '076# ### ####',\n '077# ### ####',\n '078# ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.ro', 'outlook.ro', 'hotmail.ro', 'live.ro',\n 'yahoo.com', 'gmx.com', 'aol.com', 'icloud.com', 'protonmail.com'\n ],\n\n companyNames: [\n 'OMV Petrom', 'Romgaz', 'Banca Transilvania', 'BRD Groupe Société Générale',\n 'Digi Communications', 'Orange România', 'Vodafone România', 'Telekom România',\n 'Hidroelectrica', 'Nuclearelectrica', 'Transgaz', 'Transelectrica',\n 'Rompetrol Rafinare', 'OMV Petrom Rafinare', 'Aeroporturi București',\n 'CFR Călători', 'CFR Marfă', 'Poșta Română', 'Electrica SA'\n ],\n\n industries: [\n 'Tehnologie', 'Finanțe', 'Sănătate', 'Educație', 'Comerț cu amănuntul',\n 'Producție', 'Media', 'Telecomunicații', 'Energie', 'Transport',\n 'Imobiliare', 'Consultanță', 'Hoteluri', 'Automobile', 'Aviație'\n ],\n\n catchPhrases: [\n 'Inovație pentru viitor', 'Succesul dumneavoastră este afacerea noastră', 'Construim viitorul împreună',\n 'Calitate și încredere', 'Excelență și angajament', 'Soluții durabile',\n 'Creăm valoare', 'Partenerul dumneavoastră de încredere', 'Conducem schimbarea'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ar_AE: LocaleDefinition = {\n firstNamesMale: [\n 'Mohammed', 'Ahmed', 'Abdullah', 'Sultan', 'Khalid', 'Omar', 'Ali', 'Hassan',\n 'Saeed', 'Rashid', 'Hamad', 'Majid', 'Fahad', 'Nasser', 'Faisal', 'Yousef',\n 'Ibrahim', 'Abdulrahman', 'Saud', 'Mansour', 'Talal', 'Waleed', 'Tariq', 'Zayed',\n 'Rashed', 'Hamdan', 'Maktoum', 'Obaid', 'Salem', 'Marwan', 'Jassim', 'Nawaf'\n ],\n firstNamesFemale: [\n 'Fatima', 'Aisha', 'Mariam', 'Noura', 'Sara', 'Hessa', 'Latifa', 'Shamsa',\n 'Moza', 'Sheikha', 'Amna', 'Salama', 'Meitha', 'Hind', 'Maryam', 'Shamma',\n 'Reem', 'Layla', 'Dana', 'Khawla', 'Budoor', 'Jawaher', 'Maitha', 'Mouza',\n 'Shaikha', 'Alia', 'Asma', 'Hanan', 'Nada', 'Noor', 'Wadha', 'Mahra'\n ],\n lastNames: [\n 'Al Maktoum', 'Al Nahyan', 'Al Qasimi', 'Al Sharqi', 'Al Nuaimi', 'Al Mualla',\n 'Al Ali', 'Al Mansouri', 'Al Shamsi', 'Al Ketbi', 'Al Kaabi', 'Al Dhaheri',\n 'Al Mazrouei', 'Al Hamadi', 'Al Suwaidi', 'Al Zaabi', 'Al Marzouqi', 'Al Ahbabi',\n 'Al Mansoori', 'Al Blooshi', 'Al Muhairi', 'Al Shehhi', 'Al Hashimi', 'Al Zarooni',\n 'Al Falasi', 'Al Ameri', 'Al Kindi', 'Al Marri', 'Al Yasi', 'Al Mheiri'\n ],\n streets: [\n 'Sheikh Zayed Road', 'Khalifa Street', 'Hamdan Street', 'Al Wasl Road', 'Jumeirah Road',\n 'Al Khaleej Road', 'Airport Road', 'Al Rigga Road', 'Al Maktoum Road', 'Baniyas Road',\n 'Sheikh Mohammed Bin Rashid Boulevard', 'Al Salam Street', 'Al Ain Road', 'Corniche Road',\n 'Sheikh Rashid Road', 'Al Ittihad Road', 'Al Dhafra Street', 'Marina Walk', 'The Walk JBR'\n ],\n cities: [\n 'Dubai', 'Abu Dhabi', 'Sharjah', 'Al Ain', 'Ajman', 'Ras Al Khaimah', 'Fujairah',\n 'Umm Al Quwain', 'Khor Fakkan', 'Dibba', 'Kalba', 'Jebel Ali', 'Al Dhaid',\n 'Madinat Zayed', 'Liwa', 'Ghayathi', 'Ruwais', 'Al Mirfa', 'Mezaira'\n ],\n states: [\n 'Dubai', 'Abu Dhabi', 'Sharjah', 'Ajman', 'Umm Al Quwain', 'Ras Al Khaimah', 'Fujairah'\n ],\n zipCodePattern: '',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const building = Random.pick(['Tower', 'Building', 'Plaza', 'Centre']);\n const buildingName = Random.pick(['Al Barsha', 'Marina', 'Downtown', 'Business Bay']);\n const office = Random.int(100, 999);\n return `Office ${office}, ${buildingName} ${building}, ${street}, ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return '';\n },\n\n phoneFormats: [\n '+971 ## ### ####',\n '0## ### ####',\n '+971 (0)## ### ####',\n '05# ### ####',\n '050 ### ####',\n '052 ### ####',\n '054 ### ####',\n '056 ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.ae', 'outlook.com', 'hotmail.com',\n 'emirates.net.ae', 'etisalat.ae', 'du.ae', 'mail.ae',\n 'icloud.com', 'protonmail.com'\n ],\n\n companyNames: [\n 'Emirates Group', 'Etisalat', 'Emirates NBD', 'ADNOC', 'Dubai World',\n 'Emaar Properties', 'Mubadala Investment', 'DP World', 'Flydubai',\n 'Dubai Islamic Bank', 'First Abu Dhabi Bank', 'Chalhoub Group',\n 'Majid Al Futtaim', 'Al Futtaim Group', 'Jumeirah Group'\n ],\n\n industries: [\n 'التكنولوجيا', 'المالية', 'الرعاية الصحية', 'التعليم', 'التجزئة',\n 'التصنيع', 'الإعلام', 'الاتصالات', 'الطاقة', 'النقل',\n 'العقارات', 'الاستشارات', 'الضيافة', 'السيارات', 'الطيران'\n ],\n\n catchPhrases: [\n 'الابتكار للمستقبل', 'نجاحكم هو عملنا', 'نبني المستقبل معاً',\n 'الجودة والثقة', 'التميز والالتزام', 'حلول مستدامة',\n 'نخلق القيمة', 'شريككم الموثوق', 'نقود التغيير'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ar_SA: LocaleDefinition = {\n firstNamesMale: [\n 'Mohammed', 'Abdullah', 'Fahd', 'Khalid', 'Faisal', 'Mansour', 'Saud', 'Abdulaziz',\n 'Turki', 'Sultan', 'Salman', 'Nasser', 'Talal', 'Bandar', 'Mishal', 'Abdulrahman',\n 'Yousef', 'Ahmed', 'Ali', 'Omar', 'Hassan', 'Saad', 'Faris', 'Rakan', 'Nawaf',\n 'Majed', 'Hamad', 'Waleed', 'Tariq', 'Rashid', 'Ibrahim', 'Ziyad'\n ],\n firstNamesFemale: [\n 'Noura', 'Sarah', 'Maha', 'Hessa', 'Lulwa', 'Latifa', 'Abeer', 'Reem', 'Hind',\n 'Jawaher', 'Mona', 'Amal', 'Deema', 'Lama', 'Nada', 'Hanan', 'Ghada', 'Basma',\n 'Arwa', 'Reema', 'Maryam', 'Fatima', 'Nora', 'Layla', 'Dana', 'Sama', 'Rana',\n 'Asma', 'Raghad', 'Wafa', 'Anoud', 'Atheer'\n ],\n lastNames: [\n 'Al Saud', 'Al Otaibi', 'Al Ghamdi', 'Al Zahrani', 'Al Harbi', 'Al Qahtani',\n 'Al Shehri', 'Al Malki', 'Al Dosari', 'Al Mutairi', 'Al Rashid', 'Al Saeed',\n 'Al Mansour', 'Al Juhani', 'Al Anazi', 'Al Shamrani', 'Al Subai', 'Al Yami',\n 'Al Faisal', 'Al Turki', 'Al Khalifa', 'Al Abdulaziz', 'Al Thani', 'Al Dawsari',\n 'Al Shaalan', 'Al Balawi', 'Al Ahmadi', 'Al Sulaiman', 'Al Mubarak', 'Al Hamad'\n ],\n streets: [\n 'King Fahd Road', 'King Abdullah Road', 'King Abdulaziz Road', 'Olaya Street',\n 'Tahlia Street', 'Madinah Road', 'Makkah Road', 'Al Urubah Road', 'Prince Mohammed Road',\n 'King Khalid Road', 'Al Malaz Street', 'Al Imam Saud Road', 'Al Amir Sultan Road',\n 'Corniche Road', 'Airport Road', 'Al Kharj Road', 'Riyadh Park Road', 'King Saud Road'\n ],\n cities: [\n 'Riyadh', 'Jeddah', 'Makkah', 'Madinah', 'Dammam', 'Khobar', 'Dhahran', 'Jubail',\n 'Tabuk', 'Abha', 'Khamis Mushait', 'Buraidah', 'Hail', 'Najran', 'Yanbu', 'Jazan',\n 'Al Ahsa', 'Taif', 'Qatif', 'Al Kharj', 'Ras Tanura', 'Hafar Al Batin', 'Arar', 'Sakaka'\n ],\n states: [\n 'Riyadh', 'Makkah', 'Madinah', 'Eastern Province', 'Asir', 'Tabuk', 'Qassim',\n 'Hail', 'Northern Borders', 'Jazan', 'Najran', 'Al Bahah', 'Al Jouf'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const district = Random.pick(['Al Malaz', 'Al Olaya', 'Al Naseem', 'Al Salamah', 'Al Rawdah']);\n const buildingNumber = Random.int(1000, 9999);\n return `Building ${buildingNumber}, ${district}, ${street}, ${city} ${zipCode}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+966 ## ### ####',\n '0## ### ####',\n '+966 (0)## ### ####',\n '05# ### ####',\n '050 ### ####',\n '053 ### ####',\n '054 ### ####',\n '055 ### ####',\n '056 ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com.sa', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'stc.net.sa', 'mobily.com.sa'\n ],\n\n companyNames: [\n 'Saudi Aramco', 'SABIC', 'Al Rajhi Bank', 'STC', 'Samba Financial Group',\n 'Riyad Bank', 'Saudi Electricity Company', 'ACWA Power', 'Maaden',\n 'Jarir Marketing', 'Abdullah Al Othaim Markets', 'Bin Dawood',\n 'Almarai Company', 'Savola Group', 'Zain KSA'\n ],\n\n industries: [\n 'التكنولوجيا', 'المالية', 'الرعاية الصحية', 'التعليم', 'التجزئة',\n 'التصنيع', 'الإعلام', 'الاتصالات', 'الطاقة', 'النقل',\n 'العقارات', 'الاستشارات', 'الضيافة', 'السيارات', 'الطيران'\n ],\n\n catchPhrases: [\n 'الابتكار للمستقبل', 'نجاحكم هو عملنا', 'نبني المستقبل معاً',\n 'الجودة والثقة', 'التميز والالتزام', 'حلول مستدامة',\n 'نخلق القيمة', 'شريككم الموثوق', 'نقود التغيير'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ar_EG: LocaleDefinition = {\n firstNamesMale: [\n 'Mohamed', 'Ahmed', 'Mahmoud', 'Ali', 'Omar', 'Youssef', 'Hassan', 'Amr',\n 'Khaled', 'Ibrahim', 'Mustafa', 'Osama', 'Tamer', 'Hossam', 'Karim', 'Tarek',\n 'Sherif', 'Adel', 'Walid', 'Ashraf', 'Magdy', 'Hazem', 'Hany', 'Ayman',\n 'Ramy', 'Wael', 'Essam', 'Medhat', 'Samir', 'Fathy', 'Samy', 'Nabil'\n ],\n firstNamesFemale: [\n 'Fatma', 'Mona', 'Nour', 'Mariam', 'Sara', 'Nada', 'Heba', 'Aya', 'Salma',\n 'Yasmin', 'Rana', 'Layla', 'Hala', 'Dina', 'Rania', 'Amira', 'Eman', 'Noha',\n 'Sahar', 'Nagwa', 'Manal', 'Somaya', 'Ghada', 'Amal', 'Nawal', 'Hanan',\n 'Maha', 'Samira', 'Hanaa', 'Rabab', 'Soha', 'Menna'\n ],\n lastNames: [\n 'Mohamed', 'Ahmed', 'Ali', 'Hassan', 'Ibrahim', 'Mahmoud', 'Youssef', 'Abdel Rahman',\n 'Abdel Aziz', 'Abdel Fattah', 'Abdel Hamid', 'El Sayed', 'El Shahat', 'Khalil',\n 'Mostafa', 'Salah', 'Fouad', 'Rashad', 'Farouk', 'Shawky', 'Refaat', 'Abdallah',\n 'El Sherbiny', 'El Maghraby', 'El Masry', 'El Naggar', 'El Sisi', 'El Din', 'Mansour'\n ],\n streets: [\n 'Tahrir Street', 'Ramses Street', 'Salah Salem Street', 'Mohamed Farid Street',\n 'Qasr El Nil Street', 'Talaat Harb Street', 'El Haram Street', 'Nasr Road',\n 'Makram Ebeid Street', 'Mostafa El Nahhas Street', 'El Geish Street', 'El Nozha Street',\n 'Abbas El Akkad Street', 'Ahmed Orabi Street', 'Port Said Street', 'October Bridge'\n ],\n cities: [\n 'Cairo', 'Alexandria', 'Giza', 'Shubra El Kheima', 'Port Said', 'Suez', 'Luxor',\n 'Mansoura', 'El Mahalla El Kubra', 'Tanta', 'Asyut', 'Ismailia', 'Faiyum', 'Zagazig',\n 'Aswan', 'Damietta', 'Damanhur', 'Minya', 'Beni Suef', 'Qena', 'Sohag', 'Hurghada',\n 'Kafr El Sheikh', 'Arish', 'Mallawi', '6th of October City', 'Sharm El Sheikh'\n ],\n states: [\n 'Cairo', 'Alexandria', 'Giza', 'Qalyubia', 'Port Said', 'Suez', 'Luxor',\n 'Dakahlia', 'Gharbia', 'Sharqia', 'Asyut', 'Ismailia', 'Faiyum', 'Beheira',\n 'Aswan', 'Damietta', 'Minya', 'Beni Suef', 'Qena', 'Sohag', 'Red Sea',\n 'Kafr El Sheikh', 'North Sinai', 'South Sinai', 'Matruh', 'New Valley'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const building = Random.int(1, 999);\n const floor = Random.int(1, 12);\n const apartment = Random.int(1, 50);\n return `Building ${building}, Floor ${floor}, Apartment ${apartment}, ${street}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+20 ## #### ####',\n '0## #### ####',\n '+20 (0)## #### ####',\n '01# ### ### ##',\n '010# ### ####',\n '011# ### ####',\n '012# ### ####',\n '015# ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com',\n 'link.net', 'egynet.com', 'data.com.eg'\n ],\n\n companyNames: [\n 'Orange Egypt', 'Vodafone Egypt', 'Etisalat Egypt', 'Telecom Egypt',\n 'National Bank of Egypt', 'Banque Misr', 'Commercial International Bank',\n 'Egyptian Refining Company', 'Elsewedy Electric', 'Orascom Construction',\n 'Ezz Steel', 'Arab African International Bank', 'QNB Al Ahli',\n 'Fawry', 'Jumia Egypt', 'Souq.com'\n ],\n\n industries: [\n 'التكنولوجيا', 'المالية', 'الرعاية الصحية', 'التعليم', 'التجزئة',\n 'التصنيع', 'الإعلام', 'الاتصالات', 'الطاقة', 'النقل',\n 'العقارات', 'الاستشارات', 'الضيافة', 'السيارات', 'الطيران'\n ],\n\n catchPhrases: [\n 'الابتكار للمستقبل', 'نجاحكم هو عملنا', 'نبني المستقبل معاً',\n 'الجودة والثقة', 'التميز والالتزام', 'حلول مستدامة',\n 'نخلق القيمة', 'شريككم الموثوق', 'نقود التغيير'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const he_IL: LocaleDefinition = {\n firstNamesMale: [\n 'David', 'Moshe', 'Yosef', 'Daniel', 'Uri', 'Avi', 'Amit', 'Or', 'Yonatan', 'Eitan',\n 'Noam', 'Itai', 'Rotem', 'Lior', 'Omri', 'Alon', 'Yuval', 'Gal', 'Idan', 'Nir',\n 'Ariel', 'Ben', 'Shai', 'Yair', 'Tom', 'Adam', 'Tomer', 'Dor', 'Oren', 'Elad',\n 'Chen', 'Ran', 'Roi', 'Omer'\n ],\n firstNamesFemale: [\n 'Sarah', 'Miriam', 'Rachel', 'Tamar', 'Noa', 'Shira', 'Maya', 'Yael', 'Hila',\n 'Dana', 'Tal', 'Lihi', 'Noga', 'Adi', 'Roni', 'Noy', 'Shani', 'Mia', 'Ella',\n 'Yarden', 'Lian', 'Agam', 'Rotem', 'Lior', 'Amit', 'Carmel', 'Talia', 'Neta',\n 'Efrat', 'Gal', 'Inbar', 'Avigail', 'Chen'\n ],\n lastNames: [\n 'Cohen', 'Levy', 'Mizrahi', 'Peretz', 'Biton', 'Dahan', 'Avraham', 'Friedman',\n 'Azoulay', 'Yosef', 'Katz', 'Kaplan', 'Ben David', 'Ben Ami', 'Malka', 'Shapiro',\n 'Amar', 'Ohana', 'Elkayam', 'Golan', 'Goldberg', 'Stein', 'Schwartz', 'Levi',\n 'Ben Haim', 'Abuksis', 'Israeli', 'Sharon', 'Barak', 'Shalom', 'Weiss', 'Klein'\n ],\n streets: [\n 'Dizengoff Street', 'Rothschild Boulevard', 'Ben Yehuda Street', 'Allenby Street',\n 'King George Street', 'Jaffa Road', 'HaYarkon Street', 'Sderot Ben Gurion',\n 'Herzl Street', 'Weizmann Street', 'Basel Street', 'Nordau Boulevard', 'Ibn Gvirol Street',\n 'Rabin Square', 'Carmel Market', 'Neve Tzedek', 'Florentin', 'Sarona'\n ],\n cities: [\n 'Jerusalem', 'Tel Aviv', 'Haifa', 'Rishon LeZion', 'Petah Tikva', 'Ashdod', 'Netanya',\n 'Beer Sheva', 'Holon', 'Bnei Brak', 'Ramat Gan', 'Rehovot', 'Bat Yam', 'Ashkelon',\n 'Herzliya', 'Kfar Saba', 'Hadera', 'Modi\\'in', 'Nazareth', 'Lod', 'Ramla', 'Nahariya',\n 'Rosh HaAyin', 'Givatayim', 'Kiryat Ata', 'Raanana', 'Acre', 'Eilat'\n ],\n states: [\n 'Jerusalem', 'Tel Aviv', 'Haifa', 'Central', 'Southern', 'Northern', 'Judea and Samaria'\n ],\n zipCodePattern: '#######',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const building = Random.int(1, 200);\n const apartment = Random.int(1, 50);\n return `${street} ${building}, Apt ${apartment}, ${city} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000000, 9999999));\n },\n\n phoneFormats: [\n '+972 ## ### ####',\n '0## ### ####',\n '+972 (0)## ### ####',\n '05# ### ####',\n '050 ### ####',\n '051 ### ####',\n '052 ### ####',\n '053 ### ####',\n '054 ### ####',\n '055 ### ####',\n '056 ### ####',\n '057 ### ####',\n '058 ### ####',\n '059 ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.co.il', 'outlook.co.il', 'hotmail.co.il', 'live.co.il',\n 'walla.co.il', 'nana.co.il', '012.net.il', 'bezeqint.net', 'zahav.net.il'\n ],\n\n companyNames: [\n 'Elbit Systems', 'Israel Aerospace Industries', 'Rafael Advanced Defense Systems',\n 'Teva Pharmaceutical Industries', 'Check Point Software Technologies',\n 'Nice Systems', 'Amdocs Limited', 'Verint Systems', 'NICE Ltd',\n 'Bank Hapoalim', 'Bank Leumi', 'Israel Discount Bank', 'Bank Mizrahi-Tefahot',\n 'Cellcom Israel', 'Partner Communications', 'Pelephone Communications',\n 'Bezeq The Israeli Telecommunication', 'Hot Telecommunication Systems'\n ],\n\n industries: [\n 'טכנולוגיה', 'פיננסים', 'בריאות', 'חינוך', 'קמעונאות',\n 'ייצור', 'מדיה', 'תקשורת', 'אנרגיה', 'תחבורה',\n 'נדל\"ן', 'ייעוץ', 'מלונאות', 'רכב', 'תעופה'\n ],\n\n catchPhrases: [\n 'חדשנות לעתיד', 'ההצלחה שלך היא העסק שלנו', 'בונים את העתיד יחד',\n 'איכות ואמון', 'מצוינות ומחויבות', 'פתרונות בני קיימא',\n 'יוצרים ערך', 'השותף האמין שלך', 'מובילים את השינוי'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const uk_UA: LocaleDefinition = {\n firstNamesMale: [\n 'Oleksandr', 'Dmytro', 'Maxym', 'Andriy', 'Serhiy', 'Oleksiy', 'Vitaliy',\n 'Yuriy', 'Volodymyr', 'Ivan', 'Petro', 'Mykola', 'Roman', 'Ihor', 'Vasyl',\n 'Taras', 'Bohdan', 'Vyacheslav', 'Valeriy', 'Leonid', 'Oleg', 'Viktor',\n 'Anatoliy', 'Mykhaylo', 'Pavlo', 'Hryhoriy', 'Stanislav', 'Eduard', 'Yevhen', 'Artem'\n ],\n firstNamesFemale: [\n 'Olena', 'Nataliya', 'Iryna', 'Tetyana', 'Oksana', 'Svitlana', 'Lyudmyla',\n 'Kateryna', 'Maryana', 'Anna', 'Maria', 'Anastasiya', 'Viktoriya', 'Yuliya',\n 'Olha', 'Nadiya', 'Larysa', 'Halyna', 'Ivanna', 'Roksolana', 'Solomiya',\n 'Lesya', 'Daryna', 'Sofiya', 'Mariya', 'Khrystyna', 'Alina', 'Polina', 'Diana', 'Vlada'\n ],\n lastNames: [\n 'Shevchenko', 'Kovalenko', 'Bondarenko', 'Tkachenko', 'Savchenko',\n 'Kovalchuk', 'Koval', 'Melnyk', 'Shevchuk', 'Boyko', 'Lysenko',\n 'Kravchenko', 'Karpenko', 'Yanenko', 'Oliynyk', 'Andriyenko',\n 'Pavlenko', 'Semenenko', 'Petrenko', 'Marchenko', 'Ivanenko',\n 'Lutsenko', 'Bilenko', 'Hrytsenko', 'Klimenko', 'Vasylchenko',\n 'Hnatyuk', 'Kruk', 'Zubenko', 'Moroz', 'Ponomarenko', 'Rudenko'\n ],\n streets: [\n 'Khreshchatyk Street', 'Shevchenko Boulevard', 'Franko Street',\n 'Hrushevskoho Street', 'Velyka Vasylkivska', 'Peremohy Avenue',\n 'Leva Tolstoho Street', 'Saksahanskoho Street', 'Vladimirska Street',\n 'Yaroslaviv Val', 'Lva Tolstoho', 'Kreshatik', 'Maidan Nezalezhnosti',\n 'Sofiyska Street', 'Volodymyrska Street', 'Pechersk Street', 'Podil Street'\n ],\n cities: [\n 'Kyiv', 'Kharkiv', 'Odesa', 'Dnipro', 'Donetsk', 'Zaporizhzhia',\n 'Lviv', 'Kryvyi Rih', 'Mykolaiv', 'Mariupol', 'Luhansk', 'Vinnytsia',\n 'Simferopol', 'Kherson', 'Poltava', 'Chernihiv', 'Cherkasy', 'Sumy',\n 'Zhytomyr', 'Khmelnytskyi', 'Rivne', 'Ivano-Frankivsk', 'Ternopil',\n 'Lutsk', 'Uzhhorod', 'Chernivtsi', 'Kirovohrad', 'Sevastopol'\n ],\n states: [\n 'Kyiv Oblast', 'Kharkiv Oblast', 'Odesa Oblast', 'Dnipropetrovsk Oblast',\n 'Donetsk Oblast', 'Zaporizhzhia Oblast', 'Lviv Oblast', 'Mykolaiv Oblast',\n 'Vinnytsia Oblast', 'Poltava Oblast', 'Chernihiv Oblast', 'Cherkasy Oblast',\n 'Sumy Oblast', 'Zhytomyr Oblast', 'Khmelnytskyi Oblast', 'Rivne Oblast',\n 'Ivano-Frankivsk Oblast', 'Ternopil Oblast', 'Lutsk Oblast', 'Zakarpattia Oblast',\n 'Chernivtsi Oblast', 'Kirovohrad Oblast', 'Kherson Oblast', 'Luhansk Oblast'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer',\n 'Operations Manager', 'Business Analyst', 'Product Manager', 'System Administrator',\n 'Quality Assurance Engineer', 'Technical Writer', 'Database Administrator',\n 'Network Engineer', 'DevOps Engineer', 'UX Designer', 'Content Manager'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const building = Random.int(1, 200);\n const apartment = Random.int(1, 300);\n return `${street} ${building}, apt. ${apartment}, ${city}, ${state}, ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const sk_SK: LocaleDefinition = {\n firstNamesMale: [\n 'Jakub', 'Martin', 'Matúš', 'Lukáš', 'Michal', 'Peter', 'Ján', 'Pavol',\n 'Stanislav', 'Tomáš', 'Juraj', 'Filip', 'Ondrej', 'Vladimír', 'Marián',\n 'Jozef', 'Miroslav', 'Róbert', 'Dušan', 'Milan', 'Richard', 'Patrik',\n 'Erik', 'Daniel', 'Samuel', 'Alex', 'Dominik', 'Kristián', 'Sebastián', 'Adam'\n ],\n firstNamesFemale: [\n 'Mária', 'Jana', 'Eva', 'Anna', 'Zuzana', 'Katarína', 'Natália', 'Lucia',\n 'Martina', 'Petra', 'Veronika', 'Simona', 'Andrea', 'Monika', 'Nikola',\n 'Dominika', 'Kristína', 'Michaela', 'Patrícia', 'Laura', 'Sofia', 'Emma',\n 'Nina', 'Timea', 'Viktória', 'Adriana', 'Daniela', 'Jana', 'Renáta', 'Tatiana'\n ],\n lastNames: [\n 'Horváth', 'Kováč', 'Varga', 'Tóth', 'Balogh', 'Nagy', 'Szabó', 'Molnár',\n 'Balog', 'Lakatoš', 'Vass', 'Rigó', 'Gál', 'Farkas', 'Kiss', 'Németh',\n 'Mészáros', 'Takács', 'Szűcs', 'Kováčová', 'Horváthová', 'Vargová',\n 'Tóthová', 'Baloghová', 'Nagyová', 'Szabóová', 'Molnárová', 'Balogová',\n 'Lakatošová', 'Vassová', 'Rigóová', 'Gálová', 'Farkasová', 'Kissóvá'\n ],\n streets: [\n 'Hlavná ulica', 'Dunajská ulica', 'Obchodná ulica', 'Štefánikova ulica',\n 'Kollárova ulica', 'Hviezdoslavovo námestie', 'SNP ulica', 'Partizánska ulica',\n 'Mierová ulica', 'Slobody ulica', 'Nová ulica', 'Záhradná ulica', 'Lipová ulica',\n 'Javorová ulica', 'Brežská ulica', 'Smreková ulica', 'Borová ulica', 'Jeseniová ulica'\n ],\n cities: [\n 'Bratislava', 'Košice', 'Prešov', 'Žilina', 'Banská Bystrica', 'Nitra',\n 'Trnava', 'Trenčín', 'Martin', 'Poprad', 'Prievidza', 'Zvolen', 'Považská Bystrica',\n 'Michalovce', 'Spišská Nová Ves', 'Komárno', 'Levice', 'Bardejov', 'Liptovský Mikuláš',\n 'Ružomberok', 'Piešťany', 'Topoľčany', 'Humenné', 'Senica', 'Dunajská Streda'\n ],\n states: [\n 'Bratislavský kraj', 'Trnavský kraj', 'Trenčiansky kraj', 'Nitriansky kraj',\n 'Žilinský kraj', 'Banskobystrický kraj', 'Prešovský kraj', 'Košický kraj'\n ],\n zipCodePattern: '### ##',\n jobTitles: [\n 'Softvérový inžinier', 'Projektový manažér', 'Dátový analytik', 'Marketingový manažér',\n 'Obchodný zástupca', 'Účtovník', 'HR manažér', 'Dizajnér', 'Prevádzkový manažér',\n 'Business analytik', 'Produktový manažér', 'System administrátor', 'QA inžinier',\n 'Technický spisovateľ', 'Databázový administrátor', 'Sieťový inžinier', 'DevOps inžinier'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Predaj', 'Ľudské zdroje', 'Financie',\n 'Prevádzka', 'Zákaznícky servis', 'IT', 'Vývoj a výskum',\n 'Právne oddelenie', 'Product Management', 'Design', 'Kvalita', 'Administratíva'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 500);\n return `${street} ${number}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n const part1 = String(Random.int(100, 999));\n const part2 = String(Random.int(10, 99));\n return `${part1} ${part2}`;\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const hr_HR: LocaleDefinition = {\n firstNamesMale: [\n 'Ivan', 'Marko', 'Luka', 'Josip', 'Matej', 'Filip', 'Petar', 'Ante',\n 'Tomislav', 'Stjepan', 'Nikola', 'David', 'Karlo', 'Vedran', 'Igor',\n 'Goran', 'Zoran', 'Damir', 'Mario', 'Dario', 'Robert', 'Andrej',\n 'Miran', 'Bruno', 'Ivica', 'Davor', 'Krešimir', 'Domagoj', 'Lovro', 'Roko'\n ],\n firstNamesFemale: [\n 'Ana', 'Marija', 'Ivana', 'Maja', 'Petra', 'Lucija', 'Katarina', 'Ema',\n 'Sara', 'Lara', 'Nina', 'Lea', 'Dora', 'Laura', 'Tina', 'Martina',\n 'Sanja', 'Vesna', 'Dragana', 'Biljana', 'Snježana', 'Dubravka', 'Jasna',\n 'Marina', 'Irena', 'Vedrana', 'Andrea', 'Monika', 'Kristina', 'Antonija'\n ],\n lastNames: [\n 'Horvat', 'Kovačević', 'Babić', 'Petrović', 'Jurić', 'Marković',\n 'Radić', 'Kovač', 'Knežević', 'Savić', 'Horvat', 'Galić', 'Bilić',\n 'Tomić', 'Vuković', 'Pavić', 'Lončar', 'Matić', 'Vidović', 'Jurić',\n 'Bošnjak', 'Dedić', 'Kralj', 'Bencić', 'Perić', 'Radoš', 'Šimić',\n 'Lukić', 'Varga', 'Nikolić', 'Stojanović', 'Mihalić', 'Rajić', 'Župan'\n ],\n streets: [\n 'Ilica', 'Varšavska ulica', 'Tkalčićeva ulica', 'Preradovićeva ulica',\n 'Gajeva ulica', 'Masarykova ulica', 'Kneza Mislava', 'Jurišićeva ulica',\n 'Hebrangova ulica', 'Strossmayerovo šetalište', 'Zrinjevac', 'Frankopanska ulica',\n 'Palmotićeva ulica', 'Gundulićeva ulica', 'Praška ulica', 'Draškovićeva ulica',\n 'Vlaška ulica', 'Maksimirska ulica', 'Savska ulica', 'Vukovarska ulica'\n ],\n cities: [\n 'Zagreb', 'Split', 'Rijeka', 'Osijek', 'Zadar', 'Pula', 'Slavonski Brod',\n 'Karlovac', 'Varaždin', 'Šibenik', 'Sisak', 'Velika Gorica', 'Vinkovci',\n 'Dubrovnik', 'Bjelovar', 'Virovitica', 'Požega', 'Koprivnica', 'Čakovec',\n 'Krapina', 'Gospić', 'Pazin', 'Rovinj', 'Makarska', 'Trogir', 'Korčula'\n ],\n states: [\n 'Zagrebačka županija', 'Splitsko-dalmatinska županija', 'Primorsko-goranska županija',\n 'Osječko-baranjska županija', 'Zadarska županija', 'Istarska županija',\n 'Brodsko-posavska županija', 'Karlovačka županija', 'Varaždinska županija',\n 'Šibensko-kninska županija', 'Sisačko-moslavačka županija', 'Vukovarsko-srijemska županija',\n 'Dubrovačko-neretvanska županija', 'Bjelovarsko-bilogorska županija', 'Virovitičko-podravska županija',\n 'Požeško-slavonska županija', 'Koprivničko-križevačka županija', 'Međimurska županija',\n 'Krapinsko-zagorska županija', 'Ličko-senjska županija'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Softverski inženjer', 'Voditelj projekata', 'Analitičar podataka', 'Marketing menadžer',\n 'Prodajni predstavnik', 'Računovođa', 'HR menadžer', 'Dizajner', 'Operativni menadžer',\n 'Poslovni analitičar', 'Produkt menadžer', 'Sistem administrator', 'QA inženjer',\n 'Tehnički pisac', 'Administrator baza podataka', 'Mrežni inženjer', 'DevOps inženjer'\n ],\n departments: [\n 'Inženjering', 'Marketing', 'Prodaja', 'Ljudski resursi', 'Financije',\n 'Operacije', 'Korisnička podrška', 'IT', 'Istraživanje i razvoj',\n 'Pravno', 'Upravljanje proizvodima', 'Dizajn', 'Kontrola kvalitete', 'Administracija'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n return `${street} ${number}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const rs_RS: LocaleDefinition = {\n firstNamesMale: [\n 'Marko', 'Nikola', 'Aleksandar', 'Stefan', 'Filip', 'Luka', 'Nemanja', 'Viktor',\n 'Uroš', 'Miloš', 'Vladimir', 'Mihailo', 'Petar', 'Jovan', 'Andrej', 'Ilija',\n 'Lazar', 'Vasilije', 'Pavle', 'Đorđe', 'Bogdan', 'Sava', 'Vojin', 'Rastko',\n 'Dragan', 'Zoran', 'Goran', 'Predrag', 'Dejan', 'Saša', 'Nebojša', 'Slobodan'\n ],\n firstNamesFemale: [\n 'Marija', 'Ana', 'Jelena', 'Milica', 'Sofija', 'Nina', 'Maja', 'Ivana',\n 'Teodora', 'Tijana', 'Bojana', 'Snežana', 'Vesna', 'Dragana', 'Biljana',\n 'Sanja', 'Marina', 'Irena', 'Katarina', 'Aleksandra', 'Jasmina', 'Natasha',\n 'Olivera', 'Sladjana', 'Zorica', 'Radmila', 'Ljubica', 'Gordana', 'Mirjana', 'Vera'\n ],\n lastNames: [\n 'Jovanović', 'Petrović', 'Nikolić', 'Stojanović', 'Đorđević', 'Stanković',\n 'Pavlović', 'Marković', 'Ilić', 'Milošević', 'Popović', 'Lukić', 'Simić',\n 'Živković', 'Mitić', 'Vasić', 'Krstić', 'Jović', 'Savić', 'Perić',\n 'Rajić', 'Mihailović', 'Lazarević', 'Veličković', 'Stefanović', 'Todorović',\n 'Nedeljković', 'Miljković', 'Bošković', 'Gajić', 'Ristić', 'Kostić', 'Tomić'\n ],\n streets: [\n 'Knez Mihailova', 'Terazije', 'Kralja Milana', 'Bulevar kralja Aleksandra',\n 'Nemanjina ulica', 'Kraljice Natalije', 'Makedonska ulica', 'Takovska ulica',\n 'Cara Lazara', 'Svetogorska ulica', 'Hilandarska ulica', 'Džordža Vašingtona',\n 'Bulevar umetnosti', 'Gandijeva ulica', 'Jurija Gagarina', 'Antifašističke borbe',\n 'Vojvode Putnika', 'Bulevar Zorana Đinđića', 'Autoput za Zagreb', 'Resavska ulica'\n ],\n cities: [\n 'Beograd', 'Novi Sad', 'Niš', 'Kragujevac', 'Subotica', 'Zrenjanin', 'Pančevo',\n 'Čačak', 'Kraljevo', 'Smederevo', 'Leskovac', 'Užice', 'Valjevo', 'Šabac',\n 'Vranje', 'Kruševac', 'Sombor', 'Požarevac', 'Pirot', 'Zaječar', 'Kikinda',\n 'Sremska Mitrovica', 'Jagodina', 'Vršac', 'Bor', 'Gornji Milanovac', 'Negotin'\n ],\n states: [\n 'Beograd', 'Vojvodina', 'Šumadija i Zapadna Srbija', 'Južna i Istočna Srbija',\n 'Autonomna Pokrajina Vojvodina', 'Autonomna Pokrajina Kosovo i Metohija'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Softverski inženjer', 'Menadžer projekata', 'Analitičar podataka', 'Marketing menadžer',\n 'Prodajni predstavnik', 'Računovođa', 'HR menadžer', 'Dizajner', 'Operativni menadžer',\n 'Poslovni analitičar', 'Produkt menadžer', 'Sistem administrator', 'QA inženjer',\n 'Tehnički pisac', 'Administrator baza podataka', 'Mrežni inženjer', 'DevOps inženjer'\n ],\n departments: [\n 'Inženjering', 'Marketing', 'Prodaja', 'Ljudski resursi', 'Finansije',\n 'Operacije', 'Korisnička podrška', 'IT', 'Istraživanje i razvoj',\n 'Pravno', 'Upravljanje proizvodima', 'Dizajn', 'Kontrola kvalitete', 'Administracija'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n const apartment = Random.int(1, 100);\n return `${street} ${number}/${apartment}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(11000, 38999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const lt_LT: LocaleDefinition = {\n firstNamesMale: [\n 'Jonas', 'Kazimieras', 'Antanas', 'Juozas', 'Petras', 'Aleksandras', 'Stasys',\n 'Mykolas', 'Andrius', 'Tomas', 'Mindaugas', 'Gintaras', 'Vytautas', 'Algirdas',\n 'Darius', 'Rolandas', 'Saulius', 'Marius', 'Lukas', 'Domantas', 'Nojus',\n 'Lukas', 'Matas', 'Tomas', 'Paulius', 'Simonas', 'Edgaras', 'Artūras', 'Žydrūnas', 'Arvydas'\n ],\n firstNamesFemale: [\n 'Ona', 'Marija', 'Janina', 'Elena', 'Aldona', 'Genovaitė', 'Danguolė',\n 'Rasa', 'Jūratė', 'Aušra', 'Vida', 'Laima', 'Giedrė', 'Nijolė', 'Birutė',\n 'Edita', 'Inga', 'Laura', 'Greta', 'Emilija', 'Sofija', 'Elzbieta',\n 'Kotryna', 'Ugnė', 'Rugilė', 'Gabija', 'Liepa', 'Aistė', 'Monika', 'Kristina'\n ],\n lastNames: [\n 'Kazlauskas', 'Jankauskas', 'Petrauskas', 'Stankevičius', 'Vasiliauskas',\n 'Žukauskas', 'Butkus', 'Paulauskas', 'Urbonas', 'Grigas', 'Rimkus',\n 'Stonkus', 'Jasinskas', 'Kalinauskas', 'Karpavičius', 'Laurinavičius',\n 'Macijauskas', 'Navickas', 'Orlauskas', 'Pocius', 'Ragulskis', 'Sakalauskas',\n 'Tamulis', 'Valančius', 'Zdanavičius', 'Adomaitis', 'Baltakis', 'Dambrauskas'\n ],\n streets: [\n 'Gedimino prospektas', 'Pilies gatvė', 'Didžioji gatvė', 'Vokiečių gatvė',\n 'Laisvės alėja', 'Savanorių prospektas', 'Kalvarijų gatvė', 'Žirmūnų gatvė',\n 'Ukmergės gatvė', 'Ozo gatvė', 'Konstitucijos prospektas', 'Verkių gatvė',\n 'Antakalnio gatvė', 'Tuskulėnų gatvė', 'Širvintų gatvė', 'Gynėjų gatvė'\n ],\n cities: [\n 'Vilnius', 'Kaunas', 'Klaipėda', 'Šiauliai', 'Panevėžys', 'Alytus',\n 'Marijampolė', 'Mažeikiai', 'Jonava', 'Utena', 'Kėdainiai', 'Telšiai',\n 'Visaginas', 'Tauragė', 'Ukmergė', 'Plungė', 'Kretinga', 'Šilutė',\n 'Radviliškis', 'Palanga', 'Gargždai', 'Druskininkai', 'Rokiškis', 'Biržai'\n ],\n states: [\n 'Vilniaus apskritis', 'Kauno apskritis', 'Klaipėdos apskritis', 'Šiaulių apskritis',\n 'Panevėžio apskritis', 'Alytaus apskritis', 'Marijampolės apskritis',\n 'Tauragės apskritis', 'Telšių apskritis', 'Utenos apskritis'\n ],\n zipCodePattern: 'LT-#####',\n jobTitles: [\n 'Programuotojas', 'Projektų vadovas', 'Duomenų analitikas', 'Rinkodaros vadovas',\n 'Pardavimų atstovas', 'Buhalteris', 'Žmogiškųjų išteklių vadovas', 'Dizaineris',\n 'Operacijų vadovas', 'Verslo analitikas', 'Produkto vadovas', 'Sistemų administratorius',\n 'Kokybės inžinierius', 'Techninis rašytojas', 'Duomenų bazių administratorius',\n 'Tinklų inžinierius', 'DevOps inžinierius', 'UX dizaineris', 'Turinio valdytojas'\n ],\n departments: [\n 'Inžinerija', 'Rinkodara', 'Pardavimai', 'Žmogiškieji ištekliai', 'Finansai',\n 'Operacijos', 'Klientų aptarnavimas', 'IT', 'Tyrimai ir plėtra',\n 'Teisinis', 'Produktų valdymas', 'Dizainas', 'Kokybės užtikrinimas', 'Administracija'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 100);\n const apartment = Random.int(1, 50);\n return `${street} ${number}-${apartment}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return `LT-${String(Random.int(10000, 99999))}`;\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const lv_LV: LocaleDefinition = {\n firstNamesMale: [\n 'Jānis', 'Andris', 'Māris', 'Ivars', 'Guntis', 'Juris', 'Edgars', 'Artūrs',\n 'Uldis', 'Ēriks', 'Valdis', 'Aigars', 'Normunds', 'Sandis', 'Kaspars',\n 'Renārs', 'Oskars', 'Kristaps', 'Toms', 'Dāvis', 'Rihards', 'Aleksandrs',\n 'Sergejs', 'Dmitrijs', 'Aleksejs', 'Viktors', 'Pēteris', 'Pāvils', 'Jēkabs', 'Miķelis'\n ],\n firstNamesFemale: [\n 'Līga', 'Inese', 'Ilze', 'Dace', 'Sandra', 'Inga', 'Zane', 'Laima',\n 'Vita', 'Ieva', 'Kristīne', 'Agnese', 'Maija', 'Santa', 'Elīna',\n 'Laura', 'Anna', 'Marija', 'Jekaterina', 'Natālija', 'Tatjana', 'Jeļena',\n 'Olga', 'Svetlana', 'Irina', 'Aija', 'Baiba', 'Solvita', 'Guntra', 'Māra'\n ],\n lastNames: [\n 'Bērziņš', 'Kalniņš', 'Ozoliņš', 'Liepiņš', 'Vanags', 'Jansons', 'Karlsons',\n 'Andersons', 'Lejnieks', 'Krauze', 'Osis', 'Siliņš', 'Vītoliņš', 'Āboliņš',\n 'Lācis', 'Caune', 'Zariņš', 'Birziņš', 'Eglītis', 'Kļaviņš', 'Muižnieks',\n 'Sproģis', 'Šmits', 'Voss', 'Freimanis', 'Zariņš', 'Bērziņa', 'Kalniņa', 'Ozoliņa'\n ],\n streets: [\n 'Brīvības bulvāris', 'Elizabetes iela', 'Krasta iela', 'Daugavgrīvas iela',\n 'Maskavas iela', 'Dzirnavu iela', 'Tērbatas iela', 'Miera iela',\n 'Valdemāra iela', 'Blaumaņa iela', 'Stabu iela', 'Lāčplēša iela',\n 'Gogoļa iela', 'Prāgas iela', 'Skanstes iela', 'Gustava Zemgala gatve'\n ],\n cities: [\n 'Rīga', 'Daugavpils', 'Liepāja', 'Jelgava', 'Jūrmala', 'Ventspils',\n 'Rēzekne', 'Valmiera', 'Jēkabpils', 'Ogre', 'Tukums', 'Salaspils',\n 'Cēsis', 'Olaine', 'Kuldīga', 'Saldus', 'Talsi', 'Dobele',\n 'Sigulda', 'Ikšķile', 'Bauska', 'Limbazi', 'Aizkraukle', 'Gulbene'\n ],\n states: [\n 'Rīga', 'Vidzeme', 'Latgale', 'Kurzeme', 'Zemgale', 'Pierīga'\n ],\n zipCodePattern: 'LV-####',\n jobTitles: [\n 'Programmatūras inženieris', 'Projektu vadītājs', 'Datu analītiķis', 'Mārketinga vadītājs',\n 'Pārdošanas pārstāvis', 'Grāmatvedis', 'HR vadītājs', 'Dizainers', 'Operāciju vadītājs',\n 'Biznesa analītiķis', 'Produktu vadītājs', 'Sistēmu administrators', 'Kvalitātes inženieris',\n 'Tehniskais rakstnieks', 'Datubāzu administrators', 'Tīklu inženieris', 'DevOps inženieris'\n ],\n departments: [\n 'Inženierija', 'Mārketings', 'Pārdošana', 'Cilvēkresursi', 'Finanses',\n 'Operācijas', 'Klientu apkalpošana', 'IT', 'Pētniecība un attīstība',\n 'Juridiskais', 'Produktu vadība', 'Dizains', 'Kvalitātes nodrošinājums', 'Administrācija'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n const apartment = Random.int(1, 100);\n return `${street} ${number}-${apartment}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return `LV-${String(Random.int(1000, 9999))}`;\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const et_EE: LocaleDefinition = {\n firstNamesMale: [\n 'Martin', 'Andrei', 'Sergei', 'Dmitri', 'Alexander', 'Igor', 'Jüri', 'Toomas',\n 'Tarmo', 'Marek', 'Rainer', 'Kristjan', 'Marko', 'Andres', 'Peeter',\n 'Kalle', 'Indrek', 'Matti', 'Urmas', 'Erik', 'Oliver', 'Markus', 'Daniel',\n 'Kevin', 'Joonas', 'Sander', 'Rasmus', 'Henri', 'Richard', 'Robert'\n ],\n firstNamesFemale: [\n 'Jelena', 'Anna', 'Natalja', 'Irina', 'Katrin', 'Marina', 'Olga', 'Svetlana',\n 'Tatjana', 'Nadežda', 'Galina', 'Ljudmila', 'Ene', 'Sirje', 'Piret',\n 'Kadri', 'Kristiina', 'Liina', 'Mari', 'Eva', 'Laura', 'Karin', 'Signe',\n 'Helena', 'Victoria', 'Emma', 'Sofia', 'Elisabeth', 'Maria', 'Anastasia'\n ],\n lastNames: [\n 'Tamm', 'Kask', 'Mägi', 'Koppel', 'Aas', 'Sepp', 'Kuznetsov', 'Ivanov',\n 'Smirnov', 'Toom', 'Lepik', 'Kivi', 'Mets', 'Lill', 'Oja', 'Saar',\n 'Volkov', 'Sokolov', 'Kruus', 'Rand', 'Kütt', 'Mänd', 'Puu', 'Kallas',\n 'Hein', 'Karu', 'Ilves', 'Kalda', 'Laur', 'Pärn', 'Roos', 'Tamme'\n ],\n streets: [\n 'Narva maantee', 'Pärnu maantee', 'Tartu maantee', 'Viru tänav', 'Vabaduse puiestee',\n 'Estonia puiestee', 'Liivalaia tänav', 'Sakala tänav', 'Endla tänav', 'Paldiski maantee',\n 'Suur-Ameerika tänav', 'Telliskivi tänav', 'Kopli tänav', 'Sõle tänav', 'Rannamäe tee',\n 'Kloostrimetsa tee', 'Peterburi tee', 'Lasnamäe tänav', 'Mustamäe tee', 'Ehitajate tee'\n ],\n cities: [\n 'Tallinn', 'Tartu', 'Narva', 'Pärnu', 'Kohtla-Järve', 'Viljandi', 'Rakvere',\n 'Maardu', 'Sillamäe', 'Kuressaare', 'Võru', 'Valga', 'Haapsalu', 'Jõhvi',\n 'Paide', 'Keila', 'Kiviõli', 'Tapa', 'Põlva', 'Türi', 'Elva', 'Rapla'\n ],\n states: [\n 'Harjumaa', 'Tartumaa', 'Ida-Virumaa', 'Pärnumaa', 'Lääne-Virumaa',\n 'Viljandimaa', 'Võrumaa', 'Saaremaa', 'Hiiumaa', 'Järvamaa',\n 'Raplamaa', 'Valgamaa', 'Põlvamaa', 'Läänemaa', 'Jõgevamaa'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Tarkvaraarendaja', 'Projektijuht', 'Andmeanalüütik', 'Turundusjuht',\n 'Müügiesindaja', 'Raamatupidaja', 'Personalijuht', 'Disainer', 'Tegevusjuht',\n 'Ärianalüütik', 'Tootejuht', 'Süsteemiadministraator', 'Kvaliteediinsener',\n 'Tehniline kirjutaja', 'Andmebaasi administraator', 'Võrguinsener', 'DevOps insener'\n ],\n departments: [\n 'Arendus', 'Turundus', 'Müük', 'Personal', 'Rahandus', 'Operatsioonid',\n 'Klienditugi', 'IT', 'Teadus ja arendus', 'Juriidiline', 'Tootejuhtimine',\n 'Disain', 'Kvaliteedikontroll', 'Administratsioon'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 100);\n const apartment = Random.int(1, 50);\n return `${street} ${number}-${apartment}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const bg_BG: LocaleDefinition = {\n firstNamesMale: [\n 'Georgi', 'Dimitar', 'Hristo', 'Stoyan', 'Ivan', 'Petar', 'Todor', 'Nikolay',\n 'Aleksandar', 'Andrey', 'Kiril', 'Borislav', 'Valentin', 'Plamen', 'Krasimir',\n 'Miroslav', 'Svetoslav', 'Vladimir', 'Borimir', 'Radoslav', 'Kaloyan', 'Martin',\n 'Viktor', 'Daniel', 'Emil', 'Rumen', 'Zdravko', 'Lyubomir', 'Anton', 'Stanislav'\n ],\n firstNamesFemale: [\n 'Maria', 'Elena', 'Yordanka', 'Svetlana', 'Galina', 'Diana', 'Tatiana', 'Nadezhda',\n 'Lyudmila', 'Veselina', 'Radost', 'Milena', 'Petya', 'Zlatka', 'Silvia', 'Maya',\n 'Boryana', 'Desislava', 'Gabriela', 'Ivelina', 'Teodora', 'Aleksandra', 'Viktoria',\n 'Simona', 'Denitsa', 'Kalina', 'Bilyana', 'Ina', 'Liliya', 'Nikolina'\n ],\n lastNames: [\n 'Ivanov', 'Georgiev', 'Dimitrov', 'Petrov', 'Stoyanov', 'Nikolov', 'Todorov',\n 'Hristov', 'Alexandrov', 'Andreev', 'Kirilov', 'Borisov', 'Valentinov', 'Plamenov',\n 'Krasimirov', 'Miroslavov', 'Svetoslavov', 'Vladimirov', 'Borimirov', 'Radoslavov',\n 'Kaloyanov', 'Martinov', 'Viktorov', 'Danielov', 'Emilov', 'Rumenov', 'Zdravkov'\n ],\n streets: [\n 'Boulevard Vitosha', 'Boulevard Tsar Osvoboditel', 'Boulevard Dondukov',\n 'Boulevard Hristo Botev', 'Boulevard Slivnitsa', 'Boulevard Maria Luiza',\n 'Boulevard Knyaginya Maria Luiza', 'Boulevard Todor Aleksandrov', 'Boulevard Bulgaria',\n 'Boulevard Cherni Vrah', 'Boulevard Nikola Vaptsarov', 'Boulevard Peyo Yavorov'\n ],\n cities: [\n 'Sofia', 'Plovdiv', 'Varna', 'Burgas', 'Ruse', 'Stara Zagora', 'Pleven',\n 'Sliven', 'Dobrich', 'Shumen', 'Pernik', 'Haskovo', 'Yambol', 'Pazardzhik',\n 'Blagoevgrad', 'Veliko Tarnovo', 'Vratsa', 'Gabrovo', 'Asenovgrad', 'Vidin',\n 'Kazanlak', 'Kyustendil', 'Montana', 'Lovech', 'Silistra', 'Targovishte'\n ],\n states: [\n 'Sofia-Grad', 'Plovdiv', 'Varna', 'Burgas', 'Ruse', 'Stara Zagora', 'Pleven',\n 'Sliven', 'Dobrich', 'Shumen', 'Pernik', 'Haskovo', 'Yambol', 'Pazardzhik',\n 'Blagoevgrad', 'Veliko Tarnovo', 'Vratsa', 'Gabrovo', 'Kardzhali', 'Kyustendil',\n 'Lovech', 'Montana', 'Pazardzhik', 'Razgrad', 'Ruse', 'Silistra', 'Sliven',\n 'Smolyan', 'Sofia', 'Stara Zagora', 'Targovishte', 'Varna', 'Veliko Tarnovo', 'Vidin', 'Vratsa', 'Yambol'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Софтуерен инженер', 'Мениджър проекти', 'Анализатор данни', 'Маркетинг мениджър',\n 'Търговски представител', 'Счетоводител', 'HR мениджър', 'Дизайнер',\n 'Оперативен мениджър', 'Бизнес анализатор', 'Мениджър продукти', 'Системен администратор',\n 'Инженер качество', 'Технически писател', 'Администратор бази данни',\n 'Мрежови инженер', 'DevOps инженер', 'UX дизайнер', 'Мениджър съдържание'\n ],\n departments: [\n 'Инженеринг', 'Маркетинг', 'Продажби', 'Човешки ресурси', 'Финанси',\n 'Операции', 'Клиентско обслужване', 'IT', 'Научни изследвания',\n 'Правен', 'Управление на продукти', 'Дизайн', 'Контрол на качеството', 'Администрация'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n const entrance = Random.pick(['A', 'B', 'V', 'G']);\n const floor = Random.int(1, 10);\n const apartment = Random.int(1, 50);\n return `${street} ${number}, вх. ${entrance}, ет. ${floor}, ап. ${apartment}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const is_IS: LocaleDefinition = {\n firstNamesMale: [\n 'Jón', 'Sigurður', 'Guðmundur', 'Björn', 'Kristján', 'Magnús', 'Einar', 'Pétur',\n 'Ari', 'Gunnar', 'Ragnar', 'Stefán', 'Tómas', 'Ólafur', 'Eggert', 'Hannes',\n 'Hilmar', 'Indriði', 'Karl', 'Leifur', 'Páll', 'Sveinn', 'Valdimar', 'Árni',\n 'Benedikt', 'Daníel', 'Emil', 'Felix', 'Gabriel', 'Hugo', 'Isak', 'Jonas'\n ],\n firstNamesFemale: [\n 'Guðrún', 'Anna', 'Kristín', 'Margrét', 'Sigríður', 'Ingibjörg', 'Helga', 'Sigrún',\n 'Björk', 'Ásta', 'Hrefna', 'Katrín', 'Lilja', 'María', 'Ragnheiður', 'Sólveig',\n 'Unnur', 'Valgerður', 'Þórdís', 'Þuríður', 'Agnes', 'Dagný', 'Elín', 'Friðrikka',\n 'Guðbjörg', 'Hallgerður', 'Iris', 'Jóhanna', 'Kolbrún', ' Laufey', 'Nanna', 'Oddný'\n ],\n lastNames: [\n 'Jónsson', 'Sigurðsson', 'Guðmundsson', 'Björnsson', 'Kristjánsson', 'Magnússon',\n 'Einarsson', 'Pétursson', 'Arason', 'Gunnarsson', 'Ragnarsson', 'Stefánsson',\n 'Tómasson', 'Ólafsson', 'Eggertsson', 'Hannesson', 'Hilmarsson', 'Indriðason',\n 'Karlsson', 'Leifsson', 'Pálsson', 'Sveinsson', 'Valdimarsson', 'Árnason',\n 'Benediktsson', 'Daníelsson', 'Emilsson', 'Felixsson', 'Gabrielsson', 'Húgósson'\n ],\n streets: [\n 'Laugavegur', 'Skólavörðustígur', 'Bankastræti', 'Austurstræti', 'Hafnarstræti',\n 'Borgartún', 'Skaftahlíð', 'Háaleitisbraut', 'Bústaðavegur', 'Suðurlandsbraut',\n 'Kringlan', 'Tryggvagata', 'Geirsgata', 'Hverfisgata', 'Bergstaðastræti',\n 'Frakkastígur', 'Hverfisgata', 'Kalkofnsvegur', 'Rauðarárstígur', 'Vesturgata'\n ],\n cities: [\n 'Reykjavík', 'Kópavogur', 'Hafnarfjörður', 'Akureyri', 'Reykjanesbær', 'Garðabær',\n 'Mosfellsbær', 'Árborg', 'Akranes', 'Fjarðabyggð', 'Ísafjarðarbær', 'Vestmannaeyjar',\n 'Grindavík', 'Selfoss', 'Seltjarnarnes', 'Húsavík', 'Egilsstaðir', 'Borgarnes',\n 'Keflavík', 'Njarðvík', 'Sauðárkrókur', 'Dalvík', 'Ólafsvík', 'Stykkishólmur'\n ],\n states: [\n 'Höfuðborgarsvæðið', 'Suðurnes', 'Vesturland', 'Vestfirðir', 'Norðurland Vestra',\n 'Norðurland Eystra', 'Austurland', 'Suðurland'\n ],\n zipCodePattern: '###',\n jobTitles: [\n 'Hugbúnaðarverkfræðingur', 'Verkefnastjóri', 'Gagnagreinandi', 'Markaðsstjóri',\n 'Sölufulltrúi', 'Bókari', 'Mannauðsstjóri', 'Hönnuður', 'Reksturstjóri',\n 'Viðskiptagreinandi', 'Vörustjóri', 'Kerfisstjóri', 'Gæðaverkfræðingur',\n 'Tækniritstjóri', 'Gagnagrunnsstjóri', 'Netverkfræðingur', 'DevOps verkfræðingur'\n ],\n departments: [\n 'Verkfræði', 'Markaður', 'Sala', 'Mannauður', 'Fjármál', 'Rekstur',\n 'Þjónusta', 'Upplýsingatækni', 'Rannsóknir og þróun', 'Lögfræði',\n 'Vörustjórnun', 'Hönnun', 'Gæðastjórnun', 'Stjórnun'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 100);\n const apartment = Random.int(1, 50);\n return `${street} ${number}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(101, 999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ng_NG: LocaleDefinition = {\n firstNamesMale: [\n 'Chukwudi', 'Oluwaseun', 'Adebayo', 'Ifeanyi', 'Nnamdi', 'Kemi', 'Tunde',\n 'Emeka', 'Chinedu', 'Olumide', 'Babatunde', 'Folake', 'Wale', 'Akin',\n 'Chioma', 'Obinna', 'Chijioke', 'Ngozi', 'Ibrahim', 'Musa', 'Yusuf',\n 'Mohammed', 'Ahmed', 'Abubakar', 'Sani', 'Godwin', 'Chukwuemeka', 'Kelechi'\n ],\n firstNamesFemale: [\n 'Adunni', 'Morenike', 'Chioma', 'Nneka', 'Amara', 'Olufunke', 'Bimpe',\n 'Folashade', 'Yetunde', 'Ibukun', 'Omolara', 'Adebisi', 'Titilayo', 'Funmilayo',\n 'Chidinma', 'Kamsi', 'Ngozi', 'Adaeze', 'Obiageli', 'Chiamaka', 'Aisha',\n 'Fatima', 'Zainab', 'Khadijah', 'Hauwa', 'Blessing', 'Grace', 'Joy', 'Faith'\n ],\n lastNames: [\n 'Okafor', 'Adeyemi', 'Okonkwo', 'Ogunleye', 'Balogun', 'Ibrahim', 'Mohammed',\n 'Akinwale', 'Eze', 'Nwosu', 'Okoro', 'Adebayo', 'Oladipo', 'Fasasi',\n 'Ogunbiyi', 'Adeleke', 'Olowu', 'Ajayi', 'Kolawole', 'Oyelami', 'Bello',\n 'Yakubu', 'Danjuma', 'Okon', 'Bassey', 'Effiong', 'Udo', 'Obi', 'Nnaji'\n ],\n streets: [\n 'Adetokunbo Ademola Street', 'Herbert Macaulay Way', 'Ahmadu Bello Way',\n 'Obafemi Awolowo Way', 'Ikorodu Road', 'Lagos-Abeokuta Expressway',\n 'Allen Avenue', 'Awolowo Road', 'Adeniyi Jones Avenue', 'Isaac John Street',\n 'Adeola Odeku Street', 'Sanusi Fafunwa Street', 'Akin Adesola Street',\n 'Bode Thomas Street', 'Shitta Bey Street', 'Broad Street', 'Marina Road'\n ],\n cities: [\n 'Lagos', 'Kano', 'Ibadan', 'Abuja', 'Port Harcourt', 'Benin City', 'Kaduna',\n 'Maiduguri', 'Zaria', 'Aba', 'Jos', 'Ilorin', 'Oyo', 'Enugu', 'Abeokuta',\n 'Onitsha', 'Warri', 'Sokoto', 'Calabar', 'Uyo', 'Katsina', 'Bauchi',\n 'Akure', 'Osogbo', 'Gombe', 'Damaturu', 'Lafia', 'Minna', 'Yenagoa'\n ],\n states: [\n 'Lagos', 'Kano', 'Oyo', 'Federal Capital Territory', 'Rivers', 'Edo',\n 'Kaduna', 'Borno', 'Katsina', 'Abia', 'Imo', 'Ogun', 'Ondo', 'Osun',\n 'Ekiti', 'Kwara', 'Kogi', 'Benue', 'Nasarawa', 'Plateau', 'Bauchi',\n 'Gombe', 'Taraba', 'Adamawa', 'Sokoto', 'Kebbi', 'Zamfara', 'Jigawa',\n 'Yobe', 'Akwa Ibom', 'Cross River', 'Bayelsa', 'Ebonyi', 'Enugu', 'Anambra'\n ],\n zipCodePattern: '######',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer',\n 'Operations Manager', 'Business Analyst', 'Product Manager', 'System Administrator',\n 'Quality Assurance Engineer', 'Technical Writer', 'Database Administrator',\n 'Network Engineer', 'DevOps Engineer', 'UX Designer', 'Content Manager'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 100);\n return `${number} ${street}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(100001, 999999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ke_KE: LocaleDefinition = {\n firstNamesMale: [\n 'Kamau', 'Omondi', 'Wanjohi', 'Kimani', 'Njoroge', 'Mwangi', 'Kariuki',\n 'Maina', 'Kipchoge', 'Chebet', 'Sang', 'Koech', 'Rono', 'Cheruiyot',\n 'Mutua', 'Kiptoo', 'Bett', 'Kirui', 'Tanui', 'Chirchir', 'Mohammed',\n 'Ahmed', 'Hassan', 'Ali', 'Omar', 'Ibrahim', 'John', 'Peter', 'David', 'James'\n ],\n firstNamesFemale: [\n 'Wanjiku', 'Achieng', 'Akinyi', 'Nyambura', 'Wambui', 'Njeri', 'Wangari',\n 'Chepkoech', 'Jepkoech', 'Cheptoo', 'Jepchumba', 'Chepngetich', 'Jelagat',\n 'Chemutai', 'Chebet', 'Cherono', 'Kiptoo', 'Bett', 'Auma', 'Adhiambo',\n 'Fatuma', 'Aisha', 'Zainab', 'Mary', 'Jane', 'Grace', 'Ruth', 'Esther', 'Faith'\n ],\n lastNames: [\n 'Kamau', 'Omondi', 'Wanjohi', 'Kimani', 'Njoroge', 'Mwangi', 'Kariuki',\n 'Maina', 'Kipchoge', 'Chebet', 'Sang', 'Koech', 'Rono', 'Cheruiyot',\n 'Mutua', 'Kiptoo', 'Bett', 'Kirui', 'Tanui', 'Chirchir', 'Mohammed',\n 'Ochieng', 'Odhiambo', 'Kimutai', 'Kiprop', 'Chumba', 'Kiplagat', 'Chepchumba'\n ],\n streets: [\n 'Kenyatta Avenue', 'Moi Avenue', 'Haile Selassie Avenue', 'University Way',\n 'Kimathi Street', 'Koinange Street', 'Kenyatta Street', 'Tom Mboya Street',\n 'Biashara Street', 'River Road', 'Ngong Road', 'Thika Road', 'Waiyaki Way',\n 'Mombasa Road', 'Langata Road', 'Karen Road', 'Limuru Road', 'Kiambu Road'\n ],\n cities: [\n 'Nairobi', 'Mombasa', 'Kisumu', 'Nakuru', 'Eldoret', 'Ruiru', 'Kikuyu',\n 'Kangundo-Tala', 'Malindi', 'Thika', 'Kitui', 'Karuri', 'Nyeri',\n 'Meru', 'Kakamega', 'Garissa', 'Kilifi', 'Bungoma', 'Naivasha',\n 'Kericho', 'Kiambu', 'Machakos', 'Embu', 'Kajiado', 'Voi', 'Isiolo'\n ],\n states: [\n 'Nairobi', 'Mombasa', 'Kisumu', 'Nakuru', 'Uasin Gishu', 'Kiambu',\n 'Machakos', 'Kakamega', 'Bungoma', 'Kilifi', 'Kajiado', 'Nyeri',\n 'Meru', 'Kericho', 'Nandi', 'Kisii', 'Nyamira', 'Homa Bay', 'Migori',\n 'Siaya', 'Busia', 'Vihiga', 'Trans Nzoia', 'Elgeyo Marakwet', 'Baringo',\n 'Laikipia', 'Samburu', 'Turkana', 'West Pokot', 'Marsabit', 'Isiolo',\n 'Wajir', 'Mandera', 'Garissa', 'Taita Taveta', 'Kwale', 'Tana River',\n 'Lamu', 'Taita', 'Kajiado', 'Narok', 'Bomet', 'Nyandarua', 'Kirinyaga',\n 'Muranga', 'Tharaka Nithi', 'Embu', 'Kitui', 'Makueni'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer',\n 'Operations Manager', 'Business Analyst', 'Product Manager', 'System Administrator',\n 'Quality Assurance Engineer', 'Technical Writer', 'Database Administrator',\n 'Network Engineer', 'DevOps Engineer', 'UX Designer', 'Content Manager'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const building = Random.int(1, 500);\n return `P.O. Box ${Random.int(1000, 99999)}, ${building} ${street}, ${city} ${zipCode}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const pk_PK: LocaleDefinition = {\n firstNamesMale: [\n 'Muhammad', 'Ahmed', 'Ali', 'Hassan', 'Usman', 'Abdul', 'Razaq', 'Kareem',\n 'Rahman', 'Rahim', 'Malik', 'Imran', 'Bilal', 'Faisal', 'Waseem', 'Naveed',\n 'Shahid', 'Pervez', 'Tariq', 'Zahid', 'Mansoor', 'Iqbal', 'Farooq', 'Sarfraz',\n 'Younis', 'Irfan', 'Kamran', 'Adnan', 'Sohail', 'Junaid', 'Omar', 'Hamza',\n 'Yusuf', 'Ibrahim', 'Musa', 'Dawood', 'Suleman', 'Haroon', 'Saad', 'Huzaifa'\n ],\n firstNamesFemale: [\n 'Fatima', 'Ayesha', 'Zainab', 'Khadija', 'Maryam', 'Sana', 'Hina', 'Nadia',\n 'Sadia', 'Farah', 'Shazia', 'Rubab', 'Mahnoor', 'Hafsa', 'Amina', 'Sumaya',\n 'Ruqayyah', 'Bushra', 'Kiran', 'Saima', 'Rabia', 'Tahira', 'Naheed', 'Shabana',\n 'Nargis', 'Parveen', 'Tasneem', 'Yasmin', 'Zahra', 'Sakina', 'Masooma', 'Nusrat'\n ],\n lastNames: [\n 'Khan', 'Malik', 'Ahmed', 'Ali', 'Hussain', 'Shah', 'Qureshi', 'Ansari',\n 'Farooqui', 'Siddiqui', 'Usmani', 'Chaudhry', 'Raja', 'Butt', 'Sheikh',\n 'Bhatti', 'Gill', 'Rana', 'Jutt', 'Gujjar', 'Awan', 'Syed', 'Naqvi',\n 'Zaidi', 'Rizvi', 'Abbas', 'Mirza', 'Baig', 'Mughal', 'Pathan', 'Afghan'\n ],\n streets: [\n 'Mall Road', 'Shahrah-e-Faisal', 'Kashmir Road', 'The Mall', 'Residency Road',\n 'Jinnah Avenue', 'Constitution Avenue', 'Atatürk Avenue', 'Blue Area',\n 'F-7 Markaz', 'G-9 Markaz', 'F-10 Markaz', 'I-8 Markaz', 'Defence Housing Authority',\n 'Gulberg', 'Model Town', 'DHA Phase', 'Bahria Town', 'Lake City', 'Garden Town'\n ],\n cities: [\n 'Karachi', 'Lahore', 'Faisalabad', 'Rawalpindi', 'Multan', 'Gujranwala',\n 'Hyderabad', 'Peshawar', 'Islamabad', 'Quetta', 'Sargodha', 'Sialkot',\n 'Bahawalpur', 'Sukkur', 'Larkana', 'Sheikhupura', 'Rahim Yar Khan',\n 'Jhang', 'Gujrat', 'Mardan', 'Mingora', 'Dera Ghazi Khan', 'Sahiwal',\n 'Nawabshah', 'Okara', 'Gilgit', 'Chitral', 'Skardu', 'Muzaffarabad'\n ],\n states: [\n 'Punjab', 'Sindh', 'Khyber Pakhtunkhwa', 'Balochistan',\n 'Islamabad Capital Territory', 'Gilgit-Baltistan', 'Azad Jammu and Kashmir',\n 'Federally Administered Tribal Areas'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer',\n 'Operations Manager', 'Business Analyst', 'Product Manager', 'System Administrator',\n 'Quality Assurance Engineer', 'Technical Writer', 'Database Administrator',\n 'Network Engineer', 'DevOps Engineer', 'UX Designer', 'Content Manager'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 999);\n const block = String.fromCharCode(65 + Random.int(0, 25));\n return `House ${houseNumber}, Block ${block}, ${street}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const bd_BD: LocaleDefinition = {\n firstNamesMale: [\n 'Rahim', 'Karim', 'Abdul', 'Mohammad', 'Ahmed', 'Ali', 'Hassan', 'Hussain',\n 'Ibrahim', 'Ismail', 'Kamal', 'Jamal', 'Mizanur', 'Habibur', 'Shafiqur',\n 'Atiqur', 'Matiur', 'Ziaur', 'Mokhlesur', 'Golam', 'Abul', 'Nurul',\n 'Harun', 'Rafiqul', 'Badrul', 'Shamsul', 'Najmul', 'Mahbubur', 'Anisur', 'Mosharraf'\n ],\n firstNamesFemale: [\n 'Rahima', 'Karima', 'Fatema', 'Ayesha', 'Khadija', 'Nasrin', 'Salma',\n 'Ruma', 'Sultana', 'Parvin', 'Shirin', 'Hasina', 'Roksana', 'Tahmina',\n 'Nargis', 'Shamima', 'Nusrat', 'Rubina', 'Sultana', 'Jahanara', 'Begum',\n 'Amina', 'Safia', 'Zohra', 'Momena', 'Hosne', 'Kohinoor', 'Feroza', 'Laila', 'Taslima'\n ],\n lastNames: [\n 'Ahmed', 'Khan', 'Islam', 'Hassan', 'Ali', 'Mohammad', 'Rahman', 'Karim',\n 'Haque', 'Hossain', 'Miah', 'Sikder', 'Bhuiyan', 'Chowdhury', 'Talukder',\n 'Sarker', 'Das', 'Roy', 'Ghosh', 'Paul', 'Gupta', 'Sen', 'Barman',\n 'Rabbani', 'Alam', 'Uddin', 'Mia', 'Biswas', 'Mandal', 'Khatun'\n ],\n streets: [\n 'Gulshan Avenue', 'Banani Road', 'Dhanmondi Road', 'Mirpur Road', 'Satmasjid Road',\n 'Kemal Ataturk Avenue', 'Bir Uttam Rafiqul Islam Avenue', 'Rokeya Sarani',\n 'Kazi Nazrul Islam Avenue', 'Sonargaon Road', 'Airport Road', 'Dhaka-Chittagong Highway',\n 'Shahbag Road', 'Elephant Road', 'Satrasta Road', 'Green Road', 'Panthapath',\n 'West Panthapath', 'Hatirjheel Road', 'Progoti Sarani', 'Jahangir Road'\n ],\n cities: [\n 'Dhaka', 'Chittagong', 'Khulna', 'Rajshahi', 'Sylhet', 'Barisal', 'Rangpur',\n 'Comilla', 'Gazipur', 'Narayanganj', 'Mymensingh', 'Bogra', 'Dinajpur',\n 'Jessore', 'Pabna', 'Sirajganj', 'Tangail', 'Jamalpur', 'Kushtia',\n 'Faridpur', 'Noakhali', 'Feni', 'Cox\\'s Bazar', 'Brahmanbaria', 'Habiganj'\n ],\n states: [\n 'Dhaka', 'Chittagong', 'Khulna', 'Rajshahi', 'Sylhet', 'Barisal', 'Rangpur', 'Mymensingh'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer',\n 'Operations Manager', 'Business Analyst', 'Product Manager', 'System Administrator',\n 'Quality Assurance Engineer', 'Technical Writer', 'Database Administrator',\n 'Network Engineer', 'DevOps Engineer', 'UX Designer', 'Content Manager'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 999);\n const road = Random.int(1, 200);\n const block = Random.int(1, 50);\n return `House ${houseNumber}, Road ${road}, Block ${block}, ${street}, ${city} ${zipCode}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ir_IR: LocaleDefinition = {\n firstNamesMale: [\n 'Mohammad', 'Ali', 'Reza', 'Hossein', 'Ahmad', 'Mahmoud', 'Mehdi', 'Javad',\n 'Hamid', 'Masoud', 'Farid', 'Behrouz', 'Kourosh', 'Ardeshir', 'Babak',\n 'Shahram', 'Parviz', 'Amir', 'Kamran', 'Hassan', 'Hussein', 'Abbas',\n 'Jafar', 'Saeed', 'Omid', 'Ramin', 'Saman', 'Arash', 'Borzou', 'Farhad'\n ],\n firstNamesFemale: [\n 'Fateme', 'Zahra', 'Maryam', 'Zainab', 'Khadijeh', 'Somayeh', 'Masoumeh',\n 'Fatemeh', 'Hanieh', 'Narges', 'Elham', 'Marzieh', 'Leila', 'Nasrin',\n 'Shirin', 'Parisa', 'Farnaz', 'Nazanin', 'Roya', 'Mahnaz', 'Shima',\n 'Giti', 'Simin', 'Fariba', 'Shahla', 'Parvaneh', 'Azadeh', 'Mina', 'Sara', 'Negar'\n ],\n lastNames: [\n 'Hosseini', 'Moradi', 'Karimi', 'Ahmadi', 'Rezaei', 'Mohammadi', 'Jafari',\n 'Rashidi', 'Bagheri', 'Hasani', 'Nazari', 'Safari', 'Farahani', 'Yousefi',\n 'Khani', 'Mirzaei', 'Haidari', 'Majidi', 'Shahidi', 'Ebrahimi', 'Ghasemi',\n 'Tehrani', 'Isfahani', 'Shirazi', 'Tabatabaei', 'Hosseini', 'Rahimi', 'Zahedi'\n ],\n streets: [\n 'Valiasr Street', 'Enghelab Street', 'Revolution Street', 'Ferdowsi Street',\n 'Saadi Street', 'Hafez Street', 'Shariati Street', 'Mirdamad Boulevard',\n 'Jordan Street', 'Africa Boulevard', 'Argentina Square', 'Tajrish Square',\n 'Vanak Square', 'Seven Tir Square', 'Imam Khomeini Street', 'Ferdowsi Avenue'\n ],\n cities: [\n 'Tehran', 'Mashhad', 'Isfahan', 'Karaj', 'Shiraz', 'Tabriz', 'Qom',\n 'Ahvaz', 'Kermanshah', 'Urmia', 'Rasht', 'Zahedan', 'Hamadan', 'Kerman',\n 'Yazd', 'Ardabil', 'Bandar Abbas', 'Arak', 'Zanjan', 'Sanandaj',\n 'Qazvin', 'Khorramabad', 'Gorgan', 'Sari', 'Babol', 'Amol', 'Bushehr'\n ],\n states: [\n 'Tehran', 'Razavi Khorasan', 'Isfahan', 'Alborz', 'Fars', 'East Azerbaijan',\n 'Qom', 'Khuzestan', 'Kermanshah', 'West Azerbaijan', 'Gilan', 'Sistan and Baluchestan',\n 'Hamadan', 'Kerman', 'Yazd', 'Ardabil', 'Hormozgan', 'Markazi', 'Zanjan',\n 'Kurdistan', 'Qazvin', 'Lorestan', 'Golestan', 'Mazandaran', 'Bushehr'\n ],\n zipCodePattern: '##########',\n jobTitles: [\n 'مهندس نرمافزار', 'مدیر پروژه', 'تحلیلگر داده', 'مدیر بازاریابی',\n 'نماینده فروش', 'حسابدار', 'مدیر منابع انسانی', 'طراح', 'مدیر عملیات',\n 'تحلیلگر کسبوکار', 'مدیر محصول', 'مدیر سیستم', 'مهندس تضمین کیفیت',\n 'نویسنده فنی', 'مدیر پایگاه داده', 'مهندس شبکه', 'مهندس دوآپس'\n ],\n departments: [\n 'مهندسی', 'بازاریابی', 'فروش', 'منابع انسانی', 'مالی', 'عملیات',\n 'پشتیبانی مشتری', 'فناوری اطلاعات', 'تحقیق و توسعه', 'حقوقی',\n 'مدیریت محصول', 'طراحی', 'تضمین کیفیت', 'اداری'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n const unit = Random.int(1, 50);\n return `${street} ${number}, Unit ${unit}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000000000, 9999999999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ma_MA: LocaleDefinition = {\n firstNamesMale: [\n 'Mohammed', 'Ahmed', 'Ali', 'Hassan', 'Hussain', 'Abdul', 'Rahman', 'Rahim',\n 'Karim', 'Malik', 'Imran', 'Bilal', 'Faisal', 'Waseem', 'Naveed', 'Shahid',\n 'Youssef', 'Omar', 'Hamza', 'Yusuf', 'Ibrahim', 'Musa', 'Ismail', 'Zakaria',\n 'Ayoub', 'Reda', 'Tarik', 'Saïd', 'Rachid', 'Mustapha', 'Hicham', 'Karim'\n ],\n firstNamesFemale: [\n 'Fatima', 'Ayesha', 'Zainab', 'Khadija', 'Maryam', 'Sana', 'Hina', 'Nadia',\n 'Sadia', 'Farah', 'Shazia', 'Rubab', 'Mahnoor', 'Hafsa', 'Amina', 'Sumaya',\n 'Khadijah', 'Aicha', 'Rokia', 'Zahra', 'Salma', 'Meryem', 'Rajaa', 'Latifa',\n 'Samira', 'Naima', 'Hassna', 'Bahija', 'Kaltoum', 'Oumaima', 'Yasmin', 'Loubna'\n ],\n lastNames: [\n 'El Idrissi', 'El Fassi', 'El Filali', 'El Alami', 'El Hassani', 'El Otmani',\n 'El Baghdadi', 'El Mekki', 'El Fassi', 'El Marrakchi', 'El Ouazzani', 'El Tetouani',\n 'El Safi', 'El Jadidi', 'El Kelaa', 'El Bouayachi', 'El Guerrouj', 'El Haddad',\n 'El Benna', 'El Amrani', 'El Kadiri', 'El Bouhali', 'El Ghazi', 'El Moutawakil'\n ],\n streets: [\n 'Avenue Mohammed V', 'Boulevard Hassan II', 'Avenue des FAR', 'Rue Prince Moulay Abdellah',\n 'Avenue Allal Ben Abdellah', 'Boulevard Zerktouni', 'Avenue Moulay Youssef', 'Rue Ibn Batouta',\n 'Avenue Omar Ibn Al Khattab', 'Boulevard d\\'Anfa', 'Corniche Ain Diab', 'Boulevard de la Corniche',\n 'Avenue Mers Sultan', 'Rue Tata', 'Avenue Fquih El Gabbas', 'Boulevard Abdelmoumen'\n ],\n cities: [\n 'Casablanca', 'Rabat', 'Fès', 'Marrakech', 'Tanger', 'Agadir', 'Meknès', 'Oujda',\n 'Kénitra', 'Tétouan', 'Safi', 'El Jadida', 'Nador', 'Béni Mellal', 'Khouribga',\n 'Settat', 'Larache', 'Ksar El Kebir', 'Guelmim', 'Berrechid', 'Taza', 'Mohammedia'\n ],\n states: [\n 'Casablanca-Settat', 'Rabat-Salé-Kénitra', 'Fès-Meknès', 'Marrakech-Safi',\n 'Tanger-Tétouan-Al Hoceïma', 'Souss-Massa', 'Oriental', 'Béni Mellal-Khénifra',\n 'Drâa-Tafilalet', 'Guelmim-Oued Noun', 'Laâyoune-Sakia El Hamra', 'Dakhla-Oued Ed-Dahab'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Ingénieur Logiciel', 'Chef de Projet', 'Analyste de Données', 'Responsable Marketing',\n 'Commercial', 'Comptable', 'Responsable RH', 'Designer', 'Responsable des Opérations',\n 'Analyste d\\'Affaires', 'Chef de Produit', 'Administrateur Système', 'Ingénieur Qualité',\n 'Rédacteur Technique', 'Administrateur de Base de Données', 'Ingénieur Réseau', 'DevOps'\n ],\n departments: [\n 'Ingénierie', 'Marketing', 'Ventes', 'Ressources Humaines', 'Finances',\n 'Opérations', 'Service Client', 'IT', 'Recherche et Développement',\n 'Juridique', 'Gestion de Produits', 'Design', 'Assurance Qualité', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n const quartier = Random.pick(['Centre Ville', 'Agdal', 'Hay Riad', 'Ocean', 'Massira', 'Narjiss']);\n return `${number} ${street}, ${quartier}, ${city} ${zipCode}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const co_CO: LocaleDefinition = {\n firstNamesMale: [\n 'Juan', 'Carlos', 'Andrés', 'Luis', 'Jorge', 'Mario', 'José', 'Pedro',\n 'Miguel', 'Ángel', 'Rafael', 'Antonio', 'Francisco', 'Javier', 'Alejandro',\n 'Sergio', 'Diego', 'Fernando', 'Gustavo', 'Hernán', 'Mauricio', 'Pablo',\n 'Ricardo', 'Roberto', 'Óscar', 'César', 'Alberto', 'Eduardo', 'Manuel', 'Raúl'\n ],\n firstNamesFemale: [\n 'María', 'Ana', 'Carmen', 'Lucía', 'Sandra', 'Patricia', 'Luz', 'Nancy',\n 'Linda', 'Gloria', 'Beatriz', 'Diana', 'Mónica', 'Silvia', 'Andrea',\n 'Paola', 'Valentina', 'Daniela', 'Mariana', 'Alejandra', 'Gabriela',\n 'Isabella', 'Sofía', 'Camila', 'Valeria', 'Natalia', 'Carolina', 'Juliana', 'Laura'\n ],\n lastNames: [\n 'García', 'Rodríguez', 'Martínez', 'López', 'González', 'Hernández',\n 'Pérez', 'Sánchez', 'Ramírez', 'Torres', 'Flores', 'Rivera', 'Gómez',\n 'Díaz', 'Morales', 'Ruiz', 'Jiménez', 'Vásquez', 'Castillo', 'Mendoza',\n 'Rojas', 'Vargas', 'Moreno', 'Ortiz', 'Muñoz', 'Peña', 'Delgado', 'Pacheco'\n ],\n streets: [\n 'Carrera 7', 'Carrera 15', 'Carrera 11', 'Calle 85', 'Calle 100',\n 'Avenida El Dorado', 'Avenida Jiménez', 'Avenida Caracas', 'Avenida Boyacá',\n 'Carrera 53', 'Carrera 43A', 'Calle 72', 'Calle 127', 'Transversal 17',\n 'Avenida Suba', 'Carrera 9', 'Calle 26', 'Avenida Chile', 'Zona Rosa'\n ],\n cities: [\n 'Bogotá', 'Medellín', 'Cali', 'Barranquilla', 'Cartagena', 'Bucaramanga',\n 'Pereira', 'Santa Marta', 'Ibagué', 'Pasto', 'Manizales', 'Cúcuta',\n 'Soledad', 'Armenia', 'Villavicencio', 'Valledupar', 'Montería',\n 'Neiva', 'Palmira', 'Popayán', 'Sincelejo', 'Tunja', 'Florencia', 'Quibdó'\n ],\n states: [\n 'Bogotá D.C.', 'Antioquia', 'Valle del Cauca', 'Atlántico', 'Bolívar',\n 'Santander', 'Risaralda', 'Magdalena', 'Tolima', 'Nariño', 'Caldas',\n 'Norte de Santander', 'Atlántico', 'Quindío', 'Meta', 'Cesar', 'Córdoba',\n 'Huila', 'Valle del Cauca', 'Cauca', 'Sucre', 'Boyacá', 'Caquetá', 'Chocó'\n ],\n zipCodePattern: '######',\n jobTitles: [\n 'Ingeniero de Software', 'Gerente de Proyecto', 'Analista de Datos', 'Gerente de Marketing',\n 'Representante de Ventas', 'Contador', 'Gerente de Recursos Humanos', 'Diseñador',\n 'Gerente de Operaciones', 'Analista de Negocio', 'Gerente de Producto', 'Administrador de Sistemas',\n 'Ingeniero de Calidad', 'Escritor Técnico', 'Administrador de Base de Datos',\n 'Ingeniero de Redes', 'Ingeniero DevOps', 'Diseñador UX', 'Gerente de Contenido'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas',\n 'Operaciones', 'Servicio al Cliente', 'TI', 'Investigación y Desarrollo',\n 'Legal', 'Gestión de Productos', 'Diseño', 'Aseguramiento de Calidad', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n const apartment = Random.int(1, 500);\n return `${street} # ${number}-${Random.int(10, 99)}, Apto ${apartment}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(110111, 999999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const pe_PE: LocaleDefinition = {\n firstNamesMale: [\n 'José', 'Juan', 'Carlos', 'Luis', 'Miguel', 'Pedro', 'Jorge', 'Mario',\n 'Víctor', 'Manuel', 'Raúl', 'Fernando', 'Alberto', 'Francisco', 'Antonio',\n 'Ricardo', 'Roberto', 'César', 'Óscar', 'Gustavo', 'Hugo', 'Sergio',\n 'Diego', 'Alejandro', 'Pablo', 'Andrés', 'Mauricio', 'Eduardo', 'Jesús', 'Rubén'\n ],\n firstNamesFemale: [\n 'María', 'Carmen', 'Ana', 'Rosa', 'Luz', 'Juana', 'Patricia', 'Sandra',\n 'Elizabeth', 'Nancy', 'Linda', 'Gloria', 'Beatriz', 'Diana', 'Mónica',\n 'Silvia', 'Andrea', 'Paola', 'Valentina', 'Daniela', 'Mariana', 'Alejandra',\n 'Gabriela', 'Isabella', 'Sofía', 'Camila', 'Valeria', 'Natalia', 'Carolina', 'Juliana'\n ],\n lastNames: [\n 'García', 'Rodríguez', 'Sánchez', 'Flores', 'Torres', 'Ramírez', 'Pérez',\n 'Díaz', 'González', 'Martínez', 'López', 'Hernández', 'Gómez', 'Ruiz',\n 'Castillo', 'Mendoza', 'Rojas', 'Vargas', 'Moreno', 'Ortiz', 'Muñoz',\n 'Peña', 'Delgado', 'Pacheco', 'Vásquez', 'Jiménez', 'Morales', 'Chávez', 'Reyes', 'Guerrero'\n ],\n streets: [\n 'Avenida Javier Prado', 'Avenida Arequipa', 'Avenida Larco', 'Avenida Pardo',\n 'Avenida Benavides', 'Avenida La Marina', 'Avenida Universitaria', 'Avenida Tacna',\n 'Avenida Venezuela', 'Avenida Colonial', 'Jirón de la Unión', 'Avenida Grau',\n 'Avenida Almte. Miguel Grau', 'Avenida 28 de Julio', 'Avenida Angamos', 'Avenida Reducto'\n ],\n cities: [\n 'Lima', 'Arequipa', 'Trujillo', 'Chiclayo', 'Piura', 'Iquitos', 'Cusco',\n 'Huancayo', 'Tacna', 'Pucallpa', 'Ica', 'Juliaca', 'Sullana', 'Ayacucho',\n 'Cajamarca', 'Puno', 'Tumbes', 'Huánuco', 'Tarapoto', 'Chincha Alta',\n 'Huaraz', 'Cerro de Pasco', 'Moquegua', 'Tacna', 'Abancay', 'Puerto Maldonado'\n ],\n states: [\n 'Lima', 'Arequipa', 'La Libertad', 'Lambayeque', 'Piura', 'Loreto', 'Cusco',\n 'Junín', 'Tacna', 'Ucayali', 'Ica', 'Puno', 'Piura', 'Ayacucho', 'Cajamarca',\n 'Puno', 'Tumbes', 'Huánuco', 'San Martín', 'Ica', 'Áncash', 'Pasco',\n 'Moquegua', 'Tacna', 'Apurímac', 'Madre de Dios', 'Amazonas', 'Huancavelica'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Ingeniero de Software', 'Gerente de Proyecto', 'Analista de Datos', 'Gerente de Marketing',\n 'Representante de Ventas', 'Contador', 'Gerente de Recursos Humanos', 'Diseñador',\n 'Gerente de Operaciones', 'Analista de Negocio', 'Gerente de Producto', 'Administrador de Sistemas',\n 'Ingeniero de Calidad', 'Escritor Técnico', 'Administrador de Base de Datos',\n 'Ingeniero de Redes', 'Ingeniero DevOps', 'Diseñador UX', 'Gerente de Contenido'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas',\n 'Operaciones', 'Servicio al Cliente', 'TI', 'Investigación y Desarrollo',\n 'Legal', 'Gestión de Productos', 'Diseño', 'Aseguramiento de Calidad', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 9999);\n const urbanizacion = Random.pick(['Los Olivos', 'San Isidro', 'Miraflores', 'San Borja', 'La Molina']);\n return `${urbanizacion}, ${street} ${number}, ${city} ${zipCode}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1001, 9999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ve_VE: LocaleDefinition = {\n firstNamesMale: [\n 'José', 'Carlos', 'Luis', 'Miguel', 'Juan', 'Pedro', 'Jorge', 'Mario',\n 'Rafael', 'Antonio', 'Francisco', 'Javier', 'Alejandro', 'Sergio', 'Diego',\n 'Fernando', 'Gustavo', 'Mauricio', 'Pablo', 'Ricardo', 'Roberto', 'Óscar',\n 'César', 'Alberto', 'Eduardo', 'Manuel', 'Raúl', 'Andrés', 'Víctor', 'Hernán'\n ],\n firstNamesFemale: [\n 'María', 'Carmen', 'Ana', 'Rosa', 'Luz', 'Patricia', 'Sandra', 'Elizabeth',\n 'Nancy', 'Linda', 'Gloria', 'Beatriz', 'Diana', 'Mónica', 'Silvia',\n 'Andrea', 'Paola', 'Valentina', 'Daniela', 'Mariana', 'Alejandra', 'Gabriela',\n 'Isabella', 'Sofía', 'Camila', 'Valeria', 'Natalia', 'Carolina', 'Juliana', 'Laura'\n ],\n lastNames: [\n 'García', 'Rodríguez', 'Hernández', 'Pérez', 'Sánchez', 'Ramírez', 'López',\n 'González', 'Martínez', 'Díaz', 'Flores', 'Torres', 'Gómez', 'Ruiz',\n 'Castillo', 'Mendoza', 'Rojas', 'Vargas', 'Moreno', 'Ortiz', 'Muñoz',\n 'Peña', 'Delgado', 'Pacheco', 'Vásquez', 'Jiménez', 'Morales', 'Chávez', 'Reyes', 'Guerrero'\n ],\n streets: [\n 'Avenida Francisco de Miranda', 'Avenida Libertador', 'Avenida Bolívar',\n 'Avenida Urdaneta', 'Avenida Panteón', 'Calle Carabobo', 'Calle Vargas',\n 'Avenida Los Próceres', 'Avenida Principal de Las Mercedes', 'Avenida Río de Janeiro',\n 'Avenida San Martín', 'Avenida Victoria', 'Calle El Conde', 'Avenida Intercomunal'\n ],\n cities: [\n 'Caracas', 'Maracaibo', 'Valencia', 'Barquisimeto', 'Maracay', 'Ciudad Guayana',\n 'Barcelona', 'Maturín', 'Ciudad Bolívar', 'Cumana', 'Mérida', 'San Cristóbal',\n 'Cabimas', 'Turmero', 'Barinas', 'Puerto La Cruz', 'Petare', 'Guarenas',\n 'Guatire', 'Acarigua', 'Guanare', 'Valera', 'Coro', 'Los Teques', 'Carúpano'\n ],\n states: [\n 'Distrito Capital', 'Zulia', 'Carabobo', 'Lara', 'Aragua', 'Bolívar',\n 'Anzoátegui', 'Monagas', 'Mérida', 'Táchira', 'Sucre', 'Barinas',\n 'Portuguesa', 'Falcón', 'Miranda', 'Yaracuy', 'Cojedes', 'Apure',\n 'Nueva Esparta', 'Trujillo', 'Vargas', 'Amazonas', 'Delta Amacuro'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Ingeniero de Software', 'Gerente de Proyecto', 'Analista de Datos', 'Gerente de Marketing',\n 'Representante de Ventas', 'Contador', 'Gerente de Recursos Humanos', 'Diseñador',\n 'Gerente de Operaciones', 'Analista de Negocio', 'Gerente de Producto', 'Administrador de Sistemas',\n 'Ingeniero de Calidad', 'Escritor Técnico', 'Administrador de Base de Datos',\n 'Ingeniero de Redes', 'Ingeniero DevOps', 'Diseñador UX', 'Gerente de Contenido'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas',\n 'Operaciones', 'Servicio al Cliente', 'TI', 'Investigación y Desarrollo',\n 'Legal', 'Gestión de Productos', 'Diseño', 'Aseguramiento de Calidad', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n const building = Random.pick(['Edificio', 'Torre', 'Residencia']);\n const name = Random.pick(['Las Palmas', 'El Rosal', 'La Castellana', 'Altamira', 'Chacao']);\n return `${building} ${name}, ${street} ${number}, ${city} ${zipCode}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1010, 9999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const gt_GT: LocaleDefinition = {\n firstNamesMale: [\n 'José', 'Juan', 'Carlos', 'Luis', 'Miguel', 'Pedro', 'Jorge', 'Mario',\n 'Víctor', 'Manuel', 'Raúl', 'Fernando', 'Alberto', 'Francisco', 'Antonio',\n 'Ricardo', 'Roberto', 'César', 'Óscar', 'Gustavo', 'Hugo', 'Sergio',\n 'Diego', 'Alejandro', 'Pablo', 'Andrés', 'Mauricio', 'Eduardo', 'Jesús', 'Rubén'\n ],\n firstNamesFemale: [\n 'María', 'Carmen', 'Ana', 'Rosa', 'Luz', 'Juana', 'Patricia', 'Sandra',\n 'Elizabeth', 'Nancy', 'Linda', 'Gloria', 'Beatriz', 'Diana', 'Mónica',\n 'Silvia', 'Andrea', 'Paola', 'Valentina', 'Daniela', 'Mariana', 'Alejandra',\n 'Gabriela', 'Isabella', 'Sofía', 'Camila', 'Valeria', 'Natalia', 'Carolina', 'Juliana'\n ],\n lastNames: [\n 'García', 'Rodríguez', 'Hernández', 'Pérez', 'Sánchez', 'Ramírez', 'López',\n 'González', 'Martínez', 'Díaz', 'Flores', 'Torres', 'Gómez', 'Ruiz',\n 'Castillo', 'Mendoza', 'Rojas', 'Vargas', 'Moreno', 'Ortiz', 'Muñoz',\n 'González', 'Ruiz', 'Hernández', 'Morales', 'Chávez', 'Reyes', 'Guerrero', 'Méndez', 'Cruz'\n ],\n streets: [\n 'Avenida La Reforma', 'Avenida Bolívar', 'Avenida Hincapié', 'Avenida Simeón Cañas',\n 'Avenida Elena', 'Calle del Comercio', 'Avenida Petapa', 'Avenida Aguilar Batres',\n 'Avenida Las Américas', 'Avenida Soto', 'Avenida Gualberto Campos', 'Avenida 18',\n 'Avenida 12', 'Avenida 7', 'Avenida 3', 'Avenida 1', 'Avenida 30', 'Avenida 25'\n ],\n cities: [\n 'Ciudad de Guatemala', 'Mixco', 'Villa Nueva', 'Petapa', 'San Juan Sacatepéquez',\n 'Quetzaltenango', 'Villa Canales', 'Escuintla', 'Chinautla', 'Chimaltenango',\n 'Huehuetenango', 'Amatitlán', 'Totonicapán', 'Santa Catarina Pinula', 'Cobán',\n 'Puerto Barrios', 'San Marcos', 'Jalapa', 'Jutiapa', 'Antigua Guatemala', 'Retalhuleu'\n ],\n states: [\n 'Guatemala', 'Huehuetenango', 'San Marcos', 'Quiché', 'Alta Verapaz',\n 'Petén', 'Izabal', 'Baja Verapaz', 'Quetzaltenango', 'Totonicapán',\n 'Sololá', 'Suchitepéquez', 'Retalhuleu', 'Chimaltenango', 'Sacatepéquez',\n 'Escuintla', 'Santa Rosa', 'Jutiapa', 'Jalapa', 'Zacapa', 'El Progreso'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Ingeniero de Software', 'Gerente de Proyecto', 'Analista de Datos', 'Gerente de Marketing',\n 'Representante de Ventas', 'Contador', 'Gerente de Recursos Humanos', 'Diseñador',\n 'Gerente de Operaciones', 'Analista de Negocio', 'Gerente de Producto', 'Administrador de Sistemas',\n 'Ingeniero de Calidad', 'Escritor Técnico', 'Administrador de Base de Datos',\n 'Ingeniero de Redes', 'Ingeniero DevOps', 'Diseñador UX', 'Gerente de Contenido'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas',\n 'Operaciones', 'Servicio al Cliente', 'TI', 'Investigación y Desarrollo',\n 'Legal', 'Gestión de Productos', 'Diseño', 'Aseguramiento de Calidad', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 9999);\n const zone = Random.int(1, 25);\n return `${street} ${number}, Zona ${zone}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1001, 99999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const cr_CR: LocaleDefinition = {\n firstNamesMale: [\n 'José', 'Juan', 'Carlos', 'Luis', 'Miguel', 'Pedro', 'Jorge', 'Mario',\n 'Víctor', 'Manuel', 'Raúl', 'Fernando', 'Alberto', 'Francisco', 'Antonio',\n 'Ricardo', 'Roberto', 'César', 'Óscar', 'Gustavo', 'Hugo', 'Sergio',\n 'Diego', 'Alejandro', 'Pablo', 'Andrés', 'Mauricio', 'Eduardo', 'Jesús', 'Rubén'\n ],\n firstNamesFemale: [\n 'María', 'Carmen', 'Ana', 'Rosa', 'Luz', 'Juana', 'Patricia', 'Sandra',\n 'Elizabeth', 'Nancy', 'Linda', 'Gloria', 'Beatriz', 'Diana', 'Mónica',\n 'Silvia', 'Andrea', 'Paola', 'Valentina', 'Daniela', 'Mariana', 'Alejandra',\n 'Gabriela', 'Isabella', 'Sofía', 'Camila', 'Valeria', 'Natalia', 'Carolina', 'Juliana'\n ],\n lastNames: [\n 'García', 'Rodríguez', 'Hernández', 'Pérez', 'Sánchez', 'Ramírez', 'López',\n 'González', 'Martínez', 'Díaz', 'Flores', 'Torres', 'Gómez', 'Ruiz',\n 'Castillo', 'Mendoza', 'Rojas', 'Vargas', 'Moreno', 'Ortiz', 'Muñoz',\n 'Jiménez', 'Morales', 'Chávez', 'Reyes', 'Guerrero', 'Méndez', 'Cruz', 'Castro', 'Solís'\n ],\n streets: [\n 'Avenida Central', 'Avenida Segunda', 'Avenida Cuarta', 'Avenida Sexta',\n 'Avenida Octava', 'Calle 1', 'Calle 3', 'Calle 5', 'Calle 7', 'Calle 9',\n 'Paseo Colón', 'Avenida 10', 'Avenida 12', 'Avenida 14', 'Avenida 16',\n 'Avenida 18', 'Avenida 20', 'Avenida 22', 'Avenida 24', 'Avenida 26',\n 'Avenida 28', 'Avenida 30', 'Avenida 32', 'Avenida 34', 'Avenida 36'\n ],\n cities: [\n 'San José', 'Limón', 'Alajuela', 'Heredia', 'Cartago', 'Puntarenas',\n 'Liberia', 'Paraíso', 'Pérez Zeledón', 'San Isidro', 'Curridabat',\n 'San Vicente', 'Purral', 'San Felipe', 'Desamparados', 'San Rafael',\n 'San Francisco', 'Guadalupe', 'San Vicente', 'San Pablo', 'Santa Ana'\n ],\n states: [\n 'San José', 'Alajuela', 'Cartago', 'Heredia', 'Guanacaste', 'Puntarenas', 'Limón'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Ingeniero de Software', 'Gerente de Proyecto', 'Analista de Datos', 'Gerente de Marketing',\n 'Representante de Ventas', 'Contador', 'Gerente de Recursos Humanos', 'Diseñador',\n 'Gerente de Operaciones', 'Analista de Negocio', 'Gerente de Producto', 'Administrador de Sistemas',\n 'Ingeniero de Calidad', 'Escritor Técnico', 'Administrador de Base de Datos',\n 'Ingeniero de Redes', 'Ingeniero DevOps', 'Diseñador UX', 'Gerente de Contenido'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas',\n 'Operaciones', 'Servicio al Cliente', 'TI', 'Investigación y Desarrollo',\n 'Legal', 'Gestión de Productos', 'Diseño', 'Aseguramiento de Calidad', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 9999);\n const landmark = Random.pick(['100m Norte', '100m Sur', '100m Este', '100m Oeste', '50m al Lago']);\n return `${street}, ${landmark}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 99999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const tw_TW: LocaleDefinition = {\n lastNames: [\n 'Chen', 'Lin', 'Huang', 'Zhang', 'Li', 'Wang', 'Wu', 'Liu', 'Tsai', 'Yang',\n 'Chen', 'Lin', 'Huang', 'Zhang', 'Li', 'Wang', 'Wu', 'Liu', 'Tsai', 'Yang',\n 'Chou', 'Hsu', 'Sun', 'Hu', 'Chuang', 'Kuo', 'Kao', 'Liao', 'Lai', 'Chien'\n ],\n firstNamesMale: [\n 'Wei', 'Jun', 'Ming', 'Tao', 'Jie', 'Qiang', 'Lei', 'Yong', 'Jian', 'Ping',\n 'Bin', 'Feng', 'Long', 'Chao', 'Yang', 'Lin', 'Hao', 'Gang', 'Kai', 'Peng',\n 'Zhi', 'Yun', 'Bo', 'Hua', 'Xin', 'Liang', 'Chen', 'Dong', 'Fei', 'Xiong'\n ],\n firstNamesFemale: [\n 'Li', 'Fang', 'Xiu', 'Ying', 'Min', 'Jing', 'Juan', 'Yan', 'Hong', 'Mei',\n 'Xia', 'Qing', 'Lan', 'Yue', 'Xin', 'Ling', 'Na', 'Hui', 'Rong', 'Dan',\n 'Shan', 'Yun', 'Ping', 'Jie', 'Xue', 'Fen', 'Yu', 'Qian', 'Shu', 'Wen'\n ],\n streets: [\n 'Zhongshan Road', 'Zhongxiao Road', 'Renai Road', 'Minsheng Road',\n 'Minquan Road', 'Heping Road', 'Jianguo Road', 'Guangfu Road',\n 'Fuxing Road', 'Jianguo South Road', 'Xinyi Road', 'Songren Road',\n 'Nanjing East Road', 'Beijing East Road', 'Shanghai Street', 'Guangzhou Street'\n ],\n cities: [\n 'Taipei', 'New Taipei', 'Taoyuan', 'Taichung', 'Tainan', 'Kaohsiung',\n 'Hsinchu', 'Keelung', 'Chiayi', 'Changhua', 'Hualien', 'Pingtung',\n 'Yilan', 'Taitung', 'Penghu', 'Kinmen', 'Matsu', 'Nantou', 'Miaoli', 'Yunlin'\n ],\n states: [\n 'Taipei', 'New Taipei', 'Taoyuan', 'Taichung', 'Tainan', 'Kaohsiung',\n 'Hsinchu', 'Keelung', 'Chiayi', 'Changhua', 'Hualien', 'Pingtung',\n 'Yilan', 'Taitung', 'Penghu', 'Kinmen', 'Lienchiang', 'Nantou', 'Miaoli', 'Yunlin'\n ],\n zipCodePattern: '###',\n jobTitles: [\n '軟體工程師', '專案經理', '數據分析師', '行銷經理',\n '業務代表', '會計師', '人資經理', '設計師',\n '營運經理', '業務分析師', '產品經理', '系統管理員',\n '品質保證工程師', '技術作家', '資料庫管理員',\n '網路工程師', 'DevOps 工程師', 'UX 設計師', '內容管理師'\n ],\n departments: [\n '工程部', '行銷部', '業務部', '人力資源部', '財務部',\n '營運部', '客服部', '資訊部', '研發部',\n '法務部', '產品管理部', '設計部', '品質保證部', '行政部'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${lastName} ${firstName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const section = Random.int(1, 5);\n const number = Random.int(1, 500);\n const floor = Random.int(1, 20);\n return `${zipCode} ${state} ${city} ${street} ${section}段${number}號${floor}樓`;\n },\n\n generateZipCode(): string {\n return String(Random.int(100, 999));\n },\n\n phoneFormats: [\n '(02) ####-####',\n '(03) ###-###',\n '(04) ###-###',\n '(07) ###-###',\n '09##-###-###',\n '+886-9##-###-###'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com.tw', 'hotmail.com', 'outlook.com',\n 'pchome.com.tw', 'hinet.net', 'seed.net.tw', 'msn.com'\n ],\n\n companyNames: [\n '台積電', '鴻海精密工業', '華碩', '宏碁', '聯發科',\n '台灣中油', '中華電信', '國泰金控', '富邦金控', '玉山銀行',\n '長榮海運', '陽明海運', '統一企業', '康師傅控股', '旺旺集團'\n ],\n\n industries: [\n '科技業', '金融業', '製造業', '服務業', '零售業',\n '醫療業', '教育業', '電信業', '運輸業', '建築業'\n ],\n\n catchPhrases: [\n '創新領先,追求卓越', '誠信經營,客戶至上', '品質第一,服務滿意',\n '科技以人为本', '創造價值,共享未來', '專業創新,永續經營'\n ]\n};\n","import { Mimic } from './core/mimic';\nimport { localeRegistry } from './core/registry';\n\n// Import existing locales\nimport { en_US } from './locales/en_US';\nimport { ja_JP } from './locales/ja_JP';\nimport { id_ID } from './locales/id_ID';\nimport { de_DE } from './locales/de_DE';\nimport { fr_FR } from './locales/fr_FR';\nimport { pt_BR } from './locales/pt_BR';\nimport { ko_KR } from './locales/ko_KR';\nimport { en_AU } from './locales/en_AU';\n\n// Import new locales (20 original)\nimport { zh_CN } from './locales/zh_CN';\nimport { en_IN } from './locales/en_IN';\nimport { es_MX } from './locales/es_MX';\nimport { it_IT } from './locales/it_IT';\nimport { es_ES } from './locales/es_ES';\nimport { nl_NL } from './locales/nl_NL';\nimport { en_CA } from './locales/en_CA';\nimport { en_GB } from './locales/en_GB';\nimport { ru_RU } from './locales/ru_RU';\nimport { pl_PL } from './locales/pl_PL';\nimport { tr_TR } from './locales/tr_TR';\nimport { sv_SE } from './locales/sv_SE';\nimport { nb_NO } from './locales/nb_NO';\nimport { da_DK } from './locales/da_DK';\nimport { fi_FI } from './locales/fi_FI';\nimport { es_AR } from './locales/es_AR';\nimport { es_CL } from './locales/es_CL';\nimport { th_TH } from './locales/th_TH';\nimport { vi_VN } from './locales/vi_VN';\nimport { ms_MY } from './locales/ms_MY';\n\n// Import newest locales (16 additional)\nimport { en_SG } from './locales/en_SG';\nimport { en_PH } from './locales/en_PH';\nimport { en_NZ } from './locales/en_NZ';\nimport { en_ZA } from './locales/en_ZA';\nimport { pt_PT } from './locales/pt_PT';\nimport { el_GR } from './locales/el_GR';\nimport { cs_CZ } from './locales/cs_CZ';\nimport { de_AT } from './locales/de_AT';\nimport { de_CH } from './locales/de_CH';\nimport { nl_BE } from './locales/nl_BE';\nimport { hu_HU } from './locales/hu_HU';\nimport { ro_RO } from './locales/ro_RO';\nimport { ar_AE } from './locales/ar_AE';\nimport { ar_SA } from './locales/ar_SA';\nimport { ar_EG } from './locales/ar_EG';\nimport { he_IL } from './locales/he_IL';\n\n// Import new locales - Eastern Europe\nimport { uk_UA } from './locales/uk_UA';\nimport { sk_SK } from './locales/sk_SK';\nimport { hr_HR } from './locales/hr_HR';\nimport { rs_RS } from './locales/rs_RS';\nimport { lt_LT } from './locales/lt_LT';\nimport { lv_LV } from './locales/lv_LV';\nimport { et_EE } from './locales/et_EE';\nimport { bg_BG } from './locales/bg_BG';\nimport { is_IS } from './locales/is_IS';\n\n// Import new locales - Africa & Middle East\nimport { ng_NG } from './locales/ng_NG';\nimport { ke_KE } from './locales/ke_KE';\nimport { pk_PK } from './locales/pk_PK';\nimport { bd_BD } from './locales/bd_BD';\nimport { ir_IR } from './locales/ir_IR';\nimport { ma_MA } from './locales/ma_MA';\n\n// Import new locales - Americas\nimport { co_CO } from './locales/co_CO';\nimport { pe_PE } from './locales/pe_PE';\nimport { ve_VE } from './locales/ve_VE';\nimport { gt_GT } from './locales/gt_GT';\nimport { cr_CR } from './locales/cr_CR';\n\n// Import new locales - Asia\nimport { tw_TW } from './locales/tw_TW';\n\n// Export types\nexport type {\n Gender,\n MetricSystem,\n PersonData,\n AddressData,\n PhysicalData,\n WorkData,\n AgeRange,\n LocaleData,\n LocaleDefinition\n} from './types';\n\n// Export core classes\nexport { Mimic } from './core/mimic';\nexport { Random } from './core/random';\nexport { localeRegistry } from './core/registry';\n\n/**\n * ============================================\n * AUTO-REGISTRATION OF LOCALES\n * ============================================\n * Register all locales with their aliases\n */\n\n// Original 8 locales\nlocaleRegistry.register('en_US', en_US, ['en', 'us', 'usa']);\nlocaleRegistry.register('ja_JP', ja_JP, ['ja', 'jp', 'japan']);\nlocaleRegistry.register('id_ID', id_ID, ['id', 'indonesia']);\nlocaleRegistry.register('de_DE', de_DE, ['de', 'germany', 'deutsch']);\nlocaleRegistry.register('fr_FR', fr_FR, ['fr', 'france']);\nlocaleRegistry.register('pt_BR', pt_BR, ['pt', 'br', 'brazil', 'brasil']);\nlocaleRegistry.register('ko_KR', ko_KR, ['ko', 'kr', 'korea']);\nlocaleRegistry.register('en_AU', en_AU, ['au', 'aus', 'australia']);\n\n// New 20 locales\nlocaleRegistry.register('zh_CN', zh_CN, ['zh', 'cn', 'china']);\nlocaleRegistry.register('en_IN', en_IN, ['in', 'india']);\nlocaleRegistry.register('es_MX', es_MX, ['mx', 'mexico']);\nlocaleRegistry.register('it_IT', it_IT, ['it', 'italy', 'italia']);\nlocaleRegistry.register('es_ES', es_ES, ['es', 'spain', 'españa']);\nlocaleRegistry.register('nl_NL', nl_NL, ['nl', 'netherlands', 'holland']);\nlocaleRegistry.register('en_CA', en_CA, ['ca', 'canada']);\nlocaleRegistry.register('en_GB', en_GB, ['gb', 'uk', 'britain']);\nlocaleRegistry.register('ru_RU', ru_RU, ['ru', 'russia']);\nlocaleRegistry.register('pl_PL', pl_PL, ['pl', 'poland', 'polska']);\nlocaleRegistry.register('tr_TR', tr_TR, ['tr', 'turkey', 'turkiye']);\nlocaleRegistry.register('sv_SE', sv_SE, ['sv', 'se', 'sweden', 'sverige']);\nlocaleRegistry.register('nb_NO', nb_NO, ['no', 'norway', 'norge']);\nlocaleRegistry.register('da_DK', da_DK, ['da', 'dk', 'denmark', 'danmark']);\nlocaleRegistry.register('fi_FI', fi_FI, ['fi', 'finland', 'suomi']);\nlocaleRegistry.register('es_AR', es_AR, ['ar', 'argentina']);\nlocaleRegistry.register('es_CL', es_CL, ['cl', 'chile']);\nlocaleRegistry.register('th_TH', th_TH, ['th', 'thailand']);\nlocaleRegistry.register('vi_VN', vi_VN, ['vi', 'vn', 'vietnam']);\nlocaleRegistry.register('ms_MY', ms_MY, ['ms', 'my', 'malaysia']);\n\n// Newest 16 locales\nlocaleRegistry.register('en_SG', en_SG, ['sg', 'singapore']);\nlocaleRegistry.register('en_PH', en_PH, ['ph', 'philippines']);\nlocaleRegistry.register('en_NZ', en_NZ, ['nz', 'new-zealand']);\nlocaleRegistry.register('en_ZA', en_ZA, ['za', 'south-africa']);\nlocaleRegistry.register('pt_PT', pt_PT, ['portugal']);\nlocaleRegistry.register('el_GR', el_GR, ['el', 'gr', 'greece']);\nlocaleRegistry.register('cs_CZ', cs_CZ, ['cs', 'cz', 'czech']);\nlocaleRegistry.register('de_AT', de_AT, ['at', 'austria']);\nlocaleRegistry.register('de_CH', de_CH, ['ch', 'switzerland']);\nlocaleRegistry.register('nl_BE', nl_BE, ['be', 'belgium']);\nlocaleRegistry.register('hu_HU', hu_HU, ['hu', 'hungary']);\nlocaleRegistry.register('ro_RO', ro_RO, ['ro', 'romania']);\nlocaleRegistry.register('ar_AE', ar_AE, ['ae', 'uae', 'emirates']);\nlocaleRegistry.register('ar_SA', ar_SA, ['sa', 'saudi', 'saudi-arabia']);\nlocaleRegistry.register('ar_EG', ar_EG, ['eg', 'egypt']);\nlocaleRegistry.register('he_IL', he_IL, ['he', 'il', 'israel']);\n\n// Eastern Europe locales\nlocaleRegistry.register('uk_UA', uk_UA, ['ua', 'ukraine']);\nlocaleRegistry.register('sk_SK', sk_SK, ['sk', 'slovakia']);\nlocaleRegistry.register('hr_HR', hr_HR, ['hr', 'croatia']);\nlocaleRegistry.register('rs_RS', rs_RS, ['rs', 'serbia']);\nlocaleRegistry.register('lt_LT', lt_LT, ['lt', 'lithuania']);\nlocaleRegistry.register('lv_LV', lv_LV, ['lv', 'latvia']);\nlocaleRegistry.register('et_EE', et_EE, ['ee', 'estonia']);\nlocaleRegistry.register('bg_BG', bg_BG, ['bg', 'bulgaria']);\nlocaleRegistry.register('is_IS', is_IS, ['is', 'iceland']);\n\n// Africa & Middle East locales\nlocaleRegistry.register('ng_NG', ng_NG, ['ng', 'nigeria']);\nlocaleRegistry.register('ke_KE', ke_KE, ['ke', 'kenya']);\nlocaleRegistry.register('pk_PK', pk_PK, ['pk', 'pakistan']);\nlocaleRegistry.register('bd_BD', bd_BD, ['bd', 'bangladesh']);\nlocaleRegistry.register('ir_IR', ir_IR, ['ir', 'iran']);\nlocaleRegistry.register('ma_MA', ma_MA, ['ma', 'morocco']);\n\n// Americas locales\nlocaleRegistry.register('co_CO', co_CO, ['co', 'colombia']);\nlocaleRegistry.register('pe_PE', pe_PE, ['pe', 'peru']);\nlocaleRegistry.register('ve_VE', ve_VE, ['ve', 'venezuela']);\nlocaleRegistry.register('gt_GT', gt_GT, ['gt', 'guatemala']);\nlocaleRegistry.register('cr_CR', cr_CR, ['cr', 'costa-rica']);\n\n// Asia locales\nlocaleRegistry.register('tw_TW', tw_TW, ['tw', 'taiwan']);\n\n/**\n * Factory function to create Mimic instance with specified locale\n */\nexport function createMimic(locale: string = 'en_US'): Mimic {\n const localeDefinition = localeRegistry.get(locale);\n \n if (!localeDefinition) {\n const available = localeRegistry.getAllCodes().join(', ');\n throw new Error(\n `Locale '${locale}' not found.\\n` +\n `Available locales: ${available}`\n );\n }\n \n return new Mimic(localeDefinition);\n}\n\n/**\n * Get available main locale codes\n */\nexport function getAvailableLocales(): string[] {\n return localeRegistry.getAvailableLocales();\n}\n\n/**\n * Get all codes (locales + aliases)\n */\nexport function getAllLocaleCodes(): string[] {\n return localeRegistry.getAllCodes();\n}\n\n/**\n * Export all locale definitions for advanced usage\n */\nexport const locales = {\n // Original 8\n en_US, ja_JP, id_ID, de_DE, fr_FR, pt_BR, ko_KR, en_AU,\n // New (20)\n zh_CN, en_IN, es_MX, it_IT, es_ES, nl_NL, en_CA, en_GB,\n ru_RU, pl_PL, tr_TR, sv_SE, nb_NO, da_DK, fi_FI,\n es_AR, es_CL, th_TH, vi_VN, ms_MY,\n // Newest (16)\n en_SG, en_PH, en_NZ, en_ZA, pt_PT, el_GR, cs_CZ, de_AT,\n de_CH, nl_BE, hu_HU, ro_RO, ar_AE, ar_SA, ar_EG, he_IL,\n // Eastern Europe (9)\n uk_UA, sk_SK, hr_HR, rs_RS, lt_LT, lv_LV, et_EE, bg_BG, is_IS,\n // Africa & Middle East (6)\n ng_NG, ke_KE, pk_PK, bd_BD, ir_IR, ma_MA,\n // Americas (5)\n co_CO, pe_PE, ve_VE, gt_GT, cr_CR,\n // Asia (1)\n tw_TW\n};\n\n// Default export\nexport default createMimic;"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/core/random.ts","../src/core/mimic.ts","../src/core/registry.ts","../src/locales/en_US.ts","../src/locales/ja_JP.ts","../src/locales/id_ID.ts","../src/locales/de_DE.ts","../src/locales/fr_FR.ts","../src/locales/pt_BR.ts","../src/locales/ko_KR.ts","../src/locales/en_AU.ts","../src/locales/zh_CN.ts","../src/locales/en_IN.ts","../src/locales/es_MX.ts","../src/locales/it_IT.ts","../src/locales/es_ES.ts","../src/locales/nl_NL.ts","../src/locales/en_CA.ts","../src/locales/en_GB.ts","../src/locales/ru_RU.ts","../src/locales/pl_PL.ts","../src/locales/tr_TR.ts","../src/locales/sv_SE.ts","../src/locales/nb_NO.ts","../src/locales/da_DK.ts","../src/locales/fi_FI.ts","../src/locales/es_AR.ts","../src/locales/es_CL.ts","../src/locales/th_TH.ts","../src/locales/vi_VN.ts","../src/locales/ms_MY.ts","../src/locales/en_SG.ts","../src/locales/en_PH.ts","../src/locales/en_NZ.ts","../src/locales/en_ZA.ts","../src/locales/pt_PT.ts","../src/locales/el_GR.ts","../src/locales/cs_CZ.ts","../src/locales/de_AT.ts","../src/locales/de_CH.ts","../src/locales/nl_BE.ts","../src/locales/hu_HU.ts","../src/locales/ro_RO.ts","../src/locales/ar_AE.ts","../src/locales/ar_SA.ts","../src/locales/ar_EG.ts","../src/locales/he_IL.ts","../src/locales/uk_UA.ts","../src/locales/sk_SK.ts","../src/locales/hr_HR.ts","../src/locales/rs_RS.ts","../src/locales/lt_LT.ts","../src/locales/lv_LV.ts","../src/locales/et_EE.ts","../src/locales/bg_BG.ts","../src/locales/is_IS.ts","../src/locales/en_NG.ts","../src/locales/en_KE.ts","../src/locales/en_PK.ts","../src/locales/bn_BD.ts","../src/locales/fa_IR.ts","../src/locales/ar_MA.ts","../src/locales/es_CO.ts","../src/locales/es_PE.ts","../src/locales/es_VE.ts","../src/locales/es_GT.ts","../src/locales/es_CR.ts","../src/locales/zh_TW.ts","../src/locales/ar_IQ.ts","../src/locales/ar_KW.ts","../src/locales/ar_QA.ts","../src/locales/ar_BH.ts","../src/locales/ar_DZ.ts","../src/locales/ar_JO.ts","../src/locales/ar_LB.ts","../src/locales/ar_LY.ts","../src/locales/ar_OM.ts","../src/locales/ar_SD.ts","../src/locales/ar_SY.ts","../src/locales/ar_TN.ts","../src/locales/ar_YE.ts","../src/locales/en_IE.ts","../src/locales/fr_BE.ts","../src/locales/fr_CH.ts","../src/locales/de_LI.ts","../src/locales/de_LU.ts","../src/locales/it_CH.ts","../src/locales/ca_ES.ts","../src/locales/fr_LU.ts","../src/locales/fr_CA.ts","../src/locales/es_EC.ts","../src/locales/es_BO.ts","../src/locales/es_PY.ts","../src/locales/es_US.ts","../src/locales/es_DO.ts","../src/locales/zh_HK.ts","../src/locales/hi_IN.ts","../src/locales/ne_NP.ts","../src/locales/ur_PK.ts","../src/locales/bn_IN.ts","../src/locales/sw_KE.ts","../src/locales/sw_TZ.ts","../src/locales/af_ZA.ts","../src/locales/pt_MZ.ts","../src/index.ts"],"sourcesContent":["/**\n * Seeded random number generator using Mulberry32 algorithm\n * Provides reproducible random sequences for testing\n */\nexport class Random {\n private static seedValue: number | null = null;\n\n /**\n * Initialize seeded random with a specific seed\n * Call this to reproduce the same random sequence\n * @param seed - Number seed for reproducible randomness\n */\n static seed(seed: number): void {\n this.seedValue = seed;\n }\n\n /**\n * Reset to native Math.random() (non-deterministic)\n */\n static unseed(): void {\n this.seedValue = null;\n }\n\n /**\n * Get random number (seeded or native)\n */\n private static random(): number {\n if (this.seedValue !== null) {\n // Mulberry32 algorithm\n this.seedValue |= 0;\n this.seedValue = (this.seedValue + 0x6D2B79F5) | 0;\n let t = Math.imul(this.seedValue ^ (this.seedValue >>> 15), 1 | this.seedValue);\n t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t;\n return ((t ^ (t >>> 14)) >>> 0) / 4294967296;\n }\n return Math.random();\n }\n\n /**\n * Get random integer between min and max (inclusive)\n */\n static int(min: number, max: number): number {\n return Math.floor(this.random() * (max - min + 1)) + min;\n }\n\n /**\n * Get random float between min and max\n */\n static float(min: number, max: number, decimals: number = 2): number {\n const value = this.random() * (max - min) + min;\n return Number(value.toFixed(decimals));\n }\n\n /**\n * Get random boolean\n */\n static boolean(): boolean {\n return this.random() >= 0.5;\n }\n\n /**\n * Get random element from array\n */\n static pick<T>(array: T[]): T {\n return array[Math.floor(this.random() * array.length)];\n }\n\n /**\n * Shuffle array (Fisher-Yates algorithm)\n */\n static shuffle<T>(array: T[]): T[] {\n const result = [...array];\n for (let i = result.length - 1; i > 0; i--) {\n const j = Math.floor(this.random() * (i + 1));\n [result[i], result[j]] = [result[j], result[i]];\n }\n return result;\n }\n\n /**\n * Generate multiple random values at once\n */\n static multiple<T>(generator: () => T, count: number): T[] {\n const results: T[] = [];\n for (let i = 0; i < count; i++) {\n results.push(generator());\n }\n return results;\n }\n\n /**\n * Generate unique random values (no duplicates)\n */\n static unique<T>(generator: () => T, count: number, maxAttempts: number = 1000): T[] {\n const results = new Set<T>();\n let attempts = 0;\n\n while (results.size < count && attempts < maxAttempts) {\n results.add(generator());\n attempts++;\n }\n\n if (results.size < count) {\n throw new Error(\n `Could not generate ${count} unique values after ${maxAttempts} attempts. ` +\n 'The generator may have insufficient variety.'\n );\n }\n\n return Array.from(results);\n }\n}\n","import { LocaleDefinition, Gender, PersonData, AddressData, PhysicalData, WorkData, AgeRange, ContactData, CompanyData } from '../types';\nimport { Random } from './random';\n\nexport class Mimic {\n private locale: LocaleDefinition;\n private identityCache: ReturnType<typeof this.createIdentity> | null = null;\n private locationCache: ReturnType<typeof this.createLocation> | null = null;\n private physicalCache: ReturnType<typeof this.createPhysical> | null = null;\n private workCache: ReturnType<typeof this.createWork> | null = null;\n\n constructor(locale: LocaleDefinition) {\n this.locale = locale;\n }\n\n /**\n * Update the locale and clear caches\n */\n setLocale(locale: LocaleDefinition): void {\n this.locale = locale;\n this.clearCaches();\n }\n\n /**\n * Clear all cached generators\n */\n private clearCaches(): void {\n this.identityCache = null;\n this.locationCache = null;\n this.physicalCache = null;\n this.workCache = null;\n }\n\n /**\n * Create identity generator (cached)\n */\n private createIdentity() {\n const self = this;\n return {\n firstName: (gender?: Gender): string => {\n const genderChoice = gender || Random.pick(['male', 'female'] as Gender[]);\n return genderChoice === 'male'\n ? Random.pick(self.locale.firstNamesMale)\n : Random.pick(self.locale.firstNamesFemale);\n },\n\n lastName: (): string => {\n return Random.pick(self.locale.lastNames);\n },\n\n fullName: (gender?: Gender): string => {\n const genderChoice = gender || Random.pick(['male', 'female'] as Gender[]);\n const firstName = genderChoice === 'male'\n ? Random.pick(self.locale.firstNamesMale)\n : Random.pick(self.locale.firstNamesFemale);\n const lastName = Random.pick(self.locale.lastNames);\n return self.locale.formatFullName(firstName, lastName);\n },\n\n gender: (): Gender => {\n return Random.pick(['male', 'female'] as Gender[]);\n },\n\n age: (range?: AgeRange): number => {\n const min = range?.min ?? 18;\n const max = range?.max ?? 65;\n return Random.int(min, max);\n },\n\n dateOfBirth: (range?: AgeRange): Date => {\n const age = self.identity.age(range);\n const currentYear = new Date().getFullYear();\n const birthYear = currentYear - age;\n const month = Random.int(0, 11);\n const day = Random.int(1, 28);\n return new Date(birthYear, month, day);\n },\n\n person: (gender?: Gender, ageRange?: AgeRange): PersonData => {\n const genderChoice = gender || Random.pick(['male', 'female'] as Gender[]);\n const firstName = genderChoice === 'male'\n ? Random.pick(self.locale.firstNamesMale)\n : Random.pick(self.locale.firstNamesFemale);\n const lastName = Random.pick(self.locale.lastNames);\n const ageVal = self.identity.age(ageRange);\n const currentYear = new Date().getFullYear();\n const birthYear = currentYear - ageVal;\n const month = Random.int(0, 11);\n const day = Random.int(1, 28);\n\n return {\n firstName,\n lastName,\n fullName: self.locale.formatFullName(firstName, lastName),\n gender: genderChoice,\n age: ageVal,\n dateOfBirth: new Date(birthYear, month, day)\n };\n },\n\n /**\n * Generate multiple persons at once\n */\n persons: (count: number, gender?: Gender, ageRange?: AgeRange): PersonData[] => {\n return Random.multiple(() => self.identity.person(gender, ageRange), count);\n },\n\n /**\n * Generate unique persons (no duplicate full names)\n */\n uniquePersons: (count: number, gender?: Gender, ageRange?: AgeRange): PersonData[] => {\n return Random.unique(() => self.identity.person(gender, ageRange), count);\n }\n };\n }\n\n /**\n * Identity generator (cached accessor)\n */\n get identity(): ReturnType<typeof this.createIdentity> {\n if (!this.identityCache) {\n this.identityCache = this.createIdentity();\n }\n return this.identityCache;\n }\n\n /**\n * Create location generator (cached)\n */\n private createLocation() {\n const self = this;\n return {\n street: (): string => {\n return Random.pick(self.locale.streets);\n },\n\n city: (): string => {\n return Random.pick(self.locale.cities);\n },\n\n state: (): string => {\n return Random.pick(self.locale.states);\n },\n\n zipCode: (): string => {\n return self.locale.generateZipCode();\n },\n\n fullAddress: (): string => {\n const street = Random.pick(self.locale.streets);\n const city = Random.pick(self.locale.cities);\n const state = Random.pick(self.locale.states);\n const zipCode = self.locale.generateZipCode();\n return self.locale.formatAddress(street, city, state, zipCode);\n },\n\n address: (): AddressData => {\n const street = Random.pick(self.locale.streets);\n const city = Random.pick(self.locale.cities);\n const state = Random.pick(self.locale.states);\n const zipCode = self.locale.generateZipCode();\n\n return {\n street,\n city,\n state,\n zipCode,\n fullAddress: self.locale.formatAddress(street, city, state, zipCode)\n };\n },\n\n /**\n * Generate multiple addresses at once\n */\n addresses: (count: number): AddressData[] => {\n return Random.multiple(() => self.location.address(), count);\n },\n\n /**\n * Generate unique addresses (no duplicate full addresses)\n */\n uniqueAddresses: (count: number): AddressData[] => {\n return Random.unique(() => self.location.address(), count);\n }\n };\n }\n\n /**\n * Location generator (cached accessor)\n */\n get location(): ReturnType<typeof this.createLocation> {\n if (!this.locationCache) {\n this.locationCache = this.createLocation();\n }\n return this.locationCache;\n }\n\n /**\n * Create physical data generator (cached)\n */\n private createPhysical() {\n const self = this;\n return {\n height: (): PhysicalData => {\n if (self.locale.metricSystem === 'metric') {\n const height = Random.int(150, 190);\n return {\n height,\n weight: 0,\n heightUnit: 'cm',\n weightUnit: 'kg'\n };\n } else {\n const height = Random.float(4.9, 6.3, 1);\n return {\n height,\n weight: 0,\n heightUnit: 'ft',\n weightUnit: 'lb'\n };\n }\n },\n\n weight: (): PhysicalData => {\n if (self.locale.metricSystem === 'metric') {\n const weight = Random.int(45, 100);\n return {\n height: 0,\n weight,\n heightUnit: 'cm',\n weightUnit: 'kg'\n };\n } else {\n const weight = Random.int(100, 220);\n return {\n height: 0,\n weight,\n heightUnit: 'ft',\n weightUnit: 'lb'\n };\n }\n },\n\n data: (): PhysicalData => {\n if (self.locale.metricSystem === 'metric') {\n return {\n height: Random.int(150, 190),\n weight: Random.int(45, 100),\n heightUnit: 'cm',\n weightUnit: 'kg'\n };\n } else {\n return {\n height: Random.float(4.9, 6.3, 1),\n weight: Random.int(100, 220),\n heightUnit: 'ft',\n weightUnit: 'lb'\n };\n }\n },\n\n /**\n * Generate multiple physical data at once\n */\n datas: (count: number): PhysicalData[] => {\n return Random.multiple(() => self.physical.data(), count);\n }\n };\n }\n\n /**\n * Physical data generator (cached accessor)\n */\n get physical(): ReturnType<typeof this.createPhysical> {\n if (!this.physicalCache) {\n this.physicalCache = this.createPhysical();\n }\n return this.physicalCache;\n }\n\n /**\n * Create work data generator (cached)\n */\n private createWork() {\n const self = this;\n return {\n jobTitle: (): string => {\n return Random.pick(self.locale.jobTitles);\n },\n\n department: (): string => {\n return Random.pick(self.locale.departments);\n },\n\n data: (): WorkData => {\n return {\n jobTitle: Random.pick(self.locale.jobTitles),\n department: Random.pick(self.locale.departments)\n };\n },\n\n /**\n * Generate multiple work data at once\n */\n datas: (count: number): WorkData[] => {\n return Random.multiple(() => self.work.data(), count);\n },\n\n /**\n * Generate unique job titles\n */\n uniqueJobTitles: (count: number): string[] => {\n return Random.unique(() => self.work.jobTitle(), count);\n },\n\n /**\n * Generate unique departments\n */\n uniqueDepartments: (count: number): string[] => {\n return Random.unique(() => self.work.department(), count);\n }\n };\n }\n\n /**\n * Work data generator (cached accessor)\n */\n get work(): ReturnType<typeof this.createWork> {\n if (!this.workCache) {\n this.workCache = this.createWork();\n }\n return this.workCache;\n }\n\n /**\n * Create contact generator (cached)\n */\n private createContact() {\n const self = this;\n return {\n email: (firstName?: string, lastName?: string): string => {\n const name = firstName && lastName\n ? `${firstName}.${lastName}`\n : firstName\n ? firstName\n : self.identity.firstName();\n const domain = self.locale.emailDomains?.length\n ? Random.pick(self.locale.emailDomains)\n : Random.pick(['gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com']);\n const randomNum = Random.int(1, 999);\n return `${name.toLowerCase()}${randomNum}@${domain}`;\n },\n\n phone: (): string => {\n if (self.locale.phoneFormats?.length) {\n const format = Random.pick(self.locale.phoneFormats);\n return self.formatPhoneNumber(format);\n }\n // Default US format\n return `+1 (${Random.int(200, 999)}) ${Random.int(200, 999)}-${Random.int(1000, 9999)}`;\n },\n\n website: (companyName?: string): string => {\n const name = companyName || self.company.name();\n const domain = name.toLowerCase().replace(/[^a-z0-9]/g, '-');\n const tld = Random.pick(['.com', '.net', '.org', '.io', '.co']);\n return `www.${domain}${tld}`;\n },\n\n data: (firstName?: string, lastName?: string): ContactData => {\n return {\n email: self.contact.email(firstName, lastName),\n phone: self.contact.phone(),\n website: self.contact.website()\n };\n },\n\n /**\n * Generate multiple contact data at once\n */\n datas: (count: number): ContactData[] => {\n return Random.multiple(() => self.contact.data(), count);\n }\n };\n }\n\n /**\n * Contact generator (cached accessor)\n */\n get contact(): ReturnType<typeof this.createContact> {\n return this.createContact();\n }\n\n /**\n * Create company generator (cached)\n */\n private createCompany() {\n const self = this;\n return {\n name: (): string => {\n if (self.locale.companyNames?.length) {\n return Random.pick(self.locale.companyNames);\n }\n const prefixes = ['Tech', 'Global', 'Smart', 'Digital', 'Inno', 'Data', 'Cloud', 'Net', 'Cyber', 'Quantum'];\n const suffixes = ['ify', 'ly', 'hub', 'lab', 'box', 'flow', 'sync', 'grid', 'wave', 'spark'];\n const types = ['Tech', 'Solutions', 'Systems', 'Corp', 'Inc', 'Group', 'Labs', 'Works', 'Studio', 'Dynamics'];\n return `${Random.pick(prefixes)}${Random.pick(suffixes)} ${Random.pick(types)}`;\n },\n\n industry: (): string => {\n if (self.locale.industries?.length) {\n return Random.pick(self.locale.industries);\n }\n const industries = [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transportation',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace'\n ];\n return Random.pick(industries);\n },\n\n catchPhrase: (): string => {\n if (self.locale.catchPhrases?.length) {\n return Random.pick(self.locale.catchPhrases);\n }\n const verbs = ['Empower', 'Transform', 'Revolutionize', 'Innovate', 'Optimize', 'Streamline', 'Accelerate', 'Maximize'];\n const nouns = ['solutions', 'experiences', 'processes', 'outcomes', 'potential', 'growth', 'success', 'future'];\n const adjectives = ['innovative', 'cutting-edge', 'seamless', 'intelligent', 'dynamic', 'scalable', 'sustainable', 'next-generation'];\n return `${Random.pick(verbs)} ${Random.pick(adjectives)} ${Random.pick(nouns)}`;\n },\n\n data: (): CompanyData => {\n return {\n name: self.company.name(),\n industry: self.company.industry(),\n catchPhrase: self.company.catchPhrase()\n };\n },\n\n /**\n * Generate multiple company data at once\n */\n datas: (count: number): CompanyData[] => {\n return Random.multiple(() => self.company.data(), count);\n }\n };\n }\n\n /**\n * Company generator (cached accessor)\n */\n get company(): ReturnType<typeof this.createCompany> {\n return this.createCompany();\n }\n\n /**\n * Format phone number from pattern\n */\n private formatPhoneNumber(format: string): string {\n return format.replace(/#/g, () => String(Random.int(0, 9)));\n }\n\n /**\n * Generate complete mock data for multiple entities\n */\n generateMockEntities(count: number, options?: {\n gender?: Gender;\n ageRange?: AgeRange;\n }): Array<PersonData & AddressData & PhysicalData & WorkData> {\n const { gender, ageRange } = options || {};\n \n return Random.multiple(() => ({\n ...this.identity.person(gender, ageRange),\n ...this.location.address(),\n ...this.physical.data(),\n ...this.work.data()\n }), count);\n }\n\n /**\n * Generate unique mock entities (no duplicate full names)\n */\n generateUniqueMockEntities(count: number, options?: {\n gender?: Gender;\n ageRange?: AgeRange;\n }): Array<PersonData & AddressData & PhysicalData & WorkData> {\n const { gender, ageRange } = options || {};\n \n return Random.unique(() => ({\n ...this.identity.person(gender, ageRange),\n ...this.location.address(),\n ...this.physical.data(),\n ...this.work.data()\n }), count);\n }\n}\n","import { LocaleDefinition } from '../types';\r\n\r\n/**\r\n * Locale Registry untuk manajemen locale yang efisien\r\n * Mendukung lazy loading dan auto-registration\r\n */\r\nclass LocaleRegistry {\r\n private locales: Map<string, LocaleDefinition> = new Map();\r\n private aliases: Map<string, string> = new Map();\r\n\r\n /**\r\n * Register locale baru\r\n * @param code - Kode locale utama (contoh: 'en_US')\r\n * @param definition - Definisi locale\r\n * @param aliasesArray - Array alias untuk locale ini (contoh: ['en', 'us'])\r\n */\r\n register(\r\n code: string,\r\n definition: LocaleDefinition,\r\n aliasesArray: string[] = []\r\n ): void {\r\n this.locales.set(code, definition);\r\n \r\n // Register aliases\r\n for (const alias of aliasesArray) {\r\n this.aliases.set(alias, code);\r\n }\r\n }\r\n\r\n /**\r\n * Get locale definition\r\n * @param code - Kode locale atau alias\r\n * @returns LocaleDefinition atau undefined\r\n */\r\n get(code: string): LocaleDefinition | undefined {\r\n // Cek langsung di locales\r\n if (this.locales.has(code)) {\r\n return this.locales.get(code);\r\n }\r\n \r\n // Cek di aliases\r\n const mainCode = this.aliases.get(code);\r\n if (mainCode) {\r\n return this.locales.get(mainCode);\r\n }\r\n \r\n return undefined;\r\n }\r\n\r\n /**\r\n * Check apakah locale tersedia\r\n */\r\n has(code: string): boolean {\r\n return this.locales.has(code) || this.aliases.has(code);\r\n }\r\n\r\n /**\r\n * Get semua locale yang tersedia\r\n */\r\n getAvailableLocales(): string[] {\r\n return Array.from(this.locales.keys());\r\n }\r\n\r\n /**\r\n * Get semua aliases yang tersedia\r\n */\r\n getAvailableAliases(): string[] {\r\n return Array.from(this.aliases.keys());\r\n }\r\n\r\n /**\r\n * Get semua kode (locale + aliases)\r\n */\r\n getAllCodes(): string[] {\r\n return [\r\n ...this.getAvailableLocales(),\r\n ...this.getAvailableAliases()\r\n ];\r\n }\r\n}\r\n\r\n// Singleton instance\r\nexport const localeRegistry = new LocaleRegistry();","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_US: LocaleDefinition = {\n firstNamesMale: [\n 'James', 'John', 'Robert', 'Michael', 'William', 'David', 'Richard', 'Joseph',\n 'Thomas', 'Christopher', 'Daniel', 'Matthew', 'Anthony', 'Mark', 'Donald',\n 'Steven', 'Andrew', 'Paul', 'Joshua', 'Kenneth', 'Kevin', 'Brian', 'George',\n 'Timothy', 'Ronald', 'Edward', 'Jason', 'Jeffrey', 'Ryan', 'Jacob', 'Gary',\n 'Nicholas', 'Eric', 'Jonathan', 'Stephen', 'Larry', 'Justin', 'Scott', 'Brandon',\n 'Benjamin', 'Samuel', 'Raymond', 'Gregory', 'Alexander', 'Patrick', 'Frank',\n 'Dennis', 'Jerry', 'Tyler', 'Aaron', 'Jose', 'Adam', 'Nathan', 'Douglas',\n 'Zachary', 'Peter', 'Kyle', 'Noah', 'Ethan', 'Jeremy', 'Christian', 'Walter'\n ],\n firstNamesFemale: [\n 'Mary', 'Patricia', 'Jennifer', 'Linda', 'Barbara', 'Elizabeth', 'Susan',\n 'Jessica', 'Sarah', 'Karen', 'Lisa', 'Nancy', 'Betty', 'Margaret', 'Sandra',\n 'Ashley', 'Kimberly', 'Emily', 'Donna', 'Michelle', 'Carol', 'Amanda', 'Dorothy',\n 'Melissa', 'Deborah', 'Stephanie', 'Rebecca', 'Sharon', 'Laura', 'Cynthia',\n 'Kathleen', 'Amy', 'Angela', 'Shirley', 'Anna', 'Brenda', 'Pamela', 'Emma',\n 'Nicole', 'Helen', 'Samantha', 'Katherine', 'Christine', 'Debra', 'Rachel',\n 'Carolyn', 'Janet', 'Catherine', 'Maria', 'Heather', 'Diane', 'Ruth', 'Julie',\n 'Olivia', 'Joyce', 'Virginia', 'Victoria', 'Kelly', 'Lauren', 'Christina'\n ],\n lastNames: [\n 'Smith', 'Johnson', 'Williams', 'Brown', 'Jones', 'Garcia', 'Miller', 'Davis',\n 'Rodriguez', 'Martinez', 'Hernandez', 'Lopez', 'Gonzalez', 'Wilson', 'Anderson',\n 'Thomas', 'Taylor', 'Moore', 'Jackson', 'Martin', 'Lee', 'Perez', 'Thompson',\n 'White', 'Harris', 'Sanchez', 'Clark', 'Ramirez', 'Lewis', 'Robinson', 'Walker',\n 'Young', 'Allen', 'King', 'Wright', 'Scott', 'Torres', 'Nguyen', 'Hill', 'Flores',\n 'Green', 'Adams', 'Nelson', 'Baker', 'Hall', 'Rivera', 'Campbell', 'Mitchell',\n 'Carter', 'Roberts', 'Gomez', 'Phillips', 'Evans', 'Turner', 'Diaz', 'Parker',\n 'Cruz', 'Edwards', 'Collins', 'Reyes', 'Stewart', 'Morris', 'Morales', 'Murphy'\n ],\n streets: [\n 'Main Street', 'Oak Avenue', 'Maple Drive', 'Cedar Lane', 'Elm Street',\n 'Washington Boulevard', 'Lake View Drive', 'Park Avenue', 'Hill Road',\n 'Forest Lane', 'River Road', 'Sunset Boulevard', 'First Avenue', 'Second Street',\n 'Third Avenue', 'Pine Street', 'Walnut Avenue', 'Cherry Lane', 'Spring Street',\n 'Church Road', 'Market Street', 'Broadway', 'Madison Avenue', 'Lincoln Street',\n 'Jefferson Avenue', 'Franklin Street', 'Highland Avenue', 'Prospect Street',\n 'Valley Road', 'Ridge Road', 'Summit Avenue', 'Grove Street', 'Pearl Street'\n ],\n cities: [\n 'New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix', 'Philadelphia',\n 'San Antonio', 'San Diego', 'Dallas', 'San Jose', 'Austin', 'Jacksonville',\n 'Fort Worth', 'Columbus', 'Charlotte', 'San Francisco', 'Indianapolis', 'Seattle',\n 'Denver', 'Boston', 'Nashville', 'Detroit', 'Portland', 'Las Vegas', 'Memphis',\n 'Louisville', 'Baltimore', 'Milwaukee', 'Albuquerque', 'Tucson', 'Fresno',\n 'Sacramento', 'Kansas City', 'Mesa', 'Atlanta', 'Omaha', 'Colorado Springs',\n 'Raleigh', 'Miami', 'Long Beach', 'Virginia Beach', 'Oakland', 'Minneapolis'\n ],\n states: [\n 'Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado',\n 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho',\n 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana',\n 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi',\n 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey',\n 'New Mexico', 'New York', 'North Carolina', 'North Dakota', 'Ohio', 'Oklahoma',\n 'Oregon', 'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota',\n 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington',\n 'West Virginia', 'Wisconsin', 'Wyoming'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'Human Resources Manager', 'Designer',\n 'Operations Manager', 'Business Analyst', 'Financial Analyst', 'Product Manager',\n 'Systems Administrator', 'Customer Service Representative', 'Quality Assurance Engineer',\n 'Technical Writer', 'Database Administrator', 'Network Engineer', 'UX Designer',\n 'Content Writer', 'Executive Assistant', 'Account Manager', 'DevOps Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'imperial',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 9999);\n return `${houseNumber} ${street}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '(###) ###-####',\n '###-###-####',\n '###.###.####',\n '+1 (###) ###-####',\n '1-###-###-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com', 'aol.com',\n 'icloud.com', 'protonmail.com', 'mail.com', 'zoho.com', 'yandex.com'\n ],\n\n companyNames: [\n 'Acme Corp', 'Globex Corporation', 'Soylent Corp', 'Initech', 'Umbrella Corporation',\n 'Stark Industries', 'Wayne Enterprises', 'Cyberdyne Systems', 'Massive Dynamic',\n 'Hooli', 'Vehement Capital Partners', 'Bluth Company', 'Dunder Mifflin',\n 'Stark Industries', 'Wonka Industries', 'Stark Industries', 'Stark Industries'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transportation',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace'\n ],\n\n catchPhrases: [\n 'Innovating tomorrow, today', 'Your success is our business', 'Building the future together',\n 'Empowering possibilities', 'Transforming ideas into reality', 'Excellence in every detail',\n 'Where quality meets innovation', 'Driving progress through technology',\n 'Your partner in growth', 'Making the impossible possible'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ja_JP: LocaleDefinition = {\n // Nama keluarga Jepang (姓)\n lastNames: [\n 'Satou', 'Suzuki', 'Takahashi', 'Tanaka', 'Watanabe', 'Itou', 'Yamamoto',\n 'Nakamura', 'Kobayashi', 'Katou', 'Yoshida', 'Yamada', 'Sasaki', 'Yamaguchi',\n 'Matsumoto', 'Inoue', 'Kimura', 'Hayashi', 'Shimizu', 'Yamazaki', 'Mori',\n 'Abe', 'Ikeda', 'Hashimoto', 'Yamashita', 'Ishikawa', 'Nakajima', 'Maeda',\n 'Fujita', 'Ogawa', 'Gotou', 'Okada', 'Hasegawa', 'Murakami', 'Kondou',\n 'Ishii', 'Saitou', 'Sakamoto', 'Endou', 'Fujii', 'Nishimura', 'Fukuda',\n 'Ootani', 'Miura', 'Okamoto', 'Matsuda', 'Nakano', 'Harada'\n ],\n // Nama depan pria (男性名)\n firstNamesMale: [\n 'Hiroshi', 'Takeshi', 'Kenji', 'Kazuo', 'Masao', 'Toshio', 'Minoru',\n 'Makoto', 'Satoshi', 'Yuji', 'Koji', 'Takashi', 'Shinji', 'Hideki',\n 'Masashi', 'Kenichi', 'Yuki', 'Haruki', 'Daiki', 'Ryouta', 'Shou',\n 'Kaito', 'Hayato', 'Souta', 'Yuuto', 'Kouki', 'Ren', 'Haruto',\n 'Akira', 'Ryuu', 'Tatsuya', 'Daisuke', 'Naoki', 'Tomoya', 'Shun',\n 'Ryousuke', 'Kenta', 'Yousuke', 'Taichi', 'Yuuma', 'Shouta', 'Riku'\n ],\n // Nama depan wanita (女性名)\n firstNamesFemale: [\n 'Yuko', 'Keiko', 'Kumiko', 'Sachiko', 'Yoshiko', 'Kazuko', 'Michiko',\n 'Akiko', 'Noriko', 'Yuki', 'Emi', 'Aiko', 'Mayumi', 'Naoko', 'Tomoko',\n 'Yuka', 'Ayumi', 'Haruka', 'Miho', 'Maki', 'Sakura', 'Hana', 'Yui',\n 'Rina', 'Nana', 'Ami', 'Mei', 'Momoka', 'Hina', 'Aoi', 'Mio',\n 'Nanami', 'Riko', 'Kana', 'Ayaka', 'Akari', 'Yuna', 'Sara', 'Miyu',\n 'Honoka', 'Koharu', 'Himari', 'Miku', 'Rin', 'Saki', 'Hinata'\n ],\n streets: [\n 'Chuo-dori', 'Sakura-dori', 'Midori-cho', 'Higashi-cho', 'Nishi-cho',\n 'Minami-cho', 'Kita-cho', 'Honcho', 'Miyuki-dori', 'Ekimae-dori',\n 'Showa-dori', 'Taisho-dori', 'Heisei-dori', 'Reiwa-dori', 'Yanagi-cho',\n 'Matsu-cho', 'Take-cho', 'Ume-cho', 'Momo-cho', 'Kiku-cho', 'Tsubaki-cho',\n 'Fuji-cho', 'Asahi-cho', 'Hoshi-cho', 'Tsuki-cho', 'Sora-cho', 'Umi-cho'\n ],\n cities: [\n 'Tokyo', 'Yokohama', 'Osaka', 'Nagoya', 'Sapporo', 'Fukuoka', 'Kobe',\n 'Kyoto', 'Kawasaki', 'Saitama', 'Hiroshima', 'Sendai', 'Chiba', 'Kitakyushu',\n 'Sakai', 'Niigata', 'Hamamatsu', 'Kumamoto', 'Sagamihara', 'Shizuoka',\n 'Okayama', 'Kagoshima', 'Hachioji', 'Matsuyama', 'Utsunomiya', 'Matsudo'\n ],\n // Prefektur Jepang (都道府県)\n states: [\n 'Tokyo', 'Osaka', 'Kyoto', 'Hokkaido', 'Aichi', 'Fukuoka', 'Kanagawa',\n 'Saitama', 'Chiba', 'Hyogo', 'Hiroshima', 'Miyagi', 'Niigata', 'Shizuoka',\n 'Okayama', 'Kumamoto', 'Kagoshima', 'Nagano', 'Gifu', 'Fukushima', 'Gunma',\n 'Ibaraki', 'Tochigi', 'Mie', 'Nara', 'Wakayama', 'Shiga', 'Yamanashi',\n 'Ishikawa', 'Toyama', 'Fukui', 'Yamaguchi', 'Ehime', 'Kagawa', 'Tokushima',\n 'Kochi', 'Saga', 'Nagasaki', 'Oita', 'Miyazaki', 'Okinawa', 'Aomori',\n 'Iwate', 'Akita', 'Yamagata', 'Tottori', 'Shimane'\n ],\n zipCodePattern: '###-####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Sales Manager', 'Accountant',\n 'HR Manager', 'Marketing Specialist', 'Data Analyst', 'Designer',\n 'Operations Manager', 'Business Analyst', 'System Administrator',\n 'Product Manager', 'Customer Support', 'Quality Assurance Engineer',\n 'Technical Writer', 'Database Administrator', 'Network Engineer'\n ],\n departments: [\n 'Engineering', 'Sales', 'Marketing', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Administration', 'Quality Assurance'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n // Format Jepang: Nama Keluarga + Nama Depan\n return `${lastName} ${firstName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n // Format alamat Jepang: 〒Kode Pos, Prefektur, Kota, Jalan, Nomor\n const choume = Random.int(1, 5);\n const banchi = Random.int(1, 20);\n const gou = Random.int(1, 30);\n return `〒${zipCode} ${state}, ${city}, ${street} ${choume}-${banchi}-${gou}`;\n },\n\n generateZipCode(): string {\n const part1 = String(Random.int(100, 999));\n const part2 = String(Random.int(1000, 9999));\n return `${part1}-${part2}`;\n },\n\n phoneFormats: [\n '+81-##-####-####',\n '0#-####-####',\n '0##-###-####',\n '0###-##-####',\n '090-####-####',\n '080-####-####',\n '070-####-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.co.jp', 'outlook.com', 'hotmail.co.jp',\n 'docomo.ne.jp', 'au.com', 'softbank.ne.jp', 'ezweb.ne.jp',\n 'excite.co.jp', 'livedoor.com', 'goo.ne.jp', 'nifty.com'\n ],\n\n companyNames: [\n 'トヨタ自動車', 'ソニーグループ', 'キーエンス', 'ファーストリテイリング',\n '日本電信電話', '三菱商事', '三井物産', '伊藤忠商事', '住友商事',\n '丸紅', '双日', '豊田通商', '本田技研工業', '日産自動車', 'マツダ',\n 'パナソニック', '東芝', '日立製作所', '富士通', 'NEC', 'シャープ'\n ],\n\n industries: [\n '技術', '金融', '医療', '教育', '小売',\n '製造', 'メディア', '通信', 'エネルギー', '運輸',\n '不動産', 'コンサルティング', 'ホテル', '自動車', '航空宇宙'\n ],\n\n catchPhrases: [\n '未来を創造する', 'お客様の成功が私たちの使命', '共に未来を築く',\n '品質と信頼', '革新と伝統', '最高のサービスをお届け',\n '持続可能な成長', '価値を創出する', 'あなたのパートナー'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const id_ID: LocaleDefinition = {\n firstNamesMale: [\n 'Budi', 'Ahmad', 'Agus', 'Andi', 'Bambang', 'Dedi', 'Eko', 'Hadi',\n 'Iwan', 'Joko', 'Rudi', 'Slamet', 'Teguh', 'Wawan', 'Yudi', 'Rizki',\n 'Fajar', 'Bayu', 'Dimas', 'Arif', 'Indra', 'Gunawan', 'Hendra', 'Firman',\n 'Aditya', 'Putra', 'Gilang', 'Yoga', 'Rama', 'Satria', 'Wahyu', 'Rizal',\n 'Firdaus', 'Ilham', 'Ridwan', 'Surya', 'Akbar', 'Pratama', 'Nugroho'\n ],\n firstNamesFemale: [\n 'Siti', 'Dewi', 'Ani', 'Sri', 'Ratna', 'Rina', 'Endang', 'Fitri',\n 'Diah', 'Yuni', 'Wati', 'Ayu', 'Indah', 'Maya', 'Lestari', 'Putri',\n 'Sari', 'Rini', 'Tuti', 'Nur', 'Lia', 'Dian', 'Ika', 'Nia', 'Mega',\n 'Andini', 'Citra', 'Kartika', 'Puspita', 'Cahaya', 'Anggraini', 'Permata',\n 'Safitri', 'Rahayu', 'Maharani', 'Pratiwi', 'Kusuma', 'Melati', 'Zahra'\n ],\n lastNames: [\n 'Santoso', 'Wijaya', 'Susanto', 'Pranowo', 'Saputra', 'Kurniawan', 'Wibowo',\n 'Prasetyo', 'Hidayat', 'Setiawan', 'Nugroho', 'Hakim', 'Gunawan', 'Firmansyah',\n 'Budiman', 'Hermawan', 'Putra', 'Cahyadi', 'Utomo', 'Suharto', 'Handoko',\n 'Kusuma', 'Rahmat', 'Irawan', 'Sinaga', 'Sitorus', 'Sihotang', 'Simanjuntak',\n 'Tampubolon', 'Nababan', 'Manurung', 'Siregar', 'Panjaitan', 'Pasaribu',\n 'Hasibuan', 'Sembiring', 'Tarigan', 'Lubis', 'Nasution', 'Situmorang',\n 'Pardede', 'Simbolon', 'Silalahi', 'Aritonang', 'Simatupang', 'Hutapea'\n ],\n streets: [\n 'Jl. Merdeka', 'Jl. Sudirman', 'Jl. Gatot Subroto', 'Jl. Ahmad Yani',\n 'Jl. Diponegoro', 'Jl. Veteran', 'Jl. Pahlawan', 'Jl. Hayam Wuruk',\n 'Jl. Gajah Mada', 'Jl. Kartini', 'Jl. Proklamasi', 'Jl. Kemerdekaan',\n 'Jl. Imam Bonjol', 'Jl. Pemuda', 'Jl. Pattimura', 'Jl. Sisingamangaraja',\n 'Jl. Thamrin', 'Jl. Rasuna Said', 'Jl. MT Haryono', 'Jl. Basuki Rahmat',\n 'Jl. Wolter Monginsidi', 'Jl. Teuku Umar', 'Jl. Cut Nyak Dien', 'Jl. Majapahit'\n ],\n cities: [\n 'Jakarta', 'Surabaya', 'Bandung', 'Medan', 'Semarang', 'Makassar', 'Palembang',\n 'Tangerang', 'Depok', 'Bekasi', 'Bogor', 'Yogyakarta', 'Malang', 'Batam',\n 'Pekanbaru', 'Bandar Lampung', 'Padang', 'Denpasar', 'Samarinda', 'Banjarmasin',\n 'Pontianak', 'Balikpapan', 'Jambi', 'Manado', 'Mataram', 'Kupang', 'Ambon'\n ],\n states: [\n 'DKI Jakarta', 'Jawa Barat', 'Jawa Tengah', 'Jawa Timur', 'Banten',\n 'Sumatera Utara', 'Sumatera Barat', 'Sumatera Selatan', 'Riau', 'Lampung',\n 'Kepulauan Riau', 'Bangka Belitung', 'Jambi', 'Bengkulu', 'Aceh',\n 'Kalimantan Barat', 'Kalimantan Tengah', 'Kalimantan Selatan', 'Kalimantan Timur',\n 'Kalimantan Utara', 'Sulawesi Utara', 'Sulawesi Tengah', 'Sulawesi Selatan',\n 'Sulawesi Tenggara', 'Gorontalo', 'Sulawesi Barat', 'Bali', 'Nusa Tenggara Barat',\n 'Nusa Tenggara Timur', 'Maluku', 'Maluku Utara', 'Papua', 'Papua Barat',\n 'DI Yogyakarta'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Akuntan', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Financial Analyst', 'Product Manager', 'System Administrator',\n 'Customer Service', 'Quality Assurance Engineer', 'Technical Writer',\n 'Database Administrator', 'Network Engineer', 'Content Writer', 'Account Manager'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n const rt = Random.int(1, 20);\n const rw = Random.int(1, 15);\n return `${street} No. ${number}, RT ${rt}/RW ${rw}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+62 ###-####-####',\n '08##-####-####',\n '(021) ####-####',\n '021-####-####',\n '+62 (###) ###-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'icloud.com', 'protonmail.com', 'mail.com',\n 'gmail.co.id', 'yahoo.co.id', 'plasa.com', 'telkom.net'\n ],\n\n companyNames: [\n 'PT Astra International', 'PT Telkom Indonesia', 'PT Bank Central Asia',\n 'PT Unilever Indonesia', 'PT Indofood Sukses Makmur', 'PT Garuda Indonesia',\n 'PT Pertamina', 'PT Bank Mandiri', 'PT Bukit Asam', 'PT Freeport Indonesia',\n 'PT Gudang Garam', 'PT Djarum', 'PT HM Sampoerna', 'PT Kalbe Farma',\n 'PT XL Axiata', 'PT Indosat Ooredoo', 'PT Gojek Indonesia', 'PT Traveloka'\n ],\n\n industries: [\n 'Teknologi', 'Keuangan', 'Kesehatan', 'Pendidikan', 'Retail',\n 'Manufaktur', 'Media', 'Telekomunikasi', 'Energi', 'Transportasi',\n 'Properti', 'Konsultasi', 'Perhotelan', 'Otomotif', 'Pertambangan'\n ],\n\n catchPhrases: [\n 'Inovasi untuk masa depan', 'Solusi terbaik untuk Anda', 'Membangun bersama menuju sukses',\n 'Kualitas terbaik, pelayanan prima', 'Mitra terpercaya Anda', 'Menghadirkan kemudahan',\n 'Solusi digital untuk kehidupan', 'Bersama meraih kesuksesan', 'Komitmen untuk keunggulan'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const de_DE: LocaleDefinition = {\n firstNamesMale: [\n 'Lukas', 'Leon', 'Tim', 'Paul', 'Jonas', 'Finn', 'Noah', 'Felix',\n 'Elias', 'Ben', 'Luca', 'Maximilian', 'Jan', 'Niklas', 'Tom', 'Moritz',\n 'Max', 'Julian', 'David', 'Alexander', 'Simon', 'Fabian', 'Tobias',\n 'Sebastian', 'Philipp', 'Florian', 'Kevin', 'Christian', 'Daniel',\n 'Michael', 'Stefan', 'Thomas', 'Andreas', 'Matthias', 'Markus', 'Peter',\n 'Klaus', 'Wolfgang', 'Jürgen', 'Hans', 'Dieter', 'Helmut', 'Werner'\n ],\n firstNamesFemale: [\n 'Emma', 'Mia', 'Hannah', 'Sofia', 'Anna', 'Emilia', 'Lina', 'Marie',\n 'Sophia', 'Lena', 'Lea', 'Leonie', 'Amelie', 'Laura', 'Lisa', 'Luisa',\n 'Sarah', 'Julia', 'Katharina', 'Nina', 'Jana', 'Michelle', 'Christina',\n 'Vanessa', 'Jessica', 'Jennifer', 'Sandra', 'Stefanie', 'Melanie',\n 'Andrea', 'Petra', 'Sabine', 'Susanne', 'Martina', 'Monika', 'Birgit',\n 'Claudia', 'Karin', 'Angelika', 'Ingrid', 'Helga', 'Gisela', 'Ursula'\n ],\n lastNames: [\n 'Müller', 'Schmidt', 'Schneider', 'Fischer', 'Weber', 'Meyer', 'Wagner',\n 'Becker', 'Schulz', 'Hoffmann', 'Schäfer', 'Koch', 'Bauer', 'Richter',\n 'Klein', 'Wolf', 'Schröder', 'Neumann', 'Schwarz', 'Zimmermann', 'Braun',\n 'Krüger', 'Hofmann', 'Hartmann', 'Lange', 'Schmitt', 'Werner', 'Schmitz',\n 'Krause', 'Meier', 'Lehmann', 'Schmid', 'Schulze', 'Maier', 'Köhler',\n 'Herrmann', 'König', 'Walter', 'Mayer', 'Huber', 'Kaiser', 'Fuchs',\n 'Peters', 'Lang', 'Scholz', 'Möller', 'Weiß', 'Jung', 'Hahn', 'Schubert'\n ],\n streets: [\n 'Hauptstraße', 'Bahnhofstraße', 'Gartenstraße', 'Schulstraße', 'Dorfstraße',\n 'Kirchstraße', 'Bergstraße', 'Waldstraße', 'Schillerstraße', 'Goethestraße',\n 'Lindenstraße', 'Parkstraße', 'Mozartstraße', 'Beethovenstraße', 'Bachstraße',\n 'Kantstraße', 'Lessingstraße', 'Fichtestraße', 'Schubertstraße', 'Brahmsstraße',\n 'Friedrichstraße', 'Wilhelmstraße', 'Marktstraße', 'Kaiserstraße', 'Poststraße',\n 'Ringstraße', 'Am Markt', 'Rosenstraße', 'Birkenweg', 'Ahornweg'\n ],\n cities: [\n 'Berlin', 'Hamburg', 'München', 'Köln', 'Frankfurt', 'Stuttgart', 'Düsseldorf',\n 'Dortmund', 'Essen', 'Leipzig', 'Bremen', 'Dresden', 'Hannover', 'Nürnberg',\n 'Duisburg', 'Bochum', 'Wuppertal', 'Bielefeld', 'Bonn', 'Münster', 'Karlsruhe',\n 'Mannheim', 'Augsburg', 'Wiesbaden', 'Gelsenkirchen', 'Mönchengladbach',\n 'Braunschweig', 'Chemnitz', 'Kiel', 'Aachen', 'Halle', 'Magdeburg', 'Freiburg',\n 'Krefeld', 'Lübeck', 'Oberhausen', 'Erfurt', 'Mainz', 'Rostock', 'Kassel'\n ],\n states: [\n 'Baden-Württemberg', 'Bayern', 'Berlin', 'Brandenburg', 'Bremen',\n 'Hamburg', 'Hessen', 'Mecklenburg-Vorpommern', 'Niedersachsen',\n 'Nordrhein-Westfalen', 'Rheinland-Pfalz', 'Saarland', 'Sachsen',\n 'Sachsen-Anhalt', 'Schleswig-Holstein', 'Thüringen'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Projektmanager', 'Datenanalyst', 'Marketing Manager',\n 'Vertriebsmitarbeiter', 'Buchhalter', 'Personalleiter', 'Designer',\n 'Betriebsleiter', 'Business Analyst', 'Finanzanalyst', 'Produktmanager',\n 'Systemadministrator', 'Kundenbetreuer', 'Quality Assurance Engineer',\n 'Technischer Redakteur', 'Datenbankadministrator', 'Netzwerkingenieur'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Vertrieb', 'Personalwesen', 'Finanzen',\n 'Betrieb', 'Kundenservice', 'IT', 'Forschung und Entwicklung',\n 'Recht', 'Produktmanagement', 'Design', 'Qualitätssicherung', 'Verwaltung'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 200);\n return `${street} ${houseNumber}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+49 (###) #######',\n '0### ########',\n '0#### #######',\n '+49 (0)### ########',\n '01## #######'\n ],\n\n emailDomains: [\n 'gmail.com', 'web.de', 'gmx.de', 't-online.de', 'yahoo.de',\n 'hotmail.de', 'outlook.de', 'mail.de', 'freenet.de', '1und1.de'\n ],\n\n companyNames: [\n 'Volkswagen AG', 'Siemens AG', 'BMW AG', 'Mercedes-Benz AG', 'Bosch GmbH',\n 'SAP SE', 'Deutsche Bank AG', 'Allianz SE', 'BASF SE', 'Adidas AG',\n 'Deutsche Telekom AG', 'Audi AG', 'Deutsche Post AG', 'Bayer AG', 'Henkel AG'\n ],\n\n industries: [\n 'Technologie', 'Finanzen', 'Gesundheitswesen', 'Bildung', 'Einzelhandel',\n 'Fertigung', 'Medien', 'Telekommunikation', 'Energie', 'Transport',\n 'Immobilien', 'Beratung', 'Gastgewerbe', 'Automobil', 'Luftfahrt'\n ],\n\n catchPhrases: [\n 'Innovation für die Zukunft', 'Ihr Erfolg ist unser Geschäft', 'Gemeinsam die Zukunft gestalten',\n 'Qualität made in Germany', 'Vertrauen und Kompetenz', 'Exzellenz in jedem Detail',\n 'Nachhaltig und zuverlässig', 'Präzision und Innovation', 'Ihr Partner für Wachstum'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const fr_FR: LocaleDefinition = {\n firstNamesMale: [\n 'Gabriel', 'Raphaël', 'Léo', 'Louis', 'Lucas', 'Adam', 'Arthur', 'Hugo',\n 'Jules', 'Maël', 'Noah', 'Tom', 'Nathan', 'Ethan', 'Paul', 'Théo',\n 'Pierre', 'Jean', 'Marc', 'François', 'Michel', 'Nicolas', 'Antoine',\n 'Philippe', 'Jacques', 'Christophe', 'Olivier', 'Julien', 'David',\n 'Alexandre', 'Sébastien', 'Laurent', 'Guillaume', 'Maxime', 'Benjamin',\n 'Thomas', 'Vincent', 'Daniel', 'Patrick', 'Christian', 'Bernard', 'André'\n ],\n firstNamesFemale: [\n 'Emma', 'Léa', 'Chloé', 'Manon', 'Camille', 'Zoé', 'Sarah', 'Lola',\n 'Inès', 'Jade', 'Louise', 'Lina', 'Rose', 'Alice', 'Juliette', 'Clara',\n 'Marie', 'Sophie', 'Isabelle', 'Julie', 'Nathalie', 'Caroline', 'Laura',\n 'Émilie', 'Pauline', 'Charlotte', 'Lucie', 'Céline', 'Marine', 'Sandra',\n 'Valérie', 'Sylvie', 'Catherine', 'Martine', 'Christine', 'Françoise',\n 'Monique', 'Nicole', 'Véronique', 'Brigitte', 'Dominique', 'Anne', 'Claire'\n ],\n lastNames: [\n 'Martin', 'Bernard', 'Thomas', 'Petit', 'Robert', 'Richard', 'Durand',\n 'Dubois', 'Moreau', 'Laurent', 'Simon', 'Michel', 'Lefebvre', 'Leroy',\n 'Roux', 'David', 'Bertrand', 'Morel', 'Fournier', 'Girard', 'Bonnet',\n 'Dupont', 'Lambert', 'Fontaine', 'Rousseau', 'Vincent', 'Muller', 'Lefevre',\n 'Faure', 'Andre', 'Mercier', 'Blanc', 'Guerin', 'Boyer', 'Garnier',\n 'Chevalier', 'Francois', 'Legrand', 'Gauthier', 'Garcia', 'Perrin',\n 'Robin', 'Clement', 'Morin', 'Nicolas', 'Henry', 'Roussel', 'Matthieu'\n ],\n streets: [\n 'Rue de la Paix', 'Avenue des Champs-Élysées', 'Boulevard Haussmann',\n 'Rue de Rivoli', 'Rue Saint-Honoré', 'Avenue Montaigne', 'Rue du Faubourg',\n 'Boulevard Saint-Germain', 'Rue de Vaugirard', 'Avenue Victor Hugo',\n 'Rue Lafayette', 'Boulevard Voltaire', 'Rue de la République', 'Place de la Concorde',\n 'Rue Nationale', 'Avenue Jean Jaurès', 'Rue Pasteur', 'Boulevard Gambetta',\n 'Rue du Général de Gaulle', 'Avenue de la Liberté', 'Rue Carnot', 'Place du Marché',\n 'Rue Victor Hugo', 'Boulevard de la Mer', 'Rue des Écoles', 'Avenue du Président'\n ],\n cities: [\n 'Paris', 'Marseille', 'Lyon', 'Toulouse', 'Nice', 'Nantes', 'Strasbourg',\n 'Montpellier', 'Bordeaux', 'Lille', 'Rennes', 'Reims', 'Le Havre', 'Saint-Étienne',\n 'Toulon', 'Grenoble', 'Dijon', 'Angers', 'Nîmes', 'Villeurbanne', 'Saint-Denis',\n 'Le Mans', 'Aix-en-Provence', 'Clermont-Ferrand', 'Brest', 'Limoges', 'Tours',\n 'Amiens', 'Perpignan', 'Metz', 'Besançon', 'Boulogne-Billancourt', 'Orléans',\n 'Mulhouse', 'Rouen', 'Caen', 'Nancy', 'Argenteuil', 'Montreuil', 'Saint-Paul'\n ],\n states: [\n 'Île-de-France', 'Provence-Alpes-Côte d\\'Azur', 'Auvergne-Rhône-Alpes',\n 'Nouvelle-Aquitaine', 'Occitanie', 'Hauts-de-France', 'Pays de la Loire',\n 'Bretagne', 'Grand Est', 'Normandie', 'Bourgogne-Franche-Comté',\n 'Centre-Val de Loire', 'Corse'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Ingénieur Logiciel', 'Chef de Projet', 'Analyste de Données', 'Responsable Marketing',\n 'Commercial', 'Comptable', 'Responsable RH', 'Designer', 'Responsable des Opérations',\n 'Analyste d\\'Affaires', 'Analyste Financier', 'Chef de Produit',\n 'Administrateur Système', 'Chargé de Clientèle', 'Ingénieur Qualité',\n 'Rédacteur Technique', 'Administrateur de Base de Données', 'Ingénieur Réseau'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Commercial', 'Ressources Humaines', 'Finance',\n 'Opérations', 'Service Client', 'IT', 'Recherche et Développement',\n 'Juridique', 'Gestion de Produit', 'Design', 'Assurance Qualité', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 300);\n return `${houseNumber} ${street}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+33 # ## ## ## ##',\n '0# ## ## ## ##',\n '+33 (0)# ## ## ## ##',\n '06 ## ## ## ##',\n '07 ## ## ## ##'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.fr', 'outlook.fr', 'hotmail.fr', 'orange.fr',\n 'free.fr', 'laposte.net', 'sfr.fr', 'bbox.fr', 'numericable.fr'\n ],\n\n companyNames: [\n 'TotalEnergies SE', 'LVMH Moët Hennessy', 'L\\'Oréal SA', 'Sanofi SA',\n 'Air Liquide SA', 'Renault SA', 'Peugeot SA', 'Airbus SE', 'Thales SA',\n 'Société Générale', 'BNP Paribas', 'Crédit Agricole', 'Carrefour SA',\n 'Danone SA', 'Hermès International', 'Chanel SA', 'Dassault Aviation'\n ],\n\n industries: [\n 'Technologie', 'Finance', 'Santé', 'Éducation', 'Commerce de détail',\n 'Fabrication', 'Médias', 'Télécommunications', 'Énergie', 'Transport',\n 'Immobilier', 'Conseil', 'Hôtellerie', 'Automobile', 'Aérospatial'\n ],\n\n catchPhrases: [\n 'Innover pour l\\'avenir', 'Votre réussite est notre métier', 'Construire l\\'avenir ensemble',\n 'L\\'excellence à la française', 'Qualité et innovation', 'Engagement et confiance',\n 'Solutions durables', 'Créer de la valeur', 'Votre partenaire de croissance'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const pt_BR: LocaleDefinition = {\n firstNamesMale: [\n 'Miguel', 'Arthur', 'Heitor', 'Bernardo', 'Théo', 'Davi', 'Gabriel', 'Pedro',\n 'Lucas', 'Matheus', 'Rafael', 'João', 'Guilherme', 'Gustavo', 'Felipe',\n 'Bruno', 'Leonardo', 'Diego', 'Rodrigo', 'Marcelo', 'Vinícius', 'André',\n 'Thiago', 'Fernando', 'Ricardo', 'Daniel', 'Carlos', 'Paulo', 'José',\n 'Antônio', 'Francisco', 'Marcos', 'Roberto', 'Eduardo', 'Fábio', 'César',\n 'Alexandre', 'Renato', 'Márcio', 'Sérgio', 'Luciano', 'Anderson', 'Caio'\n ],\n firstNamesFemale: [\n 'Alice', 'Sophia', 'Helena', 'Valentina', 'Laura', 'Isabella', 'Manuela',\n 'Júlia', 'Heloísa', 'Luiza', 'Maria', 'Lorena', 'Lívia', 'Giovanna',\n 'Beatriz', 'Ana', 'Fernanda', 'Camila', 'Juliana', 'Mariana', 'Patrícia',\n 'Amanda', 'Letícia', 'Carolina', 'Gabriela', 'Renata', 'Bianca', 'Natália',\n 'Vanessa', 'Aline', 'Cristina', 'Paula', 'Adriana', 'Sandra', 'Tatiana',\n 'Luciana', 'Priscila', 'Débora', 'Simone', 'Carla', 'Andreia', 'Viviane'\n ],\n lastNames: [\n 'Silva', 'Santos', 'Oliveira', 'Souza', 'Rodrigues', 'Ferreira', 'Alves',\n 'Pereira', 'Lima', 'Gomes', 'Costa', 'Ribeiro', 'Martins', 'Carvalho',\n 'Almeida', 'Lopes', 'Soares', 'Fernandes', 'Vieira', 'Barbosa', 'Rocha',\n 'Dias', 'Nascimento', 'Araujo', 'Monteiro', 'Cardoso', 'Nunes', 'Mendes',\n 'Freitas', 'Cavalcanti', 'Castro', 'Pinto', 'Farias', 'Moreira', 'Correia',\n 'Rezende', 'Campos', 'Teixeira', 'Miranda', 'Duarte', 'Aragão', 'Machado',\n 'Barros', 'Andrade', 'Moura', 'Cunha', 'Azevedo', 'Melo', 'Ramos', 'Pires'\n ],\n streets: [\n 'Rua das Flores', 'Avenida Paulista', 'Rua Augusta', 'Avenida Atlântica',\n 'Rua Oscar Freire', 'Avenida Brasil', 'Rua XV de Novembro', 'Avenida Copacabana',\n 'Rua da Consolação', 'Avenida Brigadeiro Faria Lima', 'Rua Direita',\n 'Avenida Getúlio Vargas', 'Rua do Comércio', 'Avenida Rio Branco',\n 'Rua Sete de Setembro', 'Avenida Presidente Vargas', 'Rua da Paz',\n 'Avenida Santos Dumont', 'Rua Amazonas', 'Avenida Dom Pedro II',\n 'Rua Tiradentes', 'Avenida Independência', 'Rua Marechal Deodoro',\n 'Avenida Afonso Pena', 'Rua Barão do Rio Branco', 'Avenida Ipiranga'\n ],\n cities: [\n 'São Paulo', 'Rio de Janeiro', 'Brasília', 'Salvador', 'Fortaleza', 'Belo Horizonte',\n 'Manaus', 'Curitiba', 'Recife', 'Porto Alegre', 'Goiânia', 'Belém', 'Guarulhos',\n 'Campinas', 'São Luís', 'São Gonçalo', 'Maceió', 'Duque de Caxias', 'Natal',\n 'Teresina', 'Campo Grande', 'Nova Iguaçu', 'São Bernardo do Campo', 'João Pessoa',\n 'Santo André', 'Osasco', 'Jaboatão dos Guararapes', 'São José dos Campos',\n 'Ribeirão Preto', 'Uberlândia', 'Sorocaba', 'Contagem', 'Aracaju', 'Feira de Santana'\n ],\n states: [\n 'São Paulo', 'Rio de Janeiro', 'Minas Gerais', 'Bahia', 'Paraná', 'Rio Grande do Sul',\n 'Pernambuco', 'Ceará', 'Pará', 'Santa Catarina', 'Goiás', 'Maranhão', 'Espírito Santo',\n 'Paraíba', 'Amazonas', 'Mato Grosso', 'Rio Grande do Norte', 'Alagoas', 'Piauí',\n 'Distrito Federal', 'Mato Grosso do Sul', 'Sergipe', 'Rondônia', 'Tocantins',\n 'Acre', 'Amapá', 'Roraima'\n ],\n zipCodePattern: '#####-###',\n jobTitles: [\n 'Engenheiro de Software', 'Gerente de Projetos', 'Analista de Dados',\n 'Gerente de Marketing', 'Representante de Vendas', 'Contador', 'Gerente de RH',\n 'Designer', 'Gerente de Operações', 'Analista de Negócios', 'Analista Financeiro',\n 'Gerente de Produto', 'Administrador de Sistemas', 'Atendente ao Cliente',\n 'Engenheiro de Qualidade', 'Redator Técnico', 'Administrador de Banco de Dados',\n 'Engenheiro de Redes', 'Coordenador de Marketing', 'Supervisor de Vendas'\n ],\n departments: [\n 'Engenharia', 'Marketing', 'Vendas', 'Recursos Humanos', 'Financeiro',\n 'Operações', 'Atendimento ao Cliente', 'TI', 'Pesquisa e Desenvolvimento',\n 'Jurídico', 'Gestão de Produtos', 'Design', 'Qualidade', 'Administração'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 9999);\n const complement = Random.pick(['Apto', 'Casa', 'Sala', 'Bloco']);\n const complementNumber = Random.int(1, 500);\n return `${street}, ${houseNumber} - ${complement} ${complementNumber}, ${city} - ${state}, CEP ${zipCode}`;\n },\n\n generateZipCode(): string {\n const part1 = String(Random.int(10000, 99999));\n const part2 = String(Random.int(100, 999));\n return `${part1}-${part2}`;\n },\n\n phoneFormats: [\n '+55 (##) #####-####',\n '(##) #####-####',\n '(##) ####-####',\n '+55 ## #####-####',\n '0## # ####-####',\n '0800-###-####',\n '0300-###-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com.br', 'outlook.com', 'hotmail.com', 'uol.com.br',\n 'bol.com.br', 'ig.com.br', 'terra.com.br', 'live.com', 'msn.com'\n ],\n\n companyNames: [\n 'Petróleo Brasileiro SA', 'Vale SA', 'Itaú Unibanco', 'Banco do Brasil',\n 'Bradesco SA', 'Caixa Econômica Federal', 'JBS SA', 'Ambev SA', 'B3 SA',\n 'Magazine Luiza', 'Lojas Renner', 'WEG SA', 'Raia Drogasil', 'Suzano SA',\n 'Embraer SA', 'Gol Linhas Aéreas', 'Azul SA', 'Tim Brasil', 'Vivo SA'\n ],\n\n industries: [\n 'Tecnologia', 'Finanças', 'Saúde', 'Educação', 'Varejo',\n 'Manufatura', 'Mídia', 'Telecomunicações', 'Energia', 'Transporte',\n 'Imobiliário', 'Consultoria', 'Hotelaria', 'Automotivo', 'Aeroespacial'\n ],\n\n catchPhrases: [\n 'Inovando para o futuro', 'Seu sucesso é nosso negócio', 'Construindo o futuro juntos',\n 'Qualidade e confiança', 'Excelência e compromisso', 'Soluções sustentáveis',\n 'Criando valor', 'Seu parceiro de confiança', 'Liderando a mudança'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ko_KR: LocaleDefinition = {\n // Nama keluarga Korea (성)\n lastNames: [\n 'Kim', 'Lee', 'Park', 'Choi', 'Jung', 'Kang', 'Cho', 'Yoon', 'Jang',\n 'Lim', 'Han', 'Oh', 'Seo', 'Shin', 'Kwon', 'Hwang', 'Ahn', 'Song',\n 'Hong', 'Jeon', 'Ko', 'Moon', 'Son', 'Yang', 'Baek', 'Heo', 'Nam',\n 'Shim', 'Roh', 'Ha', 'Joo', 'Koo', 'Chung', 'Min', 'Yoo', 'Sung',\n 'Ji', 'Woo', 'Chae', 'Yeo', 'Do', 'Bae', 'Noh', 'Pyo', 'Tae'\n ],\n // Nama depan pria Korea (이름 - 남성)\n firstNamesMale: [\n 'Minho', 'Joon', 'Hyun', 'Seung', 'Woong', 'Jin', 'Sung', 'Tae',\n 'Young', 'Dong', 'Soo', 'Jun', 'Woo', 'Hoon', 'Jae', 'Kyung',\n 'Ho', 'Chan', 'Hyuk', 'Min', 'Joon-Ho', 'Ji-Hoon', 'Seo-Jun', 'Do-Yun',\n 'Si-Woo', 'Ye-Jun', 'Min-Jun', 'Joo-Won', 'Ha-Jun', 'Woo-Jin',\n 'Yu-Jun', 'Hyun-Woo', 'Jun-Seo', 'Geon-Woo', 'Ji-Hu', 'Yoon-Seo'\n ],\n // Nama depan wanita Korea (이름 - 여성)\n firstNamesFemale: [\n 'Hye', 'Min', 'Ji', 'Soo', 'Young', 'Eun', 'Mi', 'Sun', 'Kyung',\n 'Jung', 'Hee', 'Jin', 'Yeon', 'Seo', 'Ha', 'Yoo', 'Ah', 'Na',\n 'Seo-Yun', 'Ji-Woo', 'Ha-Eun', 'Min-Seo', 'Seo-Hyun', 'Ji-Ah', 'Yoo-Na',\n 'Soo-Ah', 'Chae-Won', 'Eun-Seo', 'Ha-Yoon', 'Ji-Yoo', 'Ah-Rin',\n 'Ye-Eun', 'Ga-Eun', 'Yu-Ri', 'Hye-Won', 'So-Yeon', 'Da-Eun', 'Bo-Ra'\n ],\n streets: [\n 'Gangnam-daero', 'Teheran-ro', 'Seocho-daero', 'Yeongdong-daero',\n 'Sejong-daero', 'Jongno', 'Euljiro', 'Myeongdong-gil', 'Insadong-gil',\n 'Dongdaemun-ro', 'Sinchon-ro', 'Hongik-ro', 'Itaewon-ro', 'Apgujeong-ro',\n 'Garosu-gil', 'Cheonggyecheon-ro', 'Hangang-daero', 'Olympic-ro',\n 'Dongho-ro', 'Seongbuk-ro', 'Bukchon-ro', 'Samcheong-ro', 'Sajik-ro'\n ],\n cities: [\n 'Seoul', 'Busan', 'Incheon', 'Daegu', 'Daejeon', 'Gwangju', 'Suwon',\n 'Ulsan', 'Changwon', 'Goyang', 'Yongin', 'Seongnam', 'Bucheon', 'Ansan',\n 'Cheongju', 'Jeonju', 'Anyang', 'Cheonan', 'Pohang', 'Gimhae', 'Pyeongtaek',\n 'Uijeongbu', 'Siheung', 'Paju', 'Jinju', 'Gimpo', 'Iksan', 'Wonju'\n ],\n // Provinsi Korea (도/광역시)\n states: [\n 'Seoul', 'Busan', 'Incheon', 'Daegu', 'Daejeon', 'Gwangju', 'Ulsan',\n 'Sejong', 'Gyeonggi-do', 'Gangwon-do', 'North Chungcheong', 'South Chungcheong',\n 'North Jeolla', 'South Jeolla', 'North Gyeongsang', 'South Gyeongsang', 'Jeju'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer',\n 'Operations Manager', 'Business Analyst', 'Financial Analyst', 'Product Manager',\n 'System Administrator', 'Customer Service Representative', 'QA Engineer',\n 'Technical Writer', 'Database Administrator', 'Network Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n // Format Korea: Nama Keluarga + Nama Depan\n return `${lastName} ${firstName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n // Format alamat Korea: Provinsi, Kota, Jalan, Nomor bangunan, Kode Pos\n const buildingNumber = Random.int(1, 500);\n const dong = Random.pick(['Gangnam-gu', 'Seocho-gu', 'Songpa-gu', 'Jongno-gu', 'Jung-gu', 'Yongsan-gu']);\n return `${state}, ${city}, ${dong}, ${street} ${buildingNumber}, ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+82-##-####-####',\n '0##-###-####',\n '010-####-####',\n '011-###-####',\n '016-###-####',\n '019-###-####',\n '02-###-####',\n '031-###-####',\n '032-###-####',\n '051-###-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'naver.com', 'daum.net', 'nate.com', 'yahoo.co.kr',\n 'hotmail.com', 'outlook.com', 'hanmail.net', 'paran.com', 'empas.com'\n ],\n\n companyNames: [\n '삼성전자', '현대자동차', 'SK 하이닉스', 'LG 전자', 'POSCO',\n 'KB 국민은행', '삼성생명', '현대모비스', '기아', 'LG 화학',\n 'SK 텔레콤', 'KT', 'LG 유플러스', 'NAVER', '카카오',\n '셀트리온', '삼성바이오로직스', '현대중공업', '두산', '롯데그룹'\n ],\n\n industries: [\n '기술', '금융', '의료', '교육', '유통',\n '제조', '미디어', '통신', '에너지', '운송',\n '부동산', '컨설팅', '호텔', '자동차', '항공우주'\n ],\n\n catchPhrases: [\n '미래를 창조합니다', '고객의 성공이 우리의 사명', '함께 미래를築습니다',\n '품질과 신뢰', '혁신과 전통', '최고의 서비스를 제공합니다',\n '지속 가능한 성장', '가치를 창출합니다', '당신의 파트너'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_AU: LocaleDefinition = {\n firstNamesMale: [\n 'Oliver', 'Jack', 'Noah', 'William', 'Thomas', 'James', 'Henry', 'Lucas',\n 'Charlie', 'Ethan', 'Liam', 'Mason', 'Benjamin', 'Alexander', 'Samuel',\n 'Daniel', 'Matthew', 'Joshua', 'Ryan', 'Andrew', 'Michael', 'David',\n 'Christopher', 'Nathan', 'Jacob', 'Dylan', 'Luke', 'Isaac', 'Harrison',\n 'Lachlan', 'Cooper', 'Max', 'Angus', 'Hamish', 'Oscar', 'Archer', 'Flynn'\n ],\n firstNamesFemale: [\n 'Charlotte', 'Amelia', 'Olivia', 'Isla', 'Mia', 'Ava', 'Grace', 'Chloe',\n 'Emily', 'Sophie', 'Ella', 'Ruby', 'Harper', 'Zoe', 'Lucy', 'Lily',\n 'Emma', 'Isabella', 'Sophia', 'Hannah', 'Jessica', 'Sarah', 'Madison',\n 'Abigail', 'Elizabeth', 'Scarlett', 'Sienna', 'Matilda', 'Georgia',\n 'Evie', 'Willow', 'Ivy', 'Layla', 'Jasmine', 'Poppy', 'Maya', 'Aria'\n ],\n lastNames: [\n 'Smith', 'Jones', 'Williams', 'Brown', 'Wilson', 'Taylor', 'Johnson',\n 'White', 'Martin', 'Anderson', 'Thompson', 'Nguyen', 'Thomas', 'Walker',\n 'Harris', 'Lee', 'Ryan', 'Robinson', 'Kelly', 'King', 'Murphy', 'Edwards',\n 'Hall', 'Moore', 'Clark', 'Jackson', 'Young', 'Lewis', 'Wood', 'Scott',\n 'Green', 'Davis', 'Baker', 'Adams', 'Nelson', 'Hill', 'Mitchell', 'Campbell',\n 'Roberts', 'Carter', 'Phillips', 'Evans', 'Turner', 'Collins', 'Stewart',\n 'Morris', 'Rogers', 'Reed', 'Cook', 'Morgan', 'Bell', 'Cooper', 'Richardson'\n ],\n streets: [\n 'George Street', 'Elizabeth Street', 'King Street', 'Queen Street', 'Collins Street',\n 'Bourke Street', 'Flinders Street', 'Swanston Street', 'William Street', 'Victoria Street',\n 'Chapel Street', 'High Street', 'Main Road', 'Oxford Street', 'Brunswick Street',\n 'Smith Street', 'Sydney Road', 'Lygon Street', 'Fitzroy Street', 'Acland Street',\n 'Beach Road', 'Princes Highway', 'Pacific Highway', 'Anzac Parade', 'Military Road',\n 'Crown Street', 'Park Road', 'Station Street', 'Church Street', 'Bay Street'\n ],\n cities: [\n 'Sydney', 'Melbourne', 'Brisbane', 'Perth', 'Adelaide', 'Gold Coast', 'Newcastle',\n 'Canberra', 'Sunshine Coast', 'Wollongong', 'Hobart', 'Geelong', 'Townsville',\n 'Cairns', 'Darwin', 'Toowoomba', 'Ballarat', 'Bendigo', 'Albury', 'Launceston',\n 'Mackay', 'Rockhampton', 'Bunbury', 'Bundaberg', 'Wagga Wagga', 'Hervey Bay',\n 'Mildura', 'Shepparton', 'Port Macquarie', 'Gladstone', 'Tamworth', 'Dubbo'\n ],\n states: [\n 'New South Wales', 'Victoria', 'Queensland', 'Western Australia',\n 'South Australia', 'Tasmania', 'Northern Territory',\n 'Australian Capital Territory'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer',\n 'Operations Manager', 'Business Analyst', 'Financial Analyst', 'Product Manager',\n 'Systems Administrator', 'Customer Service Representative', 'Quality Assurance Engineer',\n 'Technical Writer', 'Database Administrator', 'Network Engineer', 'Tradesperson',\n 'Nurse', 'Teacher', 'Electrician', 'Plumber', 'Carpenter', 'Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 999);\n const unitNumber = Random.boolean() ? `Unit ${Random.int(1, 50)}/` : '';\n return `${unitNumber}${houseNumber} ${street}, ${city} ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+61 # #### ####',\n '0# #### ####',\n '+61 (0)# #### ####',\n '04## ### ###',\n '04## ### ###',\n '02 #### ####',\n '03 #### ####',\n '07 #### ####',\n '08 #### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com.au', 'outlook.com.au', 'hotmail.com', 'live.com.au',\n 'bigpond.com', 'optusnet.com.au', 'tpg.com.au', 'iinet.net.au', 'internode.on.net'\n ],\n\n companyNames: [\n 'Commonwealth Bank', 'BHP Group', 'CSL Limited', 'Westpac Banking', 'ANZ Group',\n 'National Australia Bank', 'Wesfarmers', 'Woolworths Group', 'Telstra Corporation',\n 'Macquarie Group', 'Rio Tinto Australia', 'Fortescue Metals', 'Woodside Energy',\n 'Qantas Airways', 'Transurban Group', 'Goodman Group', 'Atlassian Corporation'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transport',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace'\n ],\n\n catchPhrases: [\n 'Innovating for the future', 'Your success is our business', 'Building the future together',\n 'Quality and trust', 'Excellence and commitment', 'Sustainable solutions',\n 'Creating value', 'Your trusted partner', 'Leading the change'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const zh_CN: LocaleDefinition = {\n lastNames: [\n 'Wang', 'Li', 'Zhang', 'Liu', 'Chen', 'Yang', 'Huang', 'Zhao', 'Wu', 'Zhou',\n 'Xu', 'Sun', 'Ma', 'Zhu', 'Hu', 'Guo', 'He', 'Gao', 'Lin', 'Luo',\n 'Zheng', 'Liang', 'Xie', 'Song', 'Tang', 'Xu', 'Deng', 'Han', 'Feng', 'Cao',\n 'Peng', 'Zeng', 'Xiao', 'Tian', 'Dong', 'Pan', 'Yuan', 'Cai', 'Jiang', 'Yu'\n ],\n firstNamesMale: [\n 'Wei', 'Jun', 'Ming', 'Tao', 'Jie', 'Qiang', 'Lei', 'Yong', 'Jian', 'Ping',\n 'Bin', 'Feng', 'Long', 'Chao', 'Yang', 'Lin', 'Hao', 'Gang', 'Kai', 'Peng',\n 'Zhi', 'Yun', 'Bo', 'Hua', 'Xin', 'Liang', 'Chen', 'Dong', 'Fei', 'Xiong',\n 'Huan', 'Yu', 'Rui', 'Jing', 'Song', 'Zhen', 'Kun', 'Han', 'Xi', 'Cheng'\n ],\n firstNamesFemale: [\n 'Li', 'Fang', 'Xiu', 'Ying', 'Min', 'Jing', 'Juan', 'Yan', 'Hong', 'Mei',\n 'Xia', 'Qing', 'Lan', 'Yue', 'Xin', 'Ling', 'Na', 'Hui', 'Rong', 'Dan',\n 'Shan', 'Yun', 'Ping', 'Jie', 'Xue', 'Fen', 'Yu', 'Qian', 'Shu', 'Wen',\n 'Zhen', 'Xiang', 'Cui', 'Lin', 'Ran', 'Meng', 'Rou', 'Yi', 'Ning', 'Qin'\n ],\n streets: [\n 'Zhongshan Road', 'Renmin Road', 'Jiefang Road', 'Changjiang Road', 'Huanghe Road',\n 'Beijing Road', 'Shanghai Road', 'Guangzhou Road', 'Nanjing Road', 'Chengdu Road',\n 'Dongfeng Road', 'Xin Avenue', 'Heping Road', 'Wenhua Road', 'Jianshe Road',\n 'Minzhu Road', 'Gongyuan Road', 'Xueyuan Road', 'Keji Road', 'Binhe Road'\n ],\n cities: [\n 'Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen', 'Chengdu', 'Chongqing', 'Tianjin',\n 'Wuhan', 'Hangzhou', 'Nanjing', 'Xi\\'an', 'Shenyang', 'Harbin', 'Changchun',\n 'Dalian', 'Qingdao', 'Jinan', 'Zhengzhou', 'Shijiazhuang', 'Taiyuan', 'Hefei',\n 'Changsha', 'Nanchang', 'Fuzhou', 'Kunming', 'Guiyang', 'Nanning', 'Lanzhou'\n ],\n states: [\n 'Beijing', 'Shanghai', 'Tianjin', 'Chongqing', 'Hebei', 'Shanxi', 'Liaoning',\n 'Jilin', 'Heilongjiang', 'Jiangsu', 'Zhejiang', 'Anhui', 'Fujian', 'Jiangxi',\n 'Shandong', 'Henan', 'Hubei', 'Hunan', 'Guangdong', 'Hainan', 'Sichuan',\n 'Guizhou', 'Yunnan', 'Shaanxi', 'Gansu', 'Qinghai', 'Xinjiang', 'Guangxi'\n ],\n zipCodePattern: '######',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'R&D', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${lastName} ${firstName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const building = Random.int(1, 999);\n const unit = Random.int(1, 50);\n return `${state} Province, ${city}, ${street} No.${building}, Unit ${unit}, ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(100000, 999999));\n },\n\n phoneFormats: [\n '+86 ### #### ####',\n '### #### ####',\n '+86-###-####-####',\n '1##-####-####',\n '13#-####-####',\n '15#-####-####',\n '18#-####-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'qq.com', '163.com', '126.com', 'sina.com',\n 'sohu.com', 'yahoo.com.cn', 'hotmail.com', 'outlook.com',\n 'gmail.cn', 'foxmail.com', 'yeah.net', '21cn.com'\n ],\n\n companyNames: [\n '阿里巴巴集团', '腾讯控股', '华为技术', '百度', '京东集团',\n '中国移动', '中国石化', '中国石油', '工商银行', '建设银行',\n '中国平安', '中国银行', '农业银行', '上汽集团', '比亚迪',\n '小米集团', '美团点评', '网易公司', '苏宁易购', '海尔集团'\n ],\n\n industries: [\n '科技', '金融', '医疗', '教育', '零售',\n '制造', '媒体', '电信', '能源', '交通',\n '房地产', '咨询', '酒店', '汽车', '航空航天'\n ],\n\n catchPhrases: [\n '创新引领未来', '客户至上', '携手共创美好明天',\n '品质卓越', '诚信为本', '追求卓越',\n '可持续发展', '创造价值', '您的合作伙伴'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_IN: LocaleDefinition = {\n firstNamesMale: [\n 'Rahul', 'Amit', 'Raj', 'Rohan', 'Arjun', 'Aditya', 'Aryan', 'Vikram', 'Suresh',\n 'Karan', 'Sandeep', 'Rajesh', 'Manoj', 'Ashok', 'Deepak', 'Ajay', 'Ravi',\n 'Krishna', 'Sanjay', 'Vijay', 'Anil', 'Ramesh', 'Rakesh', 'Nitin', 'Vivek',\n 'Sachin', 'Akash', 'Nikhil', 'Siddharth', 'Ankit', 'Varun', 'Kunal', 'Harsh'\n ],\n firstNamesFemale: [\n 'Priya', 'Pooja', 'Anita', 'Sneha', 'Kavita', 'Neha', 'Ritu', 'Anjali', 'Divya',\n 'Preeti', 'Sunita', 'Asha', 'Rekha', 'Sonal', 'Manisha', 'Deepika', 'Simran',\n 'Nisha', 'Swati', 'Meera', 'Radha', 'Seema', 'Geeta', 'Riya', 'Shreya',\n 'Ayesha', 'Sakshi', 'Tanvi', 'Aditi', 'Kritika', 'Ishita', 'Dia', 'Mira'\n ],\n lastNames: [\n 'Sharma', 'Verma', 'Singh', 'Kumar', 'Gupta', 'Patel', 'Shah', 'Reddy', 'Desai',\n 'Joshi', 'Rao', 'Mehta', 'Nair', 'Iyer', 'Chopra', 'Malhotra', 'Kapoor', 'Agarwal',\n 'Bansal', 'Jain', 'Sinha', 'Khan', 'Menon', 'Kulkarni', 'Bhatt', 'Trivedi',\n 'Pandey', 'Mishra', 'Yadav', 'Saxena', 'Bose', 'Ghosh', 'Chatterjee', 'Das'\n ],\n streets: [\n 'MG Road', 'Nehru Street', 'Gandhi Nagar', 'Park Street', 'Brigade Road',\n 'Anna Salai', 'Mall Road', 'Station Road', 'Marine Drive', 'Linking Road',\n 'Main Road', 'Church Street', 'Cross Road', 'Ring Road', 'Service Road',\n 'Residency Road', 'Commercial Street', 'Infantry Road', 'Richmond Road'\n ],\n cities: [\n 'Mumbai', 'Delhi', 'Bangalore', 'Hyderabad', 'Chennai', 'Kolkata', 'Pune', 'Ahmedabad',\n 'Jaipur', 'Surat', 'Lucknow', 'Kanpur', 'Nagpur', 'Indore', 'Bhopal', 'Visakhapatnam',\n 'Patna', 'Vadodara', 'Ghaziabad', 'Ludhiana', 'Agra', 'Nashik', 'Faridabad', 'Meerut',\n 'Rajkot', 'Kalyan', 'Vasai', 'Varanasi', 'Srinagar', 'Aurangabad', 'Dhanbad', 'Amritsar'\n ],\n states: [\n 'Maharashtra', 'Delhi', 'Karnataka', 'Telangana', 'Tamil Nadu', 'West Bengal',\n 'Gujarat', 'Rajasthan', 'Uttar Pradesh', 'Madhya Pradesh', 'Bihar', 'Kerala',\n 'Andhra Pradesh', 'Haryana', 'Punjab', 'Odisha', 'Jharkhand', 'Uttarakhand',\n 'Himachal Pradesh', 'Assam', 'Chhattisgarh', 'Goa', 'Jammu and Kashmir'\n ],\n zipCodePattern: '######',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Executive', 'Chartered Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Analyst'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Support', 'IT', 'Research & Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNo = Random.int(1, 999);\n const sector = Random.pick(['A', 'B', 'C', 'D', 'E']);\n return `${houseNo}/${sector}, ${street}, ${city}, ${state} - ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(100000, 999999));\n },\n\n phoneFormats: [\n '+91 ##### #####',\n '0##### #####',\n '+91 (0)##### #####',\n '9##### #####',\n '8##### #####',\n '7##### #####',\n '6##### #####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.co.in', 'outlook.in', 'hotmail.co.in', 'live.in',\n 'rediffmail.com', 'sify.com', 'sancharnet.in', 'vsnl.com', 'dataone.in'\n ],\n\n companyNames: [\n 'Tata Consultancy Services', 'Reliance Industries', 'HDFC Bank', 'Infosys Limited',\n 'ICICI Bank', 'Hindustan Unilever', 'ITC Limited', 'Bharti Airtel',\n 'State Bank of India', 'Larsen & Toubro', 'Wipro Limited', 'Tata Motors',\n 'Mahindra & Mahindra', 'Maruti Suzuki', 'Bajaj Finance', 'Asian Paints',\n 'Titan Company', 'Sun Pharmaceutical', 'Dr Reddy\\'s Laboratories', 'Zomato Limited'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transport',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace'\n ],\n\n catchPhrases: [\n 'Innovating for the future', 'Your success is our business', 'Building the future together',\n 'Quality and trust', 'Excellence and commitment', 'Sustainable solutions',\n 'Creating value', 'Your trusted partner', 'Leading the change'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const es_MX: LocaleDefinition = {\n firstNamesMale: [\n 'José', 'Juan', 'Luis', 'Miguel', 'Carlos', 'Antonio', 'Francisco', 'Alejandro',\n 'Pedro', 'Jesús', 'Manuel', 'Rafael', 'Javier', 'Daniel', 'Ricardo', 'Fernando',\n 'Jorge', 'Roberto', 'Eduardo', 'Sergio', 'Raúl', 'Arturo', 'Gerardo', 'Héctor',\n 'Andrés', 'Diego', 'Gabriel', 'Oscar', 'Julio', 'Ramón', 'Armando', 'Enrique'\n ],\n firstNamesFemale: [\n 'María', 'Guadalupe', 'Juana', 'Margarita', 'Rosa', 'Francisca', 'Teresa', 'Ana',\n 'Patricia', 'Carmen', 'Laura', 'Gabriela', 'Verónica', 'Silvia', 'Martha', 'Diana',\n 'Karla', 'Leticia', 'Sandra', 'Elena', 'Claudia', 'Alejandra', 'Daniela', 'Sofía',\n 'Adriana', 'Andrea', 'Monica', 'Beatriz', 'Cecilia', 'Paola', 'Fernanda', 'Lucía'\n ],\n lastNames: [\n 'Hernández', 'García', 'Martínez', 'López', 'González', 'Rodríguez', 'Pérez', 'Sánchez',\n 'Ramírez', 'Torres', 'Flores', 'Rivera', 'Gómez', 'Díaz', 'Cruz', 'Morales',\n 'Reyes', 'Gutiérrez', 'Ortiz', 'Mendoza', 'Castillo', 'Vargas', 'Romero', 'Jiménez',\n 'Ruiz', 'Álvarez', 'Vázquez', 'Medina', 'Aguilar', 'Salazar', 'Rojas', 'Herrera'\n ],\n streets: [\n 'Avenida Reforma', 'Calle Juárez', 'Avenida Insurgentes', 'Calle Hidalgo',\n 'Avenida Revolución', 'Calle Morelos', 'Avenida Universidad', 'Calle Independencia',\n 'Avenida Constitución', 'Calle 5 de Mayo', 'Avenida Chapultepec', 'Calle Madero',\n 'Avenida Patriotismo', 'Calle Guerrero', 'Avenida División del Norte', 'Calle Cuauhtémoc'\n ],\n cities: [\n 'Ciudad de México', 'Guadalajara', 'Monterrey', 'Puebla', 'Tijuana', 'León',\n 'Juárez', 'Zapopan', 'Mérida', 'San Luis Potosí', 'Querétaro', 'Toluca',\n 'Chihuahua', 'Aguascalientes', 'Saltillo', 'Mexicali', 'Culiacán', 'Acapulco',\n 'Cancún', 'Veracruz', 'Hermosillo', 'Morelia', 'Durango', 'Oaxaca', 'Tampico'\n ],\n states: [\n 'Ciudad de México', 'Jalisco', 'Nuevo León', 'Puebla', 'Baja California', 'Guanajuato',\n 'Chihuahua', 'Yucatán', 'San Luis Potosí', 'Querétaro', 'Estado de México',\n 'Veracruz', 'Aguascalientes', 'Coahuila', 'Sinaloa', 'Sonora', 'Michoacán',\n 'Guerrero', 'Quintana Roo', 'Tamaulipas', 'Oaxaca', 'Chiapas', 'Durango'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Ingeniero de Software', 'Gerente de Proyecto', 'Analista de Datos', 'Gerente de Marketing',\n 'Representante de Ventas', 'Contador', 'Gerente de RH', 'Diseñador', 'Gerente de Operaciones',\n 'Analista de Negocios', 'Gerente de Producto', 'Administrador de Sistemas'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas', 'Operaciones',\n 'Servicio al Cliente', 'TI', 'Investigación y Desarrollo', 'Legal', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n const colonia = Random.pick(['Centro', 'Norte', 'Sur', 'Oriente', 'Poniente']);\n return `${street} ${number}, Col. ${colonia}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+52 ## #### ####',\n '0## #### ####',\n '+52 (##) #### ####',\n '(##) #### ####',\n '1## #### ####',\n '55 #### ####',\n '33 #### ####',\n '81 #### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com.mx', 'outlook.com', 'hotmail.com', 'live.com',\n 'prodigy.net.mx', 'cablevision.net.mx', 'telmex.net.mx', 'uninet.com.mx',\n 'alestra.com.mx', 'totalplay.net'\n ],\n\n companyNames: [\n 'América Móvil', 'Grupo México', 'Grupo Aeroportuario del Sureste', 'Fomento Económico Mexicano',\n 'Grupo Bimbo', 'Cemex', 'Grupo Televisa', 'TV Azteca', 'Grupo Carso',\n 'Grupo Salinas', 'Banco Santander México', 'BBVA México', 'Banorte',\n 'Aeroméxico', 'Volaris', 'Interjet', 'Grupo Modelo', 'Heineken México',\n 'Walmart de México', 'Organización Soriana', 'El Puerto de Liverpool'\n ],\n\n industries: [\n 'Tecnología', 'Finanzas', 'Salud', 'Educación', 'Venta minorista',\n 'Fabricación', 'Medios', 'Telecomunicaciones', 'Energía', 'Transporte',\n 'Inmobiliaria', 'Consultoría', 'Hostelería', 'Automoción', 'Aeroespacial'\n ],\n\n catchPhrases: [\n 'Innovando para el futuro', 'Su éxito es nuestro negocio', 'Construyendo el futuro juntos',\n 'Calidad y confianza', 'Excelencia y compromiso', 'Soluciones sostenibles',\n 'Creamos valor', 'Su socio de confianza', 'Liderando el cambio'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const it_IT: LocaleDefinition = {\n firstNamesMale: [\n 'Francesco', 'Alessandro', 'Andrea', 'Lorenzo', 'Matteo', 'Gabriele', 'Mattia',\n 'Marco', 'Luca', 'Giovanni', 'Giuseppe', 'Antonio', 'Roberto', 'Paolo', 'Stefano',\n 'Carlo', 'Davide', 'Simone', 'Federico', 'Riccardo', 'Michele', 'Tommaso',\n 'Filippo', 'Vincenzo', 'Emanuele', 'Alberto', 'Daniele', 'Leonardo', 'Pietro'\n ],\n firstNamesFemale: [\n 'Sofia', 'Giulia', 'Aurora', 'Alice', 'Ginevra', 'Emma', 'Giorgia', 'Greta',\n 'Beatrice', 'Anna', 'Chiara', 'Francesca', 'Sara', 'Martina', 'Alessia', 'Elena',\n 'Silvia', 'Valentina', 'Federica', 'Laura', 'Elisa', 'Claudia', 'Monica', 'Paola',\n 'Roberta', 'Simona', 'Antonella', 'Maria', 'Lucia', 'Cristina', 'Isabella'\n ],\n lastNames: [\n 'Rossi', 'Russo', 'Ferrari', 'Esposito', 'Bianchi', 'Romano', 'Colombo', 'Ricci',\n 'Marino', 'Greco', 'Bruno', 'Gallo', 'Conti', 'De Luca', 'Costa', 'Giordano',\n 'Mancini', 'Rizzo', 'Lombardi', 'Moretti', 'Barbieri', 'Fontana', 'Santoro',\n 'Mariani', 'Rinaldi', 'Caruso', 'Ferrara', 'Galli', 'Martini', 'Leone', 'Longo'\n ],\n streets: [\n 'Via Roma', 'Corso Italia', 'Via Garibaldi', 'Via Mazzini', 'Piazza Duomo',\n 'Via Dante', 'Corso Vittorio Emanuele', 'Via Cavour', 'Via Verdi', 'Via Nazionale',\n 'Corso Umberto', 'Via Milano', 'Via Torino', 'Via Napoli', 'Viale Europa',\n 'Via della Repubblica', 'Corso Giuseppe Mazzini', 'Via San Francesco', 'Via Venezia'\n ],\n cities: [\n 'Roma', 'Milano', 'Napoli', 'Torino', 'Palermo', 'Genova', 'Bologna', 'Firenze',\n 'Bari', 'Catania', 'Venezia', 'Verona', 'Messina', 'Padova', 'Trieste', 'Brescia',\n 'Parma', 'Taranto', 'Prato', 'Modena', 'Reggio Calabria', 'Reggio Emilia', 'Perugia',\n 'Livorno', 'Ravenna', 'Cagliari', 'Foggia', 'Rimini', 'Salerno', 'Ferrara', 'Sassari'\n ],\n states: [\n 'Lazio', 'Lombardia', 'Campania', 'Piemonte', 'Sicilia', 'Liguria', 'Emilia-Romagna',\n 'Toscana', 'Puglia', 'Veneto', 'Calabria', 'Sardegna', 'Marche', 'Abruzzo',\n 'Friuli-Venezia Giulia', 'Umbria', 'Basilicata', 'Molise', 'Trentino-Alto Adige', 'Valle d\\'Aosta'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Ingegnere Software', 'Project Manager', 'Analista Dati', 'Responsabile Marketing',\n 'Rappresentante Vendite', 'Commercialista', 'Responsabile HR', 'Designer',\n 'Responsabile Operazioni', 'Analista di Business', 'Product Manager', 'Amministratore di Sistema'\n ],\n departments: [\n 'Ingegneria', 'Marketing', 'Vendite', 'Risorse Umane', 'Finanza', 'Operazioni',\n 'Servizio Clienti', 'IT', 'Ricerca e Sviluppo', 'Legale', 'Amministrazione'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n return `${street}, ${number}, ${zipCode} ${city} (${state.substring(0, 2).toUpperCase()})`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+39 0## ### ####',\n '+39 0## #######',\n '0## ### ####',\n '0## #######',\n '+39 3## ### ####',\n '3## ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.it', 'outlook.it', 'hotmail.it', 'libero.it',\n 'alice.it', 'tin.it', 'virgilio.it', 'tiscali.it', 'fastwebnet.it'\n ],\n\n companyNames: [\n 'Eni SpA', 'Enel SpA', 'Generali Italia', 'Intesa Sanpaolo', 'UniCredit SpA',\n 'Stellantis Italy', 'Ferrari NV', 'Lamborghini SpA', 'Pirelli & C',\n 'Telecom Italia', 'Poste Italiane', 'Leonardo SpA', 'Saipem SpA',\n 'Mediaset SpA', 'Moncler SpA', 'Armani SpA', 'Prada SpA', 'Gucci SpA'\n ],\n\n industries: [\n 'Tecnologia', 'Finanza', 'Sanità', 'Istruzione', 'Vendita al dettaglio',\n 'Produzione', 'Media', 'Telecomunicazioni', 'Energia', 'Trasporti',\n 'Immobiliare', 'Consulenza', 'Alberghiero', 'Automobilistico', 'Aerospaziale'\n ],\n\n catchPhrases: [\n 'Innovare per il futuro', 'Il vostro successo è il nostro lavoro', 'Costruire il futuro insieme',\n 'Qualità e fiducia', 'Eccellenza e impegno', 'Soluzioni sostenibili',\n 'Creiamo valore', 'Il vostro partner di fiducia', 'Guidare il cambiamento'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const es_ES: LocaleDefinition = {\n firstNamesMale: [\n 'Antonio', 'Manuel', 'José', 'Francisco', 'David', 'Juan', 'Javier', 'Daniel',\n 'Carlos', 'Miguel', 'Alejandro', 'Pedro', 'Jesús', 'Pablo', 'Sergio', 'Rafael',\n 'Ángel', 'José Antonio', 'Fernando', 'Luis', 'Alberto', 'Jorge', 'Adrián',\n 'Álvaro', 'Diego', 'Raúl', 'Enrique', 'Rubén', 'Iván', 'Gonzalo', 'Hugo'\n ],\n firstNamesFemale: [\n 'María', 'Carmen', 'Ana', 'Isabel', 'Dolores', 'Pilar', 'Teresa', 'Rosa',\n 'Lucía', 'Paula', 'Sara', 'Laura', 'Marta', 'Elena', 'Cristina', 'Andrea',\n 'Sofía', 'Beatriz', 'Alba', 'Nuria', 'Silvia', 'Patricia', 'Raquel', 'Marina',\n 'Clara', 'Irene', 'Julia', 'Natalia', 'Rocío', 'Eva', 'Mónica', 'Susana'\n ],\n lastNames: [\n 'García', 'Fernández', 'González', 'Rodríguez', 'López', 'Martínez', 'Sánchez', 'Pérez',\n 'Gómez', 'Martín', 'Jiménez', 'Ruiz', 'Hernández', 'Díaz', 'Moreno', 'Muñoz',\n 'Álvarez', 'Romero', 'Alonso', 'Gutiérrez', 'Navarro', 'Torres', 'Domínguez',\n 'Vázquez', 'Ramos', 'Gil', 'Ramírez', 'Serrano', 'Blanco', 'Molina', 'Morales'\n ],\n streets: [\n 'Calle Mayor', 'Gran Vía', 'Calle Real', 'Paseo de la Castellana', 'Avenida de Andalucía',\n 'Calle Alcalá', 'Paseo del Prado', 'Calle de Serrano', 'Avenida Diagonal',\n 'Ronda de Segovia', 'Calle Toledo', 'Plaza de España', 'Calle Atocha',\n 'Paseo de Gracia', 'Calle Preciados', 'Avenida de América', 'Calle Génova'\n ],\n cities: [\n 'Madrid', 'Barcelona', 'Valencia', 'Sevilla', 'Zaragoza', 'Málaga', 'Murcia',\n 'Palma', 'Las Palmas', 'Bilbao', 'Alicante', 'Córdoba', 'Valladolid', 'Vigo',\n 'Gijón', 'Hospitalet', 'Vitoria', 'Granada', 'Elche', 'Oviedo', 'Badalona',\n 'Cartagena', 'Terrassa', 'Jerez', 'Sabadell', 'Santa Cruz', 'Pamplona', 'Almería'\n ],\n states: [\n 'Madrid', 'Cataluña', 'Comunidad Valenciana', 'Andalucía', 'Aragón', 'Galicia',\n 'Castilla y León', 'País Vasco', 'Canarias', 'Castilla-La Mancha', 'Murcia',\n 'Asturias', 'Islas Baleares', 'Extremadura', 'Navarra', 'Cantabria', 'La Rioja'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Ingeniero de Software', 'Jefe de Proyecto', 'Analista de Datos', 'Responsable de Marketing',\n 'Comercial', 'Contable', 'Jefe de RRHH', 'Diseñador', 'Responsable de Operaciones',\n 'Analista de Negocio', 'Jefe de Producto', 'Administrador de Sistemas'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas', 'Operaciones',\n 'Atención al Cliente', 'Informática', 'Investigación y Desarrollo', 'Legal', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 300);\n const piso = Random.int(1, 8);\n const puerta = Random.pick(['A', 'B', 'C', 'D']);\n return `${street}, ${number}, ${piso}º ${puerta}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+34 ### ## ## ##',\n '### ## ## ##',\n '6## ## ## ##',\n '7## ## ## ##',\n '9## ## ## ##',\n '+34 6## ## ## ##'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.es', 'outlook.es', 'hotmail.es', 'terra.es',\n 'movistar.es', 'vodafone.es', 'orange.es', 'ono.com', 'wanadoo.es'\n ],\n\n companyNames: [\n 'Inditex SA', 'Banco Santander', 'BBVA', 'Iberdrola SA', 'Repsol SA',\n 'Telefónica SA', 'ACS Actividades', 'Iberia LAE', 'El Corte Inglés',\n 'Mercadona SA', 'Cellnex Telecom', 'Aena SME', 'Ferrovial SA',\n 'Acciona SA', 'CaixaBank', 'Sabadell', 'Mapfre SA'\n ],\n\n industries: [\n 'Tecnología', 'Finanzas', 'Salud', 'Educación', 'Venta minorista',\n 'Fabricación', 'Medios', 'Telecomunicaciones', 'Energía', 'Transporte',\n 'Inmobiliaria', 'Consultoría', 'Hostelería', 'Automoción', 'Aeroespacial'\n ],\n\n catchPhrases: [\n 'Innovando para el futuro', 'Su éxito es nuestro negocio', 'Construyendo el futuro juntos',\n 'Calidad y confianza', 'Excelencia y compromiso', 'Soluciones sostenibles',\n 'Creamos valor', 'Su socio de confianza', 'Liderando el cambio'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const nl_NL: LocaleDefinition = {\n firstNamesMale: [\n 'Jan', 'Pieter', 'Kees', 'Henk', 'Johan', 'Daan', 'Lucas', 'Sem', 'Bram', 'Thijs',\n 'Lars', 'Tim', 'Tom', 'Ruben', 'Sven', 'Stijn', 'Luuk', 'Jesse', 'Milan', 'Max',\n 'Finn', 'Teun', 'Bas', 'Nick', 'Thomas', 'Jasper', 'Jelle', 'Roel', 'Sander'\n ],\n firstNamesFemale: [\n 'Anna', 'Emma', 'Sophie', 'Julia', 'Lisa', 'Laura', 'Sanne', 'Eva', 'Lotte',\n 'Sara', 'Isa', 'Anne', 'Nina', 'Fleur', 'Femke', 'Iris', 'Noa', 'Maud', 'Roos',\n 'Eline', 'Demi', 'Lynn', 'Amy', 'Lieke', 'Naomi', 'Amber', 'Vera', 'Maja', 'Tess'\n ],\n lastNames: [\n 'de Jong', 'Jansen', 'de Vries', 'van den Berg', 'van Dijk', 'Bakker', 'Janssen',\n 'Visser', 'Smit', 'Meijer', 'de Boer', 'Mulder', 'de Groot', 'Bos', 'Vos',\n 'Peters', 'Hendriks', 'van Leeuwen', 'Dekker', 'Brouwer', 'de Wit', 'Dijkstra',\n 'Smits', 'de Graaf', 'van der Meer', 'van der Linden', 'Kok', 'Jacobs', 'de Haan'\n ],\n streets: [\n 'Hoofdstraat', 'Kerkstraat', 'Schoolstraat', 'Dorpsstraat', 'Stationsweg',\n 'Molenstraat', 'Nieuwstraat', 'Parkweg', 'Bosweg', 'Beatrixlaan', 'Wilhelminalaan',\n 'Julianastraat', 'Koningstraat', 'Prins Hendrikstraat', 'Marktstraat',\n 'Parallelweg', 'Gravenstraat', 'Binnenweg', 'Groeneweg', 'Lindenstraat'\n ],\n cities: [\n 'Amsterdam', 'Rotterdam', 'Den Haag', 'Utrecht', 'Eindhoven', 'Tilburg', 'Groningen',\n 'Almere', 'Breda', 'Nijmegen', 'Enschede', 'Haarlem', 'Arnhem', 'Zaanstad',\n 'Amersfoort', 'Apeldoorn', 'Hoofddorp', 'Maastricht', 'Leiden', 'Dordrecht',\n 'Zoetermeer', 'Zwolle', 'Deventer', 'Delft', 'Alkmaar', 'Heerlen', 'Venlo'\n ],\n states: [\n 'Noord-Holland', 'Zuid-Holland', 'Utrecht', 'Noord-Brabant', 'Gelderland',\n 'Overijssel', 'Limburg', 'Groningen', 'Friesland', 'Zeeland', 'Flevoland', 'Drenthe'\n ],\n zipCodePattern: '#### @@',\n jobTitles: [\n 'Software Engineer', 'Projectmanager', 'Data Analist', 'Marketingmanager',\n 'Vertegenwoordiger', 'Accountant', 'HR Manager', 'Designer', 'Operationeel Manager',\n 'Business Analist', 'Productmanager', 'Systeembeheerder', 'Kwaliteitsanalist'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Verkoop', 'Human Resources', 'Financiën', 'Operaties',\n 'Klantenservice', 'IT', 'Onderzoek en Ontwikkeling', 'Juridisch', 'Administratie'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 250);\n const letter = Random.boolean() ? Random.pick(['A', 'B', 'C']) : '';\n return `${street} ${number}${letter}, ${zipCode}, ${city}`;\n },\n\n generateZipCode(): string {\n const digits = String(Random.int(1000, 9999));\n const letters = String.fromCharCode(65 + Random.int(0, 25)) +\n String.fromCharCode(65 + Random.int(0, 25));\n return `${digits} ${letters}`;\n },\n\n phoneFormats: [\n '+31 (0)## ### ####',\n '0## ### ####',\n '+31 (0)# ### ####',\n '0# ### ####',\n '+31 (0)6 ########',\n '06 ########'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.nl', 'outlook.com', 'hotmail.nl', 'live.nl',\n 'ziggo.nl', 'kpnmail.nl', 'upcmail.nl', 'home.nl', 'hetnet.nl'\n ],\n\n companyNames: [\n 'Royal Dutch Shell', 'ASML Holding', 'Philips NV', 'Unilever NV',\n 'ING Groep', 'Heineken NV', 'Akzo Nobel', 'DSM NV', 'KLM Royal Dutch Airlines',\n 'Rabobank', 'ABN AMRO', 'Ahold Delhaize', 'Wolters Kluwer', 'Adyen NV',\n 'Just Eat Takeaway', 'Prosus NV', 'NN Group', 'Aegon NV'\n ],\n\n industries: [\n 'Technologie', 'Financiën', 'Gezondheidszorg', 'Onderwijs', 'Detailhandel',\n 'Productie', 'Media', 'Telecommunicatie', 'Energie', 'Transport',\n 'Onroerend goed', 'Consultancy', 'Horeca', 'Automotive', 'Luchtvaart'\n ],\n\n catchPhrases: [\n 'Innoveren voor de toekomst', 'Uw succes is onze zaak', 'Samen de toekomst bouwen',\n 'Kwaliteit en vertrouwen', 'Uitstekendheid en toewijding', 'Duurzame oplossingen',\n 'Waarde creëren', 'Uw vertrouwde partner', 'Verandering leiden'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_CA: LocaleDefinition = {\n firstNamesMale: [\n 'Liam', 'Noah', 'Oliver', 'Ethan', 'Logan', 'Lucas', 'Mason', 'Benjamin', 'Jack',\n 'James', 'William', 'Alexander', 'Michael', 'Jacob', 'Daniel', 'Matthew', 'Ryan',\n 'Nathan', 'Samuel', 'Owen', 'Dylan', 'Connor', 'Carter', 'Caleb', 'Luke', 'Wyatt',\n 'Thomas', 'Andrew', 'Nicholas', 'Adam', 'David', 'Joseph', 'Tyler', 'Hunter'\n ],\n firstNamesFemale: [\n 'Emma', 'Olivia', 'Ava', 'Sophia', 'Isabella', 'Charlotte', 'Amelia', 'Mia', 'Harper',\n 'Emily', 'Abigail', 'Ella', 'Madison', 'Scarlett', 'Grace', 'Chloe', 'Victoria',\n 'Sofia', 'Lily', 'Hannah', 'Avery', 'Zoe', 'Aria', 'Brooklyn', 'Claire', 'Leah',\n 'Maya', 'Addison', 'Riley', 'Sarah', 'Rachel', 'Jessica', 'Jennifer', 'Laura'\n ],\n lastNames: [\n 'Smith', 'Brown', 'Lee', 'Wilson', 'Martin', 'Roy', 'Tremblay', 'Anderson', 'Johnson',\n 'Taylor', 'Gagnon', 'White', 'Thomas', 'Thompson', 'Campbell', 'Clark', 'Lewis',\n 'Walker', 'Hall', 'Young', 'Allen', 'King', 'Wright', 'Scott', 'Robinson', 'Green',\n 'MacDonald', 'Murphy', 'Stewart', 'Cook', 'Bailey', 'Kelly', 'Ross', 'Mitchell'\n ],\n streets: [\n 'Main Street', 'King Street', 'Queen Street', 'Yonge Street', 'Bloor Street',\n 'Dundas Street', 'College Street', 'Bay Street', 'University Avenue', 'Front Street',\n 'Wellington Street', 'Richmond Street', 'Adelaide Street', 'Spadina Avenue',\n 'Parliament Street', 'Jarvis Street', 'Church Street', 'Victoria Street', 'First Avenue'\n ],\n cities: [\n 'Toronto', 'Montreal', 'Vancouver', 'Calgary', 'Edmonton', 'Ottawa', 'Winnipeg',\n 'Quebec City', 'Hamilton', 'Kitchener', 'London', 'Victoria', 'Halifax', 'Oshawa',\n 'Windsor', 'Saskatoon', 'Regina', 'Barrie', 'Kelowna', 'Abbotsford', 'Sherbrooke',\n 'Guelph', 'Kingston', 'Trois-Rivières', 'Sudbury', 'Thunder Bay', 'Moncton'\n ],\n states: [\n 'Ontario', 'Quebec', 'British Columbia', 'Alberta', 'Manitoba', 'Saskatchewan',\n 'Nova Scotia', 'New Brunswick', 'Newfoundland and Labrador', 'Prince Edward Island',\n 'Northwest Territories', 'Yukon', 'Nunavut'\n ],\n zipCodePattern: '@#@ #@#',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'Systems Administrator', 'Quality Assurance Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 9999);\n const unit = Random.boolean() ? `Unit ${Random.int(1, 100)}, ` : '';\n return `${unit}${number} ${street}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n const letters = 'ABCDEFGHJKLMNPRSTVWXYZ';\n const digits = '0123456789';\n return `${letters[Random.int(0, letters.length - 1)]}${digits[Random.int(0, 9)]}${letters[Random.int(0, letters.length - 1)]} ${digits[Random.int(0, 9)]}${letters[Random.int(0, letters.length - 1)]}${digits[Random.int(0, 9)]}`;\n },\n\n phoneFormats: [\n '+1 (###) ###-####',\n '(###) ###-####',\n '###-###-####',\n '###.###.####',\n '+1 ### ###-####',\n '1 (###) ###-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.ca', 'outlook.com', 'hotmail.com', 'live.ca',\n 'sympatico.ca', 'rogers.com', 'shaw.ca', 'telus.net', 'bell.net'\n ],\n\n companyNames: [\n 'Royal Bank of Canada', 'Toronto-Dominion Bank', 'Enbridge Inc', 'Canadian National Railway',\n 'Bank of Nova Scotia', 'Bank of Montreal', 'Canadian Imperial Bank', 'Suncor Energy',\n 'Canadian Natural Resources', 'BCE Inc', 'Telus Corporation', 'Rogers Communications',\n 'George Weston Limited', 'Loblaw Companies', 'Empire Company', 'Metro Inc',\n 'Air Canada', 'Canadian Pacific Railway', 'Barrick Gold', 'Agnico Eagle Mines'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transport',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace'\n ],\n\n catchPhrases: [\n 'Innovating for the future', 'Your success is our business', 'Building the future together',\n 'Quality and trust', 'Excellence and commitment', 'Sustainable solutions',\n 'Creating value', 'Your trusted partner', 'Leading the change'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_GB: LocaleDefinition = {\n firstNamesMale: [\n 'Oliver', 'George', 'Harry', 'Jack', 'Jacob', 'Noah', 'Charlie', 'Muhammad', 'Thomas',\n 'Oscar', 'William', 'James', 'Henry', 'Alfie', 'Leo', 'Joshua', 'Freddie', 'Ethan',\n 'Archie', 'Isaac', 'Alexander', 'Joseph', 'Edward', 'Samuel', 'Daniel', 'Max',\n 'Lucas', 'Mason', 'Harrison', 'Logan', 'Sebastian', 'Dylan', 'Arthur', 'Theo'\n ],\n firstNamesFemale: [\n 'Olivia', 'Amelia', 'Isla', 'Ava', 'Emily', 'Isabella', 'Mia', 'Poppy', 'Ella',\n 'Lily', 'Sophie', 'Grace', 'Sophia', 'Charlotte', 'Freya', 'Evie', 'Daisy', 'Florence',\n 'Alice', 'Jessica', 'Ivy', 'Millie', 'Ruby', 'Rosie', 'Scarlett', 'Isabelle',\n 'Phoebe', 'Willow', 'Sienna', 'Lucy', 'Emma', 'Harriet', 'Evelyn', 'Elsie'\n ],\n lastNames: [\n 'Smith', 'Jones', 'Taylor', 'Brown', 'Williams', 'Wilson', 'Johnson', 'Davies',\n 'Robinson', 'Wright', 'Thompson', 'Evans', 'Walker', 'White', 'Roberts', 'Green',\n 'Hall', 'Wood', 'Jackson', 'Clarke', 'Patel', 'Khan', 'Lewis', 'James', 'Roberts',\n 'Baker', 'Harrison', 'Hughes', 'Edwards', 'Collins', 'Morgan', 'Cooper', 'Bell'\n ],\n streets: [\n 'High Street', 'Station Road', 'Main Street', 'Park Road', 'Church Street',\n 'Victoria Road', 'Green Lane', 'Manor Road', 'Church Lane', 'Park Avenue',\n 'The Avenue', 'Queens Road', 'New Road', 'Grange Road', 'King Street', 'Kingsway',\n 'Windsor Road', 'London Road', 'Mill Lane', 'School Lane', 'The Green', 'The Crescent'\n ],\n cities: [\n 'London', 'Birmingham', 'Manchester', 'Leeds', 'Liverpool', 'Newcastle', 'Sheffield',\n 'Bristol', 'Glasgow', 'Leicester', 'Edinburgh', 'Bradford', 'Cardiff', 'Belfast',\n 'Nottingham', 'Coventry', 'Kingston upon Hull', 'Stoke-on-Trent', 'Plymouth',\n 'Wolverhampton', 'Derby', 'Southampton', 'Portsmouth', 'Brighton', 'Reading',\n 'Northampton', 'Luton', 'Bolton', 'Aberdeen', 'York', 'Oxford', 'Cambridge'\n ],\n states: [\n 'England', 'Scotland', 'Wales', 'Northern Ireland', 'Greater London', 'West Midlands',\n 'Greater Manchester', 'West Yorkshire', 'South Yorkshire', 'Merseyside', 'Tyne and Wear'\n ],\n zipCodePattern: '@## #@@',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'Systems Administrator', 'Quality Assurance Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 300);\n return `${number} ${street}, ${city}, ${zipCode}`;\n },\n\n generateZipCode(): string {\n const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n const area = letters[Random.int(0, letters.length - 1)] + letters[Random.int(0, letters.length - 1)];\n const district = Random.int(1, 99);\n const sector = Random.int(0, 9);\n const unit = letters[Random.int(0, letters.length - 1)] + letters[Random.int(0, letters.length - 1)];\n return `${area}${district} ${sector}${unit}`;\n },\n\n phoneFormats: [\n '+44 ## #### ####',\n '0## #### ####',\n '+44 (0)## #### ####',\n '07### ######',\n '07### ### ###',\n '020 #### ####',\n '01### ######',\n '01### ### ###'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.co.uk', 'outlook.co.uk', 'hotmail.co.uk', 'live.co.uk',\n 'btinternet.com', 'sky.com', 'talktalk.net', 'virginmedia.com', 'aol.co.uk'\n ],\n\n companyNames: [\n 'HSBC Holdings', 'BP plc', 'Shell plc', 'AstraZeneca', 'GlaxoSmithKline',\n 'Unilever PLC', 'Diageo plc', 'British American Tobacco', 'Rio Tinto Group',\n 'Barclays PLC', 'Lloyds Banking Group', 'NatWest Group', 'Vodafone Group',\n 'BT Group', 'Tesco PLC', 'Sainsbury\\'s', 'Marks & Spencer', 'Rolls-Royce Holdings'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transport',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace'\n ],\n\n catchPhrases: [\n 'Innovating for the future', 'Your success is our business', 'Building the future together',\n 'Quality and trust', 'Excellence and commitment', 'Sustainable solutions',\n 'Creating value', 'Your trusted partner', 'Leading the change'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ru_RU: LocaleDefinition = {\n firstNamesMale: [\n 'Alexander', 'Dmitry', 'Maxim', 'Sergey', 'Andrey', 'Alexey', 'Artem', 'Ivan',\n 'Mikhail', 'Roman', 'Vladimir', 'Nikita', 'Yegor', 'Denis', 'Pavel', 'Kirill',\n 'Anton', 'Oleg', 'Konstantin', 'Igor', 'Evgeny', 'Viktor', 'Nikolay', 'Ilya',\n 'Timur', 'Daniil', 'Vadim', 'Georgy', 'Stanislav', 'Gleb', 'Ruslan', 'Yaroslav'\n ],\n firstNamesFemale: [\n 'Anastasia', 'Maria', 'Daria', 'Anna', 'Ekaterina', 'Victoria', 'Polina', 'Elizaveta',\n 'Alexandra', 'Natalia', 'Olga', 'Tatiana', 'Irina', 'Yulia', 'Elena', 'Ksenia',\n 'Svetlana', 'Marina', 'Vera', 'Sophia', 'Alina', 'Valeria', 'Veronika', 'Kristina',\n 'Diana', 'Lyubov', 'Galina', 'Nina', 'Larisa', 'Ludmila', 'Angelina', 'Arina'\n ],\n lastNames: [\n 'Ivanov', 'Smirnov', 'Kuznetsov', 'Popov', 'Vasiliev', 'Petrov', 'Sokolov', 'Mikhailov',\n 'Novikov', 'Fedorov', 'Morozov', 'Volkov', 'Alexeev', 'Lebedev', 'Semenov', 'Egorov',\n 'Pavlov', 'Kozlov', 'Stepanov', 'Nikolaev', 'Orlov', 'Andreev', 'Makarov', 'Nikitin',\n 'Zakharov', 'Zaitsev', 'Soloviev', 'Borisov', 'Yakovlev', 'Grigoriev', 'Romanov'\n ],\n streets: [\n 'Lenina Street', 'Pushkina Street', 'Sovetskaya Street', 'Tsentralnaya Street',\n 'Mira Avenue', 'Gagarina Street', 'Komsomolskaya Street', 'Kirova Street',\n 'Pobedy Avenue', 'Oktyabrskaya Street', 'Sadovaya Street', 'Moskovskaya Street',\n 'Nevsky Prospekt', 'Tverskaya Street', 'Arbat Street', 'Prospekt Mira',\n 'Kutuzovsky Prospekt', 'Leningradsky Prospekt', 'Novinsky Boulevard'\n ],\n cities: [\n 'Moscow', 'Saint Petersburg', 'Novosibirsk', 'Yekaterinburg', 'Kazan', 'Nizhny Novgorod',\n 'Chelyabinsk', 'Samara', 'Omsk', 'Rostov-on-Don', 'Ufa', 'Krasnoyarsk', 'Voronezh',\n 'Perm', 'Volgograd', 'Krasnodar', 'Saratov', 'Tyumen', 'Tolyatti', 'Izhevsk',\n 'Barnaul', 'Ulyanovsk', 'Irkutsk', 'Khabarovsk', 'Yaroslavl', 'Vladivostok', 'Tomsk'\n ],\n states: [\n 'Moscow Oblast', 'Saint Petersburg', 'Moscow', 'Sverdlovsk Oblast', 'Tatarstan',\n 'Krasnodar Krai', 'Chelyabinsk Oblast', 'Nizhny Novgorod Oblast', 'Samara Oblast',\n 'Bashkortostan', 'Rostov Oblast', 'Krasnoyarsk Krai', 'Novosibirsk Oblast',\n 'Perm Krai', 'Voronezh Oblast', 'Volgograd Oblast', 'Saratov Oblast'\n ],\n zipCodePattern: '######',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const building = Random.int(1, 200);\n const apartment = Random.int(1, 150);\n return `${state}, ${city}, ${street}, d. ${building}, kv. ${apartment}, ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(100000, 999999));\n },\n\n phoneFormats: [\n '+7 (###) ###-##-##',\n '8 (###) ###-##-##',\n '+7 ### ###-##-##',\n '8-###-###-##-##',\n '9##-###-##-##'\n ],\n\n emailDomains: [\n 'gmail.com', 'mail.ru', 'yandex.ru', 'rambler.ru', 'yahoo.com',\n 'outlook.com', 'hotmail.com', 'bk.ru', 'list.ru', 'inbox.ru'\n ],\n\n companyNames: [\n 'Газпром', 'Роснефть', 'Лукойл', 'Сбербанк', 'ВТБ',\n 'Российские железные дороги', 'Норникель', 'Новатэк', 'Татнефть',\n 'Аэрофлот', 'Яндекс', 'Mail.ru Group', 'Wildberries', 'Ozon',\n 'МТС', 'Билайн', 'МегаФон', 'Ростелеком', 'Алроса'\n ],\n\n industries: [\n 'Технологии', 'Финансы', 'Здравоохранение', 'Образование', 'Розничная торговля',\n 'Производство', 'Медиа', 'Телекоммуникации', 'Энергетика', 'Транспорт',\n 'Недвижимость', 'Консалтинг', 'Гостиницы', 'Автомобилестроение', 'Аэрокосмос'\n ],\n\n catchPhrases: [\n 'Инновации для будущего', 'Ваш успех - наше дело', 'Строим будущее вместе',\n 'Качество и надежность', 'Превосходство и приверженность', 'Устойчивые решения',\n 'Создаем ценность', 'Ваш надежный партнер', 'Ведущие перемены'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const pl_PL: LocaleDefinition = {\n firstNamesMale: [\n 'Jan', 'Andrzej', 'Piotr', 'Krzysztof', 'Stanisław', 'Tomasz', 'Paweł', 'Józef',\n 'Marcin', 'Michał', 'Grzegorz', 'Jerzy', 'Tadeusz', 'Adam', 'Łukasz', 'Zbigniew',\n 'Ryszard', 'Kazimierz', 'Marek', 'Mateusz', 'Kamil', 'Jakub', 'Robert', 'Rafał',\n 'Wojciech', 'Sławomir', 'Dariusz', 'Dawid', 'Bartosz', 'Kacper', 'Filip', 'Igor'\n ],\n firstNamesFemale: [\n 'Maria', 'Anna', 'Katarzyna', 'Małgorzata', 'Agnieszka', 'Barbara', 'Ewa', 'Krystyna',\n 'Elżbieta', 'Zofia', 'Teresa', 'Joanna', 'Magdalena', 'Monika', 'Jadwiga', 'Danuta',\n 'Irena', 'Halina', 'Helena', 'Beata', 'Aleksandra', 'Natalia', 'Dorota', 'Paulina',\n 'Sylwia', 'Iwona', 'Jolanta', 'Renata', 'Karolina', 'Weronika', 'Julia', 'Martyna'\n ],\n lastNames: [\n 'Nowak', 'Kowalski', 'Wiśniewski', 'Dąbrowski', 'Lewandowski', 'Wójcik', 'Kamiński',\n 'Kowalczyk', 'Zieliński', 'Szymański', 'Woźniak', 'Kozłowski', 'Jankowski', 'Wojciechowski',\n 'Kwiatkowski', 'Kaczmarek', 'Mazur', 'Krawczyk', 'Piotrowski', 'Grabowski', 'Nowakowski',\n 'Pawłowski', 'Michalski', 'Nowicki', 'Adamczyk', 'Dudek', 'Zając', 'Wieczorek', 'Jabłoński'\n ],\n streets: [\n 'ulica Główna', 'ulica Kwiatowa', 'ulica Słoneczna', 'ulica Polna', 'ulica Leśna',\n 'ulica Krótka', 'ulica Długa', 'ulica Szkolna', 'ulica Kościelna', 'ulica Parkowa',\n 'Plac Wolności', 'Aleja Solidarności', 'ulica 3 Maja', 'ulica Piłsudskiego',\n 'ulica Mickiewicza', 'ulica Słowackiego', 'ulica Kopernika', 'ulica Chopina'\n ],\n cities: [\n 'Warszawa', 'Kraków', 'Łódź', 'Wrocław', 'Poznań', 'Gdańsk', 'Szczecin', 'Bydgoszcz',\n 'Lublin', 'Białystok', 'Katowice', 'Gdynia', 'Częstochowa', 'Radom', 'Sosnowiec',\n 'Toruń', 'Kielce', 'Gliwice', 'Zabrze', 'Bytom', 'Olsztyn', 'Bielsko-Biała',\n 'Rzeszów', 'Ruda Śląska', 'Rybnik', 'Tychy', 'Dąbrowa Górnicza', 'Płock', 'Elbląg'\n ],\n states: [\n 'Mazowieckie', 'Śląskie', 'Wielkopolskie', 'Małopolskie', 'Dolnośląskie', 'Łódzkie',\n 'Pomorskie', 'Kujawsko-Pomorskie', 'Zachodniopomorskie', 'Lubelskie', 'Podkarpackie',\n 'Warmińsko-Mazurskie', 'Świętokrzyskie', 'Podlaskie', 'Opolskie', 'Lubuskie'\n ],\n zipCodePattern: '##-###',\n jobTitles: [\n 'Inżynier Oprogramowania', 'Kierownik Projektu', 'Analityk Danych', 'Kierownik Marketingu',\n 'Przedstawiciel Handlowy', 'Księgowy', 'Kierownik HR', 'Projektant', 'Kierownik Operacyjny',\n 'Analityk Biznesowy', 'Kierownik Produktu', 'Administrator Systemu', 'Inżynier Jakości'\n ],\n departments: [\n 'Inżynieria', 'Marketing', 'Sprzedaż', 'Zasoby Ludzkie', 'Finanse', 'Operacje',\n 'Obsługa Klienta', 'IT', 'Badania i Rozwój', 'Prawny', 'Administracja'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 150);\n const apartment = Random.int(1, 80);\n return `${street} ${number}/${apartment}, ${zipCode} ${city}, woj. ${state}`;\n },\n\n generateZipCode(): string {\n const part1 = String(Random.int(10, 99));\n const part2 = String(Random.int(100, 999));\n return `${part1}-${part2}`;\n },\n\n phoneFormats: [\n '+48 ### ### ###',\n '### ### ###',\n '+48 ## ### ## ##',\n '## ### ## ##',\n '+48 (##) ###-##-##',\n '(##) ###-##-##'\n ],\n\n emailDomains: [\n 'gmail.com', 'wp.pl', 'onet.pl', 'interia.pl', 'o2.pl',\n 'yahoo.com', 'outlook.com', 'hotmail.com', 'tlen.pl', 'gazeta.pl'\n ],\n\n companyNames: [\n 'PKN Orlen SA', 'CD Projekt SA', 'PZU SA', 'PKO Bank Polski', 'PGE SA',\n 'KGHM Polska Miedź', 'Tauron Polska Energia', 'Energa SA', 'LOTOS SA',\n 'Telekom Polska', 'Orange Polska', 'Play', 'Plus', 'T-Mobile Polska',\n 'Allegro.pl', 'Dino SA', 'Jeronimo Martins', 'Żabka Polska'\n ],\n\n industries: [\n 'Technologia', 'Finanse', 'Zdrowie', 'Edukacja', 'Detal',\n 'Produkcja', 'Media', 'Telekomunikacja', 'Energetyka', 'Transport',\n 'Nieruchomości', 'Konsulting', 'Hotele', 'Motoryzacja', 'Lotnictwo'\n ],\n\n catchPhrases: [\n 'Innowacje dla przyszłości', 'Twój sukces to nasza sprawa', 'Budujemy przyszłość razem',\n 'Jakość i zaufanie', 'Doskonałość i zaangażowanie', 'Zrównoważone rozwiązania',\n 'Tworzymy wartość', 'Twój zaufany partner', 'Prowadzimy zmiany'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const tr_TR: LocaleDefinition = {\n firstNamesMale: [\n 'Mehmet', 'Mustafa', 'Ahmet', 'Ali', 'Hüseyin', 'Hasan', 'İbrahim', 'İsmail',\n 'Yusuf', 'Murat', 'Süleyman', 'Ömer', 'Emre', 'Can', 'Burak', 'Kemal', 'Onur',\n 'Serkan', 'Fatih', 'Oğuz', 'Eren', 'Cem', 'Deniz', 'Barış', 'Kaan', 'Arda',\n 'Emir', 'Efe', 'Okan', 'Furkan', 'Yasin', 'Berkay', 'Umut', 'Volkan'\n ],\n firstNamesFemale: [\n 'Ayşe', 'Fatma', 'Emine', 'Hatice', 'Zeynep', 'Elif', 'Merve', 'Büşra', 'Esra',\n 'Sultan', 'Hanife', 'Meryem', 'Şeyma', 'Fadime', 'Cemre', 'Selin', 'Yasemin',\n 'Özlem', 'Gül', 'Aylin', 'Deniz', 'Ceren', 'Ece', 'Beyza', 'Tuğba', 'Burcu',\n 'Ebru', 'Nur', 'Buse', 'Defne', 'Ada', 'Aslı', 'Seda', 'Meltem'\n ],\n lastNames: [\n 'Yılmaz', 'Kaya', 'Demir', 'Şahin', 'Çelik', 'Yıldız', 'Yıldırım', 'Öztürk',\n 'Aydın', 'Özdemir', 'Arslan', 'Doğan', 'Kılıç', 'Aslan', 'Çetin', 'Kara',\n 'Koç', 'Kurt', 'Özkan', 'Şimşek', 'Erdoğan', 'Aksoy', 'Güneş', 'Çakır',\n 'Özgür', 'Korkmaz', 'Acar', 'Polat', 'Aktaş', 'Özer', 'Demirci', 'Yavuz'\n ],\n streets: [\n 'Atatürk Caddesi', 'İstiklal Caddesi', 'Cumhuriyet Caddesi', 'Barbaros Bulvarı',\n 'Bağdat Caddesi', 'Gazi Mustafa Kemal Bulvarı', 'Ankara Caddesi', 'İnönü Caddesi',\n 'Fevzi Çakmak Caddesi', 'Mithatpaşa Caddesi', 'Kızılay Meydanı', 'Fatih Caddesi',\n 'Yeşilırmak Sokak', 'Mehmet Akif Caddesi', 'Hürriyet Bulvarı', 'Mimar Sinan Caddesi'\n ],\n cities: [\n 'İstanbul', 'Ankara', 'İzmir', 'Bursa', 'Antalya', 'Adana', 'Konya', 'Gaziantep',\n 'Şanlıurfa', 'Kocaeli', 'Mersin', 'Diyarbakır', 'Hatay', 'Manisa', 'Kayseri',\n 'Samsun', 'Balıkesir', 'Kahramanmaraş', 'Van', 'Aydın', 'Denizli', 'Sakarya',\n 'Tekirdağ', 'Muğla', 'Eskişehir', 'Mardin', 'Malatya', 'Erzurum', 'Trabzon'\n ],\n states: [\n 'İstanbul', 'Ankara', 'İzmir', 'Bursa', 'Antalya', 'Adana', 'Konya', 'Gaziantep',\n 'Mersin', 'Kocaeli', 'Diyarbakır', 'Hatay', 'Manisa', 'Kayseri', 'Samsun',\n 'Balıkesir', 'Tekirdağ', 'Trabzon', 'Erzurum', 'Malatya', 'Van', 'Şanlıurfa'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Yazılım Mühendisi', 'Proje Yöneticisi', 'Veri Analisti', 'Pazarlama Müdürü',\n 'Satış Temsilcisi', 'Muhasebeci', 'İnsan Kaynakları Müdürü', 'Tasarımcı',\n 'Operasyon Müdürü', 'İş Analisti', 'Ürün Müdürü', 'Sistem Yöneticisi', 'Kalite Mühendisi'\n ],\n departments: [\n 'Mühendislik', 'Pazarlama', 'Satış', 'İnsan Kaynakları', 'Finans', 'Operasyon',\n 'Müşteri Hizmetleri', 'BT', 'Araştırma ve Geliştirme', 'Hukuk', 'İdari İşler'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const mahalle = Random.pick(['Merkez', 'Yeni', 'Çarşı', 'Kale', 'Bahçelievler']);\n const no = Random.int(1, 200);\n const daire = Random.int(1, 50);\n return `${mahalle} Mah., ${street} No:${no} D:${daire}, ${zipCode} ${city}/${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+90 (###) ###-####',\n '0(###) ###-####',\n '0### ###-####',\n '+90 ### ###-####',\n '05## ###-####',\n '053# ###-####',\n '054# ###-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'yandex.com.tr', 'mail.ru', 'yandex.ru', 'live.com',\n 'icloud.com', 'protonmail.com', 'tutanota.com'\n ],\n\n companyNames: [\n 'Türk Hava Yolları', 'Türk Telekom', 'Tüpraş', 'BİM Birleşik Mağazalar',\n 'Ereğli Demir Çelik', 'Aygaz', 'Koç Holding', 'Sabancı Holding',\n 'Vestel', 'Arçelik', 'Turkcell', 'Vodafone Türkiye', 'Halkbank',\n 'Ziraat Bankası', 'İş Bankası', 'Garanti BBVA', 'Akbank', 'Yapı Kredi'\n ],\n\n industries: [\n 'Teknoloji', 'Finans', 'Sağlık', 'Eğitim', 'Perakende',\n 'Üretim', 'Medya', 'Telekomünikasyon', 'Enerji', 'Ulaştırma',\n 'Gayrimenkul', 'Danışmanlık', 'Otelcilik', 'Otomotiv', 'Havacılık'\n ],\n\n catchPhrases: [\n 'Gelecek için yenilik', 'Başarınız işimizdir', 'Birlikte gelecek inşa ediyoruz',\n 'Kalite ve güven', 'Mükemmellik ve bağlılık', 'Sürdürülebilir çözümler',\n 'Değer yaratıyoruz', 'Güvenilir ortağınız', 'Değişime öncülük ediyoruz'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const sv_SE: LocaleDefinition = {\n firstNamesMale: [\n 'Erik', 'Lars', 'Karl', 'Anders', 'Per', 'Johan', 'Nils', 'Lennart', 'Emil',\n 'Oscar', 'Gustav', 'Viktor', 'Axel', 'Filip', 'Elias', 'Lucas', 'Alexander',\n 'Oliver', 'William', 'Hugo', 'Liam', 'Noah', 'Adam', 'Isak', 'Anton', 'Theo',\n 'Mattias', 'Magnus', 'Stefan', 'Peter', 'Mikael', 'Daniel', 'Fredrik', 'Björn'\n ],\n firstNamesFemale: [\n 'Anna', 'Maria', 'Karin', 'Eva', 'Kristina', 'Lena', 'Emma', 'Sofia', 'Ingrid',\n 'Birgitta', 'Sara', 'Lisa', 'Linnea', 'Maja', 'Elin', 'Ida', 'Ebba', 'Wilma',\n 'Alice', 'Julia', 'Elsa', 'Alicia', 'Olivia', 'Astrid', 'Agnes', 'Ella', 'Freja',\n 'Klara', 'Saga', 'Isabelle', 'Emilia', 'Hanna', 'Amanda', 'Josefin', 'Ellen'\n ],\n lastNames: [\n 'Andersson', 'Johansson', 'Karlsson', 'Nilsson', 'Eriksson', 'Larsson', 'Olsson',\n 'Persson', 'Svensson', 'Gustafsson', 'Pettersson', 'Jonsson', 'Jansson', 'Hansson',\n 'Bengtsson', 'Jönsson', 'Lindberg', 'Jakobsson', 'Magnusson', 'Olofsson', 'Lindström',\n 'Lindqvist', 'Lindgren', 'Berg', 'Axelsson', 'Bergström', 'Lundberg', 'Lind', 'Lundgren'\n ],\n streets: [\n 'Storgatan', 'Drottninggatan', 'Kungsgatan', 'Biblioteksgatan', 'Birger Jarlsgatan',\n 'Sveavägen', 'Vasagatan', 'Hamngatan', 'Karlavägen', 'Valhallavägen',\n 'Linnégatan', 'Skånegatan', 'Södermalmsallén', 'Odengatan', 'Götgatan',\n 'Ringvägen', 'Hornsgatan', 'Folkungagatan', 'Östermalmsgatan', 'Norrtullsgatan'\n ],\n cities: [\n 'Stockholm', 'Göteborg', 'Malmö', 'Uppsala', 'Västerås', 'Örebro', 'Linköping',\n 'Helsingborg', 'Jönköping', 'Norrköping', 'Lund', 'Umeå', 'Gävle', 'Borås',\n 'Eskilstuna', 'Södertälje', 'Karlstad', 'Täby', 'Växjö', 'Halmstad', 'Sundsvall',\n 'Luleå', 'Trollhättan', 'Östersund', 'Borlänge', 'Falun', 'Skellefteå', 'Kalmar'\n ],\n states: [\n 'Stockholm', 'Västra Götaland', 'Skåne', 'Uppsala', 'Västmanland', 'Örebro',\n 'Östergötland', 'Jönköping', 'Kronoberg', 'Kalmar', 'Gotland', 'Blekinge',\n 'Halland', 'Värmland', 'Dalarna', 'Gävleborg', 'Västernorrland', 'Jämtland',\n 'Västerbotten', 'Norrbotten', 'Södermanland'\n ],\n zipCodePattern: '### ##',\n jobTitles: [\n 'Mjukvaruingenjör', 'Projektledare', 'Dataanalytiker', 'Marknadschef',\n 'Säljare', 'Revisor', 'HR-chef', 'Designer', 'Driftschef', 'Affärsanalytiker',\n 'Produktchef', 'Systemadministratör', 'Kvalitetsingenjör', 'Utvecklare'\n ],\n departments: [\n 'Teknik', 'Marknadsföring', 'Försäljning', 'Personal', 'Ekonomi', 'Drift',\n 'Kundtjänst', 'IT', 'Forskning och utveckling', 'Juridik', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 150);\n const apartment = Random.boolean() ? ` lgh ${Random.int(1001, 1299)}` : '';\n return `${street} ${number}${apartment}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n const part1 = String(Random.int(100, 999));\n const part2 = String(Random.int(10, 99));\n return `${part1} ${part2}`;\n },\n\n phoneFormats: [\n '+46 (0)# ### ###',\n '0# ### ###',\n '+46 (0)## ### ###',\n '0## ### ###',\n '+46 (0)### ### ##',\n '0### ### ##',\n '07# ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.se', 'outlook.com', 'hotmail.com', 'live.se',\n 'telia.com', 'comhem.se', 'bredband.net', 'swipnet.se', 'spray.se'\n ],\n\n companyNames: [\n 'Volvo AB', 'Ericsson', 'IKEA', 'H&M Hennes & Mauritz', 'Electrolux',\n 'Atlas Copco', 'Sandvik AB', 'SKF AB', 'Scania AB', 'AstraZeneca',\n 'SEB AB', 'Swedbank', 'Handelsbanken', 'Nordea', 'Telia Company',\n 'Investor AB', 'Husqvarna AB', 'ABB AB', 'Tetra Pak', 'Spotify AB'\n ],\n\n industries: [\n 'Teknik', 'Finans', 'Hälsovård', 'Utbildning', 'Detaljhandel',\n 'Tillverkning', 'Media', 'Telekom', 'Energi', 'Transport',\n 'Fastigheter', 'Konsult', 'Hotell', 'Automotive', 'Flyg'\n ],\n\n catchPhrases: [\n 'Innovativt för framtiden', 'Er framgång är vårt affär', 'Bygger framtiden tillsammans',\n 'Kvalitet och förtroende', 'Excellens och engagemang', 'Hållbara lösningar',\n 'Skapar värde', 'Er pålitliga partner', 'Leder förändring'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const nb_NO: LocaleDefinition = {\n firstNamesMale: [\n 'Jan', 'Per', 'Bjørn', 'Ole', 'Lars', 'Knut', 'Arne', 'Kjell', 'Tor', 'Svein',\n 'Thomas', 'Andreas', 'Martin', 'Daniel', 'Henrik', 'Magnus', 'Jonas', 'Emil',\n 'Alexander', 'Markus', 'Kristian', 'Fredrik', 'Marius', 'Erik', 'Øyvind',\n 'Adrian', 'Lucas', 'Tobias', 'Noah', 'Oliver', 'William', 'Filip', 'Jakob'\n ],\n firstNamesFemale: [\n 'Anne', 'Marit', 'Inger', 'Kari', 'Nina', 'Lise', 'Eva', 'Hilde', 'Ingrid',\n 'Emma', 'Nora', 'Sara', 'Sofie', 'Emilie', 'Ingrid', 'Thea', 'Maja', 'Eline',\n 'Ida', 'Julie', 'Maria', 'Vilde', 'Frida', 'Amalie', 'Victoria', 'Anna',\n 'Mathilde', 'Mia', 'Hanna', 'Linnea', 'Leah', 'Isabella', 'Ella', 'Hedda'\n ],\n lastNames: [\n 'Hansen', 'Johansen', 'Olsen', 'Larsen', 'Andersen', 'Pedersen', 'Nilsen', 'Kristiansen',\n 'Jensen', 'Karlsen', 'Johnsen', 'Pettersen', 'Eriksen', 'Berg', 'Haugen', 'Hagen',\n 'Johannessen', 'Andreassen', 'Jacobsen', 'Olsen', 'Solberg', 'Moen', 'Lund', 'Bakke',\n 'Lie', 'Strand', 'Nguyen', 'Halvorsen', 'Svendsen', 'Martinsen', 'Mikkelsen'\n ],\n streets: [\n 'Storgata', 'Kirkegata', 'Hovedgata', 'Karl Johans gate', 'Prinsens gate',\n 'Torgallmenningen', 'Grensen', 'Stortingsgata', 'Bogstadveien', 'Bygdøy allé',\n 'Parkveien', 'Skippergata', 'Kongens gate', 'Drammensveien', 'Pilestredet',\n 'Ullevålsveien', 'Markveien', 'Thorvald Meyers gate', 'Akersgata', 'Møllergata'\n ],\n cities: [\n 'Oslo', 'Bergen', 'Stavanger', 'Trondheim', 'Drammen', 'Fredrikstad', 'Kristiansand',\n 'Sandnes', 'Tromsø', 'Sarpsborg', 'Skien', 'Ålesund', 'Sandefjord', 'Haugesund',\n 'Tønsberg', 'Moss', 'Porsgrunn', 'Bodø', 'Arendal', 'Hamar', 'Larvik', 'Halden',\n 'Askøy', 'Lillehammer', 'Mo i Rana', 'Molde', 'Horten', 'Gjøvik', 'Kongsberg'\n ],\n states: [\n 'Oslo', 'Viken', 'Innlandet', 'Vestfold og Telemark', 'Agder', 'Rogaland',\n 'Vestland', 'Møre og Romsdal', 'Trøndelag', 'Nordland', 'Troms og Finnmark'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Programvareingeniør', 'Prosjektleder', 'Dataanalytiker', 'Markedssjef',\n 'Selger', 'Regnskapsfører', 'HR-leder', 'Designer', 'Driftsleder',\n 'Forretningsanalytiker', 'Produktleder', 'Systemadministrator', 'Kvalitetsingeniør'\n ],\n departments: [\n 'Ingeniør', 'Markedsføring', 'Salg', 'Personale', 'Økonomi', 'Drift',\n 'Kundeservice', 'IT', 'Forskning og utvikling', 'Juridisk', 'Administrasjon'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n return `${street} ${number}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+47 ### ## ###',\n '### ## ###',\n '+47 ## ## ## ##',\n '## ## ## ##',\n '4## ## ###',\n '9## ## ###'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.no', 'outlook.no', 'hotmail.no', 'live.no',\n 'online.no', 'home.no', 'getmail.no', 'broadpark.no', 'icloud.com'\n ],\n\n companyNames: [\n 'Equinor ASA', 'DNB ASA', 'Telenor ASA', 'Yara International', 'Norsk Hydro',\n 'Orkla ASA', 'Kongsberg Gruppen', 'Aker ASA', 'Mowi ASA', 'Lerøy Seafood',\n 'SalMar ASA', 'Gjensidige Forsikring', 'Storebrand', 'Wilh. Wilhelmsen',\n 'Frontline Ltd', 'Golden Ocean', 'Aker BP', 'Vår Energi', 'Höegh Autoliners'\n ],\n\n industries: [\n 'Teknologi', 'Finans', 'Helsevesen', 'Utdanning', 'Detaljhandel',\n 'Produksjon', 'Media', 'Telekom', 'Energi', 'Transport',\n 'Eiendom', 'Konsulent', 'Hoteller', 'Bilindustri', 'Luftfart'\n ],\n\n catchPhrases: [\n 'Innovasjon for fremtiden', 'Din suksess er vår sak', 'Bygger fremtiden sammen',\n 'Kvalitet og tillit', 'Fortreffelighet og engasjement', 'Bærekraftige løsninger',\n 'Skaper verdi', 'Din pålitelige partner', 'Leder endring'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const da_DK: LocaleDefinition = {\n firstNamesMale: [\n 'Morten', 'Peter', 'Jens', 'Michael', 'Lars', 'Henrik', 'Thomas', 'Søren',\n 'Christian', 'Martin', 'Niels', 'Rasmus', 'Anders', 'Mikkel', 'Frederik',\n 'Mathias', 'Casper', 'Simon', 'Mads', 'Jacob', 'Emil', 'Magnus', 'Lucas',\n 'Oliver', 'William', 'Noah', 'Oscar', 'Victor', 'Alexander', 'Sebastian'\n ],\n firstNamesFemale: [\n 'Anne', 'Kirsten', 'Mette', 'Hanne', 'Lene', 'Susanne', 'Camilla', 'Louise',\n 'Maria', 'Sofie', 'Julie', 'Emma', 'Ida', 'Anna', 'Laura', 'Sarah', 'Mathilde',\n 'Freja', 'Clara', 'Isabella', 'Alma', 'Ella', 'Karla', 'Josefine', 'Victoria',\n 'Caroline', 'Katrine', 'Line', 'Rikke', 'Trine', 'Charlotte', 'Maja'\n ],\n lastNames: [\n 'Nielsen', 'Jensen', 'Hansen', 'Pedersen', 'Andersen', 'Christensen', 'Larsen',\n 'Sørensen', 'Rasmussen', 'Jørgensen', 'Petersen', 'Madsen', 'Kristensen', 'Olsen',\n 'Thomsen', 'Christiansen', 'Poulsen', 'Johansen', 'Møller', 'Mortensen', 'Knudsen',\n 'Jakobsen', 'Laursen', 'Simonsen', 'Frederiksen', 'Kjær', 'Schmidt', 'Holm'\n ],\n streets: [\n 'Hovedgaden', 'Kirkevej', 'Skovvej', 'Parkvej', 'Strandvej', 'Møllevej',\n 'Skolevej', 'Birkevej', 'Rosenvej', 'Vestergade', 'Østergade', 'Nørregade',\n 'Søndergade', 'Tingvej', 'Lillevej', 'Storegade', 'Åvej', 'Byvej', 'Havnevej'\n ],\n cities: [\n 'København', 'Aarhus', 'Odense', 'Aalborg', 'Esbjerg', 'Randers', 'Kolding',\n 'Horsens', 'Vejle', 'Roskilde', 'Herning', 'Silkeborg', 'Næstved', 'Fredericia',\n 'Viborg', 'Køge', 'Holstebro', 'Taastrup', 'Slagelse', 'Hillerød', 'Sønderborg',\n 'Holbæk', 'Svendborg', 'Hjørring', 'Frederikshavn', 'Rønne', 'Nykøbing F'\n ],\n states: [\n 'Hovedstaden', 'Sjælland', 'Syddanmark', 'Midtjylland', 'Nordjylland'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Softwareingeniør', 'Projektleder', 'Dataanalytiker', 'Marketingchef',\n 'Salgsrepræsentant', 'Revisor', 'HR-chef', 'Designer', 'Driftschef',\n 'Forretningsanalytiker', 'Produktchef', 'Systemadministrator', 'Kvalitetsingeniør'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Salg', 'HR', 'Økonomi', 'Drift', 'Kundeservice',\n 'IT', 'Forskning og udvikling', 'Juridisk', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n const floor = Random.boolean() ? `, ${Random.int(1, 5)}. sal` : '';\n return `${street} ${number}${floor}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+45 ## ## ## ##',\n '## ## ## ##',\n '+45 (##) ## ## ##',\n '(##) ## ## ##',\n '2# ## ## ##',\n '3# ## ## ##',\n '4# ## ## ##',\n '5# ## ## ##'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.dk', 'outlook.dk', 'hotmail.dk', 'live.dk',\n 'mail.dk', 'telia.dk', 'tdc.dk', 'youmail.dk', 'post.tele.dk'\n ],\n\n companyNames: [\n 'A.P. Møller-Mærsk', 'Novo Nordisk', 'Carlsberg Group', 'Vestas Wind Systems',\n 'Danske Bank', 'Nordea', 'Ørsted', 'Coloplast', 'Demant',\n 'ISS A/S', 'DSV A/S', 'Pandora A/S', 'Royal Unibrew',\n 'Tryg A/S', 'GN Store Nord', 'Ambu A/S', 'Zealand Pharma'\n ],\n\n industries: [\n 'Teknologi', 'Finans', 'Sundhedsvæsen', 'Uddannelse', 'Detailhandel',\n 'Fremstilling', 'Medier', 'Telekommunikation', 'Energi', 'Transport',\n 'Ejendomme', 'Konsulentvirksomhed', 'Hoteller', 'Automobil', 'Luftfart'\n ],\n\n catchPhrases: [\n 'Innovation for fremtiden', 'Din succes er vores sag', 'Bygger fremtiden sammen',\n 'Kvalitet og tillid', 'Excellence og engagement', 'Bæredygtige løsninger',\n 'Skaber værdi', 'Din pålidelige partner', 'Leder forandring'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const fi_FI: LocaleDefinition = {\n firstNamesMale: [\n 'Jari', 'Mika', 'Mikko', 'Juha', 'Petri', 'Jukka', 'Antti', 'Timo', 'Ville',\n 'Matti', 'Pekka', 'Sami', 'Kari', 'Markus', 'Teemu', 'Joonas', 'Lauri', 'Tuomas',\n 'Eero', 'Oskari', 'Valtteri', 'Aleksi', 'Oliver', 'Emil', 'Elias', 'Leo',\n 'Onni', 'Aatos', 'Väinö', 'Eino', 'Veikko', 'Seppo', 'Heikki', 'Kalevi'\n ],\n firstNamesFemale: [\n 'Maria', 'Anna', 'Johanna', 'Sari', 'Hanna', 'Kaisa', 'Laura', 'Sanna', 'Minna',\n 'Tiina', 'Pirjo', 'Tuula', 'Eeva', 'Aino', 'Sofia', 'Emilia', 'Emma', 'Olivia',\n 'Aada', 'Helmi', 'Lilja', 'Elli', 'Isla', 'Venla', 'Linnea', 'Matilda', 'Aino',\n 'Kerttu', 'Ella', 'Anni', 'Iida', 'Sara', 'Oona', 'Pihla'\n ],\n lastNames: [\n 'Virtanen', 'Korhonen', 'Nieminen', 'Mäkinen', 'Hämäläinen', 'Laine', 'Heikkinen',\n 'Koskinen', 'Järvinen', 'Lehtonen', 'Lehtinen', 'Saarinen', 'Salminen', 'Heinonen',\n 'Niemi', 'Heikkilä', 'Kinnunen', 'Salonen', 'Tuominen', 'Laitinen', 'Turunen',\n 'Mattila', 'Rantanen', 'Karjalainen', 'Jokinen', 'Laaksonen', 'Savolainen', 'Mäkelä'\n ],\n streets: [\n 'Mannerheimintie', 'Hämeentie', 'Aleksanterinkatu', 'Esplanadi', 'Bulevardi',\n 'Pohjoinen Rautatiekatu', 'Fredrikinkatu', 'Iso Roobertinkatu', 'Kalevankatu',\n 'Töölönkatu', 'Runeberginkatu', 'Mechelininkatu', 'Hietaniemenkatu', 'Lapinlahdenkatu',\n 'Agricolankatu', 'Sturenkatu', 'Hämeentie', 'Koskelantie', 'Hitsaajankatu'\n ],\n cities: [\n 'Helsinki', 'Espoo', 'Tampere', 'Vantaa', 'Oulu', 'Turku', 'Jyväskylä', 'Lahti',\n 'Kuopio', 'Pori', 'Kouvola', 'Joensuu', 'Lappeenranta', 'Hämeenlinna', 'Vaasa',\n 'Rovaniemi', 'Seinäjoki', 'Mikkeli', 'Kotka', 'Salo', 'Porvoo', 'Kokkola',\n 'Lohja', 'Hyvinkää', 'Järvenpää', 'Rauma', 'Tuusula', 'Kajaani', 'Savonlinna'\n ],\n states: [\n 'Uusimaa', 'Varsinais-Suomi', 'Satakunta', 'Kanta-Häme', 'Pirkanmaa', 'Päijät-Häme',\n 'Kymenlaakso', 'Etelä-Karjala', 'Etelä-Savo', 'Pohjois-Savo', 'Pohjois-Karjala',\n 'Keski-Suomi', 'Etelä-Pohjanmaa', 'Pohjanmaa', 'Keski-Pohjanmaa', 'Pohjois-Pohjanmaa',\n 'Kainuu', 'Lappi', 'Ahvenanmaa'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Ohjelmistokehittäjä', 'Projektipäällikkö', 'Data-analyytikko', 'Markkinointipäällikkö',\n 'Myyntiedustaja', 'Kirjanpitäjä', 'HR-päällikkö', 'Suunnittelija', 'Toimintapäällikkö',\n 'Liiketoiminta-analyytikko', 'Tuotepäällikkö', 'Järjestelmänvalvoja', 'Laatuinsinööri'\n ],\n departments: [\n 'Kehitys', 'Markkinointi', 'Myynti', 'Henkilöstöhallinto', 'Talous', 'Toiminnot',\n 'Asiakaspalvelu', 'IT', 'Tutkimus ja kehitys', 'Oikeusosasto', 'Hallinto'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n const apartment = Random.boolean() ? ` ${Random.int(1, 99)}` : '';\n return `${street} ${number}${apartment}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+358 ## ### ####',\n '0## ### ####',\n '+358 (0)## ### ####',\n '0## #######',\n '04# ### ####',\n '040 ### ####',\n '044 ### ####',\n '045 ### ####',\n '050 ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.fi', 'outlook.fi', 'hotmail.fi', 'live.fi',\n 'elisanet.fi', 'luukku.com', 'kolumbus.fi', 'pp.inet.fi', 'mbnet.fi'\n ],\n\n companyNames: [\n 'Nokia Oyj', 'Neste Oyj', 'Nordea Bank', 'Kone Oyj', 'Fortum Oyj',\n 'UPM-Kymmene', 'Stora Enso', 'Wärtsilä Oyj', 'Metso Outotec', 'Sampo Group',\n 'Elisa Oyj', 'Telia Finland', 'DNA Oyj', 'Kesko Oyj', 'S-Group',\n 'Valio Ltd', 'Hartwall Oy', 'Fiskars Oyj', 'Marimekko Oyj', 'Rovio Entertainment'\n ],\n\n industries: [\n 'Teknologia', 'Rahoitus', 'Terveys', 'Koulutus', 'Vähittäiskauppa',\n 'Valmistus', 'Media', 'Telekommunikaatio', 'Energia', 'Kuljetus',\n 'Kiinteistöt', 'Konsultointi', 'Hotellit', 'Autoteollisuus', 'Ilmailu'\n ],\n\n catchPhrases: [\n 'Innovaatioita tulevaisuuteen', 'Menestyksesi on asiamme', 'Rakennamme tulevaisuutta yhdessä',\n 'Laatua ja luotettavuutta', 'Erinomaista sitoutumista', 'Kestäviä ratkaisuja',\n 'Luomme arvoa', 'Luotettava kumppanisi', 'Johdamme muutosta'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const es_AR: LocaleDefinition = {\n firstNamesMale: [\n 'Juan', 'Carlos', 'José', 'Luis', 'Jorge', 'Ricardo', 'Daniel', 'Marcelo',\n 'Alejandro', 'Pablo', 'Diego', 'Martín', 'Fernando', 'Gonzalo', 'Matías',\n 'Sebastián', 'Nicolás', 'Federico', 'Gabriel', 'Andrés', 'Ezequiel', 'Facundo',\n 'Maximiliano', 'Rodrigo', 'Germán', 'Luciano', 'Ignacio', 'Agustín', 'Franco'\n ],\n firstNamesFemale: [\n 'María', 'Ana', 'Laura', 'Marta', 'Silvia', 'Andrea', 'Gabriela', 'Claudia',\n 'Carolina', 'Valeria', 'Natalia', 'Paula', 'Verónica', 'Cecilia', 'Patricia',\n 'Sofía', 'Martina', 'Lucía', 'Valentina', 'Florencia', 'Camila', 'Milagros',\n 'Victoria', 'Catalina', 'Antonella', 'Agustina', 'Micaela', 'Julieta', 'Guadalupe'\n ],\n lastNames: [\n 'González', 'Rodríguez', 'Fernández', 'López', 'Martínez', 'García', 'Pérez', 'Gómez',\n 'Sánchez', 'Romero', 'Álvarez', 'Díaz', 'Torres', 'Ruiz', 'Ramírez', 'Flores',\n 'Benítez', 'Acosta', 'Medina', 'Castro', 'Molina', 'Moreno', 'Suárez', 'Vega',\n 'Pereyra', 'Gutiérrez', 'Silva', 'Vargas', 'Cabrera', 'Ramos', 'Navarro', 'Sosa'\n ],\n streets: [\n 'Avenida Corrientes', 'Avenida Santa Fe', 'Avenida 9 de Julio', 'Avenida Rivadavia',\n 'Calle Florida', 'Avenida de Mayo', 'Calle San Martín', 'Avenida Callao',\n 'Calle Lavalle', 'Avenida Córdoba', 'Avenida Belgrano', 'Calle Reconquista',\n 'Avenida Libertador', 'Calle Maipú', 'Avenida Pueyrredón', 'Calle Defensa',\n 'Avenida Independencia', 'Calle Rodríguez Peña', 'Avenida Las Heras'\n ],\n cities: [\n 'Buenos Aires', 'Córdoba', 'Rosario', 'Mendoza', 'La Plata', 'San Miguel de Tucumán',\n 'Mar del Plata', 'Salta', 'Santa Fe', 'San Juan', 'Resistencia', 'Neuquén',\n 'Corrientes', 'Santiago del Estero', 'Posadas', 'Bahía Blanca', 'Paraná',\n 'San Salvador de Jujuy', 'Formosa', 'La Rioja', 'Catamarca', 'San Luis', 'Río Cuarto'\n ],\n states: [\n 'Buenos Aires', 'Córdoba', 'Santa Fe', 'Mendoza', 'Tucumán', 'Entre Ríos',\n 'Salta', 'Chaco', 'Corrientes', 'Misiones', 'San Juan', 'Jujuy', 'Santiago del Estero',\n 'San Luis', 'Catamarca', 'La Rioja', 'Formosa', 'Neuquén', 'Río Negro',\n 'Chubut', 'Santa Cruz', 'Tierra del Fuego', 'La Pampa'\n ],\n zipCodePattern: '@####@@@',\n jobTitles: [\n 'Ingeniero de Software', 'Gerente de Proyecto', 'Analista de Datos', 'Gerente de Marketing',\n 'Representante de Ventas', 'Contador', 'Gerente de RRHH', 'Diseñador', 'Gerente de Operaciones',\n 'Analista de Negocios', 'Gerente de Producto', 'Administrador de Sistemas'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas', 'Operaciones',\n 'Atención al Cliente', 'IT', 'Investigación y Desarrollo', 'Legal', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 9999);\n const piso = Random.int(1, 20);\n const depto = Random.pick(['A', 'B', 'C', 'D', 'E']);\n return `${street} ${number}, Piso ${piso} Dpto ${depto}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n const letter = String.fromCharCode(65 + Random.int(0, 25));\n const digits = String(Random.int(1000, 9999));\n const letters = String.fromCharCode(65 + Random.int(0, 25)) +\n String.fromCharCode(65 + Random.int(0, 25)) +\n String.fromCharCode(65 + Random.int(0, 25));\n return `${letter}${digits}${letters}`;\n },\n\n phoneFormats: [\n '+54 9 ## #### ####',\n '0## #### ####',\n '+54 (0)## #### ####',\n '011 #### ####',\n '0341 #### ####',\n '0351 #### ####',\n '0261 #### ####',\n '0223 #### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com.ar', 'outlook.com', 'hotmail.com', 'live.com',\n 'fibertel.com.ar', 'speedy.com.ar', 'arnet.com.ar', 'cablenet.com.ar',\n 'telecentro.com.ar', 'claro.com.ar'\n ],\n\n companyNames: [\n 'YPF Sociedad Anónima', 'Grupo Galicia', 'Banco Santander Río', 'Banco Nación',\n 'Mercado Libre', 'Globant SE', 'Telecom Argentina', 'Telefónica Argentina',\n 'Aerolíneas Argentinas', 'Aluar Aluminio Argentino', 'Arcor SAIC', 'Molinos Río de la Plata',\n 'Grupo Clarín', 'Cablevisión', 'Pampa Energía', 'Transener SA', 'Edenor SA',\n 'Tenaris SA', 'Siderar SA', 'Petrobras Argentina'\n ],\n\n industries: [\n 'Tecnología', 'Finanzas', 'Salud', 'Educación', 'Venta minorista',\n 'Fabricación', 'Medios', 'Telecomunicaciones', 'Energía', 'Transporte',\n 'Inmobiliaria', 'Consultoría', 'Hostelería', 'Automoción', 'Aeroespacial'\n ],\n\n catchPhrases: [\n 'Innovando para el futuro', 'Su éxito es nuestro negocio', 'Construyendo el futuro juntos',\n 'Calidad y confianza', 'Excelencia y compromiso', 'Soluciones sostenibles',\n 'Creamos valor', 'Su socio de confianza', 'Liderando el cambio'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const es_CL: LocaleDefinition = {\n firstNamesMale: [\n 'Juan', 'Pedro', 'José', 'Luis', 'Carlos', 'Jorge', 'Miguel', 'Andrés',\n 'Francisco', 'Ricardo', 'Manuel', 'Alejandro', 'Diego', 'Sebastián', 'Cristian',\n 'Matías', 'Felipe', 'Gonzalo', 'Rodrigo', 'Javier', 'Pablo', 'Marcelo',\n 'Gabriel', 'Nicolás', 'Maximiliano', 'Tomás', 'Martín', 'Ignacio', 'Joaquín'\n ],\n firstNamesFemale: [\n 'María', 'Carmen', 'Rosa', 'Ana', 'Isabel', 'Teresa', 'Gloria', 'Patricia',\n 'Claudia', 'Andrea', 'Carolina', 'Francisca', 'Daniela', 'Camila', 'Javiera',\n 'Valentina', 'Constanza', 'Fernanda', 'Catalina', 'Isidora', 'Sofía', 'Martina',\n 'Florencia', 'Antonia', 'Emilia', 'Trinidad', 'Maite', 'Josefa', 'Amanda'\n ],\n lastNames: [\n 'González', 'Muñoz', 'Rojas', 'Díaz', 'Pérez', 'Soto', 'Contreras', 'Silva',\n 'Martínez', 'Sepúlveda', 'Morales', 'Rodríguez', 'López', 'Fuentes', 'Hernández',\n 'Torres', 'Araya', 'Flores', 'Espinoza', 'Valenzuela', 'Castillo', 'Tapia',\n 'Reyes', 'Vásquez', 'Ramírez', 'Núñez', 'Pizarro', 'Carrasco', 'Gutiérrez', 'Herrera'\n ],\n streets: [\n 'Avenida Libertador Bernardo O\\'Higgins', 'Avenida Providencia', 'Avenida Apoquindo',\n 'Avenida Las Condes', 'Avenida Vicuña Mackenna', 'Avenida Grecia', 'Calle Huérfanos',\n 'Calle Agustinas', 'Avenida Pedro de Valdivia', 'Avenida Bilbao', 'Calle Bandera',\n 'Avenida República', 'Calle Estado', 'Avenida Irarrázaval', 'Avenida Ñuñoa'\n ],\n cities: [\n 'Santiago', 'Valparaíso', 'Viña del Mar', 'Concepción', 'La Serena', 'Antofagasta',\n 'Temuco', 'Rancagua', 'Talca', 'Arica', 'Puerto Montt', 'Chillán', 'Iquique',\n 'Los Ángeles', 'Coyhaique', 'Punta Arenas', 'Valdivia', 'Osorno', 'Quillota',\n 'Curicó', 'Calama', 'Copiapó', 'Linares', 'Ovalle', 'San Antonio'\n ],\n states: [\n 'Región Metropolitana', 'Valparaíso', 'Biobío', 'Araucanía', 'Los Lagos',\n 'Maule', 'Antofagasta', 'Coquimbo', 'O\\'Higgins', 'Tarapacá', 'Los Ríos',\n 'Aysén', 'Magallanes', 'Atacama', 'Arica y Parinacota', 'Ñuble'\n ],\n zipCodePattern: '#######',\n jobTitles: [\n 'Ingeniero en Software', 'Jefe de Proyecto', 'Analista de Datos', 'Jefe de Marketing',\n 'Ejecutivo Comercial', 'Contador', 'Jefe de RRHH', 'Diseñador', 'Jefe de Operaciones',\n 'Analista de Negocios', 'Product Manager', 'Administrador de Sistemas'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas', 'Operaciones',\n 'Atención al Cliente', 'TI', 'Investigación y Desarrollo', 'Legal', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 9999);\n const depto = Random.int(1, 500);\n return `${street} ${number}, Depto ${depto}, ${city}, ${state}, ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000000, 9999999));\n },\n\n phoneFormats: [\n '+56 9 #### ####',\n '9 #### ####',\n '+56 (9) #### ####',\n '(9) #### ####',\n '02 #### ####',\n '032 #### ####',\n '041 #### ####',\n '055 #### ####',\n '061 #### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.cl', 'outlook.cl', 'hotmail.cl', 'live.cl',\n 'vtr.net', 'movistar.cl', 'entel.cl', 'claro.cl', 'telsur.cl'\n ],\n\n companyNames: [\n 'Sociedad Química y Minera', 'Banco de Chile', 'Banco Santander Chile', 'Banco Estado',\n 'Latam Airlines', 'Falabella SA', 'Cencosud SA', 'Ripley Corp', 'Parque Arauco',\n 'Mallplaza', 'Empresas Copec', 'Colbún SA', 'Enel Chile', 'Enel Distribución',\n 'Chilectra', 'Aguas Andinas', 'CCU Compañía de las Cervecerías Unidas', 'Viña Concha y Toro'\n ],\n\n industries: [\n 'Tecnología', 'Finanzas', 'Salud', 'Educación', 'Venta minorista',\n 'Fabricación', 'Medios', 'Telecomunicaciones', 'Energía', 'Transporte',\n 'Inmobiliaria', 'Consultoría', 'Hostelería', 'Automoción', 'Aeroespacial'\n ],\n\n catchPhrases: [\n 'Innovando para el futuro', 'Su éxito es nuestro negocio', 'Construyendo el futuro juntos',\n 'Calidad y confianza', 'Excelencia y compromiso', 'Soluciones sostenibles',\n 'Creamos valor', 'Su socio de confianza', 'Liderando el cambio'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const th_TH: LocaleDefinition = {\n firstNamesMale: [\n 'Somchai', 'Somsak', 'Chai', 'Niran', 'Anon', 'Thana', 'Korn', 'Pong',\n 'Arun', 'Wit', 'Sak', 'Nop', 'Chai', 'Manop', 'Anucha', 'Weerasak',\n 'Surasak', 'Prasert', 'Phong', 'Sombat', 'Narong', 'Wichit', 'Lek', 'Noi',\n 'Anurak', 'Sarawut', 'Kittipong', 'Jirawat', 'Thanawat', 'Apichai'\n ],\n firstNamesFemale: [\n 'Somying', 'Noi', 'Lek', 'Malee', 'Siriporn', 'Suda', 'Nittaya', 'Pornpan',\n 'Orathai', 'Wanida', 'Suwanna', 'Pranee', 'Rattana', 'Chanya', 'Supaporn',\n 'Areerat', 'Apinya', 'Waranya', 'Jirapha', 'Panida', 'Kanokwan', 'Sudarat',\n 'Naruemon', 'Wilai', 'Amara', 'Thanaporn', 'Pimsiri', 'Sirikul', 'Nutcha'\n ],\n lastNames: [\n 'Srisuk', 'Tantrakul', 'Wongcharoen', 'Pholchai', 'Saetang', 'Chanthara', 'Wattana',\n 'Ruangsri', 'Pornprasert', 'Thongchai', 'Suwannaphon', 'Chaiyaporn', 'Kingkaew',\n 'Intharasombat', 'Duangkaew', 'Maneekan', 'Somkhuan', 'Thepthong', 'Ratanaporn',\n 'Wongsawat', 'Chanthaburi', 'Phongsri', 'Methaphan', 'Rattanawong', 'Phongphan'\n ],\n streets: [\n 'Sukhumvit Road', 'Rama IV Road', 'Silom Road', 'Sathorn Road', 'Ratchadamri Road',\n 'Petchburi Road', 'Rama I Road', 'Phayathai Road', 'Ratchadaphisek Road',\n 'Vibhavadi Rangsit Road', 'Ladprao Road', 'Charoenkrung Road', 'Yaowarat Road',\n 'Ratchawithi Road', 'Lan Luang Road', 'Phra Athit Road', 'Khao San Road'\n ],\n cities: [\n 'Bangkok', 'Nonthaburi', 'Nakhon Ratchasima', 'Chiang Mai', 'Hat Yai', 'Udon Thani',\n 'Pak Kret', 'Khon Kaen', 'Chon Buri', 'Nakhon Si Thammarat', 'Rayong', 'Lampang',\n 'Ubon Ratchathani', 'Surat Thani', 'Phuket', 'Nakhon Sawan', 'Chiang Rai', 'Saraburi',\n 'Samut Prakan', 'Trang', 'Phitsanulok', 'Krabi', 'Songkhla', 'Phetchaburi'\n ],\n states: [\n 'Bangkok', 'Nonthaburi', 'Pathum Thani', 'Samut Prakan', 'Chiang Mai', 'Chon Buri',\n 'Nakhon Ratchasima', 'Khon Kaen', 'Surat Thani', 'Udon Thani', 'Phuket', 'Songkhla',\n 'Rayong', 'Nakhon Si Thammarat', 'Chiang Rai', 'Ubon Ratchathani', 'Phitsanulok'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const soi = Random.int(1, 50);\n const number = Random.int(1, 999);\n return `${number} Soi ${soi}, ${street}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+66 # #### ####',\n '0# #### ####',\n '+66 (0)# #### ####',\n '08# ### ####',\n '09# ### ####',\n '06# ### ####',\n '02 ### ####',\n '03# ### ####',\n '04# ### ####',\n '05# ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.co.th', 'outlook.co.th', 'hotmail.co.th', 'live.co.th',\n 'hotmail.com', 'yahoo.com', 'thaimail.com', 'mailthai.com', 'sanook.com'\n ],\n\n companyNames: [\n 'PTT Public Company', 'Bangkok Bank', 'Kasikornbank', 'Siam Commercial Bank',\n 'Krung Thai Bank', 'Bank of Ayudhya', 'TMB Bank', 'Thanachart Bank',\n 'Advanced Info Service', 'True Corporation', 'DTAC', 'TOT Public Company',\n 'Thai Airways International', 'Bangkok Airways', 'AirAsia Thailand',\n 'Central Group', 'The Mall Group', 'Siam Piwat', 'Major Cineclic Group'\n ],\n\n industries: [\n 'เทคโนโลยี', 'การเงิน', 'การดูแลสุขภาพ', 'การศึกษา', 'การขายปลีก',\n 'การผลิต', 'สื่อ', 'โทรคมนาคม', 'พลังงาน', 'การขนส่ง',\n 'อสังหาริมทรัพย์', 'ที่ปรึกษา', 'โรงแรม', 'ยานยนต์', 'การบิน'\n ],\n\n catchPhrases: [\n 'นวัตกรรมเพื่ออนาคต', 'ความสำเร็จของคุณคือธุรกิจของเรา', 'สร้างอนาคตร่วมกัน',\n 'คุณภาพและความไว้วางใจ', 'ความเป็นเลิศและความมุ่งมั่น', 'โซลูชันที่ยั่งยืน',\n 'สร้างคุณค่า', 'พันธมิตรที่ไว้วางใจได้', 'นำไปสู่การเปลี่ยนแปลง'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const vi_VN: LocaleDefinition = {\n lastNames: [\n 'Nguyen', 'Tran', 'Le', 'Pham', 'Hoang', 'Huynh', 'Phan', 'Vu', 'Vo', 'Dang',\n 'Bui', 'Do', 'Ngo', 'Duong', 'Ly', 'Dinh', 'Trinh', 'Ha', 'Mai', 'Truong',\n 'To', 'Dao', 'Lam', 'Chau', 'Doan', 'Tang', 'Quach', 'Cao', 'Tong', 'Thai'\n ],\n firstNamesMale: [\n 'Van', 'Minh', 'Duc', 'Tuan', 'Thanh', 'Hieu', 'Khang', 'Phong', 'Hung',\n 'Quang', 'Hoang', 'Nam', 'Duy', 'Hai', 'Long', 'Khanh', 'Son', 'Thang',\n 'Dat', 'Huy', 'Trung', 'Tai', 'Vinh', 'Cuong', 'Khoa', 'Anh', 'Bao', 'Quan',\n 'Tien', 'Kien', 'Linh', 'Binh', 'An', 'Phu'\n ],\n firstNamesFemale: [\n 'Thi', 'Anh', 'Lan', 'Huong', 'Mai', 'Thu', 'Linh', 'Phuong', 'Ha', 'Hoa',\n 'Hang', 'Thuy', 'Yen', 'Nga', 'Nhu', 'Quynh', 'Van', 'Tuyet', 'Hien', 'Nhung',\n 'Dieu', 'Tam', 'My', 'Trang', 'Ngoc', 'Thao', 'Chi', 'Vy', 'Uyen', 'Khanh',\n 'Nhi', 'Bich', 'Trinh', 'Minh', 'Kim', 'Hong'\n ],\n streets: [\n 'Le Loi', 'Nguyen Hue', 'Tran Hung Dao', 'Ly Thai To', 'Hai Ba Trung',\n 'Ba Trieu', 'Phan Chu Trinh', 'Hoang Dieu', 'Nguyen Thai Hoc', 'Nguyen Trai',\n 'Tran Phu', 'Le Duan', 'Vo Thi Sau', 'Nguyen Du', 'Dong Khoi', 'Pasteur',\n 'Dien Bien Phu', 'Cach Mang Thang Tam', 'Vo Van Tan', 'Tran Quoc Toan'\n ],\n cities: [\n 'Ho Chi Minh City', 'Hanoi', 'Da Nang', 'Hai Phong', 'Can Tho', 'Bien Hoa',\n 'Hue', 'Nha Trang', 'Buon Ma Thuot', 'Vung Tau', 'Quy Nhon', 'Nam Dinh',\n 'Thai Nguyen', 'Phan Thiet', 'Thai Binh', 'Vinh', 'My Tho', 'Rach Gia',\n 'Long Xuyen', 'Cam Ranh', 'Ha Long', 'Pleiku', 'Bac Lieu', 'Cao Lanh'\n ],\n states: [\n 'Ho Chi Minh City', 'Hanoi', 'Da Nang', 'Hai Phong', 'Can Tho', 'Dong Nai',\n 'Binh Duong', 'Ba Ria-Vung Tau', 'Khanh Hoa', 'Lam Dong', 'Thua Thien Hue',\n 'Quang Nam', 'Thanh Hoa', 'Nghe An', 'Hai Duong', 'Nam Dinh', 'Thai Nguyen',\n 'Bac Ninh', 'Vinh Phuc', 'Phu Tho', 'Long An', 'Tien Giang', 'Ben Tre'\n ],\n zipCodePattern: '######',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${lastName} ${firstName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n const ward = Random.int(1, 20);\n const district = Random.int(1, 12);\n return `${number} ${street}, Ward ${ward}, District ${district}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(100000, 999999));\n },\n\n phoneFormats: [\n '+84 ## ### ####',\n '0## ### ####',\n '+84 (0)## ### ####',\n '09# ### ####',\n '03# ### ####',\n '05# ### ####',\n '07# ### ####',\n '08# ### ####',\n '02# ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com.vn', 'outlook.com', 'hotmail.com', 'live.com',\n 'yahoo.com', 'vnn.vn', 'hcm.vnn.vn', 'hn.vnn.vn', 'viettel.vn',\n 'vnnic.net.vn', 'fpt.vn', 'vtc.vn'\n ],\n\n companyNames: [\n 'Tập đoàn Vingroup', 'Tập đoàn Viettel', 'Tập đoàn FPT', 'Vietnam Oil and Gas Group',\n 'Ngân hàng Vietcombank', 'Ngân hàng BIDV', 'Ngân hàng VietinBank', 'Ngân hàng Techcombank',\n 'Vietnam Airlines', 'VietJet Air', 'Bamboo Airways', 'Tập đoàn TH',\n 'Tập đoàn Masan', 'Tập đoàn Vinamilk', 'Tập đoàn Hòa Phát', 'Tập đoàn Sun Group',\n 'Tập đoàn Novaland', 'Tập đoàn FLC', 'Tập đoàn T&T Group'\n ],\n\n industries: [\n 'Công nghệ', 'Tài chính', 'Y tế', 'Giáo dục', 'Bán lẻ',\n 'Sản xuất', 'Truyền thông', 'Viễn thông', 'Năng lượng', 'Giao thông',\n 'Bất động sản', 'Tư vấn', 'Khách sạn', 'Ô tô', 'Hàng không'\n ],\n\n catchPhrases: [\n 'Đổi mới cho tương lai', 'Thành công của bạn là công việc của chúng tôi', 'Xây dựng tương lai cùng nhau',\n 'Chất lượng và niềm tin', 'Xuất sắc và cam kết', 'Giải pháp bền vững',\n 'Tạo ra giá trị', 'Đối tác đáng tin cậy của bạn', 'Dẫn đầu sự thay đổi'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ms_MY: LocaleDefinition = {\n firstNamesMale: [\n 'Ahmad', 'Ali', 'Hassan', 'Ismail', 'Ibrahim', 'Mohd', 'Abdullah', 'Yusof',\n 'Rahman', 'Aziz', 'Zulkifli', 'Hamid', 'Halim', 'Hakim', 'Amin', 'Rashid',\n 'Fahmi', 'Faiz', 'Hafiz', 'Amirul', 'Danial', 'Syafiq', 'Iqbal', 'Haikal',\n 'Rizal', 'Ammar', 'Zikri', 'Arif', 'Ashraf', 'Firdaus', 'Nabil', 'Hakimi'\n ],\n firstNamesFemale: [\n 'Siti', 'Nur', 'Norain', 'Farah', 'Aisha', 'Zainab', 'Fatimah', 'Maryam',\n 'Amira', 'Sarah', 'Alya', 'Nadia', 'Sofea', 'Hanna', 'Aisyah', 'Najwa',\n 'Qistina', 'Irdina', 'Balqis', 'Ain', 'Nasuha', 'Izyan', 'Natasha', 'Erina',\n 'Fatin', 'Hanis', 'Syahirah', 'Insyirah', 'Marissa', 'Zulaikha', 'Nabila'\n ],\n lastNames: [\n 'Abdullah', 'Ahmad', 'Mohamed', 'Ibrahim', 'Hassan', 'Ismail', 'Rahman', 'Ali',\n 'Omar', 'Osman', 'Yusof', 'Aziz', 'Hamid', 'Salleh', 'Idris', 'Daud', 'Bakar',\n 'Mansor', 'Hussain', 'Yasin', 'Karim', 'Samad', 'Sulaiman', 'Hashim', 'Ramli',\n 'Harun', 'Wahab', 'Zain', 'Latif', 'Rashid', 'Ghani', 'Nasir', 'Rahim'\n ],\n streets: [\n 'Jalan Raja', 'Jalan Sultan', 'Jalan Tun Razak', 'Jalan Ampang', 'Jalan Bukit Bintang',\n 'Jalan Masjid India', 'Jalan Tuanku Abdul Rahman', 'Jalan Pudu', 'Jalan Imbi',\n 'Jalan Hang Tuah', 'Jalan Petaling', 'Jalan Chow Kit', 'Jalan Ipoh', 'Jalan Kelang Lama',\n 'Jalan Tun Perak', 'Jalan Munshi Abdullah', 'Jalan Genting Klang', 'Jalan Pahang'\n ],\n cities: [\n 'Kuala Lumpur', 'George Town', 'Ipoh', 'Shah Alam', 'Petaling Jaya', 'Johor Bahru',\n 'Malacca City', 'Alor Setar', 'Kuching', 'Kota Kinabalu', 'Seremban', 'Kuantan',\n 'Klang', 'Subang Jaya', 'Kota Bharu', 'Sandakan', 'Kuala Terengganu', 'Miri',\n 'Kangar', 'Putrajaya', 'Cyberjaya', 'Taiping', 'Sibu', 'Muar', 'Batu Pahat'\n ],\n states: [\n 'Selangor', 'Johor', 'Penang', 'Perak', 'Kedah', 'Pahang', 'Negeri Sembilan',\n 'Melaka', 'Kelantan', 'Terengganu', 'Perlis', 'Sabah', 'Sarawak',\n 'Kuala Lumpur', 'Putrajaya', 'Labuan'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n const taman = Random.pick(['Taman', 'Bandar', 'Kampung']);\n const area = Random.pick(['Indah', 'Jaya', 'Perdana', 'Utama', 'Sentosa']);\n return `No. ${number}, ${street}, ${taman} ${area}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+60 ## ### ####',\n '0## ### ####',\n '+60 (0)## ### ####',\n '01# ### ####',\n '012 ### ####',\n '013 ### ####',\n '014 ### ####',\n '016 ### ####',\n '017 ### ####',\n '018 ### ####',\n '019 ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com.my', 'outlook.com', 'hotmail.com', 'live.com',\n 'tm.net.my', 'maxis.com.my', 'digi.com.my', 'celcom.com.my', 'unifi.com.my'\n ],\n\n companyNames: [\n 'Petronas', 'Maybank', 'Public Bank', 'CIMB Group', 'Rhbank Malaysia',\n 'Tenaga Nasional', 'Petronas Dagangan', 'Axiata Group', 'Maxis Berhad',\n 'Digi.Com Berhad', 'Celcom Axiata', 'Umobile', 'AirAsia Berhad',\n 'Malaysia Airlines', 'Sime Darby', 'IOI Corporation', 'Sime Darby Plantation',\n 'Genting Berhad', 'Berjaya Group', 'YTL Corporation', 'Hong Leong Bank'\n ],\n\n industries: [\n 'Teknologi', 'Kewangan', 'Kesihatan', 'Pendidikan', 'Runcit',\n 'Perkilangan', 'Media', 'Telekomunikasi', 'Tenaga', 'Pengangkutan',\n 'Hartanah', 'Perundingan', 'Perhotelan', 'Automotif', 'Aerospace'\n ],\n\n catchPhrases: [\n 'Berinovasi untuk masa depan', 'Kejayaan anda adalah urusan kami', 'Membina masa depan bersama',\n 'Kualiti dan kepercayaan', 'Kecemerlangan dan komitmen', 'Penyelesaian mampan',\n 'Mencipta nilai', 'Rakan dipercayai anda', 'Memimpin perubahan'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_SG: LocaleDefinition = {\n firstNamesMale: [\n 'Wei Ming', 'Jun Hao', 'Ryan', 'Ethan', 'Kai', 'Zhi Hao', 'Darren', 'Marcus',\n 'Nicholas', 'Brandon', 'Wei Jie', 'Joshua', 'Matthew', 'Daniel', 'Benjamin',\n 'Aaron', 'Isaac', 'Jayden', 'Aiden', 'Sean', 'Adrian', 'Xavier', 'Lucas',\n 'Nathan', 'Tyler', 'Arjun', 'Ravi', 'Kumar', 'Raj', 'Vikram'\n ],\n firstNamesFemale: [\n 'Hui Ling', 'Xin Yi', 'Rachel', 'Chloe', 'Emma', 'Ying Xuan', 'Sarah', 'Emily',\n 'Michelle', 'Nicole', 'Angela', 'Amanda', 'Cheryl', 'Joyce', 'Melissa', 'Sophia',\n 'Isabelle', 'Natalie', 'Ashley', 'Crystal', 'Priya', 'Divya', 'Kavitha', 'Ananya',\n 'Shreya', 'Mei Ling', 'Li Ying', 'Jia Yi', 'Shi Hui', 'Wei Ting'\n ],\n lastNames: [\n 'Tan', 'Lim', 'Lee', 'Ng', 'Ong', 'Wong', 'Goh', 'Chua', 'Chan', 'Koh',\n 'Teo', 'Ang', 'Yeo', 'Lau', 'Tay', 'Ho', 'Low', 'Sim', 'Chia', 'Toh',\n 'Kumar', 'Singh', 'Kaur', 'Rahman', 'Ali', 'Hassan', 'Ahmad', 'Mohamed',\n 'Abdullah', 'Ibrahim', 'Chen', 'Wang', 'Zhang', 'Liu', 'Yang'\n ],\n streets: [\n 'Orchard Road', 'Raffles Boulevard', 'Shenton Way', 'Marina Boulevard', 'Beach Road',\n 'North Bridge Road', 'South Bridge Road', 'Collyer Quay', 'Robinson Road', 'Cecil Street',\n 'Eu Tong Sen Street', 'Serangoon Road', 'Geylang Road', 'Balestier Road', 'Thomson Road',\n 'Bukit Timah Road', 'Clementi Road', 'Jurong East Avenue', 'Ang Mo Kio Avenue', 'Tampines Avenue'\n ],\n cities: [\n 'Singapore', 'Woodlands', 'Tampines', 'Jurong East', 'Ang Mo Kio', 'Bedok',\n 'Hougang', 'Yishun', 'Sembawang', 'Bukit Panjang', 'Choa Chu Kang', 'Punggol',\n 'Sengkang', 'Pasir Ris', 'Clementi', 'Bukit Batok', 'Toa Payoh', 'Queenstown'\n ],\n states: [\n 'Central Region', 'North Region', 'North-East Region', 'East Region', 'West Region'\n ],\n zipCodePattern: '######',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Executive', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const block = Random.int(1, 999);\n const unit = `#${Random.int(1, 40).toString().padStart(2, '0')}-${Random.int(1, 999)}`;\n return `Blk ${block} ${street}, ${unit}, Singapore ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(100000, 999999));\n },\n\n phoneFormats: [\n '+65 #### ####',\n '#### ####',\n '+65 (####) ####',\n '(####) ####',\n '8### ####',\n '9### ####',\n '6### ####',\n '3### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com.sg', 'outlook.com', 'hotmail.com', 'live.com',\n 'singnet.com.sg', 'starhub.com', 'm1.com.sg', 'pacbell.net', 'asianet.com'\n ],\n\n companyNames: [\n 'DBS Bank', 'United Overseas Bank', 'Oversea-Chinese Banking Corporation',\n 'Singapore Telecommunications', 'Singapore Airlines', 'Singapore Exchange',\n 'CapitaLand Investment', 'City Developments Limited', 'Genting Singapore',\n 'Wilmar International', 'Thai Beverage', 'Yangzijiang Shipbuilding',\n 'Sembcorp Industries', 'Keppel Corporation', 'Jardine Cycle & Carriage',\n 'Hongkong Land', 'Dairy Farm International', 'Sheng Siong Group'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transport',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace'\n ],\n\n catchPhrases: [\n 'Innovating for the future', 'Your success is our business', 'Building the future together',\n 'Quality and trust', 'Excellence and commitment', 'Sustainable solutions',\n 'Creating value', 'Your trusted partner', 'Leading the change'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_PH: LocaleDefinition = {\n firstNamesMale: [\n 'John', 'Mark', 'Angelo', 'Joshua', 'James', 'Michael', 'Christian', 'Carl',\n 'Kenneth', 'Anthony', 'Kristian', 'Daniel', 'Joseph', 'Gabriel', 'Rafael',\n 'Emmanuel', 'Nathaniel', 'Matthew', 'Andrew', 'Samuel', 'Diego', 'Luis',\n 'Marco', 'Paolo', 'Adrian', 'Ryan', 'Ethan', 'Jacob', 'Nathan', 'Vincent'\n ],\n firstNamesFemale: [\n 'Maria', 'Anna', 'Princess', 'Angel', 'Andrea', 'Nicole', 'Michelle', 'Sarah',\n 'Angelica', 'Christine', 'Patricia', 'Mary', 'Rose', 'Joy', 'Grace', 'Faith',\n 'Hope', 'Kristine', 'Jasmine', 'Sofia', 'Isabella', 'Gabriela', 'Katrina',\n 'Samantha', 'Jessica', 'Jennifer', 'Stephanie', 'Alexandra', 'Alessandra', 'Bianca'\n ],\n lastNames: [\n 'dela Cruz', 'Garcia', 'Reyes', 'Ramos', 'Mendoza', 'Santos', 'Flores', 'Gonzales',\n 'Bautista', 'Cruz', 'Fernandez', 'Lopez', 'Perez', 'Martinez', 'Rivera', 'Torres',\n 'Aquino', 'Villanueva', 'Castro', 'Santiago', 'Morales', 'Valdez', 'Navarro',\n 'Alvarez', 'Salazar', 'Romero', 'Manuel', 'Castillo', 'Aguilar', 'Mercado'\n ],\n streets: [\n 'EDSA', 'Roxas Boulevard', 'Quezon Avenue', 'Taft Avenue', 'España Boulevard',\n 'Ayala Avenue', 'Ortigas Avenue', 'Shaw Boulevard', 'Commonwealth Avenue',\n 'C-5 Road', 'Katipunan Avenue', 'Magsaysay Avenue', 'Rizal Avenue', 'Del Pilar Street',\n 'Araneta Avenue', 'Aurora Boulevard', 'Marcos Highway', 'Bonifacio Drive'\n ],\n cities: [\n 'Manila', 'Quezon City', 'Makati', 'Pasig', 'Taguig', 'Pasay', 'Parañaque',\n 'Las Piñas', 'Muntinlupa', 'Caloocan', 'Malabon', 'Navotas', 'Valenzuela',\n 'Marikina', 'San Juan', 'Mandaluyong', 'Cebu City', 'Davao City', 'Zamboanga City',\n 'Cagayan de Oro', 'General Santos', 'Iloilo City', 'Bacolod', 'Baguio'\n ],\n states: [\n 'Metro Manila', 'Calabarzon', 'Central Luzon', 'Central Visayas', 'Western Visayas',\n 'Davao Region', 'Northern Mindanao', 'Ilocos Region', 'Cagayan Valley', 'Bicol Region',\n 'Eastern Visayas', 'Zamboanga Peninsula', 'SOCCSKSARGEN', 'Cordillera', 'MIMAROPA'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Assurance Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n const barangay = Random.pick(['Barangay San Antonio', 'Barangay Santa Cruz', 'Barangay San Jose', 'Barangay Poblacion']);\n return `${number} ${street}, ${barangay}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+63 ### ### ####',\n '0### ### ####',\n '+63 (0)### ### ####',\n '09## ### ####',\n '091# ### ####',\n '092# ### ####',\n '093# ### ####',\n '094# ### ####',\n '095# ### ####',\n '096# ### ####',\n '097# ### ####',\n '098# ### ####',\n '099# ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com.ph', 'outlook.com', 'hotmail.com', 'live.com',\n 'yahoo.com', 'pldtdsl.net', 'globe.com.ph', 'smart.com.ph', 'sun.com.ph'\n ],\n\n companyNames: [\n 'SM Investments Corporation', 'Ayala Corporation', 'JG Summit Holdings', 'Metro Pacific Investments',\n 'BDO Unibank', 'Bank of the Philippine Islands', 'Metropolitan Bank & Trust', 'Philippine National Bank',\n 'PLDT Inc', 'Globe Telecom', 'Philippine Long Distance Telephone', 'Jollibee Foods Corporation',\n 'SM Prime Holdings', 'Ayala Land Inc', 'Megaworld Corporation', 'Robinsons Land Corporation',\n 'Cebu Pacific Air', 'Philippine Airlines', 'Manila Electric Company', 'Aboitiz Power Corporation'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transport',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace'\n ],\n\n catchPhrases: [\n 'Innovating for the future', 'Your success is our business', 'Building the future together',\n 'Quality and trust', 'Excellence and commitment', 'Sustainable solutions',\n 'Creating value', 'Your trusted partner', 'Leading the change'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_NZ: LocaleDefinition = {\n firstNamesMale: [\n 'Oliver', 'Jack', 'Noah', 'William', 'James', 'Lucas', 'Mason', 'Ethan', 'Leo',\n 'Liam', 'Benjamin', 'Hunter', 'Joshua', 'Samuel', 'Daniel', 'Matthew', 'Joseph',\n 'Thomas', 'Harry', 'Charlie', 'Jacob', 'Archie', 'George', 'Max', 'Oscar',\n 'Finn', 'Isaac', 'Connor', 'Ryan', 'Lachlan', 'Cooper', 'Riley', 'Flynn'\n ],\n firstNamesFemale: [\n 'Charlotte', 'Olivia', 'Amelia', 'Isla', 'Mia', 'Harper', 'Emily', 'Ella', 'Sophie',\n 'Ava', 'Lily', 'Grace', 'Chloe', 'Isabella', 'Ruby', 'Lucy', 'Zoe', 'Emma',\n 'Hannah', 'Aria', 'Scarlett', 'Poppy', 'Evelyn', 'Willow', 'Sienna', 'Ivy',\n 'Hazel', 'Aurora', 'Madison', 'Layla', 'Alice', 'Eleanor', 'Maya'\n ],\n lastNames: [\n 'Smith', 'Wilson', 'Taylor', 'Brown', 'Williams', 'Jones', 'Anderson', 'White',\n 'Thompson', 'Davis', 'Martin', 'Clark', 'Robinson', 'Walker', 'Young', 'Harris',\n 'King', 'Scott', 'Green', 'Adams', 'Baker', 'Campbell', 'Mitchell', 'Roberts',\n 'Carter', 'Phillips', 'Evans', 'Turner', 'Collins', 'Stewart', 'Morris', 'Murphy'\n ],\n streets: [\n 'Queen Street', 'High Street', 'Main Street', 'Victoria Street', 'Lambton Quay',\n 'Courtenay Place', 'Cuba Street', 'Willis Street', 'The Terrace', 'Customhouse Quay',\n 'Karangahape Road', 'Ponsonby Road', 'Dominion Road', 'Great South Road', 'Broadway',\n 'Riccarton Road', 'Colombo Street', 'Cashel Street', 'Manchester Street', 'Hereford Street'\n ],\n cities: [\n 'Auckland', 'Wellington', 'Christchurch', 'Hamilton', 'Tauranga', 'Lower Hutt',\n 'Dunedin', 'Palmerston North', 'Napier', 'Porirua', 'Hibiscus Coast', 'New Plymouth',\n 'Rotorua', 'Whangarei', 'Nelson', 'Hastings', 'Invercargill', 'Upper Hutt',\n 'Gisborne', 'Taupo', 'Blenheim', 'Pukekohe', 'Timaru', 'Whanganui'\n ],\n states: [\n 'Auckland', 'Wellington', 'Canterbury', 'Waikato', 'Bay of Plenty', 'Otago',\n 'Manawatu-Wanganui', 'Hawke\\'s Bay', 'Northland', 'Taranaki', 'Southland',\n 'Nelson', 'Marlborough', 'Tasman', 'Gisborne', 'West Coast'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'Systems Administrator', 'Quality Assurance Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n const unit = Random.boolean() ? `Unit ${Random.int(1, 50)}, ` : '';\n return `${unit}${number} ${street}, ${city} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+64 # ### ####',\n '0# ### ####',\n '+64 (0)# ### ####',\n '02# ### ####',\n '021 ### ####',\n '022 ### ####',\n '027 ### ####',\n '03 ### ####',\n '04 ### ####',\n '06 ### ####',\n '07 ### ####',\n '09 ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.co.nz', 'outlook.co.nz', 'hotmail.co.nz', 'live.co.nz',\n 'xtra.co.nz', 'vodafone.co.nz', 'slingshot.co.nz', 'orcon.net.nz', 'ihug.co.nz'\n ],\n\n companyNames: [\n 'Air New Zealand', 'Fisher & Paykel Healthcare', 'Contact Energy', 'Meridian Energy',\n 'Spark New Zealand', 'Vector Limited', 'Infratil Limited', 'Kathmandu Holdings',\n 'The Warehouse Group', 'Foodstuffs North Island', 'Foodstuffs South Island',\n 'ANZ Bank New Zealand', 'ASB Bank', 'BNZ Bank', 'Westpac New Zealand',\n 'Fletcher Building', 'Goodman Property Trust', 'Kiwi Property Group', 'Z Energy'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transport',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace'\n ],\n\n catchPhrases: [\n 'Innovating for the future', 'Your success is our business', 'Building the future together',\n 'Quality and trust', 'Excellence and commitment', 'Sustainable solutions',\n 'Creating value', 'Your trusted partner', 'Leading the change'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_ZA: LocaleDefinition = {\n firstNamesMale: [\n 'Liam', 'Joshua', 'Daniel', 'Matthew', 'Michael', 'Ethan', 'David', 'Ryan',\n 'Connor', 'Benjamin', 'Luke', 'Thabang', 'Sipho', 'Thabo', 'Mandla', 'Bongani',\n 'Jabulani', 'Sibusiso', 'Nkosinathi', 'Siyabonga', 'Andile', 'Lwazi', 'Sandile',\n 'Dylan', 'Tyler', 'Nathan', 'Christian', 'Kyle', 'Cameron', 'Jordan'\n ],\n firstNamesFemale: [\n 'Emma', 'Olivia', 'Sarah', 'Jessica', 'Emily', 'Hannah', 'Nicole', 'Amy',\n 'Chloe', 'Sophie', 'Nomsa', 'Thandi', 'Zanele', 'Precious', 'Nomvula', 'Lindiwe',\n 'Sibongile', 'Nokuthula', 'Busisiwe', 'Nompumelelo', 'Zinhle', 'Ayanda', 'Noluthando',\n 'Madison', 'Mia', 'Kayla', 'Paige', 'Amelia', 'Grace', 'Isabella'\n ],\n lastNames: [\n 'Smith', 'van der Merwe', 'Botha', 'Naidoo', 'Pillay', 'Mthembu', 'Dlamini', 'Nkosi',\n 'Zulu', 'Ndlovu', 'Ngcobo', 'Khumalo', 'Sithole', 'Mahlangu', 'Molefe', 'Mokoena',\n 'Du Plessis', 'Pretorius', 'Nel', 'Meyer', 'Venter', 'Muller', 'Marais', 'Coetzee',\n 'Williams', 'Jones', 'Brown', 'Taylor', 'Johnson', 'Davies', 'Singh', 'Patel'\n ],\n streets: [\n 'Mandela Street', 'Church Street', 'Main Road', 'Voortrekker Road', 'Oxford Road',\n 'Rissik Street', 'Commissioner Street', 'Jorrisen Street', 'Rivonia Road', 'William Nicol Drive',\n 'Jan Smuts Avenue', 'Beyers Naude Drive', 'Long Street', 'Adderley Street', 'Strand Street',\n 'Kloof Street', 'Sea Point Promenade', 'Smith Street', 'Anton Lembede Street', 'Victoria Embankment'\n ],\n cities: [\n 'Johannesburg', 'Cape Town', 'Durban', 'Pretoria', 'Port Elizabeth', 'Bloemfontein',\n 'East London', 'Pietermaritzburg', 'Polokwane', 'Nelspruit', 'Kimberley', 'Rustenburg',\n 'George', 'Midrand', 'Centurion', 'Sandton', 'Soweto', 'Benoni', 'Boksburg',\n 'Germiston', 'Randburg', 'Roodepoort', 'Vereeniging', 'Welkom', 'Newcastle'\n ],\n states: [\n 'Gauteng', 'Western Cape', 'KwaZulu-Natal', 'Eastern Cape', 'Free State',\n 'Limpopo', 'Mpumalanga', 'North West', 'Northern Cape'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'Systems Administrator', 'Quality Assurance Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n return `${number} ${street}, ${city}, ${state}, ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+27 ## ### ####',\n '0## ### ####',\n '+27 (0)## ### ####',\n '0## #### ####',\n '06# ### ####',\n '07# ### ####',\n '08# ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.co.za', 'outlook.co.za', 'hotmail.co.za', 'live.co.za',\n 'telkomsa.net', 'mweb.co.za', 'vodamail.co.za', 'absamail.co.za', 'iafrica.com'\n ],\n\n companyNames: [\n 'Naspers Limited', 'Prosus NV', 'Anglo American plc', 'BHP Billiton', 'Rio Tinto',\n 'Standard Bank Group', 'FirstRand Limited', 'Absa Group', 'Nedbank Group',\n 'Capitec Bank', 'Discovery Limited', 'Old Mutual', 'Sanlam Limited',\n 'MTN Group', 'Telkom SA', 'Vodacom Group', 'Shoprite Holdings', 'Pick n Pay Stores',\n 'Woolworths Holdings', 'Massmart Holdings', 'Sasol Limited', 'Impala Platinum'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transport',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace'\n ],\n\n catchPhrases: [\n 'Innovating for the future', 'Your success is our business', 'Building the future together',\n 'Quality and trust', 'Excellence and commitment', 'Sustainable solutions',\n 'Creating value', 'Your trusted partner', 'Leading the change'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const pt_PT: LocaleDefinition = {\n firstNamesMale: [\n 'João', 'Francisco', 'Miguel', 'Rodrigo', 'Pedro', 'Tiago', 'Gonçalo', 'Diogo',\n 'José', 'António', 'Manuel', 'Carlos', 'Paulo', 'Rui', 'Luís', 'Bruno',\n 'Ricardo', 'Hugo', 'André', 'Nuno', 'Rafael', 'Daniel', 'David', 'Tomás',\n 'Bernardo', 'Martim', 'Santiago', 'Afonso', 'Duarte', 'Gabriel', 'Gustavo'\n ],\n firstNamesFemale: [\n 'Maria', 'Ana', 'Beatriz', 'Sofia', 'Mariana', 'Inês', 'Carolina', 'Catarina',\n 'Rita', 'Joana', 'Francisca', 'Teresa', 'Helena', 'Isabel', 'Leonor', 'Lara',\n 'Sara', 'Marta', 'Margarida', 'Diana', 'Matilde', 'Alice', 'Mafalda', 'Adriana',\n 'Carlota', 'Constança', 'Gabriela', 'Luísa', 'Melissa', 'Raquel', 'Cristina'\n ],\n lastNames: [\n 'Silva', 'Santos', 'Ferreira', 'Pereira', 'Oliveira', 'Costa', 'Rodrigues', 'Martins',\n 'Jesus', 'Sousa', 'Fernandes', 'Gonçalves', 'Gomes', 'Lopes', 'Marques', 'Alves',\n 'Almeida', 'Ribeiro', 'Pinto', 'Carvalho', 'Teixeira', 'Moreira', 'Correia', 'Mendes',\n 'Nunes', 'Soares', 'Vieira', 'Monteiro', 'Cardoso', 'Rocha', 'Neves', 'Coelho'\n ],\n streets: [\n 'Avenida da Liberdade', 'Rua Augusta', 'Rua da Prata', 'Avenida Almirante Reis',\n 'Rua Garrett', 'Praça do Comércio', 'Rua de Santa Catarina', 'Avenida dos Aliados',\n 'Rua das Flores', 'Avenida da República', 'Rua do Ouro', 'Rua Direita', 'Rua da Madalena',\n 'Avenida Fontes Pereira de Melo', 'Rua Braamcamp', 'Rua Alexandre Herculano'\n ],\n cities: [\n 'Lisboa', 'Porto', 'Vila Nova de Gaia', 'Amadora', 'Braga', 'Coimbra', 'Funchal',\n 'Setúbal', 'Almada', 'Agualva-Cacém', 'Queluz', 'Rio Tinto', 'Barreiro', 'Aveiro',\n 'Évora', 'Odivelas', 'Corroios', 'Loures', 'Gondomar', 'Guimarães', 'Matosinhos',\n 'Faro', 'Portimão', 'Leiria', 'Viseu', 'Castelo Branco', 'Vila Real', 'Santarém'\n ],\n states: [\n 'Lisboa', 'Porto', 'Braga', 'Aveiro', 'Faro', 'Setúbal', 'Coimbra', 'Leiria',\n 'Viseu', 'Santarém', 'Viana do Castelo', 'Vila Real', 'Évora', 'Beja',\n 'Castelo Branco', 'Guarda', 'Portalegre', 'Bragança', 'Açores', 'Madeira'\n ],\n zipCodePattern: '####-###',\n jobTitles: [\n 'Engenheiro de Software', 'Gestor de Projeto', 'Analista de Dados', 'Gestor de Marketing',\n 'Representante de Vendas', 'Contabilista', 'Gestor de RH', 'Designer', 'Gestor de Operações',\n 'Analista de Negócios', 'Gestor de Produto', 'Administrador de Sistemas'\n ],\n departments: [\n 'Engenharia', 'Marketing', 'Vendas', 'Recursos Humanos', 'Finanças', 'Operações',\n 'Apoio ao Cliente', 'IT', 'Investigação e Desenvolvimento', 'Jurídico', 'Administração'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 300);\n const floor = Random.int(1, 8);\n const door = Random.pick(['A', 'B', 'C', 'D', 'E']);\n return `${street}, ${number}, ${floor}º ${door}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n const part1 = String(Random.int(1000, 9999));\n const part2 = String(Random.int(100, 999));\n return `${part1}-${part2}`;\n },\n\n phoneFormats: [\n '+351 ### ### ###',\n '### ### ###',\n '+351 (###) ### ###',\n '(###) ### ###',\n '9## ### ###',\n '91# ### ###',\n '92# ### ###',\n '93# ### ###',\n '96# ### ###'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.pt', 'outlook.pt', 'hotmail.pt', 'live.pt',\n 'sapo.pt', 'iol.pt', 'netcabo.pt', 'clix.pt', 'aeiou.pt'\n ],\n\n companyNames: [\n 'EDP Energias de Portugal', 'Galp Energia', 'The Navigator Company', 'Jerónimo Martins',\n 'Sonae SGPS', 'NOS SGPS', 'CTT Correios', 'Banco Comercial Português', 'Caixa Geral de Depósitos',\n 'Novo Banco', 'Banco Santander Totta', 'Fidelidade Seguros', 'TAP Air Portugal',\n 'Sumol+Compal', 'Sogrape Vinhos', 'Corticeira Amorim', 'Impresa SGPS', 'Global Match'\n ],\n\n industries: [\n 'Tecnologia', 'Finanças', 'Saúde', 'Educação', 'Retalho',\n 'Manufatura', 'Media', 'Telecomunicações', 'Energia', 'Transportes',\n 'Imobiliário', 'Consultoria', 'Hotelaria', 'Automóvel', 'Aeroespacial'\n ],\n\n catchPhrases: [\n 'Inovar para o futuro', 'O seu sucesso é o nosso negócio', 'Construir o futuro juntos',\n 'Qualidade e confiança', 'Excelência e compromisso', 'Soluções sustentáveis',\n 'Criar valor', 'O seu parceiro de confiança', 'Liderar a mudança'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const el_GR: LocaleDefinition = {\n firstNamesMale: [\n 'Georgios', 'Ioannis', 'Konstantinos', 'Dimitrios', 'Nikolaos', 'Panagiotis', 'Vasileios',\n 'Christos', 'Athanasios', 'Michail', 'Spyridon', 'Andreas', 'Alexandros', 'Stefanos',\n 'Antonios', 'Theodoros', 'Evangelos', 'Ilias', 'Petros', 'Apostolos', 'Anastasios',\n 'Grigorios', 'Charalampos', 'Nikos', 'Kostas', 'Giorgos', 'Yannis', 'Dimitris', 'Marios'\n ],\n firstNamesFemale: [\n 'Maria', 'Eleni', 'Aikaterini', 'Vasiliki', 'Sofia', 'Angeliki', 'Georgia', 'Dimitra',\n 'Konstantina', 'Paraskevi', 'Ioanna', 'Anastasia', 'Christina', 'Styliani', 'Fotini',\n 'Panagiota', 'Despina', 'Katerina', 'Anna', 'Alexandra', 'Irini', 'Nikoletta',\n 'Evangelia', 'Chrysoula', 'Theodora', 'Zoi', 'Antonia', 'Eleftheria', 'Marina'\n ],\n lastNames: [\n 'Papadopoulos', 'Pappas', 'Georgiou', 'Dimitriou', 'Nikolaou', 'Ioannou', 'Konstantinou',\n 'Christodoulou', 'Vasiliou', 'Athanasiou', 'Petrou', 'Andreou', 'Oikonomou', 'Karagiannis',\n 'Angelopoulos', 'Alexandrou', 'Michailidis', 'Georgiadis', 'Papadakis', 'Vlahos',\n 'Papageorgiou', 'Theodorou', 'Nikou', 'Economou', 'Panagiotou', 'Makris', 'Kostopoulos'\n ],\n streets: [\n 'Odos Ermou', 'Leoforos Vasilissis Sofias', 'Odos Panepistimiou', 'Odos Stadiou',\n 'Leoforos Alexandras', 'Odos Akadimias', 'Odos Patision', 'Leoforos Kifisias',\n 'Odos Solonos', 'Odos Athinas', 'Leoforos Mesogeion', 'Odos Voukourestiou',\n 'Plateia Syntagmatos', 'Odos Mitropoleos', 'Leoforos Vouliagmenis'\n ],\n cities: [\n 'Athens', 'Thessaloniki', 'Patras', 'Heraklion', 'Larissa', 'Volos', 'Ioannina',\n 'Chania', 'Chalcis', 'Serres', 'Katerini', 'Kalamata', 'Kavala', 'Rhodes',\n 'Agrinio', 'Trikala', 'Lamia', 'Kozani', 'Drama', 'Veria', 'Corfu', 'Xanthi'\n ],\n states: [\n 'Attica', 'Central Macedonia', 'Crete', 'Thessaly', 'Western Greece', 'Peloponnese',\n 'Epirus', 'Central Greece', 'Eastern Macedonia and Thrace', 'Ionian Islands',\n 'Western Macedonia', 'North Aegean', 'South Aegean', 'Mount Athos'\n ],\n zipCodePattern: '### ##',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n return `${street} ${number}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n const part1 = String(Random.int(100, 999));\n const part2 = String(Random.int(10, 99));\n return `${part1} ${part2}`;\n },\n\n phoneFormats: [\n '+30 2# ### ####',\n '2# ### ####',\n '+30 (2#) ### ####',\n '(2#) ### ####',\n '+30 69# ### ####',\n '69# ### ####',\n '69# ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.gr', 'outlook.gr', 'hotmail.gr', 'live.gr',\n 'otenet.gr', 'forthnet.gr', 'wind.com.gr', 'cosmote.gr', 'vodafone.gr'\n ],\n\n companyNames: [\n 'National Bank of Greece', 'Piraeus Bank', 'Alpha Bank', 'Eurobank Ergasias',\n 'OTE Group', 'OPAP SA', 'Coca-Cola HBC', 'Titan Cement', 'Motor Oil Hellas',\n 'Hellenic Petroleum', 'Jumbo SA', 'Folli Follie', 'Lamda Development',\n 'Aegean Airlines', 'Mytilineos Holdings', 'GEK Terna', 'Ellaktor SA'\n ],\n\n industries: [\n 'Τεχνολογία', 'Χρηματοοικονομικά', 'Υγεία', 'Εκπαίδευση', 'Λιανική',\n 'Κατασκευές', 'ΜΜΕ', 'Τηλεπικοινωνίες', 'Ενέργεια', 'Μεταφορές',\n 'Ακίνητα', 'Συμβουλευτική', 'Ξενοδοχεία', 'Αυτοκινητοβιομηχανία', 'Αεροπορία'\n ],\n\n catchPhrases: [\n 'Καινοτομία για το μέλλον', 'Η επιτυχία σας είναι η δουλειά μας', 'Χτίζουμε το μέλλον μαζί',\n 'Ποιότητα και εμπιστοσύνη', 'Αριστεία και δέσμευση', 'Βιώσιμες λύσεις',\n 'Δημιουργούμε αξία', 'Ο αξιόπιστος συνεργάτης σας', 'Ηγούμαστε της αλλαγής'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const cs_CZ: LocaleDefinition = {\n firstNamesMale: [\n 'Jiří', 'Jan', 'Petr', 'Josef', 'Pavel', 'Martin', 'Tomáš', 'Jaroslav', 'Miroslav',\n 'Zdeněk', 'Václav', 'Milan', 'Michal', 'František', 'David', 'Lukáš', 'Jakub',\n 'Ondřej', 'Filip', 'Stanislav', 'Vojtěch', 'Adam', 'Radek', 'Daniel', 'Marek',\n 'Aleš', 'Roman', 'Ladislav', 'Karel', 'Patrik', 'Dominik', 'Matěj'\n ],\n firstNamesFemale: [\n 'Marie', 'Jana', 'Eva', 'Anna', 'Hana', 'Věra', 'Lenka', 'Alena', 'Petra',\n 'Kateřina', 'Lucie', 'Martina', 'Veronika', 'Jitka', 'Ivana', 'Michaela',\n 'Helena', 'Zuzana', 'Markéta', 'Andrea', 'Monika', 'Barbora', 'Tereza', 'Nikola',\n 'Simona', 'Kristýna', 'Natálie', 'Adéla', 'Eliška', 'Karolína', 'Daniela'\n ],\n lastNames: [\n 'Novák', 'Svoboda', 'Novotný', 'Dvořák', 'Černý', 'Procházka', 'Kučera', 'Veselý',\n 'Horáček', 'Němec', 'Pospíšil', 'Pokorný', 'Hájek', 'Jelínek', 'Král', 'Růžička',\n 'Beneš', 'Fiala', 'Sedláček', 'Doležal', 'Zeman', 'Kolář', 'Navrátil', 'Čermák',\n 'Urban', 'Vaněk', 'Blažek', 'Krejčí', 'Moravec', 'Marek', 'Štěpánek', 'Šimek'\n ],\n streets: [\n 'Václavské náměstí', 'Národní třída', 'Na Příkopě', 'Pařížská ulice', 'Karlova ulice',\n 'Nerudova ulice', 'Revolucní', 'Spálená', 'Vinohradská', 'Jugoslávská', 'Náměstí Míru',\n 'Jungmannova', 'Jindřišská', 'Sokolská', 'Žitná', 'Anglická', 'Italská', 'Rumunská'\n ],\n cities: [\n 'Praha', 'Brno', 'Ostrava', 'Plzeň', 'Liberec', 'Olomouc', 'České Budějovice',\n 'Hradec Králové', 'Ústí nad Labem', 'Pardubice', 'Zlín', 'Havířov', 'Kladno',\n 'Most', 'Opava', 'Frýdek-Místek', 'Jihlava', 'Teplice', 'Karviná', 'Karlovy Vary',\n 'Děčín', 'Chomutov', 'Přerov', 'Jablonec nad Nisou', 'Mladá Boleslav', 'Prostějov'\n ],\n states: [\n 'Hlavní město Praha', 'Středočeský', 'Jihočeský', 'Plzeňský', 'Karlovarský',\n 'Ústecký', 'Liberecký', 'Královéhradecký', 'Pardubický', 'Vysočina',\n 'Jihomoravský', 'Olomoucký', 'Zlínský', 'Moravskoslezský'\n ],\n zipCodePattern: '### ##',\n jobTitles: [\n 'Softwarový inženýr', 'Projektový manažer', 'Datový analytik', 'Marketingový manažer',\n 'Obchodní zástupce', 'Účetní', 'Personalista', 'Designer', 'Provozní manažer',\n 'Business analytik', 'Produktový manažer', 'Správce systému', 'Kontrolor kvality'\n ],\n departments: [\n 'Technický', 'Marketing', 'Prodej', 'Lidské zdroje', 'Finance', 'Provoz',\n 'Zákaznický servis', 'IT', 'Výzkum a vývoj', 'Právní', 'Administrativa'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n return `${street} ${number}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n const part1 = String(Random.int(100, 999));\n const part2 = String(Random.int(10, 99));\n return `${part1} ${part2}`;\n },\n\n phoneFormats: [\n '+420 ### ### ###',\n '### ### ###',\n '+420 (###) ### ###',\n '(###) ### ###',\n '6## ### ###',\n '7## ### ###'\n ],\n\n emailDomains: [\n 'gmail.com', 'seznam.cz', 'email.cz', 'post.cz', 'centrum.cz',\n 'volny.cz', 'atlas.cz', 'iol.cz', 'tiscali.cz', 'outlook.com'\n ],\n\n companyNames: [\n 'Škoda Auto', 'ČEZ Group', 'Agrofert', 'Komerční banka', 'Erste Group',\n 'O2 Czech Republic', 'Česká pojišťovna', 'Plzeňský Prazdroj', 'Fortuna',\n 'Avast Software', 'JetBrains', 'Rohlik.cz', 'Alza.cz', 'Mall.cz',\n 'Czech Airlines', 'České dráhy', 'Pražská energetika'\n ],\n\n industries: [\n 'Technologie', 'Finance', 'Zdravotnictví', 'Vzdělávání', 'Maloobchod',\n 'Výroba', 'Média', 'Telekomunikace', 'Energetika', 'Doprava',\n 'Nemovitosti', 'Poradenství', 'Hotely', 'Automobilový průmysl', 'Letectví'\n ],\n\n catchPhrases: [\n 'Inovace pro budoucnost', 'Váš úspěch je naše věc', 'Budujeme budoucnost společně',\n 'Kvalita a důvěra', 'Excellence a závazek', 'Udržitelná řešení',\n 'Tvoříme hodnotu', 'Váš spolehlivý partner', 'Vedeme změnu'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const de_AT: LocaleDefinition = {\n firstNamesMale: [\n 'Michael', 'Thomas', 'Christian', 'Andreas', 'Stefan', 'Markus', 'Alexander', 'Wolfgang',\n 'Florian', 'Daniel', 'Patrick', 'Mario', 'Manuel', 'Christoph', 'Philipp', 'Matthias',\n 'David', 'Sebastian', 'Lukas', 'Johannes', 'Marcel', 'Dominik', 'Benjamin', 'Tobias',\n 'Simon', 'Martin', 'Peter', 'Franz', 'Josef', 'Maximilian', 'Jakob', 'Felix'\n ],\n firstNamesFemale: [\n 'Anna', 'Julia', 'Sarah', 'Lisa', 'Laura', 'Katharina', 'Marie', 'Sophie', 'Lena',\n 'Magdalena', 'Christina', 'Nina', 'Hannah', 'Stefanie', 'Sandra', 'Daniela', 'Melanie',\n 'Jasmin', 'Verena', 'Elisabeth', 'Andrea', 'Maria', 'Petra', 'Sabine', 'Martina',\n 'Claudia', 'Eva', 'Michaela', 'Karin', 'Susanne', 'Barbara', 'Angelika'\n ],\n lastNames: [\n 'Müller', 'Gruber', 'Wagner', 'Huber', 'Pichler', 'Steiner', 'Moser', 'Mayer',\n 'Berger', 'Hofer', 'Leitner', 'Bauer', 'Schmid', 'Schneider', 'Reiter', 'Fischer',\n 'Weber', 'Maier', 'Schwarz', 'Eder', 'Brunner', 'Lang', 'Hoffmann', 'Binder',\n 'Lechner', 'Wolf', 'Koller', 'Fuchs', 'Haas', 'Wimmer', 'Egger', 'Aigner'\n ],\n streets: [\n 'Hauptstraße', 'Bahnhofstraße', 'Kirchenplatz', 'Marktplatz', 'Dorfstraße', 'Schulstraße',\n 'Wiener Straße', 'Linzer Straße', 'Salzburger Straße', 'Grazer Straße', 'Ringstraße',\n 'Innsbrucker Straße', 'Am Ring', 'Schönbrunner Straße', 'Mariahilfer Straße',\n 'Kärntner Straße', 'Graben', 'Herrengasse', 'Landstraße', 'Favoritenstraße'\n ],\n cities: [\n 'Wien', 'Graz', 'Linz', 'Salzburg', 'Innsbruck', 'Klagenfurt', 'Villach', 'Wels',\n 'Sankt Pölten', 'Dornbirn', 'Steyr', 'Wiener Neustadt', 'Feldkirch', 'Bregenz',\n 'Leonding', 'Klosterneuburg', 'Baden', 'Wolfsberg', 'Leoben', 'Krems', 'Traun',\n 'Amstetten', 'Lustenau', 'Kapfenberg', 'Mödling', 'Hallein', 'Kufstein', 'Traiskirchen'\n ],\n states: [\n 'Wien', 'Niederösterreich', 'Oberösterreich', 'Steiermark', 'Tirol', 'Kärnten',\n 'Salzburg', 'Vorarlberg', 'Burgenland'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Softwareentwickler', 'Projektmanager', 'Datenanalyst', 'Marketingleiter',\n 'Vertriebsmitarbeiter', 'Buchhalter', 'Personalleiter', 'Designer', 'Betriebsleiter',\n 'Business Analyst', 'Produktmanager', 'Systemadministrator', 'Qualitätsingenieur'\n ],\n departments: [\n 'Technik', 'Marketing', 'Vertrieb', 'Personalwesen', 'Finanzen', 'Betrieb',\n 'Kundenservice', 'IT', 'Forschung und Entwicklung', 'Recht', 'Verwaltung'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 150);\n const door = Random.int(1, 30);\n return `${street} ${number}/${door}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+43 (0)# #######',\n '0# #######',\n '+43 (0)## #######',\n '0## #######',\n '+43 (0)### ######',\n '0### ######',\n '06## ######',\n '06## #######',\n '067# #######',\n '068# #######'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.at', 'outlook.at', 'hotmail.at', 'live.at',\n 'aon.at', 'gmx.at', 'chello.at', 'inode.at', 'utanet.at'\n ],\n\n companyNames: [\n 'OMV AG', 'Erste Group Bank', 'Raiffeisen Bank', 'Vienna Insurance Group',\n 'Red Bull GmbH', 'Swarovski', 'Voestalpine', 'Andritz AG', 'Verbund AG',\n 'Austrian Airlines', 'Magna International', 'Lenzing AG', 'Porsche Holding',\n 'Spar Österreich', 'Rewe International', 'Hofer KG', 'Billa AG'\n ],\n\n industries: [\n 'Technologie', 'Finanzen', 'Gesundheitswesen', 'Bildung', 'Einzelhandel',\n 'Fertigung', 'Medien', 'Telekommunikation', 'Energie', 'Transport',\n 'Immobilien', 'Beratung', 'Gastgewerbe', 'Automobil', 'Luftfahrt'\n ],\n\n catchPhrases: [\n 'Innovation für die Zukunft', 'Ihr Erfolg ist unser Geschäft', 'Gemeinsam die Zukunft gestalten',\n 'Qualität und Vertrauen', 'Exzellenz und Engagement', 'Nachhaltige Lösungen',\n 'Wert schaffen', 'Ihr verlässlicher Partner', 'Veränderung vorantreiben'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const de_CH: LocaleDefinition = {\n firstNamesMale: [\n 'David', 'Luca', 'Noah', 'Leon', 'Nico', 'Jan', 'Marco', 'Lukas', 'Jonas', 'Sandro',\n 'Thomas', 'Michael', 'Daniel', 'Christian', 'Stefan', 'Patrick', 'Andreas', 'Markus',\n 'Peter', 'Martin', 'Marcel', 'Simon', 'Fabian', 'Tobias', 'Raphael', 'Samuel',\n 'Benjamin', 'Adrian', 'Florian', 'Dominik', 'Matthias', 'Alexander'\n ],\n firstNamesFemale: [\n 'Mia', 'Emma', 'Laura', 'Lara', 'Sophie', 'Anna', 'Julia', 'Sara', 'Lea', 'Nina',\n 'Lisa', 'Sarah', 'Melanie', 'Michelle', 'Jennifer', 'Nadine', 'Nicole', 'Stefanie',\n 'Andrea', 'Sandra', 'Claudia', 'Martina', 'Jasmin', 'Vanessa', 'Sabrina', 'Anja',\n 'Elena', 'Chiara', 'Alina', 'Elisa', 'Noemi', 'Ladina'\n ],\n lastNames: [\n 'Müller', 'Meier', 'Schmid', 'Keller', 'Weber', 'Huber', 'Schneider', 'Meyer',\n 'Steiner', 'Fischer', 'Gerber', 'Brunner', 'Baumann', 'Frei', 'Zimmermann', 'Moser',\n 'Widmer', 'Wyss', 'Graf', 'Roth', 'Hofmann', 'Lehmann', 'Bühler', 'Hofer',\n 'Suter', 'Kuhn', 'Koch', 'Blanc', 'Kohler', 'Wenger', 'Lang', 'Kaufmann'\n ],\n streets: [\n 'Bahnhofstrasse', 'Hauptstrasse', 'Dorfstrasse', 'Bergstrasse', 'Kirchgasse',\n 'Schulhausstrasse', 'Poststrasse', 'Seestrasse', 'Talstrasse', 'Gartenstrasse',\n 'Waldhofstrasse', 'Industriestrasse', 'Rosenweg', 'Lindenweg', 'Parkstrasse',\n 'Feldweg', 'Mühlestrasse', 'Brunnenweg', 'Ringstrasse', 'Zürcherstrasse'\n ],\n cities: [\n 'Zürich', 'Genf', 'Basel', 'Lausanne', 'Bern', 'Winterthur', 'Luzern', 'St. Gallen',\n 'Lugano', 'Biel', 'Thun', 'Köniz', 'La Chaux-de-Fonds', 'Schaffhausen', 'Fribourg',\n 'Chur', 'Vernier', 'Neuchâtel', 'Uster', 'Sion', 'Emmen', 'Zug', 'Yverdon-les-Bains',\n 'Kriens', 'Rapperswil-Jona', 'Dübendorf', 'Montreux', 'Frauenfeld', 'Dietikon', 'Wil'\n ],\n states: [\n 'Zürich', 'Bern', 'Luzern', 'Uri', 'Schwyz', 'Obwalden', 'Nidwalden', 'Glarus',\n 'Zug', 'Fribourg', 'Solothurn', 'Basel-Stadt', 'Basel-Landschaft', 'Schaffhausen',\n 'Appenzell Ausserrhoden', 'Appenzell Innerrhoden', 'St. Gallen', 'Graubünden',\n 'Aargau', 'Thurgau', 'Ticino', 'Vaud', 'Valais', 'Neuchâtel', 'Genève', 'Jura'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Softwareentwickler', 'Projektleiter', 'Datenanalyst', 'Marketingleiter',\n 'Verkäufer', 'Buchhalter', 'Personalleiter', 'Designer', 'Betriebsleiter',\n 'Business Analyst', 'Produktmanager', 'Systemadministrator', 'Qualitätsingenieur'\n ],\n departments: [\n 'Technik', 'Marketing', 'Verkauf', 'Personal', 'Finanzen', 'Betrieb',\n 'Kundendienst', 'IT', 'Forschung und Entwicklung', 'Recht', 'Verwaltung'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 150);\n return `${street} ${number}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+41 (0)## ### ## ##',\n '0## ### ## ##',\n '+41 (0)## ### ## ##',\n '0## ### ## ##',\n '07# ### ## ##',\n '075 ### ## ##',\n '076 ### ## ##',\n '077 ### ## ##',\n '078 ### ## ##',\n '079 ### ## ##'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.ch', 'outlook.ch', 'hotmail.ch', 'bluewin.ch',\n 'swissonline.ch', 'sunrise.ch', 'quickline.ch', 'gmx.ch', 'mail.ch'\n ],\n\n companyNames: [\n 'Nestlé SA', 'Roche Holding', 'Novartis AG', 'UBS Group', 'Credit Suisse',\n 'Zurich Insurance', 'ABB Ltd', 'Glencore International', 'Trafigura',\n 'Mercuria Energy', 'Swiss Re', 'Richemont', 'Swatch Group',\n 'Holcim Group', 'LafargeHolcim', 'Sika AG', 'Georg Fischer', 'Schindler Group'\n ],\n\n industries: [\n 'Technologie', 'Finanzen', 'Gesundheitswesen', 'Bildung', 'Einzelhandel',\n 'Fertigung', 'Medien', 'Telekommunikation', 'Energie', 'Transport',\n 'Immobilien', 'Beratung', 'Gastgewerbe', 'Automobil', 'Luftfahrt'\n ],\n\n catchPhrases: [\n 'Innovation für die Zukunft', 'Ihr Erfolg ist unser Geschäft', 'Gemeinsam die Zukunft gestalten',\n 'Schweizer Qualität und Präzision', 'Vertrauen und Zuverlässigkeit', 'Nachhaltige Lösungen',\n 'Exzellenz in jedem Detail', 'Ihr vertrauenswürdiger Partner', 'Fortschritt durch Innovation'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const nl_BE: LocaleDefinition = {\n firstNamesMale: [\n 'Lars', 'Thomas', 'Lucas', 'Maxime', 'Nathan', 'Louis', 'Noah', 'Arthur', 'Victor',\n 'Adam', 'Mohamed', 'Nicolas', 'Alexander', 'Simon', 'Mathias', 'Robbe', 'Wout',\n 'Jan', 'Pieter', 'Koen', 'Bart', 'Tom', 'Kevin', 'David', 'Michael', 'Johan',\n 'Marc', 'Steven', 'Peter', 'Filip', 'Stijn', 'Bram'\n ],\n firstNamesFemale: [\n 'Emma', 'Louise', 'Marie', 'Anna', 'Laura', 'Lisa', 'Julie', 'Noor', 'Lotte',\n 'Sara', 'Camille', 'Charlotte', 'Ella', 'Nina', 'Fien', 'Lena', 'Amber', 'Luna',\n 'Sarah', 'Sophie', 'Kim', 'Elke', 'Sofie', 'Eline', 'Jana', 'Karen', 'Nathalie',\n 'Katrien', 'Ann', 'Veerle', 'Ellen', 'Inge'\n ],\n lastNames: [\n 'Peeters', 'Janssens', 'Maes', 'Jacobs', 'Mertens', 'Willems', 'Claes', 'Goossens',\n 'Wouters', 'De Smet', 'De Vos', 'Hermans', 'Van de Velde', 'Vermeulen', 'Dubois',\n 'Lambert', 'Laurent', 'Simon', 'Leroy', 'Dupont', 'Martens', 'De Wilde', 'Hendrickx',\n 'Michiels', 'Van den Berg', 'Pauwels', 'Stevens', 'De Clercq', 'Coppens', 'Bogaert'\n ],\n streets: [\n 'Grote Markt', 'Kerkstraat', 'Dorpsstraat', 'Stationsstraat', 'Hoogstraat',\n 'Molenstraat', 'Nieuwstraat', 'Brugsestraat', 'Antwerpsestraat', 'Brusselsestraat',\n 'Koning Albertlaan', 'Koningin Elisabethlaan', 'Leopold II-laan', 'Mechelsesteenweg',\n 'Turnhoutsebaan', 'Leuvenselaan', 'Gentsebaan', 'Gentsestraat', 'Markt', 'Burg'\n ],\n cities: [\n 'Brussel', 'Antwerpen', 'Gent', 'Charleroi', 'Luik', 'Brugge', 'Namen', 'Leuven',\n 'Bergen', 'Mechelen', 'Aalst', 'La Louvière', 'Kortrijk', 'Hasselt', 'Sint-Niklaas',\n 'Oostende', 'Doornik', 'Genk', 'Seraing', 'Roeselare', 'Moeskroen', 'Verviers',\n 'Dendermonde', 'Beringen', 'Turnhout', 'Dilbeek', 'Heist-op-den-Berg', 'Vilvoorde'\n ],\n states: [\n 'Antwerpen', 'Limburg', 'Oost-Vlaanderen', 'West-Vlaanderen', 'Vlaams-Brabant',\n 'Waals-Brabant', 'Henegouwen', 'Luik', 'Luxemburg', 'Namen', 'Brussels Hoofdstedelijk Gewest'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Software Engineer', 'Projectmanager', 'Data Analist', 'Marketingmanager',\n 'Verkoopvertegenwoordiger', 'Boekhouder', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analist', 'Productmanager', 'Systeembeheerder', 'Kwaliteitsingenieur'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Verkoop', 'Human Resources', 'Financiën', 'Operaties',\n 'Klantenservice', 'IT', 'Onderzoek en Ontwikkeling', 'Juridisch', 'Administratie'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 300);\n const bus = Random.boolean() ? ` bus ${Random.int(1, 50)}` : '';\n return `${street} ${number}${bus}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+32 # ### ## ##',\n '0# ### ## ##',\n '+32 (0)# ### ## ##',\n '04## ## ## ##',\n '047# ## ## ##',\n '048# ## ## ##',\n '049# ## ## ##'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.be', 'outlook.be', 'hotmail.be', 'live.be',\n 'telenet.be', 'proximus.be', 'skynet.be', 'pandora.be', 'belgacom.net'\n ],\n\n companyNames: [\n 'Anheuser-Busch InBev', 'KBC Group', 'Belfius Bank', 'Ageas SA', 'Umicore SA',\n 'Solvay SA', 'Groupe Bruxelles Lambert', 'Ackermans & van Haaren', 'Colruyt NV',\n 'Delhaize Group', 'Galeria Inno', 'Telenet Group', 'Proximus', 'bpost',\n 'Brussels Airlines', 'Cofinimmo', 'Warehouses De Pauw', 'Aperam SA'\n ],\n\n industries: [\n 'Technologie', 'Financiën', 'Gezondheidszorg', 'Onderwijs', 'Detailhandel',\n 'Productie', 'Media', 'Telecommunicatie', 'Energie', 'Transport',\n 'Onroerend goed', 'Consultancy', 'Horeca', 'Automotive', 'Luchtvaart'\n ],\n\n catchPhrases: [\n 'Innoveren voor de toekomst', 'Uw succes is onze zaak', 'Samen de toekomst bouwen',\n 'Kwaliteit en vertrouwen', 'Uitstekendheid en toewijding', 'Duurzame oplossingen',\n 'Waarde creëren', 'Uw vertrouwde partner', 'Verandering leiden'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const hu_HU: LocaleDefinition = {\n firstNamesMale: [\n 'László', 'István', 'József', 'János', 'Zoltán', 'Sándor', 'Gábor', 'Ferenc',\n 'Péter', 'Attila', 'Tamás', 'András', 'Balázs', 'Máté', 'Dávid', 'Ádám',\n 'Levente', 'Bence', 'Márk', 'Dominik', 'Norbert', 'Kristóf', 'Richárd', 'Viktor',\n 'Gyula', 'Imre', 'Csaba', 'Tibor', 'Mihály', 'Zsolt', 'Krisztián', 'Róbert'\n ],\n firstNamesFemale: [\n 'Mária', 'Erzsébet', 'Ilona', 'Katalin', 'Éva', 'Anna', 'Margit', 'Judit',\n 'Ágnes', 'Eszter', 'Andrea', 'Krisztina', 'Erika', 'Mónika', 'Zsuzsanna', 'Réka',\n 'Petra', 'Laura', 'Zsófia', 'Lilla', 'Dóra', 'Boglárka', 'Fanni', 'Viktória',\n 'Renáta', 'Nikolett', 'Tímea', 'Beatrix', 'Anita', 'Noémi', 'Emese', 'Orsolya'\n ],\n lastNames: [\n 'Nagy', 'Kovács', 'Tóth', 'Szabó', 'Horváth', 'Varga', 'Kiss', 'Molnár',\n 'Németh', 'Farkas', 'Balogh', 'Papp', 'Takács', 'Juhász', 'Lakatos', 'Mészáros',\n 'Oláh', 'Simon', 'Rácz', 'Fekete', 'Szűcs', 'Kocsis', 'Szilágyi', 'Török',\n 'Fehér', 'Balázs', 'Gál', 'Vincze', 'Szalai', 'Máté', 'Kozma', 'Hegedűs'\n ],\n streets: [\n 'Fő utca', 'Kossuth utca', 'Petőfi utca', 'Rákóczi út', 'Dózsa György út',\n 'Árpád utca', 'Vörösmarty utca', 'Bem utca', 'Ady Endre utca', 'József Attila utca',\n 'Mátyás király utca', 'Széchenyi utca', 'Deák Ferenc utca', 'Hősök tere',\n 'Andrássy út', 'Váci utca', 'Dohány utca', 'Nagykörút', 'Baross utca', 'Üllői út'\n ],\n cities: [\n 'Budapest', 'Debrecen', 'Szeged', 'Miskolc', 'Pécs', 'Győr', 'Nyíregyháza', 'Kecskemét',\n 'Székesfehérvár', 'Szombathely', 'Szolnok', 'Tatabánya', 'Kaposvár', 'Érd', 'Veszprém',\n 'Békéscsaba', 'Zalaegerszeg', 'Sopron', 'Eger', 'Nagykanizsa', 'Dunakeszi', 'Hódmezővásárhely',\n 'Szentendre', 'Cegléd', 'Vác', 'Gyula', 'Baja', 'Ózd', 'Salgótarján', 'Mosonmagyaróvár'\n ],\n states: [\n 'Budapest', 'Pest', 'Fejér', 'Komárom-Esztergom', 'Veszprém', 'Győr-Moson-Sopron',\n 'Vas', 'Zala', 'Baranya', 'Somogy', 'Tolna', 'Borsod-Abaúj-Zemplén', 'Heves',\n 'Nógrád', 'Hajdú-Bihar', 'Jász-Nagykun-Szolnok', 'Szabolcs-Szatmár-Bereg',\n 'Bács-Kiskun', 'Békés', 'Csongrád-Csanád'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Szoftverfejlesztő', 'Projektvezető', 'Adatelemző', 'Marketing menedzser',\n 'Értékesítési képviselő', 'Könyvelő', 'HR vezető', 'Tervező', 'Üzemeltetési vezető',\n 'Üzleti elemző', 'Termékmenedzser', 'Rendszergazda', 'Minőségbiztosítási mérnök'\n ],\n departments: [\n 'Mérnöki', 'Marketing', 'Értékesítés', 'Humán erőforrás', 'Pénzügy', 'Üzemeltetés',\n 'Ügyfélszolgálat', 'IT', 'Kutatás-fejlesztés', 'Jogi', 'Adminisztráció'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n // Hungarian name format: Last First\n return `${lastName} ${firstName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n return `${zipCode} ${city}, ${street} ${number}.`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+36 (##) ###-####',\n '(##) ###-####',\n '+36 ## ###-####',\n '## ###-####',\n '+36 (20) ###-####',\n '(20) ###-####',\n '(30) ###-####',\n '(70) ###-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.hu', 'outlook.hu', 'hotmail.hu', 'live.hu',\n 'freemail.hu', 'citromail.hu', 'mail.hu', 'indamail.hu', 'vipmail.hu'\n ],\n\n companyNames: [\n 'MOL Nyrt', 'OTP Bank', 'Richter Gedeon', 'Magyar Telekom', 'MVM Zrt',\n 'FHB Bank', 'Graphisoft Park', 'Wizz Air', '4iG Nyrt', 'Masterplast',\n 'Opus Global', 'Rába Nyrt', 'Zwack Unicum', 'Pick Szeged', 'Duna Autó',\n 'CIG Pannonia', 'Budapest Bank', 'K&H Bank', 'Erste Bank Hungary'\n ],\n\n industries: [\n 'Technológia', 'Pénzügy', 'Egészségügy', 'Oktatás', 'Kiskereskedelem',\n 'Gyártás', 'Média', 'Távközlés', 'Energia', 'Szállítás',\n 'Ingatlan', 'Tanácsadás', 'Szálloda', 'Autóipar', 'Repülés'\n ],\n\n catchPhrases: [\n 'Innováció a jövőért', 'Az ön sikere a mi dolgunk', 'Közösen építjük a jövőt',\n 'Minőség és megbízhatóság', 'Kiválóság és elkötelezettség', 'Fenntartható megoldások',\n 'Értéket teremtünk', 'Az ön megbízható partnere', 'Vezetjük a változást'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ro_RO: LocaleDefinition = {\n firstNamesMale: [\n 'Ion', 'Gheorghe', 'Nicolae', 'Vasile', 'Constantin', 'Andrei', 'Mihai', 'Alexandru',\n 'Adrian', 'Cristian', 'Florin', 'Marian', 'Daniel', 'Ionuț', 'Gabriel', 'Bogdan',\n 'Ștefan', 'Vlad', 'Radu', 'George', 'David', 'Cosmin', 'Dragoș', 'Ciprian',\n 'Sorin', 'Dan', 'Viorel', 'Petru', 'Dumitru', 'Emil', 'Liviu', 'Ovidiu'\n ],\n firstNamesFemale: [\n 'Maria', 'Elena', 'Ana', 'Ioana', 'Andreea', 'Alexandra', 'Mihaela', 'Cristina',\n 'Gabriela', 'Alina', 'Daniela', 'Monica', 'Simona', 'Diana', 'Raluca', 'Adriana',\n 'Laura', 'Nicoleta', 'Corina', 'Carmen', 'Oana', 'Roxana', 'Valentina', 'Camelia',\n 'Florentina', 'Georgeta', 'Mariana', 'Luminița', 'Silvia', 'Anca', 'Magdalena', 'Irina'\n ],\n lastNames: [\n 'Popescu', 'Ionescu', 'Popa', 'Radu', 'Dumitrescu', 'Georgescu', 'Stan', 'Stoica',\n 'Constantin', 'Munteanu', 'Dima', 'Vasile', 'Barbu', 'Preda', 'Mocanu', 'Ilie',\n 'Mihai', 'Dobre', 'Andrei', 'Stanciu', 'Tudor', 'Enache', 'Ștefan', 'Marin',\n 'Niculescu', 'Drăghici', 'Alexandru', 'Matei', 'Sandu', 'Cristea', 'Oprea', 'Munteanu'\n ],\n streets: [\n 'Strada Independenței', 'Bulevardul Unirii', 'Strada Republicii', 'Calea Victoriei',\n 'Strada Libertății', 'Bulevardul Carol I', 'Strada Mihai Viteazu', 'Strada Aviatorilor',\n 'Bulevardul Magheru', 'Strada Dorobanți', 'Calea Moșilor', 'Strada Lipscani',\n 'Bulevardul Brâncoveanu', 'Strada Obor', 'Calea Grivița', 'Bulevardul Pache Protopopescu'\n ],\n cities: [\n 'București', 'Cluj-Napoca', 'Timișoara', 'Iași', 'Constanța', 'Craiova', 'Brașov',\n 'Galați', 'Ploiești', 'Oradea', 'Brăila', 'Arad', 'Pitești', 'Sibiu', 'Bacău',\n 'Târgu Mureș', 'Baia Mare', 'Buzău', 'Botoșani', 'Satu Mare', 'Râmnicu Vâlcea',\n 'Suceava', 'Piatra Neamț', 'Drobeta-Turnu Severin', 'Focșani', 'Târgoviște', 'Tulcea'\n ],\n states: [\n 'București', 'Cluj', 'Timiș', 'Iași', 'Constanța', 'Dolj', 'Brașov', 'Galați',\n 'Prahova', 'Bihor', 'Brăila', 'Arad', 'Argeș', 'Sibiu', 'Bacău', 'Mureș',\n 'Maramureș', 'Buzău', 'Botoșani', 'Satu Mare', 'Vâlcea', 'Suceava', 'Neamț',\n 'Mehedinți', 'Vrancea', 'Dâmbovița', 'Tulcea', 'Bistrița-Năsăud', 'Caraș-Severin'\n ],\n zipCodePattern: '######',\n jobTitles: [\n 'Inginer Software', 'Manager de Proiect', 'Analist de Date', 'Manager Marketing',\n 'Reprezentant Vânzări', 'Contabil', 'Manager HR', 'Designer', 'Manager Operațiuni',\n 'Analist de Afaceri', 'Manager Produs', 'Administrator Sistem', 'Inginer Calitate'\n ],\n departments: [\n 'Inginerie', 'Marketing', 'Vânzări', 'Resurse Umane', 'Finanțe', 'Operațiuni',\n 'Servicii Clienți', 'IT', 'Cercetare și Dezvoltare', 'Juridic', 'Administrație'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n const bloc = Random.pick(['A', 'B', 'C', 'D']);\n const scara = Random.int(1, 4);\n const ap = Random.int(1, 50);\n return `${street} nr. ${number}, Bl. ${bloc}, Sc. ${scara}, Ap. ${ap}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(100000, 999999));\n },\n\n phoneFormats: [\n '+40 ### ### ####',\n '0### ### ####',\n '+40 (0)### ### ####',\n '07## ### ####',\n '071# ### ####',\n '072# ### ####',\n '073# ### ####',\n '074# ### ####',\n '075# ### ####',\n '076# ### ####',\n '077# ### ####',\n '078# ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.ro', 'outlook.ro', 'hotmail.ro', 'live.ro',\n 'yahoo.com', 'gmx.com', 'aol.com', 'icloud.com', 'protonmail.com'\n ],\n\n companyNames: [\n 'OMV Petrom', 'Romgaz', 'Banca Transilvania', 'BRD Groupe Société Générale',\n 'Digi Communications', 'Orange România', 'Vodafone România', 'Telekom România',\n 'Hidroelectrica', 'Nuclearelectrica', 'Transgaz', 'Transelectrica',\n 'Rompetrol Rafinare', 'OMV Petrom Rafinare', 'Aeroporturi București',\n 'CFR Călători', 'CFR Marfă', 'Poșta Română', 'Electrica SA'\n ],\n\n industries: [\n 'Tehnologie', 'Finanțe', 'Sănătate', 'Educație', 'Comerț cu amănuntul',\n 'Producție', 'Media', 'Telecomunicații', 'Energie', 'Transport',\n 'Imobiliare', 'Consultanță', 'Hoteluri', 'Automobile', 'Aviație'\n ],\n\n catchPhrases: [\n 'Inovație pentru viitor', 'Succesul dumneavoastră este afacerea noastră', 'Construim viitorul împreună',\n 'Calitate și încredere', 'Excelență și angajament', 'Soluții durabile',\n 'Creăm valoare', 'Partenerul dumneavoastră de încredere', 'Conducem schimbarea'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ar_AE: LocaleDefinition = {\n firstNamesMale: [\n 'Mohammed', 'Ahmed', 'Abdullah', 'Sultan', 'Khalid', 'Omar', 'Ali', 'Hassan',\n 'Saeed', 'Rashid', 'Hamad', 'Majid', 'Fahad', 'Nasser', 'Faisal', 'Yousef',\n 'Ibrahim', 'Abdulrahman', 'Saud', 'Mansour', 'Talal', 'Waleed', 'Tariq', 'Zayed',\n 'Rashed', 'Hamdan', 'Maktoum', 'Obaid', 'Salem', 'Marwan', 'Jassim', 'Nawaf'\n ],\n firstNamesFemale: [\n 'Fatima', 'Aisha', 'Mariam', 'Noura', 'Sara', 'Hessa', 'Latifa', 'Shamsa',\n 'Moza', 'Sheikha', 'Amna', 'Salama', 'Meitha', 'Hind', 'Maryam', 'Shamma',\n 'Reem', 'Layla', 'Dana', 'Khawla', 'Budoor', 'Jawaher', 'Maitha', 'Mouza',\n 'Shaikha', 'Alia', 'Asma', 'Hanan', 'Nada', 'Noor', 'Wadha', 'Mahra'\n ],\n lastNames: [\n 'Al Maktoum', 'Al Nahyan', 'Al Qasimi', 'Al Sharqi', 'Al Nuaimi', 'Al Mualla',\n 'Al Ali', 'Al Mansouri', 'Al Shamsi', 'Al Ketbi', 'Al Kaabi', 'Al Dhaheri',\n 'Al Mazrouei', 'Al Hamadi', 'Al Suwaidi', 'Al Zaabi', 'Al Marzouqi', 'Al Ahbabi',\n 'Al Mansoori', 'Al Blooshi', 'Al Muhairi', 'Al Shehhi', 'Al Hashimi', 'Al Zarooni',\n 'Al Falasi', 'Al Ameri', 'Al Kindi', 'Al Marri', 'Al Yasi', 'Al Mheiri'\n ],\n streets: [\n 'Sheikh Zayed Road', 'Khalifa Street', 'Hamdan Street', 'Al Wasl Road', 'Jumeirah Road',\n 'Al Khaleej Road', 'Airport Road', 'Al Rigga Road', 'Al Maktoum Road', 'Baniyas Road',\n 'Sheikh Mohammed Bin Rashid Boulevard', 'Al Salam Street', 'Al Ain Road', 'Corniche Road',\n 'Sheikh Rashid Road', 'Al Ittihad Road', 'Al Dhafra Street', 'Marina Walk', 'The Walk JBR'\n ],\n cities: [\n 'Dubai', 'Abu Dhabi', 'Sharjah', 'Al Ain', 'Ajman', 'Ras Al Khaimah', 'Fujairah',\n 'Umm Al Quwain', 'Khor Fakkan', 'Dibba', 'Kalba', 'Jebel Ali', 'Al Dhaid',\n 'Madinat Zayed', 'Liwa', 'Ghayathi', 'Ruwais', 'Al Mirfa', 'Mezaira'\n ],\n states: [\n 'Dubai', 'Abu Dhabi', 'Sharjah', 'Ajman', 'Umm Al Quwain', 'Ras Al Khaimah', 'Fujairah'\n ],\n zipCodePattern: '',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const building = Random.pick(['Tower', 'Building', 'Plaza', 'Centre']);\n const buildingName = Random.pick(['Al Barsha', 'Marina', 'Downtown', 'Business Bay']);\n const office = Random.int(100, 999);\n return `Office ${office}, ${buildingName} ${building}, ${street}, ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return '';\n },\n\n phoneFormats: [\n '+971 ## ### ####',\n '0## ### ####',\n '+971 (0)## ### ####',\n '05# ### ####',\n '050 ### ####',\n '052 ### ####',\n '054 ### ####',\n '056 ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.ae', 'outlook.com', 'hotmail.com',\n 'emirates.net.ae', 'etisalat.ae', 'du.ae', 'mail.ae',\n 'icloud.com', 'protonmail.com'\n ],\n\n companyNames: [\n 'Emirates Group', 'Etisalat', 'Emirates NBD', 'ADNOC', 'Dubai World',\n 'Emaar Properties', 'Mubadala Investment', 'DP World', 'Flydubai',\n 'Dubai Islamic Bank', 'First Abu Dhabi Bank', 'Chalhoub Group',\n 'Majid Al Futtaim', 'Al Futtaim Group', 'Jumeirah Group'\n ],\n\n industries: [\n 'التكنولوجيا', 'المالية', 'الرعاية الصحية', 'التعليم', 'التجزئة',\n 'التصنيع', 'الإعلام', 'الاتصالات', 'الطاقة', 'النقل',\n 'العقارات', 'الاستشارات', 'الضيافة', 'السيارات', 'الطيران'\n ],\n\n catchPhrases: [\n 'الابتكار للمستقبل', 'نجاحكم هو عملنا', 'نبني المستقبل معاً',\n 'الجودة والثقة', 'التميز والالتزام', 'حلول مستدامة',\n 'نخلق القيمة', 'شريككم الموثوق', 'نقود التغيير'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ar_SA: LocaleDefinition = {\n firstNamesMale: [\n 'Mohammed', 'Abdullah', 'Fahd', 'Khalid', 'Faisal', 'Mansour', 'Saud', 'Abdulaziz',\n 'Turki', 'Sultan', 'Salman', 'Nasser', 'Talal', 'Bandar', 'Mishal', 'Abdulrahman',\n 'Yousef', 'Ahmed', 'Ali', 'Omar', 'Hassan', 'Saad', 'Faris', 'Rakan', 'Nawaf',\n 'Majed', 'Hamad', 'Waleed', 'Tariq', 'Rashid', 'Ibrahim', 'Ziyad'\n ],\n firstNamesFemale: [\n 'Noura', 'Sarah', 'Maha', 'Hessa', 'Lulwa', 'Latifa', 'Abeer', 'Reem', 'Hind',\n 'Jawaher', 'Mona', 'Amal', 'Deema', 'Lama', 'Nada', 'Hanan', 'Ghada', 'Basma',\n 'Arwa', 'Reema', 'Maryam', 'Fatima', 'Nora', 'Layla', 'Dana', 'Sama', 'Rana',\n 'Asma', 'Raghad', 'Wafa', 'Anoud', 'Atheer'\n ],\n lastNames: [\n 'Al Saud', 'Al Otaibi', 'Al Ghamdi', 'Al Zahrani', 'Al Harbi', 'Al Qahtani',\n 'Al Shehri', 'Al Malki', 'Al Dosari', 'Al Mutairi', 'Al Rashid', 'Al Saeed',\n 'Al Mansour', 'Al Juhani', 'Al Anazi', 'Al Shamrani', 'Al Subai', 'Al Yami',\n 'Al Faisal', 'Al Turki', 'Al Khalifa', 'Al Abdulaziz', 'Al Thani', 'Al Dawsari',\n 'Al Shaalan', 'Al Balawi', 'Al Ahmadi', 'Al Sulaiman', 'Al Mubarak', 'Al Hamad'\n ],\n streets: [\n 'King Fahd Road', 'King Abdullah Road', 'King Abdulaziz Road', 'Olaya Street',\n 'Tahlia Street', 'Madinah Road', 'Makkah Road', 'Al Urubah Road', 'Prince Mohammed Road',\n 'King Khalid Road', 'Al Malaz Street', 'Al Imam Saud Road', 'Al Amir Sultan Road',\n 'Corniche Road', 'Airport Road', 'Al Kharj Road', 'Riyadh Park Road', 'King Saud Road'\n ],\n cities: [\n 'Riyadh', 'Jeddah', 'Makkah', 'Madinah', 'Dammam', 'Khobar', 'Dhahran', 'Jubail',\n 'Tabuk', 'Abha', 'Khamis Mushait', 'Buraidah', 'Hail', 'Najran', 'Yanbu', 'Jazan',\n 'Al Ahsa', 'Taif', 'Qatif', 'Al Kharj', 'Ras Tanura', 'Hafar Al Batin', 'Arar', 'Sakaka'\n ],\n states: [\n 'Riyadh', 'Makkah', 'Madinah', 'Eastern Province', 'Asir', 'Tabuk', 'Qassim',\n 'Hail', 'Northern Borders', 'Jazan', 'Najran', 'Al Bahah', 'Al Jouf'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const district = Random.pick(['Al Malaz', 'Al Olaya', 'Al Naseem', 'Al Salamah', 'Al Rawdah']);\n const buildingNumber = Random.int(1000, 9999);\n return `Building ${buildingNumber}, ${district}, ${street}, ${city} ${zipCode}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+966 ## ### ####',\n '0## ### ####',\n '+966 (0)## ### ####',\n '05# ### ####',\n '050 ### ####',\n '053 ### ####',\n '054 ### ####',\n '055 ### ####',\n '056 ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com.sa', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'stc.net.sa', 'mobily.com.sa'\n ],\n\n companyNames: [\n 'Saudi Aramco', 'SABIC', 'Al Rajhi Bank', 'STC', 'Samba Financial Group',\n 'Riyad Bank', 'Saudi Electricity Company', 'ACWA Power', 'Maaden',\n 'Jarir Marketing', 'Abdullah Al Othaim Markets', 'Bin Dawood',\n 'Almarai Company', 'Savola Group', 'Zain KSA'\n ],\n\n industries: [\n 'التكنولوجيا', 'المالية', 'الرعاية الصحية', 'التعليم', 'التجزئة',\n 'التصنيع', 'الإعلام', 'الاتصالات', 'الطاقة', 'النقل',\n 'العقارات', 'الاستشارات', 'الضيافة', 'السيارات', 'الطيران'\n ],\n\n catchPhrases: [\n 'الابتكار للمستقبل', 'نجاحكم هو عملنا', 'نبني المستقبل معاً',\n 'الجودة والثقة', 'التميز والالتزام', 'حلول مستدامة',\n 'نخلق القيمة', 'شريككم الموثوق', 'نقود التغيير'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ar_EG: LocaleDefinition = {\n firstNamesMale: [\n 'Mohamed', 'Ahmed', 'Mahmoud', 'Ali', 'Omar', 'Youssef', 'Hassan', 'Amr',\n 'Khaled', 'Ibrahim', 'Mustafa', 'Osama', 'Tamer', 'Hossam', 'Karim', 'Tarek',\n 'Sherif', 'Adel', 'Walid', 'Ashraf', 'Magdy', 'Hazem', 'Hany', 'Ayman',\n 'Ramy', 'Wael', 'Essam', 'Medhat', 'Samir', 'Fathy', 'Samy', 'Nabil'\n ],\n firstNamesFemale: [\n 'Fatma', 'Mona', 'Nour', 'Mariam', 'Sara', 'Nada', 'Heba', 'Aya', 'Salma',\n 'Yasmin', 'Rana', 'Layla', 'Hala', 'Dina', 'Rania', 'Amira', 'Eman', 'Noha',\n 'Sahar', 'Nagwa', 'Manal', 'Somaya', 'Ghada', 'Amal', 'Nawal', 'Hanan',\n 'Maha', 'Samira', 'Hanaa', 'Rabab', 'Soha', 'Menna'\n ],\n lastNames: [\n 'Mohamed', 'Ahmed', 'Ali', 'Hassan', 'Ibrahim', 'Mahmoud', 'Youssef', 'Abdel Rahman',\n 'Abdel Aziz', 'Abdel Fattah', 'Abdel Hamid', 'El Sayed', 'El Shahat', 'Khalil',\n 'Mostafa', 'Salah', 'Fouad', 'Rashad', 'Farouk', 'Shawky', 'Refaat', 'Abdallah',\n 'El Sherbiny', 'El Maghraby', 'El Masry', 'El Naggar', 'El Sisi', 'El Din', 'Mansour'\n ],\n streets: [\n 'Tahrir Street', 'Ramses Street', 'Salah Salem Street', 'Mohamed Farid Street',\n 'Qasr El Nil Street', 'Talaat Harb Street', 'El Haram Street', 'Nasr Road',\n 'Makram Ebeid Street', 'Mostafa El Nahhas Street', 'El Geish Street', 'El Nozha Street',\n 'Abbas El Akkad Street', 'Ahmed Orabi Street', 'Port Said Street', 'October Bridge'\n ],\n cities: [\n 'Cairo', 'Alexandria', 'Giza', 'Shubra El Kheima', 'Port Said', 'Suez', 'Luxor',\n 'Mansoura', 'El Mahalla El Kubra', 'Tanta', 'Asyut', 'Ismailia', 'Faiyum', 'Zagazig',\n 'Aswan', 'Damietta', 'Damanhur', 'Minya', 'Beni Suef', 'Qena', 'Sohag', 'Hurghada',\n 'Kafr El Sheikh', 'Arish', 'Mallawi', '6th of October City', 'Sharm El Sheikh'\n ],\n states: [\n 'Cairo', 'Alexandria', 'Giza', 'Qalyubia', 'Port Said', 'Suez', 'Luxor',\n 'Dakahlia', 'Gharbia', 'Sharqia', 'Asyut', 'Ismailia', 'Faiyum', 'Beheira',\n 'Aswan', 'Damietta', 'Minya', 'Beni Suef', 'Qena', 'Sohag', 'Red Sea',\n 'Kafr El Sheikh', 'North Sinai', 'South Sinai', 'Matruh', 'New Valley'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const building = Random.int(1, 999);\n const floor = Random.int(1, 12);\n const apartment = Random.int(1, 50);\n return `Building ${building}, Floor ${floor}, Apartment ${apartment}, ${street}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+20 ## #### ####',\n '0## #### ####',\n '+20 (0)## #### ####',\n '01# ### ### ##',\n '010# ### ####',\n '011# ### ####',\n '012# ### ####',\n '015# ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com',\n 'link.net', 'egynet.com', 'data.com.eg'\n ],\n\n companyNames: [\n 'Orange Egypt', 'Vodafone Egypt', 'Etisalat Egypt', 'Telecom Egypt',\n 'National Bank of Egypt', 'Banque Misr', 'Commercial International Bank',\n 'Egyptian Refining Company', 'Elsewedy Electric', 'Orascom Construction',\n 'Ezz Steel', 'Arab African International Bank', 'QNB Al Ahli',\n 'Fawry', 'Jumia Egypt', 'Souq.com'\n ],\n\n industries: [\n 'التكنولوجيا', 'المالية', 'الرعاية الصحية', 'التعليم', 'التجزئة',\n 'التصنيع', 'الإعلام', 'الاتصالات', 'الطاقة', 'النقل',\n 'العقارات', 'الاستشارات', 'الضيافة', 'السيارات', 'الطيران'\n ],\n\n catchPhrases: [\n 'الابتكار للمستقبل', 'نجاحكم هو عملنا', 'نبني المستقبل معاً',\n 'الجودة والثقة', 'التميز والالتزام', 'حلول مستدامة',\n 'نخلق القيمة', 'شريككم الموثوق', 'نقود التغيير'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const he_IL: LocaleDefinition = {\n firstNamesMale: [\n 'David', 'Moshe', 'Yosef', 'Daniel', 'Uri', 'Avi', 'Amit', 'Or', 'Yonatan', 'Eitan',\n 'Noam', 'Itai', 'Rotem', 'Lior', 'Omri', 'Alon', 'Yuval', 'Gal', 'Idan', 'Nir',\n 'Ariel', 'Ben', 'Shai', 'Yair', 'Tom', 'Adam', 'Tomer', 'Dor', 'Oren', 'Elad',\n 'Chen', 'Ran', 'Roi', 'Omer'\n ],\n firstNamesFemale: [\n 'Sarah', 'Miriam', 'Rachel', 'Tamar', 'Noa', 'Shira', 'Maya', 'Yael', 'Hila',\n 'Dana', 'Tal', 'Lihi', 'Noga', 'Adi', 'Roni', 'Noy', 'Shani', 'Mia', 'Ella',\n 'Yarden', 'Lian', 'Agam', 'Rotem', 'Lior', 'Amit', 'Carmel', 'Talia', 'Neta',\n 'Efrat', 'Gal', 'Inbar', 'Avigail', 'Chen'\n ],\n lastNames: [\n 'Cohen', 'Levy', 'Mizrahi', 'Peretz', 'Biton', 'Dahan', 'Avraham', 'Friedman',\n 'Azoulay', 'Yosef', 'Katz', 'Kaplan', 'Ben David', 'Ben Ami', 'Malka', 'Shapiro',\n 'Amar', 'Ohana', 'Elkayam', 'Golan', 'Goldberg', 'Stein', 'Schwartz', 'Levi',\n 'Ben Haim', 'Abuksis', 'Israeli', 'Sharon', 'Barak', 'Shalom', 'Weiss', 'Klein'\n ],\n streets: [\n 'Dizengoff Street', 'Rothschild Boulevard', 'Ben Yehuda Street', 'Allenby Street',\n 'King George Street', 'Jaffa Road', 'HaYarkon Street', 'Sderot Ben Gurion',\n 'Herzl Street', 'Weizmann Street', 'Basel Street', 'Nordau Boulevard', 'Ibn Gvirol Street',\n 'Rabin Square', 'Carmel Market', 'Neve Tzedek', 'Florentin', 'Sarona'\n ],\n cities: [\n 'Jerusalem', 'Tel Aviv', 'Haifa', 'Rishon LeZion', 'Petah Tikva', 'Ashdod', 'Netanya',\n 'Beer Sheva', 'Holon', 'Bnei Brak', 'Ramat Gan', 'Rehovot', 'Bat Yam', 'Ashkelon',\n 'Herzliya', 'Kfar Saba', 'Hadera', 'Modi\\'in', 'Nazareth', 'Lod', 'Ramla', 'Nahariya',\n 'Rosh HaAyin', 'Givatayim', 'Kiryat Ata', 'Raanana', 'Acre', 'Eilat'\n ],\n states: [\n 'Jerusalem', 'Tel Aviv', 'Haifa', 'Central', 'Southern', 'Northern', 'Judea and Samaria'\n ],\n zipCodePattern: '#######',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'System Administrator', 'Quality Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance', 'Operations',\n 'Customer Service', 'IT', 'Research and Development', 'Legal', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const building = Random.int(1, 200);\n const apartment = Random.int(1, 50);\n return `${street} ${building}, Apt ${apartment}, ${city} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000000, 9999999));\n },\n\n phoneFormats: [\n '+972 ## ### ####',\n '0## ### ####',\n '+972 (0)## ### ####',\n '05# ### ####',\n '050 ### ####',\n '051 ### ####',\n '052 ### ####',\n '053 ### ####',\n '054 ### ####',\n '055 ### ####',\n '056 ### ####',\n '057 ### ####',\n '058 ### ####',\n '059 ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.co.il', 'outlook.co.il', 'hotmail.co.il', 'live.co.il',\n 'walla.co.il', 'nana.co.il', '012.net.il', 'bezeqint.net', 'zahav.net.il'\n ],\n\n companyNames: [\n 'Elbit Systems', 'Israel Aerospace Industries', 'Rafael Advanced Defense Systems',\n 'Teva Pharmaceutical Industries', 'Check Point Software Technologies',\n 'Nice Systems', 'Amdocs Limited', 'Verint Systems', 'NICE Ltd',\n 'Bank Hapoalim', 'Bank Leumi', 'Israel Discount Bank', 'Bank Mizrahi-Tefahot',\n 'Cellcom Israel', 'Partner Communications', 'Pelephone Communications',\n 'Bezeq The Israeli Telecommunication', 'Hot Telecommunication Systems'\n ],\n\n industries: [\n 'טכנולוגיה', 'פיננסים', 'בריאות', 'חינוך', 'קמעונאות',\n 'ייצור', 'מדיה', 'תקשורת', 'אנרגיה', 'תחבורה',\n 'נדל\"ן', 'ייעוץ', 'מלונאות', 'רכב', 'תעופה'\n ],\n\n catchPhrases: [\n 'חדשנות לעתיד', 'ההצלחה שלך היא העסק שלנו', 'בונים את העתיד יחד',\n 'איכות ואמון', 'מצוינות ומחויבות', 'פתרונות בני קיימא',\n 'יוצרים ערך', 'השותף האמין שלך', 'מובילים את השינוי'\n ]\n};","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const uk_UA: LocaleDefinition = {\n firstNamesMale: [\n 'Oleksandr', 'Dmytro', 'Maxym', 'Andriy', 'Serhiy', 'Oleksiy', 'Vitaliy',\n 'Yuriy', 'Volodymyr', 'Ivan', 'Petro', 'Mykola', 'Roman', 'Ihor', 'Vasyl',\n 'Taras', 'Bohdan', 'Vyacheslav', 'Valeriy', 'Leonid', 'Oleg', 'Viktor',\n 'Anatoliy', 'Mykhaylo', 'Pavlo', 'Hryhoriy', 'Stanislav', 'Eduard', 'Yevhen', 'Artem'\n ],\n firstNamesFemale: [\n 'Olena', 'Nataliya', 'Iryna', 'Tetyana', 'Oksana', 'Svitlana', 'Lyudmyla',\n 'Kateryna', 'Maryana', 'Anna', 'Maria', 'Anastasiya', 'Viktoriya', 'Yuliya',\n 'Olha', 'Nadiya', 'Larysa', 'Halyna', 'Ivanna', 'Roksolana', 'Solomiya',\n 'Lesya', 'Daryna', 'Sofiya', 'Mariya', 'Khrystyna', 'Alina', 'Polina', 'Diana', 'Vlada'\n ],\n lastNames: [\n 'Shevchenko', 'Kovalenko', 'Bondarenko', 'Tkachenko', 'Savchenko',\n 'Kovalchuk', 'Koval', 'Melnyk', 'Shevchuk', 'Boyko', 'Lysenko',\n 'Kravchenko', 'Karpenko', 'Yanenko', 'Oliynyk', 'Andriyenko',\n 'Pavlenko', 'Semenenko', 'Petrenko', 'Marchenko', 'Ivanenko',\n 'Lutsenko', 'Bilenko', 'Hrytsenko', 'Klimenko', 'Vasylchenko',\n 'Hnatyuk', 'Kruk', 'Zubenko', 'Moroz', 'Ponomarenko', 'Rudenko'\n ],\n streets: [\n 'Khreshchatyk Street', 'Shevchenko Boulevard', 'Franko Street',\n 'Hrushevskoho Street', 'Velyka Vasylkivska', 'Peremohy Avenue',\n 'Leva Tolstoho Street', 'Saksahanskoho Street', 'Vladimirska Street',\n 'Yaroslaviv Val', 'Lva Tolstoho', 'Kreshatik', 'Maidan Nezalezhnosti',\n 'Sofiyska Street', 'Volodymyrska Street', 'Pechersk Street', 'Podil Street'\n ],\n cities: [\n 'Kyiv', 'Kharkiv', 'Odesa', 'Dnipro', 'Donetsk', 'Zaporizhzhia',\n 'Lviv', 'Kryvyi Rih', 'Mykolaiv', 'Mariupol', 'Luhansk', 'Vinnytsia',\n 'Simferopol', 'Kherson', 'Poltava', 'Chernihiv', 'Cherkasy', 'Sumy',\n 'Zhytomyr', 'Khmelnytskyi', 'Rivne', 'Ivano-Frankivsk', 'Ternopil',\n 'Lutsk', 'Uzhhorod', 'Chernivtsi', 'Kirovohrad', 'Sevastopol'\n ],\n states: [\n 'Kyiv Oblast', 'Kharkiv Oblast', 'Odesa Oblast', 'Dnipropetrovsk Oblast',\n 'Donetsk Oblast', 'Zaporizhzhia Oblast', 'Lviv Oblast', 'Mykolaiv Oblast',\n 'Vinnytsia Oblast', 'Poltava Oblast', 'Chernihiv Oblast', 'Cherkasy Oblast',\n 'Sumy Oblast', 'Zhytomyr Oblast', 'Khmelnytskyi Oblast', 'Rivne Oblast',\n 'Ivano-Frankivsk Oblast', 'Ternopil Oblast', 'Lutsk Oblast', 'Zakarpattia Oblast',\n 'Chernivtsi Oblast', 'Kirovohrad Oblast', 'Kherson Oblast', 'Luhansk Oblast'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer',\n 'Operations Manager', 'Business Analyst', 'Product Manager', 'System Administrator',\n 'Quality Assurance Engineer', 'Technical Writer', 'Database Administrator',\n 'Network Engineer', 'DevOps Engineer', 'UX Designer', 'Content Manager'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const building = Random.int(1, 200);\n const apartment = Random.int(1, 300);\n return `${street} ${building}, apt. ${apartment}, ${city}, ${state}, ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const sk_SK: LocaleDefinition = {\n firstNamesMale: [\n 'Jakub', 'Martin', 'Matúš', 'Lukáš', 'Michal', 'Peter', 'Ján', 'Pavol',\n 'Stanislav', 'Tomáš', 'Juraj', 'Filip', 'Ondrej', 'Vladimír', 'Marián',\n 'Jozef', 'Miroslav', 'Róbert', 'Dušan', 'Milan', 'Richard', 'Patrik',\n 'Erik', 'Daniel', 'Samuel', 'Alex', 'Dominik', 'Kristián', 'Sebastián', 'Adam'\n ],\n firstNamesFemale: [\n 'Mária', 'Jana', 'Eva', 'Anna', 'Zuzana', 'Katarína', 'Natália', 'Lucia',\n 'Martina', 'Petra', 'Veronika', 'Simona', 'Andrea', 'Monika', 'Nikola',\n 'Dominika', 'Kristína', 'Michaela', 'Patrícia', 'Laura', 'Sofia', 'Emma',\n 'Nina', 'Timea', 'Viktória', 'Adriana', 'Daniela', 'Jana', 'Renáta', 'Tatiana'\n ],\n lastNames: [\n 'Horváth', 'Kováč', 'Varga', 'Tóth', 'Balogh', 'Nagy', 'Szabó', 'Molnár',\n 'Balog', 'Lakatoš', 'Vass', 'Rigó', 'Gál', 'Farkas', 'Kiss', 'Németh',\n 'Mészáros', 'Takács', 'Szűcs', 'Kováčová', 'Horváthová', 'Vargová',\n 'Tóthová', 'Baloghová', 'Nagyová', 'Szabóová', 'Molnárová', 'Balogová',\n 'Lakatošová', 'Vassová', 'Rigóová', 'Gálová', 'Farkasová', 'Kissóvá'\n ],\n streets: [\n 'Hlavná ulica', 'Dunajská ulica', 'Obchodná ulica', 'Štefánikova ulica',\n 'Kollárova ulica', 'Hviezdoslavovo námestie', 'SNP ulica', 'Partizánska ulica',\n 'Mierová ulica', 'Slobody ulica', 'Nová ulica', 'Záhradná ulica', 'Lipová ulica',\n 'Javorová ulica', 'Brežská ulica', 'Smreková ulica', 'Borová ulica', 'Jeseniová ulica'\n ],\n cities: [\n 'Bratislava', 'Košice', 'Prešov', 'Žilina', 'Banská Bystrica', 'Nitra',\n 'Trnava', 'Trenčín', 'Martin', 'Poprad', 'Prievidza', 'Zvolen', 'Považská Bystrica',\n 'Michalovce', 'Spišská Nová Ves', 'Komárno', 'Levice', 'Bardejov', 'Liptovský Mikuláš',\n 'Ružomberok', 'Piešťany', 'Topoľčany', 'Humenné', 'Senica', 'Dunajská Streda'\n ],\n states: [\n 'Bratislavský kraj', 'Trnavský kraj', 'Trenčiansky kraj', 'Nitriansky kraj',\n 'Žilinský kraj', 'Banskobystrický kraj', 'Prešovský kraj', 'Košický kraj'\n ],\n zipCodePattern: '### ##',\n jobTitles: [\n 'Softvérový inžinier', 'Projektový manažér', 'Dátový analytik', 'Marketingový manažér',\n 'Obchodný zástupca', 'Účtovník', 'HR manažér', 'Dizajnér', 'Prevádzkový manažér',\n 'Business analytik', 'Produktový manažér', 'System administrátor', 'QA inžinier',\n 'Technický spisovateľ', 'Databázový administrátor', 'Sieťový inžinier', 'DevOps inžinier'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Predaj', 'Ľudské zdroje', 'Financie',\n 'Prevádzka', 'Zákaznícky servis', 'IT', 'Vývoj a výskum',\n 'Právne oddelenie', 'Product Management', 'Design', 'Kvalita', 'Administratíva'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 500);\n return `${street} ${number}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n const part1 = String(Random.int(100, 999));\n const part2 = String(Random.int(10, 99));\n return `${part1} ${part2}`;\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const hr_HR: LocaleDefinition = {\n firstNamesMale: [\n 'Ivan', 'Marko', 'Luka', 'Josip', 'Matej', 'Filip', 'Petar', 'Ante',\n 'Tomislav', 'Stjepan', 'Nikola', 'David', 'Karlo', 'Vedran', 'Igor',\n 'Goran', 'Zoran', 'Damir', 'Mario', 'Dario', 'Robert', 'Andrej',\n 'Miran', 'Bruno', 'Ivica', 'Davor', 'Krešimir', 'Domagoj', 'Lovro', 'Roko'\n ],\n firstNamesFemale: [\n 'Ana', 'Marija', 'Ivana', 'Maja', 'Petra', 'Lucija', 'Katarina', 'Ema',\n 'Sara', 'Lara', 'Nina', 'Lea', 'Dora', 'Laura', 'Tina', 'Martina',\n 'Sanja', 'Vesna', 'Dragana', 'Biljana', 'Snježana', 'Dubravka', 'Jasna',\n 'Marina', 'Irena', 'Vedrana', 'Andrea', 'Monika', 'Kristina', 'Antonija'\n ],\n lastNames: [\n 'Horvat', 'Kovačević', 'Babić', 'Petrović', 'Jurić', 'Marković',\n 'Radić', 'Kovač', 'Knežević', 'Savić', 'Horvat', 'Galić', 'Bilić',\n 'Tomić', 'Vuković', 'Pavić', 'Lončar', 'Matić', 'Vidović', 'Jurić',\n 'Bošnjak', 'Dedić', 'Kralj', 'Bencić', 'Perić', 'Radoš', 'Šimić',\n 'Lukić', 'Varga', 'Nikolić', 'Stojanović', 'Mihalić', 'Rajić', 'Župan'\n ],\n streets: [\n 'Ilica', 'Varšavska ulica', 'Tkalčićeva ulica', 'Preradovićeva ulica',\n 'Gajeva ulica', 'Masarykova ulica', 'Kneza Mislava', 'Jurišićeva ulica',\n 'Hebrangova ulica', 'Strossmayerovo šetalište', 'Zrinjevac', 'Frankopanska ulica',\n 'Palmotićeva ulica', 'Gundulićeva ulica', 'Praška ulica', 'Draškovićeva ulica',\n 'Vlaška ulica', 'Maksimirska ulica', 'Savska ulica', 'Vukovarska ulica'\n ],\n cities: [\n 'Zagreb', 'Split', 'Rijeka', 'Osijek', 'Zadar', 'Pula', 'Slavonski Brod',\n 'Karlovac', 'Varaždin', 'Šibenik', 'Sisak', 'Velika Gorica', 'Vinkovci',\n 'Dubrovnik', 'Bjelovar', 'Virovitica', 'Požega', 'Koprivnica', 'Čakovec',\n 'Krapina', 'Gospić', 'Pazin', 'Rovinj', 'Makarska', 'Trogir', 'Korčula'\n ],\n states: [\n 'Zagrebačka županija', 'Splitsko-dalmatinska županija', 'Primorsko-goranska županija',\n 'Osječko-baranjska županija', 'Zadarska županija', 'Istarska županija',\n 'Brodsko-posavska županija', 'Karlovačka županija', 'Varaždinska županija',\n 'Šibensko-kninska županija', 'Sisačko-moslavačka županija', 'Vukovarsko-srijemska županija',\n 'Dubrovačko-neretvanska županija', 'Bjelovarsko-bilogorska županija', 'Virovitičko-podravska županija',\n 'Požeško-slavonska županija', 'Koprivničko-križevačka županija', 'Međimurska županija',\n 'Krapinsko-zagorska županija', 'Ličko-senjska županija'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Softverski inženjer', 'Voditelj projekata', 'Analitičar podataka', 'Marketing menadžer',\n 'Prodajni predstavnik', 'Računovođa', 'HR menadžer', 'Dizajner', 'Operativni menadžer',\n 'Poslovni analitičar', 'Produkt menadžer', 'Sistem administrator', 'QA inženjer',\n 'Tehnički pisac', 'Administrator baza podataka', 'Mrežni inženjer', 'DevOps inženjer'\n ],\n departments: [\n 'Inženjering', 'Marketing', 'Prodaja', 'Ljudski resursi', 'Financije',\n 'Operacije', 'Korisnička podrška', 'IT', 'Istraživanje i razvoj',\n 'Pravno', 'Upravljanje proizvodima', 'Dizajn', 'Kontrola kvalitete', 'Administracija'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n return `${street} ${number}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const rs_RS: LocaleDefinition = {\n firstNamesMale: [\n 'Marko', 'Nikola', 'Aleksandar', 'Stefan', 'Filip', 'Luka', 'Nemanja', 'Viktor',\n 'Uroš', 'Miloš', 'Vladimir', 'Mihailo', 'Petar', 'Jovan', 'Andrej', 'Ilija',\n 'Lazar', 'Vasilije', 'Pavle', 'Đorđe', 'Bogdan', 'Sava', 'Vojin', 'Rastko',\n 'Dragan', 'Zoran', 'Goran', 'Predrag', 'Dejan', 'Saša', 'Nebojša', 'Slobodan'\n ],\n firstNamesFemale: [\n 'Marija', 'Ana', 'Jelena', 'Milica', 'Sofija', 'Nina', 'Maja', 'Ivana',\n 'Teodora', 'Tijana', 'Bojana', 'Snežana', 'Vesna', 'Dragana', 'Biljana',\n 'Sanja', 'Marina', 'Irena', 'Katarina', 'Aleksandra', 'Jasmina', 'Natasha',\n 'Olivera', 'Sladjana', 'Zorica', 'Radmila', 'Ljubica', 'Gordana', 'Mirjana', 'Vera'\n ],\n lastNames: [\n 'Jovanović', 'Petrović', 'Nikolić', 'Stojanović', 'Đorđević', 'Stanković',\n 'Pavlović', 'Marković', 'Ilić', 'Milošević', 'Popović', 'Lukić', 'Simić',\n 'Živković', 'Mitić', 'Vasić', 'Krstić', 'Jović', 'Savić', 'Perić',\n 'Rajić', 'Mihailović', 'Lazarević', 'Veličković', 'Stefanović', 'Todorović',\n 'Nedeljković', 'Miljković', 'Bošković', 'Gajić', 'Ristić', 'Kostić', 'Tomić'\n ],\n streets: [\n 'Knez Mihailova', 'Terazije', 'Kralja Milana', 'Bulevar kralja Aleksandra',\n 'Nemanjina ulica', 'Kraljice Natalije', 'Makedonska ulica', 'Takovska ulica',\n 'Cara Lazara', 'Svetogorska ulica', 'Hilandarska ulica', 'Džordža Vašingtona',\n 'Bulevar umetnosti', 'Gandijeva ulica', 'Jurija Gagarina', 'Antifašističke borbe',\n 'Vojvode Putnika', 'Bulevar Zorana Đinđića', 'Autoput za Zagreb', 'Resavska ulica'\n ],\n cities: [\n 'Beograd', 'Novi Sad', 'Niš', 'Kragujevac', 'Subotica', 'Zrenjanin', 'Pančevo',\n 'Čačak', 'Kraljevo', 'Smederevo', 'Leskovac', 'Užice', 'Valjevo', 'Šabac',\n 'Vranje', 'Kruševac', 'Sombor', 'Požarevac', 'Pirot', 'Zaječar', 'Kikinda',\n 'Sremska Mitrovica', 'Jagodina', 'Vršac', 'Bor', 'Gornji Milanovac', 'Negotin'\n ],\n states: [\n 'Beograd', 'Vojvodina', 'Šumadija i Zapadna Srbija', 'Južna i Istočna Srbija',\n 'Autonomna Pokrajina Vojvodina', 'Autonomna Pokrajina Kosovo i Metohija'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Softverski inženjer', 'Menadžer projekata', 'Analitičar podataka', 'Marketing menadžer',\n 'Prodajni predstavnik', 'Računovođa', 'HR menadžer', 'Dizajner', 'Operativni menadžer',\n 'Poslovni analitičar', 'Produkt menadžer', 'Sistem administrator', 'QA inženjer',\n 'Tehnički pisac', 'Administrator baza podataka', 'Mrežni inženjer', 'DevOps inženjer'\n ],\n departments: [\n 'Inženjering', 'Marketing', 'Prodaja', 'Ljudski resursi', 'Finansije',\n 'Operacije', 'Korisnička podrška', 'IT', 'Istraživanje i razvoj',\n 'Pravno', 'Upravljanje proizvodima', 'Dizajn', 'Kontrola kvalitete', 'Administracija'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n const apartment = Random.int(1, 100);\n return `${street} ${number}/${apartment}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(11000, 38999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const lt_LT: LocaleDefinition = {\n firstNamesMale: [\n 'Jonas', 'Kazimieras', 'Antanas', 'Juozas', 'Petras', 'Aleksandras', 'Stasys',\n 'Mykolas', 'Andrius', 'Tomas', 'Mindaugas', 'Gintaras', 'Vytautas', 'Algirdas',\n 'Darius', 'Rolandas', 'Saulius', 'Marius', 'Lukas', 'Domantas', 'Nojus',\n 'Lukas', 'Matas', 'Tomas', 'Paulius', 'Simonas', 'Edgaras', 'Artūras', 'Žydrūnas', 'Arvydas'\n ],\n firstNamesFemale: [\n 'Ona', 'Marija', 'Janina', 'Elena', 'Aldona', 'Genovaitė', 'Danguolė',\n 'Rasa', 'Jūratė', 'Aušra', 'Vida', 'Laima', 'Giedrė', 'Nijolė', 'Birutė',\n 'Edita', 'Inga', 'Laura', 'Greta', 'Emilija', 'Sofija', 'Elzbieta',\n 'Kotryna', 'Ugnė', 'Rugilė', 'Gabija', 'Liepa', 'Aistė', 'Monika', 'Kristina'\n ],\n lastNames: [\n 'Kazlauskas', 'Jankauskas', 'Petrauskas', 'Stankevičius', 'Vasiliauskas',\n 'Žukauskas', 'Butkus', 'Paulauskas', 'Urbonas', 'Grigas', 'Rimkus',\n 'Stonkus', 'Jasinskas', 'Kalinauskas', 'Karpavičius', 'Laurinavičius',\n 'Macijauskas', 'Navickas', 'Orlauskas', 'Pocius', 'Ragulskis', 'Sakalauskas',\n 'Tamulis', 'Valančius', 'Zdanavičius', 'Adomaitis', 'Baltakis', 'Dambrauskas'\n ],\n streets: [\n 'Gedimino prospektas', 'Pilies gatvė', 'Didžioji gatvė', 'Vokiečių gatvė',\n 'Laisvės alėja', 'Savanorių prospektas', 'Kalvarijų gatvė', 'Žirmūnų gatvė',\n 'Ukmergės gatvė', 'Ozo gatvė', 'Konstitucijos prospektas', 'Verkių gatvė',\n 'Antakalnio gatvė', 'Tuskulėnų gatvė', 'Širvintų gatvė', 'Gynėjų gatvė'\n ],\n cities: [\n 'Vilnius', 'Kaunas', 'Klaipėda', 'Šiauliai', 'Panevėžys', 'Alytus',\n 'Marijampolė', 'Mažeikiai', 'Jonava', 'Utena', 'Kėdainiai', 'Telšiai',\n 'Visaginas', 'Tauragė', 'Ukmergė', 'Plungė', 'Kretinga', 'Šilutė',\n 'Radviliškis', 'Palanga', 'Gargždai', 'Druskininkai', 'Rokiškis', 'Biržai'\n ],\n states: [\n 'Vilniaus apskritis', 'Kauno apskritis', 'Klaipėdos apskritis', 'Šiaulių apskritis',\n 'Panevėžio apskritis', 'Alytaus apskritis', 'Marijampolės apskritis',\n 'Tauragės apskritis', 'Telšių apskritis', 'Utenos apskritis'\n ],\n zipCodePattern: 'LT-#####',\n jobTitles: [\n 'Programuotojas', 'Projektų vadovas', 'Duomenų analitikas', 'Rinkodaros vadovas',\n 'Pardavimų atstovas', 'Buhalteris', 'Žmogiškųjų išteklių vadovas', 'Dizaineris',\n 'Operacijų vadovas', 'Verslo analitikas', 'Produkto vadovas', 'Sistemų administratorius',\n 'Kokybės inžinierius', 'Techninis rašytojas', 'Duomenų bazių administratorius',\n 'Tinklų inžinierius', 'DevOps inžinierius', 'UX dizaineris', 'Turinio valdytojas'\n ],\n departments: [\n 'Inžinerija', 'Rinkodara', 'Pardavimai', 'Žmogiškieji ištekliai', 'Finansai',\n 'Operacijos', 'Klientų aptarnavimas', 'IT', 'Tyrimai ir plėtra',\n 'Teisinis', 'Produktų valdymas', 'Dizainas', 'Kokybės užtikrinimas', 'Administracija'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 100);\n const apartment = Random.int(1, 50);\n return `${street} ${number}-${apartment}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return `LT-${String(Random.int(10000, 99999))}`;\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const lv_LV: LocaleDefinition = {\n firstNamesMale: [\n 'Jānis', 'Andris', 'Māris', 'Ivars', 'Guntis', 'Juris', 'Edgars', 'Artūrs',\n 'Uldis', 'Ēriks', 'Valdis', 'Aigars', 'Normunds', 'Sandis', 'Kaspars',\n 'Renārs', 'Oskars', 'Kristaps', 'Toms', 'Dāvis', 'Rihards', 'Aleksandrs',\n 'Sergejs', 'Dmitrijs', 'Aleksejs', 'Viktors', 'Pēteris', 'Pāvils', 'Jēkabs', 'Miķelis'\n ],\n firstNamesFemale: [\n 'Līga', 'Inese', 'Ilze', 'Dace', 'Sandra', 'Inga', 'Zane', 'Laima',\n 'Vita', 'Ieva', 'Kristīne', 'Agnese', 'Maija', 'Santa', 'Elīna',\n 'Laura', 'Anna', 'Marija', 'Jekaterina', 'Natālija', 'Tatjana', 'Jeļena',\n 'Olga', 'Svetlana', 'Irina', 'Aija', 'Baiba', 'Solvita', 'Guntra', 'Māra'\n ],\n lastNames: [\n 'Bērziņš', 'Kalniņš', 'Ozoliņš', 'Liepiņš', 'Vanags', 'Jansons', 'Karlsons',\n 'Andersons', 'Lejnieks', 'Krauze', 'Osis', 'Siliņš', 'Vītoliņš', 'Āboliņš',\n 'Lācis', 'Caune', 'Zariņš', 'Birziņš', 'Eglītis', 'Kļaviņš', 'Muižnieks',\n 'Sproģis', 'Šmits', 'Voss', 'Freimanis', 'Zariņš', 'Bērziņa', 'Kalniņa', 'Ozoliņa'\n ],\n streets: [\n 'Brīvības bulvāris', 'Elizabetes iela', 'Krasta iela', 'Daugavgrīvas iela',\n 'Maskavas iela', 'Dzirnavu iela', 'Tērbatas iela', 'Miera iela',\n 'Valdemāra iela', 'Blaumaņa iela', 'Stabu iela', 'Lāčplēša iela',\n 'Gogoļa iela', 'Prāgas iela', 'Skanstes iela', 'Gustava Zemgala gatve'\n ],\n cities: [\n 'Rīga', 'Daugavpils', 'Liepāja', 'Jelgava', 'Jūrmala', 'Ventspils',\n 'Rēzekne', 'Valmiera', 'Jēkabpils', 'Ogre', 'Tukums', 'Salaspils',\n 'Cēsis', 'Olaine', 'Kuldīga', 'Saldus', 'Talsi', 'Dobele',\n 'Sigulda', 'Ikšķile', 'Bauska', 'Limbazi', 'Aizkraukle', 'Gulbene'\n ],\n states: [\n 'Rīga', 'Vidzeme', 'Latgale', 'Kurzeme', 'Zemgale', 'Pierīga'\n ],\n zipCodePattern: 'LV-####',\n jobTitles: [\n 'Programmatūras inženieris', 'Projektu vadītājs', 'Datu analītiķis', 'Mārketinga vadītājs',\n 'Pārdošanas pārstāvis', 'Grāmatvedis', 'HR vadītājs', 'Dizainers', 'Operāciju vadītājs',\n 'Biznesa analītiķis', 'Produktu vadītājs', 'Sistēmu administrators', 'Kvalitātes inženieris',\n 'Tehniskais rakstnieks', 'Datubāzu administrators', 'Tīklu inženieris', 'DevOps inženieris'\n ],\n departments: [\n 'Inženierija', 'Mārketings', 'Pārdošana', 'Cilvēkresursi', 'Finanses',\n 'Operācijas', 'Klientu apkalpošana', 'IT', 'Pētniecība un attīstība',\n 'Juridiskais', 'Produktu vadība', 'Dizains', 'Kvalitātes nodrošinājums', 'Administrācija'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n const apartment = Random.int(1, 100);\n return `${street} ${number}-${apartment}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return `LV-${String(Random.int(1000, 9999))}`;\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const et_EE: LocaleDefinition = {\n firstNamesMale: [\n 'Martin', 'Andrei', 'Sergei', 'Dmitri', 'Alexander', 'Igor', 'Jüri', 'Toomas',\n 'Tarmo', 'Marek', 'Rainer', 'Kristjan', 'Marko', 'Andres', 'Peeter',\n 'Kalle', 'Indrek', 'Matti', 'Urmas', 'Erik', 'Oliver', 'Markus', 'Daniel',\n 'Kevin', 'Joonas', 'Sander', 'Rasmus', 'Henri', 'Richard', 'Robert'\n ],\n firstNamesFemale: [\n 'Jelena', 'Anna', 'Natalja', 'Irina', 'Katrin', 'Marina', 'Olga', 'Svetlana',\n 'Tatjana', 'Nadežda', 'Galina', 'Ljudmila', 'Ene', 'Sirje', 'Piret',\n 'Kadri', 'Kristiina', 'Liina', 'Mari', 'Eva', 'Laura', 'Karin', 'Signe',\n 'Helena', 'Victoria', 'Emma', 'Sofia', 'Elisabeth', 'Maria', 'Anastasia'\n ],\n lastNames: [\n 'Tamm', 'Kask', 'Mägi', 'Koppel', 'Aas', 'Sepp', 'Kuznetsov', 'Ivanov',\n 'Smirnov', 'Toom', 'Lepik', 'Kivi', 'Mets', 'Lill', 'Oja', 'Saar',\n 'Volkov', 'Sokolov', 'Kruus', 'Rand', 'Kütt', 'Mänd', 'Puu', 'Kallas',\n 'Hein', 'Karu', 'Ilves', 'Kalda', 'Laur', 'Pärn', 'Roos', 'Tamme'\n ],\n streets: [\n 'Narva maantee', 'Pärnu maantee', 'Tartu maantee', 'Viru tänav', 'Vabaduse puiestee',\n 'Estonia puiestee', 'Liivalaia tänav', 'Sakala tänav', 'Endla tänav', 'Paldiski maantee',\n 'Suur-Ameerika tänav', 'Telliskivi tänav', 'Kopli tänav', 'Sõle tänav', 'Rannamäe tee',\n 'Kloostrimetsa tee', 'Peterburi tee', 'Lasnamäe tänav', 'Mustamäe tee', 'Ehitajate tee'\n ],\n cities: [\n 'Tallinn', 'Tartu', 'Narva', 'Pärnu', 'Kohtla-Järve', 'Viljandi', 'Rakvere',\n 'Maardu', 'Sillamäe', 'Kuressaare', 'Võru', 'Valga', 'Haapsalu', 'Jõhvi',\n 'Paide', 'Keila', 'Kiviõli', 'Tapa', 'Põlva', 'Türi', 'Elva', 'Rapla'\n ],\n states: [\n 'Harjumaa', 'Tartumaa', 'Ida-Virumaa', 'Pärnumaa', 'Lääne-Virumaa',\n 'Viljandimaa', 'Võrumaa', 'Saaremaa', 'Hiiumaa', 'Järvamaa',\n 'Raplamaa', 'Valgamaa', 'Põlvamaa', 'Läänemaa', 'Jõgevamaa'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Tarkvaraarendaja', 'Projektijuht', 'Andmeanalüütik', 'Turundusjuht',\n 'Müügiesindaja', 'Raamatupidaja', 'Personalijuht', 'Disainer', 'Tegevusjuht',\n 'Ärianalüütik', 'Tootejuht', 'Süsteemiadministraator', 'Kvaliteediinsener',\n 'Tehniline kirjutaja', 'Andmebaasi administraator', 'Võrguinsener', 'DevOps insener'\n ],\n departments: [\n 'Arendus', 'Turundus', 'Müük', 'Personal', 'Rahandus', 'Operatsioonid',\n 'Klienditugi', 'IT', 'Teadus ja arendus', 'Juriidiline', 'Tootejuhtimine',\n 'Disain', 'Kvaliteedikontroll', 'Administratsioon'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 100);\n const apartment = Random.int(1, 50);\n return `${street} ${number}-${apartment}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const bg_BG: LocaleDefinition = {\n firstNamesMale: [\n 'Georgi', 'Dimitar', 'Hristo', 'Stoyan', 'Ivan', 'Petar', 'Todor', 'Nikolay',\n 'Aleksandar', 'Andrey', 'Kiril', 'Borislav', 'Valentin', 'Plamen', 'Krasimir',\n 'Miroslav', 'Svetoslav', 'Vladimir', 'Borimir', 'Radoslav', 'Kaloyan', 'Martin',\n 'Viktor', 'Daniel', 'Emil', 'Rumen', 'Zdravko', 'Lyubomir', 'Anton', 'Stanislav'\n ],\n firstNamesFemale: [\n 'Maria', 'Elena', 'Yordanka', 'Svetlana', 'Galina', 'Diana', 'Tatiana', 'Nadezhda',\n 'Lyudmila', 'Veselina', 'Radost', 'Milena', 'Petya', 'Zlatka', 'Silvia', 'Maya',\n 'Boryana', 'Desislava', 'Gabriela', 'Ivelina', 'Teodora', 'Aleksandra', 'Viktoria',\n 'Simona', 'Denitsa', 'Kalina', 'Bilyana', 'Ina', 'Liliya', 'Nikolina'\n ],\n lastNames: [\n 'Ivanov', 'Georgiev', 'Dimitrov', 'Petrov', 'Stoyanov', 'Nikolov', 'Todorov',\n 'Hristov', 'Alexandrov', 'Andreev', 'Kirilov', 'Borisov', 'Valentinov', 'Plamenov',\n 'Krasimirov', 'Miroslavov', 'Svetoslavov', 'Vladimirov', 'Borimirov', 'Radoslavov',\n 'Kaloyanov', 'Martinov', 'Viktorov', 'Danielov', 'Emilov', 'Rumenov', 'Zdravkov'\n ],\n streets: [\n 'Boulevard Vitosha', 'Boulevard Tsar Osvoboditel', 'Boulevard Dondukov',\n 'Boulevard Hristo Botev', 'Boulevard Slivnitsa', 'Boulevard Maria Luiza',\n 'Boulevard Knyaginya Maria Luiza', 'Boulevard Todor Aleksandrov', 'Boulevard Bulgaria',\n 'Boulevard Cherni Vrah', 'Boulevard Nikola Vaptsarov', 'Boulevard Peyo Yavorov'\n ],\n cities: [\n 'Sofia', 'Plovdiv', 'Varna', 'Burgas', 'Ruse', 'Stara Zagora', 'Pleven',\n 'Sliven', 'Dobrich', 'Shumen', 'Pernik', 'Haskovo', 'Yambol', 'Pazardzhik',\n 'Blagoevgrad', 'Veliko Tarnovo', 'Vratsa', 'Gabrovo', 'Asenovgrad', 'Vidin',\n 'Kazanlak', 'Kyustendil', 'Montana', 'Lovech', 'Silistra', 'Targovishte'\n ],\n states: [\n 'Sofia-Grad', 'Plovdiv', 'Varna', 'Burgas', 'Ruse', 'Stara Zagora', 'Pleven',\n 'Sliven', 'Dobrich', 'Shumen', 'Pernik', 'Haskovo', 'Yambol', 'Pazardzhik',\n 'Blagoevgrad', 'Veliko Tarnovo', 'Vratsa', 'Gabrovo', 'Kardzhali', 'Kyustendil',\n 'Lovech', 'Montana', 'Pazardzhik', 'Razgrad', 'Ruse', 'Silistra', 'Sliven',\n 'Smolyan', 'Sofia', 'Stara Zagora', 'Targovishte', 'Varna', 'Veliko Tarnovo', 'Vidin', 'Vratsa', 'Yambol'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Софтуерен инженер', 'Мениджър проекти', 'Анализатор данни', 'Маркетинг мениджър',\n 'Търговски представител', 'Счетоводител', 'HR мениджър', 'Дизайнер',\n 'Оперативен мениджър', 'Бизнес анализатор', 'Мениджър продукти', 'Системен администратор',\n 'Инженер качество', 'Технически писател', 'Администратор бази данни',\n 'Мрежови инженер', 'DevOps инженер', 'UX дизайнер', 'Мениджър съдържание'\n ],\n departments: [\n 'Инженеринг', 'Маркетинг', 'Продажби', 'Човешки ресурси', 'Финанси',\n 'Операции', 'Клиентско обслужване', 'IT', 'Научни изследвания',\n 'Правен', 'Управление на продукти', 'Дизайн', 'Контрол на качеството', 'Администрация'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 200);\n const entrance = Random.pick(['A', 'B', 'V', 'G']);\n const floor = Random.int(1, 10);\n const apartment = Random.int(1, 50);\n return `${street} ${number}, вх. ${entrance}, ет. ${floor}, ап. ${apartment}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const is_IS: LocaleDefinition = {\n firstNamesMale: [\n 'Jón', 'Sigurður', 'Guðmundur', 'Björn', 'Kristján', 'Magnús', 'Einar', 'Pétur',\n 'Ari', 'Gunnar', 'Ragnar', 'Stefán', 'Tómas', 'Ólafur', 'Eggert', 'Hannes',\n 'Hilmar', 'Indriði', 'Karl', 'Leifur', 'Páll', 'Sveinn', 'Valdimar', 'Árni',\n 'Benedikt', 'Daníel', 'Emil', 'Felix', 'Gabriel', 'Hugo', 'Isak', 'Jonas'\n ],\n firstNamesFemale: [\n 'Guðrún', 'Anna', 'Kristín', 'Margrét', 'Sigríður', 'Ingibjörg', 'Helga', 'Sigrún',\n 'Björk', 'Ásta', 'Hrefna', 'Katrín', 'Lilja', 'María', 'Ragnheiður', 'Sólveig',\n 'Unnur', 'Valgerður', 'Þórdís', 'Þuríður', 'Agnes', 'Dagný', 'Elín', 'Friðrikka',\n 'Guðbjörg', 'Hallgerður', 'Iris', 'Jóhanna', 'Kolbrún', ' Laufey', 'Nanna', 'Oddný'\n ],\n lastNames: [\n 'Jónsson', 'Sigurðsson', 'Guðmundsson', 'Björnsson', 'Kristjánsson', 'Magnússon',\n 'Einarsson', 'Pétursson', 'Arason', 'Gunnarsson', 'Ragnarsson', 'Stefánsson',\n 'Tómasson', 'Ólafsson', 'Eggertsson', 'Hannesson', 'Hilmarsson', 'Indriðason',\n 'Karlsson', 'Leifsson', 'Pálsson', 'Sveinsson', 'Valdimarsson', 'Árnason',\n 'Benediktsson', 'Daníelsson', 'Emilsson', 'Felixsson', 'Gabrielsson', 'Húgósson'\n ],\n streets: [\n 'Laugavegur', 'Skólavörðustígur', 'Bankastræti', 'Austurstræti', 'Hafnarstræti',\n 'Borgartún', 'Skaftahlíð', 'Háaleitisbraut', 'Bústaðavegur', 'Suðurlandsbraut',\n 'Kringlan', 'Tryggvagata', 'Geirsgata', 'Hverfisgata', 'Bergstaðastræti',\n 'Frakkastígur', 'Hverfisgata', 'Kalkofnsvegur', 'Rauðarárstígur', 'Vesturgata'\n ],\n cities: [\n 'Reykjavík', 'Kópavogur', 'Hafnarfjörður', 'Akureyri', 'Reykjanesbær', 'Garðabær',\n 'Mosfellsbær', 'Árborg', 'Akranes', 'Fjarðabyggð', 'Ísafjarðarbær', 'Vestmannaeyjar',\n 'Grindavík', 'Selfoss', 'Seltjarnarnes', 'Húsavík', 'Egilsstaðir', 'Borgarnes',\n 'Keflavík', 'Njarðvík', 'Sauðárkrókur', 'Dalvík', 'Ólafsvík', 'Stykkishólmur'\n ],\n states: [\n 'Höfuðborgarsvæðið', 'Suðurnes', 'Vesturland', 'Vestfirðir', 'Norðurland Vestra',\n 'Norðurland Eystra', 'Austurland', 'Suðurland'\n ],\n zipCodePattern: '###',\n jobTitles: [\n 'Hugbúnaðarverkfræðingur', 'Verkefnastjóri', 'Gagnagreinandi', 'Markaðsstjóri',\n 'Sölufulltrúi', 'Bókari', 'Mannauðsstjóri', 'Hönnuður', 'Reksturstjóri',\n 'Viðskiptagreinandi', 'Vörustjóri', 'Kerfisstjóri', 'Gæðaverkfræðingur',\n 'Tækniritstjóri', 'Gagnagrunnsstjóri', 'Netverkfræðingur', 'DevOps verkfræðingur'\n ],\n departments: [\n 'Verkfræði', 'Markaður', 'Sala', 'Mannauður', 'Fjármál', 'Rekstur',\n 'Þjónusta', 'Upplýsingatækni', 'Rannsóknir og þróun', 'Lögfræði',\n 'Vörustjórnun', 'Hönnun', 'Gæðastjórnun', 'Stjórnun'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 100);\n const apartment = Random.int(1, 50);\n return `${street} ${number}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(101, 999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_NG: LocaleDefinition = {\n firstNamesMale: [\n 'Chukwudi', 'Oluwaseun', 'Adebayo', 'Ifeanyi', 'Nnamdi', 'Kemi', 'Tunde',\n 'Emeka', 'Chinedu', 'Olumide', 'Babatunde', 'Folake', 'Wale', 'Akin',\n 'Chioma', 'Obinna', 'Chijioke', 'Ngozi', 'Ibrahim', 'Musa', 'Yusuf',\n 'Mohammed', 'Ahmed', 'Abubakar', 'Sani', 'Godwin', 'Chukwuemeka', 'Kelechi'\n ],\n firstNamesFemale: [\n 'Adunni', 'Morenike', 'Chioma', 'Nneka', 'Amara', 'Olufunke', 'Bimpe',\n 'Folashade', 'Yetunde', 'Ibukun', 'Omolara', 'Adebisi', 'Titilayo', 'Funmilayo',\n 'Chidinma', 'Kamsi', 'Ngozi', 'Adaeze', 'Obiageli', 'Chiamaka', 'Aisha',\n 'Fatima', 'Zainab', 'Khadijah', 'Hauwa', 'Blessing', 'Grace', 'Joy', 'Faith'\n ],\n lastNames: [\n 'Okafor', 'Adeyemi', 'Okonkwo', 'Ogunleye', 'Balogun', 'Ibrahim', 'Mohammed',\n 'Akinwale', 'Eze', 'Nwosu', 'Okoro', 'Adebayo', 'Oladipo', 'Fasasi',\n 'Ogunbiyi', 'Adeleke', 'Olowu', 'Ajayi', 'Kolawole', 'Oyelami', 'Bello',\n 'Yakubu', 'Danjuma', 'Okon', 'Bassey', 'Effiong', 'Udo', 'Obi', 'Nnaji'\n ],\n streets: [\n 'Adetokunbo Ademola Street', 'Herbert Macaulay Way', 'Ahmadu Bello Way',\n 'Obafemi Awolowo Way', 'Ikorodu Road', 'Lagos-Abeokuta Expressway',\n 'Allen Avenue', 'Awolowo Road', 'Adeniyi Jones Avenue', 'Isaac John Street',\n 'Adeola Odeku Street', 'Sanusi Fafunwa Street', 'Akin Adesola Street',\n 'Bode Thomas Street', 'Shitta Bey Street', 'Broad Street', 'Marina Road'\n ],\n cities: [\n 'Lagos', 'Kano', 'Ibadan', 'Abuja', 'Port Harcourt', 'Benin City', 'Kaduna',\n 'Maiduguri', 'Zaria', 'Aba', 'Jos', 'Ilorin', 'Oyo', 'Enugu', 'Abeokuta',\n 'Onitsha', 'Warri', 'Sokoto', 'Calabar', 'Uyo', 'Katsina', 'Bauchi',\n 'Akure', 'Osogbo', 'Gombe', 'Damaturu', 'Lafia', 'Minna', 'Yenagoa'\n ],\n states: [\n 'Lagos', 'Kano', 'Oyo', 'Federal Capital Territory', 'Rivers', 'Edo',\n 'Kaduna', 'Borno', 'Katsina', 'Abia', 'Imo', 'Ogun', 'Ondo', 'Osun',\n 'Ekiti', 'Kwara', 'Kogi', 'Benue', 'Nasarawa', 'Plateau', 'Bauchi',\n 'Gombe', 'Taraba', 'Adamawa', 'Sokoto', 'Kebbi', 'Zamfara', 'Jigawa',\n 'Yobe', 'Akwa Ibom', 'Cross River', 'Bayelsa', 'Ebonyi', 'Enugu', 'Anambra'\n ],\n zipCodePattern: '######',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer',\n 'Operations Manager', 'Business Analyst', 'Product Manager', 'System Administrator',\n 'Quality Assurance Engineer', 'Technical Writer', 'Database Administrator',\n 'Network Engineer', 'DevOps Engineer', 'UX Designer', 'Content Manager'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 100);\n return `${number} ${street}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(100001, 999999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_KE: LocaleDefinition = {\n firstNamesMale: [\n 'Kamau', 'Omondi', 'Wanjohi', 'Kimani', 'Njoroge', 'Mwangi', 'Kariuki',\n 'Maina', 'Kipchoge', 'Chebet', 'Sang', 'Koech', 'Rono', 'Cheruiyot',\n 'Mutua', 'Kiptoo', 'Bett', 'Kirui', 'Tanui', 'Chirchir', 'Mohammed',\n 'Ahmed', 'Hassan', 'Ali', 'Omar', 'Ibrahim', 'John', 'Peter', 'David', 'James'\n ],\n firstNamesFemale: [\n 'Wanjiku', 'Achieng', 'Akinyi', 'Nyambura', 'Wambui', 'Njeri', 'Wangari',\n 'Chepkoech', 'Jepkoech', 'Cheptoo', 'Jepchumba', 'Chepngetich', 'Jelagat',\n 'Chemutai', 'Chebet', 'Cherono', 'Kiptoo', 'Bett', 'Auma', 'Adhiambo',\n 'Fatuma', 'Aisha', 'Zainab', 'Mary', 'Jane', 'Grace', 'Ruth', 'Esther', 'Faith'\n ],\n lastNames: [\n 'Kamau', 'Omondi', 'Wanjohi', 'Kimani', 'Njoroge', 'Mwangi', 'Kariuki',\n 'Maina', 'Kipchoge', 'Chebet', 'Sang', 'Koech', 'Rono', 'Cheruiyot',\n 'Mutua', 'Kiptoo', 'Bett', 'Kirui', 'Tanui', 'Chirchir', 'Mohammed',\n 'Ochieng', 'Odhiambo', 'Kimutai', 'Kiprop', 'Chumba', 'Kiplagat', 'Chepchumba'\n ],\n streets: [\n 'Kenyatta Avenue', 'Moi Avenue', 'Haile Selassie Avenue', 'University Way',\n 'Kimathi Street', 'Koinange Street', 'Kenyatta Street', 'Tom Mboya Street',\n 'Biashara Street', 'River Road', 'Ngong Road', 'Thika Road', 'Waiyaki Way',\n 'Mombasa Road', 'Langata Road', 'Karen Road', 'Limuru Road', 'Kiambu Road'\n ],\n cities: [\n 'Nairobi', 'Mombasa', 'Kisumu', 'Nakuru', 'Eldoret', 'Ruiru', 'Kikuyu',\n 'Kangundo-Tala', 'Malindi', 'Thika', 'Kitui', 'Karuri', 'Nyeri',\n 'Meru', 'Kakamega', 'Garissa', 'Kilifi', 'Bungoma', 'Naivasha',\n 'Kericho', 'Kiambu', 'Machakos', 'Embu', 'Kajiado', 'Voi', 'Isiolo'\n ],\n states: [\n 'Nairobi', 'Mombasa', 'Kisumu', 'Nakuru', 'Uasin Gishu', 'Kiambu',\n 'Machakos', 'Kakamega', 'Bungoma', 'Kilifi', 'Kajiado', 'Nyeri',\n 'Meru', 'Kericho', 'Nandi', 'Kisii', 'Nyamira', 'Homa Bay', 'Migori',\n 'Siaya', 'Busia', 'Vihiga', 'Trans Nzoia', 'Elgeyo Marakwet', 'Baringo',\n 'Laikipia', 'Samburu', 'Turkana', 'West Pokot', 'Marsabit', 'Isiolo',\n 'Wajir', 'Mandera', 'Garissa', 'Taita Taveta', 'Kwale', 'Tana River',\n 'Lamu', 'Taita', 'Kajiado', 'Narok', 'Bomet', 'Nyandarua', 'Kirinyaga',\n 'Muranga', 'Tharaka Nithi', 'Embu', 'Kitui', 'Makueni'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer',\n 'Operations Manager', 'Business Analyst', 'Product Manager', 'System Administrator',\n 'Quality Assurance Engineer', 'Technical Writer', 'Database Administrator',\n 'Network Engineer', 'DevOps Engineer', 'UX Designer', 'Content Manager'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const building = Random.int(1, 500);\n return `P.O. Box ${Random.int(1000, 99999)}, ${building} ${street}, ${city} ${zipCode}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_PK: LocaleDefinition = {\n firstNamesMale: [\n 'Muhammad', 'Ahmed', 'Ali', 'Hassan', 'Usman', 'Abdul', 'Razaq', 'Kareem',\n 'Rahman', 'Rahim', 'Malik', 'Imran', 'Bilal', 'Faisal', 'Waseem', 'Naveed',\n 'Shahid', 'Pervez', 'Tariq', 'Zahid', 'Mansoor', 'Iqbal', 'Farooq', 'Sarfraz',\n 'Younis', 'Irfan', 'Kamran', 'Adnan', 'Sohail', 'Junaid', 'Omar', 'Hamza',\n 'Yusuf', 'Ibrahim', 'Musa', 'Dawood', 'Suleman', 'Haroon', 'Saad', 'Huzaifa'\n ],\n firstNamesFemale: [\n 'Fatima', 'Ayesha', 'Zainab', 'Khadija', 'Maryam', 'Sana', 'Hina', 'Nadia',\n 'Sadia', 'Farah', 'Shazia', 'Rubab', 'Mahnoor', 'Hafsa', 'Amina', 'Sumaya',\n 'Ruqayyah', 'Bushra', 'Kiran', 'Saima', 'Rabia', 'Tahira', 'Naheed', 'Shabana',\n 'Nargis', 'Parveen', 'Tasneem', 'Yasmin', 'Zahra', 'Sakina', 'Masooma', 'Nusrat'\n ],\n lastNames: [\n 'Khan', 'Malik', 'Ahmed', 'Ali', 'Hussain', 'Shah', 'Qureshi', 'Ansari',\n 'Farooqui', 'Siddiqui', 'Usmani', 'Chaudhry', 'Raja', 'Butt', 'Sheikh',\n 'Bhatti', 'Gill', 'Rana', 'Jutt', 'Gujjar', 'Awan', 'Syed', 'Naqvi',\n 'Zaidi', 'Rizvi', 'Abbas', 'Mirza', 'Baig', 'Mughal', 'Pathan', 'Afghan'\n ],\n streets: [\n 'Mall Road', 'Shahrah-e-Faisal', 'Kashmir Road', 'The Mall', 'Residency Road',\n 'Jinnah Avenue', 'Constitution Avenue', 'Atatürk Avenue', 'Blue Area',\n 'F-7 Markaz', 'G-9 Markaz', 'F-10 Markaz', 'I-8 Markaz', 'Defence Housing Authority',\n 'Gulberg', 'Model Town', 'DHA Phase', 'Bahria Town', 'Lake City', 'Garden Town'\n ],\n cities: [\n 'Karachi', 'Lahore', 'Faisalabad', 'Rawalpindi', 'Multan', 'Gujranwala',\n 'Hyderabad', 'Peshawar', 'Islamabad', 'Quetta', 'Sargodha', 'Sialkot',\n 'Bahawalpur', 'Sukkur', 'Larkana', 'Sheikhupura', 'Rahim Yar Khan',\n 'Jhang', 'Gujrat', 'Mardan', 'Mingora', 'Dera Ghazi Khan', 'Sahiwal',\n 'Nawabshah', 'Okara', 'Gilgit', 'Chitral', 'Skardu', 'Muzaffarabad'\n ],\n states: [\n 'Punjab', 'Sindh', 'Khyber Pakhtunkhwa', 'Balochistan',\n 'Islamabad Capital Territory', 'Gilgit-Baltistan', 'Azad Jammu and Kashmir',\n 'Federally Administered Tribal Areas'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer',\n 'Operations Manager', 'Business Analyst', 'Product Manager', 'System Administrator',\n 'Quality Assurance Engineer', 'Technical Writer', 'Database Administrator',\n 'Network Engineer', 'DevOps Engineer', 'UX Designer', 'Content Manager'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 999);\n const block = String.fromCharCode(65 + Random.int(0, 25));\n return `House ${houseNumber}, Block ${block}, ${street}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const bn_BD: LocaleDefinition = {\n firstNamesMale: [\n 'Rahim', 'Karim', 'Abdul', 'Mohammad', 'Ahmed', 'Ali', 'Hassan', 'Hussain',\n 'Ibrahim', 'Ismail', 'Kamal', 'Jamal', 'Mizanur', 'Habibur', 'Shafiqur',\n 'Atiqur', 'Matiur', 'Ziaur', 'Mokhlesur', 'Golam', 'Abul', 'Nurul',\n 'Harun', 'Rafiqul', 'Badrul', 'Shamsul', 'Najmul', 'Mahbubur', 'Anisur', 'Mosharraf'\n ],\n firstNamesFemale: [\n 'Rahima', 'Karima', 'Fatema', 'Ayesha', 'Khadija', 'Nasrin', 'Salma',\n 'Ruma', 'Sultana', 'Parvin', 'Shirin', 'Hasina', 'Roksana', 'Tahmina',\n 'Nargis', 'Shamima', 'Nusrat', 'Rubina', 'Sultana', 'Jahanara', 'Begum',\n 'Amina', 'Safia', 'Zohra', 'Momena', 'Hosne', 'Kohinoor', 'Feroza', 'Laila', 'Taslima'\n ],\n lastNames: [\n 'Ahmed', 'Khan', 'Islam', 'Hassan', 'Ali', 'Mohammad', 'Rahman', 'Karim',\n 'Haque', 'Hossain', 'Miah', 'Sikder', 'Bhuiyan', 'Chowdhury', 'Talukder',\n 'Sarker', 'Das', 'Roy', 'Ghosh', 'Paul', 'Gupta', 'Sen', 'Barman',\n 'Rabbani', 'Alam', 'Uddin', 'Mia', 'Biswas', 'Mandal', 'Khatun'\n ],\n streets: [\n 'Gulshan Avenue', 'Banani Road', 'Dhanmondi Road', 'Mirpur Road', 'Satmasjid Road',\n 'Kemal Ataturk Avenue', 'Bir Uttam Rafiqul Islam Avenue', 'Rokeya Sarani',\n 'Kazi Nazrul Islam Avenue', 'Sonargaon Road', 'Airport Road', 'Dhaka-Chittagong Highway',\n 'Shahbag Road', 'Elephant Road', 'Satrasta Road', 'Green Road', 'Panthapath',\n 'West Panthapath', 'Hatirjheel Road', 'Progoti Sarani', 'Jahangir Road'\n ],\n cities: [\n 'Dhaka', 'Chittagong', 'Khulna', 'Rajshahi', 'Sylhet', 'Barisal', 'Rangpur',\n 'Comilla', 'Gazipur', 'Narayanganj', 'Mymensingh', 'Bogra', 'Dinajpur',\n 'Jessore', 'Pabna', 'Sirajganj', 'Tangail', 'Jamalpur', 'Kushtia',\n 'Faridpur', 'Noakhali', 'Feni', 'Cox\\'s Bazar', 'Brahmanbaria', 'Habiganj'\n ],\n states: [\n 'Dhaka', 'Chittagong', 'Khulna', 'Rajshahi', 'Sylhet', 'Barisal', 'Rangpur', 'Mymensingh'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer',\n 'Operations Manager', 'Business Analyst', 'Product Manager', 'System Administrator',\n 'Quality Assurance Engineer', 'Technical Writer', 'Database Administrator',\n 'Network Engineer', 'DevOps Engineer', 'UX Designer', 'Content Manager'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 999);\n const road = Random.int(1, 200);\n const block = Random.int(1, 50);\n return `House ${houseNumber}, Road ${road}, Block ${block}, ${street}, ${city} ${zipCode}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const fa_IR: LocaleDefinition = {\n firstNamesMale: [\n 'Mohammad', 'Ali', 'Reza', 'Hossein', 'Ahmad', 'Mahmoud', 'Mehdi', 'Javad',\n 'Hamid', 'Masoud', 'Farid', 'Behrouz', 'Kourosh', 'Ardeshir', 'Babak',\n 'Shahram', 'Parviz', 'Amir', 'Kamran', 'Hassan', 'Hussein', 'Abbas',\n 'Jafar', 'Saeed', 'Omid', 'Ramin', 'Saman', 'Arash', 'Borzou', 'Farhad'\n ],\n firstNamesFemale: [\n 'Fateme', 'Zahra', 'Maryam', 'Zainab', 'Khadijeh', 'Somayeh', 'Masoumeh',\n 'Fatemeh', 'Hanieh', 'Narges', 'Elham', 'Marzieh', 'Leila', 'Nasrin',\n 'Shirin', 'Parisa', 'Farnaz', 'Nazanin', 'Roya', 'Mahnaz', 'Shima',\n 'Giti', 'Simin', 'Fariba', 'Shahla', 'Parvaneh', 'Azadeh', 'Mina', 'Sara', 'Negar'\n ],\n lastNames: [\n 'Hosseini', 'Moradi', 'Karimi', 'Ahmadi', 'Rezaei', 'Mohammadi', 'Jafari',\n 'Rashidi', 'Bagheri', 'Hasani', 'Nazari', 'Safari', 'Farahani', 'Yousefi',\n 'Khani', 'Mirzaei', 'Haidari', 'Majidi', 'Shahidi', 'Ebrahimi', 'Ghasemi',\n 'Tehrani', 'Isfahani', 'Shirazi', 'Tabatabaei', 'Hosseini', 'Rahimi', 'Zahedi'\n ],\n streets: [\n 'Valiasr Street', 'Enghelab Street', 'Revolution Street', 'Ferdowsi Street',\n 'Saadi Street', 'Hafez Street', 'Shariati Street', 'Mirdamad Boulevard',\n 'Jordan Street', 'Africa Boulevard', 'Argentina Square', 'Tajrish Square',\n 'Vanak Square', 'Seven Tir Square', 'Imam Khomeini Street', 'Ferdowsi Avenue'\n ],\n cities: [\n 'Tehran', 'Mashhad', 'Isfahan', 'Karaj', 'Shiraz', 'Tabriz', 'Qom',\n 'Ahvaz', 'Kermanshah', 'Urmia', 'Rasht', 'Zahedan', 'Hamadan', 'Kerman',\n 'Yazd', 'Ardabil', 'Bandar Abbas', 'Arak', 'Zanjan', 'Sanandaj',\n 'Qazvin', 'Khorramabad', 'Gorgan', 'Sari', 'Babol', 'Amol', 'Bushehr'\n ],\n states: [\n 'Tehran', 'Razavi Khorasan', 'Isfahan', 'Alborz', 'Fars', 'East Azerbaijan',\n 'Qom', 'Khuzestan', 'Kermanshah', 'West Azerbaijan', 'Gilan', 'Sistan and Baluchestan',\n 'Hamadan', 'Kerman', 'Yazd', 'Ardabil', 'Hormozgan', 'Markazi', 'Zanjan',\n 'Kurdistan', 'Qazvin', 'Lorestan', 'Golestan', 'Mazandaran', 'Bushehr'\n ],\n zipCodePattern: '##########',\n jobTitles: [\n 'مهندس نرمافزار', 'مدیر پروژه', 'تحلیلگر داده', 'مدیر بازاریابی',\n 'نماینده فروش', 'حسابدار', 'مدیر منابع انسانی', 'طراح', 'مدیر عملیات',\n 'تحلیلگر کسبوکار', 'مدیر محصول', 'مدیر سیستم', 'مهندس تضمین کیفیت',\n 'نویسنده فنی', 'مدیر پایگاه داده', 'مهندس شبکه', 'مهندس دوآپس'\n ],\n departments: [\n 'مهندسی', 'بازاریابی', 'فروش', 'منابع انسانی', 'مالی', 'عملیات',\n 'پشتیبانی مشتری', 'فناوری اطلاعات', 'تحقیق و توسعه', 'حقوقی',\n 'مدیریت محصول', 'طراحی', 'تضمین کیفیت', 'اداری'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n const unit = Random.int(1, 50);\n return `${street} ${number}, Unit ${unit}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000000000, 9999999999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ar_MA: LocaleDefinition = {\n firstNamesMale: [\n 'Mohammed', 'Ahmed', 'Ali', 'Hassan', 'Hussain', 'Abdul', 'Rahman', 'Rahim',\n 'Karim', 'Malik', 'Imran', 'Bilal', 'Faisal', 'Waseem', 'Naveed', 'Shahid',\n 'Youssef', 'Omar', 'Hamza', 'Yusuf', 'Ibrahim', 'Musa', 'Ismail', 'Zakaria',\n 'Ayoub', 'Reda', 'Tarik', 'Saïd', 'Rachid', 'Mustapha', 'Hicham', 'Karim'\n ],\n firstNamesFemale: [\n 'Fatima', 'Ayesha', 'Zainab', 'Khadija', 'Maryam', 'Sana', 'Hina', 'Nadia',\n 'Sadia', 'Farah', 'Shazia', 'Rubab', 'Mahnoor', 'Hafsa', 'Amina', 'Sumaya',\n 'Khadijah', 'Aicha', 'Rokia', 'Zahra', 'Salma', 'Meryem', 'Rajaa', 'Latifa',\n 'Samira', 'Naima', 'Hassna', 'Bahija', 'Kaltoum', 'Oumaima', 'Yasmin', 'Loubna'\n ],\n lastNames: [\n 'El Idrissi', 'El Fassi', 'El Filali', 'El Alami', 'El Hassani', 'El Otmani',\n 'El Baghdadi', 'El Mekki', 'El Fassi', 'El Marrakchi', 'El Ouazzani', 'El Tetouani',\n 'El Safi', 'El Jadidi', 'El Kelaa', 'El Bouayachi', 'El Guerrouj', 'El Haddad',\n 'El Benna', 'El Amrani', 'El Kadiri', 'El Bouhali', 'El Ghazi', 'El Moutawakil'\n ],\n streets: [\n 'Avenue Mohammed V', 'Boulevard Hassan II', 'Avenue des FAR', 'Rue Prince Moulay Abdellah',\n 'Avenue Allal Ben Abdellah', 'Boulevard Zerktouni', 'Avenue Moulay Youssef', 'Rue Ibn Batouta',\n 'Avenue Omar Ibn Al Khattab', 'Boulevard d\\'Anfa', 'Corniche Ain Diab', 'Boulevard de la Corniche',\n 'Avenue Mers Sultan', 'Rue Tata', 'Avenue Fquih El Gabbas', 'Boulevard Abdelmoumen'\n ],\n cities: [\n 'Casablanca', 'Rabat', 'Fès', 'Marrakech', 'Tanger', 'Agadir', 'Meknès', 'Oujda',\n 'Kénitra', 'Tétouan', 'Safi', 'El Jadida', 'Nador', 'Béni Mellal', 'Khouribga',\n 'Settat', 'Larache', 'Ksar El Kebir', 'Guelmim', 'Berrechid', 'Taza', 'Mohammedia'\n ],\n states: [\n 'Casablanca-Settat', 'Rabat-Salé-Kénitra', 'Fès-Meknès', 'Marrakech-Safi',\n 'Tanger-Tétouan-Al Hoceïma', 'Souss-Massa', 'Oriental', 'Béni Mellal-Khénifra',\n 'Drâa-Tafilalet', 'Guelmim-Oued Noun', 'Laâyoune-Sakia El Hamra', 'Dakhla-Oued Ed-Dahab'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Ingénieur Logiciel', 'Chef de Projet', 'Analyste de Données', 'Responsable Marketing',\n 'Commercial', 'Comptable', 'Responsable RH', 'Designer', 'Responsable des Opérations',\n 'Analyste d\\'Affaires', 'Chef de Produit', 'Administrateur Système', 'Ingénieur Qualité',\n 'Rédacteur Technique', 'Administrateur de Base de Données', 'Ingénieur Réseau', 'DevOps'\n ],\n departments: [\n 'Ingénierie', 'Marketing', 'Ventes', 'Ressources Humaines', 'Finances',\n 'Opérations', 'Service Client', 'IT', 'Recherche et Développement',\n 'Juridique', 'Gestion de Produits', 'Design', 'Assurance Qualité', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n const quartier = Random.pick(['Centre Ville', 'Agdal', 'Hay Riad', 'Ocean', 'Massira', 'Narjiss']);\n return `${number} ${street}, ${quartier}, ${city} ${zipCode}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const es_CO: LocaleDefinition = {\n firstNamesMale: [\n 'Juan', 'Carlos', 'Andrés', 'Luis', 'Jorge', 'Mario', 'José', 'Pedro',\n 'Miguel', 'Ángel', 'Rafael', 'Antonio', 'Francisco', 'Javier', 'Alejandro',\n 'Sergio', 'Diego', 'Fernando', 'Gustavo', 'Hernán', 'Mauricio', 'Pablo',\n 'Ricardo', 'Roberto', 'Óscar', 'César', 'Alberto', 'Eduardo', 'Manuel', 'Raúl'\n ],\n firstNamesFemale: [\n 'María', 'Ana', 'Carmen', 'Lucía', 'Sandra', 'Patricia', 'Luz', 'Nancy',\n 'Linda', 'Gloria', 'Beatriz', 'Diana', 'Mónica', 'Silvia', 'Andrea',\n 'Paola', 'Valentina', 'Daniela', 'Mariana', 'Alejandra', 'Gabriela',\n 'Isabella', 'Sofía', 'Camila', 'Valeria', 'Natalia', 'Carolina', 'Juliana', 'Laura'\n ],\n lastNames: [\n 'García', 'Rodríguez', 'Martínez', 'López', 'González', 'Hernández',\n 'Pérez', 'Sánchez', 'Ramírez', 'Torres', 'Flores', 'Rivera', 'Gómez',\n 'Díaz', 'Morales', 'Ruiz', 'Jiménez', 'Vásquez', 'Castillo', 'Mendoza',\n 'Rojas', 'Vargas', 'Moreno', 'Ortiz', 'Muñoz', 'Peña', 'Delgado', 'Pacheco'\n ],\n streets: [\n 'Carrera 7', 'Carrera 15', 'Carrera 11', 'Calle 85', 'Calle 100',\n 'Avenida El Dorado', 'Avenida Jiménez', 'Avenida Caracas', 'Avenida Boyacá',\n 'Carrera 53', 'Carrera 43A', 'Calle 72', 'Calle 127', 'Transversal 17',\n 'Avenida Suba', 'Carrera 9', 'Calle 26', 'Avenida Chile', 'Zona Rosa'\n ],\n cities: [\n 'Bogotá', 'Medellín', 'Cali', 'Barranquilla', 'Cartagena', 'Bucaramanga',\n 'Pereira', 'Santa Marta', 'Ibagué', 'Pasto', 'Manizales', 'Cúcuta',\n 'Soledad', 'Armenia', 'Villavicencio', 'Valledupar', 'Montería',\n 'Neiva', 'Palmira', 'Popayán', 'Sincelejo', 'Tunja', 'Florencia', 'Quibdó'\n ],\n states: [\n 'Bogotá D.C.', 'Antioquia', 'Valle del Cauca', 'Atlántico', 'Bolívar',\n 'Santander', 'Risaralda', 'Magdalena', 'Tolima', 'Nariño', 'Caldas',\n 'Norte de Santander', 'Atlántico', 'Quindío', 'Meta', 'Cesar', 'Córdoba',\n 'Huila', 'Valle del Cauca', 'Cauca', 'Sucre', 'Boyacá', 'Caquetá', 'Chocó'\n ],\n zipCodePattern: '######',\n jobTitles: [\n 'Ingeniero de Software', 'Gerente de Proyecto', 'Analista de Datos', 'Gerente de Marketing',\n 'Representante de Ventas', 'Contador', 'Gerente de Recursos Humanos', 'Diseñador',\n 'Gerente de Operaciones', 'Analista de Negocio', 'Gerente de Producto', 'Administrador de Sistemas',\n 'Ingeniero de Calidad', 'Escritor Técnico', 'Administrador de Base de Datos',\n 'Ingeniero de Redes', 'Ingeniero DevOps', 'Diseñador UX', 'Gerente de Contenido'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas',\n 'Operaciones', 'Servicio al Cliente', 'TI', 'Investigación y Desarrollo',\n 'Legal', 'Gestión de Productos', 'Diseño', 'Aseguramiento de Calidad', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n const apartment = Random.int(1, 500);\n return `${street} # ${number}-${Random.int(10, 99)}, Apto ${apartment}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(110111, 999999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const es_PE: LocaleDefinition = {\n firstNamesMale: [\n 'José', 'Juan', 'Carlos', 'Luis', 'Miguel', 'Pedro', 'Jorge', 'Mario',\n 'Víctor', 'Manuel', 'Raúl', 'Fernando', 'Alberto', 'Francisco', 'Antonio',\n 'Ricardo', 'Roberto', 'César', 'Óscar', 'Gustavo', 'Hugo', 'Sergio',\n 'Diego', 'Alejandro', 'Pablo', 'Andrés', 'Mauricio', 'Eduardo', 'Jesús', 'Rubén'\n ],\n firstNamesFemale: [\n 'María', 'Carmen', 'Ana', 'Rosa', 'Luz', 'Juana', 'Patricia', 'Sandra',\n 'Elizabeth', 'Nancy', 'Linda', 'Gloria', 'Beatriz', 'Diana', 'Mónica',\n 'Silvia', 'Andrea', 'Paola', 'Valentina', 'Daniela', 'Mariana', 'Alejandra',\n 'Gabriela', 'Isabella', 'Sofía', 'Camila', 'Valeria', 'Natalia', 'Carolina', 'Juliana'\n ],\n lastNames: [\n 'García', 'Rodríguez', 'Sánchez', 'Flores', 'Torres', 'Ramírez', 'Pérez',\n 'Díaz', 'González', 'Martínez', 'López', 'Hernández', 'Gómez', 'Ruiz',\n 'Castillo', 'Mendoza', 'Rojas', 'Vargas', 'Moreno', 'Ortiz', 'Muñoz',\n 'Peña', 'Delgado', 'Pacheco', 'Vásquez', 'Jiménez', 'Morales', 'Chávez', 'Reyes', 'Guerrero'\n ],\n streets: [\n 'Avenida Javier Prado', 'Avenida Arequipa', 'Avenida Larco', 'Avenida Pardo',\n 'Avenida Benavides', 'Avenida La Marina', 'Avenida Universitaria', 'Avenida Tacna',\n 'Avenida Venezuela', 'Avenida Colonial', 'Jirón de la Unión', 'Avenida Grau',\n 'Avenida Almte. Miguel Grau', 'Avenida 28 de Julio', 'Avenida Angamos', 'Avenida Reducto'\n ],\n cities: [\n 'Lima', 'Arequipa', 'Trujillo', 'Chiclayo', 'Piura', 'Iquitos', 'Cusco',\n 'Huancayo', 'Tacna', 'Pucallpa', 'Ica', 'Juliaca', 'Sullana', 'Ayacucho',\n 'Cajamarca', 'Puno', 'Tumbes', 'Huánuco', 'Tarapoto', 'Chincha Alta',\n 'Huaraz', 'Cerro de Pasco', 'Moquegua', 'Tacna', 'Abancay', 'Puerto Maldonado'\n ],\n states: [\n 'Lima', 'Arequipa', 'La Libertad', 'Lambayeque', 'Piura', 'Loreto', 'Cusco',\n 'Junín', 'Tacna', 'Ucayali', 'Ica', 'Puno', 'Piura', 'Ayacucho', 'Cajamarca',\n 'Puno', 'Tumbes', 'Huánuco', 'San Martín', 'Ica', 'Áncash', 'Pasco',\n 'Moquegua', 'Tacna', 'Apurímac', 'Madre de Dios', 'Amazonas', 'Huancavelica'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Ingeniero de Software', 'Gerente de Proyecto', 'Analista de Datos', 'Gerente de Marketing',\n 'Representante de Ventas', 'Contador', 'Gerente de Recursos Humanos', 'Diseñador',\n 'Gerente de Operaciones', 'Analista de Negocio', 'Gerente de Producto', 'Administrador de Sistemas',\n 'Ingeniero de Calidad', 'Escritor Técnico', 'Administrador de Base de Datos',\n 'Ingeniero de Redes', 'Ingeniero DevOps', 'Diseñador UX', 'Gerente de Contenido'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas',\n 'Operaciones', 'Servicio al Cliente', 'TI', 'Investigación y Desarrollo',\n 'Legal', 'Gestión de Productos', 'Diseño', 'Aseguramiento de Calidad', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 9999);\n const urbanizacion = Random.pick(['Los Olivos', 'San Isidro', 'Miraflores', 'San Borja', 'La Molina']);\n return `${urbanizacion}, ${street} ${number}, ${city} ${zipCode}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1001, 9999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const es_VE: LocaleDefinition = {\n firstNamesMale: [\n 'José', 'Carlos', 'Luis', 'Miguel', 'Juan', 'Pedro', 'Jorge', 'Mario',\n 'Rafael', 'Antonio', 'Francisco', 'Javier', 'Alejandro', 'Sergio', 'Diego',\n 'Fernando', 'Gustavo', 'Mauricio', 'Pablo', 'Ricardo', 'Roberto', 'Óscar',\n 'César', 'Alberto', 'Eduardo', 'Manuel', 'Raúl', 'Andrés', 'Víctor', 'Hernán'\n ],\n firstNamesFemale: [\n 'María', 'Carmen', 'Ana', 'Rosa', 'Luz', 'Patricia', 'Sandra', 'Elizabeth',\n 'Nancy', 'Linda', 'Gloria', 'Beatriz', 'Diana', 'Mónica', 'Silvia',\n 'Andrea', 'Paola', 'Valentina', 'Daniela', 'Mariana', 'Alejandra', 'Gabriela',\n 'Isabella', 'Sofía', 'Camila', 'Valeria', 'Natalia', 'Carolina', 'Juliana', 'Laura'\n ],\n lastNames: [\n 'García', 'Rodríguez', 'Hernández', 'Pérez', 'Sánchez', 'Ramírez', 'López',\n 'González', 'Martínez', 'Díaz', 'Flores', 'Torres', 'Gómez', 'Ruiz',\n 'Castillo', 'Mendoza', 'Rojas', 'Vargas', 'Moreno', 'Ortiz', 'Muñoz',\n 'Peña', 'Delgado', 'Pacheco', 'Vásquez', 'Jiménez', 'Morales', 'Chávez', 'Reyes', 'Guerrero'\n ],\n streets: [\n 'Avenida Francisco de Miranda', 'Avenida Libertador', 'Avenida Bolívar',\n 'Avenida Urdaneta', 'Avenida Panteón', 'Calle Carabobo', 'Calle Vargas',\n 'Avenida Los Próceres', 'Avenida Principal de Las Mercedes', 'Avenida Río de Janeiro',\n 'Avenida San Martín', 'Avenida Victoria', 'Calle El Conde', 'Avenida Intercomunal'\n ],\n cities: [\n 'Caracas', 'Maracaibo', 'Valencia', 'Barquisimeto', 'Maracay', 'Ciudad Guayana',\n 'Barcelona', 'Maturín', 'Ciudad Bolívar', 'Cumana', 'Mérida', 'San Cristóbal',\n 'Cabimas', 'Turmero', 'Barinas', 'Puerto La Cruz', 'Petare', 'Guarenas',\n 'Guatire', 'Acarigua', 'Guanare', 'Valera', 'Coro', 'Los Teques', 'Carúpano'\n ],\n states: [\n 'Distrito Capital', 'Zulia', 'Carabobo', 'Lara', 'Aragua', 'Bolívar',\n 'Anzoátegui', 'Monagas', 'Mérida', 'Táchira', 'Sucre', 'Barinas',\n 'Portuguesa', 'Falcón', 'Miranda', 'Yaracuy', 'Cojedes', 'Apure',\n 'Nueva Esparta', 'Trujillo', 'Vargas', 'Amazonas', 'Delta Amacuro'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Ingeniero de Software', 'Gerente de Proyecto', 'Analista de Datos', 'Gerente de Marketing',\n 'Representante de Ventas', 'Contador', 'Gerente de Recursos Humanos', 'Diseñador',\n 'Gerente de Operaciones', 'Analista de Negocio', 'Gerente de Producto', 'Administrador de Sistemas',\n 'Ingeniero de Calidad', 'Escritor Técnico', 'Administrador de Base de Datos',\n 'Ingeniero de Redes', 'Ingeniero DevOps', 'Diseñador UX', 'Gerente de Contenido'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas',\n 'Operaciones', 'Servicio al Cliente', 'TI', 'Investigación y Desarrollo',\n 'Legal', 'Gestión de Productos', 'Diseño', 'Aseguramiento de Calidad', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 999);\n const building = Random.pick(['Edificio', 'Torre', 'Residencia']);\n const name = Random.pick(['Las Palmas', 'El Rosal', 'La Castellana', 'Altamira', 'Chacao']);\n return `${building} ${name}, ${street} ${number}, ${city} ${zipCode}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1010, 9999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const es_GT: LocaleDefinition = {\n firstNamesMale: [\n 'José', 'Juan', 'Carlos', 'Luis', 'Miguel', 'Pedro', 'Jorge', 'Mario',\n 'Víctor', 'Manuel', 'Raúl', 'Fernando', 'Alberto', 'Francisco', 'Antonio',\n 'Ricardo', 'Roberto', 'César', 'Óscar', 'Gustavo', 'Hugo', 'Sergio',\n 'Diego', 'Alejandro', 'Pablo', 'Andrés', 'Mauricio', 'Eduardo', 'Jesús', 'Rubén'\n ],\n firstNamesFemale: [\n 'María', 'Carmen', 'Ana', 'Rosa', 'Luz', 'Juana', 'Patricia', 'Sandra',\n 'Elizabeth', 'Nancy', 'Linda', 'Gloria', 'Beatriz', 'Diana', 'Mónica',\n 'Silvia', 'Andrea', 'Paola', 'Valentina', 'Daniela', 'Mariana', 'Alejandra',\n 'Gabriela', 'Isabella', 'Sofía', 'Camila', 'Valeria', 'Natalia', 'Carolina', 'Juliana'\n ],\n lastNames: [\n 'García', 'Rodríguez', 'Hernández', 'Pérez', 'Sánchez', 'Ramírez', 'López',\n 'González', 'Martínez', 'Díaz', 'Flores', 'Torres', 'Gómez', 'Ruiz',\n 'Castillo', 'Mendoza', 'Rojas', 'Vargas', 'Moreno', 'Ortiz', 'Muñoz',\n 'González', 'Ruiz', 'Hernández', 'Morales', 'Chávez', 'Reyes', 'Guerrero', 'Méndez', 'Cruz'\n ],\n streets: [\n 'Avenida La Reforma', 'Avenida Bolívar', 'Avenida Hincapié', 'Avenida Simeón Cañas',\n 'Avenida Elena', 'Calle del Comercio', 'Avenida Petapa', 'Avenida Aguilar Batres',\n 'Avenida Las Américas', 'Avenida Soto', 'Avenida Gualberto Campos', 'Avenida 18',\n 'Avenida 12', 'Avenida 7', 'Avenida 3', 'Avenida 1', 'Avenida 30', 'Avenida 25'\n ],\n cities: [\n 'Ciudad de Guatemala', 'Mixco', 'Villa Nueva', 'Petapa', 'San Juan Sacatepéquez',\n 'Quetzaltenango', 'Villa Canales', 'Escuintla', 'Chinautla', 'Chimaltenango',\n 'Huehuetenango', 'Amatitlán', 'Totonicapán', 'Santa Catarina Pinula', 'Cobán',\n 'Puerto Barrios', 'San Marcos', 'Jalapa', 'Jutiapa', 'Antigua Guatemala', 'Retalhuleu'\n ],\n states: [\n 'Guatemala', 'Huehuetenango', 'San Marcos', 'Quiché', 'Alta Verapaz',\n 'Petén', 'Izabal', 'Baja Verapaz', 'Quetzaltenango', 'Totonicapán',\n 'Sololá', 'Suchitepéquez', 'Retalhuleu', 'Chimaltenango', 'Sacatepéquez',\n 'Escuintla', 'Santa Rosa', 'Jutiapa', 'Jalapa', 'Zacapa', 'El Progreso'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Ingeniero de Software', 'Gerente de Proyecto', 'Analista de Datos', 'Gerente de Marketing',\n 'Representante de Ventas', 'Contador', 'Gerente de Recursos Humanos', 'Diseñador',\n 'Gerente de Operaciones', 'Analista de Negocio', 'Gerente de Producto', 'Administrador de Sistemas',\n 'Ingeniero de Calidad', 'Escritor Técnico', 'Administrador de Base de Datos',\n 'Ingeniero de Redes', 'Ingeniero DevOps', 'Diseñador UX', 'Gerente de Contenido'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas',\n 'Operaciones', 'Servicio al Cliente', 'TI', 'Investigación y Desarrollo',\n 'Legal', 'Gestión de Productos', 'Diseño', 'Aseguramiento de Calidad', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 9999);\n const zone = Random.int(1, 25);\n return `${street} ${number}, Zona ${zone}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1001, 99999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const es_CR: LocaleDefinition = {\n firstNamesMale: [\n 'José', 'Juan', 'Carlos', 'Luis', 'Miguel', 'Pedro', 'Jorge', 'Mario',\n 'Víctor', 'Manuel', 'Raúl', 'Fernando', 'Alberto', 'Francisco', 'Antonio',\n 'Ricardo', 'Roberto', 'César', 'Óscar', 'Gustavo', 'Hugo', 'Sergio',\n 'Diego', 'Alejandro', 'Pablo', 'Andrés', 'Mauricio', 'Eduardo', 'Jesús', 'Rubén'\n ],\n firstNamesFemale: [\n 'María', 'Carmen', 'Ana', 'Rosa', 'Luz', 'Juana', 'Patricia', 'Sandra',\n 'Elizabeth', 'Nancy', 'Linda', 'Gloria', 'Beatriz', 'Diana', 'Mónica',\n 'Silvia', 'Andrea', 'Paola', 'Valentina', 'Daniela', 'Mariana', 'Alejandra',\n 'Gabriela', 'Isabella', 'Sofía', 'Camila', 'Valeria', 'Natalia', 'Carolina', 'Juliana'\n ],\n lastNames: [\n 'García', 'Rodríguez', 'Hernández', 'Pérez', 'Sánchez', 'Ramírez', 'López',\n 'González', 'Martínez', 'Díaz', 'Flores', 'Torres', 'Gómez', 'Ruiz',\n 'Castillo', 'Mendoza', 'Rojas', 'Vargas', 'Moreno', 'Ortiz', 'Muñoz',\n 'Jiménez', 'Morales', 'Chávez', 'Reyes', 'Guerrero', 'Méndez', 'Cruz', 'Castro', 'Solís'\n ],\n streets: [\n 'Avenida Central', 'Avenida Segunda', 'Avenida Cuarta', 'Avenida Sexta',\n 'Avenida Octava', 'Calle 1', 'Calle 3', 'Calle 5', 'Calle 7', 'Calle 9',\n 'Paseo Colón', 'Avenida 10', 'Avenida 12', 'Avenida 14', 'Avenida 16',\n 'Avenida 18', 'Avenida 20', 'Avenida 22', 'Avenida 24', 'Avenida 26',\n 'Avenida 28', 'Avenida 30', 'Avenida 32', 'Avenida 34', 'Avenida 36'\n ],\n cities: [\n 'San José', 'Limón', 'Alajuela', 'Heredia', 'Cartago', 'Puntarenas',\n 'Liberia', 'Paraíso', 'Pérez Zeledón', 'San Isidro', 'Curridabat',\n 'San Vicente', 'Purral', 'San Felipe', 'Desamparados', 'San Rafael',\n 'San Francisco', 'Guadalupe', 'San Vicente', 'San Pablo', 'Santa Ana'\n ],\n states: [\n 'San José', 'Alajuela', 'Cartago', 'Heredia', 'Guanacaste', 'Puntarenas', 'Limón'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Ingeniero de Software', 'Gerente de Proyecto', 'Analista de Datos', 'Gerente de Marketing',\n 'Representante de Ventas', 'Contador', 'Gerente de Recursos Humanos', 'Diseñador',\n 'Gerente de Operaciones', 'Analista de Negocio', 'Gerente de Producto', 'Administrador de Sistemas',\n 'Ingeniero de Calidad', 'Escritor Técnico', 'Administrador de Base de Datos',\n 'Ingeniero de Redes', 'Ingeniero DevOps', 'Diseñador UX', 'Gerente de Contenido'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas',\n 'Operaciones', 'Servicio al Cliente', 'TI', 'Investigación y Desarrollo',\n 'Legal', 'Gestión de Productos', 'Diseño', 'Aseguramiento de Calidad', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const number = Random.int(1, 9999);\n const landmark = Random.pick(['100m Norte', '100m Sur', '100m Este', '100m Oeste', '50m al Lago']);\n return `${street}, ${landmark}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 99999));\n }\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const zh_TW: LocaleDefinition = {\n lastNames: [\n 'Chen', 'Lin', 'Huang', 'Zhang', 'Li', 'Wang', 'Wu', 'Liu', 'Tsai', 'Yang',\n 'Chen', 'Lin', 'Huang', 'Zhang', 'Li', 'Wang', 'Wu', 'Liu', 'Tsai', 'Yang',\n 'Chou', 'Hsu', 'Sun', 'Hu', 'Chuang', 'Kuo', 'Kao', 'Liao', 'Lai', 'Chien'\n ],\n firstNamesMale: [\n 'Wei', 'Jun', 'Ming', 'Tao', 'Jie', 'Qiang', 'Lei', 'Yong', 'Jian', 'Ping',\n 'Bin', 'Feng', 'Long', 'Chao', 'Yang', 'Lin', 'Hao', 'Gang', 'Kai', 'Peng',\n 'Zhi', 'Yun', 'Bo', 'Hua', 'Xin', 'Liang', 'Chen', 'Dong', 'Fei', 'Xiong'\n ],\n firstNamesFemale: [\n 'Li', 'Fang', 'Xiu', 'Ying', 'Min', 'Jing', 'Juan', 'Yan', 'Hong', 'Mei',\n 'Xia', 'Qing', 'Lan', 'Yue', 'Xin', 'Ling', 'Na', 'Hui', 'Rong', 'Dan',\n 'Shan', 'Yun', 'Ping', 'Jie', 'Xue', 'Fen', 'Yu', 'Qian', 'Shu', 'Wen'\n ],\n streets: [\n 'Zhongshan Road', 'Zhongxiao Road', 'Renai Road', 'Minsheng Road',\n 'Minquan Road', 'Heping Road', 'Jianguo Road', 'Guangfu Road',\n 'Fuxing Road', 'Jianguo South Road', 'Xinyi Road', 'Songren Road',\n 'Nanjing East Road', 'Beijing East Road', 'Shanghai Street', 'Guangzhou Street'\n ],\n cities: [\n 'Taipei', 'New Taipei', 'Taoyuan', 'Taichung', 'Tainan', 'Kaohsiung',\n 'Hsinchu', 'Keelung', 'Chiayi', 'Changhua', 'Hualien', 'Pingtung',\n 'Yilan', 'Taitung', 'Penghu', 'Kinmen', 'Matsu', 'Nantou', 'Miaoli', 'Yunlin'\n ],\n states: [\n 'Taipei', 'New Taipei', 'Taoyuan', 'Taichung', 'Tainan', 'Kaohsiung',\n 'Hsinchu', 'Keelung', 'Chiayi', 'Changhua', 'Hualien', 'Pingtung',\n 'Yilan', 'Taitung', 'Penghu', 'Kinmen', 'Lienchiang', 'Nantou', 'Miaoli', 'Yunlin'\n ],\n zipCodePattern: '###',\n jobTitles: [\n '軟體工程師', '專案經理', '數據分析師', '行銷經理',\n '業務代表', '會計師', '人資經理', '設計師',\n '營運經理', '業務分析師', '產品經理', '系統管理員',\n '品質保證工程師', '技術作家', '資料庫管理員',\n '網路工程師', 'DevOps 工程師', 'UX 設計師', '內容管理師'\n ],\n departments: [\n '工程部', '行銷部', '業務部', '人力資源部', '財務部',\n '營運部', '客服部', '資訊部', '研發部',\n '法務部', '產品管理部', '設計部', '品質保證部', '行政部'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${lastName} ${firstName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const section = Random.int(1, 5);\n const number = Random.int(1, 500);\n const floor = Random.int(1, 20);\n return `${zipCode} ${state} ${city} ${street} ${section}段${number}號${floor}樓`;\n },\n\n generateZipCode(): string {\n return String(Random.int(100, 999));\n },\n\n phoneFormats: [\n '(02) ####-####',\n '(03) ###-###',\n '(04) ###-###',\n '(07) ###-###',\n '09##-###-###',\n '+886-9##-###-###'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com.tw', 'hotmail.com', 'outlook.com',\n 'pchome.com.tw', 'hinet.net', 'seed.net.tw', 'msn.com'\n ],\n\n companyNames: [\n '台積電', '鴻海精密工業', '華碩', '宏碁', '聯發科',\n '台灣中油', '中華電信', '國泰金控', '富邦金控', '玉山銀行',\n '長榮海運', '陽明海運', '統一企業', '康師傅控股', '旺旺集團'\n ],\n\n industries: [\n '科技業', '金融業', '製造業', '服務業', '零售業',\n '醫療業', '教育業', '電信業', '運輸業', '建築業'\n ],\n\n catchPhrases: [\n '創新領先,追求卓越', '誠信經營,客戶至上', '品質第一,服務滿意',\n '科技以人为本', '創造價值,共享未來', '專業創新,永續經營'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ar_IQ: LocaleDefinition = {\n firstNamesMale: [\n 'محمد', 'أحمد', 'علي', 'حسن', 'حسين', 'عباس', 'جعفر', 'محمد',\n 'علي', 'حسن', 'حسين', 'عباس', 'جعفر', 'محمد', 'علي', 'حسن',\n 'حسين', 'عباس', 'جعفر', 'محمد', 'علي', 'حسن', 'حسين', 'عباس',\n 'جعفر', 'محمد', 'علي', 'حسن', 'حسين', 'عباس', 'جعفر', 'محمد',\n 'علي', 'حسن', 'حسين', 'عباس', 'جعفر', 'محمد', 'علي', 'حسن'\n ],\n firstNamesFemale: [\n 'فاطمة', 'زهراء', 'زينب', 'خديجة', 'مريم', 'نور', 'هدى', 'سعاد',\n 'ليلى', 'منى', 'هند', 'رنا', 'لينا', 'ديانا', 'ريما', 'نادين',\n 'كارمن', 'ريتا', 'جورجيت', 'ماري', 'تيريز', 'أنطوانيت', 'جوزفين',\n 'فيكتوريا', 'إليزابeth', 'مارغريت', 'كاثرين', 'آن', 'إليانور', 'صوفيا'\n ],\n lastNames: [\n 'العبيدي', 'التميمي', 'الدليمي', 'العزاوي', 'المشهداني', 'الجباري',\n 'الربيعي', 'النعيمي', 'الكرخي', 'البغدادي', 'البصري', 'الكوفي',\n 'النجفي', 'الكربلائي', 'السامرائي', 'التكريتي', 'الموصلي', 'الارموي',\n 'الداوودي', 'القيسي', 'الكناني', 'القرشي', 'الهاشمي', 'العلوي',\n 'الحسيني', 'الجعفري', 'الصادق', 'الرضا', 'الكاظم', 'الموسوي'\n ],\n streets: [\n 'شارع الكندي', 'شارع المتنبي', 'شارع الرشيد', 'شارع أبي نواس',\n 'شارع الزهور', 'شارع الأندلس', 'شارع فلسطين', 'شارع سوريا',\n 'شارع الأردن', 'شارع الخليج', 'شارع الكرادة', 'شارع المنصور',\n 'شارع اليرموك', 'شارع القاهرة', 'شارع دمشق', 'شارع بيروت'\n ],\n cities: [\n 'بغداد', 'البصرة', 'الموصل', 'أربيل', 'السليمانية', 'كركوك',\n 'النجف', 'كربلاء', 'الحلة', 'الديوانية', 'العمارة', 'الكوت',\n 'الرمادي', 'الفلوجة', 'سامراء', 'بعقوبة', 'دهوك', 'زاخو',\n 'تكريت', 'بيجي', 'الحديثة', 'راوة', 'عانة', 'هيت'\n ],\n states: [\n 'بغداد', 'البصرة', 'نينوى', 'أربيل', 'السليمانية', 'كركوك',\n 'النجف', 'كربلاء', 'بابل', 'القادسية', 'ميسان', 'واسط',\n 'الأنبار', 'ديالى', 'صلاح الدين', 'دهوك'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'مهندس برمجيات', 'مدير مشروع', 'محلل بيانات', 'مدير تسويق',\n 'مندوب مبيعات', 'محاسب', 'مدير موارد بشرية', 'مصمم', 'مدير عمليات',\n 'محلل أعمال', 'مدير منتج', 'مسؤول نظام', 'مندوب خدمة عملاء',\n 'مهندس جودة', 'كاتب تقني', 'مسؤول قاعدة بيانات', 'مهندس شبكات'\n ],\n departments: [\n 'الهندسة', 'التسويق', 'المبيعات', 'الموارد البشرية', 'المالية',\n 'العمليات', 'خدمة العملاء', 'تكنولوجيا المعلومات', 'البحث والتطوير',\n 'القانونية', 'إدارة المنتجات', 'التصميم', 'ضمان الجودة', 'الإدارة'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const district = Random.pick(['الكرادة', 'المنصور', 'اليرموك', 'الأعظمية', 'الكاظمية', 'الصدر']);\n const buildingNumber = Random.int(1, 500);\n return `بغداد، ${district}, ${street}, عمارة ${buildingNumber}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+964 7## ### ####',\n '+964 77# ### ####',\n '+964 78# ### ####',\n '+964 79# ### ####',\n '+964 75# ### ####',\n '+964 76# ### ####',\n '+964 1 ### ####',\n '+964 21 ### ####',\n '+964 30 ### ####',\n '07## ### ####',\n '01 ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'iraqmail.com', 'uruklink.net', 'earthlink.iq'\n ],\n\n companyNames: [\n 'شركة نفط الجنوب', 'شركة نفط الشمال', 'مصرف الرافدين', 'مصرف الرشيد',\n 'مصرف بغداد', 'الخطوط الجوية العراقية', 'أسياسيل', 'زين العراق',\n 'كورك تيليكوم', 'إيمباير عيسى', 'كوريا تيليكوم', 'ماونتين بيك'\n ],\n\n industries: [\n 'التكنولوجيا', 'المالية', 'الرعاية الصحية', 'التعليم', 'التجزئة',\n 'التصنيع', 'الإعلام', 'الاتصالات', 'الطاقة', 'النقل',\n 'العقارات', 'الاستشارات', 'الضيافة', 'السيارات', 'الطيران',\n 'النفط والغاز', 'الزراعة', 'البناء'\n ],\n\n catchPhrases: [\n 'الابتكار للمستقبل', 'نجاحكم هو عملنا', 'نبني المستقبل معاً',\n 'الجودة والثقة', 'التميز والالتزام', 'حلول مستدامة',\n 'نخلق القيمة', 'شريككم الموثوق', 'نفخر بالعراق'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ar_KW: LocaleDefinition = {\n firstNamesMale: [\n 'محمد', 'أحمد', 'علي', 'حسن', 'حسين', 'عبدالله', 'عبدالرحمن', 'عبدالكريم',\n 'عبدالعزيز', 'عبداللطيف', 'عبدالوهاب', 'عبدالمحسن', 'عبدالمجيد',\n 'عبدالله', 'سعد', 'سعود', 'سلطان', 'سالم', 'سليمان', 'سامي',\n 'شامل', 'شجاع', 'شهاب', 'صادق', 'صالح', 'صلاح', 'صقر', 'ضاري',\n 'طارق', 'طلال', 'عادل', 'عامر', 'عاصم', 'عاطف', 'عامر', 'عباس'\n ],\n firstNamesFemale: [\n 'فاطمة', 'زهراء', 'زينب', 'خديجة', 'مريم', 'نور', 'هدى', 'سعاد',\n 'ليلى', 'منى', 'هند', 'رنا', 'لينا', 'ديانا', 'ريما', 'نادين',\n 'كارمن', 'ريتا', 'جورجيت', 'ماري', 'تيريز', 'أنطوانيت', 'جوزفين',\n 'فيكتوريا', 'إليزابeth', 'مارغريت', 'كاثرين', 'آن', 'إليانور', 'صوفيا'\n ],\n lastNames: [\n 'ال الصباح', 'ال خالد', 'ال سالم', 'ال جابر', 'ال ناصر', 'ال محمد',\n 'ال أحمد', 'ال علي', 'ال حسن', 'ال حسين', 'ال إبراهيم', 'ال عيسى',\n 'ال يوسف', 'ال زaid', 'ال عمر', 'ال خالد', 'ال راشد', 'ال مبارك',\n 'ال حمد', 'ال فهد', 'ال سعود', 'ال فيصل', 'ال تركي', 'ال عبدالعزيز',\n 'ال سلطان', 'ال منصور', 'ال حميد', 'ال مجيد', 'ال كريم', 'ال لطيف'\n ],\n streets: [\n 'شارع الخليج العربي', 'شارع فهد السالم', 'شارع أحمد الجابر',\n 'شارع سالم المبارك', 'شارع علي الخليفة', 'شارع عبدالله المبارك',\n 'شارع محمد الخامس', 'شارع إبراهيم البدر', 'شارع خالد بن الوليد',\n 'شارع صلاح الدين', 'شارع القدس', 'شارع فلسطين', 'شارع بيروت',\n 'شارع دمشق', 'شارع عمان', 'شارع الرياض', 'شارع الدوحة'\n ],\n cities: [\n 'مدينة الكويت', 'حولي', 'السالمية', 'الجابرية', 'كيفان', 'الشويخ',\n 'الصليبخات', 'الجهراء', 'الفروانية', 'الأحمدي', 'مبارك الكبير',\n 'الظهر', 'المنقف', 'الفحيحيل', 'الزور', 'الصباحية', 'القرين',\n 'المسيلة', 'الرميثة', 'سلوى', 'البدع', 'اليرموك', 'النزهة', 'الصديق'\n ],\n states: [\n 'العاصمة', 'حولي', 'مبارك الكبير', 'الجهراء', 'الفروانية', 'الأحمدي'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'مهندس برمجيات', 'مدير مشروع', 'محلل بيانات', 'مدير تسويق',\n 'مندوب مبيعات', 'محاسب', 'مدير موارد بشرية', 'مصمم', 'مدير عمليات',\n 'محلل أعمال', 'مدير منتج', 'مسؤول نظام', 'مندوب خدمة عملاء',\n 'مهندس جودة', 'كاتب تقني', 'مسؤول قاعدة بيانات', 'مهندس شبكات'\n ],\n departments: [\n 'الهندسة', 'التسويق', 'المبيعات', 'الموارد البشرية', 'المالية',\n 'العمليات', 'خدمة العملاء', 'تكنولوجيا المعلومات', 'البحث والتطوير',\n 'القانونية', 'إدارة المنتجات', 'التصميم', 'ضمان الجودة', 'الإدارة'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const block = Random.int(1, 20);\n const streetNum = Random.int(1, 50);\n const houseNum = Random.int(1, 500);\n return `قطعة ${block}, شارع ${streetNum}, منزل ${houseNum}, ${street}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+965 9### ####',\n '+965 6### ####',\n '+965 5### ####',\n '+965 1### ####',\n '+965 2### ####',\n '9### ####',\n '6### ####',\n '5### ####',\n '1### ####',\n '2### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'qualitynet.net', 'kems.net', 'gulfnet.com.kw'\n ],\n\n companyNames: [\n 'بيت التمويل الكويتي', 'البنك الأهلي الكويتي', 'بنك الكويت الوطني',\n 'بنك الخليج', 'البنك التجاري الكويتي', 'شركة نفط الكويت',\n 'الخطوط الجوية الكويتية', 'زين الكويت', 'أمنية', 'فيفا',\n 'شركة الاتصالات المتنقلة', 'المشاريع الكبرى', 'أجيليتي'\n ],\n\n industries: [\n 'التكنولوجيا', 'المالية', 'الرعاية الصحية', 'التعليم', 'التجزئة',\n 'التصنيع', 'الإعلام', 'الاتصالات', 'الطاقة', 'النقل',\n 'العقارات', 'الاستشارات', 'الضيافة', 'السيارات', 'الطيران',\n 'النفط والغاز', 'البناء', 'البتروكيماويات'\n ],\n\n catchPhrases: [\n 'الابتكار للمستقبل', 'نجاحكم هو عملنا', 'نبني المستقبل معاً',\n 'الجودة والثقة', 'التميز والالتزام', 'حلول مستدامة',\n 'نخلق القيمة', 'شريككم الموثوق', 'نفخر بالكويت'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ar_QA: LocaleDefinition = {\n firstNamesMale: [\n 'محمد', 'أحمد', 'علي', 'حسن', 'حسين', 'عبدالله', 'عبدالرحمن', 'عبدالكريم',\n 'عبدالعزيز', 'عبداللطيف', 'عبدالوهاب', 'عبدالمحسن', 'عبدالمجيد',\n 'سعد', 'سعود', 'سلطان', 'سالم', 'سليمان', 'سامي', 'شامل',\n 'شجاع', 'شهاب', 'صادق', 'صالح', 'صلاح', 'صقر', 'طارق', 'طلال',\n 'عادل', 'عامر', 'عاصم', 'عاطف', 'عباس', 'عبدالباسط', 'عبدالتواب',\n 'عبدالخالق', 'عبدالرؤوف', 'عبدالسلام', 'عبدالعزيز', 'عبدالفتاح'\n ],\n firstNamesFemale: [\n 'فاطمة', 'زهراء', 'زينب', 'خديجة', 'مريم', 'نور', 'هدى', 'سعاد',\n 'ليلى', 'منى', 'هند', 'رنا', 'لينا', 'ديانا', 'ريما', 'نادين',\n 'كارمن', 'ريتا', 'جورجيت', 'ماري', 'تيريز', 'أنطوانيت', 'جوزفين',\n 'فيكتوريا', 'إليزابeth', 'مارغريت', 'كاثرين', 'آن', 'إليانور', 'صوفيا',\n 'عائشة', 'أمينة', 'خولة', 'لؤلؤة', 'جوهرة', 'درة', 'تحية', 'نعيمة'\n ],\n lastNames: [\n 'آل ثاني', 'آل خليفة', 'آل محمود', 'آل إبراهيم', 'آل جبر',\n 'آل محمد', 'آل أحمد', 'آل علي', 'آل حسن', 'آل حسين', 'آل إبراهيم',\n 'آل عيسى', 'آل يوسف', 'آل زيد', 'آل عمر', 'آل خالد', 'آل راشد',\n 'آل مبارك', 'آل حمد', 'آل فهد', 'آل سعود', 'آل فيصل', 'آل تركي',\n 'آل عبدالعزيز', 'آل سلطان', 'آل منصور', 'آل حميد', 'آل مجيد'\n ],\n streets: [\n 'شارع الكورنيش', 'شارج الاستقلال', 'شارع المطار القديم', 'شارع الدوحة',\n 'شارع الريان', 'شارع الوكرة', 'شارع دخان', 'شارع الشمال',\n 'شارع أم صلال', 'شارع الخور', 'شارع مسيعيد', 'شارع سلوى',\n 'شارع العزيزية', 'شارع المنصورة', 'شارع النجمة', 'شارع الهلال'\n ],\n cities: [\n 'الدوحة', 'الريان', 'الوكرة', 'الخور', 'أم صلال', 'دخان',\n 'مسيعيد', 'الشمالية', 'الغويرية', 'لوسيل', 'المنطقة الصناعية',\n 'العزيزية', 'النصر', 'المنصورة', 'النجمة', 'الهلال', 'بدع بن سعد'\n ],\n states: [\n 'الدوحة', 'الريان', 'الوكرة', 'الخور والدخيرة', 'أم صلال',\n 'الشمال', 'الجنوب'\n ],\n zipCodePattern: '',\n jobTitles: [\n 'مهندس برمجيات', 'مدير مشروع', 'محلل بيانات', 'مدير تسويق',\n 'مندوب مبيعات', 'محاسب', 'مدير موارد بشرية', 'مصمم', 'مدير عمليات',\n 'محلل أعمال', 'مدير منتج', 'مسؤول نظام', 'مندوب خدمة عملاء',\n 'مهندس جودة', 'كاتب تقني', 'مسؤول قاعدة بيانات', 'مهندس شبكات'\n ],\n departments: [\n 'الهندسة', 'التسويق', 'المبيعات', 'الموارد البشرية', 'المالية',\n 'العمليات', 'خدمة العملاء', 'تكنولوجيا المعلومات', 'البحث والتطوير',\n 'القانونية', 'إدارة المنتجات', 'التصميم', 'ضمان الجودة', 'الإدارة'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const zone = Random.int(1, 99);\n const streetNum = Random.int(1, 999);\n const buildingNum = Random.int(1, 9999);\n return `منطقة ${zone}, شارع ${streetNum}, مبنى ${buildingNum}, ${street}, ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return '';\n },\n\n phoneFormats: [\n '+974 3### ####',\n '+974 5### ####',\n '+974 6### ####',\n '+974 7### ####',\n '+974 4### ####',\n '3### ####',\n '5### ####',\n '6### ####',\n '7### ####',\n '4### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'qtel.net.qa', 'gulfnet.com.qa', 'qatar.net.qa'\n ],\n\n companyNames: [\n 'قطر للبترول', 'قطر للطيران', 'الخطوط الجوية القطرية', 'بنك قطر الوطني',\n 'مصرف قطر الإسلامي', 'بنك الدوحة', 'بنك قطر التجاري', 'بنك الأهلي',\n 'أوريدو', 'فودافون قطر', 'قطر للبترول', 'صناعات قطر', 'مسيعيد للبتروكيماويات'\n ],\n\n industries: [\n 'التكنولوجيا', 'المالية', 'الرعاية الصحية', 'التعليم', 'التجزئة',\n 'التصنيع', 'الإعلام', 'الاتصالات', 'الطاقة', 'النقل',\n 'العقارات', 'الاستشارات', 'الضيافة', 'السيارات', 'الطيران',\n 'النفط والغاز', 'البناء', 'البتروكيماويات'\n ],\n\n catchPhrases: [\n 'الابتكار للمستقبل', 'نجاحكم هو عملنا', 'نبني المستقبل معاً',\n 'الجودة والثقة', 'التميز والالتزام', 'حلول مستدامة',\n 'نخلق القيمة', 'شريككم الموثوق', 'نفخر بقطر'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ar_BH: LocaleDefinition = {\n firstNamesMale: [\n 'Mohammed', 'Ahmed', 'Ali', 'Hassan', 'Hussain', 'Abdullah', 'Abdulrahman', 'Ibrahim',\n 'Youssef', 'Mahmoud', 'Omar', 'Khalid', 'Saad', 'Sultan', 'Fahad', 'Nasser',\n 'Hamad', 'Isa', 'Salman', 'Qasim', 'Jassim', 'Ebrahim', 'Adel', 'Sami',\n 'Tariq', 'Zaki', 'Waleed', 'Hisham', 'Faisal', 'Abdulaziz', 'Mansour', 'Saeed'\n ],\n firstNamesFemale: [\n 'Fatima', 'Maryam', 'Aisha', 'Khadija', 'Zainab', 'Noura', 'Sarah', 'Maha',\n 'Hessa', 'Lulwa', 'Latifa', 'Abeer', 'Reem', 'Hind', 'Jawaher', 'Mona',\n 'Amal', 'Deema', 'Lama', 'Nada', 'Hanan', 'Ghada', 'Basma', 'Arwa',\n 'Noor', 'Ayat', 'Sara', 'Layla', 'Rania', 'Samira', 'Huda', 'Manal'\n ],\n lastNames: [\n 'Al Khalifa', 'Al Zayani', 'Al Noaimi', 'Al Mulla', 'Al Qassim', 'Al Bin Ali',\n 'Al Arrayed', 'Al Doseri', 'Al Marzooq', 'Al Shamlan', 'Al Tajir', 'Al Fardan',\n 'Al Moayyed', 'Al Aali', 'Al Ansari', 'Al Kooheji', 'Al Mudharib', 'Al Baharna',\n 'Al Saie', 'Al Maskari', 'Al Lawati', 'Al Balushi', 'Al Harthy', 'Al Kindi'\n ],\n streets: [\n 'شارع الملك فهد', 'شارع الحكومة', 'شارع فيصل بن فهد', 'شارع الشيخ عيسى',\n 'طريق البديع', 'شارع المحرق', 'شارع المنامة', 'شارع الرفاع', 'شارع عوالي',\n 'طريق الدرين', 'شارع جلفار', 'شارع القفول', 'شارع النخيل', 'شارع اللؤلؤ'\n ],\n cities: [\n 'المنامة', 'المحرق', 'الرفاع', 'مدينة حمد', 'مدينة عيسى', 'سترة',\n 'جد حفص', 'البديع', 'باربار', 'درز', 'كرباباد', 'النويدرات', 'القفل'\n ],\n states: [\n 'العاصمة', 'المحرق', 'الشمالية', 'الجنوبية'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'مهندس برمجيات', 'مدير مشروع', 'محلل بيانات', 'مدير تسويق',\n 'مندوب مبيعات', 'محاسب', 'مدير موارد بشرية', 'مصمم', 'مدير عمليات',\n 'محلل أعمال', 'مدير منتج', 'مسؤول نظام', 'مندوب خدمة عملاء',\n 'مهندس جودة', 'كاتب تقني', 'مسؤول قاعدة بيانات', 'مهندس شبكات'\n ],\n departments: [\n 'الهندسة', 'التسويق', 'المبيعات', 'الموارد البشرية', 'المالية',\n 'العمليات', 'خدمة العملاء', 'تكنولوجيا المعلومات', 'البحث والتطوير',\n 'القانونية', 'إدارة المنتجات', 'التصميم', 'ضمان الجودة', 'الإدارة'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const buildingNumber = Random.int(1, 9999);\n const block = Random.int(1, 999);\n return `مبنى ${buildingNumber}, شارع ${street}, مجمع ${block}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+973 #### ####',\n '+973 3### ####',\n '+973 6### ####',\n '+973 7### ####',\n '#### ####',\n '3### ####',\n '6### ####',\n '7### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'batelco.com.bh', 'benefit.com.bh', 'zain.com'\n ],\n\n companyNames: [\n 'ألبا', 'بتلكو', 'بنك البحرين الوطني', 'بنك البحرين الإسلامي',\n 'أهلية يونايتد', 'شركة طيران الخليج', 'زين البحرين', 'ستكو',\n 'مصرف السلام', 'بيت التمويل الخليجي', 'شركة نور المالية'\n ],\n\n industries: [\n 'التكنولوجيا', 'المالية', 'الرعاية الصحية', 'التعليم', 'التجزئة',\n 'التصنيع', 'الإعلام', 'الاتصالات', 'الطاقة', 'النقل',\n 'العقارات', 'الاستشارات', 'الضيافة', 'السيارات', 'الطيران',\n 'النفط والغاز', 'الألمنيوم', 'البناء'\n ],\n\n catchPhrases: [\n 'الابتكار للمستقبل', 'نجاحكم هو عملنا', 'نبني المستقبل معاً',\n 'الجودة والثقة', 'التميز والالتزام', 'حلول مستدامة',\n 'نخلق القيمة', 'شريككم الموثوق', 'نفخر بالبحرين'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ar_DZ: LocaleDefinition = {\n firstNamesMale: [\n 'Mohammed', 'Ahmed', 'Ali', 'Hassan', 'Hussain', 'Abdullah', 'Omar', 'Youssef',\n 'Mahmoud', 'Ibrahim', 'Khalid', 'Saad', 'Sultan', 'Fahad', 'Nasser',\n 'Hamad', 'Salim', 'Rachid', 'Karim', 'Farid', 'Mourad', 'Kamel', 'Nabil',\n 'Tarek', 'Zinedine', 'Riyad', 'Islam', 'Amine', 'Sofiane', 'Mehdi'\n ],\n firstNamesFemale: [\n 'Fatima', 'Maryam', 'Aisha', 'Khadija', 'Zainab', 'Noura', 'Sarah', 'Maha',\n 'Amel', 'Nadia', 'Samira', 'Houria', 'Zohra', 'Fatiha', 'Leila', 'Nassima',\n 'Khadidja', 'Rahma', 'Imene', 'Yasmina', 'Salima', 'Djamila', 'Chahrazed',\n 'Noor', 'Ayat', 'Sara', 'Layla', 'Rania', 'Manel', 'Asma', 'Souad'\n ],\n lastNames: [\n 'Benali', 'Benzema', 'Brahimi', 'Mahrez', 'Feghouli', 'Slimani', 'Mandi',\n 'Bounedjah', 'Belmadi', 'Halliche', 'Ghoulam', 'Bentaleb', 'Taider',\n 'Soudani', 'Yacoubi', 'Medjani', 'Carl Medjani', 'Lacen', 'Kadir',\n 'Mostefa', 'Mesbah', 'Ziani', 'Yahia', 'Hassouna', 'Djabou', 'Soudani'\n ],\n streets: [\n 'شارع ديدوش مراد', 'شارع بن بولعيد', 'شارع العربي بن مهيدي', 'شارع الاستقلال',\n 'شارع محمد الخامس', 'شارع هواري بومدين', 'شارع فرحات عباس', 'شارع عبان رمضان',\n 'طريق الجزائر', 'شارع وهران', 'شارع قسنطينة', 'شارع عنابة', 'شارع البليدة'\n ],\n cities: [\n 'الجزائر', 'وهران', 'قسنطينة', 'عنابة', 'البليدة', 'باتنة', 'سطيف',\n 'سيدي بلعباس', 'بجاية', 'تلمسان', 'ورقلة', 'بسكرة', 'تيزي وزو',\n 'بشار', 'سطيف', 'الجلفة', 'البويرة', 'تيسمسيلت', 'الوادي', 'خنشلة'\n ],\n states: [\n 'الجزائر', 'وهران', 'قسنطينة', 'عنابة', 'البليدة', 'باتنة', 'سطيف',\n 'سيدي بلعباس', 'بجاية', 'تلمسان', 'ورقلة', 'بسكرة', 'تيزي وزو',\n 'بشار', 'الجلفة', 'البويرة', 'تيسمسيلت', 'الوادي', 'خنشلة', ' سوق أهراس'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'مهندس برمجيات', 'مدير مشروع', 'محلل بيانات', 'مدير تسويق',\n 'مندوب مبيعات', 'محاسب', 'مدير موارد بشرية', 'مصمم', 'مدير عمليات',\n 'محلل أعمال', 'مدير منتج', 'مسؤول نظام', 'مندوب خدمة عملاء',\n 'مهندس جودة', 'كاتب تقني', 'مسؤول قاعدة بيانات', 'مهندس شبكات'\n ],\n departments: [\n 'الهندسة', 'التسويق', 'المبيعات', 'الموارد البشرية', 'المالية',\n 'العمليات', 'خدمة العملاء', 'تكنولوجيا المعلومات', 'البحث والتطوير',\n 'القانونية', 'إدارة المنتجات', 'التصميم', 'ضمان الجودة', 'الإدارة'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const buildingNumber = Random.int(1, 9999);\n const quartier = Random.pick(['وسط', 'شمال', 'جنوب', 'شرق', 'غرب']);\n return `${buildingNumber} شارع ${street}, حي ${quartier}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+213 5## ## ## ##',\n '+213 6## ## ## ##',\n '+213 7## ## ## ##',\n '+213 21 ## ## ##',\n '+213 31 ## ## ##',\n '+213 41 ## ## ##',\n '05## ## ## ##',\n '06## ## ## ##',\n '07## ## ## ##'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'mail.dz', 'yahoo.dz', 'ooredoo.dz', 'mobilis.dz'\n ],\n\n companyNames: [\n 'سوناطراك', 'جازي', 'أوريدو الجزائر', 'موبيليس', 'الخطوط الجوية الجزائرية',\n 'البنك الوطني الجزائري', 'بنك الجزائر الخارجية', 'البنك الجزائري',\n 'مجمع سيفيتال', 'مجمع تودرا', 'مجمع حداد', 'شركة الأسمنت الجزائرية'\n ],\n\n industries: [\n 'التكنولوجيا', 'المالية', 'الرعاية الصحية', 'التعليم', 'التجزئة',\n 'التصنيع', 'الإعلام', 'الاتصالات', 'الطاقة', 'النقل',\n 'العقارات', 'الاستشارات', 'الضيافة', 'السيارات', 'الطيران',\n 'النفط والغاز', 'البناء', 'الصيدلة'\n ],\n\n catchPhrases: [\n 'الابتكار للمستقبل', 'نجاحكم هو عملنا', 'نبني المستقبل معاً',\n 'الجودة والثقة', 'التميز والالتزام', 'حلول مستدامة',\n 'نخلق القيمة', 'شريككم الموثوق', 'نفخر بالجزائر'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ar_JO: LocaleDefinition = {\n firstNamesMale: [\n 'Mohammed', 'Ahmed', 'Ali', 'Hassan', 'Hussain', 'Abdullah', 'Omar', 'Youssef',\n 'Mahmoud', 'Ibrahim', 'Khalid', 'Saad', 'Fahad', 'Nasser', 'Hamad',\n 'Salim', 'Rashid', 'Karim', 'Farid', 'Tariq', 'Zaid', 'Rami', 'Sami',\n 'Hisham', 'Faisal', 'Majed', 'Waleed', 'Bassam', 'Jamil', 'Nabil'\n ],\n firstNamesFemale: [\n 'Fatima', 'Maryam', 'Aisha', 'Khadija', 'Zainab', 'Noura', 'Sarah', 'Maha',\n 'Layla', 'Rania', 'Amal', 'Nadia', 'Samira', 'Huda', 'Manal', 'Asma',\n 'Souad', 'Hanan', 'Ghada', 'Basma', 'Arwa', 'Reema', 'Dina', 'Mona',\n 'Noor', 'Ayat', 'Sara', 'Jana', 'Lama', 'Yara', 'Tala', 'Nour'\n ],\n lastNames: [\n 'Al-Hashemi', 'Al-Masri', 'Al-Jordan', 'Al-Amman', 'Al-Zarqa', 'Al-Irbid',\n 'Al-Karak', 'Al-Salt', 'Al-Mafraq', 'Al-Aqaba', 'Al-Jerash', 'Al-Petra',\n 'Al-Hussein', 'Al-Abdullah', 'Al-Hassan', 'Al-Faisal', 'Al-Talal',\n 'Al-Ghazi', 'Al-Rashid', 'Al-Said', 'Al-Majed', 'Al-Fahd', 'Al-Saud'\n ],\n streets: [\n 'شارع الملك عبدالله', 'شارع الملك طلال', 'شارع الملك حسين', 'شارع المدينة المنورة',\n 'شارع مكة المكرمة', 'شارع القدس', 'شارع بيروت', 'شارع دمشق',\n 'شارع الرياض', 'شارع الخليج', 'شارع الاستقلال', 'شارع الثقافة', 'شارع الجامعة'\n ],\n cities: [\n 'عمان', 'الزرقاء', 'إربد', 'الرصيفة', 'وادي السير', 'العقبة', 'السلط',\n 'مادبا', 'الكرك', 'المفرق', 'جرش', 'عجلون', 'معان', 'طفيلة', 'الرمثا'\n ],\n states: [\n 'عمان', 'الزرقاء', 'إربد', 'العقبة', 'البلقاء', 'مادبا', 'الكرك',\n 'المفرق', 'جرش', 'عجلون', 'معان', 'طفيلة'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'مهندس برمجيات', 'مدير مشروع', 'محلل بيانات', 'مدير تسويق',\n 'مندوب مبيعات', 'محاسب', 'مدير موارد بشرية', 'مصمم', 'مدير عمليات',\n 'محلل أعمال', 'مدير منتج', 'مسؤول نظام', 'مندوب خدمة عملاء',\n 'مهندس جودة', 'كاتب تقني', 'مسؤول قاعدة بيانات', 'مهندس شبكات'\n ],\n departments: [\n 'الهندسة', 'التسويق', 'المبيعات', 'الموارد البشرية', 'المالية',\n 'العمليات', 'خدمة العملاء', 'تكنولوجيا المعلومات', 'البحث والتطوير',\n 'القانونية', 'إدارة المنتجات', 'التصميم', 'ضمان الجودة', 'الإدارة'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const buildingNumber = Random.int(1, 9999);\n const area = Random.pick(['العبدلي', 'الجبيهة', 'صويلح', 'تلاع العلي', 'الشميساني', 'مدينة الحسين']);\n return `${area}, شارع ${street}, مبنى ${buildingNumber}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+962 7## ### ####',\n '+962 77## ####',\n '+962 78## ####',\n '+962 79## ####',\n '+962 6 ### ####',\n '+962 2 ### ####',\n '+962 3 ### ####',\n '07## ### ####',\n '06 ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'jo.mail.com', 'zain.jo', 'orange.jo', 'umnia.jo'\n ],\n\n companyNames: [\n 'شركة الاتصالات الأردنية', 'زين الأردن', 'أورانج الأردن', 'أمنية',\n 'البنك الأهلي الأردني', 'بنك الإسكان', 'البنك العربي', 'بنك الأردن',\n 'الخطوط الجوية الملكية الأردنية', 'شركة الكهرباء الوطنية', 'منجم الفوسفات الأردني'\n ],\n\n industries: [\n 'التكنولوجيا', 'المالية', 'الرعاية الصحية', 'التعليم', 'التجزئة',\n 'التصنيع', 'الإعلام', 'الاتصالات', 'الطاقة', 'النقل',\n 'العقارات', 'الاستشارات', 'الضيافة', 'السيارات', 'الطيران',\n 'التعدين', 'البناء', 'السياحة'\n ],\n\n catchPhrases: [\n 'الابتكار للمستقبل', 'نجاحكم هو عملنا', 'نبني المستقبل معاً',\n 'الجودة والثقة', 'التميز والالتزام', 'حلول مستدامة',\n 'نخلق القيمة', 'شريككم الموثوق', 'نفخر بالأردن'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ar_LB: LocaleDefinition = {\n firstNamesMale: [\n 'Mohammed', 'Ahmed', 'Ali', 'Hassan', 'Hussain', 'Abdullah', 'Omar', 'Youssef',\n 'Mahmoud', 'Ibrahim', 'Khalid', 'Saad', 'Fahad', 'Nasser', 'Hamad',\n 'Salim', 'Rashid', 'Karim', 'Farid', 'Tariq', 'Ziad', 'Rami', 'Sami',\n 'Hisham', 'Faisal', 'Majed', 'Waleed', 'Bassam', 'Jamil', 'Nabil',\n 'Georges', 'Michel', 'Antoine', 'Joseph', 'Pierre', 'Claude', 'Andre'\n ],\n firstNamesFemale: [\n 'Fatima', 'Maryam', 'Aisha', 'Khadija', 'Zainab', 'Noura', 'Sarah', 'Maha',\n 'Layla', 'Rania', 'Amal', 'Nadia', 'Samira', 'Huda', 'Manal', 'Asma',\n 'Souad', 'Hanan', 'Ghada', 'Basma', 'Arwa', 'Reema', 'Dina', 'Mona',\n 'Noor', 'Ayat', 'Sara', 'Jana', 'Lama', 'Yara', 'Tala', 'Nour',\n 'Marie', 'Christine', 'Nadine', 'Sylvie', 'Carine', 'Lina', 'Rita', 'Maya'\n ],\n lastNames: [\n 'Al-Hariri', 'Al-Solh', 'Al-Khoury', 'Al-Chamoun', 'Al-Franjieh', 'Al-Gemayel',\n 'Al-Murr', 'Al-Jumblatt', 'Al-Assaad', 'Al-Khalil', 'Al-Zein', 'Al-Asmar',\n 'Al-Hajj', 'Al-Masri', 'Al-Khoury', 'Al-Najjar', 'Al-Sabbagh', 'Al-Haddad',\n 'Al-Khoury', 'Al-Murr', 'Al-Jumblatt', 'Al-Assaad', 'Al-Khalil', 'Al-Zein'\n ],\n streets: [\n 'شارع الحمرا', 'شارع الروشة', 'شارع المنصور', 'شارع الأشرفية', 'شارع زقاق البلاط',\n 'شارع مار مخايل', 'شارع الجميزة', 'شارع ميناء الحصن', 'شارع فردان',\n 'شارع بدارو', 'شارع سان نيكولا', 'شارع كليمنصو', 'شارع رستم', 'شارع عبد العزيز'\n ],\n cities: [\n 'بيروت', 'طرابلس', 'صيدا', 'صور', 'جبيل', 'زحلة', 'بعلبك',\n 'النبطية', 'جونية', 'عاليه', 'بكفيا', 'برمانا', 'بترون', 'بشري',\n 'جزين', 'مرجعيون', 'حاصبيا', 'راشيا', 'الشوف', 'كسروان'\n ],\n states: [\n 'بيروت', 'جبل لبنان', 'الشمال', 'الجنوب', 'البقاع', 'النبطية', 'عكار', 'بعلبك الهرمل'\n ],\n zipCodePattern: '#### ####',\n jobTitles: [\n 'مهندس برمجيات', 'مدير مشروع', 'محلل بيانات', 'مدير تسويق',\n 'مندوب مبيعات', 'محاسب', 'مدير موارد بشرية', 'مصمم', 'مدير عمليات',\n 'محلل أعمال', 'مدير منتج', 'مسؤول نظام', 'مندوب خدمة عملاء',\n 'مهندس جودة', 'كاتب تقني', 'مسؤول قاعدة بيانات', 'مهندس شبكات'\n ],\n departments: [\n 'الهندسة', 'التسويق', 'المبيعات', 'الموارد البشرية', 'المالية',\n 'العمليات', 'خدمة العملاء', 'تكنولوجيا المعلومات', 'البحث والتطوير',\n 'القانونية', 'إدارة المنتجات', 'التصميم', 'ضمان الجودة', 'الإدارة'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const buildingNumber = Random.int(1, 9999);\n const floor = Random.int(1, 20);\n return `شارع ${street}, مبنى ${buildingNumber}, طابق ${floor}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n const code = String(Random.int(1000, 9999));\n return code.substring(0, 4) + ' ' + String(Random.int(1000, 9999)).substring(0, 4);\n },\n\n phoneFormats: [\n '+961 ## ### ###',\n '+961 3 ### ###',\n '+961 70 ### ###',\n '+961 71 ### ###',\n '+961 76 ### ###',\n '+961 78 ### ###',\n '+961 79 ### ###',\n '+961 1 ### ###',\n '+961 4 ### ###',\n '+961 5 ### ###',\n '+962 6 ### ###',\n '0## ### ###',\n '01 ### ###'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'terra.net.lb', 'cyberia.net.lb', 'sodetel.net.lb'\n ],\n\n companyNames: [\n 'بنك لبنان والمهجر', 'بنك عودة', 'بنك بيبلوس', 'بنك بلوم',\n 'بنك ميد', 'بنك ستاندرد تشارترد', 'توتال لبنان', 'شركة طيران الشرق الأوسط',\n 'تاتش', 'ألفا', 'ليبان سيل', 'إم تي إن تاتش'\n ],\n\n industries: [\n 'التكنولوجيا', 'المالية', 'الرعاية الصحية', 'التعليم', 'التجزئة',\n 'التصنيع', 'الإعلام', 'الاتصالات', 'الطاقة', 'النقل',\n 'العقارات', 'الاستشارات', 'الضيافة', 'السيارات', 'الطيران',\n 'السياحة', 'البناء', 'المجوهرات'\n ],\n\n catchPhrases: [\n 'الابتكار للمستقبل', 'نجاحكم هو عملنا', 'نبني المستقبل معاً',\n 'الجودة والثقة', 'التميز والالتزام', 'حلول مستدامة',\n 'نخلق القيمة', 'شريككم الموثوق', 'نفخر بلبنان'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ar_LY: LocaleDefinition = {\n firstNamesMale: [\n 'Mohammed', 'Ahmed', 'Ali', 'Hassan', 'Hussain', 'Abdullah', 'Omar', 'Youssef',\n 'Mahmoud', 'Ibrahim', 'Khalid', 'Saad', 'Fahad', 'Nasser', 'Hamad',\n 'Salim', 'Rashid', 'Karim', 'Farid', 'Tariq', 'Zaid', 'Rami', 'Sami',\n 'Hisham', 'Faisal', 'Majed', 'Waleed', 'Bassam', 'Jamil', 'Nabil'\n ],\n firstNamesFemale: [\n 'Fatima', 'Maryam', 'Aisha', 'Khadija', 'Zainab', 'Noura', 'Sarah', 'Maha',\n 'Layla', 'Rania', 'Amal', 'Nadia', 'Samira', 'Huda', 'Manal', 'Asma',\n 'Souad', 'Hanan', 'Ghada', 'Basma', 'Arwa', 'Reema', 'Dina', 'Mona',\n 'Noor', 'Ayat', 'Sara', 'Jana', 'Lama', 'Yara', 'Tala', 'Nour'\n ],\n lastNames: [\n 'Al-Gaddafi', 'Al-Senussi', 'Al-Misrati', 'Al-Tarhouni', 'Al-Zintani',\n 'Al-Warfalli', 'Al-Magariaf', 'Al-Abbar', 'Al-Suwaihli', 'Al-Hasi',\n 'Al-Barghathi', 'Al-Dabaashi', 'Al-Ghwell', 'Al-Thinni', 'Al-Abadi',\n 'Al-Mismari', 'Al-Sharif', 'Al-Alawi', 'Al-Idrisi', 'Al-Mahdi'\n ],\n streets: [\n 'شارع عمر المختار', 'شارع الاستقلال', 'شارع طرابلس', 'شارع بنغازي',\n 'شارع الزاوية', 'شارع مصراتة', 'شارع سبها', 'شارع درنة',\n 'شارع البيضاء', 'شارع طبرق', 'شارع الخمس', 'شارع الزاوية', 'شارع غريان'\n ],\n cities: [\n 'طرابلس', 'بنغازي', 'مصراتة', 'الزاوية', 'البيضاء', 'سبها', 'درنة',\n 'الخمس', 'زليتن', 'أجدابيا', 'تبرق', 'غات', 'غدامس', 'الكفرة',\n 'مرزق', 'ترهونة', 'غريان', 'نالوت', 'زوارة', 'بن جواد'\n ],\n states: [\n 'طرابلس', 'بنغازي', 'مصراتة', 'الجبل الغربي', 'الجبل الأخضر', 'فزان',\n 'برقة', 'الزاوية', 'الخمسة', 'سبها', 'درنة', 'البيضاء', 'تبرق'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'مهندس برمجيات', 'مدير مشروع', 'محلل بيانات', 'مدير تسويق',\n 'مندوب مبيعات', 'محاسب', 'مدير موارد بشرية', 'مصمم', 'مدير عمليات',\n 'محلل أعمال', 'مدير منتج', 'مسؤول نظام', 'مندوب خدمة عملاء',\n 'مهندس جودة', 'كاتب تقني', 'مسؤول قاعدة بيانات', 'مهندس شبكات'\n ],\n departments: [\n 'الهندسة', 'التسويق', 'المبيعات', 'الموارد البشرية', 'المالية',\n 'العمليات', 'خدمة العملاء', 'تكنولوجيا المعلومات', 'البحث والتطوير',\n 'القانونية', 'إدارة المنتجات', 'التصميم', 'ضمان الجودة', 'الإدارة'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const buildingNumber = Random.int(1, 9999);\n const district = Random.pick(['وسط المدينة', 'الضاحية', 'المنطقة الصناعية', 'المنطقة السكنية']);\n return `المنطقة ${district}, شارع ${street}, مبنى ${buildingNumber}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+218 91 ### ####',\n '+218 92 ### ####',\n '+218 93 ### ####',\n '+218 94 ### ####',\n '+218 21 ### ####',\n '+218 23 ### ####',\n '+218 24 ### ####',\n '091 ### ####',\n '092 ### ####',\n '021 ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'libya.ly', 'lapost.ly', 'mtt.gov.ly'\n ],\n\n companyNames: [\n 'المؤسسة الوطنية للنفط', 'مصرف ليبيا المركزي', 'مصرف الصحابة',\n 'مصرف الوحدة', 'المصرف التجاري الوطني', 'مصرف الجمهورية',\n 'الخطوط الجوية الليبية', 'ليبيانا', 'المدار الجديد', 'حاتم'\n ],\n\n industries: [\n 'التكنولوجيا', 'المالية', 'الرعاية الصحية', 'التعليم', 'التجزئة',\n 'التصنيع', 'الإعلام', 'الاتصالات', 'الطاقة', 'النقل',\n 'العقارات', 'الاستشارات', 'الضيافة', 'السيارات', 'الطيران',\n 'النفط والغاز', 'البناء', 'الزراعة'\n ],\n\n catchPhrases: [\n 'الابتكار للمستقبل', 'نجاحكم هو عملنا', 'نبني المستقبل معاً',\n 'الجودة والثقة', 'التميز والالتزام', 'حلول مستدامة',\n 'نخلق القيمة', 'شريككم الموثوق', 'نفخر بليبيا'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ar_OM: LocaleDefinition = {\n firstNamesMale: [\n 'Mohammed', 'Ahmed', 'Ali', 'Hassan', 'Hussain', 'Abdullah', 'Abdulrahman', 'Ibrahim',\n 'Youssef', 'Mahmoud', 'Omar', 'Khalid', 'Saad', 'Sultan', 'Fahad', 'Nasser',\n 'Hamad', 'Isa', 'Salman', 'Qasim', 'Jassim', 'Ebrahim', 'Adel', 'Sami',\n 'Tariq', 'Zaki', 'Waleed', 'Hisham', 'Faisal', 'Abdulaziz', 'Mansour', 'Saeed'\n ],\n firstNamesFemale: [\n 'Fatima', 'Maryam', 'Aisha', 'Khadija', 'Zainab', 'Noura', 'Sarah', 'Maha',\n 'Hessa', 'Lulwa', 'Latifa', 'Abeer', 'Reem', 'Hind', 'Jawaher', 'Mona',\n 'Amal', 'Deema', 'Lama', 'Nada', 'Hanan', 'Ghada', 'Basma', 'Arwa',\n 'Noor', 'Ayat', 'Sara', 'Layla', 'Rania', 'Samira', 'Huda', 'Manal'\n ],\n lastNames: [\n 'Al Busaidi', 'Al Said', 'Al Lawati', 'Al Balushi', 'Al Harthy', 'Al Kindi',\n 'Al Zedjali', 'Al Mawali', 'Al Hinai', 'Al Ghafri', 'Al Wahaibi', 'Al Sheibani',\n 'Al Mashikhi', 'Al Rawahi', 'Al Mazroui', 'Al Hosni', 'Al Bahri', 'Al Shukaili',\n 'Al Mamari', 'Al Jabri', 'Al Safi', 'Al Obeidani', 'Al Kaabi', 'Al Nuaimi'\n ],\n streets: [\n 'شارع السلطان قابوس', 'شارع القرآن الكريم', 'شارع النهضة', 'شارع النسيم',\n 'شارع القرم', 'شارع شاطئ القرم', 'شارع الغبرة', 'شارع الخوير',\n 'شارع المطار', 'شارع Ruwi', 'شارع Muttrah', 'شارع Nizwa', 'شارع Salalah'\n ],\n cities: [\n 'مسقط', 'صلالة', 'نزوى', 'صور', 'صحار', 'عبري', 'الرستاق',\n 'بركاء', 'المصنعة', 'شناص', 'صحار', 'مدحاء', 'دبا', 'خصب',\n 'هيماء', 'محوت', 'أدم', 'بدبد', 'سمائل', 'بهلاء'\n ],\n states: [\n 'مسقط', 'ظفار', 'الداخلية', 'الشرقية', 'الباطنة', 'الظاهرة',\n 'مسندم', 'البريمي', 'شمال الشرقية', 'شمال الباطنة', 'جنوب الباطنة', 'جنوب الشرقية'\n ],\n zipCodePattern: '###',\n jobTitles: [\n 'مهندس برمجيات', 'مدير مشروع', 'محلل بيانات', 'مدير تسويق',\n 'مندوب مبيعات', 'محاسب', 'مدير موارد بشرية', 'مصمم', 'مدير عمليات',\n 'محلل أعمال', 'مدير منتج', 'مسؤول نظام', 'مندوب خدمة عملاء',\n 'مهندس جودة', 'كاتب تقني', 'مسؤول قاعدة بيانات', 'مهندس شبكات'\n ],\n departments: [\n 'الهندسة', 'التسويق', 'المبيعات', 'الموارد البشرية', 'المالية',\n 'العمليات', 'خدمة العملاء', 'تكنولوجيا المعلومات', 'البحث والتطوير',\n 'القانونية', 'إدارة المنتجات', 'التصميم', 'ضمان الجودة', 'الإدارة'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const buildingNumber = Random.int(1, 9999);\n const wilayat = Random.pick(['مسقط', 'العامرات', 'بوشر', 'السيب', 'قريات']);\n return `ولاية ${wilayat}, شارع ${street}, مبنى ${buildingNumber}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(100, 999));\n },\n\n phoneFormats: [\n '+968 9### ####',\n '+968 7### ####',\n '+968 2### ####',\n '+968 8### ####',\n '9### ####',\n '7### ####',\n '2### ####',\n '8### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'omantel.net.om', 'nawras.com.om', 'oqal.om'\n ],\n\n companyNames: [\n 'شركة تنمية نفط عمان', 'البنك الأهلي العماني', 'بنك مسقط',\n 'البنك الوطني العماني', 'بنك ظفار', 'الخطوط الجوية العمانية',\n 'عُمان تل', 'أوريدو عمان', 'فودافون عمان', 'شركة الغاز العمانية'\n ],\n\n industries: [\n 'التكنولوجيا', 'المالية', 'الرعاية الصحية', 'التعليم', 'التجزئة',\n 'التصنيع', 'الإعلام', 'الاتصالات', 'الطاقة', 'النقل',\n 'العقارات', 'الاستشارات', 'الضيافة', 'السيارات', 'الطيران',\n 'النفط والغاز', 'البناء', 'السياحة', 'الصيد'\n ],\n\n catchPhrases: [\n 'الابتكار للمستقبل', 'نجاحكم هو عملنا', 'نبني المستقبل معاً',\n 'الجودة والثقة', 'التميز والالتزام', 'حلول مستدامة',\n 'نخلق القيمة', 'شريككم الموثوق', 'نفخر بعمان'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ar_SD: LocaleDefinition = {\n firstNamesMale: [\n 'Mohammed', 'Ahmed', 'Ali', 'Hassan', 'Hussain', 'Abdullah', 'Omar', 'Youssef',\n 'Mahmoud', 'Ibrahim', 'Khalid', 'Saad', 'Sultan', 'Fahad', 'Nasser',\n 'Hamad', 'Salim', 'Rashid', 'Karim', 'Farid', 'Tariq', 'Zaid', 'Rami',\n 'Sami', 'Hisham', 'Faisal', 'Majed', 'Waleed', 'Bassam', 'Jamil'\n ],\n firstNamesFemale: [\n 'Fatima', 'Maryam', 'Aisha', 'Khadija', 'Zainab', 'Noura', 'Sarah', 'Maha',\n 'Layla', 'Rania', 'Amal', 'Nadia', 'Samira', 'Huda', 'Manal', 'Asma',\n 'Souad', 'Hanan', 'Ghada', 'Basma', 'Arwa', 'Reema', 'Dina', 'Mona',\n 'Noor', 'Ayat', 'Sara', 'Jana', 'Lama', 'Yara', 'Tala', 'Nour'\n ],\n lastNames: [\n 'Al-Mahdi', 'Al-Mirghani', 'Al-Attab', 'Al-Hindi', 'Al-Zubeir', 'Al-Nur',\n 'Al-Tijani', 'Al-Sadiq', 'Al-Hassan', 'Al-Bashir', 'Al-Turabi', 'Al-Khalifa',\n 'Al-Sayed', 'Al-Sharif', 'Al-Ansari', 'Al-Khatmiyya', 'Al-Azhari',\n 'Al-Mekki', 'Al-Madani', 'Al-Sudan', 'Al-Nile', 'Al-Khartoum'\n ],\n streets: [\n 'شارع النيل', 'شارع القصر', 'شارع الجامعة', 'شارع المطار',\n 'شارع عبيد ختم', 'شارع السيد عبد الرحمن', 'شارع المك نمر',\n 'شارع الأزهري', 'شارع محمد نجيب', 'شارع السجانة', 'شارع كوبري'\n ],\n cities: [\n 'الخرطوم', 'أم درمان', 'الخرطوم بحري', 'بورتسودان', 'كسلا', 'القضارف',\n 'ود مدني', 'الأبيض', 'عطبرة', 'شندي', 'دنقلا', 'حلفا الجديدة',\n 'بورتسودان', 'كادوقلي', 'نيالا', 'الفاشر', 'جنينة', 'زالنجي'\n ],\n states: [\n 'الخرطوم', 'الجزيرة', 'كسلا', 'القضارف', 'سنار', 'النيل الأزرق',\n 'شمال كردفان', 'جنوب كردفان', 'غرب كردفان', 'النيل الأبيض',\n 'نهر النيل', 'الشمالية', 'البحر الأحمر', 'كسلا', 'دارفور'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'مهندس برمجيات', 'مدير مشروع', 'محلل بيانات', 'مدير تسويق',\n 'مندوب مبيعات', 'محاسب', 'مدير موارد بشرية', 'مصمم', 'مدير عمليات',\n 'محلل أعمال', 'مدير منتج', 'مسؤول نظام', 'مندوب خدمة عملاء',\n 'مهندس جودة', 'كاتب تقني', 'مسؤول قاعدة بيانات', 'مهندس شبكات'\n ],\n departments: [\n 'الهندسة', 'التسويق', 'المبيعات', 'الموارد البشرية', 'المالية',\n 'العمليات', 'خدمة العملاء', 'تكنولوجيا المعلومات', 'البحث والتطوير',\n 'القانونية', 'إدارة المنتجات', 'التصميم', 'ضمان الجودة', 'الإدارة'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const buildingNumber = Random.int(1, 9999);\n const district = Random.pick(['العائلات', 'الرياض', 'السجانة', 'كوبر', 'أم درمان', 'بحري']);\n return `حي ${district}, شارع ${street}, مبنى ${buildingNumber}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+249 9## ### ####',\n '+249 90## ### ###',\n '+249 91## ### ###',\n '+249 92## ### ###',\n '+249 1## ### ###',\n '09## ### ####',\n '01## ### ###'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'sudanmail.net', 'sudantel.net.sd', 'zain.sd'\n ],\n\n companyNames: [\n 'شركة سوداتل', 'زين السودان', 'ام تي ان السودان', 'سوداني',\n 'بنك الخرطوم', 'البنك الأهلي السوداني', 'بنك فيصل الإسلامي',\n 'شركة خطوط الطيران السودانية', 'مصرف الوحدة', 'بنك أم درمان الوطني'\n ],\n\n industries: [\n 'التكنولوجيا', 'المالية', 'الرعاية الصحية', 'التعليم', 'التجزئة',\n 'التصنيع', 'الإعلام', 'الاتصالات', 'الطاقة', 'النقل',\n 'العقارات', 'الاستشارات', 'الضيافة', 'السيارات', 'الزراعة',\n 'التعدين', 'البناء', 'الثروة الحيوانية'\n ],\n\n catchPhrases: [\n 'الابتكار للمستقبل', 'نجاحكم هو عملنا', 'نبني المستقبل معاً',\n 'الجودة والثقة', 'التميز والالتزام', 'حلول مستدامة',\n 'نخلق القيمة', 'شريككم الموثوق', 'نفخر بالسودان'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ar_SY: LocaleDefinition = {\n firstNamesMale: [\n 'Mohammed', 'Ahmed', 'Ali', 'Hassan', 'Hussain', 'Abdullah', 'Omar', 'Youssef',\n 'Mahmoud', 'Ibrahim', 'Khalid', 'Saad', 'Fahad', 'Nasser', 'Hamad',\n 'Salim', 'Rashid', 'Karim', 'Farid', 'Tariq', 'Zaid', 'Rami', 'Sami',\n 'Hisham', 'Faisal', 'Majed', 'Waleed', 'Bassam', 'Jamil', 'Nabil',\n 'Bashar', 'Hafez', 'Shukri', 'Quwatli', 'Atassi', 'Azm', 'Kudsi'\n ],\n firstNamesFemale: [\n 'Fatima', 'Maryam', 'Aisha', 'Khadija', 'Zainab', 'Noura', 'Sarah', 'Maha',\n 'Layla', 'Rania', 'Amal', 'Nadia', 'Samira', 'Huda', 'Manal', 'Asma',\n 'Souad', 'Hanan', 'Ghada', 'Basma', 'Arwa', 'Reema', 'Dina', 'Mona',\n 'Noor', 'Ayat', 'Sara', 'Jana', 'Lama', 'Yara', 'Tala', 'Nour',\n 'Rima', 'Lina', 'Sana', 'Hala', 'Nahed', 'Salwa', 'Fayza', 'Randa'\n ],\n lastNames: [\n 'Al-Assad', 'Al-Sharaa', 'Al-Faruq', 'Al-Halabi', 'Al-Dimashqi', 'Al-Homsi',\n 'Al-Hamawi', 'Al-Laziqi', 'Al-Tartousi', 'Al-Idlibi', 'Al-Hasaki', 'Al-Deiri',\n 'Al-Sweidi', 'Al-Quwatli', 'Al-Atassi', 'Al-Azm', 'Al-Kudsi', 'Al-Bitar',\n 'Al-Hourani', 'Al-Arsuzi', 'Al-Bunni', 'Al-Masri', 'Al-Jabiri', 'Al-Khatib'\n ],\n streets: [\n 'شارع بغداد', 'شارع حمص', 'شارع حلب', 'شارع دمشق', 'شارع النيل',\n 'شارع الملك فيصل', 'شارع الشهبندر', 'شارع أبو رمانة', 'شارع الصالحية',\n 'شارع المزة', 'شارع كفر سوسة', 'شارع البرامكة', 'شارع بغداد', 'شارع يابور'\n ],\n cities: [\n 'دمشق', 'حلب', 'حمص', 'اللاذقية', 'حماة', 'دير الزور', 'الحسكة',\n 'درعا', 'السويداء', 'طرطوس', 'إدلب', 'الرقة', 'القنيطرة', 'تدمر',\n 'دوما', 'الزبداني', 'صافيتا', 'جبلَة', 'منبج', 'أعزاز'\n ],\n states: [\n 'دمشق', 'ريف دمشق', 'حلب', 'حمص', 'حماة', 'اللاذقية', 'طرطوس',\n 'إدلب', 'درعا', 'السويداء', 'دير الزور', 'الحسكة', 'الرقة', 'القنيطرة'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'مهندس برمجيات', 'مدير مشروع', 'محلل بيانات', 'مدير تسويق',\n 'مندوب مبيعات', 'محاسب', 'مدير موارد بشرية', 'مصمم', 'مدير عمليات',\n 'محلل أعمال', 'مدير منتج', 'مسؤول نظام', 'مندوب خدمة عملاء',\n 'مهندس جودة', 'كاتب تقني', 'مسؤول قاعدة بيانات', 'مهندس شبكات'\n ],\n departments: [\n 'الهندسة', 'التسويق', 'المبيعات', 'الموارد البشرية', 'المالية',\n 'العمليات', 'خدمة العملاء', 'تكنولوجيا المعلومات', 'البحث والتطوير',\n 'القانونية', 'إدارة المنتجات', 'التصميم', 'ضمان الجودة', 'الإدارة'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const buildingNumber = Random.int(1, 9999);\n const district = Random.pick(['أبو رمانة', 'الصالحية', 'المزة', 'كفر سوسة', 'برزة', 'القابون']);\n return `حي ${district}, شارع ${street}, مبنى ${buildingNumber}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+963 9## ### ####',\n '+963 93# ### ###',\n '+963 94# ### ###',\n '+963 95# ### ###',\n '+963 96# ### ###',\n '+963 98# ### ###',\n '+963 99# ### ###',\n '+963 11 ### ####',\n '+963 21 ### ####',\n '09## ### ####',\n '011 ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'syrianmail.com', 'net.sy', 'gov.sy'\n ],\n\n companyNames: [\n 'المصرف التجاري السوري', 'مصرف سوريا المركزي', 'المصرف العقاري',\n 'مصرف التسليف الشعبي', 'الخطوط الجوية السورية', 'المؤسسة العامة للاتصالات',\n 'سيريتل', 'ام تي ان سوريا', 'شركة السكك الحديدية', 'مؤسسة الكهرباء'\n ],\n\n industries: [\n 'التكنولوجيا', 'المالية', 'الرعاية الصحية', 'التعليم', 'التجزئة',\n 'التصنيع', 'الإعلام', 'الاتصالات', 'الطاقة', 'النقل',\n 'العقارات', 'الاستشارات', 'الضيافة', 'السيارات', 'الزراعة',\n 'النسيج', 'البناء', 'السياحة'\n ],\n\n catchPhrases: [\n 'الابتكار للمستقبل', 'نجاحكم هو عملنا', 'نبني المستقبل معاً',\n 'الجودة والثقة', 'التميز والالتزام', 'حلول مستدامة',\n 'نخلق القيمة', 'شريككم الموثوق', 'نفخر بسوريا'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ar_TN: LocaleDefinition = {\n firstNamesMale: [\n 'Mohammed', 'Ahmed', 'Ali', 'Hassan', 'Hussain', 'Abdullah', 'Omar', 'Youssef',\n 'Mahmoud', 'Ibrahim', 'Khalid', 'Saad', 'Sultan', 'Fahad', 'Nasser',\n 'Hamad', 'Salim', 'Rachid', 'Karim', 'Farid', 'Mourad', 'Kamel', 'Nabil',\n 'Tarek', 'Slah', 'Mongi', 'Lassaad', 'Sami', 'Hichem', 'Riadh'\n ],\n firstNamesFemale: [\n 'Fatima', 'Maryam', 'Aisha', 'Khadija', 'Zainab', 'Noura', 'Sarah', 'Maha',\n 'Amel', 'Nadia', 'Samira', 'Houria', 'Zohra', 'Fatiha', 'Leila', 'Nassima',\n 'Khadidja', 'Rahma', 'Imene', 'Yasmina', 'Salima', 'Djamila', 'Chahrazed',\n 'Noor', 'Ayat', 'Sara', 'Layla', 'Rania', 'Manel', 'Asma', 'Souad', 'Ines'\n ],\n lastNames: [\n 'Ben Ali', 'Ben Salem', 'Ben Mohamed', 'Ben Ahmed', 'Ben Khalifa',\n 'Ben Hassen', 'Ben Ali', 'Trabelsi', 'Ghannouchi', 'Marzouki', 'Mansouri',\n 'Hamdi', 'Ayari', 'Bouazizi', 'Jebali', 'Mejri', 'Bouhired', 'Louhichi',\n 'Attia', 'Zaouche', 'Mzali', 'Sfar', 'Essassi', 'Gharbi', 'Oueslati'\n ],\n streets: [\n 'شارع الحبيب بورقيبة', 'شارع محمد الخامس', 'شارع الاستقلال', 'شارع منجي سليم',\n 'شارع فرحات حشاد', 'شارع الطاهر الحداد', 'شارع الحبيب ثنيبة', 'شارع الأندلس',\n 'شارع قرطاج', 'شارع الياسمين', 'شارع الزهور', 'شارع النخيل', 'شارع البحر'\n ],\n cities: [\n 'تونس', 'صفاقس', 'سوسة', 'قيروان', 'بنزرت', 'قبلي', 'قابس',\n 'أريانة', 'منوبة', 'نابل', 'زغوان', 'باجة', 'جندوبة', 'الكاف',\n 'سيدي بوزيد', 'القصرين', 'توزر', 'قبلي', 'مدنين', 'تطاوين', 'المهدية'\n ],\n states: [\n 'تونس', 'أريانة', 'بن عروس', 'منوبة', 'نابل', 'زغوان', 'بنزرت',\n 'باجة', 'جندوبة', 'الكاف', 'سليانة', 'قيروان', 'القصرين', 'سيدي بوزيد',\n 'سوسة', 'المنستير', 'المهدية', 'صفاقس', 'قفصة', 'قفلي', 'توزر',\n 'قبلي', 'مدنين', 'تطاوين', 'قابس', 'زغوان'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'مهندس برمجيات', 'مدير مشروع', 'محلل بيانات', 'مدير تسويق',\n 'مندوب مبيعات', 'محاسب', 'مدير موارد بشرية', 'مصمم', 'مدير عمليات',\n 'محلل أعمال', 'مدير منتج', 'مسؤول نظام', 'مندوب خدمة عملاء',\n 'مهندس جودة', 'كاتب تقني', 'مسؤول قاعدة بيانات', 'مهندس شبكات'\n ],\n departments: [\n 'الهندسة', 'التسويق', 'المبيعات', 'الموارد البشرية', 'المالية',\n 'العمليات', 'خدمة العملاء', 'تكنولوجيا المعلومات', 'البحث والتطوير',\n 'القانونية', 'إدارة المنتجات', 'التصميم', 'ضمان الجودة', 'الإدارة'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const buildingNumber = Random.int(1, 9999);\n const quartier = Random.pick(['وسط المدينة', 'الملز', 'المنزه', 'المروج', 'بحيرة']);\n return `${quartier}, شارع ${street}, مبنى ${buildingNumber}, ${city} ${zipCode}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+216 2# ### ###',\n '+216 5# ### ###',\n '+216 9# ### ###',\n '+216 7# ### ###',\n '+216 71 ### ###',\n '+216 73 ### ###',\n '+216 74 ### ###',\n '2# ### ###',\n '5# ### ###',\n '9# ### ###'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'topnet.tn', 'tunisiana.com', 'nursat.tn', 'gouv.tn'\n ],\n\n companyNames: [\n 'أوريدو تونس', 'أورانج تونس', 'تونس تيليكوم', 'الخطوط الجوية التونسية',\n 'البنك الوطني التونسي', 'بنك تونس العربي الدولي', 'البنك التونسي',\n 'شركة الكهرباء والغاز', 'شركة السكك الحديدية التونسية', 'ديوان الطيران المدني'\n ],\n\n industries: [\n 'التكنولوجيا', 'المالية', 'الرعاية الصحية', 'التعليم', 'التجزئة',\n 'التصنيع', 'الإعلام', 'الاتصالات', 'الطاقة', 'النقل',\n 'العقارات', 'الاستشارات', 'الضيافة', 'السيارات', 'الطيران',\n 'السياحة', 'الزراعة', 'النسيج', 'الفوسفات'\n ],\n\n catchPhrases: [\n 'الابتكار للمستقبل', 'نجاحكم هو عملنا', 'نبني المستقبل معاً',\n 'الجودة والثقة', 'التميز والالتزام', 'حلول مستدامة',\n 'نخلق القيمة', 'شريككم الموثوق', 'نفخر بتونس'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ar_YE: LocaleDefinition = {\n firstNamesMale: [\n 'Mohammed', 'Ahmed', 'Ali', 'Hassan', 'Hussain', 'Abdullah', 'Omar', 'Youssef',\n 'Mahmoud', 'Ibrahim', 'Khalid', 'Saad', 'Fahad', 'Nasser', 'Hamad',\n 'Salim', 'Rashid', 'Karim', 'Farid', 'Tariq', 'Zaid', 'Rami', 'Sami',\n 'Hisham', 'Faisal', 'Majed', 'Waleed', 'Bassam', 'Jamil', 'Nabil'\n ],\n firstNamesFemale: [\n 'Fatima', 'Maryam', 'Aisha', 'Khadija', 'Zainab', 'Noura', 'Sarah', 'Maha',\n 'Layla', 'Rania', 'Amal', 'Nadia', 'Samira', 'Huda', 'Manal', 'Asma',\n 'Souad', 'Hanan', 'Ghada', 'Basma', 'Arwa', 'Reema', 'Dina', 'Mona',\n 'Noor', 'Ayat', 'Sara', 'Jana', 'Lama', 'Yara', 'Tala', 'Nour'\n ],\n lastNames: [\n 'Al-Saleh', 'Al-Houthi', 'Al-Ahmar', 'Al-Iryani', 'Al-Attas', 'Al-Baidhani',\n 'Al-Jawfi', 'Al-Sharjabi', 'Al-Maqaleh', 'Al-Saqqaf', 'Al-Kaf', 'Al-Basha',\n 'Al-Zubairi', 'Al-Shami', 'Al-Yemeni', 'Al-Sanaani', 'Al-Taizi', 'Al-Adeni',\n 'Al-Hadhrami', 'Al-Mahri', 'Al-Socotri', 'Al-Razi', 'Al-Kalani', 'Al-Mansour'\n ],\n streets: [\n 'شارع الستين', 'شارع صنعاء', 'شارع تعز', 'شارع عدن', 'شارع الحديدة',\n 'شارع إب', 'شارع ذمار', 'شارع المكلا', 'شارع سيئون', 'شارع زنجبار',\n 'شارع التحرير', 'شارع الثورة', 'شارع الوحدة', 'شارع فلسطين', 'شارع بغداد'\n ],\n cities: [\n 'صنعاء', 'عدن', 'تعز', 'الحديدة', 'إب', 'ذمار', 'المكلا',\n 'سيئون', 'زنجبار', 'عتق', 'صعدة', 'عمران', 'حجة', 'المحويت',\n 'ريمة', 'البيضاء', 'مارب', 'الجوف', 'شبوة', 'حضرموت', 'المهرة', 'سقطرى'\n ],\n states: [\n 'أمانة العاصمة', 'عدن', 'تعز', 'الحديدة', 'إب', 'ذمار', 'حضرموت',\n 'المكلا', 'صعدة', 'عمران', 'حجة', 'المحويت', 'ريمة', 'البيضاء',\n 'مارب', 'الجوف', 'شبوة', 'المهرة', 'سقطرى', 'لحج', 'أبين', 'الضالع'\n ],\n zipCodePattern: '',\n jobTitles: [\n 'مهندس برمجيات', 'مدير مشروع', 'محلل بيانات', 'مدير تسويق',\n 'مندوب مبيعات', 'محاسب', 'مدير موارد بشرية', 'مصمم', 'مدير عمليات',\n 'محلل أعمال', 'مدير منتج', 'مسؤول نظام', 'مندوب خدمة عملاء',\n 'مهندس جودة', 'كاتب تقني', 'مسؤول قاعدة بيانات', 'مهندس شبكات'\n ],\n departments: [\n 'الهندسة', 'التسويق', 'المبيعات', 'الموارد البشرية', 'المالية',\n 'العمليات', 'خدمة العملاء', 'تكنولوجيا المعلومات', 'البحث والتطوير',\n 'القانونية', 'إدارة المنتجات', 'التصميم', 'ضمان الجودة', 'الإدارة'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const buildingNumber = Random.int(1, 9999);\n const district = Random.pick(['التحرير', 'الشعب', 'الوحدة', 'الثورة', 'السبعين', 'بئر العزب']);\n return `منطقة ${district}, شارع ${street}, مبنى ${buildingNumber}, ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return '';\n },\n\n phoneFormats: [\n '+967 1## ### ###',\n '+967 2## ### ###',\n '+967 3## ### ###',\n '+967 4## ### ###',\n '+967 5## ### ###',\n '+967 6## ### ###',\n '+967 7## ### ###',\n '+967 71## ### ###',\n '+967 73## ### ###',\n '+967 77## ### ###',\n '01## ### ###',\n '07## ### ###'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'yemen.net.ye', 'yemenonline.com', 'saba.net.ye'\n ],\n\n companyNames: [\n 'شركة الاتصالات اليمنية', 'سبأفون', 'إم تي إن اليمن', 'واي يمن',\n 'البنك المركزي اليمني', 'البنك الأهلي اليمني', 'بنك الكريمي',\n 'الخطوط الجوية اليمنية', 'شركة النفط اليمنية', 'مؤسسة الكهرباء'\n ],\n\n industries: [\n 'التكنولوجيا', 'المالية', 'الرعاية الصحية', 'التعليم', 'التجزئة',\n 'التصنيع', 'الإعلام', 'الاتصالات', 'الطاقة', 'النقل',\n 'العقارات', 'الاستشارات', 'الضيافة', 'السيارات', 'الزراعة',\n 'الصيد', 'البناء', 'النسيج'\n ],\n\n catchPhrases: [\n 'الابتكار للمستقبل', 'نجاحكم هو عملنا', 'نبني المستقبل معاً',\n 'الجودة والثقة', 'التميز والالتزام', 'حلول مستدامة',\n 'نخلق القيمة', 'شريككم الموثوق', 'نفخر باليمن'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const en_IE: LocaleDefinition = {\n firstNamesMale: [\n 'Sean', 'Jack', 'James', 'Conor', 'Daniel', 'Adam', 'Cian', 'Michael',\n 'Luke', 'David', 'Ryan', 'Patrick', 'John', 'Thomas', 'Joseph',\n 'Brian', 'Mark', 'Paul', 'Stephen', 'Kevin', 'Anthony', 'Charles',\n 'Robert', 'William', 'Richard', 'George', 'Edward', 'Henry',\n 'Arthur', 'Frederick', 'Albert', 'Louis', 'Alexander', 'Nicholas'\n ],\n firstNamesFemale: [\n 'Emily', 'Emma', 'Sarah', 'Katie', 'Aoife', 'Sinead', 'Niamh', 'Ciara',\n 'Orla', 'Rachel', 'Jennifer', 'Mary', 'Patricia', 'Margaret', 'Elizabeth',\n 'Anne', 'Maria', 'Catherine', 'Bridget', 'Kathleen', 'Julia', 'Hannah',\n 'Sophie', 'Olivia', 'Grace', 'Lucy', 'Chloe', 'Anna', 'Ruth', 'Laura',\n 'Michelle', 'Karen', 'Donna', 'Carol', 'Linda', 'Barbara', 'Susan'\n ],\n lastNames: [\n 'Murphy', 'Kelly', 'Byrne', 'Ryan', 'O\\'Brien', 'Walsh', 'O\\'Sullivan', 'Doyle',\n 'McCarthy', 'O\\'Connor', 'Doherty', 'Gallagher', 'O\\'Neill', 'Murray', 'Hynes',\n 'Molloy', 'Kavanagh', 'Sullivan', 'Fitzgerald', 'McMahon', 'Lynch', 'Quinn',\n 'O\\'Carroll', 'Power', 'Hayes', 'Kirby', 'Healy', 'Fitzpatrick', 'Flynn',\n 'O\\'Reilly', 'Cunningham', 'Daly', 'Brennan', 'Casey', 'Moran', ' Desmond'\n ],\n streets: [\n 'O\\'Connell Street', 'Grafton Street', 'Henry Street', 'Dame Street',\n 'Patrick Street', 'Main Street', 'Church Road', 'Dublin Road',\n 'Cork Road', 'Galway Road', 'Limerick Road', 'Waterford Road',\n 'Kilkenny Road', 'Wexford Road', 'Sligo Road', 'Cavan Road',\n 'Donegal Road', 'Mayo Road', 'Kerry Road', 'Clare Road', 'Tipperary Road'\n ],\n cities: [\n 'Dublin', 'Cork', 'Limerick', 'Galway', 'Waterford', 'Drogheda',\n 'Dundalk', 'Swords', 'Bray', 'Navan', 'Ennis', 'Kilkenny',\n 'Carlow', 'Tralee', 'Newbridge', 'Portlaoise', 'Sligo', 'Clonmel',\n 'Mullingar', 'Wexford', 'Letterkenny', 'Celbridge', 'Leixlip'\n ],\n states: [\n 'Dublin', 'Cork', 'Galway', 'Limerick', 'Waterford', 'Tipperary',\n 'Kerry', 'Kildare', 'Meath', 'Wicklow', 'Wexford', 'Louth',\n 'Mayo', 'Donegal', 'Sligo', 'Cavan', 'Monaghan', 'Leitrim',\n 'Roscommon', 'Clare', 'Offaly', 'Laois', 'Westmeath', 'Longford',\n 'Carlow', 'Kilkenny', 'Kerry'\n ],\n zipCodePattern: 'A## ####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Executive', 'Accountant', 'HR Manager', 'Designer', 'Operations Manager',\n 'Business Analyst', 'Product Manager', 'Systems Administrator', 'Customer Support',\n 'Quality Assurance Engineer', 'Technical Writer', 'Database Administrator',\n 'Network Engineer', 'UX Designer', 'Content Writer', 'Account Manager'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n return `${street}, ${city}, Co. ${state}, ${zipCode}`;\n },\n\n generateZipCode(): string {\n const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n const letter1 = letters.charAt(Random.int(0, 25));\n const letter2 = String(Random.int(0, 9));\n const letter3 = String(Random.int(0, 9));\n const part2 = String(Random.int(1000, 9999));\n return `${letter1}${letter2}${letter3} ${part2}`;\n },\n\n phoneFormats: [\n '+353 1 ### ####',\n '+353 21 ### ####',\n '+353 87 ### ####',\n '+353 86 ### ####',\n '+353 85 ### ####',\n '01 ### ####',\n '021 ### ####',\n '087 ### ####',\n '086 ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.ie', 'outlook.com', 'hotmail.com',\n 'eircom.net', 'indigo.ie', 'mail.com', 'icloud.com',\n 'protonmail.com', 'zoho.com'\n ],\n\n companyNames: [\n 'Ryanair', 'Aer Lingus', 'Guinness', 'Kerry Group', 'CRH',\n 'Glanbia', 'Smurfit Kappa', 'Bank of Ireland', 'AIB',\n 'Permanent TSB', 'Electric Ireland', ' Bord Gáis', 'Vodafone Ireland',\n 'Three Ireland', 'Tesco Ireland', 'SuperValu'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transportation',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace',\n 'Pharmaceuticals', 'Food & Beverage', 'Tourism'\n ],\n\n catchPhrases: [\n 'Innovation with integrity', 'Your success is our story', 'Building tomorrow together',\n 'Empowering Irish business', 'Quality you can trust', 'Excellence in every detail',\n 'Where tradition meets innovation', 'Driving Irish enterprise',\n 'Your partner in progress', 'Making it happen for Ireland'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const fr_BE: LocaleDefinition = {\n firstNamesMale: [\n 'Jean', 'Pierre', 'Marc', 'Michel', 'Philippe', 'Patrick', 'Christian', 'Daniel',\n 'Nicolas', 'Thomas', 'David', 'Christophe', 'Stéphane', 'Eric', 'Olivier',\n 'Laurent', 'Bruno', 'Frédéric', 'Sébastien', 'Julien', 'Maxime', 'Antoine',\n 'Guillaume', 'Alexandre', 'Romain', 'Vincent', 'William', 'Richard',\n 'Robert', 'Charles', 'Louis', 'Henri', 'Georges', 'Albert', 'Joseph'\n ],\n firstNamesFemale: [\n 'Marie', 'Anne', 'Christine', 'Nathalie', 'Isabelle', 'Sophie', 'Catherine',\n 'Brigitte', 'Sylvie', 'Monique', 'Patricia', 'Dominique', 'Françoise', 'Nicole',\n 'Valérie', 'Sandrine', 'Virginie', 'Julie', 'Céline', 'Laurence', 'Stéphanie',\n 'Caroline', 'Nadine', 'Véronique', 'Corinne', 'Sabrina', 'Audrey', 'Elodie',\n 'Mélanie', 'Jessica', 'Laura', 'Sarah', 'Emma', 'Léa', 'Chloé'\n ],\n lastNames: [\n 'Dubois', 'Martin', 'Bernard', 'Thomas', 'Petit', 'Robert', 'Richard',\n 'Durand', 'Leroy', 'Moreau', 'Simon', 'Laurent', 'Lefebvre', 'Michel',\n 'Garcia', 'David', 'Bertrand', 'Roux', 'Vincent', 'Fournier', 'Morel',\n 'Girard', 'Andre', 'Lefevre', 'Mercier', 'Dupont', 'Lambert', 'Bonnet',\n 'Francois', 'Martinez', 'Legrand', 'Garnier', 'Faure', 'Rousseau',\n 'Blanc', 'Guerin', 'Boyer', 'Gautier', 'Perrin', 'Robin', 'Morin'\n ],\n streets: [\n 'Rue de la Loi', 'Avenue Louise', 'Boulevard du Régent', 'Rue Royale',\n 'Chaussée de Wavre', 'Avenue de Tervueren', 'Rue du Midi', 'Boulevard Anspach',\n 'Chaussée d\\'Ixelles', 'Rue de Namur', 'Avenue Brugmann', 'Rue de Stassart',\n 'Chaussée de Charleroi', 'Boulevard Léopold II', 'Avenue du Port',\n 'Rue Haute', 'Chaussée de Gand', 'Boulevard Saint-Michel', 'Avenue Paul Héger'\n ],\n cities: [\n 'Bruxelles', 'Anvers', 'Gand', 'Charleroi', 'Liège', 'Bruges', 'Namur',\n 'Louvain', 'Mons', 'Alost', 'Malines', 'Courtrai', 'Verviers', 'Ostende',\n 'Tournai', 'Genk', 'Seraing', 'Roeselare', 'Mouscron', 'Bressoux',\n 'Jambes', 'Saint-Nicolas', 'Wavre', 'Beveren', 'Kortrijk'\n ],\n states: [\n 'Bruxelles-Capitale', 'Flandre', 'Wallonie', 'Anvers', 'Flandre-Orientale',\n 'Flandre-Occidentale', 'Hainaut', 'Liège', 'Namur', 'Brabant wallon',\n 'Brabant flamand', 'Limbourg', 'Luxembourg'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Ingénieur logiciel', 'Chef de projet', 'Analyste de données', 'Responsable marketing',\n 'Commercial', 'Comptable', 'Responsable RH', 'Designer', 'Responsable des opérations',\n 'Analyste d\\'affaires', 'Chef de produit', 'Administrateur système', 'Support client',\n 'Ingénieur qualité', 'Rédacteur technique', 'Administrateur de base de données',\n 'Ingénieur réseau', 'Designer UX', 'Rédacteur de contenu', 'Responsable de compte'\n ],\n departments: [\n 'Ingénierie', 'Marketing', 'Ventes', 'Ressources Humaines', 'Finance',\n 'Opérations', 'Service Client', 'IT', 'Recherche et Développement',\n 'Juridique', 'Gestion de Produit', 'Design', 'Assurance Qualité', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 500);\n const box = Random.int(1, 50);\n return `${street} ${houseNumber} bte ${box}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+32 2 ### ## ##',\n '+32 3 ### ## ##',\n '+32 4## ## ## ##',\n '02 ### ## ##',\n '03 ### ## ##',\n '04## ## ## ##',\n '09 ### ## ##',\n '047# ## ## ##',\n '048# ## ## ##',\n '049# ## ## ##'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.fr', 'outlook.com', 'hotmail.com',\n 'skynet.be', 'belgacom.net', 'telenet.be', 'proximus.be',\n 'voo.be', 'scarlet.be', 'mail.com', 'icloud.com'\n ],\n\n companyNames: [\n 'Anheuser-Busch InBev', 'TotalEnergies', 'Umicore', 'KBC Group', 'Belfius',\n 'BNP Paribas Fortis', 'ING Belgique', 'Solvay', 'Ageas', 'Proximus',\n 'Colruyt', 'Delhaize', 'Carrefour Belgique', 'Telenet', 'VRT', 'RTBF'\n ],\n\n industries: [\n 'Technologie', 'Finance', 'Santé', 'Éducation', 'Commerce de détail',\n 'Fabrication', 'Médias', 'Télécommunications', 'Énergie', 'Transport',\n 'Immobilier', 'Conseil', 'Hôtellerie', 'Automobile', 'Aérospatial',\n 'Pharmaceutique', 'Agroalimentaire', 'Chimie'\n ],\n\n catchPhrases: [\n 'Innover pour demain', 'Votre réussite est notre mission', 'Construire l\\'avenir ensemble',\n 'Qualité et excellence', 'L\\'innovation au service de tous', 'Votre partenaire de confiance',\n 'Engagés pour votre succès', 'Créer de la valeur durable', 'L\\'expertise belge'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const fr_CH: LocaleDefinition = {\n firstNamesMale: [\n 'Alain', 'Bernard', 'Claude', 'Daniel', 'David', 'Eric', 'Fabrice', 'François',\n 'Frédéric', 'Georges', 'Gilbert', 'Gilles', 'Henri', 'Jacques', 'Jean',\n 'Jean-Claude', 'Jean-Paul', 'Jean-Pierre', 'Joseph', 'Julien', 'Laurent',\n 'Marc', 'Mario', 'Martin', 'Michel', 'Nicolas', 'Patrick', 'Paul',\n 'Philippe', 'Pierre', 'René', 'Richard', 'Robert', 'Roger', 'Stéphane',\n 'Thierry', 'Thomas', 'Victor', 'William', 'Yves', 'André', 'Christian'\n ],\n firstNamesFemale: [\n 'Anne', 'Brigitte', 'Caroline', 'Catherine', 'Chantal', 'Christiane', 'Christine',\n 'Claire', 'Corinne', 'Danielle', 'Dominique', 'Elisabeth', 'Florence', 'Françoise',\n 'Geneviève', 'Hélène', 'Isabelle', 'Jacqueline', 'Jeanne', 'Josiane', 'Julie',\n 'Laurence', 'Liliane', 'Marie', 'Marie-Claire', 'Martine', 'Monique', 'Nadine',\n 'Nathalie', 'Nicole', 'Odette', 'Pascale', 'Patricia', 'Sandrine', 'Sophie',\n 'Stéphanie', 'Sylvie', 'Valérie', 'Véronique', 'Yvette', 'Yvonne', 'Céline'\n ],\n lastNames: [\n 'Müller', 'Frey', 'Bieri', 'Gasser', 'Keller', 'Haller', 'Studer', 'Gerber',\n 'Brunner', 'Schmid', 'Weber', 'Meier', 'Schneider', 'Fischer', 'Kaufmann',\n 'Baumann', 'Huber', 'Moser', 'Roth', 'Schwarz', 'Graf', 'Steiner', 'Vogel',\n 'Berger', 'Francois', 'Dubois', 'Martin', 'Bernard', 'Petit', 'Robert',\n 'Richard', 'Durand', 'Leroy', 'Moreau', 'Simon', 'Laurent', 'Lefebvre',\n 'Michel', 'Garcia', 'David', 'Bertrand', 'Roux', 'Vincent', 'Fournier'\n ],\n streets: [\n 'Rue du Rhône', 'Bahnhofstrasse', 'Rue de la Confédération', 'Avenue de la Gare',\n 'Rue du Marché', 'Rue de Lausanne', 'Avenue du Théâtre', 'Rue de Carouge',\n 'Rue Verdaine', 'Rue de l\\'Hôtel-de-Ville', 'Rue Calvin', 'Rue de la Servette',\n 'Route de Chêne', 'Route de Malagnou', 'Avenue de Champel', 'Rue de Monthoux',\n 'Rue de la Corraterie', 'Quai du Mont-Blanc', 'Rue de Richemont', 'Rue de Monthoux'\n ],\n cities: [\n 'Zürich', 'Genève', 'Basel', 'Lausanne', 'Bern', 'Winterthur', 'Luzern',\n 'St. Gallen', 'Lugano', 'Biel/Bienne', 'Thun', 'Köniz', 'La Chaux-de-Fonds',\n 'Schaffhausen', 'Fribourg', 'Vernier', 'Chur', 'Neuchâtel', 'Uster',\n 'Sion', 'Emmen', 'Yverdon-les-Bains', 'Zug', 'Kloten', 'Dietikon'\n ],\n states: [\n 'Zürich', 'Genève', 'Bern', 'Vaud', 'Valais', 'Neuchâtel', 'Fribourg',\n 'Jura', 'Bâle-Ville', 'Bâle-Campagne', 'Argovie', 'Soleure', 'Lucerne',\n 'Tessin', 'Grisons', 'Saint-Gall', 'Thurgovie', 'Schwytz', 'Obwald', 'Nidwald'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Ingénieur logiciel', 'Chef de projet', 'Analyste de données', 'Responsable marketing',\n 'Commercial', 'Comptable', 'Responsable RH', 'Designer', 'Responsable des opérations',\n 'Analyste d\\'affaires', 'Chef de produit', 'Administrateur système', 'Support client',\n 'Ingénieur qualité', 'Rédacteur technique', 'Administrateur de base de données',\n 'Ingénieur réseau', 'Designer UX', 'Rédacteur de contenu', 'Responsable de compte'\n ],\n departments: [\n 'Ingénierie', 'Marketing', 'Ventes', 'Ressources Humaines', 'Finance',\n 'Opérations', 'Service Client', 'IT', 'Recherche et Développement',\n 'Juridique', 'Gestion de Produit', 'Design', 'Assurance Qualité', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 300);\n return `${street} ${houseNumber}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+41 21 ### ## ##',\n '+41 22 ### ## ##',\n '+41 31 ### ## ##',\n '+41 32 ### ## ##',\n '+41 41 ### ## ##',\n '+41 43 ### ## ##',\n '+41 44 ### ## ##',\n '+41 52 ### ## ##',\n '+41 55 ### ## ##',\n '+41 56 ### ## ##',\n '+41 58 ### ## ##',\n '+41 61 ### ## ##',\n '+41 62 ### ## ##',\n '+41 71 ### ## ##',\n '+41 81 ### ## ##',\n '+41 91 ### ## ##',\n '+41 79 ### ## ##',\n '+41 78 ### ## ##',\n '+41 77 ### ## ##',\n '+41 76 ### ## ##',\n '+41 75 ### ## ##'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.fr', 'outlook.com', 'hotmail.com',\n 'bluewin.ch', 'sunrise.ch', 'swissonline.ch', 'quicknet.ch',\n 'vtxnet.ch', 'icloud.com', 'protonmail.com', 'mail.com'\n ],\n\n companyNames: [\n 'Nestlé', 'Roche', 'Novartis', 'UBS', 'Credit Suisse', 'Zurich Insurance',\n 'Swiss Re', 'ABB', 'Glencore', 'Trafigura', 'Mercuria', 'LafargeHolcim',\n 'Syngenta', 'Swisscom', 'SBB CFF FFS', 'Migros', 'Coop', 'Richemont',\n 'Swatch Group', 'Rolex'\n ],\n\n industries: [\n 'Technologie', 'Finance', 'Santé', 'Éducation', 'Commerce de détail',\n 'Fabrication', 'Médias', 'Télécommunications', 'Énergie', 'Transport',\n 'Immobilier', 'Conseil', 'Hôtellerie', 'Automobile', 'Aérospatial',\n 'Pharmaceutique', 'Horlogerie', 'Agroalimentaire', 'Chimie', 'Assurance'\n ],\n\n catchPhrases: [\n 'Précision et excellence', 'Votre réussite est notre engagement', 'Innovation suisse',\n 'Qualité et fiabilité', 'L\\'excellence au service de tous', 'Votre partenaire de confiance',\n 'Tradition et innovation', 'Créer de la valeur durable', 'Le savoir-faire suisse'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const de_LI: LocaleDefinition = {\n firstNamesMale: [\n 'Hans', 'Peter', 'Martin', 'Thomas', 'Andreas', 'Michael', 'Stefan', 'Daniel',\n 'Markus', 'Christian', 'Alexander', 'Patrick', 'Florian', 'Lukas', 'Simon',\n 'Philipp', 'David', 'Fabian', 'Jan', 'Tobias', 'Sebastian', 'Benjamin',\n 'Manuel', 'Raphael', 'Kevin', 'Marco', 'Nicolas', 'Julian', 'Tim',\n 'Jonas', 'Luca', 'Noah', 'Leon', 'Felix', 'Paul', 'Max', 'Jakob'\n ],\n firstNamesFemale: [\n 'Maria', 'Elisabeth', 'Anna', 'Barbara', 'Elisabeth', 'Margaretha', 'Veronika',\n 'Katharina', 'Christina', 'Sabine', 'Andrea', 'Petra', 'Monika', 'Brigitte',\n 'Gabriele', 'Karin', 'Silvia', 'Martina', 'Claudia', 'Susanne', 'Nicole',\n 'Stephanie', 'Daniela', 'Sandra', 'Simone', 'Vanessa', 'Jennifer', 'Lisa',\n 'Sarah', 'Laura', 'Julia', 'Hannah', 'Lena', 'Sophie', 'Emma', 'Mia'\n ],\n lastNames: [\n 'Büchel', 'Gassner', 'Marxer', 'Ritter', 'Schädler', 'Hassler', 'Ender',\n 'Amann', 'Bargetze', 'Batliner', 'Beck', 'Biedermann', 'Brunner', 'Bühler',\n 'Elkuch', 'Frick', 'Frommelt', 'Gerner', 'Gerner', 'Gassner', 'Gerner',\n 'Hilti', 'Hoop', 'Huber', 'Jehle', 'Kaiser', 'Kaufmann', 'Kieber',\n 'Kind', 'Konrad', 'Kranz', 'Lampert', 'Lutz', 'Mader', 'Malin',\n 'Matter', 'Meier', 'Nagele', 'Ospelt', 'Oehri', 'Oehri', 'Quaderer',\n 'Rheinberger', 'Risch', 'Schlegel', 'Schmid', 'Schneider', 'Schnüriger',\n 'Schurti', 'Schurti', 'Sele', 'Thöny', 'Verling', 'Vogt', 'Wachter', 'Walser'\n ],\n streets: [\n 'Äulestrasse', 'Bahnhofstrasse', 'Bendererstrasse', 'Bergstrasse',\n 'Bildaistrasse', 'Binhagstrasse', 'Blegistrasse', 'Dorfstrasse',\n 'Ebenholzstrasse', 'Feldstrasse', 'Gaberstrasse', 'Gaflei',\n 'Gemeindestrasse', 'Hintergass', 'Hochstrasse', 'Im Riet',\n 'Kirchstrasse', 'Landstrasse', 'Malanserstrasse', 'Mittelstrasse',\n 'Oberstrasse', 'Reblestrasse', 'Rietstrasse', 'Schlossstrasse',\n 'Städtle', 'Steinstrasse', 'Unterstutz', 'Waldstrasse'\n ],\n cities: [\n 'Vaduz', 'Schaan', 'Balzers', 'Triesen', 'Eschen', 'Mauren',\n 'Gamprin', 'Ruggell', 'Schellenberg', 'Triesenberg', 'Planken'\n ],\n states: [\n 'Vaduz', 'Schaan', 'Balzers', 'Triesen', 'Eschen', 'Mauren',\n 'Gamprin', 'Ruggell', 'Schellenberg', 'Triesenberg', 'Planken'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Softwareentwickler', 'Projektmanager', 'Datenanalyst', 'Marketingmanager',\n 'Vertriebsmitarbeiter', 'Buchhalter', 'Personalmanager', 'Designer',\n 'Betriebsleiter', 'Business Analyst', 'Produktmanager', 'Systemadministrator',\n 'Kundendienstmitarbeiter', 'Qualitätssicherungsingenieur', 'Technischer Redakteur',\n 'Datenbankadministrator', 'Netzwerkingenieur', 'UX-Designer', 'Content-Autor'\n ],\n departments: [\n 'Entwicklung', 'Marketing', 'Vertrieb', 'Personalwesen', 'Finanzen',\n 'Betrieb', 'Kundendienst', 'IT', 'Forschung und Entwicklung',\n 'Recht', 'Produktmanagement', 'Design', 'Qualitätssicherung', 'Verwaltung'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 100);\n return `${street} ${houseNumber}, ${zipCode} ${city}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(9485, 9499));\n },\n\n phoneFormats: [\n '+423 ### ## ##',\n '+423 ## ## ##',\n '### ## ##',\n '## ## ##',\n '+423-###-##-##',\n '0## ## ##'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'telecom.li', 'bluewin.ch', 'icloud.com', 'protonmail.com',\n 'mail.com', 'zoho.com'\n ],\n\n companyNames: [\n 'Hilti', 'Ivoclar Vivadent', 'Omya', 'Hilcona', 'Neutrik',\n 'Liechtensteinische Landesbank', 'LGT Group', 'VP Bank',\n 'Liechtensteinische Versicherung', 'Ospelt Group', 'Kind Group'\n ],\n\n industries: [\n 'Technologie', 'Finanzen', 'Gesundheitswesen', 'Bildung', 'Einzelhandel',\n 'Fertigung', 'Medien', 'Telekommunikation', 'Energie', 'Verkehr',\n 'Immobilien', 'Beratung', 'Gastgewerbe', 'Automobil', 'Luftfahrt'\n ],\n\n catchPhrases: [\n 'Innovation für morgen', 'Ihr Erfolg ist unser Ziel', 'Gemeinsam die Zukunft gestalten',\n 'Qualität und Zuverlässigkeit', 'Exzellenz in jedem Detail', 'Ihr vertrauenswürdiger Partner',\n 'Nachhaltiges Wachstum', 'Wert schaffen', 'Liechtensteiner Präzision'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const de_LU: LocaleDefinition = {\n firstNamesMale: [\n 'Jean', 'Michel', 'Marc', 'Patrick', 'Christian', 'Daniel', 'Philippe',\n 'Nicolas', 'David', 'Thomas', 'Christophe', 'Stéphane', 'Eric', 'Olivier',\n 'Laurent', 'Bruno', 'Frédéric', 'Sébastien', 'Julien', 'Maxime', 'Antoine',\n 'Guillaume', 'Alexandre', 'Romain', 'Vincent', 'William', 'Richard',\n 'Robert', 'Charles', 'Louis', 'Henri', 'Georges', 'Albert', 'Joseph',\n 'François', 'André', 'Gilles', 'Yves', 'Mario', 'Martin', 'Claude'\n ],\n firstNamesFemale: [\n 'Marie', 'Anne', 'Christine', 'Nathalie', 'Isabelle', 'Sophie', 'Catherine',\n 'Brigitte', 'Sylvie', 'Monique', 'Patricia', 'Dominique', 'Françoise', 'Nicole',\n 'Valérie', 'Sandrine', 'Virginie', 'Julie', 'Céline', 'Laurence', 'Stéphanie',\n 'Caroline', 'Nadine', 'Véronique', 'Corinne', 'Sabrina', 'Audrey', 'Elodie',\n 'Mélanie', 'Jessica', 'Laura', 'Sarah', 'Emma', 'Léa', 'Chloé', 'Gabrielle'\n ],\n lastNames: [\n 'Schmit', 'Schmitt', 'Weber', 'Muller', 'Hoffmann', 'Weis', 'Klein',\n 'Wagner', 'Léonard', 'Wolff', 'Meyer', 'Reuter', 'Fischer', 'Heinrich',\n 'Hansen', 'Klein', 'Lucas', 'Barblé', 'Krier', 'Oberweis', 'Gilles',\n 'Erpelding', 'Jung', 'Biver', 'Blaise', 'Hamilius', 'Kemp', 'Koener'\n ],\n streets: [\n 'Avenue de la Liberté', 'Avenue de la Gare', 'Rue du Commerce',\n 'Boulevard Royal', 'Avenue Monterey', 'Rue Aldringen', 'Place d\\'Armes',\n 'Rue de Strasbourg', 'Boulevard F.D. Roosevelt', 'Avenue Guillaume',\n 'Rue Notre-Dame', 'Montée du Grund', 'Rue du Marché-aux-Herbes',\n 'Place Guillaume II', 'Boulevard Joseph II', 'Rue Chimay'\n ],\n cities: [\n 'Luxembourg', 'Esch-sur-Alzette', 'Differdange', 'Dudelange', 'Ettelbruck',\n 'Diekirch', 'Strassen', 'Bertrange', 'Bettembourg', 'Pétange',\n 'Echternach', 'Rumelange', 'Wiltz', 'Grevenmacher', 'Remich', 'Vianden'\n ],\n states: [\n 'Luxembourg', 'Esch-sur-Alzette', 'Capellen', 'Mersch', 'Grevenmacher',\n 'Remich', 'Echternach', 'Diekirch', 'Redange', 'Clervaux', 'Vianden', 'Wiltz'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Ingénieur logiciel', 'Chef de projet', 'Analyste de données', 'Responsable marketing',\n 'Commercial', 'Comptable', 'Responsable RH', 'Designer', 'Responsable des opérations',\n 'Analyste d\\'affaires', 'Chef de produit', 'Administrateur système', 'Support client',\n 'Ingénieur qualité', 'Rédacteur technique', 'Administrateur de base de données',\n 'Ingénieur réseau', 'Designer UX', 'Rédacteur de contenu', 'Responsable de compte'\n ],\n departments: [\n 'Ingénierie', 'Marketing', 'Ventes', 'Ressources Humaines', 'Finance',\n 'Opérations', 'Service Client', 'IT', 'Recherche et Développement',\n 'Juridique', 'Gestion de Produit', 'Design', 'Assurance Qualité', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 200);\n return `${street} ${houseNumber}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n const codes = [\n String(Random.int(1000, 1999)),\n String(Random.int(2000, 2999)),\n String(Random.int(3000, 3999)),\n String(Random.int(4000, 4999)),\n String(Random.int(5000, 5999)),\n String(Random.int(6000, 6999)),\n String(Random.int(7000, 7999)),\n String(Random.int(8000, 8999)),\n String(Random.int(9000, 9999))\n ];\n return codes[Math.floor(Math.random() * codes.length)];\n },\n\n phoneFormats: [\n '+352 2# ### ###',\n '+352 4# ### ###',\n '+352 5# ### ###',\n '+352 6## ### ###',\n '+352 26## ## ##',\n '+352 27## ## ##',\n '2# ### ###',\n '4# ### ###',\n '6## ### ###'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.fr', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'pt.lu', 'post.lu', 'restena.lu', 'joinville.lu'\n ],\n\n companyNames: [\n 'Banque et Caisse d\\'Épargne de l\\'État', 'Banque Internationale à Luxembourg',\n 'BGL BNP Paribas', 'Société Générale Luxembourg', 'Raiffeisen',\n 'ArcelorMittal', 'SES', 'Post Luxembourg', 'CFL', 'Enovos',\n 'Creos', 'Deloitte Luxembourg', 'PwC Luxembourg', 'KPMG Luxembourg'\n ],\n\n industries: [\n 'Technologie', 'Finance', 'Santé', 'Éducation', 'Commerce de détail',\n 'Fabrication', 'Médias', 'Télécommunications', 'Énergie', 'Transport',\n 'Immobilier', 'Conseil', 'Hôtellerie', 'Automobile', 'Aérospatial',\n 'Acier', 'Fiscalité', 'Assurance'\n ],\n\n catchPhrases: [\n 'Innover pour demain', 'Votre réussite est notre mission', 'Construire l\\'avenir ensemble',\n 'Qualité et excellence', 'L\\'innovation au service de tous', 'Votre partenaire de confiance',\n 'Engagés pour votre succès', 'Créer de la valeur durable', 'Fierté luxembourgeoise'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const it_CH: LocaleDefinition = {\n firstNamesMale: [\n 'Alessandro', 'Marco', 'Luca', 'Matteo', 'Davide', 'Andrea', 'Stefano',\n 'Daniel', 'Michael', 'Thomas', 'Christian', 'Patrick', 'Fabio', 'Paolo',\n 'Roberto', 'Francesco', 'Giovanni', 'Antonio', 'Giuseppe', 'Mario',\n 'Alberto', 'Riccardo', 'Simone', 'Emanuele', 'Federico', 'Lorenzo',\n 'Nicola', 'Vincenzo', 'Salvatore', 'Pietro', 'Daniele', 'Massimo', 'Luigi'\n ],\n firstNamesFemale: [\n 'Alessia', 'Sara', 'Chiara', 'Martina', 'Elisa', 'Francesca', 'Giulia',\n 'Anna', 'Maria', 'Laura', 'Silvia', 'Cristina', 'Elena', 'Monica',\n 'Serena', 'Valentina', 'Federica', 'Paola', 'Roberta', 'Stefania',\n 'Barbara', 'Claudia', 'Daniela', 'Veronica', 'Sabrina', 'Manuela',\n 'Michela', 'Angela', 'Tiziana', 'Rossana', 'Cinzia', 'Simona', 'Giovanna'\n ],\n lastNames: [\n 'Bernasconi', 'Bianchi', 'Rossi', 'Ferrari', 'Riva', 'Cattaneo', 'Moro',\n 'Fontana', 'Conti', 'Baroni', 'Caruso', 'Romano', 'Gatti', 'Marelli',\n 'Belloni', 'Meroni', 'Proserpio', 'Pozzi', 'Bianchini', 'Colombo',\n 'Ricci', 'Marino', 'Greco', 'Bruno', 'Gallo', 'Conte', 'De Luca',\n 'Mancini', 'Costa', 'Giordano', 'Rinaldi', 'Parisi', 'Santoro', 'Martini'\n ],\n streets: [\n 'Via Nassa', 'Corso Pestalozzi', 'Via Pretorio', 'Via Bellinzona',\n 'Via Lugano', 'Via Locarno', 'Via Mendrisio', 'Via Chiasso',\n 'Piazza della Riforma', 'Piazza Manzoni', 'Corso Elvezia',\n 'Via Francesco Soave', 'Via Giuseppe Bianchi', 'Via Cattori'\n ],\n cities: [\n 'Lugano', 'Bellinzona', 'Locarno', 'Mendrisio', 'Chiasso', 'Biasca',\n 'Giubiasco', 'Minusio', 'Muralto', 'Losone', 'Ascona', 'Cadenazzo',\n 'Camarillo', 'Mezzovico', 'Taverne', 'Torricella', 'Coldrerio', 'Stabio'\n ],\n states: [\n 'Ticino', 'Grigioni', 'Zurigo', 'Berna', 'Ginevra', 'Vaud', 'Neuchâtel',\n 'Friburgo', 'Vallese', 'Soletta', 'Basilea', 'Argovia', 'Turgovia',\n 'San Gallo', 'Appenzello', 'Glarona', 'Svitto', 'Uri', 'Obvaldo', 'Nidvaldo'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Ingegnere software', 'Project manager', 'Analista dati', 'Responsabile marketing',\n 'Commerciale', 'Contabile', 'Responsabile risorse umane', 'Designer',\n 'Responsabile operazioni', 'Analista business', 'Product manager',\n 'Amministratore di sistema', 'Supporto clienti', 'Ingegnere qualità',\n 'Redattore tecnico', 'Amministratore database', 'Ingegnere di rete', 'UX designer'\n ],\n departments: [\n 'Ingegneria', 'Marketing', 'Vendite', 'Risorse Umane', 'Finanza',\n 'Operazioni', 'Servizio Clienti', 'IT', 'Ricerca e Sviluppo',\n 'Legale', 'Gestione Prodotti', 'Design', 'Controllo Qualità', 'Amministrazione'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 200);\n return `${street} ${houseNumber}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n const codes = [\n String(Random.int(6500, 6999)),\n String(Random.int(6000, 6499)),\n String(Random.int(5000, 5999))\n ];\n return codes[Math.floor(Math.random() * codes.length)];\n },\n\n phoneFormats: [\n '+41 91 ### ## ##',\n '+41 58 ### ## ##',\n '+41 79 ### ## ##',\n '+41 78 ### ## ##',\n '+41 77 ### ## ##',\n '+41 76 ### ## ##',\n '+41 75 ### ## ##',\n '091 ### ## ##',\n '058 ### ## ##'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.it', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'bluewin.ch', 'sunrise.ch', 'swissonline.ch', 'ticino.com'\n ],\n\n companyNames: [\n 'UBS', 'Credit Suisse', 'Zurich Insurance', 'Swiss Re', 'Nestlé',\n 'Roche', 'Novartis', 'ABB', 'Swisscom', 'SBB CFF FFS',\n 'Migros', 'Coop', 'Richemont', 'Swatch Group', 'Rolex',\n 'Banca Stato Ticino', 'Cornèr Banca', 'Banca Popolare di Sondrio'\n ],\n\n industries: [\n 'Tecnologia', 'Finanza', 'Sanità', 'Educazione', 'Vendita al dettaglio',\n 'Produzione', 'Media', 'Telecomunicazioni', 'Energia', 'Trasporti',\n 'Immobiliare', 'Consulenza', 'Ospitalità', 'Automotive', 'Aerospaziale',\n 'Farmaceutico', 'Orologeria', 'Alimentare', 'Chimica', 'Assicurazione'\n ],\n\n catchPhrases: [\n 'Innovare per il domani', 'Il vostro successo è la nostra missione', 'Costruire il futuro insieme',\n 'Qualità ed eccellenza', 'L\\'eccellenza al servizio di tutti', 'Il vostro partner di fiducia',\n 'Tradizione e innovazione', 'Creare valore duraturo', 'Il savoir-faire svizzero'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ca_ES: LocaleDefinition = {\n firstNamesMale: [\n 'Jordi', 'Josep', 'Joan', 'Marc', 'Pere', 'Francesc', 'Miquel', 'David',\n 'Daniel', 'Alex', 'Robert', 'Javier', 'Sergi', 'Carles', 'Albert',\n 'Ramon', 'Lluís', 'Enric', 'Ferran', 'Oriol', 'Pol', 'Arnau', 'Guillem',\n 'Martí', 'Aleix', 'Nil', 'Jan', 'Biel', 'Hugo', 'Eric', 'Pau', 'Ian'\n ],\n firstNamesFemale: [\n 'Maria', 'Montserrat', 'Carme', 'Anna', 'Rosa', 'Mercè', 'Dolors', 'Núria',\n 'Laura', 'Sílvia', 'Cristina', 'Marta', 'Eva', 'Sara', 'Laia', 'Clara',\n 'Júlia', 'Emma', 'Paula', 'Aina', 'Naia', 'Leire', 'Irene', 'Sofia',\n 'Carla', 'Berta', 'Rocío', 'Andrea', 'Marina', 'Helena', 'Victoria', 'Mireia'\n ],\n lastNames: [\n 'Garcia', 'Martinez', 'Lopez', 'Gonzalez', 'Rodriguez', 'Hernandez',\n 'Perez', 'Sanchez', 'Romero', 'Torres', 'Gomez', 'Navarro', 'Ruiz',\n 'Alvarez', 'Castillo', 'Jimenez', 'Moreno', 'Muñoz', 'Alonso', 'Gutierrez',\n 'Pujol', 'Vila', 'Serra', 'Ferran', 'Riera', 'Casas', 'Roca', 'Pelegri'\n ],\n streets: [\n 'La Rambla', 'Passeig de Gràcia', 'Avinguda Diagonal', 'Gran Via de les Corts Catalanes',\n 'Carrer de Balmes', 'Carrer de Pau Claris', 'Carrer del Consell de Cent',\n 'Carrer de València', 'Carrer de Provença', 'Carrer de Mallorca',\n 'Carrer de Girona', 'Carrer de Roger de Llúria', 'Passeig de Sant Joan'\n ],\n cities: [\n 'Barcelona', 'L\\'Hospitalet de Llobregat', 'Badalona', 'Terrassa', 'Sabadell',\n 'Lleida', 'Tarragona', 'Mataró', 'Santa Coloma de Gramenet', 'Reus',\n 'Girona', 'Manresa', 'Vic', 'Igualada', 'Vilanova i la Geltrú', 'Granollers'\n ],\n states: [\n 'Barcelona', 'Girona', 'Lleida', 'Tarragona', 'Catalunya'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Enginyer de programari', 'Gestor de projectes', 'Analista de dades',\n 'Gerent de màrqueting', 'Representant de vendes', 'Comptable',\n 'Gerent de recursos humans', 'Dissenyador', 'Gerent d\\'operacions',\n 'Analista de negocis', 'Gerent de producte', 'Administrador de sistemes',\n 'Representant d\\'atenció al client', 'Enginyer de qualitat'\n ],\n departments: [\n 'Enginyeria', 'Màrqueting', 'Vendes', 'Recursos Humans', 'Finances',\n 'Operacions', 'Atenció al Client', 'TI', 'Recerca i Desenvolupament',\n 'Legal', 'Gestió de Productes', 'Disseny', 'Control de Qualitat', 'Administració'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 999);\n const floor = Random.int(1, 10);\n const door = Random.pick(['1a', '1b', '2a', '2b', '3a', '3b']);\n return `${street} ${houseNumber}, ${floor}º ${door}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(8000, 43999));\n },\n\n phoneFormats: [\n '+34 93 ### ## ##',\n '+34 97 ### ## ##',\n '+34 6## ### ###',\n '+34 7## ### ###',\n '93 ### ## ##',\n '97 ### ## ##',\n '6## ### ###',\n '7## ### ###'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.es', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'telefonica.net', 'ono.com', 'orange.es', 'vodafone.es'\n ],\n\n companyNames: [\n 'La Caixa', 'Banco Sabadell', 'Gas Natural Fenosa', 'Repsol', 'Seat',\n 'Agbar', 'Grup Godó', 'RAC1', 'TV3', 'El Periódico', 'La Vanguardia',\n 'Mercadona', 'Bon Preu', 'Consum', 'Puig', 'Mango', 'Desigual'\n ],\n\n industries: [\n 'Tecnologia', 'Finances', 'Sanitat', 'Educació', 'Comerç',\n 'Manufactura', 'Mitjans', 'Telecomunicacions', 'Energia', 'Transport',\n 'Immobiliari', 'Consultoria', 'Hostaleria', 'Automoció', 'Aeroespacial',\n 'Turisme', 'Tèxtil', 'Alimentació'\n ],\n\n catchPhrases: [\n 'Innovant per al futur', 'El vostre èxit és la nostra missió', 'Construïm el futur junts',\n 'Qualitat i excel·lència', 'Compromesos amb Catalunya', 'El vostre soci de confiança',\n 'Creixement sostenible', 'Creant valor', 'Orgull català'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const fr_LU: LocaleDefinition = {\n firstNamesMale: [\n 'Jean', 'Pierre', 'Michel', 'Marc', 'Patrick', 'Christian', 'Daniel', 'Philippe',\n 'Nicolas', 'David', 'Thomas', 'Christophe', 'Stéphane', 'Eric', 'Olivier',\n 'Laurent', 'Bruno', 'Frédéric', 'Sébastien', 'Julien', 'Maxime', 'Antoine'\n ],\n firstNamesFemale: [\n 'Marie', 'Anne', 'Christine', 'Nathalie', 'Isabelle', 'Sophie', 'Catherine',\n 'Brigitte', 'Sylvie', 'Monique', 'Patricia', 'Dominique', 'Françoise', 'Nicole',\n 'Valérie', 'Sandrine', 'Virginie', 'Julie', 'Céline', 'Laurence', 'Stéphanie'\n ],\n lastNames: [\n 'Schmit', 'Schmitt', 'Weber', 'Muller', 'Hoffmann', 'Weis', 'Klein',\n 'Wagner', 'Léonard', 'Wolff', 'Meyer', 'Reuter', 'Fischer', 'Heinrich',\n 'Hansen', 'Lucas', 'Barblé', 'Krier', 'Oberweis', 'Gilles', 'Erpelding'\n ],\n streets: [\n 'Avenue de la Liberté', 'Avenue de la Gare', 'Rue du Commerce',\n 'Boulevard Royal', 'Avenue Monterey', 'Rue Aldringen', 'Place d\\'Armes',\n 'Rue de Strasbourg', 'Boulevard F.D. Roosevelt', 'Avenue Guillaume'\n ],\n cities: [\n 'Luxembourg', 'Esch-sur-Alzette', 'Differdange', 'Dudelange', 'Ettelbruck',\n 'Diekirch', 'Strassen', 'Bertrange', 'Bettembourg', 'Pétange'\n ],\n states: [\n 'Luxembourg', 'Esch-sur-Alzette', 'Capellen', 'Mersch', 'Grevenmacher',\n 'Remich', 'Echternach', 'Diekirch', 'Redange', 'Clervaux', 'Vianden', 'Wiltz'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Ingénieur logiciel', 'Chef de projet', 'Analyste de données', 'Responsable marketing',\n 'Commercial', 'Comptable', 'Responsable RH', 'Designer', 'Responsable des opérations'\n ],\n departments: [\n 'Ingénierie', 'Marketing', 'Ventes', 'Ressources Humaines', 'Finance',\n 'Opérations', 'Service Client', 'IT', 'Recherche et Développement', 'Juridique'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 200);\n return `${street} ${houseNumber}, ${zipCode} ${city}, ${state}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+352 2# ### ###',\n '+352 4# ### ###',\n '+352 6## ### ###',\n '2# ### ###',\n '6## ### ###'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.fr', 'outlook.com', 'hotmail.com',\n 'pt.lu', 'post.lu', 'restena.lu'\n ],\n\n companyNames: [\n 'Banque et Caisse d\\'Épargne de l\\'État', 'Banque Internationale à Luxembourg',\n 'BGL BNP Paribas', 'Société Générale Luxembourg', 'ArcelorMittal', 'SES'\n ],\n\n industries: [\n 'Technologie', 'Finance', 'Santé', 'Éducation', 'Commerce de détail',\n 'Fabrication', 'Médias', 'Télécommunications', 'Énergie', 'Transport'\n ],\n\n catchPhrases: [\n 'Innover pour demain', 'Votre réussite est notre mission', 'Construire l\\'avenir ensemble',\n 'Qualité et excellence', 'Votre partenaire de confiance'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const fr_CA: LocaleDefinition = {\n firstNamesMale: [\n 'Jean', 'Pierre', 'Michel', 'Daniel', 'Marc', 'Patrick', 'Christian', 'Philippe',\n 'Nicolas', 'David', 'Thomas', 'Christophe', 'Stéphane', 'Eric', 'Olivier',\n 'Laurent', 'Bruno', 'Frédéric', 'Sébastien', 'Julien', 'Maxime', 'Antoine',\n 'Guillaume', 'Alexandre', 'Romain', 'Vincent', 'William', 'Richard',\n 'Robert', 'Charles', 'Louis', 'Henri', 'Georges', 'Albert', 'Joseph',\n 'François', 'André', 'Gilles', 'Yves', 'Mario', 'Martin', 'Claude'\n ],\n firstNamesFemale: [\n 'Marie', 'Anne', 'Christine', 'Nathalie', 'Isabelle', 'Sophie', 'Catherine',\n 'Brigitte', 'Sylvie', 'Monique', 'Patricia', 'Dominique', 'Françoise', 'Nicole',\n 'Valérie', 'Sandrine', 'Virginie', 'Julie', 'Céline', 'Laurence', 'Stéphanie',\n 'Caroline', 'Nadine', 'Véronique', 'Corinne', 'Sabrina', 'Audrey', 'Elodie',\n 'Mélanie', 'Jessica', 'Laura', 'Sarah', 'Emma', 'Léa', 'Chloé', 'Gabrielle'\n ],\n lastNames: [\n 'Tremblay', 'Gagnon', 'Roy', 'Côté', 'Bouchard', 'Gauthier', 'Morin',\n 'Lavoie', 'Fortin', 'Gagné', 'Blais', 'Bélanger', 'Lévesque', 'Bergeron',\n 'Pelletier', 'Li', 'Beaulieu', 'Lachance', 'Girard', 'Ouellet', 'Bédard',\n 'Bilodeau', 'Cournoyer', 'Fontaine', 'Gosselin', 'Lambert', 'Leclerc',\n 'Martin', 'Bernard', 'Dubois', 'Thomas', 'Petit', 'Robert', 'Richard',\n 'Durand', 'Leroy', 'Moreau', 'Simon', 'Lefebvre', 'Michel', 'Garcia'\n ],\n streets: [\n 'Rue Sainte-Catherine', 'Boulevard Saint-Laurent', 'Avenue du Parc',\n 'Rue Notre-Dame', 'Boulevard René-Lévesque', 'Rue Sherbrooke',\n 'Avenue Mont-Royal', 'Rue Saint-Denis', 'Boulevard Maisonneuve',\n 'Rue de la Montagne', 'Rue Wellington', 'Avenue Laurier',\n 'Boulevard Saint-Germain', 'Rue du Petit-Champlain', 'Grande Allée',\n 'Boulevard Champlain', 'Route 132', 'Autoroute 40', 'Autoroute 20'\n ],\n cities: [\n 'Montréal', 'Québec', 'Laval', 'Gatineau', 'Longueuil', 'Sherbrooke',\n 'Saguenay', 'Lévis', 'Trois-Rivières', 'Terrebonne', 'Saint-Jean-sur-Richelieu',\n 'Repentigny', 'Brossard', 'Drummondville', 'Saint-Jérôme', 'Granby',\n 'Blainville', 'Shawinigan', 'Rimouski', 'Victoriaville', 'Alma',\n 'Rouyn-Noranda', 'Sorel-Tracy', 'Val-d\\'Or', 'Sept-Îles'\n ],\n states: [\n 'Québec', 'Ontario', 'Colombie-Britannique', 'Alberta', 'Manitoba',\n 'Saskatchewan', 'Nouvelle-Écosse', 'Nouveau-Brunswick', 'Terre-Neuve-et-Labrador',\n 'Île-du-Prince-Édouard', 'Territoires du Nord-Ouest', 'Yukon', 'Nunavut'\n ],\n zipCodePattern: 'H#A #A#',\n jobTitles: [\n 'Ingénieur logiciel', 'Chef de projet', 'Analyste de données', 'Responsable marketing',\n 'Commercial', 'Comptable', 'Responsable RH', 'Designer', 'Responsable des opérations',\n 'Analyste d\\'affaires', 'Chef de produit', 'Administrateur système', 'Support client',\n 'Ingénieur qualité', 'Rédacteur technique', 'Administrateur de base de données',\n 'Ingénieur réseau', 'Designer UX', 'Rédacteur de contenu', 'Responsable de compte'\n ],\n departments: [\n 'Ingénierie', 'Marketing', 'Ventes', 'Ressources Humaines', 'Finance',\n 'Opérations', 'Service Client', 'TI', 'Recherche et Développement',\n 'Juridique', 'Gestion de Produit', 'Design', 'Assurance Qualité', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 9999);\n const apt = Random.int(1, 500);\n return `${houseNumber} ${street}, apt ${apt}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n const letter1 = letters.charAt(Random.int(0, 25));\n const digit1 = String(Random.int(0, 9));\n const letter2 = letters.charAt(Random.int(0, 25));\n const digit2 = String(Random.int(0, 9));\n const letter3 = letters.charAt(Random.int(0, 25));\n const digit3 = String(Random.int(0, 9));\n return `${letter1}${digit1}${letter2} ${digit2}${letter3}${digit3}`;\n },\n\n phoneFormats: [\n '+1 514 ###-####',\n '+1 438 ###-####',\n '+1 450 ###-####',\n '+1 581 ###-####',\n '+1 418 ###-####',\n '+1 819 ###-####',\n '(514) ###-####',\n '(438) ###-####',\n '(450) ###-####',\n '(581) ###-####',\n '(418) ###-####',\n '(819) ###-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.ca', 'outlook.com', 'hotmail.com',\n 'videotron.ca', 'bell.net', 'sympatico.ca', 'icloud.com',\n 'protonmail.com', 'mail.com', 'zoho.com'\n ],\n\n companyNames: [\n 'Bombardier', 'Air Canada', 'Banque Nationale', 'Desjardins',\n 'Couche-Tard', 'Saputo', 'Power Corporation', 'Jean Coutu',\n 'Metro', 'Canadian National', 'CNRC', 'Hydro-Québec',\n 'Bell Canada', 'Rogers', 'Telus', 'Loblaws'\n ],\n\n industries: [\n 'Technologie', 'Finance', 'Santé', 'Éducation', 'Commerce de détail',\n 'Fabrication', 'Médias', 'Télécommunications', 'Énergie', 'Transport',\n 'Immobilier', 'Conseil', 'Hôtellerie', 'Automobile', 'Aérospatial',\n 'Pharmaceutique', 'Agroalimentaire', 'Foresterie', 'Mines'\n ],\n\n catchPhrases: [\n 'Innover pour demain', 'Votre réussite est notre mission', 'Construire l\\'avenir ensemble',\n 'Qualité et excellence', 'L\\'innovation au service de tous', 'Votre partenaire de confiance',\n 'Engagés pour votre succès', 'Créer de la valeur durable', 'Fierté québécoise'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const es_EC: LocaleDefinition = {\n firstNamesMale: [\n 'José', 'Luis', 'Carlos', 'Juan', 'Miguel', 'Pedro', 'Jorge', 'Antonio',\n 'Manuel', 'Francisco', 'David', 'Daniel', 'Alex', 'Ricardo', 'Fernando',\n 'Gustavo', 'Raúl', 'Jesús', 'Eduardo', 'Andrés', 'Roberto', 'Mario',\n 'Alberto', 'Ángel', 'Enrique', 'Sergio', 'Pablo', 'Sebastián', 'Nicolás',\n 'Santiago', 'Matías', 'Benjamín', 'Agustín', 'Emiliano', 'Maximiliano'\n ],\n firstNamesFemale: [\n 'María', 'Carmen', 'Rosa', 'Ana', 'Luisa', 'Patricia', 'Elizabeth', 'Sandra',\n 'Mónica', 'Silvia', 'Verónica', 'Gabriela', 'Andrea', 'Daniela', 'Paola',\n 'Carolina', 'Mariana', 'Alejandra', 'Valeria', 'Fernanda', 'Isabel', 'Laura',\n 'Elena', 'Sofía', 'Victoria', 'Camila', 'Valentina', 'Martina', 'Lucía',\n 'Regina', 'Diana', 'Natalia', 'Adriana', 'Juliana', 'Emilia'\n ],\n lastNames: [\n 'Rodríguez', 'González', 'Gómez', 'Pérez', 'Sánchez', 'Ramírez', 'Cruz',\n 'Alvarez', 'Flores', 'Reyes', 'Morales', 'Vargas', 'Castillo', 'Jiménez',\n 'Hidalgo', 'Moreno', 'Ruiz', 'Díaz', 'Torres', 'Ortiz', 'Romero', 'Mendoza',\n 'Silva', 'Espinoza', 'Vásquez', 'Aguilar', 'Ríos', 'Campos', 'Vega',\n 'Fuentes', 'Guerrero', 'Paredes', 'Montero', 'Domínguez', 'Carrasco',\n 'Benítez', 'Núñez', 'Salazar', 'Velásquez', 'Cordero', 'Quintero', 'Loor'\n ],\n streets: [\n 'Avenida Amazonas', 'Avenida de los Shyris', 'Avenida República',\n 'Avenida Patria', 'Avenida 6 de Diciembre', 'Avenida Eloy Alfaro',\n 'Avenida Gran Colombia', 'Avenida 10 de Agosto', 'Avenida Oriental',\n 'Avenida Occidental', 'Calle García Moreno', 'Calle Sucre', 'Calle Bolívar',\n 'Calle Rocafuerte', 'Calle Olmedo', 'Avenida del Ejército', 'Avenida Napo'\n ],\n cities: [\n 'Quito', 'Guayaquil', 'Cuenca', 'Santo Domingo', 'Machala', 'Durán',\n 'Manta', 'Portoviejo', 'Loja', 'Ambato', 'Riobamba', 'Quevedo',\n 'Milagro', 'Ibarra', 'Esmeraldas', 'Babahoyo', 'Latacunga', 'Tulcán',\n 'Pasaje', 'Chone', 'Montecristi', 'Jipijapa', 'Santa Elena', 'Salinas'\n ],\n states: [\n 'Azuay', 'Bolívar', 'Cañar', 'Carchi', 'Chimborazo', 'Cotopaxi',\n 'El Oro', 'Esmeraldas', 'Galápagos', 'Guayas', 'Imbabura', 'Loja',\n 'Los Ríos', 'Manabí', 'Morona Santiago', 'Napo', 'Orellana',\n 'Pastaza', 'Pichincha', 'Santa Elena', 'Santo Domingo de los Tsáchilas',\n 'Sucumbíos', 'Tungurahua', 'Zamora Chinchipe'\n ],\n zipCodePattern: '######',\n jobTitles: [\n 'Ingeniero de Software', 'Gerente de Proyecto', 'Analista de Datos',\n 'Gerente de Marketing', 'Ejecutivo de Ventas', 'Contador',\n 'Gerente de Recursos Humanos', 'Diseñador', 'Gerente de Operaciones',\n 'Analista de Negocios', 'Gerente de Producto', 'Administrador de Sistemas',\n 'Atención al Cliente', 'Ingeniero de Calidad', 'Redactor Técnico',\n 'Administrador de Base de Datos', 'Ingeniero de Redes', 'Diseñador UX'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas',\n 'Operaciones', 'Servicio al Cliente', 'TI', 'Investigación y Desarrollo',\n 'Legal', 'Gestión de Productos', 'Diseño', 'Control de Calidad', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 9999);\n const street2 = Random.pick(['y', 'entre']);\n const crossStreet = Random.pick(['Av. Amazonas', 'Av. Patria', 'Av. de los Shyris', 'Calle Sucre']);\n return `${street} ${houseNumber} ${street2} ${crossStreet}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(100000, 999999));\n },\n\n phoneFormats: [\n '+593 99 ### ####',\n '+593 98 ### ####',\n '+593 97 ### ####',\n '+593 96 ### ####',\n '+593 2 ### ####',\n '+593 4 ### ####',\n '099 ### ####',\n '098 ### ####',\n '(02) ### ####',\n '(04) ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'telecable.com.ec', 'cnt.gob.ec', 'claro.com.ec'\n ],\n\n companyNames: [\n 'Petroecuador', 'Banco Pichincha', 'Banco del Pacífico', 'Produbanco',\n 'Banco Guayaquil', 'Corporación Favorita', 'El Rosado', 'La Fabril',\n 'Pronaca', 'Nestlé Ecuador', 'Coca-Cola Femsa', 'Cervecería Nacional',\n 'Holcim Ecuador', 'Cementos Selva Alegre', 'Movistar', 'Claro'\n ],\n\n industries: [\n 'Tecnología', 'Finanzas', 'Salud', 'Educación', 'Retail',\n 'Manufactura', 'Medios', 'Telecomunicaciones', 'Energía', 'Transporte',\n 'Bienes Raíces', 'Consultoría', 'Hotelería', 'Automotriz', 'Aeroespacial',\n 'Petróleo', 'Minería', 'Agricultura', 'Turismo'\n ],\n\n catchPhrases: [\n 'Innovando para el futuro', 'Su éxito es nuestra misión', 'Construyendo el futuro juntos',\n 'Calidad y excelencia', 'Comprometidos con Ecuador', 'Su socio de confianza',\n 'Crecimiento sostenible', 'Creando valor', 'Orgullo ecuatoriano'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const es_BO: LocaleDefinition = {\n firstNamesMale: [\n 'José', 'Juan', 'Carlos', 'Luis', 'Miguel', 'Pedro', 'Jorge', 'Antonio',\n 'Manuel', 'Francisco', 'David', 'Daniel', 'Alex', 'Ricardo', 'Fernando',\n 'Gustavo', 'Raúl', 'Jesús', 'Eduardo', 'Andrés', 'Roberto', 'Mario',\n 'Alberto', 'Ángel', 'Enrique', 'Sergio', 'Pablo', 'Sebastián', 'Nicolás',\n 'Santiago', 'Matías', 'Benjamín', 'Agustín', 'Emiliano', 'Maximiliano'\n ],\n firstNamesFemale: [\n 'María', 'Carmen', 'Rosa', 'Ana', 'Luisa', 'Patricia', 'Elizabeth', 'Sandra',\n 'Mónica', 'Silvia', 'Verónica', 'Gabriela', 'Andrea', 'Daniela', 'Paola',\n 'Carolina', 'Mariana', 'Alejandra', 'Valeria', 'Fernanda', 'Isabel', 'Laura',\n 'Elena', 'Sofía', 'Victoria', 'Camila', 'Valentina', 'Martina', 'Lucía',\n 'Regina', 'Diana', 'Natalia', 'Adriana', 'Juliana', 'Emilia'\n ],\n lastNames: [\n 'Rodríguez', 'González', 'Gómez', 'Pérez', 'Sánchez', 'Ramírez', 'Cruz',\n 'Alvarez', 'Flores', 'Reyes', 'Morales', 'Vargas', 'Castillo', 'Jiménez',\n 'Hidalgo', 'Moreno', 'Ruiz', 'Díaz', 'Torres', 'Ortiz', 'Romero', 'Mendoza',\n 'Silva', 'Espinoza', 'Vásquez', 'Aguilar', 'Ríos', 'Campos', 'Vega',\n 'Fuentes', 'Guerrero', 'Paredes', 'Montero', 'Domínguez', 'Carrasco',\n 'Benítez', 'Núñez', 'Salazar', 'Velásquez', 'Cordero', 'Quispe', 'Mamani'\n ],\n streets: [\n 'Avenida 16 de Julio', 'Avenida Illimani', 'Avenida Buenos Aires',\n 'Avenida Arce', 'Avenida Banzer', 'Avenida Cristo Redentor',\n 'Avenida Ballivián', 'Avenida Sánchez Lima', 'Calle Comercio',\n 'Calle Potosí', 'Calle Oruro', 'Calle Chuquisaca', 'Calle Tarija',\n 'Calle Beni', 'Calle Pando', 'Avenida Simón Bolívar', 'Avenida 6 de Agosto'\n ],\n cities: [\n 'La Paz', 'Santa Cruz de la Sierra', 'Cochabamba', 'Sucre', 'Oruro',\n 'Potosí', 'Tarija', 'Trinidad', 'Cobija', 'Montero', 'Warnes',\n 'Quillacollo', 'Sacaba', 'El Alto', 'Viacha', 'Yacuiba', 'Tarija',\n 'Llallagua', 'Uyuni', 'Villazón', 'Guayaramerín', 'Riberalta', 'Reyes'\n ],\n states: [\n 'Chuquisaca', 'La Paz', 'Cochabamba', 'Oruro', 'Potosí', 'Tarija',\n 'Santa Cruz', 'Beni', 'Pando'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Ingeniero de Software', 'Gerente de Proyecto', 'Analista de Datos',\n 'Gerente de Marketing', 'Ejecutivo de Ventas', 'Contador',\n 'Gerente de Recursos Humanos', 'Diseñador', 'Gerente de Operaciones',\n 'Analista de Negocios', 'Gerente de Producto', 'Administrador de Sistemas',\n 'Atención al Cliente', 'Ingeniero de Calidad', 'Redactor Técnico',\n 'Administrador de Base de Datos', 'Ingeniero de Redes', 'Diseñador UX'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas',\n 'Operaciones', 'Servicio al Cliente', 'TI', 'Investigación y Desarrollo',\n 'Legal', 'Gestión de Productos', 'Diseño', 'Control de Calidad', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 9999);\n const zone = Random.pick(['Centro', 'Zona Sur', 'Zona Norte', 'Calacoto', 'Sopocachi', 'Miraflores']);\n return `${street} N° ${houseNumber}, Zona ${zone}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+591 7## ## ###',\n '+591 6## ## ###',\n '+591 2 ### ####',\n '+591 3 ### ####',\n '+591 4 ### ####',\n '7## ## ###',\n '6## ## ###',\n '(2) ### ####',\n '(3) ### ####',\n '(4) ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'entel.bo', 'tigo.bo', 'viva.bo', 'gmail.bo'\n ],\n\n companyNames: [\n 'YPFB', 'Banco Unión', 'Banco Nacional de Bolivia', 'Banco Mercantil',\n 'Banco BCP', 'Banco Ganadero', 'Banco Fassil', 'Cervecería Boliviana Nacional',\n 'Pil Andina', 'Soboce', 'Fancesa', 'Cementos Fancesa', 'Tigo', 'Entel', 'Viva'\n ],\n\n industries: [\n 'Tecnología', 'Finanzas', 'Salud', 'Educación', 'Retail',\n 'Manufactura', 'Medios', 'Telecomunicaciones', 'Energía', 'Transporte',\n 'Bienes Raíces', 'Consultoría', 'Hotelería', 'Automotriz', 'Minería',\n 'Hidrocarburos', 'Agricultura', 'Textil', 'Turismo'\n ],\n\n catchPhrases: [\n 'Innovando para el futuro', 'Su éxito es nuestra misión', 'Construyendo el futuro juntos',\n 'Calidad y excelencia', 'Comprometidos con Bolivia', 'Su socio de confianza',\n 'Crecimiento sostenible', 'Creando valor', 'Orgullo boliviano'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const es_PY: LocaleDefinition = {\n firstNamesMale: [\n 'José', 'Carlos', 'Juan', 'Luis', 'Miguel', 'Pedro', 'Jorge', 'Antonio',\n 'Manuel', 'Francisco', 'David', 'Daniel', 'Alex', 'Ricardo', 'Fernando',\n 'Gustavo', 'Raúl', 'Jesús', 'Eduardo', 'Andrés', 'Roberto', 'Mario',\n 'Alberto', 'Ángel', 'Enrique', 'Sergio', 'Pablo', 'Sebastián', 'Nicolás',\n 'Santiago', 'Matías', 'Benjamín', 'Agustín', 'Emiliano', 'Maximiliano'\n ],\n firstNamesFemale: [\n 'María', 'Carmen', 'Rosa', 'Ana', 'Luisa', 'Patricia', 'Elizabeth', 'Sandra',\n 'Mónica', 'Silvia', 'Verónica', 'Gabriela', 'Andrea', 'Daniela', 'Paola',\n 'Carolina', 'Mariana', 'Alejandra', 'Valeria', 'Fernanda', 'Isabel', 'Laura',\n 'Elena', 'Sofía', 'Victoria', 'Camila', 'Valentina', 'Martina', 'Lucía',\n 'Regina', 'Diana', 'Natalia', 'Adriana', 'Juliana', 'Emilia'\n ],\n lastNames: [\n 'Rodríguez', 'González', 'Gómez', 'Pérez', 'Sánchez', 'Ramírez', 'Cruz',\n 'Alvarez', 'Flores', 'Reyes', 'Morales', 'Vargas', 'Castillo', 'Jiménez',\n 'Hidalgo', 'Moreno', 'Ruiz', 'Díaz', 'Torres', 'Ortiz', 'Romero', 'Mendoza',\n 'Silva', 'Espinoza', 'Vásquez', 'Aguilar', 'Ríos', 'Campos', 'Vega',\n 'Fuentes', 'Guerrero', 'Paredes', 'Montero', 'Domínguez', 'Carrasco',\n 'Benítez', 'Núñez', 'Salazar', 'Velásquez', 'Cordero', 'Giménez', 'Acosta'\n ],\n streets: [\n 'Avenida España', 'Avenida Mariscal López', 'Avenida Eusebio Ayala',\n 'Avenida Artigas', 'Avenida San Martín', 'Avenida República',\n 'Avenida Venezuela', 'Avenida Brasil', 'Avenida Argentina',\n 'Calle Palma', 'Calle Olimpia', 'Calle Independencia Nacional',\n 'Calle 14 de Mayo', 'Calle 25 de Mayo', 'Avenida Aviadores del Chaco',\n 'Avenida Madame Lynch', 'Avenida Primer Presidente'\n ],\n cities: [\n 'Asunción', 'Ciudad del Este', 'San Lorenzo', 'Luque', 'Capiatá',\n 'Lambaré', 'Fernando de la Mora', 'Limpio', 'Ñemby', 'Encarnación',\n 'Pedro Juan Caballero', 'Coronel Oviedo', 'Concepción', 'Villarrica',\n 'Caaguazú', 'Caacupé', 'Pilar', 'Paraguarí', 'Villa Hayes', 'Benjamín Aceval'\n ],\n states: [\n 'Asunción', 'Concepción', 'San Pedro', 'Cordillera', 'Guairá', 'Caaguazú',\n 'Caazapá', 'Itapúa', 'Misiones', 'Paraguarí', 'Alto Paraná', 'Central',\n 'Ñeembucú', 'Amambay', 'Canindeyú', 'Presidente Hayes', 'Alto Paraguay',\n 'Boquerón'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Ingeniero de Software', 'Gerente de Proyecto', 'Analista de Datos',\n 'Gerente de Marketing', 'Ejecutivo de Ventas', 'Contador',\n 'Gerente de Recursos Humanos', 'Diseñador', 'Gerente de Operaciones',\n 'Analista de Negocios', 'Gerente de Producto', 'Administrador de Sistemas',\n 'Atención al Cliente', 'Ingeniero de Calidad', 'Redactor Técnico',\n 'Administrador de Base de Datos', 'Ingeniero de Redes', 'Diseñador UX'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas',\n 'Operaciones', 'Servicio al Cliente', 'TI', 'Investigación y Desarrollo',\n 'Legal', 'Gestión de Productos', 'Diseño', 'Control de Calidad', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 9999);\n const entre = Random.pick(['entre', 'y']);\n const crossStreet1 = Random.pick(['Artigas', 'República', 'España']);\n const crossStreet2 = Random.pick(['Brasil', 'Argentina', 'Venezuela']);\n return `${street} N° ${houseNumber} ${entre} ${crossStreet1} y ${crossStreet2}, ${city} - ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+595 9## ### ###',\n '+595 98# ### ###',\n '+595 981 ### ###',\n '+595 982 ### ###',\n '+595 983 ### ###',\n '+595 984 ### ###',\n '+595 985 ### ###',\n '+595 986 ### ###',\n '+595 987 ### ###',\n '+595 99# ### ###',\n '+595 21 ### ###',\n '09## ### ###',\n '(021) ### ###'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'copaco.com.py', 'tigo.com.py', 'personal.com.py', 'claro.com.py'\n ],\n\n companyNames: [\n 'Itaipú Binacional', 'Yacyretá', 'Banco Nacional de Fomento', 'Banco Visión',\n 'Banco Familiar', 'Banco GNB', 'Banco Itaú Paraguay', 'Banco Continental',\n 'Cervecería Paraguaya', ' Industrias del Paraguay', 'Copaco', 'Tigo',\n 'Personal', 'Claro', 'Latam Airlines Paraguay', 'Amambay Seguros'\n ],\n\n industries: [\n 'Tecnología', 'Finanzas', 'Salud', 'Educación', 'Retail',\n 'Manufactura', 'Medios', 'Telecomunicaciones', 'Energía', 'Transporte',\n 'Bienes Raíces', 'Consultoría', 'Hotelería', 'Automotriz', 'Agroindustria',\n 'Ganadería', 'Agricultura', 'Textil', 'Turismo'\n ],\n\n catchPhrases: [\n 'Innovando para el futuro', 'Su éxito es nuestra misión', 'Construyendo el futuro juntos',\n 'Calidad y excelencia', 'Comprometidos con Paraguay', 'Su socio de confianza',\n 'Crecimiento sostenible', 'Creando valor', 'Orgullo paraguayo'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const es_US: LocaleDefinition = {\n firstNamesMale: [\n 'James', 'John', 'Robert', 'Michael', 'William', 'David', 'Richard', 'Joseph',\n 'Thomas', 'Christopher', 'Daniel', 'Matthew', 'Anthony', 'Mark', 'Donald',\n 'Steven', 'Andrew', 'Paul', 'Joshua', 'Kenneth', 'Kevin', 'Brian', 'George',\n 'José', 'Juan', 'Carlos', 'Luis', 'Miguel', 'Pedro', 'Jorge', 'Mario'\n ],\n firstNamesFemale: [\n 'Mary', 'Patricia', 'Jennifer', 'Linda', 'Barbara', 'Elizabeth', 'Susan',\n 'Jessica', 'Sarah', 'Karen', 'Lisa', 'Nancy', 'Betty', 'Margaret', 'Sandra',\n 'Ashley', 'Kimberly', 'Emily', 'Donna', 'Michelle', 'Carol', 'Amanda',\n 'María', 'Josefa', 'Juana', 'Rosa', 'Ana', 'Carmen', 'Luisa', 'Sofia'\n ],\n lastNames: [\n 'Smith', 'Johnson', 'Williams', 'Brown', 'Jones', 'Garcia', 'Miller', 'Davis',\n 'Rodriguez', 'Martinez', 'Hernandez', 'Lopez', 'Gonzalez', 'Wilson', 'Anderson',\n 'Thomas', 'Taylor', 'Moore', 'Jackson', 'Martin', 'Lee', 'Perez', 'Thompson',\n 'White', 'Harris', 'Sanchez', 'Clark', 'Ramirez', 'Lewis', 'Robinson', 'Walker'\n ],\n streets: [\n 'Main Street', 'Oak Avenue', 'Maple Drive', 'Cedar Lane', 'Elm Street',\n 'Washington Boulevard', 'Park Avenue', 'Hill Road', 'Forest Lane',\n 'River Road', 'Sunset Boulevard', 'First Avenue', 'Broadway',\n 'Madison Avenue', 'Lincoln Street', 'Jefferson Avenue', 'Highland Avenue'\n ],\n cities: [\n 'New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix', 'Philadelphia',\n 'San Antonio', 'San Diego', 'Dallas', 'San Jose', 'Austin', 'Jacksonville',\n 'Fort Worth', 'Columbus', 'Charlotte', 'San Francisco', 'Indianapolis', 'Seattle',\n 'Denver', 'Boston', 'Miami', 'Atlanta', 'Detroit', 'Portland', 'Las Vegas'\n ],\n states: [\n 'Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado',\n 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho',\n 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana',\n 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi',\n 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey',\n 'New Mexico', 'New York', 'North Carolina', 'North Dakota', 'Ohio', 'Oklahoma',\n 'Oregon', 'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota',\n 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington',\n 'West Virginia', 'Wisconsin', 'Wyoming'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'Human Resources Manager', 'Designer',\n 'Operations Manager', 'Business Analyst', 'Financial Analyst', 'Product Manager',\n 'Systems Administrator', 'Customer Service Representative', 'Quality Assurance Engineer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'imperial',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 9999);\n const apt = Random.int(1, 500);\n return `${houseNumber} ${street}, Apt ${apt}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+1 (###) ###-####',\n '(###) ###-####',\n '###-###-####',\n '###.###.####',\n '1-###-###-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com', 'aol.com',\n 'icloud.com', 'protonmail.com', 'mail.com', 'zoho.com', 'yandex.com'\n ],\n\n companyNames: [\n 'Walmart', 'Amazon', 'Apple', 'Microsoft', 'Google', 'Facebook',\n 'Berkshire Hathaway', 'JPMorgan Chase', 'Johnson & Johnson',\n 'Visa', 'Procter & Gamble', 'UnitedHealth', 'Home Depot', 'Mastercard'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transportation',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Aerospace'\n ],\n\n catchPhrases: [\n 'Innovating tomorrow, today', 'Your success is our business', 'Building the future together',\n 'Empowering possibilities', 'Transforming ideas into reality', 'Excellence in every detail',\n 'Where quality meets innovation', 'Driving progress through technology'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const es_DO: LocaleDefinition = {\n firstNamesMale: [\n 'José', 'Juan', 'Carlos', 'Luis', 'Miguel', 'Pedro', 'Jorge', 'Antonio',\n 'Manuel', 'Francisco', 'David', 'Daniel', 'Alex', 'Ricardo', 'Fernando',\n 'Gustavo', 'Raúl', 'Jesús', 'Eduardo', 'Andrés', 'Roberto', 'Mario',\n 'Alberto', 'Ángel', 'Enrique', 'Sergio', 'Pablo', 'Sebastián', 'Nicolás',\n 'Santiago', 'Matías', 'Benjamín', 'Agustín', 'Emiliano', 'Maximiliano'\n ],\n firstNamesFemale: [\n 'María', 'Carmen', 'Rosa', 'Ana', 'Luisa', 'Patricia', 'Elizabeth', 'Sandra',\n 'Mónica', 'Silvia', 'Verónica', 'Gabriela', 'Andrea', 'Daniela', 'Paola',\n 'Carolina', 'Mariana', 'Alejandra', 'Valeria', 'Fernanda', 'Isabel', 'Laura',\n 'Elena', 'Sofía', 'Victoria', 'Camila', 'Valentina', 'Martina', 'Lucía',\n 'Regina', 'Diana', 'Natalia', 'Adriana', 'Juliana', 'Emilia'\n ],\n lastNames: [\n 'Rodríguez', 'González', 'Gómez', 'Pérez', 'Sánchez', 'Ramírez', 'Cruz',\n 'Alvarez', 'Flores', 'Reyes', 'Morales', 'Vargas', 'Castillo', 'Jiménez',\n 'Hidalgo', 'Moreno', 'Ruiz', 'Díaz', 'Torres', 'Ortiz', 'Romero', 'Mendoza',\n 'Silva', 'Espinoza', 'Vásquez', 'Aguilar', 'Ríos', 'Campos', 'Vega',\n 'Fuentes', 'Guerrero', 'Paredes', 'Montero', 'Domínguez', 'Carrasco'\n ],\n streets: [\n 'Avenida George Washington', 'Avenida 27 de Febrero', 'Avenida Winston Churchill',\n 'Avenida John F. Kennedy', 'Avenida Tiradentes', 'Avenida Lope de Vega',\n 'Avenida Sarasota', 'Avenida Rómulo Betancourt', 'Calle El Conde',\n 'Calle Las Damas', 'Calle Hostos', 'Calle Mercedes', 'Calle Arzobispo Meriño'\n ],\n cities: [\n 'Santo Domingo', 'Santiago de los Caballeros', 'La Romana', 'San Pedro de Macorís',\n 'San Cristóbal', 'Puerto Plata', 'La Vega', 'Higüey', 'San Francisco de Macorís',\n 'Moca', 'Bonao', 'Azua', 'Baní', 'Mao', 'Nagua', 'Samaná', 'Barahona'\n ],\n states: [\n 'Distrito Nacional', 'Santiago', 'La Romana', 'San Pedro de Macorís',\n 'San Cristóbal', 'Puerto Plata', 'La Vega', 'Higüey', 'San Francisco de Macorís',\n 'Espaillat', 'Bonao', 'Azua', 'Peravia', 'Valverde', 'María Trinidad Sánchez',\n 'Samaná', 'Barahona', 'Independencia', 'Pedernales', 'Monte Cristi'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Ingeniero de Software', 'Gerente de Proyecto', 'Analista de Datos',\n 'Gerente de Marketing', 'Ejecutivo de Ventas', 'Contador',\n 'Gerente de Recursos Humanos', 'Diseñador', 'Gerente de Operaciones',\n 'Analista de Negocios', 'Gerente de Producto', 'Administrador de Sistemas',\n 'Atención al Cliente', 'Ingeniero de Calidad', 'Redactor Técnico'\n ],\n departments: [\n 'Ingeniería', 'Marketing', 'Ventas', 'Recursos Humanos', 'Finanzas',\n 'Operaciones', 'Servicio al Cliente', 'TI', 'Investigación y Desarrollo',\n 'Legal', 'Gestión de Productos', 'Diseño', 'Control de Calidad', 'Administración'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 9999);\n const sector = Random.pick(['Piantini', 'Naco', 'Bella Vista', 'Gazcue', 'Ensanche La Fe']);\n return `${sector}, ${street} #${houseNumber}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+1 809 ### ####',\n '+1 829 ### ####',\n '+1 849 ### ####',\n '(809) ###-####',\n '(829) ###-####',\n '(849) ###-####',\n '809-###-####',\n '829-###-####',\n '849-###-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'codetel.net.do', 'verizon.net.do', 'orange.com.do'\n ],\n\n companyNames: [\n 'Grupo Punta Cana', 'Cementos Cibao', 'Cervecería Nacional Dominicana',\n 'Banco Popular Dominicano', 'Banco BHD', 'Banco León', 'Banco Reservas',\n 'Claro Dominicana', 'Altice Dominicana', 'Viva Dominicana',\n 'La Sirena', 'Olimpica', 'Supermercados Nacional', 'PriceSmart'\n ],\n\n industries: [\n 'Tecnología', 'Finanzas', 'Salud', 'Educación', 'Retail',\n 'Manufactura', 'Medios', 'Telecomunicaciones', 'Energía', 'Transporte',\n 'Bienes Raíces', 'Consultoría', 'Hotelería', 'Automotriz', 'Turismo',\n 'Zonas Francas', 'Minería', 'Agricultura'\n ],\n\n catchPhrases: [\n 'Innovando para el futuro', 'Su éxito es nuestra misión', 'Construyendo el futuro juntos',\n 'Calidad y excelencia', 'Comprometidos con República Dominicana', 'Su socio de confianza',\n 'Crecimiento sostenible', 'Creando valor', 'Orgullo dominicano'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const zh_HK: LocaleDefinition = {\n firstNamesMale: [\n '偉明', '志強', '建國', '志明', '家明', '俊傑', '文傑', '浩然',\n '子軒', '梓軒', '浩宇', '宇軒', '俊賢', '志豪', '偉豪', '明傑',\n '嘉豪', '永健', '志偉', '建華', '偉倫', '志文', '家豪', '明輝',\n '俊偉', '志誠', '建明', '偉強', '志傑', '家強', '明偉', '俊輝'\n ],\n firstNamesFemale: [\n '美玲', '麗華', '婉儀', '美華', '淑嫻', '嘉欣', '詠儀', '慧敏',\n '梓晴', '悅彤', '芷晴', '可怡', '詩婷', '欣怡', '梓彤', '曉彤',\n '美琪', '麗珊', '婉芬', '美珊', '淑芬', '嘉怡', '詠珊', '慧儀',\n '梓珊', '悅怡', '芷珊', '可怡', '詩敏', '欣彤', '梓晴', '曉晴'\n ],\n lastNames: [\n '陳', '李', '張', '黃', '林', '吳', '周', '徐',\n '劉', '蔡', '楊', '趙', '許', '鄭', '郭', '何',\n '蕭', '鄧', '謝', '韓', '馮', '曹', '曾', '彭',\n '程', '鍾', '潘', '戴', '蔣', '洪', '盧', '陸',\n '翁', '伍', '游', '駱', '石', '賴', '熊', '顧'\n ],\n streets: [\n '彌敦道', '軒尼詩道', '德輔道中', '皇后大道中', '干諾道中',\n '告士打道', '夏慤道', '金鐘道', '中環道', '灣仔道',\n '銅鑼灣道', '英皇道', '筲箕灣道', '柴灣道', '北角道',\n '紅磡道', '漆咸道', '太子道', '長沙灣道', '彌敦道'\n ],\n cities: [\n '中環', '灣仔', '銅鑼灣', '尖沙咀', '旺角', '油麻地',\n '紅磡', '九龍城', '新蒲崗', '觀塘', '筲箕灣', '柴灣',\n '北角', '鰂魚涌', '太古城', '西灣河', '跑馬地', '大坑'\n ],\n states: [\n '香港島', '九龍', '新界', '中西區', '灣仔區', '東區', '南區',\n '油尖旺區', '深水埗區', '九龍城區', '黃大仙區', '觀塘區',\n '荃灣區', '屯門區', '元朗區', '北區', '大埔區', '西貢區',\n '沙田區', '葵青區', '離島區'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n '軟件工程師', '項目經理', '數據分析師', '市場營銷經理',\n '銷售代表', '會計師', '人力資源經理', '設計師', '營運經理',\n '業務分析師', '產品經理', '系統管理員', '客戶服務代表',\n '品質保證工程師', '技術作家', '數據庫管理員', '網絡工程師'\n ],\n departments: [\n '工程部', '市場部', '銷售部', '人力資源部', '財務部',\n '營運部', '客戶服務部', '資訊科技部', '研發部',\n '法律部', '產品管理部', '設計部', '品質保證部', '行政部'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${lastName}${firstName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const buildingName = Random.pick(['大廈', '中心', '廣場', '大樓', '樓']);\n const floor = Random.int(1, 60);\n const room = Random.int(1, 20);\n return `${state}${city}${street}${Random.int(1, 500)}號 ${floor}樓 ${room}室`;\n },\n\n generateZipCode(): string {\n return '';\n },\n\n phoneFormats: [\n '+852 #### ####',\n '#### ####',\n '+852-####-####',\n '####-####',\n '+852 #### ####',\n '6### ####',\n '5### ####',\n '9### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com.hk', 'outlook.com', 'hotmail.com',\n 'hkcable.com.hk', 'netvigator.com', 'pccw.com', 'hkt.com',\n 'icloud.com', 'protonmail.com', 'mail.com'\n ],\n\n companyNames: [\n '匯豐銀行', '恒生銀行', '中國銀行香港', '國泰航空', '港鐵公司',\n '長江實業', '新鴻基地產', '恒基兆業', '新世界發展', '太古地產',\n '東亞銀行', '渣打銀行', '電訊盈科', '香港中華煤氣', '領展'\n ],\n\n industries: [\n '科技', '金融', '醫療', '教育', '零售',\n '製造', '媒體', '電訊', '能源', '運輸',\n '地產', '諮詢', '酒店', '汽車', '航空'\n ],\n\n catchPhrases: [\n '創新未來', '您的成功是我們的使命', '共建美好明天',\n '優質服務', '卓越品質', '誠信為本',\n '與您攜手創高峰', '專業可靠', '香港精神'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const hi_IN: LocaleDefinition = {\n firstNamesMale: [\n 'आरव', 'विवान', 'अथर्व', 'रेयांश', 'इशान', 'अयान', 'आदित्य', 'अर्जुन',\n 'अभिषेक', 'अमित', 'अनिल', 'अशोक', 'राजेश', 'सुरेश', 'महेश', 'रमेश',\n 'विकास', 'संजय', 'दीपक', 'पंकज', 'अजय', 'विजय', 'राहुल', 'सचिन',\n 'अंकुर', 'गौरव', 'नितिन', 'मनीष', 'आशीष', 'हर्ष', 'कपिल', 'समीर',\n 'तरुण', 'अरुण', 'वरुण', 'करन', 'भारत', 'सिद्धार्थ', 'प्रशांत', 'निखिल'\n ],\n firstNamesFemale: [\n 'आद्या', 'अनन्या', 'दीया', 'इशानी', 'अवनी', 'आर्या', 'प्रेरणा', 'त्रिशुला',\n 'अंजलि', 'मीरा', 'प्रिया', 'नेहा', 'पूजा', 'रीता', 'गीता', 'सुनीता',\n 'अनिता', 'कविता', 'संगीता', 'ललिता', 'उषा', 'आशा', 'प्रभा', 'शांता',\n 'सुधा', 'रेखा', 'मधु', 'बिंदु', 'चित्रा', 'पद्मा', 'राधा', 'सीता',\n 'लक्ष्मी', 'सरस्वती', 'दुर्गा', 'काली', 'गौरी', 'शिवानी', 'तारा', 'मेनका'\n ],\n lastNames: [\n 'शर्मा', 'वर्मा', 'गुप्ता', 'सिंह', 'कुमार', 'यादव', 'चौधरी', 'मिश्रा',\n 'पांडे', 'जोशी', 'मेहता', 'शाह', 'पटेल', 'त्रिवेदी', 'चतुर्वेदी',\n 'दीक्षित', 'पाठक', 'भट्ट', 'पंत', 'बिष्ट', 'राणा', 'ठাকुर', 'राजपूत',\n 'राठौर', 'चौहान', 'सिसोदिया', 'कश्यप', 'भट्टाचार्य', 'बanerjee', 'मुखर्जी',\n 'गांगुली', 'सेन', 'दास', 'बोस', 'घोष', 'पाल', 'मंडल', 'सरदार', 'खान'\n ],\n streets: [\n 'महात्मा गांधी रोड', 'जवाहरलाल नेहरू मार्ग', 'सरदार पटेल मार्ग',\n 'अंबेडकर रोड', 'शास्त्री नगर', 'गांधी नगर', 'नेहरू नगर', 'पटेल नगर',\n 'लजपत नगर', 'कनॉट प्लेस', 'चांदनी चौक', 'करोल बाग', 'लक्ष्मी नगर',\n 'प्रीत विहार', 'द्वारका', 'रोहिणी', 'वसंत कुंज', 'साकेत', 'आर के पुरम'\n ],\n cities: [\n 'मुंबई', 'दिल्ली', 'बेंगलुरु', 'हैदराबाद', 'अहमदाबाद', 'चेन्नई', 'कोलकाता',\n 'सूरत', 'पुणे', 'जयपुर', 'लखनऊ', 'कानपुर', 'नागपुर', 'इंदौर', 'थाने',\n 'भोपाल', 'विशाखापट्टनम', 'पिंपरी-चिंचवड़', 'पटना', 'वडोदरा', 'गाजियाबाद',\n 'लुधियाना', 'आगरा', 'नाशिक', 'फरीदाबाद', 'मेरठ', 'राजकोट', 'वाराणसी'\n ],\n states: [\n 'उत्तर प्रदेश', 'महाराष्ट्र', 'बिहार', 'पश्चिम बंगाल', 'मध्य प्रदेश',\n 'तमिलनाडु', 'राजस्थान', 'कर्नाटक', 'गुजरात', 'आंध्र प्रदेश', 'ओडिशा',\n 'तेलंगाना', 'झारखंड', 'असम', 'पंजाब', 'छत्तीसगढ़', 'हरियाणा', 'दिल्ली',\n 'जम्मू और कश्मीर', 'उत्तराखंड', 'हिमाचल प्रदेश', 'त्रिपुरा', 'मेघालय',\n 'मणिपुर', 'नागालैंड', 'गोवा', 'अरुणाचल प्रदेश', 'मिजोरम', 'सिक्किम'\n ],\n zipCodePattern: '######',\n jobTitles: [\n 'सॉफ्टवेयर इंजीनियर', 'प्रोजेक्ट मैनेजर', 'डेटा एनालिस्ट', 'मार्केटिंग मैनेजर',\n 'सेल्स प्रतिनिधि', 'अकाउंटेंट', 'एचआर मैनेजर', 'डिजाइनर', 'ऑपरेशंस मैनेजर',\n 'बिजनेस एनालिस्ट', 'प्रोडक्ट मैनेजर', 'सिस्टम एडमिनिस्ट्रेटर', 'कस्टमर सर्विस',\n 'क्वालिटी अस्योरेंस इंजीनियर', 'तकनीकी लेखक', 'डेटाबेस एडमिनिस्ट्रेटर',\n 'नेटवर्क इंजीनियर', 'यूएक्स डिजाइनर', 'कंटेंट राइटर', 'अकाउंट मैनेजर'\n ],\n departments: [\n 'इंजीनियरिंग', 'मार्केटिंग', 'सेल्स', 'मानव संसाधन', 'वित्त', 'संचालन',\n 'ग्राहक सेवा', 'आईटी', 'अनुसंधान और विकास', 'कानूनी', 'उत्पाद प्रबंधन',\n 'डिजाइन', 'गुणवत्ता आश्वासन', 'प्रशासन'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 9999);\n const sector = Random.int(1, 100);\n const phase = Random.pick(['फेज 1', 'फेज 2', 'फेज 3', '']);\n return `मकान नं ${houseNumber}, ${street}, सेक्टर ${sector} ${phase}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(100000, 999999));\n },\n\n phoneFormats: [\n '+91 9#### #####',\n '+91 8#### #####',\n '+91 7#### #####',\n '+91 6#### #####',\n '0####-######',\n '0##-#######',\n '+91-##-####-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.in', 'outlook.com', 'hotmail.com',\n 'rediffmail.com', 'indiatimes.com', 'sify.com', 'icloud.com',\n 'protonmail.com', 'mail.com', 'zoho.in'\n ],\n\n companyNames: [\n 'टाटा समूह', 'रिलायंस इंडस्ट्रीज', 'इन्फोसिस', 'विप्रो', 'एचसीएल',\n 'टीसीएस', 'भारती एयरटेल', 'स्टेट बैंक ऑफ इंडिया', 'एचडीएफसी बैंक',\n 'आईसीआईसीआई बैंक', 'एलआईसी', 'ओएनजीसी', 'इंडियन ऑयल', 'भारत पेट्रोलियम',\n 'हिंदुस्तान यूनिलीवर', 'आईटीसी लिमिटेड', 'मारुति सुजुकी', 'महिंद्रा एंड महिंद्रा'\n ],\n\n industries: [\n 'प्रौद्योगिकी', 'वित्त', 'स्वास्थ्य सेवा', 'शिक्षा', 'खुदरा',\n 'विनिर्माण', 'मीडिया', 'दूरसंचार', 'ऊर्जा', 'परिवहन',\n 'रियल एस्टेट', 'परामर्श', 'आतिथ्य', 'ऑटोमोटिव', 'एयरोस्पेस',\n 'फार्मास्यूटिकल', 'कृषि', 'वस्त्र', 'पर्यटन'\n ],\n\n catchPhrases: [\n 'कल के लिए नवाचार', 'आपकी सफलता हमारा मिशन है', 'एक साथ भविष्य का निर्माण',\n 'गुणवत्ता और उत्कृष्टता', 'भारत के लिए प्रतिबद्ध', 'आपका विश्वसनीय साथी',\n 'टिकाऊ विकास', 'मूल्य बनाना', 'गर्व से भारतीय'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ne_NP: LocaleDefinition = {\n firstNamesMale: [\n 'राम', 'श्याम', 'हरि', 'कृष्ण', 'गणेश', 'दीपक', 'सुजन', 'रोशन',\n 'विजय', 'अजय', 'संजय', 'राजेश', 'महेश', 'रमेश', 'सुरेश', 'नरेश',\n 'दिने्श', 'योगेश', 'राकेश', 'मुकेश', 'आकाश', 'गगन', 'पवन', 'किरण',\n 'सुमन', 'प्रवीण', 'नवीन', 'सचिन', 'राहुल', 'अमित', 'विकास', 'सन्तोष',\n 'बाबु', 'रवि', 'शिव', 'बिक्रम', 'अर्जुन', 'पार्थ', 'आर्यन', 'समीर'\n ],\n firstNamesFemale: [\n 'सीता', 'गीता', 'रमा', 'लक्ष्मी', 'सरस्वती', 'पार्वती', 'काली', 'उमा',\n 'मीना', 'दीपा', 'रेखा', 'नेहा', 'स्नेहा', 'पूजा', 'अञ्जली', 'सुनिता',\n 'अनिता', 'कविता', 'संगीता', 'ललिता', 'उषा', 'आशा', 'प्रभा', 'शांता',\n 'सुधा', 'मधु', 'बिन्दु', 'चित्रा', 'पद्मा', 'राधा', 'सविता', 'नम्रता',\n 'प्रियंका', 'स्मृति', 'श्रद्धा', 'भक्ति', 'मुना', 'रश्मी', 'झरना', 'आकाशा'\n ],\n lastNames: [\n 'श्रेष्ठ', 'थापा', 'गुरुङ', 'मगर', 'राई', 'लिम्बू', 'तामाङ', 'नेवार',\n 'खड्का', 'बस्नेत', 'पन्त', 'भट्ट', 'आचार्य', 'तिवारी', 'पाण्डे', 'जोशी',\n 'भट्टराई', 'सुवेदी', 'लामिछाने', 'घिमिरे', 'कँडेल', 'पौडेल', 'राना',\n 'शाह', 'बिष्ट', 'रावल', 'धामी', 'मल्ल', 'राजा', 'सेन', 'थारू',\n 'यादव', 'कुश्मी', 'केसी', 'बुढा', 'रोका', 'चन्द', 'डँगी', 'हामाल'\n ],\n streets: [\n 'न्यू रोड', 'दरबार मार्ग', 'पुतली सडक', 'कमल पोखरी', 'बानेश्वर रोड',\n 'लजिम्पाट', 'महाराजगञ्ज', 'बालुवाटार', 'कालीमाटी', 'कोटेश्वर',\n 'जोरपाटी', 'गाइकुन्ट', 'सिनामंगल', 'बल्खु', 'एयरपोर्ट रोड',\n 'भक्तपुर रोड', 'ललितपुर रोड', 'कीर्तिपुर रोड', 'स्वयम्भू रोड'\n ],\n cities: [\n 'काठमाडौं', 'ललितपुर', 'भक्तपुर', 'पोखरा', 'बिराटनगर', 'बिरगञ्ज',\n 'धरान', 'इटहरी', 'बुटवल', 'नेपालगञ्ज', 'धनगढी', 'इटहरी', 'दमक',\n 'महेन्द्रनगर', 'तुलसीपुर', 'गुलरिया', 'सिद्धार्थनगर', 'हेटौंडा',\n 'वीरेन्द्रनगर', 'जनकपुर', 'गोरखा', 'नगरकोट', 'धुलिखेल', 'बनेपा'\n ],\n states: [\n 'कोशी प्रदेश', 'मधेश प्रदेश', 'बागमती प्रदेश', 'गण्डकी प्रदेश',\n 'लुम्बिनी प्रदेश', 'कर्णाली प्रदेश', 'सुदूरपश्चिम प्रदेश'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'सफ्टवेयर इन्जिनियर', 'परियोजना प्रबन्धक', 'डाटा विश्लेषक', 'बजारीकरण प्रबन्धक',\n 'बिक्री प्रतिनिधि', 'लेखाकार', 'मानव संसाधन प्रबन्धक', 'डिजाइनर',\n 'सञ्चालन प्रबन्धक', 'व्यवसाय विश्लेषक', 'उत्पाद प्रबन्धक', 'प्रणाली प्रशासक',\n 'ग्राहक सेवा प्रतिनिधि', 'गुणस्तर आश्वासन इन्जिनियर', 'प्राविधिक लेखक',\n 'डाटाबेस प्रशासक', 'सञ्जाल इन्जिनियर', 'यूएक्स डिजाइनर', 'सामग्री लेखक'\n ],\n departments: [\n 'इन्जिनियरिङ', 'बजारीकरण', 'बिक्री', 'मानव संसाधन', 'वित्त', 'सञ्चालन',\n 'ग्राहक सेवा', 'सूचना प्रविधि', 'अनुसन्धान र विकास', 'कानूनी',\n 'उत्पाद व्यवस्थापन', 'डिजाइन', 'गुणस्तर आश्वासन', 'प्रशासन'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const ward = Random.int(1, 35);\n const tole = Random.pick(['टोल', 'चोक', 'नगर', 'गाउँ']);\n const area = Random.pick(['बजार', 'डाँडा', 'फाँट', 'बेसी']);\n return `${tole} ${area}, ${street}, वडा नं. ${ward}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+977 98# ### ####',\n '+977 97# ### ####',\n '+977 96# ### ####',\n '+977 1 ### ####',\n '+977 61 ### ####',\n '+977 61 ### ###',\n '01-###-####',\n '061-###-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'worldlink.com.np', 'ntc.net.np', 'ncell.com'\n ],\n\n companyNames: [\n 'नेपाल टेलिकम', 'एनसेल', 'नेपाल आयल निगम', 'नेपाल विद्युत प्राधिकरण',\n 'नेपाल बैंक', 'राष्ट्रिय वाणिज्य बैंक', 'एनएमबि बैंक', 'सिटी बैंक',\n 'हिमालयन बैंक', 'नेपाल इन्भेस्टमेन्ट बैंक', 'सिद्धार्थ बैंक',\n 'नेपाल एयरलाइन्स', 'बुद्ध एयर', 'यती एयरलाइन्स', 'श्री एयरलाइन्स'\n ],\n\n industries: [\n 'प्रविधि', 'वित्त', 'स्वास्थ्य सेवा', 'शिक्षा', 'खुदरा',\n 'निर्माण', 'मिडिया', 'दूरसंचार', 'ऊर्जा', 'परिवहन',\n 'रियल इस्टेट', 'परामर्श', 'आतिथ्य', 'ऑटोमोटिभ', 'उड्डयन',\n 'कृषि', 'पर्यटन', 'हस्तशिल्प', 'जलविद्युत'\n ],\n\n catchPhrases: [\n 'भोलिको लागि नवीनता', 'तपाईंको सफलता हाम्रो मिशन हो', 'सँगै भविष्य निर्माण गर्दै',\n 'गुणस्तर र उत्कृष्टता', 'नेपालको लागि प्रतिबद्ध', 'तपाईंको विश्वसनीय साझेदार',\n 'दिगो विकास', 'मूल्य सिर्जना', 'गर्वले नेपाली'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const ur_PK: LocaleDefinition = {\n firstNamesMale: [\n 'محمد', 'احمد', 'علی', 'حسن', 'حسین', 'ابراہیم', 'اسماعیل', 'یوسف',\n 'موسی', 'عیسی', 'داؤد', 'سلیمان', 'عمر', 'عثمان', 'بلال', 'حمزہ',\n 'خالد', 'سعید', 'ماجد', 'کامران', 'عمران', 'سلمان', 'فیصل', 'عدنان',\n 'جاوید', 'پرویز', 'منیر', 'بشیر', 'رفیق', 'اشرف', 'ظفر', 'اقبال',\n 'وحید', 'حمید', 'مجید', 'رشید', 'شہباز', 'نواز', 'طارق', 'زبیر'\n ],\n firstNamesFemale: [\n 'فاطمہ', 'عائشہ', 'خدیجہ', 'مریم', 'زینب', 'رقیہ', 'ام کلثوم', 'حسینہ',\n 'آمنہ', 'حلیمہ', 'سمیہ', 'نرگس', 'یاسمین', 'پروین', 'مہر', 'ماہ',\n 'نور', 'روشن', 'چاند', 'تارا', 'پھول', 'گلاب', 'یاس', 'چمیلی',\n 'سلوی', 'ناز', 'افشاں', 'پری', 'حور', 'عین', 'ماہم', 'زینت',\n 'نرگس', 'شبنم', 'سحر', 'شام', 'شبو', 'عفت', 'طیبہ', 'طاہرہ'\n ],\n lastNames: [\n 'خان', 'ملک', ' Sheikh ', 'چوہدری', 'احمد', 'علی', 'حسین', 'شاہ',\n 'رضوی', 'عباسی', 'نقوی', 'بخاری', 'گیلانی', 'قریشی', 'انصاری',\n 'صدیقی', 'فاروقی', 'عثمانی', 'حیدری', 'کاظمی', 'میر', 'بیگ',\n 'مرزا', 'باٹھ', 'گجر', 'جٹ', 'راجپوت', 'مغل', 'پٹھان', 'افغان',\n 'بلوچ', 'بروہی', 'لاشاری', 'مزاری', 'بگٹی', 'مندوخیل', 'کزدری'\n ],\n streets: [\n 'شاہراہ فیصل', 'شاہراہ قائدین', 'ایم ایم عالم روڈ', 'مل روڈ',\n 'ٹیپو روڈ', 'قائد اعظم روڈ', 'سر سید روڈ', 'کلب علی روڈ',\n 'شہراہ پاکستان', 'جی ٹی روڈ', 'فیروز پور روڈ', 'لاہور روڈ',\n 'کراچی روڈ', 'راولپنڈی روڈ', 'اسلام آباد ایکسپریس وے', 'مری روڈ',\n 'کشمیر روڈ', 'گلبرگ', 'ڈی ایچ اے', 'بحریہ ٹاؤن'\n ],\n cities: [\n 'کراچی', 'لاہور', 'فیصل آباد', 'راولپنڈی', 'اسلام آباد', 'پشاور',\n 'کوئٹہ', 'ملتان', 'حیدرآباد', 'سکھر', 'سرگودھا', 'گوجرانوالہ',\n 'سیالکوٹ', 'بہاولپور', 'جھنگ', 'ڈیرہ غازی خان', 'مردان',\n 'ایبٹ آباد', 'نوشہرہ', 'کوہاٹ', 'بنوں', 'ٹیکسلا', 'گجرات', 'منڈی بہاؤالدین'\n ],\n states: [\n 'پنجاب', 'سندھ', 'خیبر پختونخوا', 'بلوچستان', 'اسلام آباد',\n 'گلگت بلتستان', 'آزاد کشمیر', 'قبائلی اضلاع'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'سافٹ ویئر انجینئر', 'پروجیکٹ مینیجر', 'ڈیٹا اینالسٹ', 'مارکیٹنگ مینیجر',\n 'سیلز نمائندہ', 'اکاؤنٹنٹ', 'ایچ آر مینیجر', 'ڈیزائنر', 'آپریشنز مینیجر',\n 'بزنس اینالسٹ', 'پروڈکٹ مینیجر', 'سسٹم ایڈمنسٹریٹر', 'کسٹمر سروس نمائندہ',\n 'کوالٹی یقینی دہانی انجینئر', 'تکنیکی مصنف', 'ڈیٹا بیس ایڈمنسٹریٹر',\n 'نیٹ ورک انجینئر', 'یو ایکس ڈیزائنر', 'مواد مصنف', 'اکاؤنٹ مینیجر'\n ],\n departments: [\n 'انجینئرنگ', 'مارکیٹنگ', 'سیلز', 'انسانی وسائل', 'فنانس', 'آپریشنز',\n 'کسٹمر سروس', 'آئی ٹی', 'تحقیق اور ترقی', 'قانونی', 'پروڈکٹ مینجمنٹ',\n 'ڈیزائن', 'کوالٹی یقینی دہانی', 'انتظامیہ'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 9999);\n const block = Random.pick(['بلاک A', 'بلاک B', 'بلاک C', 'بلاک D', 'بلاک E']);\n const sector = Random.pick(['سیکٹر F', 'سیکٹر G', 'سیکٹر H', 'سیکٹر I']);\n return `گھر نمبر ${houseNumber}, ${block}, ${sector}, ${street}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+92 3## #######',\n '+92 30# #######',\n '+92 31# #######',\n '+92 32# #######',\n '+92 33# #######',\n '+92 34# #######',\n '+92 35# #######',\n '+92 36# #######',\n '+92 37# #######',\n '+92 38# #######',\n '+92 39# #######',\n '03## #######',\n '021 #### ####',\n '042 #### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'ptcl.net.pk', 'cyber.net.pk', 'wateen.net', 'stormfiber.com'\n ],\n\n companyNames: [\n 'پاکستان ٹیلی کام', 'موبی لنک', 'یوفون', 'ٹیلی نار', 'زونگ',\n 'اسٹیٹ بینک', 'حبیب بینک', 'یونائیٹڈ بینک', 'الائیڈ بینک',\n 'نیشنل بینک', 'میزان بینک', 'پاکستان انٹرنیشنل ایئر لائن',\n 'پاکستان اسٹیل ملز', 'او جی ڈی سی', 'پاکستان پیٹرولیم'\n ],\n\n industries: [\n 'ٹیکنالوجی', 'فنانس', 'صحت', 'تعلیم', 'ریٹیل',\n 'مینوفیکچرنگ', 'میڈیا', 'ٹیلی کمیونیکیشن', 'توانائی', 'ٹرانسپورٹ',\n 'ریل اسٹیٹ', 'کنسلٹنگ', 'ہاسپٹلٹی', 'آٹوموٹیو', 'ایرو اسپیس',\n 'زراعت', 'ٹیکسٹائل', 'سیمنٹ', 'کھاد'\n ],\n\n catchPhrases: [\n 'کل کے لیے جدت', 'آپ کی کامیابی ہمارا مشن ہے', 'مل کر مستقبل بناتے ہیں',\n 'معیار اور بہترین', 'پاکستان کے لیے پرعزم', 'آپ کا قابل اعتماد ساتھی',\n 'پائیدار ترقی', 'قیمت بنانا', 'فخر سے پاکستانی'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const bn_IN: LocaleDefinition = {\n firstNamesMale: [\n 'রবি', 'অমিত', 'দীপক', 'সঞ্জয়', 'অজয়', 'বিজয়', 'রাহুল', 'সচিন',\n 'অঙ্কুর', 'গৌরব', 'নিতিন', 'মনীষ', 'আশীষ', 'হর্ষ', 'কপিল', 'সমীর',\n 'তরুণ', 'অরুণ', 'বরুণ', 'করণ', 'ভারত', 'সিদ্ধার্থ', 'প্রশান্ত', 'নিখিল',\n 'সুমন', 'প্রবীণ', 'নবীন', 'আকাশ', 'গগন', 'পবন', 'কিরণ'\n ],\n firstNamesFemale: [\n 'অঞ্জলি', 'মীরা', 'প্রিয়া', 'নেহা', 'পূজা', 'রীতা', 'গীতা', 'সুনিতা',\n 'অনিতা', 'কবিতা', 'সঙ্গীতা', 'ললিতা', 'ঊষা', 'আশা', 'প্রভা', 'শান্তা',\n 'সুধা', 'রেখা', 'মধু', 'বিন্দু', 'চিত্রা', 'পদ্মা', 'রাধা', 'সীতা',\n 'লক্ষ্মী', 'সরস্বতী', 'দুর্গা', 'কালী', 'গৌরী', 'শিবানী', 'তারা', 'মেনকা'\n ],\n lastNames: [\n 'বন্দ্যোপাধ্যায়', 'চ্যাটার্জি', 'গঙ্গোপাধ্যায়', 'ঘোষ', 'দাস', 'দত্ত',\n 'মুখোপাধ্যায়', 'সেন', 'সিংহ', 'বসু', 'রায়', 'সরকার', 'মণ্ডল', 'পাল',\n 'চক্রবর্তী', 'লাহিড়ী', 'মিত্র', 'বিশ্বাস', 'সান্যাল', 'গুহ', 'ঠাকুর',\n 'কুমার', 'শর্মা', 'বর্মন', 'অধিকারী', 'ভট্টাচার্য', 'নাথ', 'সাহা'\n ],\n streets: [\n 'নেতাজি সুভাষ রোড', 'পার্ক স্ট্রিট', 'ক্যামাক স্ট্রিট', 'চৌরঙ্গি রোড',\n 'এম জি রোড', 'বিধান সরণি', 'আচার্য প্রফুল্লচন্দ্র রোড', 'রাসবিহারী এভিনিউ',\n 'গোলপার্ক', 'হাজারি রোড', 'বেলিয়াঘাটা রোড', 'কেষ্টপুর রোড'\n ],\n cities: [\n 'কলকাতা', 'হাওড়া', 'দুর্গাপুর', 'আসানসোল', 'সিলিগুড়ি', 'মালদহ',\n 'বর্ধমান', 'বাহারামপুর', 'হাবড়া', 'শান্তিপুর', 'নৈহাটি', 'খড়গ্রাম',\n 'পুরুলিয়া', 'বালুরঘাট', 'কৃষ্ণনগর', 'রাণাঘাট', 'মেদিনীপুর', 'বিশনুপুর'\n ],\n states: [\n 'পশ্চিমবঙ্গ', 'বিহার', 'ঝাড়খণ্ড', 'ওড়িশা', 'অসম', 'মেঘালয়',\n 'ত্রিপুরা', 'মিজোরাম', 'মণিপুর', 'নাগাল্যান্ড', 'অরুণাচল প্রদেশ', 'সিকিম'\n ],\n zipCodePattern: '######',\n jobTitles: [\n 'সফটওয়্যার ইঞ্জিনিয়ার', 'প্রজেক্ট ম্যানেজার', 'ডেটা অ্যানালিস্ট', 'মার্কেটিং ম্যানেজার',\n 'সেলস প্রতিনিধি', 'অ্যাকাউন্ট্যান্ট', 'এইচআর ম্যানেজার', 'ডিজাইনার', 'অপারেশনস ম্যানেজার',\n 'বিজনেস অ্যানালিস্ট', 'প্রোডাক্ট ম্যানেজার', 'সিস্টেম অ্যাডমিনিস্ট্রেটর', 'কাস্টমার সার্ভিস'\n ],\n departments: [\n 'ইঞ্জিনিয়ারিং', 'মার্কেটিং', 'সেলস', 'মানব সম্পদ', 'অর্থ', 'অপারেশনস',\n 'গ্রাহক সেবা', 'আইটি', 'গবেষণা ও উন্নয়ন', 'আইনি', 'পণ্য ব্যবস্থাপনা', 'ডিজাইন'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 9999);\n const block = Random.pick(['ব্লক A', 'ব্লক B', 'ব্লক C', 'ব্লক D']);\n return `${block}, ${houseNumber} ${street}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(700000, 743999));\n },\n\n phoneFormats: [\n '+91 9#### #####',\n '+91 8#### #####',\n '+91 7#### #####',\n '+91 33 #### ####',\n '033 #### ####',\n '+91-##-####-####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.in', 'outlook.com', 'hotmail.com',\n 'rediffmail.com', 'indiatimes.com', 'sify.com', 'icloud.com'\n ],\n\n companyNames: [\n 'টাটা স্টিল', 'ইন্ডিয়ান অয়েল', 'এনটিপিসি', 'কয়লা ইন্ডিয়া',\n 'স্টেট ব্যাঙ্ক অফ ইন্ডিয়া', 'ইউনাইটেড ব্যাঙ্ক অফ ইন্ডিয়া',\n 'বন্ধন ব্যাঙ্ক', 'ইউকো ব্যাঙ্ক', 'বিজয়া ব্যাঙ্ক', 'এলাহাবাদ ব্যাঙ্ক'\n ],\n\n industries: [\n 'প্রযুক্তি', 'অর্থ', 'স্বাস্থ্যসেবা', 'শিক্ষা', 'খুচরা',\n 'উত্পাদন', 'মিডিয়া', 'টেলিযোগাযোগ', 'শক্তি', 'পরিবহন',\n 'রিয়েল এস্টেট', 'পরামর্শ', 'আতিথেয়তা', 'অটোমোটিভ', 'কৃষি'\n ],\n\n catchPhrases: [\n 'আগামীকালের জন্য উদ্ভাবন', 'আপনার সাফল্য আমাদের লক্ষ্য', 'একসাথে ভবিষ্যত গড়ি',\n 'মান এবং উৎকর্ষতা', 'ভারতের জন্য নিবেদিত', 'আপনার বিশ্বস্ত অংশীদার'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const sw_KE: LocaleDefinition = {\n firstNamesMale: [\n 'James', 'John', 'Peter', 'David', 'Michael', 'Joseph', 'Daniel', 'Samuel',\n 'Paul', 'Andrew', 'Stephen', 'Anthony', 'Thomas', 'Christopher', 'Patrick',\n 'Francis', 'Robert', 'William', 'Charles', 'Richard', 'George', 'Edward',\n 'Brian', 'Kevin', 'Eric', 'Brian', 'Dennis', 'Mark', 'Steven', 'Timothy',\n 'Boniface', 'Victor', 'Alex', 'Fred', 'Henry', 'Nicholas', 'Benjamin', 'Simon'\n ],\n firstNamesFemale: [\n 'Mary', 'Jane', 'Elizabeth', 'Sarah', 'Grace', 'Ruth', 'Esther', 'Agnes',\n 'Margaret', 'Catherine', 'Anne', 'Christine', 'Susan', 'Nancy', 'Jennifer',\n 'Patricia', 'Linda', 'Barbara', 'Carol', 'Helen', 'Dorothy', 'Sandra',\n 'Donna', 'Karen', 'Lisa', 'Michelle', 'Laura', 'Kimberly', 'Deborah',\n 'Jessica', 'Sharon', 'Cynthia', 'Kathleen', 'Amy', 'Angela', 'Shirley', 'Anna'\n ],\n lastNames: [\n 'Omondi', 'Odhiambo', 'Otieno', 'Owino', 'Okoth', 'Omondi', 'Onyango',\n 'Kamau', 'Mwangi', 'Mutua', 'Mwangi', 'Kipchoge', 'Kiptoo', 'Chebet',\n 'Jepkemoi', 'Chepkoech', 'Wanjiku', 'Wanjiru', 'Njeri', 'Muthoni',\n 'Akinyi', 'Atieno', 'Adhiambo', 'Achieng', 'Ochieng', 'Ouma', 'Omollo',\n 'Koech', 'Tanui', 'Kiprop', 'Kiptum', 'Cheruiyot', 'Kipngeno', 'Langat'\n ],\n streets: [\n 'Moi Avenue', 'Kenyatta Avenue', 'Haile Selassie Avenue', 'University Way',\n 'Tom Mboya Street', 'Government Road', 'Kenyatta Road', 'Kimathi Street',\n 'Mama Ngina Street', 'Kilimani Road', 'Ngong Road', 'Waiyaki Way',\n 'Thika Road', 'Jogoo Road', 'Juja Road', 'Mombasa Road', 'Langata Road',\n 'Limuru Road', 'Kiambu Road', 'Githurai Road', 'Thika Superhighway'\n ],\n cities: [\n 'Nairobi', 'Mombasa', 'Kisumu', 'Nakuru', 'Eldoret', 'Ruiru', 'Kikuyu',\n 'Kangundo-Tala', 'Malindi', 'Thika', 'Kitui', 'Karuri', 'Nyeri',\n 'Meru', 'Kakamega', 'Garissa', 'Machakos', 'Kisii', 'Nanyuki', 'Naivasha',\n 'Kericho', 'Bungoma', 'Voi', 'Kilifi', 'Busia', 'Embu', 'Mumias'\n ],\n states: [\n 'Nairobi', 'Mombasa', 'Kisumu', 'Nakuru', 'Uasin Gishu', 'Kiambu',\n 'Machakos', 'Meru', 'Kakamega', 'Bungoma', 'Kilifi', 'Kajiado',\n 'Nyeri', 'Murang\\'a', 'Kirinyaga', 'Embu', 'Tharaka-Nithi', 'Kitui',\n 'Makueni', 'Kericho', 'Bomet', 'Nandi', 'Uasin Gishu', 'Trans-Nzoia',\n 'Busia', 'Siaya', 'Kisumu', 'Homa Bay', 'Migori', 'Kisii', 'Nyamira',\n 'Narok', 'Kajiado', 'Taita-Taveta', 'Kwale', 'Kilifi', 'Tana River',\n 'Garissa', 'Wajir', 'Mandera', 'Marsabit', 'Isiolo', 'Samburu',\n 'Turkana', 'West Pokot', 'Baringo', 'Laikipia', 'Nyandarua'\n ],\n zipCodePattern: '#####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer',\n 'Operations Manager', 'Business Analyst', 'Product Manager',\n 'Systems Administrator', 'Customer Service Representative', 'Quality Assurance Engineer',\n 'Technical Writer', 'Database Administrator', 'Network Engineer', 'UX Designer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const buildingName = Random.pick(['Plaza', 'Centre', 'Tower', 'House', 'Court']);\n const floor = Random.int(1, 20);\n const room = Random.int(1, 50);\n return `${buildingName}, ${street}, ${floor}F, Room ${room}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(10000, 99999));\n },\n\n phoneFormats: [\n '+254 7## ### ###',\n '+254 71# ### ###',\n '+254 72# ### ###',\n '+254 73# ### ###',\n '+254 75# ### ###',\n '+254 76# ### ###',\n '+254 78# ### ###',\n '+254 79# ### ###',\n '07## ### ###',\n '071# ### ###',\n '072# ### ###',\n '073# ### ###'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'safaricom.co.ke', 'kenyaweb.com', 'swiftmail.co.ke'\n ],\n\n companyNames: [\n 'Safaricom', 'Kenya Airways', 'Equity Bank', 'KCB Bank', 'Co-operative Bank',\n 'NCBA Bank', 'Stanbic Bank', 'Barclays Bank', 'Standard Chartered',\n 'Kenya Power', 'Kenya Revenue Authority', 'East African Breweries',\n 'Nairobi Securities Exchange', 'Jubilee Insurance', 'Britam Insurance'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transportation',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Agriculture',\n 'Tourism', 'Mining', 'Textile', 'Construction'\n ],\n\n catchPhrases: [\n 'Innovating for tomorrow', 'Your success is our mission', 'Building the future together',\n 'Quality and excellence', 'Committed to Kenya', 'Your trusted partner',\n 'Sustainable growth', 'Creating value', 'Proudly Kenyan'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const sw_TZ: LocaleDefinition = {\n firstNamesMale: [\n 'Juma', 'John', 'Peter', 'David', 'Michael', 'Joseph', 'Daniel', 'Samuel',\n 'Paul', 'Andrew', 'Stephen', 'Anthony', 'Thomas', 'Christopher', 'Patrick',\n 'Francis', 'Robert', 'William', 'Charles', 'Richard', 'George', 'Edward',\n 'Brian', 'Kevin', 'Eric', 'Dennis', 'Mark', 'Steven', 'Timothy', 'Simon',\n 'Emmanuel', 'Victor', 'Alex', 'Fred', 'Henry', 'Nicholas', 'Benjamin', 'Isaac'\n ],\n firstNamesFemale: [\n 'Mary', 'Jane', 'Elizabeth', 'Sarah', 'Grace', 'Ruth', 'Esther', 'Agnes',\n 'Margaret', 'Catherine', 'Anne', 'Christine', 'Susan', 'Nancy', 'Jennifer',\n 'Patricia', 'Linda', 'Barbara', 'Carol', 'Helen', 'Dorothy', 'Sandra',\n 'Donna', 'Karen', 'Lisa', 'Michelle', 'Laura', 'Kimberly', 'Deborah',\n 'Jessica', 'Sharon', 'Cynthia', 'Kathleen', 'Amy', 'Angela', 'Shirley', 'Anna'\n ],\n lastNames: [\n 'Mwangi', 'Juma', 'Baraka', 'Mushi', 'Mkumbo', 'Mwakasege', 'Mrosso',\n 'Ndunguru', 'Ngasongwa', 'Mlay', 'Mushi', 'Mariki', 'Mbwana', 'Mgaya',\n 'Msechu', 'Mwakyusa', 'Makongoro', 'Mcharo', 'Mwakibete', 'Mwambene',\n 'Mwambulukela', 'Mwambula', 'Mwamila', 'Mwampeta', 'Mwampembe', 'Mwampeta',\n 'Mwasongwe', 'Mwashigadi', 'Mwinyimvua', 'Mnyaa', 'Mnyika', 'Mnyanzi'\n ],\n streets: [\n 'Samora Avenue', 'Azikiwe Street', 'Mkwepu Street', 'India Street',\n 'Kisutu Street', 'Jamhuri Street', 'Uhuru Street', 'Sokoine Drive',\n 'Bibi Titi Mohamed Road', 'Nyerere Road', 'Morogoro Road', 'Bagamoyo Road',\n 'Ali Hassan Mwinyi Road', 'Haile Selassie Road', 'Maktaba Street',\n 'Gulion Lane', 'Shaban Robert Street', 'Msimbazi Street'\n ],\n cities: [\n 'Dar es Salaam', 'Mwanza', 'Arusha', 'Dodoma', 'Mbeya', 'Morogoro',\n 'Tanga', 'Zanzibar', 'Kigoma', 'Moshi', 'Tabora', 'Songea', 'Iringa',\n 'Musoma', 'Shinyanga', 'Singida', 'Njombe', 'Bukoba', 'Sumbawanga',\n 'Kasulu', 'Uji', 'Kibaha', 'Bagamoyo', 'Kilifi', 'Korogwe', 'Lindi'\n ],\n states: [\n 'Dar es Salaam', 'Dodoma', 'Arusha', 'Kilimanjaro', 'Tanga', 'Morogoro',\n 'Pwani', 'Lindi', 'Mtwara', 'Ruvuma', 'Iringa', 'Mbeya', 'Songwe',\n 'Rukwa', 'Katavi', 'Tabora', 'Shinyanga', 'Simiyu', 'Geita', 'Mwanza',\n 'Mara', 'Kagera', 'Kigoma', 'Manyara', 'Singida', 'Zanzibar Mjini Magharibi',\n 'Zanzibar Kaskazini Unguja', 'Zanzibar Kusini Unguja', 'Zanzibar Kaskazini Pemba', 'Zanzibar Kusini Pemba'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Software Engineer', 'Project Manager', 'Data Analyst', 'Marketing Manager',\n 'Sales Representative', 'Accountant', 'HR Manager', 'Designer',\n 'Operations Manager', 'Business Analyst', 'Product Manager',\n 'Systems Administrator', 'Customer Service Representative', 'Quality Assurance Engineer',\n 'Technical Writer', 'Database Administrator', 'Network Engineer', 'UX Designer'\n ],\n departments: [\n 'Engineering', 'Marketing', 'Sales', 'Human Resources', 'Finance',\n 'Operations', 'Customer Service', 'IT', 'Research and Development',\n 'Legal', 'Product Management', 'Design', 'Quality Assurance', 'Administration'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const streetNumber = Random.int(1, 500);\n const nyumba = Random.pick(['Nyumba', 'Ofisi', 'Duka']);\n const number = Random.int(1, 100);\n return `${nyumba} Namba ${number}, ${streetNumber} ${street}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+255 7## ### ####',\n '+255 71# ### ####',\n '+255 72# ### ####',\n '+255 73# ### ####',\n '+255 74# ### ####',\n '+255 75# ### ####',\n '+255 76# ### ####',\n '+255 78# ### ####',\n '+255 79# ### ####',\n '07## ### ####',\n '071# ### ####',\n '072# ### ####',\n '073# ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'ttcl.co.tz', 'vodamail.co.tz', 'africellmail.com'\n ],\n\n companyNames: [\n 'CRDB Bank', 'NMB Bank', 'NBC Bank', 'TPB Bank', 'Exim Bank',\n 'Tanzania Breweries', 'East African Breweries', 'Vodacom Tanzania',\n 'Airtel Tanzania', 'Tigo Tanzania', 'Africell', 'Tanzania Electric Supply Company',\n 'Tanzania Revenue Authority', 'Tanzania Ports Authority', 'Air Tanzania'\n ],\n\n industries: [\n 'Technology', 'Finance', 'Healthcare', 'Education', 'Retail',\n 'Manufacturing', 'Media', 'Telecommunications', 'Energy', 'Transportation',\n 'Real Estate', 'Consulting', 'Hospitality', 'Automotive', 'Agriculture',\n 'Tourism', 'Mining', 'Fishing', 'Construction'\n ],\n\n catchPhrases: [\n 'Innovating for tomorrow', 'Your success is our mission', 'Building the future together',\n 'Quality and excellence', 'Committed to Tanzania', 'Your trusted partner',\n 'Sustainable growth', 'Creating value', 'Proudly Tanzanian'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const af_ZA: LocaleDefinition = {\n firstNamesMale: [\n 'Johan', 'Pieter', 'Andries', 'Willem', 'Jacobus', 'Johannes', 'Petrus',\n 'Francois', 'Daniel', 'Stefanus', 'Christiaan', 'Michael', 'David',\n 'Robert', 'John', 'James', 'William', 'Thomas', 'Charles', 'George',\n 'Louis', 'Schalk', 'Barend', 'Hendrik', 'Gert', 'Dirk', 'Cornelius',\n 'Nicolaas', 'Stephanus', 'Wynand', 'Ruan', 'Danie', 'Koos', 'Fanie'\n ],\n firstNamesFemale: [\n 'Maria', 'Anna', 'Elizabeth', 'Susanna', 'Johanna', 'Catharina', 'Magdalena',\n 'Sarah', 'Rachel', 'Rebecca', 'Martha', 'Helena', 'Sophia', 'Dorothea',\n 'Mary', 'Jane', 'Anne', 'Christine', 'Susan', 'Nancy', 'Jennifer',\n 'Patricia', 'Linda', 'Barbara', 'Carol', 'Helen', 'Dorothy', 'Sandra',\n 'Donna', 'Karen', 'Lisa', 'Michelle', 'Laura', 'Kimberly', 'Deborah'\n ],\n lastNames: [\n 'Botha', 'Van der Merwe', 'Smith', 'Venter', 'Van Zyl', 'Smit', 'Pretorius',\n 'Kruger', 'Van Wyk', 'Visser', 'Van Jaarsveld', 'Steyn', 'Prinsloo',\n 'Coetzee', 'Nel', 'Swart', 'Barnard', 'Viljoen', 'Botes', 'Marais',\n 'Bekker', 'Olivier', 'Rossouw', 'Burger', 'Fourie', 'Van der Walt',\n 'Meyer', 'Pienaar', 'Du Plessis', 'Du Toit', 'De Wet', 'De Villiers',\n 'Engelbrecht', 'Groenewald', 'Hattingh', 'Human', 'Joubert', 'Kemp'\n ],\n streets: [\n 'Adderley Street', 'Long Street', 'Buitengracht Street', 'Strand Street',\n 'St Georges Mall', 'Plein Street', 'Wale Street', 'Roeland Street',\n 'Kloof Street', 'Bree Street', 'President Street', 'Fox Street',\n 'Commissioner Street', 'Pritchard Street', 'Jeppe Street', 'Main Road',\n 'Jan Smuts Avenue', 'Louis Botha Avenue', 'Sandton Drive', 'William Nicol Drive'\n ],\n cities: [\n 'Johannesburg', 'Cape Town', 'Durban', 'Pretoria', 'Port Elizabeth',\n 'Bloemfontein', 'East London', 'Pietermaritzburg', 'Nelspruit',\n 'Polokwane', 'Kimberley', 'Rustenburg', 'George', 'Stellenbosch',\n 'Paarl', 'Worcester', 'Mossel Bay', 'Knysna', 'Plettenberg Bay',\n 'Hermanus', 'Oudtshoorn', 'Upington', 'Vereeniging', 'Welkom'\n ],\n states: [\n 'Gauteng', 'Western Cape', 'KwaZulu-Natal', 'Eastern Cape', 'Free State',\n 'Limpopo', 'Mpumalanga', 'North West', 'Northern Cape'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Sagteware-ingenieur', 'Projekbestuurder', 'Data-ontleder', 'Bemarkingsbestuurder',\n 'Verteenwoordiger', 'Rekenmeester', 'HR-bestuurder', 'Ontwerper',\n 'Bedryfsbestuurder', 'Besigheidsontleder', 'Produktbestuurder',\n 'Stelseladministrateur', 'Kliëntediensverteenwoordiger', 'Gehalteversekeringsingenieur',\n 'Tegniese Skrywer', 'Databasisadministrateur', 'Netwerkingenieur', 'UX-ontwerper'\n ],\n departments: [\n 'Ingenieurswese', 'Bemarking', 'Verkope', 'Menslike Hulpbronne', 'Finansies',\n 'Bedrywighede', 'Kliëntediens', 'IT', 'Navorsing en Ontwikkeling',\n 'Regs', 'Produktbestuur', 'Ontwerp', 'Gehalteversekering', 'Administrasie'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 9999);\n const suburb = Random.pick(['Sentrum', 'Noord', 'Suid', 'Oos', 'Wes', 'Ridge', 'Park', 'Gardens']);\n return `Posbus ${Random.int(1, 999)}, ${houseNumber} ${street}, ${suburb}, ${city}, ${state}, ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+27 1# ### ####',\n '+27 2# ### ####',\n '+27 3# ### ####',\n '+27 4# ### ####',\n '+27 5# ### ####',\n '+27 8# ### ####',\n '+27 7# ### ####',\n '01# ### ####',\n '02# ### ####',\n '03# ### ####',\n '04# ### ####',\n '08# ### ####',\n '07# ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'telkomsa.net', 'vodamail.co.za', 'mweb.co.za', 'absamail.co.za'\n ],\n\n companyNames: [\n 'Naspers', 'Anglo American', 'Sasol', 'MTN', 'Vodacom',\n 'Telkom', 'Standard Bank', 'FirstRand', 'Absa', 'Nedbank',\n 'Capitec', 'Shoprite', 'Woolworths', 'Pick n Pay', 'Spar',\n 'Eskom', 'Transnet', 'SAA', 'Discovery', 'Old Mutual'\n ],\n\n industries: [\n 'Tegnologie', 'Finansies', 'Gesondheidsorg', 'Onderwys', 'Kleinhandel',\n 'Vervaardiging', 'Media', 'Telekommunikasie', 'Energie', 'Vervoer',\n 'Eiendom', 'Raadgewing', 'Gasvryheid', 'Otomotief', 'Lugvaart',\n 'Mynbou', 'Landbou', 'Konstruksie', 'Toerisme'\n ],\n\n catchPhrases: [\n 'Innovasie vir môre', 'U sukses is ons missie', 'Bou die toekoms saam',\n 'Kwaliteit en uitnemendheid', 'Toegewy aan Suid-Afrika', 'U vertroude vennoot',\n 'Volhoubare groei', 'Skep waarde', 'Trots Suid-Afrikaans'\n ]\n};\n","import { LocaleDefinition } from '../types';\nimport { Random } from '../core/random';\n\nexport const pt_MZ: LocaleDefinition = {\n firstNamesMale: [\n 'João', 'Pedro', 'Paulo', 'José', 'Carlos', 'Luís', 'Miguel', 'António',\n 'Francisco', 'Manuel', 'Jorge', 'Daniel', 'David', 'Ricardo', 'Bruno',\n 'André', 'Tiago', 'Diogo', 'Rui', 'Nuno', 'Gonçalo', 'Mário', 'Sérgio',\n 'Fernando', 'Alberto', 'Roberto', 'Eduardo', 'Hugo', 'Igor', 'Ivan'\n ],\n firstNamesFemale: [\n 'Maria', 'Ana', 'Catarina', 'Joana', 'Sofia', 'Mariana', 'Beatriz', 'Inês',\n 'Francisca', 'Leonor', 'Matilde', 'Carolina', 'Benedita', 'Dinis', 'Laura',\n 'Madalena', 'Salomé', 'Vitória', 'Gabriela', 'Patricia', 'Sandra', 'Cristina',\n 'Fernanda', 'Isabel', 'Teresa', 'Rosa', 'Albertina', 'Conceição', 'Fátima'\n ],\n lastNames: [\n 'Machava', 'Mondlane', 'Nhaca', 'Cossa', 'Matsinhe', 'Sitoe', 'Chongo',\n 'Macamo', 'Muianga', 'Fumo', 'Bila', 'Chapual', 'Guebuza', 'Hume',\n 'Karamba', 'Loforte', 'Macuácua', 'Namburete', 'Osório', 'Panguana',\n 'Queface', 'Ribeiro', 'Sumbana', 'Tembe', 'Uaciquete', 'Valigy', 'Zucula'\n ],\n streets: [\n 'Avenida Julius Nyerere', 'Avenida 24 de Julho', 'Avenida da Zimpeto',\n 'Avenida de Moçambique', 'Avenida 25 de Setembro', 'Rua da Argélia',\n 'Rua de Bagamoyo', 'Rua de Lourenço Marques', 'Avenida Mártires de Inhaminga'\n ],\n cities: [\n 'Maputo', 'Matola', 'Nampula', 'Beira', 'Chimoio', 'Nacala', 'Quelimane',\n 'Tete', 'Lichinga', 'Pemba', 'Inhambane', 'Maxixe', 'Gaza', 'Manica',\n 'Dondo', 'Xai-Xai', 'Cuamba', 'Montepuez', 'Gurué', 'Angoche'\n ],\n states: [\n 'Maputo Cidade', 'Maputo Província', 'Gaza', 'Inhambane', 'Sofala',\n 'Manica', 'Tete', 'Zambézia', 'Nampula', 'Cabo Delgado', 'Niassa'\n ],\n zipCodePattern: '####',\n jobTitles: [\n 'Engenheiro de Software', 'Gestor de Projeto', 'Analista de Dados',\n 'Gestor de Marketing', 'Representante de Vendas', 'Contabilista',\n 'Gestor de Recursos Humanos', 'Designer', 'Gestor de Operações'\n ],\n departments: [\n 'Engenharia', 'Marketing', 'Vendas', 'Recursos Humanos', 'Finanças',\n 'Operações', 'Atendimento ao Cliente', 'TI', 'Pesquisa e Desenvolvimento'\n ],\n metricSystem: 'metric',\n\n formatFullName(firstName: string, lastName: string): string {\n return `${firstName} ${lastName}`;\n },\n\n formatAddress(street: string, city: string, state: string, zipCode: string): string {\n const houseNumber = Random.int(1, 9999);\n const bairro = Random.pick(['Central', 'Polana', 'Sommerschield', 'Katembe', 'Zimpeto']);\n return `Bairro ${bairro}, ${street} ${houseNumber}, ${city}, ${state} ${zipCode}`;\n },\n\n generateZipCode(): string {\n return String(Random.int(1000, 9999));\n },\n\n phoneFormats: [\n '+258 8# ### ####',\n '+258 82 ### ####',\n '+258 83 ### ####',\n '+258 84 ### ####',\n '+258 85 ### ####',\n '+258 86 ### ####',\n '+258 87 ### ####',\n '8# ### ####',\n '82 ### ####',\n '84 ### ####'\n ],\n\n emailDomains: [\n 'gmail.com', 'yahoo.com', 'outlook.com', 'hotmail.com',\n 'live.com', 'icloud.com', 'mail.com', 'protonmail.com',\n 'teledata.mz', 'vodacom.co.mz', 'movitel.co.mz'\n ],\n\n companyNames: [\n 'Vodacom Moçambique', 'Movitel', 'TMcel', 'Banco de Moçambique',\n 'Millennium BIM', 'BCI', 'Standard Bank', 'Banco Nacional de Investimento',\n 'Sasol Moçambique', 'ENH', 'CFM', 'LAM Moçambique Airlines'\n ],\n\n industries: [\n 'Tecnologia', 'Finanças', 'Saúde', 'Educação', 'Varejo',\n 'Manufatura', 'Mídia', 'Telecomunicações', 'Energia', 'Transporte',\n 'Imobiliário', 'Consultoria', 'Hotelaria', 'Automotivo', 'Mineração',\n 'Gás Natural', 'Agricultura', 'Pesca'\n ],\n\n catchPhrases: [\n 'Inovando para o futuro', 'O seu sucesso é a nossa missão', 'Construindo o futuro juntos',\n 'Qualidade e excelência', 'Comprometidos com Moçambique', 'O seu parceiro de confiança'\n ]\n};\n","import { Mimic } from './core/mimic';\nimport { localeRegistry } from './core/registry';\n\n// Import existing locales\nimport { en_US } from './locales/en_US';\nimport { ja_JP } from './locales/ja_JP';\nimport { id_ID } from './locales/id_ID';\nimport { de_DE } from './locales/de_DE';\nimport { fr_FR } from './locales/fr_FR';\nimport { pt_BR } from './locales/pt_BR';\nimport { ko_KR } from './locales/ko_KR';\nimport { en_AU } from './locales/en_AU';\n\n// Import new locales (20 original)\nimport { zh_CN } from './locales/zh_CN';\nimport { en_IN } from './locales/en_IN';\nimport { es_MX } from './locales/es_MX';\nimport { it_IT } from './locales/it_IT';\nimport { es_ES } from './locales/es_ES';\nimport { nl_NL } from './locales/nl_NL';\nimport { en_CA } from './locales/en_CA';\nimport { en_GB } from './locales/en_GB';\nimport { ru_RU } from './locales/ru_RU';\nimport { pl_PL } from './locales/pl_PL';\nimport { tr_TR } from './locales/tr_TR';\nimport { sv_SE } from './locales/sv_SE';\nimport { nb_NO } from './locales/nb_NO';\nimport { da_DK } from './locales/da_DK';\nimport { fi_FI } from './locales/fi_FI';\nimport { es_AR } from './locales/es_AR';\nimport { es_CL } from './locales/es_CL';\nimport { th_TH } from './locales/th_TH';\nimport { vi_VN } from './locales/vi_VN';\nimport { ms_MY } from './locales/ms_MY';\n\n// Import newest locales (16 additional)\nimport { en_SG } from './locales/en_SG';\nimport { en_PH } from './locales/en_PH';\nimport { en_NZ } from './locales/en_NZ';\nimport { en_ZA } from './locales/en_ZA';\nimport { pt_PT } from './locales/pt_PT';\nimport { el_GR } from './locales/el_GR';\nimport { cs_CZ } from './locales/cs_CZ';\nimport { de_AT } from './locales/de_AT';\nimport { de_CH } from './locales/de_CH';\nimport { nl_BE } from './locales/nl_BE';\nimport { hu_HU } from './locales/hu_HU';\nimport { ro_RO } from './locales/ro_RO';\nimport { ar_AE } from './locales/ar_AE';\nimport { ar_SA } from './locales/ar_SA';\nimport { ar_EG } from './locales/ar_EG';\nimport { he_IL } from './locales/he_IL';\n\n// Import new locales - Eastern Europe\nimport { uk_UA } from './locales/uk_UA';\nimport { sk_SK } from './locales/sk_SK';\nimport { hr_HR } from './locales/hr_HR';\nimport { rs_RS } from './locales/rs_RS';\nimport { lt_LT } from './locales/lt_LT';\nimport { lv_LV } from './locales/lv_LV';\nimport { et_EE } from './locales/et_EE';\nimport { bg_BG } from './locales/bg_BG';\nimport { is_IS } from './locales/is_IS';\n\n// Import new locales - Africa & Middle East\nimport { en_NG } from './locales/en_NG';\nimport { en_KE } from './locales/en_KE';\nimport { en_PK } from './locales/en_PK';\nimport { bn_BD } from './locales/bn_BD';\nimport { fa_IR } from './locales/fa_IR';\nimport { ar_MA } from './locales/ar_MA';\n\n// Import new locales - Americas\nimport { es_CO } from './locales/es_CO';\nimport { es_PE } from './locales/es_PE';\nimport { es_VE } from './locales/es_VE';\nimport { es_GT } from './locales/es_GT';\nimport { es_CR } from './locales/es_CR';\n\n// Import new locales - Asia\nimport { zh_TW } from './locales/zh_TW';\n\n// Import additional locales - Middle East\nimport { ar_IQ } from './locales/ar_IQ';\nimport { ar_KW } from './locales/ar_KW';\nimport { ar_QA } from './locales/ar_QA';\nimport { ar_BH } from './locales/ar_BH';\nimport { ar_DZ } from './locales/ar_DZ';\nimport { ar_JO } from './locales/ar_JO';\nimport { ar_LB } from './locales/ar_LB';\nimport { ar_LY } from './locales/ar_LY';\nimport { ar_OM } from './locales/ar_OM';\nimport { ar_SD } from './locales/ar_SD';\nimport { ar_SY } from './locales/ar_SY';\nimport { ar_TN } from './locales/ar_TN';\nimport { ar_YE } from './locales/ar_YE';\n\n// Import additional locales - Europe\nimport { en_IE } from './locales/en_IE';\nimport { fr_BE } from './locales/fr_BE';\nimport { fr_CH } from './locales/fr_CH';\nimport { de_LI } from './locales/de_LI';\nimport { de_LU } from './locales/de_LU';\nimport { it_CH } from './locales/it_CH';\nimport { ca_ES } from './locales/ca_ES';\nimport { fr_LU } from './locales/fr_LU';\n\n// Import additional locales - Americas\nimport { fr_CA } from './locales/fr_CA';\nimport { es_EC } from './locales/es_EC';\nimport { es_BO } from './locales/es_BO';\nimport { es_PY } from './locales/es_PY';\nimport { es_US } from './locales/es_US';\nimport { es_DO } from './locales/es_DO';\n\n// Import additional locales - Asia\nimport { zh_HK } from './locales/zh_HK';\nimport { hi_IN } from './locales/hi_IN';\nimport { ne_NP } from './locales/ne_NP';\nimport { ur_PK } from './locales/ur_PK';\nimport { bn_IN } from './locales/bn_IN';\n\n// Import additional locales - Africa\nimport { sw_KE } from './locales/sw_KE';\nimport { sw_TZ } from './locales/sw_TZ';\nimport { af_ZA } from './locales/af_ZA';\nimport { pt_MZ } from './locales/pt_MZ';\n\n// Export types\nexport type {\n Gender,\n MetricSystem,\n PersonData,\n AddressData,\n PhysicalData,\n WorkData,\n AgeRange,\n LocaleData,\n LocaleDefinition\n} from './types';\n\n// Export core classes\nexport { Mimic } from './core/mimic';\nexport { Random } from './core/random';\nexport { localeRegistry } from './core/registry';\n\n/**\n * ============================================\n * AUTO-REGISTRATION OF LOCALES\n * ============================================\n * Register all locales with their aliases\n */\n\n// Original 8 locales\nlocaleRegistry.register('en_US', en_US, ['en', 'us', 'usa']);\nlocaleRegistry.register('ja_JP', ja_JP, ['ja', 'jp', 'japan']);\nlocaleRegistry.register('id_ID', id_ID, ['id', 'indonesia']);\nlocaleRegistry.register('de_DE', de_DE, ['de', 'germany', 'deutsch']);\nlocaleRegistry.register('fr_FR', fr_FR, ['fr', 'france']);\nlocaleRegistry.register('pt_BR', pt_BR, ['pt', 'br', 'brazil', 'brasil']);\nlocaleRegistry.register('ko_KR', ko_KR, ['ko', 'kr', 'korea']);\nlocaleRegistry.register('en_AU', en_AU, ['au', 'aus', 'australia']);\n\n// New 20 locales\nlocaleRegistry.register('zh_CN', zh_CN, ['zh', 'cn', 'china']);\nlocaleRegistry.register('en_IN', en_IN, ['in', 'india']);\nlocaleRegistry.register('es_MX', es_MX, ['mx', 'mexico']);\nlocaleRegistry.register('it_IT', it_IT, ['it', 'italy', 'italia']);\nlocaleRegistry.register('es_ES', es_ES, ['es', 'spain', 'españa']);\nlocaleRegistry.register('nl_NL', nl_NL, ['nl', 'netherlands', 'holland']);\nlocaleRegistry.register('en_CA', en_CA, ['ca', 'canada']);\nlocaleRegistry.register('en_GB', en_GB, ['gb', 'uk', 'britain']);\nlocaleRegistry.register('ru_RU', ru_RU, ['ru', 'russia']);\nlocaleRegistry.register('pl_PL', pl_PL, ['pl', 'poland', 'polska']);\nlocaleRegistry.register('tr_TR', tr_TR, ['tr', 'turkey', 'turkiye']);\nlocaleRegistry.register('sv_SE', sv_SE, ['sv', 'se', 'sweden', 'sverige']);\nlocaleRegistry.register('nb_NO', nb_NO, ['no', 'norway', 'norge']);\nlocaleRegistry.register('da_DK', da_DK, ['da', 'dk', 'denmark', 'danmark']);\nlocaleRegistry.register('fi_FI', fi_FI, ['fi', 'finland', 'suomi']);\nlocaleRegistry.register('es_AR', es_AR, ['ar', 'argentina']);\nlocaleRegistry.register('es_CL', es_CL, ['cl', 'chile']);\nlocaleRegistry.register('th_TH', th_TH, ['th', 'thailand']);\nlocaleRegistry.register('vi_VN', vi_VN, ['vi', 'vn', 'vietnam']);\nlocaleRegistry.register('ms_MY', ms_MY, ['ms', 'my', 'malaysia']);\n\n// Newest 16 locales\nlocaleRegistry.register('en_SG', en_SG, ['sg', 'singapore']);\nlocaleRegistry.register('en_PH', en_PH, ['ph', 'philippines']);\nlocaleRegistry.register('en_NZ', en_NZ, ['nz', 'new-zealand']);\nlocaleRegistry.register('en_ZA', en_ZA, ['za', 'south-africa']);\nlocaleRegistry.register('pt_PT', pt_PT, ['portugal']);\nlocaleRegistry.register('el_GR', el_GR, ['el', 'gr', 'greece']);\nlocaleRegistry.register('cs_CZ', cs_CZ, ['cs', 'cz', 'czech']);\nlocaleRegistry.register('de_AT', de_AT, ['at', 'austria']);\nlocaleRegistry.register('de_CH', de_CH, ['ch', 'switzerland']);\nlocaleRegistry.register('nl_BE', nl_BE, ['be', 'belgium']);\nlocaleRegistry.register('hu_HU', hu_HU, ['hu', 'hungary']);\nlocaleRegistry.register('ro_RO', ro_RO, ['ro', 'romania']);\nlocaleRegistry.register('ar_AE', ar_AE, ['ae', 'uae', 'emirates']);\nlocaleRegistry.register('ar_SA', ar_SA, ['sa', 'saudi', 'saudi-arabia']);\nlocaleRegistry.register('ar_EG', ar_EG, ['eg', 'egypt']);\nlocaleRegistry.register('he_IL', he_IL, ['he', 'il', 'israel']);\n\n// Eastern Europe locales\nlocaleRegistry.register('uk_UA', uk_UA, ['ua', 'ukraine']);\nlocaleRegistry.register('sk_SK', sk_SK, ['sk', 'slovakia']);\nlocaleRegistry.register('hr_HR', hr_HR, ['hr', 'croatia']);\nlocaleRegistry.register('rs_RS', rs_RS, ['rs', 'serbia']);\nlocaleRegistry.register('lt_LT', lt_LT, ['lt', 'lithuania']);\nlocaleRegistry.register('lv_LV', lv_LV, ['lv', 'latvia']);\nlocaleRegistry.register('et_EE', et_EE, ['ee', 'estonia']);\nlocaleRegistry.register('bg_BG', bg_BG, ['bg', 'bulgaria']);\nlocaleRegistry.register('is_IS', is_IS, ['is', 'iceland']);\n\n// Africa & Middle East locales\nlocaleRegistry.register('en_NG', en_NG, ['ng', 'nigeria']);\nlocaleRegistry.register('en_KE', en_KE, ['ke', 'kenya']);\nlocaleRegistry.register('en_PK', en_PK, ['pk', 'pakistan']);\nlocaleRegistry.register('bn_BD', bn_BD, ['bd', 'bangladesh', 'bengali']);\nlocaleRegistry.register('fa_IR', fa_IR, ['fa', 'persian', 'farsi']);\nlocaleRegistry.register('ar_MA', ar_MA, ['ma', 'morocco', 'arabic-morocco']);\n\n// Americas locales\nlocaleRegistry.register('es_CO', es_CO, ['co', 'colombia']);\nlocaleRegistry.register('es_PE', es_PE, ['pe', 'peru']);\nlocaleRegistry.register('es_VE', es_VE, ['ve', 'venezuela']);\nlocaleRegistry.register('es_GT', es_GT, ['gt', 'guatemala']);\nlocaleRegistry.register('es_CR', es_CR, ['cr', 'costa-rica']);\n\n// Asia locales\nlocaleRegistry.register('zh_TW', zh_TW, ['tw', 'taiwan']);\n\n// Additional Middle East locales\nlocaleRegistry.register('ar_IQ', ar_IQ, ['iq', 'iraq', 'mesopotamia']);\nlocaleRegistry.register('ar_KW', ar_KW, ['kw', 'kuwait']);\nlocaleRegistry.register('ar_QA', ar_QA, ['qa', 'qatar']);\nlocaleRegistry.register('ar_BH', ar_BH, ['bh', 'bahrain']);\nlocaleRegistry.register('ar_DZ', ar_DZ, ['dz', 'algeria', 'algerie']);\nlocaleRegistry.register('ar_JO', ar_JO, ['jo', 'jordan', 'jordanie']);\nlocaleRegistry.register('ar_LB', ar_LB, ['lb', 'lebanon', 'liban']);\nlocaleRegistry.register('ar_LY', ar_LY, ['ly', 'libya', 'libye']);\nlocaleRegistry.register('ar_OM', ar_OM, ['om', 'oman']);\nlocaleRegistry.register('ar_SD', ar_SD, ['sd', 'sudan']);\nlocaleRegistry.register('ar_SY', ar_SY, ['sy', 'syria', 'syrie']);\nlocaleRegistry.register('ar_TN', ar_TN, ['tn', 'tunisia', 'tunisie']);\nlocaleRegistry.register('ar_YE', ar_YE, ['ye', 'yemen']);\n\n// Additional Europe locales\nlocaleRegistry.register('en_IE', en_IE, ['ie', 'ireland', 'eire']);\nlocaleRegistry.register('fr_BE', fr_BE, ['fr-be', 'wallonia', 'brussels']);\nlocaleRegistry.register('fr_CH', fr_CH, ['fr-ch', 'romandie', 'geneva', 'lausanne']);\nlocaleRegistry.register('de_LI', de_LI, ['li', 'liechtenstein']);\nlocaleRegistry.register('de_LU', de_LU, ['de-lu', 'luxembourg-german']);\nlocaleRegistry.register('it_CH', it_CH, ['it-ch', 'ticino', 'swiss-italian']);\nlocaleRegistry.register('ca_ES', ca_ES, ['ca', 'catalonia', 'catalan']);\nlocaleRegistry.register('fr_LU', fr_LU, ['fr-lu', 'luxembourg-french']);\n\n// Additional Americas locales\nlocaleRegistry.register('fr_CA', fr_CA, ['fr-ca', 'quebec', 'qc', 'canada-fr']);\nlocaleRegistry.register('es_EC', es_EC, ['ec', 'ecuador']);\nlocaleRegistry.register('es_BO', es_BO, ['bo', 'bolivia']);\nlocaleRegistry.register('es_PY', es_PY, ['py', 'paraguay']);\nlocaleRegistry.register('es_US', es_US, ['es-us', 'spanish-american', 'latino']);\nlocaleRegistry.register('es_DO', es_DO, ['do', 'dominican-republic']);\n\n// Additional Asia locales\nlocaleRegistry.register('zh_HK', zh_HK, ['hk', 'hongkong', 'hong-kong']);\nlocaleRegistry.register('hi_IN', hi_IN, ['hi', 'hindi', 'hindustan']);\nlocaleRegistry.register('ne_NP', ne_NP, ['np', 'nepal', 'nepali']);\nlocaleRegistry.register('ur_PK', ur_PK, ['ur', 'urdu', 'pakistan-urdu']);\nlocaleRegistry.register('bn_IN', bn_IN, ['bn-in', 'bengali-india', 'west-bengal']);\n\n// Additional Africa locales\nlocaleRegistry.register('sw_KE', sw_KE, ['sw-ke', 'kenya-swahili']);\nlocaleRegistry.register('sw_TZ', sw_TZ, ['sw-tz', 'tanzania-swahili']);\nlocaleRegistry.register('af_ZA', af_ZA, ['af', 'afrikaans', 'south-africa-af']);\nlocaleRegistry.register('pt_MZ', pt_MZ, ['mz', 'mozambique']);\n\n/**\n * Factory function to create Mimic instance with specified locale\n */\nexport function createMimic(locale: string = 'en_US'): Mimic {\n const localeDefinition = localeRegistry.get(locale);\n \n if (!localeDefinition) {\n const available = localeRegistry.getAllCodes().join(', ');\n throw new Error(\n `Locale '${locale}' not found.\\n` +\n `Available locales: ${available}`\n );\n }\n \n return new Mimic(localeDefinition);\n}\n\n/**\n * Get available main locale codes\n */\nexport function getAvailableLocales(): string[] {\n return localeRegistry.getAvailableLocales();\n}\n\n/**\n * Get all codes (locales + aliases)\n */\nexport function getAllLocaleCodes(): string[] {\n return localeRegistry.getAllCodes();\n}\n\n/**\n * Export all locale definitions for advanced usage\n */\nexport const locales = {\n // Original 8\n en_US, ja_JP, id_ID, de_DE, fr_FR, pt_BR, ko_KR, en_AU,\n // New (20)\n zh_CN, en_IN, es_MX, it_IT, es_ES, nl_NL, en_CA, en_GB,\n ru_RU, pl_PL, tr_TR, sv_SE, nb_NO, da_DK, fi_FI,\n es_AR, es_CL, th_TH, vi_VN, ms_MY,\n // Newest (16)\n en_SG, en_PH, en_NZ, en_ZA, pt_PT, el_GR, cs_CZ, de_AT,\n de_CH, nl_BE, hu_HU, ro_RO, ar_AE, ar_SA, ar_EG, he_IL,\n // Eastern Europe (9)\n uk_UA, sk_SK, hr_HR, rs_RS, lt_LT, lv_LV, et_EE, bg_BG, is_IS,\n // Africa & Middle East (6)\n en_NG, en_KE, en_PK, bn_BD, fa_IR, ar_MA,\n // Americas (5)\n es_CO, es_PE, es_VE, es_GT, es_CR,\n // Asia (1)\n zh_TW,\n // Additional Middle East (13)\n ar_IQ, ar_KW, ar_QA, ar_BH, ar_DZ, ar_JO, ar_LB, ar_LY, ar_OM, ar_SD, ar_SY, ar_TN, ar_YE,\n // Additional Europe (8)\n en_IE, fr_BE, fr_CH, de_LI, de_LU, it_CH, ca_ES, fr_LU,\n // Additional Americas (6)\n fr_CA, es_EC, es_BO, es_PY, es_US, es_DO,\n // Additional Asia (5)\n zh_HK, hi_IN, ne_NP, ur_PK, bn_IN,\n // Additional Africa (4)\n sw_KE, sw_TZ, af_ZA, pt_MZ\n};\n\n// Default export\nexport default createMimic;"],"mappings":"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","names":[]}
|