JB logo

Command Palette

Search for a command to run...

yOUTUBE
Blog
PreviousNext

Next.js Code Snippets - Frequently Used Patterns

A collection of battle-tested code snippets for Next.js applications including CORS setup, Prisma configuration, file uploads, data export, and PDF generation.

CORS Configuration in Next.js

Setting up CORS in a Next.js application using middleware to handle cross-origin requests properly.

File: middleware.ts

import { NextRequest, NextResponse } from "next/server";
 
const allowedOrigins = [
  "https://newsletter-hub-teal.vercel.app",
  "http://localhost:3000",
];
 
const corsOptions = {
  "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
  "Access-Control-Allow-Headers": "Content-Type, Authorization",
};
 
export function middleware(request: NextRequest) {
  // Check the origin from the request
  const origin = request.headers.get("origin") ?? "";
  const isAllowedOrigin = allowedOrigins.includes(origin);
 
  // Handle preflighted requests
  const isPreflight = request.method === "OPTIONS";
 
  if (isPreflight) {
    const preflightHeaders = {
      ...(isAllowedOrigin && { "Access-Control-Allow-Origin": origin }),
      ...corsOptions,
    };
    return NextResponse.json({}, { headers: preflightHeaders });
  }
 
  // Handle simple requests
  const response = NextResponse.next();
 
  if (isAllowedOrigin) {
    response.headers.set("Access-Control-Allow-Origin", origin);
  }
 
  Object.entries(corsOptions).forEach(([key, value]) => {
    response.headers.set(key, value);
  });
 
  return response;
}
 
export const config = {
  matcher: "/api/:path*",
};

Key Benefits:

  • Handles both preflight and simple CORS requests
  • Configurable allowed origins
  • Applies only to API routes via matcher

Global Prisma Instance

Creating a singleton Prisma client instance that works properly in development and production environments.

File: lib/db.ts

import { PrismaClient } from "@prisma/client";
import { withAccelerate } from "@prisma/extension-accelerate";
 
export const db = new PrismaClient().$extends(withAccelerate());
 
const globalForPrisma = global as unknown as { prisma: typeof db };
 
if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = db;

Key Benefits:

  • Prevents multiple Prisma instances in development
  • Includes Prisma Accelerate extension for caching
  • Memory efficient and prevents connection pool exhaustion

UploadThing File Router Configuration

Complete UploadThing setup for handling different types of file uploads with proper MIME type configuration.

File: app/api/uploadthing/core.ts

import { createUploadthing, type FileRouter } from "uploadthing/next";
import { UploadThingError } from "uploadthing/server";
 
const f = createUploadthing();
 
// FileRouter for your app, can contain multiple FileRoutes
export const ourFileRouter = {
  // Define as many FileRoutes as you like, each with a unique routeSlug
  categoryImage: f({ image: { maxFileSize: "1MB" } }).onUploadComplete(
    async ({ metadata, file }) => {
      console.log("file url", file.url);
      return { uploadedBy: "JB" };
    }
  ),
  blogImage: f({ image: { maxFileSize: "1MB" } }).onUploadComplete(
    async ({ metadata, file }) => {
      console.log("file url", file.url);
      return { uploadedBy: "JB" };
    }
  ),
  fileUploads: f({
    image: { maxFileSize: "1MB", maxFileCount: 4 },
    pdf: { maxFileSize: "1MB", maxFileCount: 4 },
    "application/msword": { maxFileSize: "1MB", maxFileCount: 4 }, // .doc
    "application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
      maxFileSize: "1MB",
      maxFileCount: 4,
    }, // .docx
    "application/vnd.ms-excel": { maxFileSize: "1MB", maxFileCount: 4 }, // .xls
    "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
      maxFileSize: "1MB",
      maxFileCount: 4,
    }, // .xlsx
    "application/vnd.ms-powerpoint": { maxFileSize: "1MB", maxFileCount: 4 }, // .ppt
    "application/vnd.openxmlformats-officedocument.presentationml.presentation":
      { maxFileSize: "1MB", maxFileCount: 4 }, // .pptx
    "text/plain": { maxFileSize: "1MB", maxFileCount: 4 }, // .txt
 
    // Archive types
    "application/gzip": { maxFileSize: "1MB", maxFileCount: 4 },
    "application/zip": { maxFileSize: "1MB", maxFileCount: 4 },
  }).onUploadComplete(async ({ metadata, file }) => {
    console.log("file url", file.url);
    return { uploadedBy: "JB" };
  }),
  mailAttachments: f({
    image: { maxFileSize: "1MB", maxFileCount: 4 },
    pdf: { maxFileSize: "1MB", maxFileCount: 4 },
    "application/msword": { maxFileSize: "1MB", maxFileCount: 4 }, // .doc
    "application/vnd.openxmlformats-officedocument.wordprocessingml.document": {
      maxFileSize: "1MB",
      maxFileCount: 4,
    }, // .docx
    "application/vnd.ms-excel": { maxFileSize: "1MB", maxFileCount: 4 }, // .xls
    "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet": {
      maxFileSize: "1MB",
      maxFileCount: 4,
    }, // .xlsx
    "application/vnd.ms-powerpoint": { maxFileSize: "1MB", maxFileCount: 4 }, // .ppt
    "application/vnd.openxmlformats-officedocument.presentationml.presentation":
      { maxFileSize: "1MB", maxFileCount: 4 }, // .pptx
    "text/plain": { maxFileSize: "1MB", maxFileCount: 4 }, // .txt
 
    // Archive types
    "application/gzip": { maxFileSize: "1MB", maxFileCount: 4 },
    "application/zip": { maxFileSize: "1MB", maxFileCount: 4 },
  }).onUploadComplete(async ({ metadata, file }) => {
    console.log("file url", file.url);
    return { uploadedBy: "JB" };
  }),
} satisfies FileRouter;
 
export type OurFileRouter = typeof ourFileRouter;

Key Benefits:

  • Supports multiple file types including Office documents
  • Separate routes for different use cases
  • Proper MIME type configuration for all common file formats

Excel Export with XLSX

Export data to Excel format with proper formatting and error handling.

const handleExport = async (filteredOrders: SalesOrder[]) => {
  setIsExporting(true);
  try {
    const exportData = filteredOrders.map((order) => ({
      "Order Number": order.orderNumber,
      "Order Date": formatDate(order.orderDate),
      "Buyer Type": order.buyerType.replace("_", " "),
      "Buyer Name": order.buyerName,
      Target: order.targetTitle,
      "Items Count": order.orderItems.length,
      "Number Plates": order.orderItems
        .map((item) => item.numberPlate)
        .join(", "),
      "Total Amount": formatCurrency(order.totalAmount),
      "Amount Paid": formatCurrency(order.amountPaid),
      Outstanding: formatCurrency(order.outstandingBalance),
      "Payment Status": order.paymentStatus,
      "Order Status": order.status,
      Created: formatDate(order.createdAt),
    }));
 
    const worksheet = XLSX.utils.json_to_sheet(exportData);
    const workbook = XLSX.utils.book_new();
    XLSX.utils.book_append_sheet(workbook, worksheet, "Sales Orders");
 
    const fileName = `Sales_Orders_${activeTab}_${format(
      new Date(),
      "yyyy-MM-dd"
    )}.xlsx`;
    XLSX.writeFile(workbook, fileName);
 
    toast.success("Export successful", {
      description: `Sales orders exported to ${fileName}`,
    });
  } catch (error) {
    toast.error("Export failed", {
      description:
        error instanceof Error ? error.message : "Unknown error occurred",
    });
  } finally {
    setIsExporting(false);
  }
};

Key Benefits:

  • Transforms complex nested data into flat Excel format
  • Automatic file naming with timestamps
  • Proper error handling and user feedback
  • Loading states for better UX

PDF Generation and Download

Complete PDF generation setup using React-PDF with download and print functionality.

Single Invoice PDF Component

// Usage in component for single invoice
const { data: order, isLoading, error, refetch } = useSalesOrder(orderId);
 
const preparePDFData = (order: any) => {
  return {
    id: order.id,
    orderNumber: order.orderNumber,
    orderDate: order.orderDate,
    status: order.status,
    paymentStatus: order.paymentStatus,
    buyerName: order.buyerName,
    buyerType: order.buyerType,
    targetTitle: order.targetTitle,
    subtotal: order.subtotal,
    taxAmount: order.taxAmount,
    totalAmount: order.totalAmount,
    amountPaid: order.amountPaid,
    outstandingBalance: order.outstandingBalance,
    notes: order.notes,
    salesAgent: order.salesAgent,
    salesPerson: order.salesPerson,
    orderItems: order.orderItems.map((item: any) => ({
      id: item.id,
      productName: item.productName,
      numberPlate: item.numberPlate,
      modelName: item.modelName,
      unitPrice: item.unitPrice,
      quantity: item.quantity,
      lineTotal: item.lineTotal,
      isPaid: item.isPaid,
      paidAt: item.paidAt,
    })),
    payments: order.payments.map((payment: any) => ({
      id: payment.id,
      amount: payment.amount,
      paymentDate: payment.paymentDate,
      paymentMethod: payment.paymentMethod,
      referenceNumber: payment.referenceNumber,
      notes: payment.notes,
    })),
  };
};
 
// Usage in component
<SalesOrderPrintComponent orderData={preparePDFData(order)} />

Sales Report PDF , SalesReportComponent, Hhooks and Usage

"use client";
 
import React from "react";
import {
  Document,
  Page,
  Text,
  View,
  StyleSheet,
  pdf,
} from "@react-pdf/renderer";
import { format } from "date-fns";
import { Download, Printer } from "lucide-react";
import { Button } from "@/components/ui/button";
import { toast } from "sonner";
import PDFHeader from "./PDFHeader";
import { DateFilterOption, SalesOrderFilters } from "@/actions/sales-orders-v2";
 
// Types for the sales order data
interface SalesOrderData {
  id: string;
  orderNumber: string;
  orderDate: string | Date;
  status: string;
  paymentStatus: string;
  buyerName: string;
  buyerType: "SALES_PERSON" | "SALES_AGENT";
  targetTitle: string;
  totalAmount: number;
  amountPaid: number;
  outstandingBalance: number;
  orderItems: Array<{
    id: string;
    productName: string;
    numberPlate: string;
    modelName: string;
    unitPrice: number;
    quantity: number;
    lineTotal: number;
    isPaid: boolean;
  }>;
}
 
interface SalesReportData {
  orders: SalesOrderData[];
  period: {
    filter: DateFilterOption;
    dateRange?: {
      from: Date;
      to: Date;
    };
    label: string;
  };
  summary: {
    totalOrders: number;
    totalRevenue: number;
    totalPaid: number;
    totalOutstanding: number;
    paidOrders: number;
    outstandingOrders: number;
    averageOrderValue: number;
  };
}
 
// PDF Styles
const styles = StyleSheet.create({
  page: {
    flexDirection: "column",
    backgroundColor: "#FFFFFF",
    padding: 30,
    fontSize: 10,
    fontFamily: "Helvetica",
  },
  section: {
    marginBottom: 15,
  },
  sectionTitle: {
    fontSize: 12,
    fontWeight: "bold",
    marginBottom: 8,
    color: "#1f2937",
    borderBottomWidth: 1,
    borderBottomColor: "#e5e7eb",
    paddingBottom: 3,
  },
  periodInfo: {
    backgroundColor: "#f3f4f6",
    padding: 15,
    marginBottom: 20,
    borderRadius: 5,
  },
  periodTitle: {
    fontSize: 14,
    fontWeight: "bold",
    marginBottom: 5,
    color: "#1f2937",
  },
  periodText: {
    fontSize: 10,
    color: "#4b5563",
  },
  summaryGrid: {
    flexDirection: "row",
    flexWrap: "wrap",
    marginBottom: 20,
  },
  summaryCard: {
    width: "48%",
    marginBottom: 10,
    marginRight: "2%",
    padding: 10,
    backgroundColor: "#f9fafb",
    borderWidth: 1,
    borderColor: "#e5e7eb",
    borderRadius: 3,
  },
  summaryLabel: {
    fontSize: 9,
    color: "#6b7280",
    marginBottom: 3,
  },
  summaryValue: {
    fontSize: 14,
    fontWeight: "bold",
    color: "#1f2937",
  },
  table: {
    width: "100%",
    borderStyle: "solid",
    borderWidth: 1,
    borderColor: "#e5e7eb",
    marginBottom: 15,
  },
  tableRow: {
    flexDirection: "row",
    borderBottomWidth: 1,
    borderBottomColor: "#e5e7eb",
    minHeight: 25,
    alignItems: "center",
  },
  tableHeader: {
    backgroundColor: "#1f2937",
    color: "#FFFFFF",
    fontWeight: "bold",
  },
  tableCol: {
    padding: 5,
    borderRightWidth: 1,
    borderRightColor: "#e5e7eb",
    fontSize: 9,
  },
  orderCol: { width: "15%" },
  dateCol: { width: "12%" },
  buyerCol: { width: "20%" },
  itemsCol: { width: "8%", textAlign: "center" },
  amountCol: { width: "15%", textAlign: "right" },
  paidCol: { width: "15%", textAlign: "right" },
  outstandingCol: { width: "15%", textAlign: "right" },
  badge: {
    fontSize: 7,
    padding: 2,
    borderRadius: 2,
    textAlign: "center",
    color: "#FFFFFF",
  },
  paidBadge: {
    fontSize: 7,
    padding: 2,
    borderRadius: 2,
    textAlign: "center",
    backgroundColor: "#10b981",
    color: "#FFFFFF",
  },
  partialBadge: {
    fontSize: 7,
    padding: 2,
    borderRadius: 2,
    textAlign: "center",
    backgroundColor: "#f59e0b",
    color: "#FFFFFF",
  },
  pendingBadge: {
    fontSize: 7,
    padding: 2,
    borderRadius: 2,
    textAlign: "center",
    backgroundColor: "#ef4444",
    color: "#FFFFFF",
  },
  footer: {
    marginTop: "auto",
    paddingTop: 20,
    borderTopWidth: 1,
    borderTopColor: "#e5e7eb",
    fontSize: 8,
    color: "#6b7280",
    textAlign: "center",
  },
  pageNumber: {
    position: "absolute",
    fontSize: 8,
    bottom: 20,
    left: 0,
    right: 0,
    textAlign: "center",
    color: "#6b7280",
  },
});
 
// PDF Document Component
const SalesReportPDF: React.FC<{ reportData: SalesReportData }> = ({
  reportData,
}) => {
  const formatCurrency = (amount: number) => {
    return new Intl.NumberFormat("en-UG", {
      style: "currency",
      currency: "UGX",
      minimumFractionDigits: 0,
    }).format(amount);
  };
 
  const formatDate = (date: string | Date) => {
    const dateObj = typeof date === "string" ? new Date(date) : date;
    return format(dateObj, "MMM dd, yyyy");
  };
 
  const getPaymentStatusBadge = (status: string) => {
    switch (status) {
      case "PAID":
        return styles.paidBadge;
      case "PARTIAL":
        return styles.partialBadge;
      default:
        return styles.pendingBadge;
    }
  };
 
  const getPeriodDescription = () => {
    const { filter, dateRange, label } = reportData.period;
 
    if (filter === "custom" && dateRange) {
      return `Custom Period: ${formatDate(dateRange.from)} - ${formatDate(
        dateRange.to
      )}`;
    }
 
    return `Report Period: ${label}`;
  };
 
  return (
    <Document>
      <Page size="A4" style={styles.page}>
        {/* Reusable Header */}
        <PDFHeader title="SALES REPORT" />
 
        {/* Period Information */}
        <View style={styles.periodInfo}>
          <Text style={styles.periodTitle}>Sales Report Summary</Text>
          <Text style={styles.periodText}>{getPeriodDescription()}</Text>
          <Text style={styles.periodText}>
            Generated on {format(new Date(), "PPP 'at' p")}
          </Text>
        </View>
 
        {/* Summary Cards */}
        <View style={styles.section}>
          <Text style={styles.sectionTitle}>Performance Summary</Text>
          <View style={styles.summaryGrid}>
            <View style={styles.summaryCard}>
              <Text style={styles.summaryLabel}>Total Orders</Text>
              <Text style={styles.summaryValue}>
                {reportData.summary.totalOrders}
              </Text>
            </View>
            <View style={styles.summaryCard}>
              <Text style={styles.summaryLabel}>Total Revenue</Text>
              <Text style={styles.summaryValue}>
                {formatCurrency(reportData.summary.totalRevenue)}
              </Text>
            </View>
            <View style={styles.summaryCard}>
              <Text style={styles.summaryLabel}>Amount Collected</Text>
              <Text style={styles.summaryValue}>
                {formatCurrency(reportData.summary.totalPaid)}
              </Text>
            </View>
            <View style={styles.summaryCard}>
              <Text style={styles.summaryLabel}>Outstanding Balance</Text>
              <Text style={styles.summaryValue}>
                {formatCurrency(reportData.summary.totalOutstanding)}
              </Text>
            </View>
            <View style={styles.summaryCard}>
              <Text style={styles.summaryLabel}>Paid Orders</Text>
              <Text style={styles.summaryValue}>
                {reportData.summary.paidOrders}
              </Text>
            </View>
            <View style={styles.summaryCard}>
              <Text style={styles.summaryLabel}>Outstanding Orders</Text>
              <Text style={styles.summaryValue}>
                {reportData.summary.outstandingOrders}
              </Text>
            </View>
          </View>
        </View>
 
        {/* Orders Table */}
        <View style={styles.section}>
          <Text style={styles.sectionTitle}>
            Detailed Order List ({reportData.orders.length} orders)
          </Text>
          <View style={styles.table}>
            {/* Table Header */}
            <View style={[styles.tableRow, styles.tableHeader]}>
              <View style={[styles.tableCol, styles.orderCol]}>
                <Text>Order #</Text>
              </View>
              <View style={[styles.tableCol, styles.dateCol]}>
                <Text>Date</Text>
              </View>
              <View style={[styles.tableCol, styles.buyerCol]}>
                <Text>Buyer</Text>
              </View>
              <View style={[styles.tableCol, styles.itemsCol]}>
                <Text>Items</Text>
              </View>
              <View style={[styles.tableCol, styles.amountCol]}>
                <Text>Total</Text>
              </View>
              <View style={[styles.tableCol, styles.paidCol]}>
                <Text>Paid</Text>
              </View>
              <View style={[styles.tableCol, styles.outstandingCol]}>
                <Text>Outstanding</Text>
              </View>
            </View>
 
            {/* Table Rows */}
            {reportData.orders.slice(0, 25).map((order, index) => (
              <View key={order.id} style={styles.tableRow}>
                <View style={[styles.tableCol, styles.orderCol]}>
                  <Text style={{ fontWeight: "bold", fontSize: 8 }}>
                    {order.orderNumber}
                  </Text>
                  <Text style={getPaymentStatusBadge(order.paymentStatus)}>
                    {order.paymentStatus}
                  </Text>
                </View>
                <View style={[styles.tableCol, styles.dateCol]}>
                  <Text>{formatDate(order.orderDate)}</Text>
                </View>
                <View style={[styles.tableCol, styles.buyerCol]}>
                  <Text style={{ fontWeight: "bold", fontSize: 8 }}>
                    {order.buyerName}
                  </Text>
                  <Text style={{ fontSize: 7, color: "#6b7280" }}>
                    {order.buyerType.replace("_", " ")}
                  </Text>
                </View>
                <View style={[styles.tableCol, styles.itemsCol]}>
                  <Text>{order.orderItems.length}</Text>
                </View>
                <View style={[styles.tableCol, styles.amountCol]}>
                  <Text style={{ fontWeight: "bold" }}>
                    {formatCurrency(order.totalAmount)}
                  </Text>
                </View>
                <View style={[styles.tableCol, styles.paidCol]}>
                  <Text style={{ color: "#10b981" }}>
                    {formatCurrency(order.amountPaid)}
                  </Text>
                </View>
                <View style={[styles.tableCol, styles.outstandingCol]}>
                  <Text style={{ color: "#ef4444" }}>
                    {formatCurrency(order.outstandingBalance)}
                  </Text>
                </View>
              </View>
            ))}
          </View>
 
          {reportData.orders.length > 25 && (
            <Text
              style={{ fontSize: 8, fontStyle: "italic", textAlign: "center" }}
            >
              Showing first 25 orders of {reportData.orders.length} total orders
            </Text>
          )}
        </View>
 
        {/* Footer */}
        <View style={styles.footer}>
          <Text>This report contains confidential business information.</Text>
          <Text>For inquiries, contact us at info@yourcompany.com</Text>
        </View>
 
        {/* Page Number */}
        <Text
          style={styles.pageNumber}
          render={({ pageNumber, totalPages }) =>
            `Page ${pageNumber} of ${totalPages}`
          }
          fixed
        />
      </Page>
    </Document>
  );
};
 
// Main Component Props
interface SalesReportComponentProps {
  orders: SalesOrderData[];
  currentFilter: SalesOrderFilters;
}
 
