Index: trip-planner-front/node_modules/ua-parser-js/test/browser-test.json
===================================================================
--- trip-planner-front/node_modules/ua-parser-js/test/browser-test.json	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
+++ trip-planner-front/node_modules/ua-parser-js/test/browser-test.json	(revision bdd64917749115bbdd228a9569a675d590c112e3)
@@ -161,4 +161,14 @@
     },
     {
+        "desc"    : "Camino on Mac",
+        "ua"      : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:2.0.1) Gecko/20100101 Firefox/4.0.1 Camino/2.2.1",
+        "expect"  :
+        {
+            "name"    : "Camino",
+            "version" : "2.2.1",
+            "major"   : "2"
+        }
+    },
+    {
         "desc"    : "Chimera",
         "ua"      : "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; pl-PL; rv:1.0.1) Gecko/20021111 Chimera/0.6",
@@ -428,4 +438,14 @@
             "version" : "1.0a1",
             "major"   : "1"
+        }
+    },
+    {
+        "desc"    : "Firefox for Maemo (Nokia N900)",
+        "ua"      : "Mozilla/5.0 (Maemo; Linux armv7l; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 Fennec/10.0.1",
+        "expect"  :
+        {
+            "name"    : "Fennec",
+            "version" : "10.0.1",
+            "major"   : "10"
         }
     },
