/*
 * band: Band number
 * fr: NR frequency range
 * f_ul_lo: Uplink frequency range lower bound
 * f_ul_hi: Uplink frequency range upper bound
 * f_dl_lo: Downlink frequency range lower bound
 * f_dl_hi: Downlink frequency range upper bound
 * duplex_mode: Duplex mode
 *   (frequency-division duplex, time-division duplex,
 *     supplementary downlink, supplementary uplink)
 */
export interface NrBandRow {
  band: number
  fr: number
  f_ul_lo: number | null
  f_ul_hi: number | null
  f_dl_lo: number | null
  f_dl_hi: number | null
  duplex_mode: 'FDD' | 'TDD' | 'SDL' | 'SUL'
}

export interface NrBandsObj {
  table_release_3gpp: number
  table_ts: string
  table_date: string
  table_names: string[]
  rows: NrBandRow[]
}

export const NrBands: NrBandsObj = {
  table_release_3gpp: 18,
  table_ts: '3GPP TS 38.104 V18.8.0',
  table_date: '2024-12',
  table_names: [
    'Table 5.2-1: NR operating bands in FR1',
    'Table 5.2-2: NR operating bands in FR2',
  ],
  rows: [
    {
      band: 1,
      fr: 1,
      f_ul_lo: 1920,
      f_ul_hi: 1980,
      f_dl_lo: 2110,
      f_dl_hi: 2170,
      duplex_mode: 'FDD',
    },
    {
      band: 2,
      fr: 1,
      f_ul_lo: 1850,
      f_ul_hi: 1910,
      f_dl_lo: 1930,
      f_dl_hi: 1990,
      duplex_mode: 'FDD',
    },
    {
      band: 3,
      fr: 1,
      f_ul_lo: 1710,
      f_ul_hi: 1785,
      f_dl_lo: 1805,
      f_dl_hi: 1880,
      duplex_mode: 'FDD',
    },
    {
      band: 5,
      fr: 1,
      f_ul_lo: 824,
      f_ul_hi: 849,
      f_dl_lo: 869,
      f_dl_hi: 894,
      duplex_mode: 'FDD',
    },
    {
      band: 7,
      fr: 1,
      f_ul_lo: 2500,
      f_ul_hi: 2570,
      f_dl_lo: 2620,
      f_dl_hi: 2690,
      duplex_mode: 'FDD',
    },
    {
      band: 8,
      fr: 1,
      f_ul_lo: 880,
      f_ul_hi: 915,
      f_dl_lo: 925,
      f_dl_hi: 960,
      duplex_mode: 'FDD',
    },
    {
      band: 12,
      fr: 1,
      f_ul_lo: 699,
      f_ul_hi: 716,
      f_dl_lo: 729,
      f_dl_hi: 746,
      duplex_mode: 'FDD',
    },
    {
      band: 13,
      fr: 1,
      f_ul_lo: 777,
      f_ul_hi: 787,
      f_dl_lo: 746,
      f_dl_hi: 756,
      duplex_mode: 'FDD',
    },
    {
      band: 14,
      fr: 1,
      f_ul_lo: 788,
      f_ul_hi: 798,
      f_dl_lo: 758,
      f_dl_hi: 768,
      duplex_mode: 'FDD',
    },
    {
      band: 18,
      fr: 1,
      f_ul_lo: 815,
      f_ul_hi: 830,
      f_dl_lo: 860,
      f_dl_hi: 875,
      duplex_mode: 'FDD',
    },
    {
      band: 20,
      fr: 1,
      f_ul_lo: 832,
      f_ul_hi: 862,
      f_dl_lo: 791,
      f_dl_hi: 821,
      duplex_mode: 'FDD',
    },
    {
      band: 24,
      fr: 1,
      f_ul_lo: null,
      f_ul_hi: null,
      f_dl_lo: 1525,
      f_dl_hi: 1559,
      duplex_mode: 'FDD',
    },
    {
      band: 25,
      fr: 1,
      f_ul_lo: 1850,
      f_ul_hi: 1915,
      f_dl_lo: 1930,
      f_dl_hi: 1995,
      duplex_mode: 'FDD',
    },
    {
      band: 26,
      fr: 1,
      f_ul_lo: 814,
      f_ul_hi: 849,
      f_dl_lo: 859,
      f_dl_hi: 894,
      duplex_mode: 'FDD',
    },
    {
      band: 28,
      fr: 1,
      f_ul_lo: 703,
      f_ul_hi: 748,
      f_dl_lo: 758,
      f_dl_hi: 803,
      duplex_mode: 'FDD',
    },
    {
      band: 29,
      fr: 1,
      f_ul_lo: null,
      f_ul_hi: null,
      f_dl_lo: 717,
      f_dl_hi: 728,
      duplex_mode: 'SDL',
    },
    {
      band: 30,
      fr: 1,
      f_ul_lo: 2305,
      f_ul_hi: 2315,
      f_dl_lo: 2350,
      f_dl_hi: 2360,
      duplex_mode: 'FDD',
    },
    {
      band: 31,
      fr: 1,
      f_ul_lo: null,
      f_ul_hi: null,
      f_dl_lo: null,
      f_dl_hi: null,
      duplex_mode: 'FDD',
    },
    {
      band: 34,
      fr: 1,
      f_ul_lo: 2010,
      f_ul_hi: 2025,
      f_dl_lo: 2010,
      f_dl_hi: 2025,
      duplex_mode: 'TDD',
    },
    {
      band: 38,
      fr: 1,
      f_ul_lo: 2570,
      f_ul_hi: 2620,
      f_dl_lo: 2570,
      f_dl_hi: 2620,
      duplex_mode: 'TDD',
    },
    {
      band: 39,
      fr: 1,
      f_ul_lo: 1880,
      f_ul_hi: 1920,
      f_dl_lo: 1880,
      f_dl_hi: 1920,
      duplex_mode: 'TDD',
    },
    {
      band: 40,
      fr: 1,
      f_ul_lo: 2300,
      f_ul_hi: 2400,
      f_dl_lo: 2300,
      f_dl_hi: 2400,
      duplex_mode: 'TDD',
    },
    {
      band: 41,
      fr: 1,
      f_ul_lo: 2496,
      f_ul_hi: 2690,
      f_dl_lo: 2496,
      f_dl_hi: 2690,
      duplex_mode: 'TDD',
    },
    {
      band: 46,
      fr: 1,
      f_ul_lo: 5150,
      f_ul_hi: 5925,
      f_dl_lo: 5150,
      f_dl_hi: 5925,
      duplex_mode: 'TDD',
    },
    {
      band: 48,
      fr: 1,
      f_ul_lo: 3550,
      f_ul_hi: 3700,
      f_dl_lo: 3550,
      f_dl_hi: 3700,
      duplex_mode: 'TDD',
    },
    {
      band: 50,
      fr: 1,
      f_ul_lo: 1432,
      f_ul_hi: 1517,
      f_dl_lo: 1432,
      f_dl_hi: 1517,
      duplex_mode: 'TDD',
    },
    {
      band: 51,
      fr: 1,
      f_ul_lo: 1427,
      f_ul_hi: 1432,
      f_dl_lo: 1427,
      f_dl_hi: 1432,
      duplex_mode: 'TDD',
    },
    {
      band: 53,
      fr: 1,
      f_ul_lo: null,
      f_ul_hi: null,
      f_dl_lo: null,
      f_dl_hi: null,
      duplex_mode: 'TDD',
    },
    {
      band: 54,
      fr: 1,
      f_ul_lo: 1670,
      f_ul_hi: 1675,
      f_dl_lo: 1670,
      f_dl_hi: 1675,
      duplex_mode: 'TDD',
    },
    {
      band: 65,
      fr: 1,
      f_ul_lo: 1920,
      f_ul_hi: 2010,
      f_dl_lo: 2110,
      f_dl_hi: 2200,
      duplex_mode: 'FDD',
    },
    {
      band: 66,
      fr: 1,
      f_ul_lo: 1710,
      f_ul_hi: 1780,
      f_dl_lo: 2110,
      f_dl_hi: 2200,
      duplex_mode: 'FDD',
    },
    {
      band: 67,
      fr: 1,
      f_ul_lo: null,
      f_ul_hi: null,
      f_dl_lo: 738,
      f_dl_hi: 758,
      duplex_mode: 'SDL',
    },
    {
      band: 70,
      fr: 1,
      f_ul_lo: 1695,
      f_ul_hi: 1710,
      f_dl_lo: 1995,
      f_dl_hi: 2020,
      duplex_mode: 'FDD',
    },
    {
      band: 71,
      fr: 1,
      f_ul_lo: 663,
      f_ul_hi: 698,
      f_dl_lo: 617,
      f_dl_hi: 652,
      duplex_mode: 'FDD',
    },
    {
      band: 72,
      fr: 1,
      f_ul_lo: 451,
      f_ul_hi: 456,
      f_dl_lo: 461,
      f_dl_hi: 466,
      duplex_mode: 'FDD',
    },
    {
      band: 74,
      fr: 1,
      f_ul_lo: 1427,
      f_ul_hi: 1470,
      f_dl_lo: 1475,
      f_dl_hi: 1518,
      duplex_mode: 'FDD',
    },
    {
      band: 75,
      fr: 1,
      f_ul_lo: null,
      f_ul_hi: null,
      f_dl_lo: 1432,
      f_dl_hi: 1517,
      duplex_mode: 'SDL',
    },
    {
      band: 76,
      fr: 1,
      f_ul_lo: null,
      f_ul_hi: null,
      f_dl_lo: 1427,
      f_dl_hi: 1432,
      duplex_mode: 'SDL',
    },
    {
      band: 77,
      fr: 1,
      f_ul_lo: 3300,
      f_ul_hi: 4200,
      f_dl_lo: 3300,
      f_dl_hi: 4200,
      duplex_mode: 'TDD',
    },
    {
      band: 78,
      fr: 1,
      f_ul_lo: 3300,
      f_ul_hi: 3800,
      f_dl_lo: 3300,
      f_dl_hi: 3800,
      duplex_mode: 'TDD',
    },
    {
      band: 79,
      fr: 1,
      f_ul_lo: 4400,
      f_ul_hi: 5000,
      f_dl_lo: 4400,
      f_dl_hi: 5000,
      duplex_mode: 'TDD',
    },
    {
      band: 80,
      fr: 1,
      f_ul_lo: 1710,
      f_ul_hi: 1785,
      f_dl_lo: null,
      f_dl_hi: null,
      duplex_mode: 'SUL',
    },
    {
      band: 81,
      fr: 1,
      f_ul_lo: 880,
      f_ul_hi: 915,
      f_dl_lo: null,
      f_dl_hi: null,
      duplex_mode: 'SUL',
    },
    {
      band: 82,
      fr: 1,
      f_ul_lo: 832,
      f_ul_hi: 862,
      f_dl_lo: null,
      f_dl_hi: null,
      duplex_mode: 'SUL',
    },
    {
      band: 83,
      fr: 1,
      f_ul_lo: 703,
      f_ul_hi: 748,
      f_dl_lo: null,
      f_dl_hi: null,
      duplex_mode: 'SUL',
    },
    {
      band: 84,
      fr: 1,
      f_ul_lo: 1920,
      f_ul_hi: 1980,
      f_dl_lo: null,
      f_dl_hi: null,
      duplex_mode: 'SUL',
    },
    {
      band: 85,
      fr: 1,
      f_ul_lo: 698,
      f_ul_hi: 716,
      f_dl_lo: 728,
      f_dl_hi: 746,
      duplex_mode: 'FDD',
    },
    {
      band: 86,
      fr: 1,
      f_ul_lo: 1710,
      f_ul_hi: 1780,
      f_dl_lo: null,
      f_dl_hi: null,
      duplex_mode: 'SUL',
    },
    {
      band: 89,
      fr: 1,
      f_ul_lo: 824,
      f_ul_hi: 849,
      f_dl_lo: null,
      f_dl_hi: null,
      duplex_mode: 'SUL',
    },
    {
      band: 90,
      fr: 1,
      f_ul_lo: 2496,
      f_ul_hi: 2690,
      f_dl_lo: 2496,
      f_dl_hi: 2690,
      duplex_mode: 'TDD',
    },
    {
      band: 91,
      fr: 1,
      f_ul_lo: 832,
      f_ul_hi: 862,
      f_dl_lo: 1427,
      f_dl_hi: 1432,
      duplex_mode: 'FDD',
    },
    {
      band: 92,
      fr: 1,
      f_ul_lo: 832,
      f_ul_hi: 862,
      f_dl_lo: 1432,
      f_dl_hi: 1517,
      duplex_mode: 'FDD',
    },
    {
      band: 93,
      fr: 1,
      f_ul_lo: 880,
      f_ul_hi: 915,
      f_dl_lo: 1427,
      f_dl_hi: 1432,
      duplex_mode: 'FDD',
    },
    {
      band: 94,
      fr: 1,
      f_ul_lo: 880,
      f_ul_hi: 915,
      f_dl_lo: 1432,
      f_dl_hi: 1517,
      duplex_mode: 'FDD',
    },
    {
      band: 95,
      fr: 1,
      f_ul_lo: 2010,
      f_ul_hi: 2025,
      f_dl_lo: null,
      f_dl_hi: null,
      duplex_mode: 'SUL',
    },
    {
      band: 96,
      fr: 1,
      f_ul_lo: 5925,
      f_ul_hi: 7125,
      f_dl_lo: 5925,
      f_dl_hi: 7125,
      duplex_mode: 'TDD',
    },
    {
      band: 97,
      fr: 1,
      f_ul_lo: 2300,
      f_ul_hi: 2400,
      f_dl_lo: null,
      f_dl_hi: null,
      duplex_mode: 'SUL',
    },
    {
      band: 98,
      fr: 1,
      f_ul_lo: 1880,
      f_ul_hi: 1920,
      f_dl_lo: null,
      f_dl_hi: null,
      duplex_mode: 'SUL',
    },
    {
      band: 99,
      fr: 1,
      f_ul_lo: null,
      f_ul_hi: null,
      f_dl_lo: null,
      f_dl_hi: null,
      duplex_mode: 'SUL',
    },
    {
      band: 100,
      fr: 1,
      f_ul_lo: null,
      f_ul_hi: null,
      f_dl_lo: null,
      f_dl_hi: null,
      duplex_mode: 'FDD',
    },
    {
      band: 101,
      fr: 1,
      f_ul_lo: 1900,
      f_ul_hi: 1910,
      f_dl_lo: 1900,
      f_dl_hi: 1910,
      duplex_mode: 'TDD',
    },
    {
      band: 102,
      fr: 1,
      f_ul_lo: 5925,
      f_ul_hi: 6425,
      f_dl_lo: 5925,
      f_dl_hi: 6425,
      duplex_mode: 'TDD',
    },
    {
      band: 104,
      fr: 1,
      f_ul_lo: 6425,
      f_ul_hi: 7125,
      f_dl_lo: 6425,
      f_dl_hi: 7125,
      duplex_mode: 'TDD',
    },
    {
      band: 105,
      fr: 1,
      f_ul_lo: 663,
      f_ul_hi: 703,
      f_dl_lo: 612,
      f_dl_hi: 652,
      duplex_mode: 'FDD',
    },
    {
      band: 106,
      fr: 1,
      f_ul_lo: 896,
      f_ul_hi: 901,
      f_dl_lo: 935,
      f_dl_hi: 940,
      duplex_mode: 'FDD',
    },
    {
      band: 109,
      fr: 1,
      f_ul_lo: 703,
      f_ul_hi: 733,
      f_dl_lo: 1432,
      f_dl_hi: 1517,
      duplex_mode: 'FDD',
    },
    {
      band: 257,
      fr: 2,
      f_ul_lo: 26500,
      f_ul_hi: 29500,
      f_dl_lo: 26500,
      f_dl_hi: 29500,
      duplex_mode: 'TDD',
    },
    {
      band: 258,
      fr: 2,
      f_ul_lo: 24250,
      f_ul_hi: 27500,
      f_dl_lo: 24250,
      f_dl_hi: 27500,
      duplex_mode: 'TDD',
    },
    {
      band: 259,
      fr: 2,
      f_ul_lo: 39500,
      f_ul_hi: 43500,
      f_dl_lo: 39500,
      f_dl_hi: 43500,
      duplex_mode: 'TDD',
    },
    {
      band: 260,
      fr: 2,
      f_ul_lo: 37000,
      f_ul_hi: 40000,
      f_dl_lo: 37000,
      f_dl_hi: 40000,
      duplex_mode: 'TDD',
    },
    {
      band: 261,
      fr: 2,
      f_ul_lo: 27500,
      f_ul_hi: 28350,
      f_dl_lo: 27500,
      f_dl_hi: 28350,
      duplex_mode: 'TDD',
    },
    {
      band: 262,
      fr: 2,
      f_ul_lo: 47200,
      f_ul_hi: 48200,
      f_dl_lo: 47200,
      f_dl_hi: 48200,
      duplex_mode: 'TDD',
    },
    {
      band: 263,
      fr: 2,
      f_ul_lo: 57000,
      f_ul_hi: 71000,
      f_dl_lo: 57000,
      f_dl_hi: 71000,
      duplex_mode: 'TDD',
    },
  ],
}