// Hook for sales report functionality
export const useSalesReport = ({
  orders,
  currentFilter,
}: SalesReportComponentProps) => {
  // Calculate summary data
  const summary = React.useMemo(() => {
    const totalOrders = orders.length;
    const totalRevenue = orders.reduce(
      (sum, order) => sum + order.totalAmount,
      0
    );
    const totalPaid = orders.reduce((sum, order) => sum + order.amountPaid, 0);
    const totalOutstanding = orders.reduce(
      (sum, order) => sum + order.outstandingBalance,
      0
    );
    const paidOrders = orders.filter(
      (order) => order.paymentStatus === "PAID"
    ).length;
    const outstandingOrders = orders.filter(
      (order) =>
        order.paymentStatus === "PENDING" ||
        order.paymentStatus === "PARTIAL" ||
        order.paymentStatus === "OVERDUE"
    ).length;
    const averageOrderValue = totalOrders > 0 ? totalRevenue / totalOrders : 0;
 
    return {
      totalOrders,
      totalRevenue,
      totalPaid,
      totalOutstanding,
      paidOrders,
      outstandingOrders,
      averageOrderValue,
    };
  }, [orders]);
 
  // Get period label
  const getPeriodLabel = () => {
    const filter = currentFilter.dateFilter || "last7days";
    switch (filter) {
      case "today":
        return "Today";
      case "last7days":
        return "Last 7 Days";
      case "thisMonth":
        return "This Month";
      case "thisYear":
        return "This Year";
      case "custom":
        return "Custom Period";
      case "lifetime":
        return "All Time";
      default:
        return "Last 7 Days";
    }
  };
 
  const reportData: SalesReportData = {
    orders,
    period: {
      filter: currentFilter.dateFilter || "last7days",
      dateRange: currentFilter.dateRange,
      label: getPeriodLabel(),
    },
    summary,
  };
 
  const handlePrint = () => {
    const generatePDF = async () => {
      try {
        const blob = await pdf(
          <SalesReportPDF reportData={reportData} />
        ).toBlob();
        const url = URL.createObjectURL(blob);
        const printWindow = window.open(url);
 
        if (printWindow) {
          printWindow.onload = () => {
            printWindow.print();
          };
        } else {
          toast.error("Popup blocked. Please allow popups for this site.");
        }
      } catch (error) {
        console.error("Error generating PDF for print:", error);
        toast.error("Failed to generate PDF for printing");
      }
    };
 
    generatePDF();
    toast.success("Preparing sales report for printing...");
  };
 
  const handleDownload = async () => {
    try {
      const blob = await pdf(
        <SalesReportPDF reportData={reportData} />
      ).toBlob();
      const url = URL.createObjectURL(blob);
      const link = document.createElement("a");
      link.href = url;
      link.download = `Sales-Report-${getPeriodLabel().replace(
        /\s+/g,
        "-"
      )}-${format(new Date(), "yyyy-MM-dd")}.pdf`;
      document.body.appendChild(link);
      link.click();
      document.body.removeChild(link);
      URL.revokeObjectURL(url);
      toast.success("Sales report downloaded successfully!");
    } catch (error) {
      console.error("Error downloading PDF:", error);
      toast.error("Failed to download sales report");
    }
  };
 
  return {
    handlePrint,
    handleDownload,
    printButton: (
      <Button variant="outline" onClick={handlePrint} className="gap-2">
        <Printer className="h-4 w-4" />
        Print Report
      </Button>
    ),
    downloadButton: (
      <Button variant="outline" onClick={handleDownload} className="gap-2">
        <Download className="h-4 w-4" />
        Download Report
      </Button>
    ),
  };
};
 
// Component version (if you need to render the buttons directly)
const SalesReportComponent: React.FC<SalesReportComponentProps> = ({
  orders,
  currentFilter,
}) => {
  const { printButton, downloadButton } = useSalesReport({
    orders,
    currentFilter,
  });
 
  return (
    <div className="flex gap-2">
      {printButton}
      {downloadButton}
    </div>
  );
};
 
export default SalesReportComponent;
 

Reusable PDF Header Component

File: components/pdf/PDFHeader.tsx

import React from "react";
import { View, Text, StyleSheet } from "@react-pdf/renderer";
 
interface PDFHeaderProps {
  title: string;
  companyName?: string;
  phone?: string;
  email?: string;
  address?: string;
}
 
const styles = StyleSheet.create({
  header: {
    flexDirection: "row",
    justifyContent: "space-between",
    alignItems: "center",
    backgroundColor: "#1f2937",
    color: "#FFFFFF",
    padding: 20,
    marginBottom: 20,
  },
  companyInfo: {
    flex: 1,
  },
  companyName: {
    fontSize: 18,
    fontWeight: "bold",
    marginBottom: 5,
  },
  companyDetails: {
    fontSize: 10,
  },
  documentTitle: {
    fontSize: 28,
    fontWeight: "bold",
  },
});
 
const PDFHeader: React.FC<PDFHeaderProps> = ({
  title,
  companyName = "Limibooks (U) Ltd",
  phone = "+256 772514057",
  email = "info@limibooks.com",
  address = "Kampala, Uganda",
}) => {
  return (
    <View style={styles.header}>
      <View style={styles.companyInfo}>
        <Text style={styles.companyName}>{companyName}</Text>
        <Text style={styles.companyDetails}>Phone: {phone}</Text>
        <Text style={styles.companyDetails}>Email: {email}</Text>
        <Text style={styles.companyDetails}>Address: {address}</Text>
      </View>
      <Text style={styles.documentTitle}>{title}</Text>
    </View>
  );
};
 
export default PDFHeader;

Countries with Codes and Flags

export interface Country {
  code: string;
  name: string;
  flag: string;
}
 
export const countries: Country[] = [
  { code: "AF", name: "Afghanistan", flag: "🇦🇫" },
  { code: "AL", name: "Albania", flag: "🇦🇱" },
  { code: "DZ", name: "Algeria", flag: "🇩🇿" },
  { code: "AS", name: "American Samoa", flag: "🇦🇸" },
  { code: "AD", name: "Andorra", flag: "🇦🇩" },
  { code: "AO", name: "Angola", flag: "🇦🇴" },
  { code: "AI", name: "Anguilla", flag: "🇦🇮" },
  { code: "AQ", name: "Antarctica", flag: "🇦🇶" },
  { code: "AG", name: "Antigua and Barbuda", flag: "🇦🇬" },
  { code: "AR", name: "Argentina", flag: "🇦🇷" },
  { code: "AM", name: "Armenia", flag: "🇦🇲" },
  { code: "AW", name: "Aruba", flag: "🇦🇼" },
  { code: "AU", name: "Australia", flag: "🇦🇺" },
  { code: "AT", name: "Austria", flag: "🇦🇹" },
  { code: "AZ", name: "Azerbaijan", flag: "🇦🇿" },
  { code: "BS", name: "Bahamas", flag: "🇧🇸" },
  { code: "BH", name: "Bahrain", flag: "🇧🇭" },
  { code: "BD", name: "Bangladesh", flag: "🇧🇩" },
  { code: "BB", name: "Barbados", flag: "🇧🇧" },
  { code: "BY", name: "Belarus", flag: "🇧🇾" },
  { code: "BE", name: "Belgium", flag: "🇧🇪" },
  { code: "BZ", name: "Belize", flag: "🇧🇿" },
  { code: "BJ", name: "Benin", flag: "🇧🇯" },
  { code: "BM", name: "Bermuda", flag: "🇧🇲" },
  { code: "BT", name: "Bhutan", flag: "🇧🇹" },
  { code: "BO", name: "Bolivia", flag: "🇧🇴" },
  { code: "BA", name: "Bosnia and Herzegovina", flag: "🇧🇦" },
  { code: "BW", name: "Botswana", flag: "🇧🇼" },
  { code: "BV", name: "Bouvet Island", flag: "🇧🇻" },
  { code: "BR", name: "Brazil", flag: "🇧🇷" },
  { code: "IO", name: "British Indian Ocean Territory", flag: "🇮🇴" },
  { code: "BN", name: "Brunei Darussalam", flag: "🇧🇳" },
  { code: "BG", name: "Bulgaria", flag: "🇧🇬" },
  { code: "BF", name: "Burkina Faso", flag: "🇧🇫" },
  { code: "BI", name: "Burundi", flag: "🇧🇮" },
  { code: "KH", name: "Cambodia", flag: "🇰🇭" },
  { code: "CM", name: "Cameroon", flag: "🇨🇲" },
  { code: "CA", name: "Canada", flag: "🇨🇦" },
  { code: "CV", name: "Cape Verde", flag: "🇨🇻" },
  { code: "KY", name: "Cayman Islands", flag: "🇰🇾" },
  { code: "CF", name: "Central African Republic", flag: "🇨🇫" },
  { code: "TD", name: "Chad", flag: "🇹🇩" },
  { code: "CL", name: "Chile", flag: "🇨🇱" },
  { code: "CN", name: "China", flag: "🇨🇳" },
  { code: "CX", name: "Christmas Island", flag: "🇨🇽" },
  { code: "CC", name: "Cocos (Keeling) Islands", flag: "🇨🇨" },
  { code: "CO", name: "Colombia", flag: "🇨🇴" },
  { code: "KM", name: "Comoros", flag: "🇰🇲" },
  { code: "CG", name: "Congo", flag: "🇨🇬" },
  { code: "CD", name: "Congo, Democratic Republic", flag: "🇨🇩" },
  { code: "CK", name: "Cook Islands", flag: "🇨🇰" },
  { code: "CR", name: "Costa Rica", flag: "🇨🇷" },
  { code: "CI", name: "Cote D'Ivoire", flag: "🇨🇮" },
  { code: "HR", name: "Croatia", flag: "🇭🇷" },
  { code: "CU", name: "Cuba", flag: "🇨🇺" },
  { code: "CY", name: "Cyprus", flag: "🇨🇾" },
  { code: "CZ", name: "Czech Republic", flag: "🇨🇿" },
  { code: "DK", name: "Denmark", flag: "🇩🇰" },
  { code: "DJ", name: "Djibouti", flag: "🇩🇯" },
  { code: "DM", name: "Dominica", flag: "🇩🇲" },
  { code: "DO", name: "Dominican Republic", flag: "🇩🇴" },
  { code: "EC", name: "Ecuador", flag: "🇪🇨" },
  { code: "EG", name: "Egypt", flag: "🇪🇬" },
  { code: "SV", name: "El Salvador", flag: "🇸🇻" },
  { code: "GQ", name: "Equatorial Guinea", flag: "🇬🇶" },
  { code: "ER", name: "Eritrea", flag: "🇪🇷" },
  { code: "EE", name: "Estonia", flag: "🇪🇪" },
  { code: "ET", name: "Ethiopia", flag: "🇪🇹" },
  { code: "FK", name: "Falkland Islands (Malvinas)", flag: "🇫🇰" },
  { code: "FO", name: "Faroe Islands", flag: "🇫🇴" },
  { code: "FJ", name: "Fiji", flag: "🇫🇯" },
  { code: "FI", name: "Finland", flag: "🇫🇮" },
  { code: "FR", name: "France", flag: "🇫🇷" },
  { code: "GF", name: "French Guiana", flag: "🇬🇫" },
  { code: "PF", name: "French Polynesia", flag: "🇵🇫" },
  { code: "TF", name: "French Southern Territories", flag: "🇹🇫" },
  { code: "GA", name: "Gabon", flag: "🇬🇦" },
  { code: "GM", name: "Gambia", flag: "🇬🇲" },
  { code: "GE", name: "Georgia", flag: "🇬🇪" },
  { code: "DE", name: "Germany", flag: "🇩🇪" },
  { code: "GH", name: "Ghana", flag: "🇬🇭" },
  { code: "GI", name: "Gibraltar", flag: "🇬🇮" },
  { code: "GR", name: "Greece", flag: "🇬🇷" },
  { code: "GL", name: "Greenland", flag: "🇬🇱" },
  { code: "GD", name: "Grenada", flag: "🇬🇩" },
  { code: "GP", name: "Guadeloupe", flag: "🇬🇵" },
  { code: "GU", name: "Guam", flag: "🇬🇺" },
  { code: "GT", name: "Guatemala", flag: "🇬🇹" },
  { code: "GG", name: "Guernsey", flag: "🇬🇬" },
  { code: "GN", name: "Guinea", flag: "🇬🇳" },
  { code: "GW", name: "Guinea-Bissau", flag: "🇬🇼" },
  { code: "GY", name: "Guyana", flag: "🇬🇾" },
  { code: "HT", name: "Haiti", flag: "🇭🇹" },
  { code: "HM", name: "Heard Island & Mcdonald Islands", flag: "🇭🇲" },
  { code: "VA", name: "Holy See (Vatican City State)", flag: "🇻🇦" },
  { code: "HN", name: "Honduras", flag: "🇭🇳" },
  { code: "HK", name: "Hong Kong", flag: "🇭🇰" },
  { code: "HU", name: "Hungary", flag: "🇭🇺" },
  { code: "IS", name: "Iceland", flag: "🇮🇸" },
  { code: "IN", name: "India", flag: "🇮🇳" },
  { code: "ID", name: "Indonesia", flag: "🇮🇩" },
  { code: "IR", name: "Iran, Islamic Republic Of", flag: "🇮🇷" },
  { code: "IQ", name: "Iraq", flag: "🇮🇶" },
  { code: "IE", name: "Ireland", flag: "🇮🇪" },
  { code: "IM", name: "Isle Of Man", flag: "🇮🇲" },
  { code: "IL", name: "Israel", flag: "🇮🇱" },
  { code: "IT", name: "Italy", flag: "🇮🇹" },
  { code: "JM", name: "Jamaica", flag: "🇯🇲" },
  { code: "JP", name: "Japan", flag: "🇯🇵" },
  { code: "JE", name: "Jersey", flag: "🇯🇪" },
  { code: "JO", name: "Jordan", flag: "🇯🇴" },
  { code: "KZ", name: "Kazakhstan", flag: "🇰🇿" },
  { code: "KE", name: "Kenya", flag: "🇰🇪" },
  { code: "KI", name: "Kiribati", flag: "🇰🇮" },
  { code: "KR", name: "Korea", flag: "🇰🇷" },
  { code: "KW", name: "Kuwait", flag: "🇰🇼" },
  { code: "KG", name: "Kyrgyzstan", flag: "🇰🇬" },
  { code: "LA", name: "Lao People's Democratic Republic", flag: "🇱🇦" },
  { code: "LV", name: "Latvia", flag: "🇱🇻" },
  { code: "LB", name: "Lebanon", flag: "🇱🇧" },
  { code: "LS", name: "Lesotho", flag: "🇱🇸" },
  { code: "LR", name: "Liberia", flag: "🇱🇷" },
  { code: "LY", name: "Libyan Arab Jamahiriya", flag: "🇱🇾" },
  { code: "LI", name: "Liechtenstein", flag: "🇱🇮" },
  { code: "LT", name: "Lithuania", flag: "🇱🇹" },
  { code: "LU", name: "Luxembourg", flag: "🇱🇺" },
  { code: "MO", name: "Macao", flag: "🇲🇴" },
  { code: "MK", name: "Macedonia", flag: "🇲🇰" },
  { code: "MG", name: "Madagascar", flag: "🇲🇬" },
  { code: "MW", name: "Malawi", flag: "🇲🇼" },
  { code: "MY", name: "Malaysia", flag: "🇲🇾" },
  { code: "MV", name: "Maldives", flag: "🇲🇻" },
  { code: "ML", name: "Mali", flag: "🇲🇱" },
  { code: "MT", name: "Malta", flag: "🇲🇹" },
  { code: "MH", name: "Marshall Islands", flag: "🇲🇭" },
  { code: "MQ", name: "Martinique", flag: "🇲🇶" },
  { code: "MR", name: "Mauritania", flag: "🇲🇷" },
  { code: "MU", name: "Mauritius", flag: "🇲🇺" },
  { code: "YT", name: "Mayotte", flag: "🇾🇹" },
  { code: "MX", name: "Mexico", flag: "🇲🇽" },
  { code: "FM", name: "Micronesia, Federated States Of", flag: "🇫🇲" },
  { code: "MD", name: "Moldova", flag: "🇲🇩" },
  { code: "MC", name: "Monaco", flag: "🇲🇨" },
  { code: "MN", name: "Mongolia", flag: "🇲🇳" },
  { code: "ME", name: "Montenegro", flag: "🇲🇪" },
  { code: "MS", name: "Montserrat", flag: "🇲🇸" },
  { code: "MA", name: "Morocco", flag: "🇲🇦" },
  { code: "MZ", name: "Mozambique", flag: "🇲🇿" },
  { code: "MM", name: "Myanmar", flag: "🇲🇲" },
  { code: "NA", name: "Namibia", flag: "🇳🇦" },
  { code: "NR", name: "Nauru", flag: "🇳🇷" },
  { code: "NP", name: "Nepal", flag: "🇳🇵" },
  { code: "NL", name: "Netherlands", flag: "🇳🇱" },
  { code: "AN", name: "Netherlands Antilles", flag: "🇦🇳" },
  { code: "NC", name: "New Caledonia", flag: "🇳🇨" },
  { code: "NZ", name: "New Zealand", flag: "🇳🇿" },
  { code: "NI", name: "Nicaragua", flag: "🇳🇮" },
  { code: "NE", name: "Niger", flag: "🇳🇪" },
  { code: "NG", name: "Nigeria", flag: "🇳🇬" },
  { code: "NU", name: "Niue", flag: "🇳🇺" },
  { code: "NF", name: "Norfolk Island", flag: "🇳🇫" },
  { code: "MP", name: "Northern Mariana Islands", flag: "🇲🇵" },
  { code: "NO", name: "Norway", flag: "🇳🇴" },
  { code: "OM", name: "Oman", flag: "🇴🇲" },
  { code: "PK", name: "Pakistan", flag: "🇵🇰" },
  { code: "PW", name: "Palau", flag: "🇵🇼" },
  { code: "PS", name: "Palestinian Territory, Occupied", flag: "🇵🇸" },
  { code: "PA", name: "Panama", flag: "🇵🇦" },
  { code: "PG", name: "Papua New Guinea", flag: "🇵🇬" },
  { code: "PY", name: "Paraguay", flag: "🇵🇾" },
  { code: "PE", name: "Peru", flag: "🇵🇪" },
  { code: "PH", name: "Philippines", flag: "🇵🇭" },
  { code: "PN", name: "Pitcairn", flag: "🇵🇳" },
  { code: "PL", name: "Poland", flag: "🇵🇱" },
  { code: "PT", name: "Portugal", flag: "🇵🇹" },
  { code: "PR", name: "Puerto Rico", flag: "🇵🇷" },
  { code: "QA", name: "Qatar", flag: "🇶🇦" },
  { code: "RE", name: "Reunion", flag: "🇷🇪" },
  { code: "RO", name: "Romania", flag: "🇷🇴" },
  { code: "RU", name: "Russian Federation", flag: "🇷🇺" },
  { code: "RW", name: "Rwanda", flag: "🇷🇼" },
  { code: "BL", name: "Saint Barthelemy", flag: "🇧🇱" },
  { code: "SH", name: "Saint Helena", flag: "🇸🇭" },
  { code: "KN", name: "Saint Kitts And Nevis", flag: "🇰🇳" },
  { code: "LC", name: "Saint Lucia", flag: "🇱🇨" },
  { code: "MF", name: "Saint Martin", flag: "🇲🇫" },
  { code: "PM", name: "Saint Pierre And Miquelon", flag: "🇵🇲" },
  { code: "VC", name: "Saint Vincent And Grenadines", flag: "🇻🇨" },
  { code: "WS", name: "Samoa", flag: "🇼🇸" },
  { code: "SM", name: "San Marino", flag: "🇸🇲" },
  { code: "ST", name: "Sao Tome And Principe", flag: "🇸🇹" },
  { code: "SA", name: "Saudi Arabia", flag: "🇸🇦" },
  { code: "SN", name: "Senegal", flag: "🇸🇳" },
  { code: "RS", name: "Serbia", flag: "🇷🇸" },
  { code: "SC", name: "Seychelles", flag: "🇸🇨" },
  { code: "SL", name: "Sierra Leone", flag: "🇸🇱" },
  { code: "SG", name: "Singapore", flag: "🇸🇬" },
  { code: "SK", name: "Slovakia", flag: "🇸🇰" },
  { code: "SI", name: "Slovenia", flag: "🇸🇮" },
  { code: "SB", name: "Solomon Islands", flag: "🇸🇧" },
  { code: "SO", name: "Somalia", flag: "🇸🇴" },
  { code: "ZA", name: "South Africa", flag: "🇿🇦" },
  { code: "GS", name: "South Georgia And Sandwich Isl.", flag: "🇬🇸" },
  { code: "ES", name: "Spain", flag: "🇪🇸" },
  { code: "LK", name: "Sri Lanka", flag: "🇱🇰" },
  { code: "SD", name: "Sudan", flag: "🇸🇩" },
  { code: "SR", name: "Suriname", flag: "🇸🇷" },
  { code: "SJ", name: "Svalbard And Jan Mayen", flag: "🇸🇯" },
  { code: "SZ", name: "Swaziland", flag: "🇸🇿" },
  { code: "SE", name: "Sweden", flag: "🇸🇪" },
  { code: "CH", name: "Switzerland", flag: "🇨🇭" },
  { code: "SY", name: "Syrian Arab Republic", flag: "🇸🇾" },
  { code: "TW", name: "Taiwan", flag: "🇹🇼" },
  { code: "TJ", name: "Tajikistan", flag: "🇹🇯" },
  { code: "TZ", name: "Tanzania", flag: "🇹🇿" },
  { code: "TH", name: "Thailand", flag: "🇹🇭" },
  { code: "TL", name: "Timor-Leste", flag: "🇹🇱" },
  { code: "TG", name: "Togo", flag: "🇹🇬" },
  { code: "TK", name: "Tokelau", flag: "🇹🇰" },
  { code: "TO", name: "Tonga", flag: "🇹🇴" },
  { code: "TT", name: "Trinidad And Tobago", flag: "🇹🇹" },
  { code: "TN", name: "Tunisia", flag: "🇹🇳" },
  { code: "TR", name: "Turkey", flag: "🇹🇷" },
  { code: "TM", name: "Turkmenistan", flag: "🇹🇲" },
  { code: "TC", name: "Turks And Caicos Islands", flag: "🇹🇨" },
  { code: "TV", name: "Tuvalu", flag: "🇹🇻" },
  { code: "UG", name: "Uganda", flag: "🇺🇬" },
  { code: "UA", name: "Ukraine", flag: "🇺🇦" },
  { code: "AE", name: "United Arab Emirates", flag: "🇦🇪" },
  { code: "GB", name: "United Kingdom", flag: "🇬🇧" },
  { code: "US", name: "United States", flag: "🇺🇸" },
  { code: "UM", name: "United States Outlying Islands", flag: "🇺🇲" },
  { code: "UY", name: "Uruguay", flag: "🇺🇾" },
  { code: "UZ", name: "Uzbekistan", flag: "🇺🇿" },
  { code: "VU", name: "Vanuatu", flag: "🇻🇺" },
  { code: "VE", name: "Venezuela", flag: "🇻🇪" },
  { code: "VN", name: "Viet Nam", flag: "🇻🇳" },
  { code: "VG", name: "Virgin Islands, British", flag: "🇻🇬" },
  { code: "VI", name: "Virgin Islands, U.S.", flag: "🇻🇮" },
  { code: "WF", name: "Wallis And Futuna", flag: "🇼🇫" },
  { code: "EH", name: "Western Sahara", flag: "🇪🇭" },
  { code: "YE", name: "Yemen", flag: "🇾🇪" },
  { code: "ZM", name: "Zambia", flag: "🇿🇲" },
  { code: "ZW", name: "Zimbabwe", flag: "🇿🇼" },
];

Countries with States