@@ -730,4 +750,14 @@
     },
     {
+        "desc"    : "Netscape 6",
+        "ua"      : "Mozilla/5.0 (Windows; U; Win95; de-DE; rv:0.9.2) Gecko/20010726 Netscape6/6.1",
+        "expect"  :
+        {
+            "name"    : "Netscape",
+            "version" : "6.1",
+            "major"   : "6"
+        }
+    },
+    {
         "desc"    : "Nokia Browser",
         "ua"      : "Mozilla/5.0 (Symbian/3; Series60/5.2 NokiaN8-00/025.007; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/533.4 (KHTML, like Gecko) NokiaBrowser/7.3.1.37 Mobile Safari/533.4 3gpp-gba",
@@ -740,4 +770,24 @@
     },
     {
+        "desc"    : "Obigo",
+        "ua"      : "LG-GS290/V100 Obigo/WAP2.0 Profile/MIDP-2.1 Configuration/CLDC-1.1",
+        "expect"  :
+        {
+            "name"    : "Obigo",
+            "version" : "WAP2.0",
+            "major"   : "2"
+        }
+    },
+    {
+        "desc"    : "Obigo",
+        "ua"      : "LG/KU990i/v10a Browser/Obigo-Q05A/3.6 MMS/LG-MMS-V1.0/1.2 Java/ASVM/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1",
+        "expect"  :
+        {
+            "name"    : "Obigo",
+            "version" : "Q05A",
+            "major"   : "05"
+        }
+    },
+    {
         "desc"    : "Oculus Browser",
         "ua"      : "Mozilla/5.0 (Linux; Android 7.0; SM-G920I Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) OculusBrowser/3.4.9 SamsungBrowser/4.0 Chrome/57.0.2987.146 Mobile VR Safari/537.36",
@@ -750,4 +800,14 @@
     },
     {
+        "desc"    : "Oculus Browser",
+        "ua"      : "Mozilla/5.0 (Linux; Android 10; Quest 2) AppleWebKit/537.36 (KHTML, like Gecko) OculusBrowser/15.0.0.0.22.280317669 SamsungBrowser/4.0 Chrome/89.0.4389.90 VR Safari/537.36",
+        "expect"  :
+        {
+            "name"    : "Oculus Browser",
+            "version" : "15.0.0.0.22.280317669",
+            "major"   : "15"
+        }
+    },
+    {
         "desc"    : "OmniWeb",
         "ua"      : "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85 (KHTML, like Gecko) OmniWeb/v558.48",
@@ -960,4 +1020,14 @@
     },
     {
+        "desc"    : "SeaMonkey on Mac",
+        "ua"      : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.5; rv:10.0.1) Gecko/20100101 Firefox/10.0.1 SeaMonkey/2.7.1",
+        "expect"  :
+        {
+            "name"    : "SeaMonkey",
+            "version" : "2.7.1",
+            "major"   : "2"
+        }
+    },
+    {
         "desc"    : "Silk Browser",
         "ua"      : "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.1.0-84)",
@@ -1090,4 +1160,14 @@
     },
     {
+        "desc"    : "UPBrowser",
+        "ua"      : "BenQ-CF61/1.00/WAP2.0/MIDP2.0/CLDC1.0 UP.Browser/6.3.0.4.c.1.102 (GUI) MMP/2.0",
+        "expect"  :
+        {
+            "name"    : "UP.Browser",
+            "version" : "6.3.0.4.c.1.102",
+            "major"   : "6"
+        }
+    },
+    {
         "desc": "WeChat on iOS",
         "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 8_4_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12H321 MicroMessenger/6.3.6 NetType/WIFI Language/zh_CN",
@@ -1230,4 +1310,14 @@
     },
     {
+        "desc"    : "Firefox iOS using iPad",
+        "ua"      : "Mozilla/5.0 (iPad; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) FxiOS/1.0 Mobile/12F69 Safari/600.1.4",
+        "expect"  :
+        {
+            "name"    : "Firefox",
+            "version" : "1.0",
+            "major"   : "1"
+        }
+    },
+    {
         "desc"    : "QQ on iOS",
         "ua"      : "Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Mobile/14A456 QQ/6.5.3.410 V1_IPH_SQ_6.5.3_1_APP_A Pixel/1080 Core/UIWebView NetType/WIFI Mem/26",
Index: trip-planner-front/node_modules/ua-parser-js/test/cpu-test.json
===================================================================
--- trip-planner-front/node_modules/ua-parser-js/test/cpu-test.json	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
+++ trip-planner-front/node_modules/ua-parser-js/test/cpu-test.json	(revision bdd64917749115bbdd228a9569a675d590c112e3)
@@ -81,4 +81,12 @@
     },
     {
+        "desc"    : "Nokia N900 Linux mobile",
+        "ua"      : "Mozilla/5.0 (Maemo; Linux armv7l; rv:10.0) Gecko/20100101 Firefox/10.0 Fennec/10.0",
+        "expect"  :
+        {
+            "architecture"  : "arm"
+        }
+    },
+    {
         "desc"    : "ARMEABI",
         "ua"      : "[FBAN/FB4A;FBAV/237.0.0.44.120;FBBV/170693408;FBDM/{density=1.75,width=720,height=1280};FBLC/en_US;FBRV/172067074;FBCR/ ;FBMF/samsung;FBBD/samsung;FBPN/com.facebook.katana;FBDV/SM-S367VL;FBSV/9;FBBK/1;FBOP/19;FBCA/armeabi-v7a:armeabi;]",
@@ -105,4 +113,20 @@
     },
     {
+        "desc"    : "ARM64",
+        "ua"      : "Mozilla/5.0 (Windows NT 10.0; ARM64; RM-1096) AppleWebKit/537.36 (KHTML like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393",
+        "expect"  :
+        {
+            "architecture"  : "arm64"
+        }
+    },
+    {
+        "desc"    : "ARM64",
+        "ua"      : "Mozilla/5.0 (Linux; arm_64; Android 9; HRY-LX1T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 YaBrowser/19.12.1.121.00 Mobile Safari/537.36",
+        "expect"  :
+        {
+            "architecture"  : "arm64"
+        }
+    },
+    {
         "desc"    : "Pocket PC",
         "ua"      : "Opera/9.7 (Windows Mobile; PPC; Opera Mobi/35166; U; en) Presto/2.2.1",
@@ -131,4 +155,12 @@
         "desc"    : "Mac PowerPC",
         "ua"      : "iCab/2.9.5 (Macintosh; U; PPC; Mac OS X)",
+        "expect"  :
+        {
+            "architecture"  : "ppc"
+        }
+    },
+    {
+        "desc"    : "Mac OS X on PowerPC using Firefox",
+        "ua"      : "Mozilla/5.0 (Macintosh; PPC Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0",
         "expect"  :
         {
Index: trip-planner-front/node_modules/ua-parser-js/test/device-test.json
===================================================================
--- trip-planner-front/node_modules/ua-parser-js/test/device-test.json	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
+++ trip-planner-front/node_modules/ua-parser-js/test/device-test.json	(revision bdd64917749115bbdd228a9569a675d590c112e3)
@@ -99,4 +99,13 @@
     },
     {
+        "desc": "ASUS Zenfone Max Pro",
+        "ua": "Mozilla/5.0 (Linux; Android 9; ZB602KL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.116 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "ASUS",
+            "model": "ZB602KL",
+            "type": "mobile"
+        }
+    },
+    {
         "desc": "ASUS Zenfone Max Pro (M1)",
         "ua": "Mozilla/5.0 (Linux; Android 8.1; ASUS_X00TD Build/OPM1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.137 Mobile Safari/537.36",
@@ -207,4 +216,22 @@
     },
     {
+        "desc": "Fairphone 2",
+        "ua": "Mozilla/5.0 (Linux; Android 7.1.2; FP2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.136 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Fairphone",
+            "model": "FP2",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Fairphone 3",
+        "ua": "Mozilla/5.0 (Linux; Android 9; FP3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.93 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Fairphone",
+            "model": "FP3",
+            "type": "mobile"
+        }
+    },
+    {
         "desc": "HTC Desire 820",
         "ua": "Mozilla/5.0 (Linux; Android 6.0.1; HTC Desire 820 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36",
@@ -266,4 +293,337 @@
             "vendor": "Huawei",
             "model": "LUA-L03",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "HUAWEI MediaPad M3 Lite 10",
+        "ua": "Mozilla/5.0 (Linux; Android 7.0; BAH-L09) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.80 Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "BAH-L09",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "HUAWEI MediaPad M5 Lite",
+        "ua": "Mozilla/5.0 (Linux; Android 8.0.0; BAH2-W19 Build/HUAWEIBAH2-W19; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "BAH2-W19",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "HUAWEI MediaPad M5",
+        "ua": "Mozilla/5.0 (Linux; Android 9; SHT-AL09 Build/HUAWEISHT-AL09; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.90 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "SHT-AL09",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "HUAWEI MediaPad T5",
+        "ua": "Mozilla/5.0 (Linux; Android 8.0.0; AGS2-L09 Build/HUAWEIAGS2-L09; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/84.0.4147.125 Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "AGS2-L09",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "HUAWEI MediaPad T10",
+        "ua": "Mozilla/5.0 (Linux; Android 10; AGR-W09 Build/HUAWEIAGR-W09; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "AGR-W09",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "HUAWEI MediaPad T10s",
+        "ua": "Mozilla/5.0 (Linux; Android 10; AGS3-W09 Build/HUAWEIAGS3-W09; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "AGS3-W09",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Huawei MatePad T 10",
+        "ua": "Mozilla/5.0 (Linux; Android 10; AGR-L09; HMSCore 5.0.4.301) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 HuaweiBrowser/11.0.3.304 Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "AGR-L09",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Huawei M3",
+        "ua": "Mozilla/5.0 (Linux; Android 7.0; BTV-W09) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.116 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "BTV-W09",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Huawei Mate 10 Pro",
+        "ua": "Mozilla/5.0 (Linux; Android 8.0; BLA-L29 Build/HUAWEIBLA-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3236.6 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "BLA-L29",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei Mate X",
+        "ua": "Mozilla/5.0 (Linux; Android 9; TAH-AN00) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.111 Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "TAH-AN00",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei Mate X2",
+        "ua": "Mozilla/5.0 (Linux; Android 10; TET-AN00) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.96 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "TET-AN00",
+            "type": "mobile"
+        }
+    },
+    {
+      "desc": "Huawei Mate 20 X",
+      "ua": "Mozilla/5.0 (Linux; Android 9; EVR-L29 Build/HUAWEIEVR-L29; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.110 Mobile Safari/537.36",
+      "expect": {
+          "vendor": "Huawei",
+          "model": "EVR-L29",
+          "type": "mobile"
+      }
+    },
+    {
+      "desc": "Huawei Mate 20 Pro",
+      "ua": "Mozilla/5.0 (Linux; Android 9; LYA-L09) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.90 Mobile Safari/537.36",
+      "expect": {
+          "vendor": "Huawei",
+          "model": "LYA-L09",
+          "type": "mobile"
+      }
+    },
+    {
+      "desc": "Huawei Mate 20 Pro",
+      "ua": "Mozilla/5.0 (Linux; Android 9; LYA-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.90 Mobile Safari/537.36",
+      "expect": {
+          "vendor": "Huawei",
+          "model": "LYA-AL00",
+          "type": "mobile"
+      }
+    },
+    {
+        "desc": "Huawei P20 Lite",
+        "ua": "Mozilla/5.0 (Linux; Android 8.0.0; ANE-LX1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.143 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "ANE-LX1",
+            "type": "mobile"
+        }
+    },
+    {
+      "desc": "Huawei P20",
+      "ua": "Mozilla/5.0 (Linux; Android 8.1.0; EML-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Mobile Safari/537.36",
+      "expect": {
+          "vendor": "Huawei",
+          "model": "EML-L29",
+          "type": "mobile"
+      }
+    },
+    {
+        "desc": "Huawei P20 Pro",
+        "ua": "Mozilla/5.0 (Linux; Android 9; CLT-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.90 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "CLT-L29",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei P30",
+        "ua": "Mozilla/5.0 (Linux; Android 9; ELE-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.90 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "ELE-L29",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei P30 Pro",
+        "ua": "Mozilla/5.0 (Linux; Android 9; VOG-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.143 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "VOG-L29",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei P40",
+        "ua": "Mozilla/5.0 (Linux; Android 10; ANA-AN00 Build/HUAWEIANA-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 Mobile Safari/537.36 T7/11.26 SP-engine/2.22.0 baiduboxapp/11.26.0.10 (Baidu; P1 10) NABar/1.0",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "ANA-AN00",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei P40 Pro",
+        "ua": "Mozilla/5.0 (Linux; Android 10; ELS-AN00 Build/HUAWEIELS-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 Mobile Safari/537.36 mailapp/6.0.0",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "ELS-AN00",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei 30 Pro+",
+        "ua": "Mozilla/5.0 (Linux; Android 10; EBG-AN10 Build/HUAWEIEBG-AN10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.86 Mobile Safari/537.36 EdgA/42.0.0.2741",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "EBG-AN10",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei 30S",
+        "ua": "Mozilla/5.0 (Linux; Android 10; CDY-AN90 Build/HUAWEICDY-AN90; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 Mobile Safari/537.36 mailapp/5.8.0",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "CDY-AN90",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei Enjoy10e",
+        "ua": "Dalvik/2.1.0 (Linux; U; Android 10; MED-AL00 Build/HUAWEIMED-AL00)",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "MED-AL00",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei Honor 6A",
+        "ua": "Mozilla/5.0 (Linux; Android 7.0; DLI-L22 Build/HONORDLI-L22; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.116 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/252.0.0.22.355;]",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "DLI-L22",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei Honor 7",
+        "ua": "Mozilla/5.0 (Linux; Android 6.0; PLK-L01 Build/HONORPLK-L01; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.116 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "PLK-L01",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei 10 Lite",
+        "ua": "Mozilla/5.0 (Linux; Android 9; HRY-LX1 Build/HONORHRY-LX1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.91 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "HRY-LX1",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei Y7 2018",
+        "ua": "Mozilla/5.0 (Linux; Android 8.0.0; LDN-L01) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.62 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "LDN-L01",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei Honor 8X",
+        "ua": "Mozilla/5.0 (Linux; Android 9; JSN-L21) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "JSN-L21",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei Y6 2019",
+        "ua": "Mozilla/5.0 (Linux; Android 9; MRD-LX1N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "MRD-LX1N",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei Y9 2019",
+        "ua": "Mozilla/5.0 (Linux; Android 9; JKM-LX2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.136 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "JKM-LX2",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei Y5",
+        "ua": "Mozilla/5.0 (Linux; Android 9; AMN-LX3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.116 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "AMN-LX3",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei Y7p",
+        "ua": "Mozilla/5.0 (Linux; Android 9; ART-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.92 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "ART-L29",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei Mate 20 Lite",
+        "ua": "Mozilla/5.0 (Linux; Android 8.1.0; SNE-LX1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.116 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "SNE-LX1",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei P10 Lite",
+        "ua": "Mozilla/5.0 (Linux; Android 8.0.0; WAS-LX1A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.90 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "WAS-LX1A",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei Y5 Lite 2018",
+        "ua": "Mozilla/5.0 (Linux; Android 8.1.0; DRA-LX5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "DRA-LX5",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Huawei Honor 8C",
+        "ua": "Mozilla/5.0 (Linux; Android 8.1.0; BKK-LX2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.136 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Huawei",
+            "model": "BKK-LX2",
             "type": "mobile"
         }
