Index: fleet.json
===================================================================
--- fleet.json	(revision 1173)
+++ fleet.json	(revision 1173)
@@ -0,0 +1,767 @@
+[
+    {
+        "aircraftType": 13,
+        "dow": 29500,
+        "dowNumCabinCrew": 3,
+        "fuselageLength": 37.05,
+        "maxPassengers": 68,
+        "tailNumber": "HA-LBI",
+        "wingSpan": 29.01
+    },
+    {
+        "aircraftType": 13,
+        "dow": 29500,
+        "dowNumCabinCrew": 3,
+        "fuselageLength": 37.05,
+        "maxPassengers": 68,
+        "tailNumber": "HA-LBK",
+        "wingSpan": 29.01
+    },
+    {
+        "aircraftType": 13,
+        "dow": 29500,
+        "dowNumCabinCrew": 3,
+        "fuselageLength": 37.05,
+        "maxPassengers": 68,
+        "tailNumber": "HA-LBN",
+        "wingSpan": 29.01
+    },
+    {
+        "aircraftType": 13,
+        "dow": 29500,
+        "dowNumCabinCrew": 3,
+        "fuselageLength": 37.05,
+        "maxPassengers": 68,
+        "tailNumber": "HA-LBO",
+        "wingSpan": 29.01
+    },
+    {
+        "aircraftType": 13,
+        "dow": 29500,
+        "dowNumCabinCrew": 3,
+        "fuselageLength": 37.05,
+        "maxPassengers": 68,
+        "tailNumber": "HA-LBP",
+        "wingSpan": 29.01
+    },
+    {
+        "aircraftType": 13,
+        "dow": 29500,
+        "dowNumCabinCrew": 3,
+        "fuselageLength": 37.05,
+        "maxPassengers": 68,
+        "tailNumber": "HA-LBR",
+        "wingSpan": 29.01
+    },
+    {
+        "aircraftType": 14,
+        "dow": 53259,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 47.9,
+        "maxPassengers": 157,
+        "tailNumber": "HA-LCA",
+        "wingSpan": 37.5
+    },
+    {
+        "aircraftType": 14,
+        "dow": 53259,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 47.9,
+        "maxPassengers": 157,
+        "tailNumber": "HA-LCB",
+        "wingSpan": 37.5
+    },
+    {
+        "aircraftType": 14,
+        "dow": 53259,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 47.9,
+        "maxPassengers": 157,
+        "tailNumber": "HA-LCE",
+        "wingSpan": 37.5
+    },
+    {
+        "aircraftType": 14,
+        "dow": 53259,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 47.9,
+        "maxPassengers": 147,
+        "tailNumber": "HA-LCF",
+        "wingSpan": 37.5
+    },
+    {
+        "aircraftType": 14,
+        "dow": 53259,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 47.9,
+        "maxPassengers": 147,
+        "tailNumber": "HA-LCG",
+        "wingSpan": 37.5
+    },
+    {
+        "aircraftType": 14,
+        "dow": 53259,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 47.9,
+        "maxPassengers": 147,
+        "tailNumber": "HA-LCH",
+        "wingSpan": 37.5
+    },
+    {
+        "aircraftType": 14,
+        "dow": 53259,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 47.9,
+        "maxPassengers": 157,
+        "tailNumber": "HA-LCI",
+        "wingSpan": 37.5
+    },
+    {
+        "aircraftType": 14,
+        "dow": 53259,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 47.9,
+        "maxPassengers": 157,
+        "tailNumber": "HA-LCK",
+        "wingSpan": 37.5
+    },
+    {
+        "aircraftType": 14,
+        "dow": 53259,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 47.9,
+        "maxPassengers": 157,
+        "tailNumber": "HA-LCL",
+        "wingSpan": 37.5
+    },
+    {
+        "aircraftType": 14,
+        "dow": 53259,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 47.9,
+        "maxPassengers": 152,
+        "tailNumber": "HA-LCM",
+        "wingSpan": 37.5
+    },
+    {
+        "aircraftType": 14,
+        "dow": 53259,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 47.9,
+        "maxPassengers": 161,
+        "tailNumber": "HA-LCN",
+        "wingSpan": 37.5
+    },
+    {
+        "aircraftType": 14,
+        "dow": 53259,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 47.9,
+        "maxPassengers": 161,
+        "tailNumber": "HA-LCO",
+        "wingSpan": 37.5
+    },
+    {
+        "aircraftType": 14,
+        "dow": 53259,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 47.9,
+        "maxPassengers": 161,
+        "tailNumber": "HA-LCP",
+        "wingSpan": 37.5
+    },
+    {
+        "aircraftType": 14,
+        "dow": 53259,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 47.9,
+        "maxPassengers": 161,
+        "tailNumber": "HA-LCR",
+        "wingSpan": 37.5
+    },
+    {
+        "aircraftType": 14,
+        "dow": 53259,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 47.9,
+        "maxPassengers": 147,
+        "tailNumber": "HA-LCS",
+        "wingSpan": 37.5
+    },
+    {
+        "aircraftType": 14,
+        "dow": 53259,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 47.9,
+        "maxPassengers": 147,
+        "tailNumber": "HA-LCT",
+        "wingSpan": 37.5
+    },
+    {
+        "aircraftType": 14,
+        "dow": 53259,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 47.9,
+        "maxPassengers": 161,
+        "tailNumber": "HA-LCU",
+        "wingSpan": 37.5
+    },
+    {
+        "aircraftType": 14,
+        "dow": 53259,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 47.9,
+        "maxPassengers": 161,
+        "tailNumber": "HA-LCV",
+        "wingSpan": 37.5
+    },
+    {
+        "aircraftType": 18,
+        "dow": 27646,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 30.48,
+        "maxPassengers": 113,
+        "tailNumber": "HA-LEA",
+        "wingSpan": 28.35
+    },
+    {
+        "aircraftType": 18,
+        "dow": 27646,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 30.48,
+        "maxPassengers": 113,
+        "tailNumber": "HA-LEB",
+        "wingSpan": 28.35
+    },
+    {
+        "aircraftType": 18,
+        "dow": 27646,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 30.48,
+        "maxPassengers": 113,
+        "tailNumber": "HA-LEC",
+        "wingSpan": 28.35
+    },
+    {
+        "aircraftType": 4,
+        "dow": 32900,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 32.2,
+        "maxPassengers": 123,
+        "tailNumber": "HA-LED",
+        "wingSpan": 28.9
+    },
+    {
+        "aircraftType": 4,
+        "dow": 32900,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 32.2,
+        "maxPassengers": 123,
+        "tailNumber": "HA-LEF",
+        "wingSpan": 28.9
+    },
+    {
+        "aircraftType": 4,
+        "dow": 32900,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 32.2,
+        "maxPassengers": 123,
+        "tailNumber": "HA-LEG",
+        "wingSpan": 28.9
+    },
+    {
+        "aircraftType": 18,
+        "dow": 27646,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 30.48,
+        "maxPassengers": 113,
+        "tailNumber": "HA-LEI",
+        "wingSpan": 28.35
+    },
+    {
+        "aircraftType": 4,
+        "dow": 32900,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 32.2,
+        "maxPassengers": 123,
+        "tailNumber": "HA-LEJ",
+        "wingSpan": 28.9
+    },
+    {
+        "aircraftType": 18,
+        "dow": 27646,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 30.48,
+        "maxPassengers": 113,
+        "tailNumber": "HA-LEK",
+        "wingSpan": 28.35
+    },
+    {
+        "aircraftType": 18,
+        "dow": 27646,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 30.48,
+        "maxPassengers": 113,
+        "tailNumber": "HA-LEM",
+        "wingSpan": 28.35
+    },
+    {
+        "aircraftType": 5,
+        "dow": 35100,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 36.4,
+        "maxPassengers": 143,
+        "tailNumber": "HA-LEN",
+        "wingSpan": 28.9
+    },
+    {
+        "aircraftType": 5,
+        "dow": 35100,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 36.4,
+        "maxPassengers": 143,
+        "tailNumber": "HA-LEO",
+        "wingSpan": 28.9
+    },
+    {
+        "aircraftType": 6,
+        "dow": 31900,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 29.8,
+        "maxPassengers": 105,
+        "tailNumber": "HA-LEP",
+        "wingSpan": 28.9
+    },
+    {
+        "aircraftType": 6,
+        "dow": 31900,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 29.8,
+        "maxPassengers": 105,
+        "tailNumber": "HA-LER",
+        "wingSpan": 28.9
+    },
+    {
+        "aircraftType": 4,
+        "dow": 32900,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 32.2,
+        "maxPassengers": 123,
+        "tailNumber": "HA-LES",
+        "wingSpan": 28.9
+    },
+    {
+        "aircraftType": 4,
+        "dow": 32900,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 32.2,
+        "maxPassengers": 123,
+        "tailNumber": "HA-LET",
+        "wingSpan": 28.9
+    },
+    {
+        "aircraftType": 5,
+        "dow": 35100,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 36.4,
+        "maxPassengers": 143,
+        "tailNumber": "HA-LEU",
+        "wingSpan": 28.9
+    },
+    {
+        "aircraftType": 5,
+        "dow": 35100,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 36.4,
+        "maxPassengers": 143,
+        "tailNumber": "HA-LEV",
+        "wingSpan": 28.9
+    },
+    {
+        "aircraftType": 4,
+        "dow": 32900,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 32.2,
+        "maxPassengers": 123,
+        "tailNumber": "HA-LEX",
+        "wingSpan": 28.9
+    },
+    {
+        "aircraftType": 5,
+        "dow": 35100,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 36.4,
+        "maxPassengers": 143,
+        "tailNumber": "HA-LEY",
+        "wingSpan": 28.9
+    },
+    {
+        "aircraftType": 5,
+        "dow": 35100,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 36.4,
+        "maxPassengers": 143,
+        "tailNumber": "HA-LEZ",
+        "wingSpan": 28.9
+    },
+    {
+        "aircraftType": 8,
+        "dow": 84507,
+        "dowNumCabinCrew": 6,
+        "fuselageLength": 47.24,
+        "maxPassengers": 185,
+        "tailNumber": "HA-LHA",
+        "wingSpan": 47.57
+    },
+    {
+        "aircraftType": 8,
+        "dow": 84507,
+        "dowNumCabinCrew": 6,
+        "fuselageLength": 47.24,
+        "maxPassengers": 185,
+        "tailNumber": "HA-LHB",
+        "wingSpan": 47.57
+    },
+    {
+        "aircraftType": 9,
+        "dow": 91311,
+        "dowNumCabinCrew": 7,
+        "fuselageLength": 54.9,
+        "maxPassengers": 229,
+        "tailNumber": "HA-LHC",
+        "wingSpan": 47.57
+    },
+    {
+        "aircraftType": 9,
+        "dow": 91311,
+        "dowNumCabinCrew": 7,
+        "fuselageLength": 54.9,
+        "maxPassengers": 229,
+        "tailNumber": "HA-LHD",
+        "wingSpan": 47.57
+    },
+    {
+        "aircraftType": 18,
+        "dow": 69500,
+        "dowNumCabinCrew": 6,
+        "fuselageLength": 53.12,
+        "maxPassengers": 174,
+        "tailNumber": "HA-LIA",
+        "wingSpan": 43.2
+    },
+    {
+        "aircraftType": 15,
+        "dow": 9855,
+        "dowNumCabinCrew": 1,
+        "fuselageLength": 20.4,
+        "maxPassengers": 32,
+        "tailNumber": "HA-LJA",
+        "wingSpan": 25.0
+    },
+    {
+        "aircraftType": 15,
+        "dow": 9855,
+        "dowNumCabinCrew": 1,
+        "fuselageLength": 20.4,
+        "maxPassengers": 32,
+        "tailNumber": "HA-LJB",
+        "wingSpan": 25.0
+    },
+    {
+        "aircraftType": 15,
+        "dow": 9855,
+        "dowNumCabinCrew": 1,
+        "fuselageLength": 20.4,
+        "maxPassengers": 32,
+        "tailNumber": "HA-LJC",
+        "wingSpan": 25.0
+    },
+    {
+        "aircraftType": 11,
+        "dow": 24283,
+        "dowNumCabinCrew": 2,
+        "fuselageLength": 30.91,
+        "maxPassengers": 72,
+        "tailNumber": "HA-LMA",
+        "wingSpan": 28.08
+    },
+    {
+        "aircraftType": 11,
+        "dow": 24283,
+        "dowNumCabinCrew": 2,
+        "fuselageLength": 30.91,
+        "maxPassengers": 72,
+        "tailNumber": "HA-LMB",
+        "wingSpan": 28.08
+    },
+    {
+        "aircraftType": 11,
+        "dow": 24283,
+        "dowNumCabinCrew": 2,
+        "fuselageLength": 30.91,
+        "maxPassengers": 72,
+        "tailNumber": "HA-LMC",
+        "wingSpan": 28.08
+    },
+    {
+        "aircraftType": 11,
+        "dow": 24283,
+        "dowNumCabinCrew": 2,
+        "fuselageLength": 30.91,
+        "maxPassengers": 72,
+        "tailNumber": "HA-LME",
+        "wingSpan": 28.08
+    },
+    {
+        "aircraftType": 11,
+        "dow": 24283,
+        "dowNumCabinCrew": 2,
+        "fuselageLength": 30.91,
+        "maxPassengers": 72,
+        "tailNumber": "HA-LMF",
+        "wingSpan": 28.08
+    },
+    {
+        "aircraftType": 10,
+        "dow": 14549,
+        "dowNumCabinCrew": 2,
+        "fuselageLength": 26.8,
+        "maxPassengers": 50,
+        "tailNumber": "HA-LNA",
+        "wingSpan": 21.2
+    },
+    {
+        "aircraftType": 10,
+        "dow": 14549,
+        "dowNumCabinCrew": 2,
+        "fuselageLength": 26.8,
+        "maxPassengers": 50,
+        "tailNumber": "HA-LNB",
+        "wingSpan": 21.2
+    },
+    {
+        "aircraftType": 10,
+        "dow": 14549,
+        "dowNumCabinCrew": 2,
+        "fuselageLength": 26.8,
+        "maxPassengers": 50,
+        "tailNumber": "HA-LNC",
+        "wingSpan": 21.2
+    },
+    {
+        "aircraftType": 10,
+        "dow": 14549,
+        "dowNumCabinCrew": 2,
+        "fuselageLength": 26.8,
+        "maxPassengers": 50,
+        "tailNumber": "HA-LND",
+        "wingSpan": 21.2
+    },
+    {
+        "aircraftType": 2,
+        "dow": 39250,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 33.6,
+        "maxPassengers": 121,
+        "tailNumber": "HA-LOA",
+        "wingSpan": 34.3
+    },
+    {
+        "aircraftType": 2,
+        "dow": 39250,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 33.6,
+        "maxPassengers": 121,
+        "tailNumber": "HA-LOB",
+        "wingSpan": 34.3
+    },
+    {
+        "aircraftType": 16,
+        "dow": 42690,
+        "dowNumCabinCrew": 5,
+        "fuselageLength": 38.5,
+        "maxPassengers": 180,
+        "tailNumber": "HA-LOC",
+        "wingSpan": 34.3
+    },
+    {
+        "aircraftType": 1,
+        "dow": 38307,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 31.2,
+        "maxPassengers": 109,
+        "tailNumber": "HA-LOD",
+        "wingSpan": 34.3
+    },
+    {
+        "aircraftType": 1,
+        "dow": 38307,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 31.2,
+        "maxPassengers": 109,
+        "tailNumber": "HA-LOE",
+        "wingSpan": 34.3
+    },
+    {
+        "aircraftType": 1,
+        "dow": 38307,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 31.2,
+        "maxPassengers": 109,
+        "tailNumber": "HA-LOF",
+        "wingSpan": 34.3
+    },
+    {
+        "aircraftType": 1,
+        "dow": 38307,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 31.2,
+        "maxPassengers": 109,
+        "tailNumber": "HA-LOG",
+        "wingSpan": 34.3
+    },
+    {
+        "aircraftType": 16,
+        "dow": 42690,
+        "dowNumCabinCrew": 5,
+        "fuselageLength": 38.5,
+        "maxPassengers": 180,
+        "tailNumber": "HA-LOH",
+        "wingSpan": 34.3
+    },
+    {
+        "aircraftType": 2,
+        "dow": 39250,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 33.6,
+        "maxPassengers": 121,
+        "tailNumber": "HA-LOI",
+        "wingSpan": 34.3
+    },
+    {
+        "aircraftType": 1,
+        "dow": 38307,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 31.2,
+        "maxPassengers": 109,
+        "tailNumber": "HA-LOJ",
+        "wingSpan": 34.3
+    },
+    {
+        "aircraftType": 3,
+        "dow": 42690,
+        "dowNumCabinCrew": 5,
+        "fuselageLength": 38.5,
+        "maxPassengers": 168,
+        "tailNumber": "HA-LOK",
+        "wingSpan": 34.3
+    },
+    {
+        "aircraftType": 2,
+        "dow": 39250,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 33.6,
+        "maxPassengers": 121,
+        "tailNumber": "HA-LOL",
+        "wingSpan": 34.3
+    },
+    {
+        "aircraftType": 16,
+        "dow": 42690,
+        "dowNumCabinCrew": 5,
+        "fuselageLength": 38.5,
+        "maxPassengers": 180,
+        "tailNumber": "HA-LOM",
+        "wingSpan": 34.3
+    },
+    {
+        "aircraftType": 1,
+        "dow": 38307,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 31.2,
+        "maxPassengers": 109,
+        "tailNumber": "HA-LON",
+        "wingSpan": 34.3
+    },
+    {
+        "aircraftType": 2,
+        "dow": 39250,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 33.6,
+        "maxPassengers": 121,
+        "tailNumber": "HA-LOP",
+        "wingSpan": 34.3
+    },
+    {
+        "aircraftType": 2,
+        "dow": 39250,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 33.6,
+        "maxPassengers": 121,
+        "tailNumber": "HA-LOR",
+        "wingSpan": 34.3
+    },
+    {
+        "aircraftType": 2,
+        "dow": 39250,
+        "dowNumCabinCrew": 4,
+        "fuselageLength": 33.6,
+        "maxPassengers": 121,
+        "tailNumber": "HA-LOS",
+        "wingSpan": 34.3
+    },
+    {
+        "aircraftType": 3,
+        "dow": 42690,
+        "dowNumCabinCrew": 5,
+        "fuselageLength": 38.5,
+        "maxPassengers": 168,
+        "tailNumber": "HA-LOU",
+        "wingSpan": 34.3
+    },
+    {
+        "aircraftType": 7,
+        "dow": 18508,
+        "dowNumCabinCrew": 2,
+        "fuselageLength": 32.84,
+        "maxPassengers": 78,
+        "tailNumber": "HA-LQA",
+        "wingSpan": 28.42
+    },
+    {
+        "aircraftType": 7,
+        "dow": 18508,
+        "dowNumCabinCrew": 2,
+        "fuselageLength": 32.84,
+        "maxPassengers": 72,
+        "tailNumber": "HA-LQB",
+        "wingSpan": 28.42
+    },
+    {
+        "aircraftType": 7,
+        "dow": 18508,
+        "dowNumCabinCrew": 2,
+        "fuselageLength": 32.84,
+        "maxPassengers": 78,
+        "tailNumber": "HA-LQC",
+        "wingSpan": 28.42
+    },
+    {
+        "aircraftType": 7,
+        "dow": 18508,
+        "dowNumCabinCrew": 2,
+        "fuselageLength": 32.84,
+        "maxPassengers": 72,
+        "tailNumber": "HA-LQD",
+        "wingSpan": 28.42
+    },
+    {
+        "aircraftType": 17,
+        "dow": 25706,
+        "dowNumCabinCrew": 0,
+        "fuselageLength": 28.55,
+        "maxPassengers": 112,
+        "tailNumber": "HA-TAB",
+        "wingSpan": 26.34
+    }
+]
Index: gates.json
===================================================================
--- gates.json	(revision 1173)
+++ gates.json	(revision 1173)
@@ -0,0 +1,492 @@
+[
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "31",
+        "terminal": "2B",
+        "type": "G"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "32",
+        "terminal": "2B",
+        "type": "G"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "33",
+        "terminal": "2B",
+        "type": "G"
+    },
+    {
+        "maxLength": 74.0,
+        "maxSpan": 65.0,
+        "number": "34",
+        "terminal": "2B",
+        "type": "G"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "34L",
+        "terminal": "2B",
+        "type": "G"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "34R",
+        "terminal": "2B",
+        "type": "G"
+    },
+    {
+        "maxLength": 74.0,
+        "maxSpan": 65.0,
+        "number": "35",
+        "terminal": "2B",
+        "type": "G"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "35L",
+        "terminal": "2B",
+        "type": "G"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "35R",
+        "terminal": "2B",
+        "type": "G"
+    },
+    {
+        "maxLength": 74.0,
+        "maxSpan": 65.0,
+        "number": "36",
+        "terminal": "2B",
+        "type": "G"
+    },
+    {
+        "maxLength": 38.65,
+        "maxSpan": 28.72,
+        "number": "36L",
+        "terminal": "2B",
+        "type": "G"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "36R",
+        "terminal": "2B",
+        "type": "G"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "37",
+        "terminal": "2B",
+        "type": "G"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "38",
+        "terminal": "2B",
+        "type": "G"
+    },
+    {
+        "maxLength": 74.0,
+        "maxSpan": 65.0,
+        "number": "39",
+        "terminal": "2B",
+        "type": "G"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "39L",
+        "terminal": "2B",
+        "type": "G"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "39R",
+        "terminal": "2B",
+        "type": "G"
+    },
+    {
+        "maxLength": 55.0,
+        "maxSpan": 38.0,
+        "number": "42",
+        "terminal": "2A",
+        "type": "G"
+    },
+    {
+        "maxLength": 56.0,
+        "maxSpan": 51.0,
+        "number": "43",
+        "terminal": "2A",
+        "type": "G"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "44",
+        "terminal": "2A",
+        "type": "G"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "45",
+        "terminal": "2A",
+        "type": "G"
+    },
+    {
+        "maxLength": 30.5,
+        "maxSpan": 30.4,
+        "number": "G150",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 30.5,
+        "maxSpan": 30.4,
+        "number": "G151",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 30.3,
+        "maxSpan": 28.65,
+        "number": "G152",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 30.3,
+        "maxSpan": 28.65,
+        "number": "G153",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 30.3,
+        "maxSpan": 28.65,
+        "number": "G154",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 30.3,
+        "maxSpan": 28.65,
+        "number": "G155",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 27.5,
+        "maxSpan": 23.9,
+        "number": "G170",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 27.5,
+        "maxSpan": 23.9,
+        "number": "G171",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 27.5,
+        "maxSpan": 23.9,
+        "number": "G172",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 55.0,
+        "maxSpan": 48.0,
+        "number": "R101",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 55.0,
+        "maxSpan": 48.0,
+        "number": "R102",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 55.0,
+        "maxSpan": 48.0,
+        "number": "R103",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R104",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 55.0,
+        "maxSpan": 48.0,
+        "number": "R105",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R106",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R107",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 55.0,
+        "maxSpan": 48.0,
+        "number": "R108",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R110",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 61.62,
+        "maxSpan": 52.0,
+        "number": "R111",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R112",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 61.62,
+        "maxSpan": 52.0,
+        "number": "R113",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R114",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 75.39,
+        "maxSpan": 68.59,
+        "number": "R115",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R116",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 75.39,
+        "maxSpan": 68.59,
+        "number": "R117",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 75.39,
+        "maxSpan": 68.59,
+        "number": "R117A",
+        "terminal": "1",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R210",
+        "terminal": "2A",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R211",
+        "terminal": "2A",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R212",
+        "terminal": "2A",
+        "type": "S"
+    },
+    {
+        "maxLength": 55.0,
+        "maxSpan": 47.57,
+        "number": "R212A",
+        "terminal": "2A",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R220",
+        "terminal": "2B",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R221",
+        "terminal": "2B",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R222",
+        "terminal": "2B",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R223",
+        "terminal": "2B",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R224",
+        "terminal": "2A",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R225",
+        "terminal": "2A",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R226",
+        "terminal": "2A",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R227",
+        "terminal": "2A",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R270",
+        "terminal": "2A",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R271",
+        "terminal": "2A",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R272",
+        "terminal": "2A",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R273",
+        "terminal": "2A",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R274",
+        "terminal": "2A",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R275",
+        "terminal": "2A",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R276",
+        "terminal": "2A",
+        "type": "S"
+    },
+    {
+        "maxLength": 48.0,
+        "maxSpan": 38.0,
+        "number": "R277",
+        "terminal": "2A",
+        "type": "S"
+    },
+    {
+        "maxLength": 52.0,
+        "maxSpan": 43.0,
+        "number": "R278",
+        "terminal": "2A",
+        "type": "S"
+    },
+    {
+        "maxLength": 71.0,
+        "maxSpan": 65.0,
+        "number": "R278A",
+        "terminal": "2A",
+        "type": "S"
+    },
+    {
+        "maxLength": 52.0,
+        "maxSpan": 50.0,
+        "number": "R279",
+        "terminal": "2A",
+        "type": "S"
+    }
+]
Index: setup.py
===================================================================
--- setup.py	(revision 1083)
+++ setup.py	(revision 1173)
@@ -51,5 +51,5 @@
 
 rootFiles = ["logo.png", "conn_grey.png", "conn_red.png", "conn_green.png",
-             "mavalogo.png"]
+             "mavalogo.png", "fleet.json", "gates.json"]
 if os.name!="nt":
     rootFiles.append("Microsoft.VC90.CRT.manifest")