[
  {
    name: "Afghanistan",
    states: [
      "Badakhshan",
      "Badghis",
      "Baghlan",
      "Balkh",
      "Bamyan",
      "Daykundi",
      "Farah",
      "Faryab",
      "Ghazni",
      "Ghōr",
      "Helmand",
      "Herat",
      "Jowzjan",
      "Kabul",
      "Kandahar",
      "Kapisa",
      "Khost",
      "Kunar",
      "Kunduz Province",
      "Laghman",
      "Logar",
      "Nangarhar",
      "Nimruz",
      "Nuristan",
      "Paktia",
      "Paktika",
      "Panjshir",
      "Parwan",
      "Samangan",
      "Sar-e Pol",
      "Takhar",
      "Urozgan",
      "Zabul",
    ],
  },
  {
    name: "Aland Islands",
    states: [
      "Brändö",
      "Eckerö",
      "Finström",
      "Föglö",
      "Geta",
      "Hammarland",
      "Jomala",
      "Kökar",
      "Kumlinge",
      "Lemland",
      "Lumparland",
      "Mariehamn",
      "Saltvik",
      "Sottunga",
      "Sund",
      "Vårdö",
    ],
  },
  {
    name: "Albania",
    states: [
      "Berat",
      "Berat",
      "Bulqizë",
      "Delvinë",
      "Devoll",
      "Dibër",
      "Dibër",
      "Durrës",
      "Durrës",
      "Elbasan",
      "Fier",
      "Fier",
      "Gjirokastër",
      "Gjirokastër",
      "Gramsh",
      "Has",
      "Kavajë",
      "Kolonjë",
      "Korçë",
      "Korçë",
      "Krujë",
      "Kuçovë",
      "Kukës",
      "Kukës",
      "Kurbin",
      "Lezhë",
      "Lezhë",
      "Librazhd",
      "Lushnjë",
      "Malësi e Madhe",
      "Mallakastër",
      "Mat",
      "Mirditë",
      "Peqin",
      "Përmet",
      "Pogradec",
      "Pukë",
      "Sarandë",
      "Shkodër",
      "Shkodër",
      "Skrapar",
      "Tepelenë",
      "Tirana",
      "Tirana",
      "Tropojë",
      "Vlorë",
      "Vlorë",
    ],
  },
  {
    name: "Algeria",
    states: [
      "Adrar",
      "Aïn Defla",
      "Aïn Témouchent",
      "Algiers",
      "Annaba",
      "Batna",
      "Béchar",
      "Béjaïa",
      "Béni Abbès",
      "Biskra",
      "Blida",
      "Bordj Baji Mokhtar",
      "Bordj Bou Arréridj",
      "Bouïra",
      "Boumerdès",
      "Chlef",
      "Constantine",
      "Djanet",
      "Djelfa",
      "El Bayadh",
      "El M'ghair",
      "El Menia",
      "El Oued",
      "El Tarf",
      "Ghardaïa",
      "Guelma",
      "Illizi",
      "In Guezzam",
      "In Salah",
      "Jijel",
      "Khenchela",
      "Laghouat",
      "M'Sila",
      "Mascara",
      "Médéa",
      "Mila",
      "Mostaganem",
      "Naama",
      "Oran",
      "Ouargla",
      "Ouled Djellal",
      "Oum El Bouaghi",
      "Relizane",
      "Saïda",
      "Sétif",
      "Sidi Bel Abbès",
      "Skikda",
      "Souk Ahras",
      "Tamanghasset",
      "Tébessa",
      "Tiaret",
      "Timimoun",
      "Tindouf",
      "Tipasa",
      "Tissemsilt",
      "Tizi Ouzou",
      "Tlemcen",
      "Touggourt",
    ],
  },
  {
    name: "American Samoa",
    states: ["Eastern", "Manuʻa", "Rose", "Swains", "Western"],
  },
  {
    name: "Andorra",
    states: [
      "Andorra la Vella",
      "Canillo",
      "Encamp",
      "Escaldes-Engordany",
      "La Massana",
      "Ordino",
      "Sant Julià de Lòria",
    ],
  },
  {
    name: "Angola",
    states: [
      "Bengo",
      "Benguela",
      "Bié",
      "Cabinda",
      "Cuando Cubango",
      "Cuanza",
      "Cuanza Norte",
      "Cunene",
      "Huambo",
      "Huíla",
      "Luanda",
      "Lunda Norte",
      "Lunda Sul",
      "Malanje",
      "Moxico",
      "Uíge",
      "Zaire",
    ],
  },
  {
    name: "Anguilla",
    states: [
      "Blowing Point",
      "East End",
      "George Hill",
      "Island Harbour",
      "North Hill",
      "North Side",
      "Sandy Ground",
      "Sandy Hill",
      "South Hill",
      "Stoney Ground",
      "The Farrington",
      "The Quarter",
      "The Valley",
      "West End",
    ],
  },
  {
    name: "Antarctica",
    states: [],
  },
  {
    name: "Antigua and Barbuda",
    states: [
      "Barbuda",
      "Redonda",
      "Saint George",
      "Saint John",
      "Saint Mary",
      "Saint Paul",
      "Saint Peter",
      "Saint Philip",
    ],
  },
  {
    name: "Argentina",
    states: [
      "Autonomous City of Buenos Aires",
      "Buenos Aires",
      "Catamarca",
      "Chaco",
      "Chubut",
      "Córdoba",
      "Corrientes",
      "Entre Ríos",
      "Formosa",
      "Jujuy",
      "La Pampa",
      "La Rioja",
      "Mendoza",
      "Misiones",
      "Neuquén",
      "Río Negro",
      "Salta",
      "San Juan",
      "San Luis",
      "Santa Cruz",
      "Santa Fe",
      "Santiago del Estero",
      "Tierra del Fuego",
      "Tucumán",
    ],
  },
  {
    name: "Armenia",
    states: [
      "Aragatsotn",
      "Ararat",
      "Armavir",
      "Gegharkunik",
      "Kotayk",
      "Lori",
      "Shirak",
      "Syunik",
      "Tavush",
      "Vayots Dzor",
      "Yerevan",
    ],
  },
  {
    name: "Aruba",
    states: [
      "Noord",
      "Oranjestad",
      "Oranjestad East",
      "Oranjestad West",
      "Paradera",
      "San Nicolaas Noord",
      "San Nicolaas Zuid",
      "Santa Cruz",
      "Savaneta",
    ],
  },
  {
    name: "Australia",
    states: [
      "Australian Capital Territory",
      "New South Wales",
      "Northern Territory",
      "Queensland",
      "South Australia",
      "Tasmania",
      "Victoria",
      "Western Australia",
    ],
  },
  {
    name: "Austria",
    states: [
      "Burgenland",
      "Carinthia",
      "Lower Austria",
      "Salzburg",
      "Styria",
      "Tyrol",
      "Upper Austria",
      "Vienna",
      "Vorarlberg",
    ],
  },
  {
    name: "Azerbaijan",
    states: [
      "Absheron",
      "Agdam",
      "Agdash",
      "Aghjabadi",
      "Agstafa",
      "Agsu",
      "Astara",
      "Babek",
      "Baku",
      "Balakan",
      "Barda",
      "Beylagan",
      "Bilasuvar",
      "Dashkasan",
      "Fizuli",
      "Ganja",
      "Gədəbəy",
      "Gobustan",
      "Goranboy",
      "Goychay",
      "Goygol",
      "Hajigabul",
      "Imishli",
      "Ismailli",
      "Jabrayil",
      "Jalilabad",
      "Julfa",
      "Kalbajar",
      "Kangarli",
      "Khachmaz",
      "Khizi",
      "Khojali",
      "Kurdamir",
      "Lachin",
      "Lankaran",
      "Lankaran",
      "Lerik",
      "Martuni",
      "Masally",
      "Mingachevir",
      "Nakhchivan",
      "Neftchala",
      "Oghuz",
      "Ordubad",
      "Qabala",
      "Qakh",
      "Qazakh",
      "Quba",
      "Qubadli",
      "Qusar",
      "Saatly",
      "Sabirabad",
      "Sadarak",
      "Salyan",
      "Samukh",
      "Shabran",
      "Shahbuz",
      "Shaki",
      "Shaki",
      "Shamakhi",
      "Shamkir",
      "Sharur",
      "Shirvan",
      "Shusha",
      "Siazan",
      "Sumqayit",
      "Tartar",
      "Tovuz",
      "Ujar",
      "Yardymli",
      "Yevlakh",
      "Yevlakh",
      "Zangilan",
      "Zaqatala",
      "Zardab",
    ],
  },
  {
    name: "Bahrain",
    states: ["Capital", "Central", "Muharraq", "Northern", "Southern"],
  },
  {
    name: "Bangladesh",
    states: [
      "Barisal ",
      "Chittagong ",
      "Dhaka ",
      "Khulna ",
      "Mymensingh ",
      "Rajshahi ",
      "Rangpur ",
      "Sylhet ",
    ],
  },
  {
    name: "Barbados",
    states: [
      "Christ Church",
      "Saint Andrew",
      "Saint George",
      "Saint James",
      "Saint John",
      "Saint Joseph",
      "Saint Lucy",
      "Saint Michael",
      "Saint Peter",
      "Saint Philip",
      "Saint Thomas",
    ],
  },
  {
    name: "Belarus",
    states: [
      "Brest",
      "Gomel",
      "Grodno",
      "Minsk",
      "Minsk",
      "Mogilev",
      "Vitebsk",
    ],
  },
  {
    name: "Belgium",
    states: [
      "Antwerp",
      "Brussels-Capital ",
      "East Flanders",
      "Flanders",
      "Flemish Brabant",
      "Hainaut",
      "Liège",
      "Limburg",
      "Luxembourg",
      "Namur",
      "Wallonia",
      "Walloon Brabant",
      "West Flanders",
    ],
  },
  {
    name: "Belize",
    states: [
      "Belize",
      "Cayo",
      "Corozal",
      "Orange Walk",
      "Stann Creek",
      "Toledo",
    ],
  },
  {
    name: "Benin",
    states: [
      "Alibori",
      "Atakora",
      "Atlantique",
      "Borgou",
      "Collines",
      "Donga",
      "Kouffo",
      "Littoral",
      "Mono",
      "Ouémé",
      "Plateau",
      "Zou",
    ],
  },
  {
    name: "Bermuda",
    states: [
      "Devonshire",
      "Hamilton",
      "Paget",
      "Pembroke",
      "Saint George's",
      "Sandys",
      "Smith's",
      "Southampton",
      "Warwick",
    ],
  },
  {
    name: "Bhutan",
    states: [
      "Bumthang ",
      "Chukha ",
      "Dagana ",
      "Gasa ",
      "Haa ",
      "Lhuntse ",
      "Mongar ",
      "Paro ",
      "Pemagatshel ",
      "Punakha ",
      "Samdrup Jongkhar ",
      "Samtse ",
      "Sarpang ",
      "Thimphu ",
      "Trashi Yangtse\t",
      "Trashigang ",
      "Trongsa ",
      "Tsirang ",
      "Wangdue Phodrang ",
      "Zhemgang ",
    ],
  },
  {
    name: "Bolivia",
    states: [
      "Beni",
      "Chuquisaca",
      "Cochabamba",
      "La Paz",
      "Oruro",
      "Pando",
      "Potosí",
      "Santa Cruz",
      "Tarija",
    ],
  },
  {
    name: "Bonaire, Sint Eustatius and Saba",
    states: ["Bonaire", "Saba", "Sint Eustatius"],
  },
  {
    name: "Bosnia and Herzegovina",
    states: [
      "Bosnian Podrinje",
      "Brčko",
      "Canton 10",
      "Central Bosnia",
      "Federation of Bosnia and Herzegovina",
      "Herzegovina-Neretva",
      "Posavina",
      "Republika Srpska",
      "Sarajevo",
      "Tuzla",
      "Una-Sana",
      "West Herzegovina",
      "Zenica-Doboj",
    ],
  },
  {
    name: "Botswana",
    states: [
      "Central",
      "Ghanzi",
      "Kgalagadi",
      "Kgatleng",
      "Kweneng",
      "Ngamiland",
      "North-East",
      "North-West",
      "South-East",
      "Southern",
    ],
  },
  {
    name: "Bouvet Island",
    states: [],
  },
  {
    name: "Brazil",
    states: [
      "Acre",
      "Alagoas",
      "Amapá",
      "Amazonas",
      "Bahia",
      "Ceará",
      "Distrito Federal",
      "Espírito Santo",
      "Goiás",
      "Maranhão",
      "Mato Grosso",
      "Mato Grosso do Sul",
      "Minas Gerais",
      "Pará",
      "Paraíba",
      "Paraná",
      "Pernambuco",
      "Piauí",
      "Rio de Janeiro",
      "Rio Grande do Norte",
      "Rio Grande do Sul",
      "Rondônia",
      "Roraima",
      "Santa Catarina",
      "São Paulo",
      "Sergipe",
      "Tocantins",
    ],
  },
  {
    name: "British Indian Ocean Territory",
    states: [],
  },
  {
    name: "Brunei",
    states: ["Belait", "Brunei-Muara", "Temburong", "Tutong"],
  },
  {
    name: "Bulgaria",
    states: [
      "Blagoevgrad",
      "Burgas",
      "Dobrich",
      "Gabrovo",
      "Haskovo",
      "Kardzhali",
      "Kyustendil",
      "Lovech",
      "Montana",
      "Pazardzhik",
      "Pernik",
      "Pleven",
      "Plovdiv",
      "Razgrad",
      "Ruse",
      "Shumen",
      "Silistra",
      "Sliven",
      "Smolyan",
      "Sofia",
      "Sofia City",
      "Stara Zagora",
      "Targovishte",
      "Varna",
      "Veliko Tarnovo",
      "Vidin",
      "Vratsa",
      "Yambol",
    ],
  },
  {
    name: "Burkina Faso",
    states: [
      "Balé",
      "Bam",
      "Banwa",
      "Bazèga",
      "Boucle du Mouhoun",
      "Bougouriba",
      "Boulgou",
      "Boulkiemde",
      "Cascades",
      "Centre",
      "Centre-Est",
      "Centre-Nord",
      "Centre-Ouest",
      "Centre-Sud",
      "Comoé",
      "Est",
      "Ganzourgou",
      "Gnagna",
      "Gourma",
      "Hauts-Bassins",
      "Houet",
      "Ioba",
      "Kadiogo",
      "Kénédougou",
      "Komondjari",
      "Kompienga",
      "Kossi",
      "Koulpélogo",
      "Kouritenga",
      "Kourwéogo",
      "Léraba",
      "Loroum",
      "Mouhoun",
      "Nahouri",
      "Namentenga",
      "Nayala",
      "Nord",
      "Noumbiel",
      "Oubritenga",
      "Oudalan",
      "Passoré",
      "Plateau-Central",
      "Poni",
      "Sahel",
      "Sanguié",
      "Sanmatenga",
      "Séno",
      "Sissili",
      "Soum",
      "Sourou",
      "Sud-Ouest",
      "Tapoa",
      "Tuy",
      "Yagha",
      "Yatenga",
      "Ziro",
      "Zondoma",
      "Zoundwéogo",
    ],
  },
  {
    name: "Burundi",
    states: [
      "Bubanza",
      "Bujumbura Mairie",
      "Bujumbura Rural",
      "Bururi",
      "Cankuzo",
      "Cibitoke",
      "Gitega",
      "Karuzi",
      "Kayanza",
      "Kirundo",
      "Makamba",
      "Muramvya",
      "Muyinga",
      "Mwaro",
      "Ngozi",
      "Rumonge",
      "Rutana",
      "Ruyigi",
    ],
  },
  {
    name: "Cambodia",
    states: [
      "Banteay Meanchey",
      "Battambang",
      "Kampong Cham",
      "Kampong Chhnang",
      "Kampong Speu",
      "Kampong Thom",
      "Kampot",
      "Kandal",
      "Kep",
      "Koh Kong",
      "Kratie",
      "Mondulkiri",
      "Oddar Meanchey",
      "Pailin",
      "Phnom Penh",
      "Preah Vihear",
      "Prey Veng",
      "Pursat",
      "Ratanakiri",
      "Siem Reap",
      "Sihanoukville",
      "Stung Treng",
      "Svay Rieng",
      "Takeo",
    ],
  },
  {
    name: "Cameroon",
    states: [
      "Adamawa",
      "Centre",
      "East",
      "Far North",
      "Littoral",
      "North",
      "Northwest",
      "South",
      "Southwest",
      "West",
    ],
  },
  {
    name: "Canada",
    states: [
      "Alberta",
      "British Columbia",
      "Manitoba",
      "New Brunswick",
      "Newfoundland and Labrador",
      "Northwest Territories",
      "Nova Scotia",
      "Nunavut",
      "Ontario",
      "Prince Edward Island",
      "Quebec",
      "Saskatchewan",
      "Yukon",
    ],
  },
  {
    name: "Cape Verde",
    states: [
      "Barlavento Islands",
      "Boa Vista",
      "Brava",
      "Maio",
      "Mosteiros",
      "Paul",
      "Porto Novo",
      "Praia",
      "Ribeira Brava",
      "Ribeira Grande",
      "Ribeira Grande de Santiago",
      "Sal",
      "Santa Catarina",
      "Santa Catarina do Fogo",
      "Santa Cruz",
      "São Domingos",
      "São Filipe",
      "São Lourenço dos Órgãos",
      "São Miguel",
      "São Vicente",
      "Sotavento Islands",
      "Tarrafal",
      "Tarrafal de São Nicolau",
    ],
  },
  {
    name: "Cayman Islands",
    states: ["Cayman Brac", "Grand Cayman", "Little Cayman"],
  },
  {
    name: "Central African Republic",
    states: [
      "Bamingui-Bangoran",
      "Bangui",
      "Basse-Kotto",
      "Haut-Mbomou",
      "Haute-Kotto",
      "Kémo",
      "Lobaye",
      "Mambéré-Kadéï",
      "Mbomou",
      "Nana-Grébizi",
      "Nana-Mambéré",
      "Ombella-M'Poko",
      "Ouaka",
      "Ouham",
      "Ouham-Pendé",
      "Sangha-Mbaéré",
      "Vakaga",
    ],
  },
  {
    name: "Chad",
    states: [
      "Bahr el Gazel",
      "Batha",
      "Borkou",
      "Chari-Baguirmi",
      "Ennedi-Est",
      "Ennedi-Ouest",
      "Guéra",
      "Hadjer-Lamis",
      "Kanem",
      "Lac",
      "Logone Occidental",
      "Logone Oriental",
      "Mandoul",
      "Mayo-Kebbi Est",
      "Mayo-Kebbi Ouest",
      "Moyen-Chari",
      "N'Djamena",
      "Ouaddaï",
      "Salamat",
      "Sila",
      "Tandjilé",
      "Tibesti",
      "Wadi Fira",
    ],
  },
  {
    name: "Chile",
    states: [
      "Aisén del General Carlos Ibañez del Campo",
      "Antofagasta",
      "Arica y Parinacota",
      "Atacama",
      "Biobío",
      "Coquimbo",
      "La Araucanía",
      "Libertador General Bernardo O'Higgins",
      "Los Lagos",
      "Los Ríos",
      "Magallanes y de la Antártica Chilena",
      "Maule",
      "Ñuble",
      "Región Metropolitana de Santiago",
      "Tarapacá",
      "Valparaíso",
    ],
  },
  {
    name: "China",
    states: [
      "Anhui",
      "Beijing",
      "Chongqing",
      "Fujian",
      "Gansu",
      "Guangdong",
      "Guangxi Zhuang",
      "Guizhou",
      "Hainan",
      "Hebei",
      "Heilongjiang",
      "Henan",
      "Hong Kong SAR",
      "Hubei",
      "Hunan",
      "Inner Mongolia",
      "Jiangsu",
      "Jiangxi",
      "Jilin",
      "Liaoning",
      "Macau SAR",
      "Ningxia Huizu",
      "Qinghai",
      "Shaanxi",
      "Shandong",
      "Shanghai",
      "Shanxi",
      "Sichuan",
      "Taiwan",
      "Tianjin",
      "Xinjiang",
      "Xizang",
      "Yunnan",
      "Zhejiang",
    ],
  },
  {
    name: "Christmas Island",
    states: [],
  },
  {
    name: "Cocos (Keeling) Islands",
    states: [],
  },
  {
    name: "Colombia",
    states: [
      "Amazonas",
      "Antioquia",
      "Arauca",
      "Atlántico",
      "Bogotá D.C.",
      "Bolívar",
      "Boyacá",
      "Caldas",
      "Caquetá",
      "Casanare",
      "Cauca",
      "Cesar",
      "Chocó",
      "Córdoba",
      "Cundinamarca",
      "Guainía",
      "Guaviare",
      "Huila",
      "La Guajira",
      "Magdalena",
      "Meta",
      "Nariño",
      "Norte de Santander",
      "Putumayo",
      "Quindío",
      "Risaralda",
      "San Andrés, Providencia y Santa Catalina",
      "Santander",
      "Sucre",
      "Tolima",
      "Valle del Cauca",
      "Vaupés",
      "Vichada",
    ],
  },
  {
    name: "Comoros",
    states: ["Anjouan", "Grande Comore", "Mohéli"],
  },
  {
    name: "Congo",
    states: [
      "Bouenza",
      "Brazzaville",
      "Cuvette",
      "Cuvette-Ouest",
      "Kouilou",
      "Lékoumou",
      "Likouala",
      "Niari",
      "Plateaux",
      "Pointe-Noire",
      "Pool",
      "Sangha",
    ],
  },
  {
    name: "Cook Islands",
    states: [],
  },
  {
    name: "Costa Rica",
    states: [
      "Alajuela",
      "Cartago",
      "Guanacaste",
      "Heredia",
      "Limón",
      "Puntarenas",
      "San José",
    ],
  },
  {
    name: "Cote D'Ivoire (Ivory Coast)",
    states: [
      "Abidjan",
      "Agnéby",
      "Bafing",
      "Bas-Sassandra",
      "Comoé",
      "Denguélé",
      "Dix-Huit Montagnes",
      "Fromager",
      "Gôh-Djiboua",
      "Haut-Sassandra",
      "Lacs",
      "Lagunes",
      "Marahoué",
      "Montagnes",
      "Moyen-Cavally",
      "Moyen-Comoé",
      "N'zi-Comoé",
      "Sassandra-Marahoué",
      "Savanes",
      "Sud-Bandama",
      "Sud-Comoé",
      "Vallée du Bandama",
      "Woroba",
      "Worodougou",
      "Yamoussoukro",
      "Zanzan",
    ],
  },
  {
    name: "Croatia",
    states: [
      "Bjelovar-Bilogora",
      "Brod-Posavina",
      "Dubrovnik-Neretva",
      "Istria",
      "Karlovac",
      "Koprivnica-Križevci",
      "Krapina-Zagorje",
      "Lika-Senj",
      "Međimurje",
      "Osijek-Baranja",
      "Požega-Slavonia",
      "Primorje-Gorski Kotar",
      "Šibenik-Knin",
      "Sisak-Moslavina",
      "Split-Dalmatia",
      "Varaždin",
      "Virovitica-Podravina",
      "Vukovar-Syrmia",
      "Zadar",
      "Zagreb",
      "Zagreb",
    ],
  },
  {
    name: "Cuba",
    states: [
      "Artemisa",
      "Camagüey",
      "Ciego de Ávila",
      "Cienfuegos",
      "Granma",
      "Guantánamo",
      "Havana",
      "Holguín",
      "Isla de la Juventud",
      "Las Tunas",
      "Matanzas",
      "Mayabeque",
      "Pinar del Río",
      "Sancti Spíritus",
      "Santiago de Cuba",
      "Villa Clara",
    ],
  },
  {
    name: "Curaçao",
    states: [],
  },
  {
    name: "Cyprus",
    states: [
      "Famagusta (Mağusa)",
      "Kyrenia (Keryneia)",
      "Larnaca (Larnaka)",
      "Limassol (Leymasun)",
      "Nicosia (Lefkoşa)",
      "Paphos (Pafos)",
    ],
  },
  {
    name: "Czech Republic",
    states: [
      "Benešov",
      "Beroun",
      "Blansko",
      "Břeclav",
      "Brno-město",
      "Brno-venkov",
      "Bruntál",
      "Česká Lípa",
      "České Budějovice",
      "Český Krumlov",
      "Cheb",
      "Chomutov",
      "Chrudim",
      "Děčín",
      "Domažlice",
      "Frýdek-Místek",
      "Havlíčkův Brod",
      "Hodonín",
      "Hradec Králové",
      "Jablonec nad Nisou",
      "Jeseník",
      "Jičín",
      "Jihlava",
      "Jihočeský kraj",
      "Jihomoravský kraj",
      "Jindřichův Hradec",
      "Karlovarský kraj",
      "Karlovy Vary",
      "Karviná",
      "Kladno",
      "Klatovy",
      "Kolín",
      "Kraj Vysočina",
      "Královéhradecký kraj",
      "Kroměříž",
      "Kutná Hora",
      "Liberec",
      "Liberecký kraj",
      "Litoměřice",
      "Louny",
      "Mělník",
      "Mladá Boleslav",
      "Moravskoslezský kraj",
      "Most",
      "Náchod",
      "Nový Jičín",
      "Nymburk",
      "Olomouc",
      "Olomoucký kraj",
      "Opava",
      "Ostrava-město",
      "Pardubice",
      "Pardubický kraj",
      "Pelhřimov",
      "Písek",
      "Plzeň-jih",
      "Plzeň-město",
      "Plzeň-sever",
      "Plzeňský kraj",
      "Prachatice",
      "Praha-východ",
      "Praha-západ",
      "Praha, Hlavní město",
      "Přerov",
      "Příbram",
      "Prostějov",
      "Rakovník",
      "Rokycany",
      "Rychnov nad Kněžnou",
      "Semily",
      "Sokolov",
      "Strakonice",
      "Středočeský kraj",
      "Šumperk",
      "Svitavy",
      "Tábor",
      "Tachov",
      "Teplice",
      "Třebíč",
      "Trutnov",
      "Uherské Hradiště",
      "Ústecký kraj",
      "Ústí nad Labem",
      "Ústí nad Orlicí",
      "Vsetín",
      "Vyškov",
      "Žďár nad Sázavou",
      "Zlín",
      "Zlínský kraj",
      "Znojmo",
    ],
  },
  {
    name: "Democratic Republic of the Congo",
    states: [
      "Bas-Uélé",
      "Équateur",
      "Haut-Katanga",
      "Haut-Lomami",
      "Haut-Uélé",
      "Ituri",
      "Kasaï",
      "Kasaï Central",
      "Kasaï Oriental",
      "Kinshasa",
      "Kongo Central",
      "Kwango",
      "Kwilu",
      "Lomami",
      "Lualaba",
      "Mai-Ndombe",
      "Maniema",
      "Mongala",
      "Nord-Kivu",
      "Nord-Ubangi",
      "Sankuru",
      "Sud-Kivu",
      "Sud-Ubangi",
      "Tanganyika",
      "Tshopo",
      "Tshuapa",
    ],
  },
  {
    name: "Denmark",
    states: [
      "Central Denmark",
      "Denmark",
      "North Denmark",
      "Southern Denmark",
      "Zealand",
    ],
  },
  {
    name: "Djibouti",
    states: ["Ali Sabieh", "Arta", "Dikhil", "Djibouti", "Obock", "Tadjourah"],
  },
  {
    name: "Dominica",
    states: [
      "Saint Andrew",
      "Saint David",
      "Saint George",
      "Saint John",
      "Saint Joseph",
      "Saint Luke",
      "Saint Mark",
      "Saint Patrick",
      "Saint Paul",
      "Saint Peter",
    ],
  },
  {
    name: "Dominican Republic",
    states: [
      "Azua",
      "Baoruco",
      "Barahona",
      "Dajabón",
      "Distrito Nacional",
      "Duarte",
      "El Seibo",
      "Espaillat",
      "Hato Mayor",
      "Hermanas Mirabal",
      "Independencia",
      "La Altagracia",
      "La Romana",
      "La Vega",
      "María Trinidad Sánchez",
      "Monseñor Nouel",
      "Monte Cristi",
      "Monte Plata",
      "Pedernales",
      "Peravia",
      "Puerto Plata",
      "Samaná",
      "San Cristóbal",
      "San José de Ocoa",
      "San Juan",
      "San Pedro de Macorís",
      "Sánchez Ramírez",
      "Santiago",
      "Santiago Rodríguez",
      "Santo Domingo",
      "Valverde",
    ],
  },
  {
    name: "Ecuador",
    states: [
      "Azuay",
      "Bolívar",
      "Cañar",
      "Carchi",
      "Chimborazo",
      "Cotopaxi",
      "El Oro",
      "Esmeraldas",
      "Galápagos",
      "Guayas",
      "Imbabura",
      "Loja",
      "Los Ríos",
      "Manabí",
      "Morona-Santiago",
      "Napo",
      "Orellana",
      "Pastaza",
      "Pichincha",
      "Santa Elena",
      "Santo Domingo de los Tsáchilas",
      "Sucumbíos",
      "Tungurahua",
      "Zamora Chinchipe",
    ],
  },
  {
    name: "Egypt",
    states: [
      "Alexandria",
      "Aswan",
      "Asyut",
      "Beheira",
      "Beni Suef",
      "Cairo",
      "Dakahlia",
      "Damietta",
      "Faiyum",
      "Gharbia",
      "Giza",
      "Ismailia",
      "Kafr El-Sheikh",
      "Luxor",
      "Matrouh",
      "Minya",
      "Monufia",
      "New Valley",
      "North Sinai",
      "Port Said",
      "Qalyubia",
      "Qena",
      "Red Sea",
      "Sharqia",
      "Sohag",
      "South Sinai",
      "Suez",
    ],
  },
  {
    name: "El Salvador",
    states: [
      "Ahuachapán",
      "Cabañas",
      "Chalatenango",
      "Cuscatlán",
      "La Libertad",
      "La Paz",
      "La Unión ",
      "Morazán",
      "San Miguel",
      "San Salvador",
      "San Vicente",
      "Santa Ana",
      "Sonsonate",
      "Usulután",
    ],
  },
  {
    name: "Equatorial Guinea",
    states: [
      "Annobón",
      "Bioko Norte",
      "Bioko Sur",
      "Centro Sur",
      "Insular",
      "Kié-Ntem",
      "Litoral",
      "Río Muni",
      "Wele-Nzas",
    ],
  },
  {
    name: "Eritrea",
    states: [
      "Anseba",
      "Debub",
      "Gash-Barka",
      "Maekel",
      "Northern Red Sea",
      "Southern Red Sea",
    ],
  },
  {
    name: "Estonia",
    states: [
      "Harju",
      "Hiiu",
      "Ida-Viru",
      "Järva",
      "Jõgeva",
      "Lääne",
      "Lääne-Viru",
      "Pärnu",
      "Põlva",
      "Rapla",
      "Saare",
      "Tartu",
      "Valga",
      "Viljandi",
      "Võru",
    ],
  },
  {
    name: "Eswatini",
    states: ["Hhohho", "Lubombo", "Manzini", "Shiselweni"],
  },
  {
    name: "Ethiopia",
    states: [
      "Addis Ababa",
      "Afar",
      "Amhara",
      "Benishangul-Gumuz",
      "Dire Dawa",
      "Gambela",
      "Harari",
      "Oromia",
      "Somali",
      "Southern Nations, Nationalities, and Peoples'",
      "Tigray",
    ],
  },
  {
    name: "Falkland Islands",
    states: [],
  },
  {
    name: "Faroe Islands",
    states: [
      "Eysturoy",
      "Northern Isles",
      "Sandoy",
      "Streymoy",
      "Suðuroy",
      "Vágar",
    ],
  },
  {
    name: "Fiji Islands",
    states: [
      "Ba",
      "Bua",
      "Cakaudrove",
      "Central",
      "Eastern",
      "Kadavu",
      "Lau",
      "Lomaiviti",
      "Macuata",
      "Nadroga-Navosa",
      "Naitasiri",
      "Namosi",
      "Northern",
      "Ra",
      "Rewa",
      "Rotuma",
      "Serua",
      "Tailevu",
      "Western",
    ],
  },
  {
    name: "Finland",
    states: [
      "Åland Islands",
      "Central Finland",
      "Central Ostrobothnia",
      "Finland Proper",
      "Kainuu",
      "Kymenlaakso",
      "Lapland",
      "North Karelia",
      "Northern Ostrobothnia",
      "Northern Savonia",
      "Ostrobothnia",
      "Päijänne Tavastia",
      "Pirkanmaa",
      "Satakunta",
      "South Karelia",
      "Southern Ostrobothnia",
      "Southern Savonia",
      "Tavastia Proper",
      "Uusimaa",
    ],
  },
  {
    name: "France",
    states: [
      "Ain",
      "Aisne",
      "Allier",
      "Alpes-de-Haute-Provence",
      "Alpes-Maritimes",
      "Alsace",
      "Ardèche",
      "Ardennes",
      "Ariège",
      "Aube",
      "Aude",
      "Auvergne-Rhône-Alpes",
      "Aveyron",
      "Bas-Rhin",
      "Bouches-du-Rhône",
      "Bourgogne-Franche-Comté",
      "Bretagne",
      "Calvados",
      "Cantal",
      "Centre-Val de Loire",
      "Charente",
      "Charente-Maritime",
      "Cher",
      "Clipperton",
      "Corrèze",
      "Corse",
      "Corse-du-Sud",
      "Côte-d'Or",
      "Côtes-d'Armor",
      "Creuse",
      "Deux-Sèvres",
      "Dordogne",
      "Doubs",
      "Drôme",
      "Essonne",
      "Eure",
      "Eure-et-Loir",
      "Finistère",
      "French Guiana",
      "French Polynesia",
      "French Southern and Antarctic Lands",
      "Gard",
      "Gers",
      "Gironde",
      "Grand-Est",
      "Guadeloupe",
      "Haut-Rhin",
      "Haute-Corse",
      "Haute-Garonne",
      "Haute-Loire",
      "Haute-Marne",
      "Haute-Saône",
      "Haute-Savoie",
      "Haute-Vienne",
      "Hautes-Alpes",
      "Hautes-Pyrénées",
      "Hauts-de-France",
      "Hauts-de-Seine",
      "Hérault",
      "Île-de-France",
      "Ille-et-Vilaine",
      "Indre",
      "Indre-et-Loire",
      "Isère",
      "Jura",
      "La Réunion",
      "Landes",
      "Loir-et-Cher",
      "Loire",
      "Loire-Atlantique",
      "Loiret",
      "Lot",
      "Lot-et-Garonne",
      "Lozère",
      "Maine-et-Loire",
      "Manche",
      "Marne",
      "Martinique",
      "Mayenne",
      "Mayotte",
      "Métropole de Lyon",
      "Meurthe-et-Moselle",
      "Meuse",
      "Morbihan",
      "Moselle",
      "Nièvre",
      "Nord",
      "Normandie",
      "Nouvelle-Aquitaine",
      "Occitanie",
      "Oise",
      "Orne",
      "Paris",
      "Pas-de-Calais",
      "Pays-de-la-Loire",
      "Provence-Alpes-Côte-d’Azur",
      "Puy-de-Dôme",
      "Pyrénées-Atlantiques",
      "Pyrénées-Orientales",
      "Rhône",
      "Saint Pierre and Miquelon",
      "Saint-Barthélemy",
      "Saint-Martin",
      "Saône-et-Loire",
      "Sarthe",
      "Savoie",
      "Seine-et-Marne",
      "Seine-Maritime",
      "Seine-Saint-Denis",
      "Somme",
      "Tarn",
      "Tarn-et-Garonne",
      "Territoire de Belfort",
      "Val-d'Oise",
      "Val-de-Marne",
      "Var",
      "Vaucluse",
      "Vendée",
      "Vienne",
      "Vosges",
      "Wallis and Futuna",
      "Yonne",
      "Yvelines",
    ],
  },
  {
    name: "French Guiana",
    states: [],
  },
  {
    name: "French Polynesia",
    states: [
      "Austral Islands",
      "Leeward Islands",
      "Marquesas Islands",
      "Tuamotu-Gambier",
      "Windward Islands",
    ],
  },
  {
    name: "French Southern Territories",
    states: [],
  },
  {
    name: "Gabon",
    states: [
      "Estuaire",
      "Haut-Ogooué",
      "Moyen-Ogooué",
      "Ngounié",
      "Nyanga",
      "Ogooué-Ivindo",
      "Ogooué-Lolo",
      "Ogooué-Maritime",
      "Woleu-Ntem",
    ],
  },
  {
    name: "Georgia",
    states: [
      "Abkhazia",
      "Adjara",
      "Guria",
      "Imereti",
      "Kakheti",
      "Kvemo Kartli",
      "Mtskheta-Mtianeti",
      "Racha-Lechkhumi and Kvemo Svaneti",
      "Samegrelo-Zemo Svaneti",
      "Samtskhe-Javakheti",
      "Shida Kartli",
      "Tbilisi",
    ],
  },
  {
    name: "Germany",
    states: [
      "Baden-Württemberg",
      "Bavaria",
      "Berlin",
      "Brandenburg",
      "Bremen",
      "Hamburg",
      "Hessen",
      "Lower Saxony",
      "Mecklenburg-Vorpommern",
      "North Rhine-Westphalia",
      "Rhineland-Palatinate",
      "Saarland",
      "Saxony",
      "Saxony-Anhalt",
      "Schleswig-Holstein",
      "Thuringia",
    ],
  },
  {
    name: "Ghana",
    states: [
      "Ahafo",
      "Ashanti",
      "Bono",
      "Bono East",
      "Central",
      "Eastern",
      "Greater Accra",
      "North East",
      "Northern",
      "Oti",
      "Savannah",
      "Upper East",
      "Upper West",
      "Volta",
      "Western",
      "Western North",
    ],
  },
  {
    name: "Gibraltar",
    states: [],
  },
  {
    name: "Greece",
    states: [
      "Achaea",
      "Aetolia-Acarnania",
      "Arcadia",
      "Argolis",
      "Attica",
      "Boeotia",
      "Central Greece",
      "Central Macedonia",
      "Chania",
      "Corfu",
      "Corinthia",
      "Crete",
      "Drama",
      "East Attica",
      "East Macedonia and Thrace",
      "Epirus",
      "Euboea",
      "Grevena",
      "Imathia ",
      "Ioannina",
      "Ionian Islands",
      "Karditsa",
      "Kastoria",
      "Kefalonia",
      "Kilkis",
      "Kozani",
      "Laconia",
      "Larissa",
      "Lefkada",
      "Pella",
      "Peloponnese",
      "Phthiotis",
      "Preveza",
      "Serres",
      "South Aegean",
      "Thessaloniki",
      "West Greece",
      "West Macedonia",
    ],
  },
  {
    name: "Greenland",
    states: ["Avannaata", "Kujalleq", "Qeqertalik", "Qeqqata", "Sermersooq"],
  },
  {
    name: "Grenada",
    states: [
      "Carriacou",
      "Saint Andrew",
      "Saint David",
      "Saint George",
      "Saint John",
      "Saint Mark",
      "Saint Patrick",
    ],
  },
  {
    name: "Guadeloupe",
    states: ["Basse-Terre", "Pointe-à-Pitre"],
  },
  {
    name: "Guam",
    states: [
      "Agana Heights",
      "Asan-Maina",
      "Barrigada",
      "Chalan Pago-Ordot",
      "Dededo",
      "Hågat",
      "Hagåtña",
      "Inarajan (Inalåhan)",
      "Mangilao",
      "Merizo (Malesso)",
      "Mongmong-Toto-Maite",
      "Piti",
      "Santa Rita (Sånta Rita-Sumai)",
      "Sinajana",
      "Talofofo (Talo'fo'fo)",
      "Tamuning",
      "Umatac (Humåtak)",
      "Yigo",
      "Yona",
    ],
  },
  {
    name: "Guatemala",
    states: [
      "Alta Verapaz ",
      "Baja Verapaz ",
      "Chimaltenango ",
      "Chiquimula ",
      "El Progreso ",
      "Escuintla ",
      "Guatemala ",
      "Huehuetenango ",
      "Izabal ",
      "Jalapa ",
      "Jutiapa ",
      "Petén ",
      "Quetzaltenango ",
      "Quiché ",
      "Retalhuleu ",
      "Sacatepéquez ",
      "San Marcos ",
      "Santa Rosa ",
      "Sololá ",
      "Suchitepéquez ",
      "Totonicapán ",
      "Zacapa",
    ],
  },
  {
    name: "Guernsey",
    states: [
      "Alderney",
      "Castel",
      "Forest",
      "Sark",
      "St Andrew",
      "St Martin",
      "St Peter Port",
      "St Pierre du Bois",
      "St Sampson",
      "St Saviour",
      "Torteval",
      "Vale",
    ],
  },
  {
    name: "Guinea",
    states: [
      "Beyla",
      "Boffa",
      "Boké",
      "Boké",
      "Conakry",
      "Coyah",
      "Dabola",
      "Dalaba",
      "Dinguiraye",
      "Dubréka",
      "Faranah",
      "Faranah",
      "Forécariah",
      "Fria",
      "Gaoual",
      "Guéckédou",
      "Kankan",
      "Kankan",
      "Kérouané",
      "Kindia",
      "Kindia",
      "Kissidougou",
      "Koubia",
      "Koundara",
      "Kouroussa",
      "Labé",
      "Labé",
      "Lélouma",
      "Lola",
      "Macenta",
      "Mali",
      "Mamou",
      "Mamou",
      "Mandiana",
      "Nzérékoré",
      "Nzérékoré",
      "Pita",
      "Siguiri",
      "Télimélé",
      "Tougué",
      "Yomou",
    ],
  },
  {
    name: "Guinea-Bissau",
    states: [
      "Bafatá",
      "Biombo",
      "Bolama",
      "Cacheu",
      "Gabú",
      "Leste",
      "Norte",
      "Oio",
      "Quinara",
      "Sul",
      "Tombali",
    ],
  },
  {
    name: "Guyana",
    states: [
      "Barima-Waini",
      "Cuyuni-Mazaruni",
      "Demerara-Mahaica",
      "East Berbice-Corentyne",
      "Essequibo Islands-West Demerara",
      "Mahaica-Berbice",
      "Pomeroon-Supenaam",
      "Potaro-Siparuni",
      "Upper Demerara-Berbice",
      "Upper Takutu-Upper Essequibo",
    ],
  },
  {
    name: "Haiti",
    states: [
      "Artibonite",
      "Centre",
      "Grand'Anse",
      "Nippes",
      "Nord",
      "Nord-Est",
      "Nord-Ouest",
      "Ouest",
      "Sud",
      "Sud-Est",
    ],
  },
  {
    name: "Heard Island and McDonald Islands",
    states: [],
  },
  {
    name: "Honduras",
    states: [
      "Atlántida",
      "Bay Islands",
      "Choluteca",
      "Colón",
      "Comayagua",
      "Copán",
      "Cortés",
      "El Paraíso",
      "Francisco Morazán",
      "Gracias a Dios",
      "Intibucá",
      "La Paz",
      "Lempira",
      "Ocotepeque",
      "Olancho",
      "Santa Bárbara",
      "Valle",
      "Yoro",
    ],
  },
  {
    name: "Hong Kong S.A.R.",
    states: [
      "Central and Western",
      "Eastern",
      "Islands",
      "Kowloon City",
      "Kwai Tsing",
      "Kwun Tong",
      "North",
      "Sai Kung",
      "Sha Tin",
      "Sham Shui Po",
      "Southern",
      "Tai Po",
      "Tsuen Wan",
      "Tuen Mun",
      "Wan Chai",
      "Wong Tai Sin",
      "Yau Tsim Mong",
      "Yuen Long",
    ],
  },
  {
    name: "Hungary",
    states: [
      "Bács-Kiskun",
      "Baranya",
      "Békés",
      "Békéscsaba",
      "Borsod-Abaúj-Zemplén",
      "Budapest",
      "Csongrád County",
      "Debrecen",
      "Dunaújváros",
      "Eger",
      "Érd",
      "Fejér County",
      "Győr",
      "Győr-Moson-Sopron County",
      "Hajdú-Bihar County",
      "Heves County",
      "Hódmezővásárhely",
      "Jász-Nagykun-Szolnok County",
      "Kaposvár",
      "Kecskemét",
      "Komárom-Esztergom",
      "Miskolc",
      "Nagykanizsa",
      "Nógrád County",
      "Nyíregyháza",
      "Pécs",
      "Pest County",
      "Salgótarján",
      "Somogy County",
      "Sopron",
      "Szabolcs-Szatmár-Bereg County",
      "Szeged",
      "Székesfehérvár",
      "Szekszárd",
      "Szolnok",
      "Szombathely",
      "Tatabánya",
      "Tolna County",
      "Vas County",
      "Veszprém",
      "Veszprém County",
      "Zala County",
      "Zalaegerszeg",
    ],
  },
  {
    name: "Iceland",
    states: [
      "Capital",
      "Eastern",
      "Northeastern",
      "Northwestern",
      "Southern",
      "Southern Peninsula",
      "Western",
      "Westfjords",
    ],
  },
  {
    name: "India",
    states: [
      "Andaman and Nicobar Islands",
      "Andhra Pradesh",
      "Arunachal Pradesh",
      "Assam",
      "Bihar",
      "Chandigarh",
      "Chhattisgarh",
      "Dadra and Nagar Haveli and Daman and Diu",
      "Delhi",
      "Goa",
      "Gujarat",
      "Haryana",
      "Himachal Pradesh",
      "Jammu and Kashmir",
      "Jharkhand",
      "Karnataka",
      "Kerala",
      "Ladakh",
      "Lakshadweep",
      "Madhya Pradesh",
      "Maharashtra",
      "Manipur",
      "Meghalaya",
      "Mizoram",
      "Nagaland",
      "Odisha",
      "Puducherry",
      "Punjab",
      "Rajasthan",
      "Sikkim",
      "Tamil Nadu",
      "Telangana",
      "Tripura",
      "Uttar Pradesh",
      "Uttarakhand",
      "West Bengal",
    ],
  },
  {
    name: "Indonesia",
    states: [
      "Aceh",
      "Bali",
      "Banten",
      "Bengkulu",
      "DI Yogyakarta",
      "DKI Jakarta",
      "Gorontalo",
      "Jambi",
      "Jawa Barat",
      "Jawa Tengah",
      "Jawa Timur",
      "Kalimantan Barat",
      "Kalimantan Selatan",
      "Kalimantan Tengah",
      "Kalimantan Timur",
      "Kalimantan Utara",
      "Kepulauan Bangka Belitung",
      "Kepulauan Riau",
      "Lampung",
      "Maluku",
      "Maluku Utara",
      "Nusa Tenggara Barat",
      "Nusa Tenggara Timur",
      "Papua",
      "Papua Barat",
      "Papua Barat Daya",
      "Papua Pegunungan",
      "Papua Selatan",
      "Papua Tengah",
      "Riau",
      "Sulawesi Barat",
      "Sulawesi Selatan",
      "Sulawesi Tengah",
      "Sulawesi Tenggara",
      "Sulawesi Utara",
      "Sumatera Barat",
      "Sumatera Selatan",
      "Sumatera Utara",
    ],
  },
  {
    name: "Iran",
    states: [
      "Alborz",
      "Ardabil",
      "Bushehr",
      "Chaharmahal and Bakhtiari",
      "East Azerbaijan",
      "Fars",
      "Gilan",
      "Golestan",
      "Hamadan",
      "Hormozgan",
      "Ilam",
      "Isfahan",
      "Kerman",
      "Kermanshah",
      "Khuzestan",
      "Kohgiluyeh and Boyer-Ahmad",
      "Kurdistan",
      "Lorestan",
      "Markazi",
      "Mazandaran",
      "North Khorasan",
      "Qazvin",
      "Qom",
      "Razavi Khorasan",
      "Semnan",
      "Sistan and Baluchestan",
      "South Khorasan",
      "Tehran",
      "West Azarbaijan",
      "Yazd",
      "Zanjan",
    ],
  },
  {
    name: "Iraq",
    states: [
      "Al Anbar",
      "Al Muthanna",
      "Al-Qādisiyyah",
      "Babylon",
      "Baghdad",
      "Basra",
      "Dhi Qar",
      "Diyala",
      "Dohuk",
      "Erbil",
      "Karbala",
      "Kirkuk",
      "Maysan",
      "Najaf",
      "Nineveh",
      "Saladin",
      "Sulaymaniyah",
      "Wasit",
    ],
  },
  {
    name: "Ireland",
    states: [
      "Carlow",
      "Cavan",
      "Clare",
      "Connacht",
      "Cork",
      "Donegal",
      "Dublin",
      "Galway",
      "Kerry",
      "Kildare",
      "Kilkenny",
      "Laois",
      "Leinster",
      "Leitrim",
      "Limerick",
      "Longford",
      "Louth",
      "Mayo",
      "Meath",
      "Monaghan",
      "Munster",
      "Offaly",
      "Roscommon",
      "Sligo",
      "Tipperary",
      "Ulster",
      "Waterford",
      "Westmeath",
      "Wexford",
      "Wicklow",
    ],
  },
  {
    name: "Israel",
    states: [
      "Central",
      "Haifa",
      "Jerusalem",
      "Northern",
      "Southern",
      "Tel Aviv",
    ],
  },
  {
    name: "Italy",
    states: [
      "Abruzzo",
      "Agrigento",
      "Alessandria",
      "Ancona",
      "Aosta Valley",
      "Apulia",
      "Arezzo",
      "Ascoli Piceno",
      "Asti",
      "Avellino",
      "Barletta-Andria-Trani",
      "Basilicata",
      "Belluno",
      "Benevento",
      "Bergamo",
      "Biella",
      "Brescia",
      "Brindisi",
      "Calabria",
      "Caltanissetta",
      "Campania",
      "Campobasso",
      "Caserta",
      "Catanzaro",
      "Chieti",
      "Como",
      "Cosenza",
      "Cremona",
      "Crotone",
      "Cuneo",
      "Emilia-Romagna",
      "Enna",
      "Fermo",
      "Ferrara",
      "Foggia",
      "Forlì-Cesena",
      "Friuli–Venezia Giulia",
      "Frosinone",
      "Gorizia",
      "Grosseto",
      "Imperia",
      "Isernia",
      "L'Aquila",
      "La Spezia",
      "Latina",
      "Lazio",
      "Lecce",
      "Lecco",
      "Liguria",
      "Livorno",
      "Lodi",
      "Lombardy",
      "Lucca",
      "Macerata",
      "Mantua",
      "Marche",
      "Massa and Carrara",
      "Matera",
      "Modena",
      "Molise",
      "Monza and Brianza",
      "Novara",
      "Nuoro",
      "Oristano",
      "Padua",
      "Palermo",
      "Parma",
      "Pavia",
      "Perugia",
      "Pesaro and Urbino",
      "Pescara",
      "Piacenza",
      "Piedmont",
      "Pisa",
      "Pistoia",
      "Pordenone",
      "Potenza",
      "Prato",
      "Ragusa",
      "Ravenna",
      "Reggio Emilia",
      "Rieti",
      "Rimini",
      "Rovigo",
      "Salerno",
      "Sardinia",
      "Sassari",
      "Savona",
      "Sicily",
      "Siena",
      "Siracusa",
      "Sondrio",
      "South Sardinia",
      "Taranto",
      "Teramo",
      "Terni",
      "Trapani",
      "Trentino-South Tyrol",
      "Treviso",
      "Trieste",
      "Tuscany",
      "Udine",
      "Umbria",
      "Varese",
      "Veneto",
      "Verbano-Cusio-Ossola",
      "Vercelli",
      "Verona",
      "Vibo Valentia",
      "Vicenza",
      "Viterbo",
    ],
  },
  {
    name: "Jamaica",
    states: [
      "Clarendon",
      "Hanover",
      "Kingston",
      "Manchester",
      "Portland",
      "Saint Andrew",
      "Saint Ann",
      "Saint Catherine",
      "Saint Elizabeth",
      "Saint James",
      "Saint Mary",
      "Saint Thomas",
      "Trelawny",
      "Westmoreland",
    ],
  },
  {
    name: "Japan",
    states: [
      "Aichi",
      "Akita",
      "Aomori",
      "Chiba",
      "Ehime",
      "Fukui",
      "Fukuoka",
      "Fukushima",
      "Gifu",
      "Gunma",
      "Hiroshima",
      "Hokkaidō",
      "Hyōgo",
      "Ibaraki",
      "Ishikawa",
      "Iwate",
      "Kagawa",
      "Kagoshima",
      "Kanagawa",
      "Kōchi",
      "Kumamoto",
      "Kyōto",
      "Mie",
      "Miyagi",
      "Miyazaki",
      "Nagano",
      "Nagasaki",
      "Nara",
      "Niigata",
      "Ōita",
      "Okayama",
      "Okinawa",
      "Ōsaka",
      "Saga",
      "Saitama",
      "Shiga",
      "Shimane",
      "Shizuoka",
      "Tochigi",
      "Tokushima",
      "Tokyo",
      "Tottori",
      "Toyama",
      "Wakayama",
      "Yamagata",
      "Yamaguchi",
      "Yamanashi",
    ],
  },
  {
    name: "Jersey",
    states: [
      "Grouville",
      "St Brelade",
      "St Clement",
      "St Helier",
      "St John",
      "St Lawrence",
      "St Martin",
      "St Mary",
      "St Ouen",
      "St Peter",
      "St Saviour",
      "Trinity",
    ],
  },
  {
    name: "Jordan",
    states: [
      "Ajloun",
      "Amman",
      "Aqaba",
      "Balqa",
      "Irbid",
      "Jerash",
      "Karak",
      "Ma'an",
      "Madaba",
      "Mafraq",
      "Tafilah",
      "Zarqa",
    ],
  },
  {
    name: "Kazakhstan",
    states: [
      "Abai",
      "Akmola",
      "Aktobe",
      "Almaty",
      "Almaty",
      "Astana",
      "Atyrau",
      "East Kazakhstan",
      "Jambyl",
      "Jetisu",
      "Karaganda",
      "Kostanay",
      "Kyzylorda",
      "Mangystau",
      "North Kazakhstan",
      "Pavlodar",
      "Shymkent",
      "Turkistan",
      "Ulytau",
      "West Kazakhstan",
    ],
  },
  {
    name: "Kenya",
    states: [
      "Baringo",
      "Bomet",
      "Bungoma",
      "Busia",
      "Elgeyo-Marakwet",
      "Embu",
      "Garissa",
      "Homa Bay",
      "Isiolo",
      "Kajiado",
      "Kakamega",
      "Kericho",
      "Kiambu",
      "Kilifi",
      "Kirinyaga",
      "Kisii",
      "Kisumu",
      "Kitui",
      "Kwale",
      "Laikipia",
      "Lamu",
      "Machakos",
      "Makueni",
      "Mandera",
      "Marsabit",
      "Meru",
      "Migori",
      "Mombasa",
      "Murang'a",
      "Nairobi City",
      "Nakuru",
      "Nandi",
      "Narok",
      "Nyamira",
      "Nyandarua",
      "Nyeri",
      "Samburu",
      "Siaya",
      "Taita–Taveta",
      "Tana River",
      "Tharaka-Nithi",
      "Trans Nzoia",
      "Turkana",
      "Uasin Gishu",
      "Vihiga",
      "Wajir",
      "West Pokot",
    ],
  },
  {
    name: "Kiribati",
    states: ["Gilbert", "Line", "Phoenix"],
  },
  {
    name: "Kosovo",
    states: [
      "Ferizaj",
      "Gjakove",
      "Gjilan",
      "Mitrovica",
      "Peja",
      "Pristina",
      "Prizren",
    ],
  },
  {
    name: "Kuwait",
    states: [
      "Al Ahmadi",
      "Al Asimah",
      "Al Farwaniyah",
      "Al Jahra",
      "Hawalli",
      "Mubarak Al-Kabeer",
    ],
  },
  {
    name: "Kyrgyzstan",
    states: [
      "Batken",
      "Bishkek",
      "Chuy",
      "Issyk-Kul",
      "Jalal-Abad",
      "Naryn",
      "Osh",
      "Osh",
      "Talas",
    ],
  },
  {
    name: "Laos",
    states: [
      "Attapeu",
      "Bokeo",
      "Bolikhamsai",
      "Champasak",
      "Houaphanh",
      "Khammouane",
      "Luang Namtha",
      "Luang Prabang",
      "Oudomxay",
      "Phongsaly",
      "Sainyabuli",
      "Salavan",
      "Savannakhet",
      "Sekong",
      "Vientiane",
      "Vientiane",
      "Xaisomboun",
      "Xiangkhouang",
    ],
  },
  {
    name: "Latvia",
    states: [
      "Ādaži",
      "Aizkraukle",
      "Alūksne",
      "Augšdaugava",
      "Balvi",
      "Bauska",
      "Cēsis",
      "Daugavpils",
      "Dienvidkurzemes",
      "Dobele",
      "Gulbene",
      "Jēkabpils",
      "Jelgava",
      "Jelgava",
      "Jūrmala",
      "Ķekava",
      "Krāslava",
      "Kuldīga",
      "Liepāja",
      "Limbaži",
      "Līvāni",
      "Ludza",
      "Madona",
      "Mārupe",
      "Ogre",
      "Olaine",
      "Preiļi",
      "Rēzekne",
      "Rēzekne",
      "Riga",
      "Ropaži",
      "Salaspils",
      "Saldus",
      "Saulkrasti",
      "Sigulda",
      "Smiltene",
      "Talsi",
      "Tukums",
      "Valka",
      "Valmiera",
      "Varakļāni",
      "Ventspils",
      "Ventspils",
    ],
  },
  {
    name: "Lebanon",
    states: [
      "Akkar",
      "Baalbek-Hermel",
      "Beirut",
      "Beqaa",
      "Mount Lebanon",
      "Nabatieh",
      "North",
      "South",
    ],
  },
  {
    name: "Lesotho",
    states: [
      "Berea",
      "Butha-Buthe",
      "Leribe",
      "Mafeteng",
      "Maseru",
      "Mohale's Hoek",
      "Mokhotlong",
      "Qacha's Nek",
      "Quthing",
      "Thaba-Tseka",
    ],
  },
  {
    name: "Liberia",
    states: [
      "Bomi",
      "Bong",
      "Gbarpolu",
      "Grand Bassa",
      "Grand Cape Mount",
      "Grand Gedeh",
      "Grand Kru",
      "Lofa",
      "Margibi",
      "Maryland",
      "Montserrado",
      "Nimba",
      "River Cess",
      "River Gee",
      "Sinoe",
    ],
  },
  {
    name: "Libya",
    states: [
      "Al Wahat",
      "Benghazi",
      "Derna",
      "Ghat",
      "Jabal al Akhdar",
      "Jabal al Gharbi",
      "Jafara",
      "Jufra",
      "Kufra",
      "Marj",
      "Misrata",
      "Murqub",
      "Murzuq",
      "Nalut",
      "Nuqat al Khams",
      "Sabha",
      "Sirte",
      "Tripoli",
      "Wadi al Hayaa",
      "Wadi al Shatii",
      "Zawiya",
    ],
  },
  {
    name: "Liechtenstein",
    states: [
      "Balzers",
      "Eschen",
      "Gamprin",
      "Mauren",
      "Planken",
      "Ruggell",
      "Schaan",
      "Schellenberg",
      "Triesen",
      "Triesenberg",
      "Vaduz",
    ],
  },
  {
    name: "Lithuania",
    states: [
      "Akmenė",
      "Alytus",
      "Alytus",
      "Anykščiai",
      "Birštonas",
      "Biržai",
      "Druskininkai",
      "Elektrėnai",
      "Ignalina",
      "Jonava",
      "Joniškis",
      "Jurbarkas",
      "Kaišiadorys",
      "Kalvarija",
      "Kaunas",
      "Kaunas",
      "Kazlų Rūda",
      "Kėdainiai",
      "Kelmė",
      "Klaipėda",
      "Klaipėda",
      "Kretinga",
      "Kupiškis",
      "Lazdijai",
      "Marijampolė",
      "Marijampolė",
      "Mažeikiai",
      "Molėtai",
      "Neringa",
      "Pagėgiai",
      "Pakruojis",
      "Palanga",
      "Panevėžys",
      "Panevėžys",
      "Pasvalys",
      "Plungė",
      "Prienai",
      "Radviliškis",
      "Raseiniai",
      "Rietavas",
      "Rokiškis",
      "Šakiai",
      "Šalčininkai",
      "Šiauliai",
      "Šiauliai",
      "Šilalė ",
      "Šilutė",
      "Širvintos",
      "Skuodas",
      "Švenčionys",
      "Tauragė",
      "Tauragė",
      "Telšiai",
      "Telšiai",
      "Trakai",
      "Ukmergė",
      "Utena",
      "Utena",
      "Varėna",
      "Vilkaviškis",
      "Vilnius",
      "Vilnius",
      "Visaginas",
      "Zarasai",
    ],
  },
  {
    name: "Luxembourg",
    states: [
      "Capellen",
      "Clervaux",
      "Diekirch",
      "Echternach",
      "Esch-sur-Alzette",
      "Grevenmacher",
      "Luxembourg ",
      "Mersch",
      "Redange",
      "Remich",
      "Vianden",
      "Wiltz",
    ],
  },
  {
    name: "Macau S.A.R.",
    states: [],
  },
  {
    name: "Madagascar",
    states: [
      "Antananarivo",
      "Antsiranana",
      "Fianarantsoa",
      "Mahajanga",
      "Toamasina",
      "Toliara",
    ],
  },
  {
    name: "Malawi",
    states: [
      "Balaka",
      "Blantyre",
      "Central",
      "Chikwawa",
      "Chiradzulu",
      "Chitipa",
      "Dedza",
      "Dowa",
      "Karonga",
      "Kasungu",
      "Likoma",
      "Lilongwe",
      "Machinga",
      "Mangochi",
      "Mchinji",
      "Mulanje",
      "Mwanza",
      "Mzimba",
      "Neno",
      "Nkhata Bay",
      "Nkhotakota",
      "Northern",
      "Nsanje",
      "Ntcheu",
      "Ntchisi",
      "Phalombe",
      "Rumphi",
      "Salima",
      "Southern",
      "Thyolo",
      "Zomba",
    ],
  },
  {
    name: "Malaysia",
    states: [
      "Johor",
      "Kedah",
      "Kelantan",
      "Kuala Lumpur",
      "Labuan",
      "Malacca",
      "Negeri Sembilan",
      "Pahang",
      "Penang",
      "Perak",
      "Perlis",
      "Putrajaya",
      "Sabah",
      "Sarawak",
      "Selangor",
      "Terengganu",
    ],
  },
  {
    name: "Maldives",
    states: [
      "Addu",
      "Alif Alif",
      "Alif Dhaal",
      "Central",
      "Dhaalu",
      "Faafu",
      "Gaafu Alif",
      "Gaafu Dhaalu",
      "Gnaviyani",
      "Haa Alif",
      "Haa Dhaalu",
      "Kaafu",
      "Laamu",
      "Lhaviyani",
      "Malé",
      "Meemu",
      "Noonu",
      "North Central",
      "Raa",
      "Shaviyani",
      "South",
      "South Central",
      "Thaa",
      "Upper South",
      "Vaavu",
    ],
  },
  {
    name: "Mali",
    states: [
      "Bamako",
      "Gao",
      "Kayes",
      "Kidal",
      "Koulikoro",
      "Ménaka",
      "Mopti",
      "Ségou",
      "Sikasso",
      "Taoudénit",
      "Tombouctou",
    ],
  },
  {
    name: "Malta",
    states: [
      "Attard",
      "Balzan",
      "Birgu",
      "Birkirkara",
      "Birżebbuġa",
      "Cospicua",
      "Dingli",
      "Fgura",
      "Floriana",
      "Fontana",
      "Għajnsielem",
      "Għarb",
      "Għargħur",
      "Għasri",
      "Għaxaq",
      "Gudja",
      "Gżira",
      "Ħamrun",
      "Iklin",
      "Kalkara",
      "Kerċem",
      "Kirkop",
      "Lija",
      "Luqa",
      "Marsa",
      "Marsaskala",
      "Marsaxlokk",
      "Mdina",
      "Mellieħa",
      "Mġarr",
      "Mosta",
      "Mqabba",
      "Msida",
      "Mtarfa",
      "Munxar",
      "Nadur",
      "Naxxar",
      "Paola",
      "Pembroke",
      "Pietà",
      "Qala",
      "Qormi",
      "Qrendi",
      "Rabat",
      "San Ġwann",
      "San Lawrenz",
      "Sannat",
      "Santa Luċija",
      "Santa Venera",
      "Senglea",
      "Siġġiewi",
      "Sliema",
      "St. Julian's",
      "St. Paul's Bay",
      "Swieqi",
      "Ta' Xbiex",
      "Tarxien",
      "Valletta",
      "Victoria",
      "Xagħra",
      "Xewkija",
      "Xgħajra",
      "Żabbar",
      "Żebbuġ Gozo",
      "Żebbuġ Malta",
      "Żejtun",
      "Żurrieq",
    ],
  },
  {
    name: "Man (Isle of)",
    states: ["Ayre", "Garff", "Glenfaba", "Michael", "Middle", "Rushen"],
  },
  {
    name: "Marshall Islands",
    states: ["Ralik", "Ratak"],
  },
  {
    name: "Martinique",
    states: ["Fort-de-France", "La Trinité", "Le Marin", "Saint-Pierre"],
  },
  {
    name: "Mauritania",
    states: [
      "Adrar",
      "Assaba",
      "Brakna",
      "Dakhlet Nouadhibou",
      "Gorgol",
      "Guidimaka",
      "Hodh Ech Chargui",
      "Hodh El Gharbi",
      "Inchiri",
      "Nouakchott-Nord",
      "Nouakchott-Ouest",
      "Nouakchott-Sud",
      "Tagant",
      "Tiris Zemmour",
      "Trarza",
    ],
  },
  {
    name: "Mauritius",
    states: [
      "Agalega Islands",
      "Black River",
      "Flacq",
      "Grand Port",
      "Moka",
      "Pamplemousses",
      "Plaines Wilhems",
      "Port Louis",
      "Rivière du Rempart",
      "Rodrigues Island",
      "Saint Brandon Islands",
      "Savanne",
    ],
  },
  {
    name: "Mayotte",
    states: [
      "Acoua",
      "Bandraboua",
      "Bandrélé",
      "Boueni",
      "Chiconi",
      "Chirongui",
      "Dembeni",
      "Dzaoudzi",
      "Kani Keli",
      "Koungou",
      "M'Tsangamouji",
      "Mamoudzou",
      "Mtsamboro",
      "Ouangani",
      "Pamandzi",
      "Sada",
      "Tsingoni",
    ],
  },
  {
    name: "Mexico",
    states: [
      "Aguascalientes",
      "Baja California",
      "Baja California Sur",
      "Campeche",
      "Chiapas",
      "Chihuahua",
      "Ciudad de México",
      "Coahuila de Zaragoza",
      "Colima",
      "Durango",
      "Estado de México",
      "Guanajuato",
      "Guerrero",
      "Hidalgo",
      "Jalisco",
      "Michoacán de Ocampo",
      "Morelos",
      "Nayarit",
      "Nuevo León",
      "Oaxaca",
      "Puebla",
      "Querétaro",
      "Quintana Roo",
      "San Luis Potosí",
      "Sinaloa",
      "Sonora",
      "Tabasco",
      "Tamaulipas",
      "Tlaxcala",
      "Veracruz de Ignacio de la Llave",
      "Yucatán",
      "Zacatecas",
    ],
  },
  {
    name: "Micronesia",
    states: ["Chuuk", "Kosrae", "Pohnpei", "Yap"],
  },
  {
    name: "Moldova",
    states: [
      "Anenii Noi",
      "Bălți",
      "Basarabeasca",
      "Bender",
      "Briceni",
      "Cahul",
      "Călărași",
      "Cantemir",
      "Căușeni",
      "Chișinău",
      "Cimișlia",
      "Criuleni",
      "Dondușeni",
      "Drochia",
      "Dubăsari",
      "Edineț",
      "Fălești",
      "Florești",
      "Gagauzia",
      "Glodeni",
      "Hîncești",
      "Ialoveni",
      "Nisporeni",
      "Ocnița",
      "Orhei",
      "Rezina",
      "Rîșcani",
      "Sîngerei",
      "Șoldănești",
      "Soroca",
      "Ștefan Vodă",
      "Strășeni",
      "Taraclia",
      "Telenești",
      "Transnistria",
      "Ungheni",
    ],
  },
  {
    name: "Monaco",
    states: ["La Colle", "La Condamine", "Moneghetti"],
  },
  {
    name: "Mongolia",
    states: [
      "Arkhangai",
      "Bayan-Ölgii",
      "Bayankhongor",
      "Bulgan",
      "Darkhan-Uul",
      "Dornod",
      "Dornogovi",
      "Dundgovi",
      "Govi-Altai",
      "Govisümber",
      "Khentii",
      "Khovd",
      "Khövsgöl",
      "Ömnögovi",
      "Orkhon",
      "Övörkhangai",
      "Selenge",
      "Sükhbaatar",
      "Töv",
      "Ulaanbaatar",
      "Uvs",
      "Zavkhan",
    ],
  },
  {
    name: "Montenegro",
    states: [
      "Andrijevica",
      "Bar",
      "Berane",
      "Bijelo Polje",
      "Budva",
      "Danilovgrad",
      "Gusinje",
      "Kolašin",
      "Kotor",
      "Mojkovac",
      "Nikšić",
      "Old Royal Capital Cetinje",
      "Petnjica",
      "Plav",
      "Pljevlja",
      "Plužine",
      "Podgorica",
      "Rožaje",
      "Šavnik",
      "Tivat",
      "Ulcinj",
      "Žabljak",
    ],
  },
  {
    name: "Montserrat",
    states: ["Saint Anthony", "Saint Georges", "Saint Peter"],
  },
  {
    name: "Morocco",
    states: [
      "Agadir-Ida-Ou-Tanane",
      "Al Haouz",
      "Al Hoceïma",
      "Aousserd (EH)",
      "Assa-Zag (EH-partial)",
      "Azilal",
      "Béni Mellal",
      "Béni Mellal-Khénifra",
      "Benslimane",
      "Berkane",
      "Berrechid",
      "Boujdour (EH)",
      "Boulemane",
      "Casablanca",
      "Casablanca-Settat",
      "Chefchaouen",
      "Chichaoua",
      "Chtouka-Ait Baha",
      "Dakhla-Oued Ed-Dahab (EH)",
      "Drâa-Tafilalet",
      "Driouch",
      "El Hajeb",
      "El Jadida",
      "El Kelâa des Sraghna",
      "Errachidia",
      "Es-Semara (EH-partial)",
      "Essaouira",
      "Fahs-Anjra",
      "Fès",
      "Fès-Meknès",
      "Figuig",
      "Fquih Ben Salah",
      "Guelmim",
      "Guelmim-Oued Noun (EH-partial)",
      "Guercif",
      "Ifrane",
      "Inezgane-Ait Melloul",
      "Jerada",
      "Kénitra",
      "Khémisset",
      "Khénifra",
      "Khouribga",
      "L'Oriental",
      "Laâyoune (EH)",
      "Laâyoune-Sakia El Hamra (EH-partial)",
      "Larache",
      "M’diq-Fnideq",
      "Marrakech",
      "Marrakesh-Safi",
      "Médiouna",
      "Meknès",
      "Midelt",
      "Mohammadia",
      "Moulay Yacoub",
      "Nador",
      "Nouaceur",
      "Ouarzazate",
      "Oued Ed-Dahab (EH)",
      "Ouezzane",
      "Oujda-Angad",
      "Rabat",
      "Rabat-Salé-Kénitra",
      "Rehamna",
      "Safi",
      "Salé",
      "Sefrou",
      "Settat",
      "Sidi Bennour",
      "Sidi Ifni",
      "Sidi Kacem",
      "Sidi Slimane",
      "Skhirate-Témara",
      "Souss-Massa",
      "Tan-Tan (EH-partial)",
      "Tanger-Assilah",
      "Tanger-Tétouan-Al Hoceïma",
      "Taounate",
      "Taourirt",
      "Tarfaya (EH-partial)",
      "Taroudannt",
      "Tata",
      "Taza",
      "Tétouan",
      "Tinghir",
      "Tiznit",
      "Youssoufia",
      "Zagora",
    ],
  },
  {
    name: "Mozambique",
    states: [
      "Cabo Delgado",
      "Gaza",
      "Inhambane",
      "Manica",
      "Maputo",
      "Maputo",
      "Nampula",
      "Niassa",
      "Sofala",
      "Tete",
      "Zambezia",
    ],
  },
  {
    name: "Myanmar",
    states: [
      "Ayeyarwady",
      "Bago",
      "Chin",
      "Kachin",
      "Kayah",
      "Kayin",
      "Magway",
      "Mandalay",
      "Mon State",
      "Naypyidaw",
      "Rakhine",
      "Sagaing",
      "Shan",
      "Tanintharyi",
      "Yangon",
    ],
  },
  {
    name: "Namibia",
    states: [
      "Erongo",
      "Hardap",
      "Karas",
      "Kavango East",
      "Kavango West",
      "Khomas",
      "Kunene",
      "Ohangwena",
      "Omaheke",
      "Omusati",
      "Oshana",
      "Oshikoto",
      "Otjozondjupa",
      "Zambezi",
    ],
  },
  {
    name: "Nauru",
    states: [
      "Aiwo",
      "Anabar",
      "Anetan",
      "Anibare",
      "Baiti",
      "Boe",
      "Buada",
      "Denigomodu",
      "Ewa",
      "Ijuw",
      "Meneng",
      "Nibok",
      "Uaboe",
      "Yaren",
    ],
  },
  {
    name: "Nepal",
    states: [
      "Bagmati",
      "Gandaki",
      "Karnali",
      "Koshi",
      "Lumbini",
      "Madhesh",
      "Sudurpashchim",
    ],
  },
  {
    name: "Netherlands",
    states: [
      "Drenthe",
      "Flevoland",
      "Friesland",
      "Gelderland",
      "Groningen",
      "Limburg",
      "North Brabant",
      "North Holland",
      "Overijssel",
      "South Holland",
      "Utrecht",
      "Zeeland",
    ],
  },
  {
    name: "New Caledonia",
    states: ["Loyalty Islands Province", "North Province", "South Province"],
  },
  {
    name: "New Zealand",
    states: [
      "Auckland",
      "Bay of Plenty",
      "Canterbury",
      "Chatham Islands",
      "Gisborne",
      "Hawke's Bay",
      "Manawatu-Wanganui",
      "Marlborough",
      "Nelson",
      "Northland",
      "Otago",
      "Southland",
      "Taranaki",
      "Tasman",
      "Waikato",
      "Wellington",
      "West Coast",
    ],
  },
  {
    name: "Nicaragua",
    states: [
      "Boaco",
      "Carazo",
      "Chinandega",
      "Chontales",
      "Estelí",
      "Granada",
      "Jinotega",
      "León",
      "Madriz",
      "Managua",
      "Masaya",
      "Matagalpa",
      "North Caribbean Coast",
      "Nueva Segovia",
      "Río San Juan",
      "Rivas",
      "South Caribbean Coast",
    ],
  },
  {
    name: "Niger",
    states: [
      "Agadez",
      "Diffa",
      "Dosso",
      "Maradi",
      "Tahoua",
      "Tillabéri",
      "Zinder",
    ],
  },
  {
    name: "Nigeria",
    states: [
      "Abia",
      "Abuja Federal Capital Territory",
      "Adamawa",
      "Akwa Ibom",
      "Anambra",
      "Bauchi",
      "Bayelsa",
      "Benue",
      "Borno",
      "Cross River",
      "Delta",
      "Ebonyi",
      "Edo",
      "Ekiti",
      "Enugu",
      "Gombe",
      "Imo",
      "Jigawa",
      "Kaduna",
      "Kano",
      "Katsina",
      "Kebbi",
      "Kogi",
      "Kwara",
      "Lagos",
      "Nasarawa",
      "Niger",
      "Ogun",
      "Ondo",
      "Osun",
      "Oyo",
      "Plateau",
      "Rivers",
      "Sokoto",
      "Taraba",
      "Yobe",
      "Zamfara",
    ],
  },
  {
    name: "Niue",
    states: [
      "Alofi North",
      "Alofi South",
      "Avatele",
      "Hakupu",
      "Hikutavake",
      "Lakepa",
      "Liku",
      "Makefu",
      "Mutalau",
      "Namukulu",
      "Tamakautoga",
      "Toi",
      "Tuapa",
      "Vaiea",
    ],
  },
  {
    name: "Norfolk Island",
    states: [],
  },
  {
    name: "North Korea",
    states: [
      "Chagang",
      "Kangwon",
      "North Hamgyong",
      "North Hwanghae",
      "North Pyongan",
      "Pyongyang",
      "Rason",
      "Ryanggang",
      "South Hamgyong",
      "South Hwanghae",
      "South Pyongan",
    ],
  },
  {
    name: "North Macedonia",
    states: [
      "Aerodrom",
      "Aračinovo",
      "Berovo",
      "Bitola",
      "Bogdanci",
      "Bogovinje",
      "Bosilovo",
      "Brvenica",
      "Butel",
      "Čair",
      "Čaška",
      "Centar",
      "Centar Župa",
      "Češinovo-Obleševo",
      "Čučer-Sandevo",
      "Debarca",
      "Delčevo",
      "Demir Hisar",
      "Demir Kapija",
      "Dojran",
      "Dolneni",
      "Drugovo",
      "Gazi Baba",
      "Gevgelija",
      "Gjorče Petrov",
      "Gostivar",
      "Gradsko",
      "Greater Skopje",
      "Ilinden",
      "Jegunovce",
      "Karbinci",
      "Karpoš",
      "Kavadarci",
      "Kičevo",
      "Kisela Voda",
      "Kočani",
      "Konče",
      "Kratovo",
      "Kriva Palanka",
      "Krivogaštani",
      "Kruševo",
      "Kumanovo",
      "Lipkovo",
      "Lozovo",
      "Makedonska Kamenica",
      "Makedonski Brod",
      "Mavrovo and Rostuša",
      "Mogila",
      "Negotino",
      "Novaci",
      "Novo Selo",
      "Ohrid",
      "Oslomej ",
      "Pehčevo",
      "Petrovec",
      "Plasnica",
      "Prilep",
      "Probištip",
      "Radoviš",
      "Rankovce",
      "Resen",
      "Rosoman",
      "Saraj",
      "Sopište",
      "Staro Nagoričane",
      "Štip",
      "Struga",
      "Strumica",
      "Studeničani",
      "Šuto Orizari",
      "Sveti Nikole",
      "Tearce",
      "Tetovo",
      "Valandovo",
      "Vasilevo",
      "Veles",
      "Vevčani",
      "Vinica",
      "Vraneštica",
      "Vrapčište",
      "Zajas",
      "Zelenikovo",
      "Želino",
      "Zrnovci",
    ],
  },
  {
    name: "Northern Mariana Islands",
    states: [],
  },
  {
    name: "Norway",
    states: [
      "Agder",
      "Akershus",
      "Buskerud",
      "Finnmark",
      "Innlandet",
      "Jan Mayen",
      "Møre og Romsdal",
      "Nordland",
      "Oslo",
      "Østfold",
      "Rogaland",
      "Svalbard",
      "Telemark",
      "Troms",
      "Trøndelag",
      "Vestfold",
      "Vestland",
    ],
  },
  {
    name: "Oman",
    states: [
      "Ad Dakhiliyah",
      "Ad Dhahirah",
      "Al Batinah North",
      "Al Batinah Region",
      "Al Batinah South",
      "Al Buraimi",
      "Al Wusta",
      "Ash Sharqiyah North",
      "Ash Sharqiyah Region",
      "Ash Sharqiyah South",
      "Dhofar",
      "Musandam",
      "Muscat",
    ],
  },
  {
    name: "Pakistan",
    states: [
      "Azad Kashmir",
      "Balochistan",
      "Federally Administered Tribal Areas",
      "Gilgit-Baltistan",
      "Islamabad",
      "Khyber Pakhtunkhwa",
      "Punjab",
      "Sindh",
    ],
  },
  {
    name: "Palau",
    states: [
      "Aimeliik",
      "Airai",
      "Angaur",
      "Hatohobei",
      "Kayangel",
      "Koror",
      "Melekeok",
      "Ngaraard",
      "Ngarchelong",
      "Ngardmau",
      "Ngatpang",
      "Ngchesar",
      "Ngeremlengui",
      "Ngiwal",
      "Peleliu",
      "Sonsorol",
    ],
  },
  {
    name: "Palestinian Territory Occupied",
    states: [
      "Bethlehem",
      "Deir El Balah",
      "Gaza",
      "Hebron",
      "Jenin",
      "Jericho ",
      "Jerusalem (Quds)",
      "Khan Yunis",
      "Nablus",
      "North Gaza",
      "Qalqilya",
      "Rafah",
      "Ramallah",
      "Salfit",
      "Tubas",
      "Tulkarm",
    ],
  },
  {
    name: "Panama",
    states: [
      "Bocas del Toro",
      "Chiriquí Province",
      "Coclé",
      "Colón",
      "Darién",
      "Emberá-Wounaan Comarca",
      "Guna",
      "Herrera",
      "Los Santos",
      "Ngöbe-Buglé Comarca",
      "Panamá",
      "Panamá Oeste",
      "Veraguas",
    ],
  },
  {
    name: "Papua New Guinea",
    states: [
      "Bougainville",
      "Central",
      "Chimbu",
      "East New Britain",
      "East Sepik",
      "Eastern Highlands",
      "Enga",
      "Gulf",
      "Hela",
      "Jiwaka",
      "Madang",
      "Manus",
      "Milne Bay",
      "Morobe",
      "New Ireland",
      "Oro",
      "Port Moresby",
      "Sandaun",
      "Southern Highlands",
      "West New Britain",
      "Western",
      "Western Highlands",
    ],
  },
  {
    name: "Paraguay",
    states: [
      "Alto Paraguay",
      "Alto Paraná",
      "Amambay",
      "Asuncion",
      "Boquerón",
      "Caaguazú",
      "Caazapá",
      "Canindeyú",
      "Central",
      "Concepción",
      "Cordillera",
      "Guairá",
      "Itapúa",
      "Misiones",
      "Ñeembucú",
      "Paraguarí",
      "Presidente Hayes",
      "San Pedro",
    ],
  },
  {
    name: "Peru",
    states: [
      "Amazonas",
      "Áncash",
      "Apurímac",
      "Arequipa",
      "Ayacucho",
      "Cajamarca",
      "Callao",
      "Cusco",
      "Huancavelica",
      "Huanuco",
      "Ica",
      "Junín",
      "La Libertad",
      "Lambayeque",
      "Lima",
      "Loreto",
      "Madre de Dios",
      "Moquegua",
      "Pasco",
      "Piura",
      "Puno",
      "San Martín",
      "Tacna",
      "Tumbes",
      "Ucayali",
    ],
  },
  {
    name: "Philippines",
    states: [
      "Abra",
      "Agusan del Norte",
      "Agusan del Sur",
      "Aklan",
      "Albay",
      "Antique",
      "Apayao",
      "Aurora",
      "Autonomous Region in Muslim Mindanao",
      "Basilan",
      "Bataan",
      "Batanes",
      "Batangas",
      "Benguet",
      "Bicol",
      "Biliran",
      "Bohol",
      "Bukidnon",
      "Bulacan",
      "Cagayan",
      "Cagayan Valley",
      "Calabarzon",
      "Camarines Norte",
      "Camarines Sur",
      "Camiguin",
      "Capiz",
      "Caraga",
      "Catanduanes",
      "Cavite",
      "Cebu",
      "Central Luzon",
      "Central Visayas",
      "Cordillera Administrative",
      "Cotabato",
      "Davao",
      "Davao de Oro",
      "Davao del Norte",
      "Davao del Sur",
      "Davao Occidental",
      "Davao Oriental",
      "Dinagat Islands",
      "Eastern Samar",
      "Eastern Visayas",
      "Guimaras",
      "Ifugao",
      "Ilocos",
      "Ilocos Norte",
      "Ilocos Sur",
      "Iloilo",
      "Isabela",
      "Kalinga",
      "La Union",
      "Laguna",
      "Lanao del Norte",
      "Lanao del Sur",
      "Leyte",
      "Maguindanao del Norte",
      "Maguindanao del Sur",
      "Marinduque",
      "Masbate",
      "Mimaropa",
      "Misamis Occidental",
      "Misamis Oriental",
      "Mountain Province",
      "National Capital Region (Metro Manila)",
      "Negros Occidental",
      "Negros Oriental",
      "Northern Mindanao",
      "Northern Samar",
      "Nueva Ecija",
      "Nueva Vizcaya",
      "Occidental Mindoro",
      "Oriental Mindoro",
      "Palawan",
      "Pampanga",
      "Pangasinan",
      "Quezon",
      "Quirino",
      "Rizal",
      "Romblon",
      "Sarangani",
      "Siquijor",
      "Soccsksargen",
      "Sorsogon",
      "South Cotabato",
      "Southern Leyte",
      "Sultan Kudarat",
      "Sulu",
      "Surigao del Norte",
      "Surigao del Sur",
      "Tarlac",
      "Tawi-Tawi",
      "Western Samar",
      "Western Visayas",
      "Zambales",
      "Zamboanga del Norte",
      "Zamboanga del Sur",
      "Zamboanga Peninsula",
      "Zamboanga Sibugay",
    ],
  },
  {
    name: "Pitcairn Island",
    states: [],
  },
  {
    name: "Poland",
    states: [
      "Greater Poland",
      "Holy Cross",
      "Kuyavia-Pomerania",
      "Lesser Poland",
      "Lower Silesia",
      "Lublin",
      "Lubusz",
      "Łódź",
      "Mazovia",
      "Podlaskie",
      "Pomerania",
      "Silesia",
      "Subcarpathia",
      "Upper Silesia",
      "Warmia-Masuria",
      "West Pomerania",
    ],
  },
  {
    name: "Portugal",
    states: [
      "Açores",
      "Aveiro",
      "Beja",
      "Braga",
      "Bragança",
      "Castelo Branco",
      "Coimbra",
      "Évora",
      "Faro",
      "Guarda",
      "Leiria",
      "Lisbon",
      "Madeira",
      "Portalegre",
      "Porto",
      "Santarém",
      "Setúbal",
      "Viana do Castelo",
      "Vila Real",
      "Viseu",
    ],
  },
  {
    name: "Puerto Rico",
    states: [
      "Adjuntas",
      "Aguada",
      "Aguadilla",
      "Aguas Buenas",
      "Aibonito",
      "Añasco",
      "Arecibo",
      "Arecibo",
      "Arroyo",
      "Barceloneta",
      "Barranquitas",
      "Bayamon",
      "Bayamón",
      "Cabo Rojo",
      "Caguas",
      "Caguas",
      "Camuy",
      "Canóvanas",
      "Carolina",
      "Carolina",
      "Cataño",
      "Cayey",
      "Ceiba",
      "Ciales",
      "Cidra",
      "Coamo",
      "Comerío",
      "Corozal",
      "Culebra",
      "Dorado",
      "Fajardo",
      "Florida",
      "Guánica",
      "Guayama",
      "Guayanilla",
      "Guaynabo",
      "Guaynabo",
      "Gurabo",
      "Hatillo",
      "Hormigueros",
      "Humacao",
      "Isabela",
      "Jayuya",
      "Juana Díaz",
      "Juncos",
      "Lajas",
      "Lares",
      "Las Marías",
      "Las Piedras",
      "Loíza",
      "Luquillo",
      "Manatí",
      "Maricao",
      "Maunabo",
      "Mayagüez",
      "Mayagüez",
      "Moca",
      "Morovis",
      "Naguabo",
      "Naranjito",
      "Orocovis",
      "Patillas",
      "Peñuelas",
      "Ponce",
      "Ponce",
      "Quebradillas",
      "Rincón",
      "Río Grande",
      "Sabana Grande",
      "Salinas",
      "San Germán",
      "San Juan",
      "San Juan",
      "San Lorenzo",
      "San Sebastián",
      "Santa Isabel",
      "Toa Alta",
      "Toa Baja",
      "Toa Baja",
      "Trujillo Alto",
      "Trujillo Alto",
      "Utuado",
      "Vega Alta",
      "Vega Baja",
      "Vieques",
      "Villalba",
      "Yabucoa",
      "Yauco",
    ],
  },
  {
    name: "Qatar",
    states: [
      "Al Daayen",
      "Al Khor",
      "Al Rayyan",
      "Al Wakrah",
      "Al-Shahaniya",
      "Doha",
      "Madinat ash Shamal",
      "Umm Salal",
    ],
  },
  {
    name: "Reunion",
    states: ["Saint-Benoît", "Saint-Denis", "Saint-Paul", "Saint-Pierre"],
  },
  {
    name: "Romania",
    states: [
      "Alba",
      "Arad",
      "Arges",
      "Bacău",
      "Bihor",
      "Bistrița-Năsăud",
      "Botoșani",
      "Braila",
      "Brașov",
      "Bucharest",
      "Buzău",
      "Călărași",
      "Caraș-Severin",
      "Cluj",
      "Constanța",
      "Covasna",
      "Dâmbovița",
      "Dolj",
      "Galați",
      "Giurgiu",
      "Gorj",
      "Harghita",
      "Hunedoara",
      "Ialomița",
      "Iași",
      "Ilfov",
      "Maramureș",
      "Mehedinți",
      "Mureș",
      "Neamț",
      "Olt",
      "Prahova",
      "Sălaj",
      "Satu Mare",
      "Sibiu",
      "Suceava",
      "Teleorman",
      "Timiș",
      "Tulcea",
      "Vâlcea",
      "Vaslui",
      "Vrancea",
    ],
  },
  {
    name: "Russia",
    states: [
      "Adygea",
      "Altai",
      "Altai",
      "Amur",
      "Arkhangelsk",
      "Astrakhan",
      "Bashkortostan",
      "Belgorod",
      "Bryansk",
      "Buryatia",
      "Chechen",
      "Chelyabinsk",
      "Chukotka",
      "Chuvash",
      "Dagestan",
      "Ingushetia",
      "Irkutsk",
      "Ivanovo",
      "Jewish",
      "Kabardino-Balkar",
      "Kaliningrad",
      "Kalmykia",
      "Kaluga",
      "Kamchatka",
      "Karachay-Cherkess",
      "Karelia",
      "Kemerovo",
      "Khabarovsk",
      "Khakassia",
      "Khanty-Mansi",
      "Kirov",
      "Komi",
      "Kostroma",
      "Krasnodar",
      "Krasnoyarsk",
      "Kurgan",
      "Kursk",
      "Leningrad",
      "Lipetsk",
      "Magadan",
      "Mari El",
      "Mordovia",
      "Moscow",
      "Moscow",
      "Murmansk",
      "Nenets",
      "Nizhny Novgorod",
      "North Ossetia-Alania",
      "Novgorod",
      "Novosibirsk",
      "Omsk",
      "Orenburg",
      "Oryol",
      "Penza",
      "Perm",
      "Primorsky",
      "Pskov",
      "Rostov",
      "Ryazan",
      "Saint Petersburg",
      "Sakha",
      "Sakhalin",
      "Samara",
      "Saratov",
      "Smolensk",
      "Stavropol",
      "Sverdlovsk",
      "Tambov",
      "Tatarstan",
      "Tomsk",
      "Tula",
      "Tuva",
      "Tver",
      "Tyumen",
      "Udmurt",
      "Ulyanovsk",
      "Vladimir",
      "Volgograd Oblast",
      "Vologda",
      "Voronezh",
      "Yamalo-Nenets",
      "Yaroslavl",
      "Zabaykalsky",
    ],
  },
  {
    name: "Rwanda",
    states: ["Eastern", "Kigali", "Northern", "Southern", "Western"],
  },
  {
    name: "Saint Helena",
    states: [
      "Alarm Forest",
      "Blue Hill",
      "Half Tree Hollow",
      "Jamestown",
      "Levelwood",
      "Longwood",
      "Saint Paul's",
      "Sandy Bay",
    ],
  },
  {
    name: "Saint Kitts and Nevis",
    states: [
      "Christ Church Nichola Town",
      "Nevis",
      "Saint Anne Sandy Point",
      "Saint George Basseterre",
      "Saint George Gingerland",
      "Saint James Windward",
      "Saint John Capisterre",
      "Saint John Figtree",
      "Saint Kitts",
      "Saint Mary Cayon",
      "Saint Paul Capisterre",
      "Saint Paul Charlestown",
      "Saint Peter Basseterre",
      "Saint Thomas Lowland",
      "Saint Thomas Middle Island",
      "Trinity Palmetto Point",
    ],
  },
  {
    name: "Saint Lucia",
    states: [
      "Anse la Raye",
      "Canaries",
      "Castries",
      "Choiseul",
      "Dauphin",
      "Dennery",
      "Gros Islet",
      "Laborie",
      "Micoud",
      "Praslin",
      "Soufrière",
      "Vieux Fort",
    ],
  },
  {
    name: "Saint Pierre and Miquelon",
    states: [],
  },
  {
    name: "Saint Vincent and the Grenadines",
    states: [
      "Charlotte",
      "Grenadines",
      "Saint Andrew",
      "Saint David",
      "Saint George",
      "Saint Patrick",
    ],
  },
  {
    name: "Saint-Barthelemy",
    states: [],
  },
  {
    name: "Saint-Martin (French part)",
    states: [],
  },
  {
    name: "Samoa",
    states: [
      "A'ana",
      "Aiga-i-le-Tai",
      "Atua",
      "Fa'asaleleaga",
      "Gaga'emauga",
      "Gaga'ifomauga",
      "Palauli",
      "Satupa'itea",
      "Tuamasaga",
      "Va'a-o-Fonoti",
      "Vaisigano",
    ],
  },
  {
    name: "San Marino",
    states: [
      "Acquaviva",
      "Borgo Maggiore",
      "Chiesanuova",
      "Domagnano",
      "Faetano",
      "Fiorentino",
      "Montegiardino",
      "San Marino",
      "Serravalle",
    ],
  },
  {
    name: "Sao Tome and Principe",
    states: ["Príncipe", "São Tomé"],
  },
  {
    name: "Saudi Arabia",
    states: [
      "'Asir",
      "Al Bahah",
      "Al Jawf",
      "Al Madinah",
      "Al-Qassim",
      "Eastern Province",
      "Ha'il",
      "Jizan",
      "Makkah",
      "Najran",
      "Northern Borders",
      "Riyadh",
      "Tabuk",
    ],
  },
  {
    name: "Senegal",
    states: [
      "Dakar",
      "Diourbel Region",
      "Fatick",
      "Kaffrine",
      "Kaolack",
      "Kédougou",
      "Kolda",
      "Louga",
      "Matam",
      "Saint-Louis",
      "Sédhiou",
      "Tambacounda Region",
      "Thiès Region",
      "Ziguinchor",
    ],
  },
  {
    name: "Serbia",
    states: [
      "Belgrade",
      "Bor",
      "Braničevo",
      "Central Banat",
      "Jablanica",
      "Kolubara",
      "Mačva",
      "Moravica",
      "Nišava",
      "North Bačka",
      "North Banat",
      "Pčinja",
      "Pirot",
      "Podunavlje",
      "Pomoravlje",
      "Rasina",
      "Raška",
      "South Bačka",
      "South Banat",
      "Srem",
      "Šumadija",
      "Toplica",
      "Vojvodina",
      "West Bačka",
      "Zaječar",
      "Zlatibor",
    ],
  },
  {
    name: "Seychelles",
    states: [
      "Anse Boileau",
      "Anse Royale",
      "Anse-aux-Pins",
      "Au Cap",
      "Baie Lazare",
      "Baie Sainte Anne",
      "Beau Vallon",
      "Bel Air",
      "Bel Ombre",
      "Cascade",
      "Glacis",
      "Grand'Anse Mahé",
      "Grand'Anse Praslin",
      "La Digue",
      "La Rivière Anglaise",
      "Les Mamelles",
      "Mont Buxton",
      "Mont Fleuri",
      "Plaisance",
      "Pointe La Rue",
      "Port Glaud",
      "Roche Caiman",
      "Saint Louis",
      "Takamaka",
    ],
  },
  {
    name: "Sierra Leone",
    states: ["Eastern", "Northern", "Southern", "Western"],
  },
  {
    name: "Singapore",
    states: [
      "Central Singapore",
      "North East",
      "North West",
      "South East",
      "South West",
    ],
  },
  {
    name: "Sint Maarten (Dutch part)",
    states: [],
  },
  {
    name: "Slovakia",
    states: [
      "Banská Bystrica",
      "Bratislava",
      "Košice",
      "Nitra",
      "Prešov",
      "Trenčín",
      "Trnava",
      "Žilina",
    ],
  },
  {
    name: "Slovenia",
    states: [
      "Ajdovščina",
      "Ankaran",
      "Apače",
      "Beltinci",
      "Benedikt",
      "Bistrica ob Sotli",
      "Bled",
      "Bloke",
      "Bohinj",
      "Borovnica",
      "Bovec",
      "Braslovče",
      "Brda",
      "Brežice",
      "Brezovica",
      "Cankova",
      "Celje",
      "Cerklje na Gorenjskem",
      "Cerknica",
      "Cerkno",
      "Cerkvenjak",
      "Cirkulane",
      "Črenšovci",
      "Črna na Koroškem",
      "Črnomelj",
      "Destrnik",
      "Divača",
      "Dobje",
      "Dobrepolje",
      "Dobrna",
      "Dobrova–Polhov Gradec",
      "Dobrovnik",
      "Dol pri Ljubljani",
      "Dolenjske Toplice",
      "Domžale",
      "Dornava",
      "Dravograd",
      "Duplek",
      "Gorenja Vas–Poljane",
      "Gorišnica",
      "Gorje",
      "Gornja Radgona",
      "Gornji Grad",
      "Gornji Petrovci",
      "Grad",
      "Grosuplje",
      "Hajdina",
      "Hoče–Slivnica",
      "Hodoš",
      "Horjul",
      "Hrastnik",
      "Hrpelje–Kozina",
      "Idrija",
      "Ig",
      "Ilirska Bistrica",
      "Ivančna Gorica",
      "Izola",
      "Jesenice",
      "Jezersko",
      "Juršinci",
      "Kamnik",
      "Kanal ob Soči",
      "Kidričevo",
      "Kobarid",
      "Kobilje",
      "Kočevje",
      "Komen",
      "Komenda",
      "Koper",
      "Kostanjevica na Krki",
      "Kostel",
      "Kozje",
      "Kranj",
      "Kranjska Gora",
      "Križevci",
      "Krško",
      "Kungota",
      "Kuzma",
      "Laško",
      "Lenart",
      "Lendava",
      "Litija",
      "Ljubljana",
      "Ljubno",
      "Ljutomer",
      "Log–Dragomer",
      "Logatec",
      "Loška Dolina",
      "Loški Potok",
      "Lovrenc na Pohorju",
      "Luče",
      "Lukovica",
      "Majšperk",
      "Makole",
      "Maribor",
      "Markovci",
      "Medvode",
      "Mengeš",
      "Metlika",
      "Mežica",
      "Miklavž na Dravskem Polju",
      "Miren–Kostanjevica",
      "Mirna",
      "Mirna Peč",
      "Mislinja",
      "Mokronog–Trebelno",
      "Moravče",
      "Moravske Toplice",
      "Mozirje",
      "Murska Sobota",
      "Muta",
      "Naklo",
      "Nazarje",
      "Nova Gorica",
      "Novo Mesto",
      "Odranci",
      "Oplotnica",
      "Ormož",
      "Osilnica",
      "Pesnica",
      "Piran",
      "Pivka",
      "Podčetrtek",
      "Podlehnik",
      "Podvelka",
      "Poljčane",
      "Polzela",
      "Postojna",
      "Prebold",
      "Preddvor",
      "Prevalje",
      "Ptuj",
      "Puconci",
      "Rače–Fram",
      "Radeče",
      "Radenci",
      "Radlje ob Dravi",
      "Radovljica",
      "Ravne na Koroškem",
      "Razkrižje",
      "Rečica ob Savinji",
      "Renče–Vogrsko",
      "Ribnica",
      "Ribnica na Pohorju",
      "Rogaška Slatina",
      "Rogašovci",
      "Rogatec",
      "Ruše",
      "Šalovci",
      "Selnica ob Dravi",
      "Semič",
      "Šempeter–Vrtojba",
      "Šenčur",
      "Šentilj",
      "Šentjernej",
      "Šentjur",
      "Šentrupert",
      "Sevnica",
      "Sežana",
      "Škocjan",
      "Škofja Loka",
      "Škofljica",
      "Slovenj Gradec",
      "Slovenska Bistrica",
      "Slovenske Konjice",
      "Šmarje pri Jelšah",
      "Šmarješke Toplice",
      "Šmartno ob Paki",
      "Šmartno pri Litiji",
      "Sodražica",
      "Solčava",
      "Šoštanj",
      "Središče ob Dravi",
      "Starše",
      "Štore",
      "Straža",
      "Sveta Ana",
      "Sveta Trojica v Slovenskih Goricah",
      "Sveti Andraž v Slovenskih Goricah",
      "Sveti Jurij ob Ščavnici",
      "Sveti Jurij v Slovenskih Goricah",
      "Sveti Tomaž",
      "Tabor",
      "Tišina",
      "Tolmin",
      "Trbovlje",
      "Trebnje",
      "Trnovska Vas",
      "Tržič",
      "Trzin",
      "Turnišče",
      "Velika Polana",
      "Velike Lašče",
      "Veržej",
      "Videm",
      "Vipava",
      "Vitanje",
      "Vodice",
      "Vojnik",
      "Vransko",
      "Vrhnika",
      "Vuzenica",
      "Zagorje ob Savi",
      "Žalec",
      "Zavrč",
      "Železniki",
      "Žetale",
      "Žiri",
      "Žirovnica",
      "Zreče",
      "Žužemberk",
    ],
  },
  {
    name: "Solomon Islands",
    states: [
      "Central",
      "Choiseul",
      "Guadalcanal",
      "Honiara",
      "Isabel",
      "Makira-Ulawa",
      "Malaita",
      "Rennell and Bellona",
      "Temotu",
      "Western",
    ],
  },
  {
    name: "Somalia",
    states: [
      "Awdal",
      "Bakool",
      "Banaadir",
      "Bari",
      "Bay",
      "Galguduud",
      "Gedo",
      "Hiran",
      "Lower Juba",
      "Lower Shebelle",
      "Middle Juba",
      "Middle Shebelle",
      "Mudug",
      "Nugal",
      "Sanaag",
      "Togdheer",
    ],
  },
  {
    name: "South Africa",
    states: [
      "Eastern Cape",
      "Free State",
      "Gauteng",
      "KwaZulu-Natal",
      "Limpopo",
      "Mpumalanga",
      "North West",
      "Northern Cape",
      "Western Cape",
    ],
  },
  {
    name: "South Georgia",
    states: [],
  },
  {
    name: "South Korea",
    states: [
      "Busan",
      "Daegu",
      "Daejeon",
      "Gangwon",
      "Gwangju",
      "Gyeonggi",
      "Incheon",
      "Jeju",
      "North Chungcheong",
      "North Gyeongsang",
      "North Jeolla",
      "Sejong City",
      "Seoul",
      "South Chungcheong",
      "South Gyeongsang",
      "South Jeolla",
      "Ulsan",
    ],
  },
  {
    name: "South Sudan",
    states: [
      "Central Equatoria",
      "Eastern Equatoria",
      "Jonglei State",
      "Lakes",
      "Northern Bahr el Ghazal",
      "Unity",
      "Upper Nile",
      "Warrap",
      "Western Bahr el Ghazal",
      "Western Equatoria",
    ],
  },
  {
    name: "Spain",
    states: [
      "A Coruña",
      "Albacete",
      "Alicante",
      "Almeria",
      "Andalusia",
      "Araba",
      "Aragon",
      "Asturias",
      "Asturias",
      "Ávila",
      "Badajoz",
      "Balearic Islands",
      "Barcelona",
      "Basque Country",
      "Bizkaia",
      "Burgos",
      "Caceres",
      "Cádiz",
      "Canary Islands",
      "Cantabria",
      "Cantabria",
      "Castellón",
      "Castile and Leon",
      "Castilla-La Mancha",
      "Catalonia",
      "Ceuta",
      "Ciudad Real",
      "Community of Madrid",
      "Córdoba",
      "Cuenca",
      "Estremadura",
      "Galicia",
      "Gipuzkoa",
      "Girona",
      "Granada",
      "Guadalajara",
      "Huelva",
      "Huesca",
      "Islas Baleares",
      "Jaén",
      "La Rioja",
      "La Rioja",
      "Las Palmas",
      "León",
      "Lleida",
      "Lugo",
      "Madrid",
      "Málaga",
      "Melilla",
      "Murcia",
      "Navarra",
      "Navarre",
      "Ourense",
      "Palencia",
      "Pontevedra",
      "Region of Murcia",
      "Salamanca",
      "Santa Cruz de Tenerife",
      "Segovia",
      "Sevilla",
      "Soria",
      "Tarragona",
      "Teruel",
      "Toledo",
      "Valencia",
      "Valencian Community",
      "Valladolid",
      "Zamora",
      "Zaragoza",
    ],
  },
  {
    name: "Sri Lanka",
    states: [
      "Ampara",
      "Anuradhapura",
      "Badulla",
      "Batticaloa",
      "Central",
      "Colombo",
      "Eastern",
      "Galle",
      "Gampaha",
      "Hambantota",
      "Jaffna",
      "Kalutara",
      "Kandy",
      "Kegalle",
      "Kilinochchi",
      "Kurunegala",
      "Mannar",
      "Matale",
      "Matara",
      "Monaragala",
      "Mullaitivu",
      "North Central",
      "North Western",
      "Northern",
      "Nuwara Eliya",
      "Polonnaruwa",
      "Puttalam",
      "Ratnapura",
      "Sabaragamuwa",
      "Southern",
      "Trincomalee",
      "Uva",
      "Vavuniya",
      "Western",
    ],
  },
  {
    name: "Sudan",
    states: [
      "Al Jazirah",
      "Al Qadarif",
      "Blue Nile",
      "Central Darfur",
      "East Darfur",
      "Kassala",
      "Khartoum",
      "North Darfur",
      "North Kordofan",
      "Northern",
      "Red Sea",
      "River Nile",
      "Sennar",
      "South Darfur",
      "South Kordofan",
      "West Darfur",
      "West Kordofan",
      "White Nile",
    ],
  },
  {
    name: "Suriname",
    states: [
      "Brokopondo",
      "Commewijne",
      "Coronie",
      "Marowijne",
      "Nickerie",
      "Para",
      "Paramaribo",
      "Saramacca",
      "Sipaliwini",
      "Wanica",
    ],
  },
  {
    name: "Svalbard and Jan Mayen Islands",
    states: [],
  },
  {
    name: "Sweden",
    states: [
      "Blekinge",
      "Dalarna",
      "Gävleborg",
      "Gotland",
      "Halland",
      "Jämtland",
      "Jönköping",
      "Kalmar",
      "Kronoberg",
      "Norrbotten",
      "Örebro",
      "Östergötland",
      "Skåne",
      "Södermanland",
      "Stockholm",
      "Uppsala",
      "Värmland",
      "Västerbotten",
      "Västernorrland",
      "Västmanland",
      "Västra Götaland",
    ],
  },
  {
    name: "Switzerland",
    states: [
      "Aargau",
      "Appenzell Ausserrhoden",
      "Appenzell Innerrhoden",
      "Basel-Land",
      "Basel-Stadt",
      "Bern",
      "Fribourg",
      "Geneva",
      "Glarus",
      "Graubünden",
      "Jura",
      "Lucerne",
      "Neuchâtel",
      "Nidwalden",
      "Obwalden",
      "Schaffhausen",
      "Schwyz",
      "Solothurn",
      "St. Gallen",
      "Thurgau",
      "Ticino",
      "Uri",
      "Valais",
      "Vaud",
      "Zug",
      "Zürich",
    ],
  },
  {
    name: "Syria",
    states: [
      "Al-Hasakah",
      "Al-Raqqah",
      "Aleppo",
      "As-Suwayda",
      "Damascus",
      "Daraa",
      "Deir ez-Zor",
      "Hama",
      "Homs",
      "Idlib",
      "Latakia",
      "Quneitra",
      "Rif Dimashq",
      "Tartus",
    ],
  },
  {
    name: "Taiwan",
    states: [
      "Changhua",
      "Chiayi",
      "Chiayi",
      "Hsinchu",
      "Hsinchu",
      "Hualien",
      "Kaohsiung",
      "Keelung",
      "Kinmen",
      "Lienchiang",
      "Miaoli",
      "Nantou",
      "New Taipei",
      "Penghu",
      "Pingtung",
      "Taichung",
      "Tainan",
      "Taipei",
      "Taitung",
      "Taoyuan",
      "Yilan",
      "Yunlin",
    ],
  },
  {
    name: "Tajikistan",
    states: [
      "Gorno-Badakhshan",
      "Khatlon",
      "Nohiyahoi Tobei Jumhurí ",
      "Sughd ",
    ],
  },
  {
    name: "Tanzania",
    states: [
      "Arusha",
      "Dar es Salaam",
      "Dodoma",
      "Geita",
      "Iringa",
      "Kagera",
      "Katavi",
      "Kigoma",
      "Kilimanjaro",
      "Lindi",
      "Manyara",
      "Mara",
      "Mbeya",
      "Morogoro",
      "Mtwara",
      "Mwanza",
      "Njombe",
      "Pemba North",
      "Pemba South",
      "Pwani",
      "Rukwa",
      "Ruvuma",
      "Shinyanga",
      "Simiyu",
      "Singida",
      "Songwe",
      "Tabora",
      "Tanga",
      "Zanzibar North",
      "Zanzibar South",
      "Zanzibar West",
    ],
  },
  {
    name: "Thailand",
    states: [
      "Amnat Charoen",
      "Ang Thong",
      "Bangkok",
      "Bueng Kan",
      "Buri Ram",
      "Chachoengsao",
      "Chai Nat",
      "Chaiyaphum",
      "Chanthaburi",
      "Chiang Mai",
      "Chiang Rai",
      "Chon Buri",
      "Chumphon",
      "Kalasin",
      "Kamphaeng Phet",
      "Kanchanaburi",
      "Khon Kaen",
      "Krabi",
      "Lampang",
      "Lamphun",
      "Loei",
      "Lop Buri",
      "Mae Hong Son",
      "Maha Sarakham",
      "Mukdahan",
      "Nakhon Nayok",
      "Nakhon Pathom",
      "Nakhon Phanom",
      "Nakhon Ratchasima",
      "Nakhon Sawan",
      "Nakhon Si Thammarat",
      "Nan",
      "Narathiwat",
      "Nong Bua Lam Phu",
      "Nong Khai",
      "Nonthaburi",
      "Pathum Thani",
      "Pattani",
      "Pattaya",
      "Phangnga",
      "Phatthalung",
      "Phayao",
      "Phetchabun",
      "Phetchaburi",
      "Phichit",
      "Phitsanulok",
      "Phra Nakhon Si Ayutthaya",
      "Phrae",
      "Phuket",
      "Prachin Buri",
      "Prachuap Khiri Khan",
      "Ranong",
      "Ratchaburi",
      "Rayong",
      "Roi Et",
      "Sa Kaeo",
      "Sakon Nakhon",
      "Samut Prakan",
      "Samut Sakhon",
      "Samut Songkhram",
      "Saraburi",
      "Satun",
      "Si Sa Ket",
      "Sing Buri",
      "Songkhla",
      "Sukhothai",
      "Suphan Buri",
      "Surat Thani",
      "Surin",
      "Tak",
      "Trang",
      "Trat",
      "Ubon Ratchathani",
      "Udon Thani",
      "Uthai Thani",
      "Uttaradit",
      "Yala",
      "Yasothon",
    ],
  },
  {
    name: "The Bahamas",
    states: [
      "Acklins",
      "Acklins and Crooked Islands",
      "Berry Islands",
      "Bimini",
      "Black Point",
      "Cat Island",
      "Central Abaco",
      "Central Andros",
      "Central Eleuthera",
      "Crooked Island",
      "East Grand Bahama",
      "Exuma",
      "Freeport",
      "Fresh Creek",
      "Governor's Harbour",
      "Grand Cay",
      "Green Turtle Cay",
      "Harbour Island",
      "High Rock",
      "Hope Town",
      "Inagua",
      "Kemps Bay",
      "Long Island",
      "Mangrove Cay",
      "Marsh Harbour",
      "Mayaguana",
      "New Providence",
      "Nichollstown and Berry Islands",
      "North Abaco",
      "North Andros",
      "North Eleuthera",
      "Ragged Island",
      "Rock Sound",
      "Rum Cay",
      "San Salvador and Rum Cay",
      "San Salvador Island",
      "Sandy Point",
      "South Abaco",
      "South Andros",
      "South Eleuthera",
      "Spanish Wells",
      "West Grand Bahama",
    ],
  },
  {
    name: "The Gambia ",
    states: [
      "Banjul",
      "Central River",
      "Lower River",
      "North Bank",
      "Upper River",
      "West Coast",
    ],
  },
  {
    name: "Timor-Leste",
    states: [
      "Aileu",
      "Ainaro",
      "Baucau",
      "Bobonaro",
      "Cova Lima",
      "Dili",
      "Ermera",
      "Lautém",
      "Liquiçá",
      "Manatuto",
      "Manufahi",
      "Viqueque",
    ],
  },
  {
    name: "Togo",
    states: ["Centrale", "Kara", "Maritime", "Plateaux", "Savanes"],
  },
  {
    name: "Tokelau",
    states: [],
  },
  {
    name: "Tonga",
    states: ["Haʻapai", "ʻEua", "Niuas", "Tongatapu", "Vavaʻu"],
  },
  {
    name: "Trinidad and Tobago",
    states: [
      "Arima",
      "Chaguanas",
      "Couva-Tabaquite-Talparo",
      "Diego Martin",
      "Eastern Tobago",
      "Penal-Debe",
      "Point Fortin",
      "Port of Spain",
      "Princes Town",
      "Rio Claro-Mayaro",
      "San Fernando",
      "San Juan-Laventille",
      "Sangre Grande",
      "Siparia",
      "Tunapuna-Piarco",
      "Western Tobago",
    ],
  },
  {
    name: "Tunisia",
    states: [
      "Ariana",
      "Béja",
      "Ben Arous",
      "Bizerte",
      "Gabès",
      "Gafsa",
      "Jendouba",
      "Kairouan",
      "Kasserine",
      "Kebili",
      "Kef",
      "Mahdia",
      "Manouba",
      "Medenine",
      "Monastir",
      "Nabeul",
      "Sfax",
      "Sidi Bouzid",
      "Siliana",
      "Sousse",
      "Tataouine",
      "Tozeur",
      "Tunis",
      "Zaghouan",
    ],
  },
  {
    name: "Turkey",
    states: [
      "Adana",
      "Adıyaman",
      "Afyonkarahisar",
      "Ağrı",
      "Aksaray",
      "Amasya",
      "Ankara",
      "Antalya",
      "Ardahan",
      "Artvin",
      "Aydın",
      "Balıkesir",
      "Bartın",
      "Batman",
      "Bayburt",
      "Bilecik",
      "Bingöl",
      "Bitlis",
      "Bolu",
      "Burdur",
      "Bursa",
      "Çanakkale",
      "Çankırı",
      "Çorum",
      "Denizli",
      "Diyarbakır",
      "Düzce",
      "Edirne",
      "Elazığ",
      "Erzincan",
      "Erzurum",
      "Eskişehir",
      "Gaziantep",
      "Giresun",
      "Gümüşhane",
      "Hakkâri",
      "Hatay",
      "Iğdır",
      "Isparta",
      "İstanbul",
      "İzmir",
      "Kahramanmaraş",
      "Karabük",
      "Karaman",
      "Kars",
      "Kastamonu",
      "Kayseri",
      "Kilis",
      "Kırıkkale",
      "Kırklareli",
      "Kırşehir",
      "Kocaeli",
      "Konya",
      "Kütahya",
      "Malatya",
      "Manisa",
      "Mardin",
      "Mersin",
      "Muğla",
      "Muş",
      "Nevşehir",
      "Niğde",
      "Ordu",
      "Osmaniye",
      "Rize",
      "Sakarya",
      "Samsun",
      "Şanlıurfa",
      "Siirt",
      "Sinop",
      "Sivas",
      "Şırnak",
      "Tekirdağ",
      "Tokat",
      "Trabzon",
      "Tunceli",
      "Uşak",
      "Van",
      "Yalova",
      "Yozgat",
      "Zonguldak",
    ],
  },
  {
    name: "Turkmenistan",
    states: ["Ahal", "Ashgabat", "Balkan", "Daşoguz", "Lebap", "Mary"],
  },
  {
    name: "Turks and Caicos Islands",
    states: [
      "Grand Turk",
      "Middle Caicos",
      "North Caicos",
      "Providenciales",
      "Salt Cay",
      "South Caicos",
    ],
  },
  {
    name: "Tuvalu",
    states: [
      "Funafuti",
      "Nanumanga",
      "Nanumea",
      "Niutao Island Council",
      "Nui",
      "Nukufetau",
      "Nukulaelae",
      "Vaitupu",
    ],
  },
  {
    name: "Uganda",
    states: [
      "Abim",
      "Adjumani",
      "Agago",
      "Alebtong",
      "Amolatar",
      "Amudat",
      "Amuria",
      "Amuru",
      "Apac",
      "Arua",
      "Budaka",
      "Bududa",
      "Bugiri",
      "Bugweri",
      "Buhweju",
      "Buikwe",
      "Bukedea",
      "Bukomansimbi",
      "Bukwo",
      "Bulambuli",
      "Buliisa",
      "Bundibugyo",
      "Bunyangabu",
      "Bushenyi",
      "Busia",
      "Butaleja",
      "Butambala",
      "Butebo",
      "Buvuma",
      "Buyende",
      "Central",
      "Dokolo",
      "Eastern",
      "Gomba",
      "Gulu",
      "Hoima",
      "Ibanda",
      "Iganga",
      "Isingiro",
      "Jinja",
      "Kaabong",
      "Kabale",
      "Kabarole",
      "Kaberamaido",
      "Kagadi",
      "Kakumiro",
      "Kalaki",
      "Kalangala",
      "Kaliro",
      "Kalungu",
      "Kampala",
      "Kamuli",
      "Kamwenge",
      "Kanungu",
      "Kapchorwa",
      "Kapelebyong",
      "Karenga",
      "Kasanda",
      "Kasese",
      "Katakwi",
      "Kayunga",
      "Kazo",
      "Kibaale",
      "Kiboga",
      "Kibuku",
      "Kikuube",
      "Kiruhura",
      "Kiryandongo",
      "Kisoro",
      "Kitagwenda",
      "Kitgum",
      "Koboko",
      "Kole",
      "Kotido",
      "Kumi",
      "Kwania",
      "Kween",
      "Kyankwanzi",
      "Kyegegwa",
      "Kyenjojo",
      "Kyotera",
      "Lamwo",
      "Lira",
      "Luuka",
      "Luwero",
      "Lwengo",
      "Lyantonde",
      "Madi-Okollo",
      "Manafwa",
      "Maracha",
      "Masaka",
      "Masindi",
      "Mayuge",
      "Mbale",
      "Mbarara",
      "Mitooma",
      "Mityana",
      "Moroto",
      "Moyo",
      "Mpigi",
      "Mubende",
      "Mukono",
      "Nabilatuk",
      "Nakapiripirit",
      "Nakaseke",
      "Nakasongola",
      "Namayingo",
      "Namisindwa",
      "Namutumba",
      "Napak",
      "Nebbi",
      "Ngora",
      "Northern",
      "Ntoroko",
      "Ntungamo",
      "Nwoya",
      "Obongi",
      "Omoro",
      "Otuke",
      "Oyam",
      "Pader",
      "Pakwach",
      "Pallisa",
      "Rakai",
      "Rubanda",
      "Rubirizi",
      "Rukiga",
      "Rukungiri",
      "Rwampara",
      "Sembabule",
      "Serere",
      "Sheema",
      "Sironko",
      "Soroti",
      "Tororo",
      "Wakiso",
      "Western",
      "Yumbe",
      "Zombo",
    ],
  },
  {
    name: "Ukraine",
    states: [
      "Autonomous Republic of Crimea",
      "Cherkaska",
      "Chernihivska",
      "Chernivetska",
      "Dnipropetrovska",
      "Donetska",
      "Ivano-Frankivska",
      "Kharkivska",
      "Khersonska",
      "Khmelnytska",
      "Kirovohradska",
      "Kyiv",
      "Kyivska",
      "Luhanska",
      "Lvivska",
      "Mykolaivska",
      "Odeska",
      "Poltavska",
      "Rivnenska",
      "Sevastopol",
      "Sumska",
      "Ternopilska",
      "Vinnytska",
      "Volynska",
      "Zakarpatska",
      "Zaporizka",
      "Zhytomyrska",
    ],
  },
  {
    name: "United Arab Emirates",
    states: [
      "Abu Dhabi",
      "Ajman",
      "Dubai",
      "Fujairah",
      "Ras Al Khaimah",
      "Sharjah",
      "Umm Al Quwain",
    ],
  },
  {
    name: "United Kingdom",
    states: [
      "Aberdeen",
      "Aberdeenshire",
      "Angus",
      "Antrim",
      "Antrim and Newtownabbey",
      "Ards",
      "Ards and North Down",
      "Argyll and Bute",
      "Armagh",
      "Armagh, Banbridge and Craigavon",
      "Ascension Island",
      "Ballymena",
      "Ballymoney",
      "Banbridge",
      "Barking and Dagenham",
      "Barnet",
      "Barnsley",
      "Bath and North East Somerset",
      "Bedford",
      "Belfast",
      "Bexley",
      "Birmingham",
      "Blackburn with Darwen",
      "Blackpool",
      "Blaenau Gwent",
      "Bolton",
      "Bournemouth",
      "Bracknell Forest",
      "Bradford",
      "Brent",
      "Bridgend",
      "Brighton and Hove",
      "Bristol",
      "Bromley",
      "Buckinghamshire",
      "Bury",
      "Caerphilly",
      "Calderdale",
      "Cambridgeshire",
      "Camden",
      "Cardiff",
      "Carmarthenshire",
      "Carrickfergus",
      "Castlereagh",
      "Causeway Coast and Glens",
      "Central Bedfordshire",
      "Ceredigion",
      "Cheshire East",
      "Cheshire West and Chester",
      "City of Kingston upon Hull",
      "City of Southampton",
      "Clackmannanshire",
      "Coleraine",
      "Conwy",
      "Cookstown",
      "Cornwall",
      "Coventry",
      "Craigavon",
      "Croydon",
      "Cumbria",
      "Darlington",
      "Denbighshire",
      "Derby",
      "Derbyshire",
      "Derry",
      "Derry City and Strabane",
      "Devon",
      "Doncaster",
      "Dorset",
      "Down District Council",
      "Dudley",
      "Dumfries and Galloway",
      "Dundee",
      "Dungannon and South Tyrone",
      "Durham",
      "Ealing",
      "East Ayrshire",
      "East Dunbartonshire",
      "East Lothian",
      "East Renfrewshire",
      "East Riding of Yorkshire",
      "East Sussex",
      "Edinburgh",
      "Enfield",
      "England",
      "Essex",
      "Falkirk",
      "Fermanagh",
      "Fermanagh and Omagh",
      "Fife",
      "Flintshire",
      "Gateshead",
      "Glasgow",
      "Gloucestershire",
      "Greenwich",
      "Gwynedd",
      "Hackney",
      "Halton",
      "Hammersmith and Fulham",
      "Hampshire",
      "Haringey",
      "Harrow",
      "Hartlepool",
      "Havering",
      "Herefordshire",
      "Hertfordshire",
      "Highland",
      "Hillingdon",
      "Hounslow",
      "Inverclyde",
      "Isle of Wight",
      "Isles of Scilly",
      "Islington",
      "Kensington and Chelsea",
      "Kent",
      "Kingston upon Thames",
      "Kirklees",
      "Knowsley",
      "Lambeth",
      "Lancashire",
      "Larne",
      "Leeds",
      "Leicester",
      "Leicestershire",
      "Lewisham",
      "Limavady",
      "Lincolnshire",
      "Lisburn",
      "Lisburn and Castlereagh",
      "Liverpool",
      "London",
      "Magherafelt",
      "Manchester",
      "Medway",
      "Merthyr Tydfil",
      "Merton",
      "Mid and East Antrim",
      "Mid Ulster",
      "Middlesbrough",
      "Midlothian",
      "Milton Keynes",
      "Monmouthshire",
      "Moray",
      "Moyle",
      "Neath Port Talbot",
      "Newcastle upon Tyne",
      "Newham",
      "Newport",
      "Newry and Mourne",
      "Newry, Mourne and Down",
      "Newtownabbey",
      "Norfolk",
      "North Ayrshire",
      "North Down",
      "North East Lincolnshire",
      "North Lanarkshire",
      "North Lincolnshire",
      "North Somerset",
      "North Tyneside",
      "North Yorkshire",
      "Northamptonshire",
      "Northern Ireland",
      "Northumberland",
      "Nottingham",
      "Nottinghamshire",
      "Oldham",
      "Omagh",
      "Orkney Islands",
      "Outer Hebrides",
      "Oxfordshire",
      "Pembrokeshire",
      "Perth and Kinross",
      "Peterborough",
      "Plymouth",
      "Poole",
      "Portsmouth",
      "Powys",
      "Reading",
      "Redbridge",
      "Redcar and Cleveland",
      "Renfrewshire",
      "Rhondda Cynon Taf",
      "Richmond upon Thames",
      "Rochdale",
      "Rotherham",
      "Rutland",
      "Saint Helena",
      "Salford",
      "Sandwell",
      "Scotland",
      "Scottish Borders",
      "Sefton",
      "Sheffield",
      "Shetland Islands",
      "Shropshire",
      "Slough",
      "Solihull",
      "Somerset",
      "South Ayrshire",
      "South Gloucestershire",
      "South Lanarkshire",
      "South Tyneside",
      "Southend-on-Sea",
      "Southwark",
      "St Helens",
      "Staffordshire",
      "Stirling",
      "Stockport",
      "Stockton-on-Tees",
      "Stoke-on-Trent",
      "Strabane",
      "Suffolk",
      "Sunderland",
      "Surrey",
      "Sutton",
      "Swansea",
      "Swindon",
      "Tameside",
      "Telford and Wrekin",
      "Thurrock",
      "Torbay",
      "Torfaen",
      "Tower Hamlets",
      "Trafford",
      "United Kingdom",
      "Vale of Glamorgan",
      "Wakefield",
      "Wales",
      "Walsall",
      "Waltham Forest",
      "Wandsworth",
      "Warrington",
      "Warwickshire",
      "West Berkshire",
      "West Dunbartonshire",
      "West Lothian",
      "West Sussex",
      "Westminster",
      "Wigan",
      "Wiltshire",
      "Windsor and Maidenhead",
      "Wirral",
      "Wokingham",
      "Wolverhampton",
      "Worcestershire",
      "Wrexham",
      "York",
    ],
  },
  {
    name: "United States",
    states: [
      "Alabama",
      "Alaska",
      "American Samoa",
      "Arizona",
      "Arkansas",
      "California",
      "Colorado",
      "Connecticut",
      "Delaware",
      "District of Columbia",
      "Florida",
      "Georgia",
      "Guam",
      "Hawaii",
      "Idaho",
      "Illinois",
      "Indiana",
      "Iowa",
      "Kansas",
      "Kentucky",
      "Louisiana",
      "Maine",
      "Maryland",
      "Massachusetts",
      "Michigan",
      "Minnesota",
      "Mississippi",
      "Missouri",
      "Montana",
      "Nebraska",
      "Nevada",
      "New Hampshire",
      "New Jersey",
      "New Mexico",
      "New York",
      "North Carolina",
      "North Dakota",
      "Northern Mariana Islands",
      "Ohio",
      "Oklahoma",
      "Oregon",
      "Pennsylvania",
      "Puerto Rico",
      "Rhode Island",
      "South Carolina",
      "South Dakota",
      "Tennessee",
      "Texas",
      "United States Minor Outlying Islands",
      "United States Virgin Islands",
      "Utah",
      "Vermont",
      "Virginia",
      "Washington",
      "West Virginia",
      "Wisconsin",
      "Wyoming",
    ],
  },
  {
    name: "United States Minor Outlying Islands",
    states: [
      "Baker Island",
      "Howland Island",
      "Jarvis Island",
      "Johnston Atoll",
      "Kingman Reef",
      "Midway Islands",
      "Navassa Island",
      "Palmyra Atoll",
      "Wake Island",
    ],
  },
  {
    name: "Uruguay",
    states: [
      "Artigas",
      "Canelones",
      "Cerro Largo",
      "Colonia",
      "Durazno",
      "Flores",
      "Florida",
      "Lavalleja",
      "Maldonado",
      "Montevideo",
      "Paysandú",
      "Río Negro",
      "Rivera",
      "Rocha",
      "Salto",
      "San José",
      "Soriano",
      "Tacuarembó",
      "Treinta y Tres",
    ],
  },
  {
    name: "Uzbekistan",
    states: [
      "Andijan",
      "Bukhara",
      "Fergana",
      "Jizzakh",
      "Karakalpakstan",
      "Namangan",
      "Navoiy",
      "Qashqadaryo",
      "Samarqand",
      "Sirdaryo",
      "Surxondaryo",
      "Tashkent",
      "Tashkent",
      "Xorazm",
    ],
  },
  {
    name: "Vanuatu",
    states: ["Malampa", "Penama", "Sanma", "Shefa", "Tafea", "Torba"],
  },
  {
    name: "Vatican City State (Holy See)",
    states: [],
  },
  {
    name: "Venezuela",
    states: [
      "Amazonas",
      "Anzoátegui",
      "Apure",
      "Aragua",
      "Barinas",
      "Bolívar",
      "Carabobo",
      "Cojedes",
      "Delta Amacuro",
      "Distrito Capital",
      "Falcón",
      "Guárico",
      "La Guaira",
      "Lara",
      "Mérida",
      "Miranda",
      "Monagas",
      "Nueva Esparta",
      "Portuguesa",
      "Sucre",
      "Táchira",
      "Trujillo",
      "Venezuela",
      "Yaracuy",
      "Zulia",
    ],
  },
  {
    name: "Vietnam",
    states: [
      "An Giang",
      "Bắc Ninh",
      "Cà Mau",
      "Cần Thơ",
      "Cao Bằng",
      "Đà Nẵng",
      "Đắk Lắk",
      "Điện Biên",
      "Đồng Nai",
      "Đồng Tháp",
      "Gia Lai",
      "Hà Nội",
      "Hà Tĩnh",
      "Hải Phòng",
      "Hồ Chí Minh",
      "Hưng Yên",
      "Khánh Hòa",
      "Lai Châu",
      "Lâm Đồng",
      "Lạng Sơn",
      "Lào Cai",
      "Nghệ An",
      "Ninh Bình",
      "Phú Thọ",
      "Quảng Ngãi",
      "Quảng Ninh",
      "Quảng Trị",
      "Sơn La",
      "Tây Ninh",
      "Thái Nguyên",
      "Thanh Hóa",
      "Thừa Thiên-Huế",
      "Tuyên Quang",
      "Vĩnh Long",
    ],
  },
  {
    name: "Virgin Islands (British)",
    states: [],
  },
  {
    name: "Virgin Islands (US)",
    states: ["Saint Croix", "Saint John", "Saint Thomas"],
  },
  {
    name: "Wallis and Futuna Islands",
    states: [],
  },
  {
    name: "Western Sahara",
    states: [],
  },
  {
    name: "Yemen",
    states: [
      "'Adan",
      "'Amran",
      "Abyan",
      "Al Bayda'",
      "Al Hudaydah",
      "Al Jawf",
      "Al Mahrah",
      "Al Mahwit",
      "Amanat Al Asimah",
      "Dhamar",
      "Hadhramaut",
      "Hajjah",
      "Ibb",
      "Lahij",
      "Ma'rib",
      "Raymah",
      "Saada",
      "Sana'a",
      "Shabwah",
      "Socotra",
      "Ta'izz",
    ],
  },
  {
    name: "Zambia",
    states: [
      "Central",
      "Copperbelt",
      "Eastern",
      "Luapula",
      "Lusaka",
      "Muchinga",
      "Northern",
      "Northwestern",
      "Southern",
      "Western",
    ],
  },
  {
    name: "Zimbabwe",
    states: [
      "Bulawayo",
      "Harare",
      "Manicaland",
      "Mashonaland Central",
      "Mashonaland East",
      "Mashonaland West",
      "Masvingo",
      "Matabeleland North",
      "Matabeleland South",
      "Midlands",
    ],
  },
];