@@ -369,4 +729,49 @@
     },
     {
+        "desc": "LG V40 ThinQ",
+        "ua": "Mozilla/5.0 (Linux; Android 9; LM-V405) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.136 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "LG",
+            "model": "LM-V405",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "LG K30",
+        "ua": "Mozilla/5.0 (Linux; Android 8.1.0; LM-X410.F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.116 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "LG",
+            "model": "LM-X410.F",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "LG K30",
+        "ua": "Mozilla/5.0 (Linux; Android 9; LM-X410.FGN) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.93 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "LG",
+            "model": "LM-X410.FGN",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "LG Stylo 5",
+        "ua": "Mozilla/5.0 (Linux; Android 9; LM-Q720) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.96 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "LG",
+            "model": "LM-Q720",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "LG G7 ThinQ",
+        "ua": "Mozilla/5.0 (Linux; Android 9; LM-G710VM Build/PKQ1.181105.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.136 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "LG",
+            "model": "LM-G710VM",
+            "type": "mobile"
+        }
+    },
+    {
         "desc": "LG K500",
         "ua": "Mozilla/5.0 (Linux; Android 6.0.1; LG-K500 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Mobile Safari/537.36",
@@ -425,4 +830,13 @@
         "desc": "LG Smart TV",
         "ua": "Mozilla/5.0 (Linux; NetCast; U) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/53.0.2785 34 Safari/537.31 SmartTV/8.5",
+        "expect": {
+            "vendor": "LG",
+            "model": "undefined",
+            "type": "smarttv"
+        }
+    },
+    {
+        "desc": "LG Android TV",
+        "ua": "Mozilla/5.0 (Linux; U; Android 4.2.2; zh-cn; LG Android TV Build/JDQ39) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Safari/534.30",
         "expect": {
             "vendor": "LG",
@@ -641,9 +1055,27 @@
     },
     {
+        "desc": "Oculus Quest",
+        "ua": "Mozilla/5.0 (Linux; Android 10; Quest) AppleWebKit/537.36 (KHTML, like Gecko) OculusBrowser/15.0.0.0.22.280317669 SamsungBrowser/4.0 Chrome/89.0.4389.90 VR Safari/537.36",
+        "expect": {
+            "vendor": "Facebook",
+            "model": "Quest",
+            "type": "wearable"
+        }
+    },
+    {
+        "desc": "Oculus Quest 2",
+        "ua": "Mozilla/5.0 (Linux; Android 10; Quest 2) AppleWebKit/537.36 (KHTML, like Gecko) OculusBrowser/15.0.0.0.22.280317669 SamsungBrowser/4.0 Chrome/89.0.4389.90 VR Safari/537.36",
+        "expect": {
+            "vendor": "Facebook",
+            "model": "Quest 2",
+            "type": "wearable"
+        }
+    },
+    {
         "desc": "OnePlus One",
         "ua": "Mozilla/5.0 (Linux; Android 4.4.4; A0001 Build/KTU84Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.59 Mobile Safari/537.36",
         "expect": {
             "vendor": "OnePlus",
-            "model": "1",
+            "model": "A0001",
             "type": "mobile"
         }
@@ -654,5 +1086,14 @@
         "expect": {
             "vendor": "OnePlus",
-            "model": "1",
+            "model": "A0001",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "OnePlus 2",
+        "ua": "Mozilla/5.0 (Linux; Android 6.0.1; ONE A2003) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.93 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "OnePlus",
+            "model": "A2003",
             "type": "mobile"
         }
@@ -803,4 +1244,13 @@
     },
     {
+        "desc": "OPPO Reno5 A",
+        "ua": "Mozilla/5.0 (Linux; Android 11; A101OP) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "OPPO",
+            "model": "A101OP",
+            "type": "mobile"
+        }
+    },
+    {
         "desc": "OPPO Find X",
         "ua": "Mozilla/5.0 (Linux; Android 8.1; PAFM00 Build/OPM1.171019.026) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Mobile Safari/537.36",
@@ -830,4 +1280,13 @@
     },
     {
+        "desc": "Realme C2",
+        "ua": "Mozilla/5.0 (Linux; Android 9; RMX1941) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Realme",
+            "model": "RMX1941",
+            "type": "mobile"
+        }
+    },
+    {
         "desc": "Realme Narzo 20",
         "ua": "Mozilla/5.0 (Linux; U; Android 10; xx-xx; RMX2193 Build/QP1A.190711.020) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.80 Mobile Safari/537.36",
@@ -835,4 +1294,13 @@
             "vendor": "Realme",
             "model": "RMX2193",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Realme 2 Pro",
+        "ua": "Mozilla/5.0 (Linux; Android 9; RMX1801) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.136 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Realme",
+            "model": "RMX1801",
             "type": "mobile"
         }
@@ -848,4 +1316,31 @@
     },
     {
+        "desc": "Roku",
+        "ua": "Mozilla/5.0 (Roku) AppleWebKit/537.36 (KHTML, like Gecko) Web/1.1 Safari/537.36",
+        "expect": {
+            "vendor": "Roku",
+            "model": "",
+            "type": "smarttv"
+        }
+    },
+    {
+        "desc": "Roku",
+        "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36 Roku/DVP-8.10 (468.10E04145A)",
+        "expect": {
+            "vendor": "Roku",
+            "model": "DVP-8.10",
+            "type": "smarttv"
+        }
+    },
+    {
+        "desc": "Roku",
+        "ua": "Roku4640X/DVP-7.70 (297.70E04154A)",
+        "expect": {
+            "vendor": "Roku",
+            "model": "DVP-7.70",
+            "type": "smarttv"
+        }
+    },
+    {
         "desc": "Kindle Fire HD",
         "ua": "Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.4 Mobile Safari/535.19 Silk-Accelerated=true",
@@ -1082,4 +1577,31 @@
     },
     {
+        "desc": "Sharp Aquos B10",
+        "ua": "Mozilla/5.0 (Linux; Android 7.0; SH-A01) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Sharp",
+            "model": "SH-A01",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Sharp Aquos L2",
+        "ua": "Mozilla/5.0 (Linux; Android 7.0; SH-L02 Build/S4045) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Sharp",
+            "model": "SH-L02",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Sharp Aquos R2",
+        "ua": "Mozilla/5.0 (Linux; Android 8.0; SHV42) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.92 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Sharp",
+            "model": "SHV42",
+            "type": "mobile"
+        }
+    },
+    {
         "desc": "Sony G8141 (Xperia XZ Premium)",
         "ua": "Mozilla/5.0 (Linux; Android 8.0.0; G8141) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.80 Mobile Safari/537.36",
@@ -1150,4 +1672,13 @@
             "vendor": "Sony",
             "model": "XQ-AT51",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Sony Xperia 1ii",
+        "ua": "Mozilla/5.0 (Linux; Android 10; SOG01) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.127 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Sony",
+            "model": "SOG01",
             "type": "mobile"
         }