Index: src/mlx/gui/flight.py
===================================================================
--- src/mlx/gui/flight.py	(revision 1168)
+++ src/mlx/gui/flight.py	(revision 1173)
@@ -442,4 +442,5 @@
         """Called when the offline button was clicked."""
         print("mlx.flight.LoginPage: offline flight selected")
+        self._wizard.setupOfflineFlight()
         self._wizard.nextPage()
 
@@ -6819,4 +6820,54 @@
         self.gui.webHandler.login(self._loginResultCallback,
                                   pilotID, password)
+
+    def setupOfflineFlight(self):
+        """Setup an offline flight."""
+        #import pickle
+        import random
+        import json
+        from mlx.rpccommon import Fleet
+        from mlx.gates import Gates
+
+        # with open(os.path.join(self.gui.programDirectory,
+        #                        "fleet.pickle"), "rb") as f:
+        #     fleet = pickle.load(f)
+        # with open(os.path.join(self.gui.programDirectory,
+        #                        "fleet.json"), "wt") as f:
+        #     json.dump(fleet.toJSON(), f, sort_keys = True, indent = 4)
+        with open(os.path.join(self.gui.programDirectory,
+                               "fleet.json"), "rt") as f:
+            fleet = Fleet.fromJSON(json.load(f))
+        # with open(os.path.join(self.gui.programDirectory,
+        #                        "fleet1.json"), "wt") as f:
+        #     json.dump(fleet.toJSON(), f, sort_keys = True, indent = 4)
+
+        # with open(os.path.join(self.gui.programDirectory,
+        #                        "gates.pickle"), "rb") as f:
+        #     gates = pickle.load(f)
+        # with open(os.path.join(self.gui.programDirectory,
+        #                        "gates.json"), "wt") as f:
+        #     json.dump(gates.toJSON(), f, sort_keys = True, indent = 4)
+        with open(os.path.join(self.gui.programDirectory,
+                               "gates.json"), "rt") as f:
+            gates = Gates.fromJSON(json.load(f))
+        # with open(os.path.join(self.gui.programDirectory,
+        #                        "gates1.json"), "wt") as f:
+        #     json.dump(gates.toJSON(), f, sort_keys = True, indent = 4)
+
+        class OfflineLoginResult:
+            def __init__(self, fleet, gates, gui):
+                self.loggedIn = False
+                if gui.config and gui.config.pilotID:
+                    self.pilotID = gui.config.pilotID
+                else:
+                    self.pilotID = "P999"
+                self.pilotName = "Joe Captain"
+                self.fleet = fleet
+                self.gates = gates
+                self.reportedFlights = []
+                self.rejectedFlights = []
+                self.flights = []
+                self.sessionID = "".join(random.choices("0123456789", k = 16))
+        self._loginResult = OfflineLoginResult(fleet, gates, self.gui)
 
     def reloadFlights(self, callback):