React Query Snippets for CRUD

// hooks/use-church-mutations.ts
"use client";
 
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import {
  createSubdomainAction,
  deleteChurchAction,
} from "@/actions/sub-domain";
import { getAllChurches, getSubdomainData } from "@/lib/subdomains";
 
export function useCreateChurch() {
  const queryClient = useQueryClient();
  return useMutation({
    mutationFn: createSubdomainAction,
    onSuccess: () => {
      queryClient.invalidateQueries({
        queryKey: ["churches"],
      });
    },
    onError: (error: any) => {
      console.error("Mutation error:", error);
    },
  });
}
 
export function useSubdomainData(subdomain: string) {
  return useQuery({
    queryKey: ["subdomain", subdomain],
    queryFn: () => getSubdomainData(subdomain),
    enabled: !!subdomain, // Only run if subdomain exists
    retry: 1, // Retry once on failure
    staleTime: 5 * 60 * 1000, // 5 minutes
  });
}
export function useChurchesData() {
  return useQuery({
    queryKey: ["churches"],
    queryFn: () => getAllChurches(),
    retry: 1, // Retry once on failure
    staleTime: 5 * 60 * 1000, // 5 minutes
  });
}
 
export function useDeleteChurch() {
  const queryClient = useQueryClient();
 
  return useMutation({
    mutationFn: deleteChurchAction,
    onSuccess: () => {
      queryClient.invalidateQueries({ queryKey: ["churches"] });
    },
    onError: (error: any) => {
      console.error("Delete church error:", error);
    },
  });
}

Key Benefits:

  • Reusable header component for consistent branding
  • Configurable company information
  • Professional styling with React-PDF
  • Type-safe props interface

Installation Commands

For the snippets above, you'll need these dependencies:

# CORS and basic Next.js functionality (built-in)
npm install next
 
# Prisma with Accelerate
npm install prisma @prisma/client @prisma/extension-accelerate
npx prisma init
 
# UploadThing
npm install uploadthing @uploadthing/react
 
# Excel export
npm install xlsx
npm install --save-dev @types/xlsx
 
# PDF generation
npm install @react-pdf/renderer
npm install --save-dev @types/react
 
# Date formatting (if using date-fns)
npm install date-fns
 
# Toast notifications (if using sonner)
npm install sonner

Usage Tips

  1. CORS Middleware: Place the middleware.ts file in your project root, alongside your next.config.js
  2. Prisma Instance: Import db from your lib/db.ts file instead of creating new PrismaClient instances
  3. UploadThing: Remember to set up the API route in app/api/uploadthing/route.ts
  4. File Exports: Always handle errors gracefully and provide user feedback
  5. PDF Generation: Consider implementing lazy loading for PDF components to improve performance

These snippets cover the most common patterns I use in Next.js applications and should save significant development time. Happy coding