@@ -1309,4 +1840,49 @@
     },
     {
+        "desc": "Xiaomi Mi Max 3",
+        "ua": "Mozilla/5.0 (Linux; Android 9; MI MAX 3 Build/PKQ1.181007.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/79.0.3945.116 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "MI MAX 3",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Xiaomi Mi A1",
+        "ua": "Mozilla/5.0 (Linux; Android 9; Mi A1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.101 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "Mi A1",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Xiaomi Mi A2 Lite",
+        "ua": "Mozilla/5.0 (Linux; Android 9; Mi A2 Lite) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.62 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "Mi A2 Lite",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Xiaomi Mi 9 SE",
+        "ua": "Mozilla/5.0 (Linux; Android 9; Mi 9 SE) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.136 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "Mi 9 SE",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Xiaomi Mi A2",
+        "ua": "Mozilla/5.0 (Linux; Android 9; Mi A2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Xiaomi",
+            "model": "Mi A2",
+            "type": "mobile"
+        }
+    },
+    {
         "desc": "Xiaomi MI PAD 2",
         "ua": "Mozilla/5.0 (Linux; Android 5.1; MI PAD 2 Build/LMY47I; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/60.0.3112.107 Safari/537.36 [FB_IAB/FB4A;FBAV/137.0.0.24.91;]",
@@ -1694,7 +2270,8 @@
     },
     {
-        "desc": "Android Phone Unidentified Vendor (docomo SH-02M)",
+        "desc": "docomo SH-02M",
         "ua": "Mozilla/5.0 (Linux; Android 9; SH-02M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.136 Mobile Safari/537.36",
         "expect": {
+            "vendor": "Sharp",
             "model": "SH-02M",
             "type": "mobile"
@@ -1858,4 +2435,31 @@
             "vendor": "ZTE",
             "model": "NX629J",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "ZTE Blade A5",
+        "ua": "Mozilla/5.0 (Linux; Android 9; ZTE Blade A5 2019) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.116 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "ZTE",
+            "model": "Blade A5 2019",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "ZTE BLADE V0730",
+        "ua": "Mozilla/5.0 (Linux; Android 6.0; ZTE BLADE V0730) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.116 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "ZTE",
+            "model": "BLADE V0730",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "ZTE B2017G",
+        "ua": "Mozilla/5.0 (Linux; Android 7.1.1; ZTE B2017G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.93 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "ZTE",
+            "model": "B2017G",
             "type": "mobile"
         }
@@ -2069,378 +2673,252 @@
     },
     {
-        "desc": "HUAWEI MediaPad M3 Lite 10",
-        "ua": "Mozilla/5.0 (Linux; Android 7.0; BAH-L09) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.80 Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "BAH-L09",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "HUAWEI MediaPad M5 Lite",
-        "ua": "Mozilla/5.0 (Linux; Android 8.0.0; BAH2-W19 Build/HUAWEIBAH2-W19; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "BAH2-W19",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "HUAWEI MediaPad M5",
-        "ua": "Mozilla/5.0 (Linux; Android 9; SHT-AL09 Build/HUAWEISHT-AL09; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/89.0.4389.90 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "SHT-AL09",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "HUAWEI MediaPad T5",
-        "ua": "Mozilla/5.0 (Linux; Android 8.0.0; AGS2-L09 Build/HUAWEIAGS2-L09; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/84.0.4147.125 Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "AGS2-L09",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "HUAWEI MediaPad T10",
-        "ua": "Mozilla/5.0 (Linux; Android 10; AGR-W09 Build/HUAWEIAGR-W09; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "AGR-W09",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "HUAWEI MediaPad T10s",
-        "ua": "Mozilla/5.0 (Linux; Android 10; AGS3-W09 Build/HUAWEIAGS3-W09; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "AGS3-W09",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Huawei MatePad T 10",
-        "ua": "Mozilla/5.0 (Linux; Android 10; AGR-L09; HMSCore 5.0.4.301) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 HuaweiBrowser/11.0.3.304 Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "AGR-L09",
-            "type": "tablet"
-        }
-    },
-    {
-        "desc": "Huawei Mate 10 Pro",
-        "ua": "Mozilla/5.0 (Linux; Android 8.0; BLA-L29 Build/HUAWEIBLA-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3236.6 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "BLA-L29",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei Mate X",
-        "ua": "Mozilla/5.0 (Linux; Android 9; TAH-AN00) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.111 Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "TAH-AN00",
-            "type": "mobile"
-        }
-    },
-    {
-        "desc": "Huawei Mate X2",
-        "ua": "Mozilla/5.0 (Linux; Android 10; TET-AN00) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.96 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "TET-AN00",
-            "type": "mobile"
-        }
-    },
-    {
-      "desc": "Huawei Mate 20 X",
-      "ua": "Mozilla/5.0 (Linux; Android 9; EVR-L29 Build/HUAWEIEVR-L29; xx-xx) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.110 Mobile Safari/537.36",
-      "expect": {
-          "vendor": "Huawei",
-          "model": "EVR-L29",
-          "type": "mobile"
-      }
-    },
-    {
-      "desc": "Huawei Mate 20 Pro",
-      "ua": "Mozilla/5.0 (Linux; Android 9; LYA-L09) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.90 Mobile Safari/537.36",
-      "expect": {
-          "vendor": "Huawei",
-          "model": "LYA-L09",
-          "type": "mobile"
-      }
-    },
-    {
-      "desc": "Huawei Mate 20 Pro",
-      "ua": "Mozilla/5.0 (Linux; Android 9; LYA-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.90 Mobile Safari/537.36",
-      "expect": {
-          "vendor": "Huawei",
-          "model": "LYA-AL00",
-          "type": "mobile"
-      }
-    },
-    {
-        "desc": "Huawei P20 Lite",
-        "ua": "Mozilla/5.0 (Linux; Android 8.0.0; ANE-LX1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.143 Mobile Safari/537.36",
-        "expect": {
-            "vendor": "Huawei",
-            "model": "ANE-LX1",
-            "type": "mobile"
-        }
-    },
-    {
-      "desc": "Huawei P20",
-      "ua": "Mozilla/5.0 (Linux; Android 8.1.0; EML-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.157 Mobile Safari/537.36",
-      "expect": {
-          "vendor": "Huawei",
-          "model": "EML-L29",
-          "type": "mobile"
-      }
-  },
-  {
-    "desc": "Huawei P20 Pro",
-    "ua": "Mozilla/5.0 (Linux; Android 9; CLT-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.90 Mobile Safari/537.36",
-    "expect": {
-        "vendor": "Huawei",
-        "model": "CLT-L29",
-        "type": "mobile"
+        "desc": "Amazon Fire 7",
+        "ua": "Mozilla/5.0 (Linux; Android 5.1.1; KFAUWI) AppleWebKit/537.36 (KHTML, like Gecko) Silk/80.5.3 like Chrome/80.0.3987.162 Safari/537.36",
+        "expect": {
+            "vendor": "Amazon",
+            "model": "KFAUWI",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "AT&T Radiant Core U304AA",
+        "ua": "Dalvik/2.1.0 (Linux; U; Android 9; U304AA Build/P00610)",
+        "expect": {
+            "vendor": "AT&T",
+            "model": "U304AA",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Vodafone Smart Tab 4G",
+        "ua": "Mozilla/5.0 (Linux; Android 4.4.4; Vodafone Smart Tab 4G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36",
+        "expect": {
+            "vendor": "Vodafone",
+            "model": "Smart Tab 4G",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Vodafone Smart ultra 6",
+        "ua": "Mozilla/5.0 (Linux; Android 5.0.2; Vodafone Smart ultra 6 Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.133 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "Vodafone",
+            "model": "Smart ultra 6",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "4ife 4K Smart TV Box",
+        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; 4ife 4K Smart TV Box Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Safari/537.36 Vinebre",
+        "expect": {
+            "vendor": "undefined",
+            "model": "undefined",
+            "type": "smarttv"
+        }
+    },
+    {
+        "desc": "FaceBook Mobile App",
+        "ua": "[FBAN/FBIOS;FBAV/283.0.0.44.117;FBBV/238386386;FBDV/iPhone12,1;FBMD/iPhone;FBSN/iOS;FBSV/13.6.1;FBSS/2;FBID/phone;FBLC/en_US;FBOP/5;FBRV/240127608]",
+        "expect": {
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Issue #454",
+        "ua": "Mosamzilla/5.0 (Windows; U; Win98; en-US; rv:1.7.5) Gecko/20050603 Netscape/8.0.2",
+        "expect": {
+            "vendor": "undefined",
+            "model": "undefined",
+            "type": "undefined"
+        }
+    },
+    {
+        "desc": "Alcatel",
+        "ua": "Mozilla/5.0 (Linux; Android 4.4.2; ALCATEL A564C Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.133 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "ALCATEL",
+            "model": "A564C",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Alcatel Go Flip",
+        "ua": "Mozilla/5.0 (Mobile; ALCATEL4044T; rv:37.0) Gecko/37.0 Firefox/37.0 KaiOS/1.0",
+        "expect": {
+            "vendor": "ALCATEL",
+            "model": "4044T",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Jolla",
+        "ua": "Mozilla/5.0 (Maemo; Linux; U; Jolla; Sailfish; Mobile; rv:31.0) Gecko/31.0 Firefox/31.0 SailfishBrowser/1.0",
+        "expect": {
+            "vendor": "Jolla",
+            "model": "undefined",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Xbox One",
+        "ua": "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; Xbox; Xbox One)",
+        "expect": {
+            "vendor": "Microsoft",
+            "model": "Xbox One",
+            "type": "console"
+        }
+    },
+    {
+        "desc": "Xbox",
+        "ua": "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Xbox)",
+        "expect": {
+            "vendor": "Microsoft",
+            "model": "Xbox",
+            "type": "console"
+        }
+    },
+    {
+        "desc": "Nvidia Shield Tablet",
+        "ua": "Mozilla/5.0 (Linux; Android 5.1.1; SHIELD Tablet Build/LVY48E; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/45.0.2454.19 Safari/537.36",
+        "expect": {
+            "vendor": "Nvidia",
+            "model": "SHIELD Tablet",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Ouya",
+        "ua": "Mozilla/5.0 (Linux; Android 4.1.2; OUYA Console Build/JZO54L-OUYA) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.84 Safari/537.36",
+        "expect": {
+            "vendor": "OUYA",
+            "model": "undefined",
+            "type": "console"
+        }
+    },
+    {
+        "desc": "Vivo Y52s",
+        "ua": "Mozilla/5.0 (Linux; Android 10; V2057A Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 Mobile Safari/537.36 T7/12.10 SP-engine/2.28.0 baiduboxapp/12.10.0.10 (Baidu; P1 10) NABar/1.0",
+        "expect": {
+            "vendor": "Vivo",
+            "model": "V2057A",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Vivo X60",
+        "ua": "Mozilla/5.0 (Linux; Android 11; V2046A; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36 VivoBrowser/8.8.71.0",
+        "expect": {
+            "vendor": "Vivo",
+            "model": "V2046A",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Vivo Y79A",
+        "ua": "Mozilla/5.0 (Linux; Android 7.1.2; vivo Y79A Build/N2G47H; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36 VivoBrowser/9.0.14.0",
+        "expect": {
+            "vendor": "Vivo",
+            "model": "Y79A",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Vivo Y97",
+        "ua": "Mozilla/5.0 (Linux; Android 8.1.0; V1813T Build/O11019; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36 VivoBrowser/9.0.14.0",
+        "expect": {
+            "vendor": "Vivo",
+            "model": "V1813T",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Vivo iQOO Pro",
+        "ua": "Mozilla/5.0 (Linux; Android 11; V1916A; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36 VivoBrowser/9.1.10.6",
+        "expect": {
+            "vendor": "Vivo",
+            "model": "V1916A",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Unknown Mobile using Firefox",
+        "ua": "Mozilla/5.0 (Android 4.4; Mobile; rv:41.0) Gecko/41.0 Firefox/41.0",
+        "expect": {
+            "vendor": "undefined",
+            "model": "undefined",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Unknown Tablet using Firefox",
+        "ua": "Mozilla/5.0 (Android 4.4; Tablet; rv:41.0) Gecko/41.0 Firefox/41.0",
+        "expect": {
+            "vendor": "undefined",
+            "model": "undefined",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Unknown Mobile using Focus for Android",
+        "ua": "Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/1.0 Chrome/59.0.3029.83 Mobile Safari/537.36",
+        "expect": {
+            "vendor": "undefined",
+            "model": "undefined",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Unknown Tablet using Focus for Android",
+        "ua": "Mozilla/5.0 (Linux; Android 7.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/1.0 Chrome/59.0.3029.83 Safari/537.36",
+        "expect": {
+            "vendor": "undefined",
+            "model": "undefined",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Unknown Device using Focus for Android with GeckoView",
+        "ua": "Mozilla/5.0 (Android 7.0; Mobile; rv:62.0) Gecko/62.0 Firefox/62.0",
+        "expect": {
+            "vendor": "undefined",
+            "model": "undefined",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Unknown Mobile using Firefox OS",
+        "ua": "Mozilla/5.0 (Mobile; rv:26.0) Gecko/26.0 Firefox/26.0",
+        "expect": {
+            "vendor": "undefined",
+            "model": "undefined",
+            "type": "mobile"
+        }
+    },
+    {
+        "desc": "Unknown Tablet using Firefox OS",
+        "ua": "Mozilla/5.0 (Tablet; rv:26.0) Gecko/26.0 Firefox/26.0",
+        "expect": {
+            "vendor": "undefined",
+            "model": "undefined",
+            "type": "tablet"
+        }
+    },
+    {
+        "desc": "Unknown TV using Firefox OS",
+        "ua": "Mozilla/5.0 (TV; rv:44.0) Gecko/44.0 Firefox/44.0",
+        "expect": {
+            "vendor": "undefined",
+            "model": "undefined",
+            "type": "smarttv"
+        }
+    },
+    {
+        "desc": "PDA with Windows CE",
+        "ua": "Mozilla/4.0 (PDA; Windows CE/1.0.1) NetFront/3.0",
+        "expect": {
+            "vendor": "undefined",
+            "model": "undefined",
+            "type": "mobile"
+        }
     }
-  },
-  {
-      "desc": "Huawei P30",
-      "ua": "Mozilla/5.0 (Linux; Android 9; ELE-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.90 Mobile Safari/537.36",
-      "expect": {
-          "vendor": "Huawei",
-          "model": "ELE-L29",
-          "type": "mobile"
-      }
-  },
-  {
-      "desc": "Huawei P30 Pro",
-      "ua": "Mozilla/5.0 (Linux; Android 9; VOG-L29) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.143 Mobile Safari/537.36",
-      "expect": {
-          "vendor": "Huawei",
-          "model": "VOG-L29",
-          "type": "mobile"
-      }
-  },
-  {
-    "desc": "Huawei P40",
-    "ua": "Mozilla/5.0 (Linux; Android 10; ANA-AN00 Build/HUAWEIANA-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 Mobile Safari/537.36 T7/11.26 SP-engine/2.22.0 baiduboxapp/11.26.0.10 (Baidu; P1 10) NABar/1.0",
-    "expect": {
-        "vendor": "Huawei",
-        "model": "ANA-AN00",
-        "type": "mobile"
-    }
-  },
-  {
-    "desc": "Huawei P40 Pro",
-    "ua": "Mozilla/5.0 (Linux; Android 10; ELS-AN00 Build/HUAWEIELS-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 Mobile Safari/537.36 mailapp/6.0.0",
-    "expect": {
-        "vendor": "Huawei",
-        "model": "ELS-AN00",
-        "type": "mobile"
-    }
-  },
-  {
-    "desc": "Huawei 30 Pro+",
-    "ua": "Mozilla/5.0 (Linux; Android 10; EBG-AN10 Build/HUAWEIEBG-AN10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.86 Mobile Safari/537.36 EdgA/42.0.0.2741",
-    "expect": {
-        "vendor": "Huawei",
-        "model": "EBG-AN10",
-        "type": "mobile"
-    }
-  },
-  {
-    "desc": "Huawei 30S",
-    "ua": "Mozilla/5.0 (Linux; Android 10; CDY-AN90 Build/HUAWEICDY-AN90; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.108 Mobile Safari/537.36 mailapp/5.8.0",
-    "expect": {
-        "vendor": "Huawei",
-        "model": "CDY-AN90",
-        "type": "mobile"
-    }
-  },
-  {
-    "desc": "Huawei Enjoy10e",
-    "ua": "Dalvik/2.1.0 (Linux; U; Android 10; MED-AL00 Build/HUAWEIMED-AL00)",
-    "expect": {
-        "vendor": "Huawei",
-        "model": "MED-AL00",
-        "type": "mobile"
-    }
-  },
-  {
-    "desc": "Amazon Fire 7",
-    "ua": "Mozilla/5.0 (Linux; Android 5.1.1; KFAUWI) AppleWebKit/537.36 (KHTML, like Gecko) Silk/80.5.3 like Chrome/80.0.3987.162 Safari/537.36",
-    "expect": {
-        "vendor": "Amazon",
-        "model": "KFAUWI",
-        "type": "tablet"
-    }
-  },
-  {
-    "desc": "AT&T Radiant Core U304AA",
-    "ua": "Dalvik/2.1.0 (Linux; U; Android 9; U304AA Build/P00610)",
-    "expect": {
-        "vendor": "AT&T",
-        "model": "U304AA",
-        "type": "mobile"
-    }
-  },
-  {
-    "desc": "Vodafone Smart Tab 4G",
-    "ua": "Mozilla/5.0 (Linux; Android 4.4.4; Vodafone Smart Tab 4G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36",
-    "expect": {
-        "vendor": "Vodafone",
-        "model": "Smart Tab 4G",
-        "type": "tablet"
-    }
-  },
-  {
-    "desc": "Vodafone Smart ultra 6",
-    "ua": "Mozilla/5.0 (Linux; Android 5.0.2; Vodafone Smart ultra 6 Build/LRX22G) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.133 Mobile Safari/537.36",
-    "expect": {
-        "vendor": "Vodafone",
-        "model": "Smart ultra 6",
-        "type": "tablet"
-    }
-  },
-  {
-    "desc": "4ife 4K Smart TV Box",
-    "ua": "Mozilla/5.0 (Linux; Android 4.4.2; 4ife 4K Smart TV Box Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Safari/537.36 Vinebre",
-    "expect": {
-        "vendor": "undefined",
-        "model": "undefined",
-        "type": "smarttv"
-    }
-  },
-  {
-    "desc": "FaceBook Mobile App",
-    "ua": "[FBAN/FBIOS;FBAV/283.0.0.44.117;FBBV/238386386;FBDV/iPhone12,1;FBMD/iPhone;FBSN/iOS;FBSV/13.6.1;FBSS/2;FBID/phone;FBLC/en_US;FBOP/5;FBRV/240127608]",
-    "expect": {
-        "type": "mobile"
-    }
-  },
-  {
-    "desc": "Issue #454",
-    "ua": "Mosamzilla/5.0 (Windows; U; Win98; en-US; rv:1.7.5) Gecko/20050603 Netscape/8.0.2",
-    "expect": {
-        "vendor": "undefined",
-        "model": "undefined",
-        "type": "undefined"
-    }
-  },
-  {
-    "desc": "Alcatel",
-    "ua": "Mozilla/5.0 (Linux; Android 4.4.2; ALCATEL A564C Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.133 Mobile Safari/537.36",
-    "expect": {
-        "vendor": "ALCATEL",
-        "model": "A564C",
-        "type": "mobile"
-    }
-  },
-  {
-    "desc": "Alcatel Go Flip",
-    "ua": "Mozilla/5.0 (Mobile; ALCATEL4044T; rv:37.0) Gecko/37.0 Firefox/37.0 KaiOS/1.0",
-    "expect": {
-        "vendor": "ALCATEL",
-        "model": "4044T",
-        "type": "mobile"
-    }
-  },
-  {
-    "desc": "Jolla",
-    "ua": "Mozilla/5.0 (Maemo; Linux; U; Jolla; Sailfish; Mobile; rv:31.0) Gecko/31.0 Firefox/31.0 SailfishBrowser/1.0",
-    "expect": {
-        "vendor": "Jolla",
-        "model": "undefined",
-        "type": "mobile"
-    }
-  },
-  {
-    "desc": "Xbox One",
-    "ua": "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; Xbox; Xbox One)",
-    "expect": {
-        "vendor": "Microsoft",
-        "model": "Xbox One",
-        "type": "console"
-    }
-  },
-  {
-    "desc": "Xbox",
-    "ua": "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; Xbox)",
-    "expect": {
-        "vendor": "Microsoft",
-        "model": "Xbox",
-        "type": "console"
-    }
-  },
-  {
-    "desc": "Nvidia Shield Tablet",
-    "ua": "Mozilla/5.0 (Linux; Android 5.1.1; SHIELD Tablet Build/LVY48E; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/45.0.2454.19 Safari/537.36",
-    "expect": {
-        "vendor": "Nvidia",
-        "model": "SHIELD Tablet",
-        "type": "tablet"
-    }
-  },
-  {
-    "desc": "Ouya",
-    "ua": "Mozilla/5.0 (Linux; Android 4.1.2; OUYA Console Build/JZO54L-OUYA) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.84 Safari/537.36",
-    "expect": {
-        "vendor": "OUYA",
-        "model": "undefined",
-        "type": "console"
-    }
-  },
-  {
-    "desc": "Vivo Y52s",
-    "ua": "Mozilla/5.0 (Linux; Android 10; V2057A Build/QP1A.190711.020; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/76.0.3809.89 Mobile Safari/537.36 T7/12.10 SP-engine/2.28.0 baiduboxapp/12.10.0.10 (Baidu; P1 10) NABar/1.0",
-    "expect": {
-        "vendor": "Vivo",
-        "model": "V2057A",
-        "type": "mobile"
-    }
-  },
-  {
-    "desc": "Vivo X60",
-    "ua": "Mozilla/5.0 (Linux; Android 11; V2046A; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36 VivoBrowser/8.8.71.0",
-    "expect": {
-        "vendor": "Vivo",
-        "model": "V2046A",
-        "type": "mobile"
-    }
-  },
-  {
-    "desc": "Vivo Y79A",
-    "ua": "Mozilla/5.0 (Linux; Android 7.1.2; vivo Y79A Build/N2G47H; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36 VivoBrowser/9.0.14.0",
-    "expect": {
-        "vendor": "Vivo",
-        "model": "Y79A",
-        "type": "mobile"
-    }
-  },
-  {
-    "desc": "Vivo Y97",
-    "ua": "Mozilla/5.0 (Linux; Android 8.1.0; V1813T Build/O11019; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36 VivoBrowser/9.0.14.0",
-    "expect": {
-        "vendor": "Vivo",
-        "model": "V1813T",
-        "type": "mobile"
-    }
-  },
-  {
-    "desc": "Vivo iQOO Pro",
-    "ua": "Mozilla/5.0 (Linux; Android 11; V1916A; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.84 Mobile Safari/537.36 VivoBrowser/9.1.10.6",
-    "expect": {
-        "vendor": "Vivo",
-        "model": "V1916A",
-        "type": "mobile"
-    }
-  }
 ]
Index: trip-planner-front/node_modules/ua-parser-js/test/os-test.json
===================================================================
--- trip-planner-front/node_modules/ua-parser-js/test/os-test.json	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
+++ trip-planner-front/node_modules/ua-parser-js/test/os-test.json	(revision bdd64917749115bbdd228a9569a675d590c112e3)
@@ -109,4 +109,13 @@
     },
     {
+        "desc"    : "Windows Mobile",
+        "ua"      : "Opera/9.80 (Windows Mobile; WCE; Opera Mobi/WMD-50433; U; en) Presto/2.4.13 Version/10.00",
+        "expect"  :
+        {
+            "name"    : "Windows Mobile",
+            "version" : "undefined"
+        }
+    },
+    {
         "desc"    : "Windows Phone",
         "ua"      : "Opera/9.80 (Windows Phone; Opera Mini/7.6.8/35.7518; U; ru) Presto/2.8.119 Version/11.10",
@@ -136,4 +145,22 @@
     },
     {
+        "desc"    : "Windows NT on x86 or aarch64 CPU using Firefox",
+        "ua"      : "Mozilla/5.0 (Windows NT x.y; rv:10.0) Gecko/20100101 Firefox/10.0",
+        "expect"  :
+        {
+            "name"    : "Windows",
+            "version" : "NT x"
+        }
+    },
+    {
+        "desc"    : "Windows NT on x64 CPU using Firefox",
+        "ua"      : "Mozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0) Gecko/20100101 Firefox/10.0",
+        "expect"  :
+        {
+            "name"    : "Windows",
+            "version" : "NT x"
+        }
+    },
+    {
         "desc"    : "BlackBerry",
         "ua"      : "BlackBerry9300/5.0.0.912 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/378",
@@ -280,4 +307,13 @@
     },
     {
+        "desc"    : "Nokia N900 Linux mobile, on the Fennec browser",
+        "ua"      : "Mozilla/5.0 (Maemo; Linux armv7l; rv:10.0) Gecko/20100101 Firefox/10.0 Fennec/10.0",
+        "expect"  :
+        {
+            "name"    : "Maemo",
+            "version" : "undefined"
+        }
+    },
+    {
         "desc"    : "MeeGo",
         "ua"      : "Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13",
@@ -321,5 +357,23 @@
         {
             "name"    : "Firefox OS",
-            "version" : "undefined"
+            "version" : "14.0"
+        }
+    },
+    {
+        "desc"    : "Firefox OS on Tablet",
+        "ua"      : "Mozilla/5.0 (Tablet; rv:26.0) Gecko/26.0 Firefox/26.0",
+        "expect"  :
+        {
+            "name"    : "Firefox OS",
+            "version" : "26.0"
+        }
+    },
+    {
+        "desc"    : "Firefox OS on TV",
+        "ua"      : "Mozilla/5.0 (TV; rv:44.0) Gecko/44.0 Firefox/44.0",
+        "expect"  :
+        {
+            "name"    : "Firefox OS",
+            "version" : "44.0"
         }
     },
@@ -551,9 +605,9 @@
     {
         "desc"    : "Slackware",
-        "ua"      : "",
-        "expect"  :
-        {
-            "name"    : "",
-            "version" : ""
+        "ua"      : "Mozilla/5.0 Slackware/13.37 (X11; U; Linux x86_64; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41",
+        "expect"  :
+        {
+            "name"    : "Slackware",
+            "version" : "13.37"
         }
     },
@@ -614,9 +668,9 @@
     {
         "desc"    : "Solaris",
-        "ua"      : "",
-        "expect"  :
-        {
-            "name"    : "",
-            "version" : ""
+        "ua"      : "Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.7) Gecko/20070606",
+        "expect"  :
+        {
+            "name"    : "Solaris",
+            "version" : "sun4u"
         }
     },
@@ -650,9 +704,9 @@
     {
         "desc"    : "DragonFly",
-        "ua"      : "",
-        "expect"  :
-        {
-            "name"    : "",
-            "version" : ""
+        "ua"      : "Mozilla/5.0 (X11; U; DragonFly i386; de; rv:1.9.1) Gecko/20090720 Firefox/3.5.1",
+        "expect"  :
+        {
+            "name"    : "DragonFly",
+            "version" : "undefined"
         }
     },
@@ -685,4 +739,31 @@
     },
     {
+        "desc"    : "Mac OS on PowerPC",
+        "ua"      : "Mozilla/4.0 (compatible; MSIE 5.0b1; Mac_PowerPC)",
+        "expect"  :
+        {
+            "name"    : "Mac OS",
+            "version" : "undefined"
+        }
+    },
+    {
+        "desc"    : "Mac OS X on x86, x86_64, or aarch64 using Firefox",
+        "ua"      : "Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0",
+        "expect"  :
+        {
+            "name"    : "Mac OS",
+            "version" : "x.y"
+        }
+    },
+    {
+        "desc"    : "Mac OS X on PowerPC using Firefox",
+        "ua"      : "Mozilla/5.0 (Macintosh; PPC Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0",
+        "expect"  :
+        {
+            "name"    : "Mac OS",
+            "version" : "x.y"
+        }
+    },
+    {
         "desc"    : "Mac OS",
         "ua"      : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36",
@@ -767,153 +848,270 @@
     {
         "desc"    : "AIX",
-        "ua"      : "",
-        "expect"  :
-        {
-            "name"    : "",
-            "version" : ""
+        "ua"      : "Mozilla/5.0 (X11; U; AIX 000138384C00; en-US; rv:1.0.1) Gecko/20030213 Netscape/7.0",
+        "expect"  :
+        {
+            "name"    : "AIX",
+            "version" : "undefined"
         }
     },
     {
         "desc"    : "Plan9",
-        "ua"      : "",
-        "expect"  :
-        {
-            "name"    : "",
-            "version" : ""
+        "ua"      : "NCSA_Mosaic/5.0 (X11;Plan 9 4.0)",
+        "expect"  :
+        {
+            "name"    : "Plan 9",
+            "version" : "4.0"
         }
     },
     {
         "desc"    : "Minix",
-        "ua"      : "",
-        "expect"  :
-        {
-            "name"    : "",
-            "version" : ""
+        "ua"      : "Mozilla/5.0 (X11; Original ; Minix 3.3 ; rv:3.0)",
+        "expect"  :
+        {
+            "name"    : "Minix",
+            "version" : "3.3"
         }
     },
     {
         "desc"    : "BeOS",
-        "ua"      : "",
-        "expect"  :
-        {
-            "name"    : "",
-            "version" : ""
+        "ua"      : "Mozilla/5.0 (BeOS; U; BeOS BePC; en-US; rv:1.8.1.8pre) Gecko/20070926 SeaMonkey/1.1.5pre",
+        "expect"  :
+        {
+            "name"    : "BeOS",
+            "version" : "undefined"
         }
     },
     {
         "desc"    : "OS/2",
-        "ua"      : "",
-        "expect"  :
-        {
-            "name"    : "",
-            "version" : ""
+        "ua"      : "Links (2.1pre14; OS/2 1 i386; 80x33)",
+        "expect"  :
+        {
+            "name"    : "OS/2",
+            "version" : "undefined"
         }
     },
     {
         "desc"    : "AmigaOS",
-        "ua"      : "",
-        "expect"  :
-        {
-            "name"    : "",
-            "version" : ""
+        "ua"      : "Mozilla/4.0 (compatible; AWEB 3.4 SE; AmigaOS)",
+        "expect"  :
+        {
+            "name"    : "AmigaOS",
+            "version" : "undefined"
         }
     },
     {
         "desc"    : "MorphOS",
-        "ua"      : "",
-        "expect"  :
-        {
-            "name"    : "",
-            "version" : ""
+        "ua"      : "AmigaVoyager/3.4.4 (MorphOS/PPC native)",
+        "expect"  :
+        {
+            "name"    : "MorphOS",
+            "version" : "undefined"
         }
     },
     {
         "desc"    : "UNIX",
-        "ua"      : "",
-        "expect"  :
-        {
-            "name"    : "",
-            "version" : ""
+        "ua"      : "Surf/0.4.1 (X11; U; Unix; en-US) AppleWebKit/531.2+ Compatible (Safari)",
+        "expect"  :
+        {
+            "name"    : "Unix",
+            "version" : "undefined"
         }
     },
     {
         "desc"    : "Joli",
-        "ua"      : "",
-        "expect"  :
-        {
-            "name"    : "",
-            "version" : ""
+        "ua"      : "Mozilla/5.0 (X11; Jolicloud Linux i686) AppleWebKit/537.6 (KHTML, like Gecko) Joli OS/1.2 Chromium/23.0.1240.0 Chrome/23.0.1240.0 Safari/537.6",
+        "expect"  :
+        {
+            "name"    : "Joli",
+            "version" : "1.2"
         }
     },
     {
         "desc"    : "CentOS",
-        "ua"      : "",
-        "expect"  :
-        {
-            "name"    : "",
-            "version" : ""
+        "ua"      : "Konqueror/15.13 (CentOS Linux 7.4; cs-CZ;)",
+        "expect"  :
+        {
+            "name"    : "CentOS",
+            "version" : "7.4"
         }
     },
     {
         "desc"    : "PCLinuxOS",
-        "ua"      : "",
-        "expect"  :
-        {
-            "name"    : "",
-            "version" : ""
+        "ua"      : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.13) Gecko/20101209 PCLinuxOS/1.9.2.13-1pclos2010 (2010) Firefox/3.6.13",
+        "expect"  :
+        {
+            "name"    : "PCLinuxOS",
+            "version" : "1.9.2.13-1pclos2010"
         }
     },
     {
         "desc"    : "RedHat",
-        "ua"      : "",
-        "expect"  :
-        {
-            "name"    : "",
-            "version" : ""
+        "ua"      : "Mozilla/5.0 (compatible; Konqueror/4.3; Linux) KHTML/4.3.4 (like Gecko) Red Hat Enterprise Linux/4.3.4-11.el6_1.4",
+        "expect"  :
+        {
+            "name"    : "Red Hat",
+            "version" : "4.3.4-11.el6_1.4"
+        }
+    },
+    {
+        "desc"    : "RedHat",
+        "ua"      : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.13pre) Gecko/20070717 Red Hat/1.0.9-4.el4 SeaMonkey/1.0.9",
+        "expect"  :
+        {
+            "name"    : "Red Hat",
+            "version" : "1.0.9-4.el4"
+        }
+    },
+    {
+        "desc"    : "RedHat",
+        "ua"      : "iTunes/4.7.1 (Linux; N; Red Hat; x86_64-linux; EN; utf8) SqueezeCenter, Squeezebox Server, Logitech Media Server/7.9.1/1522157629",
+        "expect"  :
+        {
+            "name"    : "Red Hat",
+            "version" : "undefined"
+        }
+    },
+    {
+        "desc"    : "RedHat",
+        "ua"      : "curl/7.20.0 (x86_64-redhat-linux-gnu) libcurl/7.20.0 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5",
+        "expect"  :
+        {
+            "name"    : "redhat",
+            "version" : "undefined"
+        }
+    },
+    {
+        "desc"    : "RISC OS",
+        "ua"      : "Mozilla/1.10 [en] (Compatible; RISC OS 3.70; Oregano 1.10)",
+        "expect"  :
+        {
+            "name"    : "RISC OS",
+            "version" : "3.70"
         }
     },
     {
         "desc"    : "Zenwalk",
-        "ua"      : "",
-        "expect"  :
-        {
-            "name"    : "",
-            "version" : ""
+        "ua"      : "Flock/2.16 (Zenwalk 7.3; es_PR;)",
+        "expect"  :
+        {
+            "name"    : "Zenwalk",
+            "version" : "7.3"
         }
     },
     {
         "desc"    : "Hurd",
-        "ua"      : "",
-        "expect"  :
-        {
-            "name"    : "",
-            "version" : ""
+        "ua"      : "Mozilla/5.0 (X11; Hurd 0.9 i386; en-US) libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/3.7.0 Safari/696.96",
+        "expect"  :
+        {
+            "name"    : "Hurd",
+            "version" : "0.9"
         }
     },
     {
         "desc"    : "Linux",
-        "ua"      : "",
-        "expect"  :
-        {
-            "name"    : "",
-            "version" : ""
-        }
-    },
-    {
-        "desc"    : "GNU",
-        "ua"      : "",
-        "expect"  :
-        {
-            "name"    : "",
-            "version" : ""
+        "ua"      : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36",
+        "expect"  :
+        {
+            "name"    : "Linux",
+            "version" : "x86_64"
+        }
+    },
+    {
+        "desc"    : "Deepin",
+        "ua"      : "Mozilla/5.0 (X11; Linux x86_64; Deepin 15.5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36 NFSBrowser/5.0.0.1886",
+        "expect"  :
+        {
+            "name"    : "Deepin",
+            "version" : "15.5"
         }
     },
     {
         "desc"    : "Palm OS",
-        "ua"      : "",
-        "expect"  :
-        {
-            "name"    : "",
-            "version" : ""
+        "ua"      : "Mozilla/4.76 [en] (PalmOS; U; WebPro3.0; Palm-Arz1)",
+        "expect"  :
+        {
+            "name"    : "Palm",
+            "version" : "undefined"
+        }
+    },
+    {
+        "desc"    : "HP-UX",
+        "ua"      : "Mozilla/5.0 (X11; U; HP-UX 9000/785; es-ES; rv:1.0.1) Gecko/20020827 Netscape/7.0",
+        "expect"  :
+        {
+            "name"    : "HP-UX",
+            "version" : "undefined"
+        }
+    },
+    {
+        "desc"    : "Contiki",
+        "ua"      : "Contiki/1.0 (Commodore 64; http://dunkels.com/adam/contiki/)",
+        "expect"  :
+        {
+            "name"    : "Contiki",
+            "version" : "1.0"
+        }
+    },
+    {
+        "desc"    : "Linpus",
+        "ua"      : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9b5pre) Gecko/2008032619 Linpus/3.0-0.49",
+        "expect"  :
+        {
+            "name"    : "Linpus",
+            "version" : "3.0-0.49"
+        }
+    },
+    {
+        "desc"    : "Manjaro",
+        "ua"      : "Mozilla/5.0 (X11; Manjaro 19.0.2; Arch; x64; rv:84.0) Gecko/20100101 Firefox/84.0",
+        "expect"  :
+        {
+            "name"    : "Manjaro",
+            "version" : "19.0.2"
+        }
+    },
+    {
+        "desc"    : "elementary OS",
+        "ua"      : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/604.1 (KHTML, like Gecko) Version/11.0 Safari/604.1 elementary OS/0.4 (Loki) Epiphany/3.18.11",
+        "expect"  :
+        {
+            "name"    : "elementary OS",
+            "version" : "0.4"
+        }
+    },
+    {
+        "desc"    : "GhostBSD",
+        "ua"      : "Mozilla/5.0 (X11; GhostBSD/10.3; x86_64; rv:50.0.1) Gecko/20100101 Firefox/50.0.1",
+        "expect"  :
+        {
+            "name"    : "GhostBSD",
+            "version" : "10.3"
+        }
+    },
+    {
+        "desc"    : "Android-x86",
+        "ua"      : "Mozilla/5.0 (Linux; Android 7.1.2; Generic Android-x86) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 OPR/61.2.3076.56749",
+        "expect"  :
+        {
+            "name"    : "Android-x86",
+            "version" : "7.1.2"
+        }
+    },
+    {
+        "desc"    : "Sabayon",
+        "ua"      : "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Sabayon Chrome/19.0.1084.46 Safari/536.5",
+        "expect"  :
+        {
+            "name"    : "Sabayon",
+            "version" : "undefined"
+        }
+    },
+    {
+        "desc"    : "Linspire",
+        "ua"      : "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.4) Gecko/20060803 Firefox/1.5.0.4 Linspire/1.5.0.4",
+        "expect"  :
+        {
+            "name"    : "Linspire",
+            "version" : "1.5.0.4"
         }
     }
Index: trip-planner-front/node_modules/ua-parser-js/test/test.js
===================================================================
--- trip-planner-front/node_modules/ua-parser-js/test/test.js	(revision 6a3a178323fd905112b5392bd9d3cb83b66ef2d3)
+++ trip-planner-front/node_modules/ua-parser-js/test/test.js	(revision bdd64917749115bbdd228a9569a675d590c112e3)
@@ -3,4 +3,6 @@
 var assert      = require('assert');
 var requirejs   = require('requirejs');
+var parseJS     = require('@babel/parser').parse;
+var traverse    = require('@babel/traverse').default;
 var UAParser    = require('./../src/ua-parser');
 var browsers    = require('./browser-test.json');
@@ -138,10 +140,17 @@
     var regexes;
 
-    // todo: use AST-based instead of grep
-    before('Read main js file', function (done) {
-        fs.readFile('src/ua-parser.js', 'utf8', function (err, data) {
-            regexes = data.match(/(\/.+\/[ig]+)(?=[,\s\n])/g);
-            done();
+    before('Read main js file', function () {
+        var code = fs.readFileSync('src/ua-parser.js', 'utf8').toString();
+        var ast = parseJS(code, { sourceType: "script" });
+        regexes = [];
+        traverse(ast, {
+            RegExpLiteral: (path) => {
+                regexes.push(path.node.pattern);
+            }
         });
+
+        if (regexes.length === 0) {
+            throw new Error("Regexes cannot be empty!");
+        }
     });
 
@@ -157,3 +166,3 @@
         });
     });
-})
+});
